OSDN Git Service

72fda6568ffb69ad8a4fef1ba3ae373c300762b5
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-17  Jason Merrill  <jason@redhat.com>
2
3         * Makefile.in (clean): Remove libgcc directory.
4
5         * configure.in (-Wno-long-long check): Use higher-level macros.
6
7 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
8
9         * simplify-rtx.c (simplify_binary_operation): Recognize
10            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
11         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
12            a CONST_INT, it will always be zero.
13
14 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
15
16         * loop.c (check_dbra_loop) : Return if more than one condition is 
17         present to control the loop.
18
19 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
20
21         * mips.c (mips_expand_prologue): Don't calculate the last argument
22         register unless we need it.  When we are calculating this, make
23         sure FUNCTION_ARG is giving us a REG.
24
25 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
26
27         * flow.c (libcall_dead_p): Use single_set to verify the insn
28         has only one set and get for analysis.
29         (propagate_one_insn): Don't pass the PATTERN of the insn.
30
31 2000-07-17  Mark Klein <mklein@dis.com>
32
33          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
34
35 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
36
37         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
38         * configure.in (TARGET_GETGROUPS_T): Evaluate.
39         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
40         of second argument of getgroups.
41         * configure, config.in: Rebuilt.
42
43 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
44
45         * simplify-rtx.c (simplify_relational_operation): Two signed
46         values with equal high words are less/greater than each other if
47         their low words are less/greater when considered as unsigned.
48
49 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
50
51         * configure.in (vax-*-openbsd):  Change to new style configuration,
52         add collect2/float_format information.
53         * configure:  Rebuilt.
54         * config/vax/openbsd1.h:  New.
55         * config/vax/openbsd.h:  New.
56         * config/vax/t-openbsd:  New.
57
58 2000-07-17  Chip Salzenberg  <chip@valinux.com>
59
60         * c-common.c (shorten_compare): Quiet warnings about unsigned
61         comparisons with zero when they occur in a system header.
62
63 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
64
65         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
66         update to describe current practice.
67
68         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
69
70         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
71         references to C9X.  Change references to -fstd and -flang-isoc9x
72         to refer to -std.
73
74         * c-common.c (scan_char_table): Allow "z" length modifiers on
75         diouxXn formats.
76         (check_format_info): Use TYPE_DOMAIN on the type matched against
77         for "z" formats, to retrieve the language size_t rather than the
78         internal one.
79
80         * c-common.c (check_format_info): Do not make a pedantic objection
81         to the 'L' length modifier if used with a floating point type
82         character.
83
84         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
85         constants in C99 mode.
86
87 2000-07-17  Kazu Hirata  <kazu@hxi.com>
88
89         * h8300.md: Fix the format of mac.
90         (movsi_h8300hs): Output a tab after stmac instead of a space.
91
92         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
93         profitable adds/subs sequences.
94
95         * fold-const.c: Fix comment typos.
96
97 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
98
99         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
100
101 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
102
103         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
104
105 2000-07-16  Neil Booth  <NeilB@earthling.net>
106
107         * cpplex.c: Update comments.
108         * README.Portability: Small update.
109
110 2000-07-16  Neil Booth  <NeilB@earthling.net>
111
112         * README.Portability:  Small update.
113
114 2000-07-15  Richard Henderson  <rth@cygnus.com>
115
116         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
117         * config/ia64/ia64.c (ia64_move_ok): New function.
118         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
119         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
120
121 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
122
123         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
124         immediately following a paste operator.
125         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
126         (cpp_reader_init): Call it, if HOST_EBCDIC.
127         (cpp_handle_options): Do not sort option list here.
128         (handle_option): Rename to cpp_handle_option and export.
129         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
130         _cpp_get_token directly.
131         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
132         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
133         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
134         cpp_scan_line.
135
136 2000-07-15  Richard Henderson  <rth@cygnus.com>
137
138         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
139         cast around an expression.  Tidy other unsigned tests.
140
141 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
142
143         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
144         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. 
145         (v_message_with_decl): Rename to ...
146         (format_with_decl): ... this. Tweak
147         (diagnostic_for_decl): New function.
148         (fatal_io_error): Use verbatim in lieu of notice.
149         (announce_function): Use verbatim.
150         (default_print_error_function): Likewise.
151         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
152         infratructure. 
153
154 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
155
156         * mips.c (function_arg_pass_by_reference): Don't do automatic
157         aggregate initialization.
158         (machine_dependent_reorg): Initialize variable `mode'.
159         
160         * mips.md (absdi2): Change variable `regno1' to unsigned int.
161         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
162         conflicts with sys/param.h macro of the same name.
163         (reload_outdi): Likewise.
164
165 2000-07-15  Michael Meissner  <meissner@redhat.com>
166
167         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
168         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
169         create a new node instead.
170
171 2000-07-15  Neil Booth  <NeilB@earthling.net>
172
173         * README.Portability: Correct example about calling a function
174         through a pointer to function.  Format wide paragraphs.
175
176 2000-07-15  Michael Meissner  <meissner@redhat.com>
177
178         * README.Portability: Update integer suffixes and function
179         prototype sections.
180
181 2000-07-15  Neil Booth  <NeilB@earthling.net>
182
183         * README.Portability: Small update.
184
185 2000-07-15  Neil Booth  <NeilB@earthling.net>
186
187         * README.Portability: New file.
188
189 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
190
191         * INSTALL: Give special instructions for building GCC on Irix 6.
192         * config/mips/x-iris6 (CC): Don't set it.
193         (OLDCC): Likewise.
194
195 2000-07-14  Jason Merrill  <jason@redhat.com>
196
197         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA 
198         register in the stack and later in another register, use the new
199         register.
200
201 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
202
203         * config/mips/mips.md: (absdi2): Handle sign_extend for
204         second operand.
205
206 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
207
208         * cpplib.c (do_pragma_dependency): Tidy warning messages.
209
210 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
211
212         * .cvsignore: Correct typo.
213
214 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
215
216         * .cvsignore: Add generated YACC files.
217         * objc/.cvsignore: New file.
218         
219 2000-07-14  Neil Booth  <NeilB@earthling.net>
220
221         * cpplex.c (adjust_column): New funcion.
222         (skip_whitespace): Use it.
223         (skip_block_comment): Use it, and warn about /*/* with
224         -Wcomments.
225
226 2000-07-14  Neil Booth  <NeilB@earthling.net>
227
228         * cpphash.c (struct macro_info): Add new members.
229         (_cpp_free_definition): Delete the macro directly.
230         (count_params): Return void, with first token of
231         expansion in struct macro_info on success.
232         (parse_define): Return int.  Hoist syntax checking from
233         save_macro_expansion.  Leave call to save_expansion to
234         _cpp_create_definition.
235         (alloc_macro): Needs just 2 arguments.
236         (free_macro): Delete.
237         (save_expansion): Don't perform syntax check.
238         (_cpp_create_definition): Call save_expansion.
239
240 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
241
242         * genrecog.c (write_header): Split long string.
243
244         * cpphash.c (macro_info): Don't use the `signed' keyword.
245
246         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
247
248 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
249
250         * calls.c (stored_args_map): New variable.
251         (check_sibcall_argument_overlap_1): New.
252         (check_sibcall_argument_overlap): New.
253         (expand_call): Initialize stored_args_map.
254         Call check_sibcall_argument_overlap.
255
256 2000-07-13  Bruce Korb  <bkorb@gnu.org>
257
258         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
259         (emit_gnu_type): utility procedure for gnu_type_fix
260         (gnu_type_fix): implement various pre-processor guards around
261         standard types so these types can be defined over and over
262         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
263         types alluded to above will have GNU-compliant base types
264         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
265         * fixinc/inclhack.def: add test_text entries and utilize the new
266         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
267         * fixinc/fixincl.x: regenerate
268
269 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
270
271         * diagnostic.c (vline_wrapper_message_with_location,
272         v_message_with_file_and_line, v_error_with_file_and_file,
273         v_error_for_asm, v_warning_for_asm, vfatal,
274         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
275         vsorry, verror, vwarning, vpedwarn): Remove.
276         (diagnostic_for_asm): New function.
277         (pedwarn, error, warning, pedwarn_with_file_and_line,
278         error_with_file_and_line, warning_with_file_and_line, sorry,
279         error_for_asm, warning_for_asm, fatal): Reimplement.
280         (finish_diagnostic): Clear diagnostic info as well.
281         
282 2000-07-13  Neil Booth  <NeilB@earthling.net>
283
284         * c-common.h (flag_digraphs): New.
285         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
286         * c-lex.c (yylex): Use flag_digraphs to decide whether to
287         honour digraphs.
288         
289 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
290
291         * gcc.c (do_spec_1): Add new %B operator.
292         (set_input): Prepare for %B.
293
294         (link_command_spec): Move up with the other tm.h-
295         overrideable specs.  Factor out the portion conditional on
296         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
297         (struct compiler): Just have a single spec string.  All users
298         updated.
299         (default_compilers): Remove unnecessary braces.
300         (static_specs): Update.
301
302         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
303         named specs.
304         (C and assembly specs): Use the new named specs, as appropriate.
305
306         * objc/lang-specs.h: Use the new named specs.  
307         Remove unnecessary braces.
308
309 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
310
311         * gcc.c (execute): If a subprocess gets a fatal signal, report
312         strsignal() of the signal number, and ask for a bug report.
313         Do not do this for SIGPIPE if there's already been an error.
314
315         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
316         Delete pipe_closed.
317
318         * tradcif.c: Remove.
319
320 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
321
322         * final.c (profile_function): Do not emit profile counters in
323         the data section, if NO_PROFILE_COUNTERS is defined.
324         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
325         FUNCTION_PROFILER.
326
327         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
328         (FUNCTION_PROFILER): Just emit a call to mcount.
329
330 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
331
332         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
333
334         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
335         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
336         traditional, lang_chill, or lang_fortran.
337
338         * cppfiles.c: #undef strcmp to suppress warning about macros
339         used without arguments.
340         (_cpp_execute_include): Use f, not fname, in "No include path"
341         error.
342         (_cpp_pop_file_buffer): New function.
343         * cpplib.c: Don't include <sys/mman.h>.
344         (cpp_push_buffer): Set line_base and lineno in new buffer.
345         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
346
347         * cpplex.c: Move all prototypes and structure declarations to the
348         top of the file.  Properly parenthesise some macro arguments.
349         (cpp_scan_line): New function.
350         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
351         don't need to walk up the stack counting.
352
353 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
354
355         * c-common.c (combine_strings): Emit a pedantic warning when a
356         string length is greater than the minimum ANSI C is required
357         to support.
358
359 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
360
361         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
362         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
363
364 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
365
366         * c-decl.c (define_label): Warn about identifier conflicts with
367         labels in traditional C.
368
369         * c-parse.in (unop +): Warn about the unary plus operator for
370         traditional C.
371
372         * c-typeck.c (store_init_value): Warn about automatic aggregate
373         initialization for traditional C.
374
375         * invoke.texi (-Wtraditional): Document new warnings.
376
377 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
378
379         * Makefile.in (c-errors.o): Fix thinko in dependency.
380
381 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
382
383         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
384         -traditional, -ftraditional, or -traditional-cpp was given.
385         Do not pass -traditional to the preprocessor.
386         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
387         preprocessor does it automatically.
388         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
389
390         * ch/lang-specs.h: Always use tradcpp.  Do not pass
391         -traditional, -trigraphs, or -pedantic to the preprocessor.
392         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
393         _LANGUAGE_FORTRAN.
394
395 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
396
397         * cppexp.c (LOGICAL): Delete macro.
398         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
399         and && directly.
400
401         * cpphash.c (HASHSIZE): Increase to 4096.
402         (struct hashdummy): Add hash field.
403         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
404         the string values using memcmp.
405         (cpp_lookup): Set dummy.hash.
406
407 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
408
409         * configure.in (m88k-openbsd): Express configuration using new fragment
410         style.
411         * configure: Rebuilt.
412         * m88k/aout-dbx.h: New.
413         * m88k/openbsd.h: New.
414         * m88k/xm-openbsd.h: New.
415
416 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
417
418         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
419
420 2000-07-12  Richard Henderson  <rth@cygnus.com>
421
422         * reload.c (push_secondary_reload): Make sure to add the new
423         reload at the end, after acquiring secondary memory.
424
425 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
426
427         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
428
429         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
430         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
431
432         * c-parse.in (stmt): Delete unused variables.
433
434         * convert.c (convert_to_vector): Likewise.
435
436         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
437
438         * tree.c (finish_vector_type): Prototype.
439
440 2000-07-12  Bruce Korb  <bkorb@gnu.org>
441
442         * fixinc/fixfixes.c: use xmalloc
443         * fixinc/fixincl.c(initialize): set program name for xmalloc
444         * fixinc/fixlib.c(must_malloc): obsolete
445         (is_cxx_header): no longer used - disabled
446         (skip_quote): inserted and disabled for future use
447         * fixinc/fixlib.h: reflects above
448         * fixinc/fixtests.c: removed dinkleberries
449
450 2000-07-12  Neil Booth  <NeilB@earthling.net>
451
452         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
453         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
454
455         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
456         struct toklist_dummy): New.
457         (cpp_free_definition): Free macros with free_macro.
458         (count_params): Don't save paramter spellings.  Save macro
459         information in a struct macro_info.
460         (parse_define): Don't allocate a token list.
461         (save_expansion): Allocate the macro's token list, and
462         save parameter spellings if necessary.  Use TOKEN_SPELL.
463         (cpp_create_definition): Make list const.
464
465 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
466
467         * c-typeck.c (pedwarn_c99): Move to
468         * c-errors.c: ... Here.
469         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
470         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
471         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
472         (c-errors.o): List dependency.
473
474 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
475
476         * c-parse.c: Remove.
477         * c-parse.h: Likewise.
478         * c-parse.y: Likewise.
479         * objc/objc-parse.c: Likewise.
480         * objc/objc-pasre.y: Likewise.
481
482 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
483
484         * gcc.texi: Fix minor typos
485         * extend.texi: Fix minor typos
486
487 2000-07-11  Marc Espie <espie@openbsd.org>
488
489         * collect2.c (main): Recognize .lo as object files.
490
491 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
492
493         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
494         true.
495
496         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
497         with MAP_ANONYMOUS and MAP_ANON.
498         * configure, config.in: Rebuilt.
499
500 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
501
502         * diagnostic.c (save_output_state): Remove.
503         (restore_output_state): Likewise.
504         (clear_text_info): New function.
505         (clear_diagnostic_info): Likewise.
506         (output_text_length, is_starting_newline, output_prefix,
507         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
508         prefixing_policy, output_buffer_ptr_to_format_args): New macros
509         (set_real_maximum_length, output_set_maximum_length,
510         output_set_prefix, output_get_prefix, output_set_maximum_length,
511         output_destroy_prefix, init_output_buffer,
512         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
513         output_add_newline, output_add_character, output_add_space,
514         output_append_r, output_append, wrap_text, output_format,
515         output_do_printf, output_printf, output_do_verbatim,
516         output_verbatim, verbatim): Use them.
517         (output_clear): Split into cleat_text_info and
518         clear_diagnostic_info.
519         (struct output_state): Move to...
520
521         * diagnostic.h: ...Here
522         (struct output_buffer): Adjust.
523
524 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
525
526         * cpplex.c (parse_name): No longer inline (premature optimization).
527         (do_pop_context): Fold into pop_context.
528         (pop_context): Returns int.
529         (lex_next): Hoist test for end of directive into pop_context.
530         (push_macro_context): Returns int; takes just reader and token.
531         Hoist test for excessive nesting to caller.
532         (push_arg_context): Returns void; takes just reader and token.
533         Do not call stringify_arg or get_raw_token.
534         (get_raw_token): Convert tail recursion through push_arg_context
535         to a loop at this level.  Call stringify_arg here if appropriate.
536         (maybe_paste_with_next): Convert tail recursion to a while loop.
537         Hoist test of paste_level to caller.
538
539         (stringify_arg): Push arg context at beginning.
540         (cpp_get_token): Split out core into _cpp_get_token.  Call
541         process_directive here.  Throw away CPP_PLACEMARKER tokens.
542         (_cpp_get_token): Convert tail recursion through
543         push_macro_context to a loop at this level.
544         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
545         _cpp_get_raw_token): Use _cpp_get_token.
546         (_cpp_skip_rest_of_line): Drop the context stack directly; do
547         not call pop_context.
548         (_cpp_run_directive): Call lex_next directly.
549
550         * cpphash.h: Prototype _cpp_get_token.
551         * cppexp.c (lex): Use it.
552         * cpphash.c (parse_define): Use it.
553         * cpplib.c (get_define_node, do_undef, parse_include,
554         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
555         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
556         parse_ifdef, validate_else): Use it.
557         (cpp_push_buffer): Tweak error message; abort if anyone tries
558         to push a buffer while macro expansions are stacked.
559
560 2000-07-11  Donn Terry  <donnte@microsoft.com>
561
562         * cpplex.c (free_macro_args, save_token): Cast arg of free
563         and/or xrealloc to PTR.
564         (_cpp_init_input_buffer): Clear all fields of the base context.
565
566 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
567
568         * gensupport.c (process_rtx): Make rtl checking stop
569         complaining about the define_insn while it is being
570         converted from a define_insn_and_split.
571
572 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
573
574         * config/mips/mips.c (simple_memory_operand): Access the
575         INTVAL of the address, not it's containing MEM.
576
577 2000-07-11  Bruce Korb  <bkorb@gnu.org>
578
579         * fixinc/fixtests.c(double_slash): obsolete
580         (else_endif_label): likewise
581         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
582         (libc1_ifdefd_memx): correct initial comment
583         and omit the #if/#endif pair from the memxxx declarations
584         * fixinc/fixincl.x: regen
585
586 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
587
588         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
589
590 2000-07-11  Neil Booth  <NeilB@earthling.net>
591
592         * cpp.texi: Update.
593
594 2000-07-11  Neil Booth  <NeilB@earthling.net>
595
596         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
597         (handle_option): Set digraphs according to standard.
598         Merge OPT_lang_c89 handler with OPT_std_c89.
599
600         * cpplex.c: (lex_line, can_paste): Honour digraphs in
601         accordance with the digraphs flag.
602
603         * cpplib.h: (struct cpp_options): New option digraphs.
604
605 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
606             Bruce Korb  <bkorb@gnu.org>
607
608         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
609         * fixinc/fixincl.x: Regenerate.
610         * fixinc/tests/base/testing.h: Add testcase.
611
612 2000-07-10  Richard Henderson  <rth@cygnus.com>
613
614         * config/ia64/ia64.c (got_symbolic_operand): New.
615         (symbolic_operand, move_operand): Revert 0701 change.
616         * config/ia64/ia64.h (PREDICATE_CODES): Update.
617         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
618         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
619         split the offset into a 14-bit low part instead of a 13-bit low part.
620         (load_fptr): Mark the mem as unchanging.
621         (load_symptr): Use got_symbolic_operand.
622
623 2000-07-10  Nick Clifton  <nickc@cygnus.com>
624
625         * libgcc2.c (next_stack_level): Cast result of computation to
626         (void **) so that the assignment does not generate a warning.
627
628 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
629
630         * flags.h : Add new variable flag_single_precision_constant.
631         * toplev.c (display_help) : Add -fsingle-precision-constant option.
632         (flag_single_precision_constant): New.
633         * c-lex.c (yylex): Convert floating point constant to single
634         precision constant.
635         * invoke.texi : Add documentation for this new option.
636
637 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
638
639         * diagnostic.c (output_octal): Second parameter is unsigned.
640         (output_long_octal): Likewise.
641         (output_hexadecimal): Likewise.
642         (output_long_hexadecimal): Likewise.
643         (output_format): Adjust arguments extraction. Tweak.
644         (output_verbatim, verbatim): End variable argument list.
645         (report_diagnostic): Improve documentation.
646
647 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
648
649         * c-common.h (build_stmt): Declare.
650         (build_continue_stmt): Likewise.
651         (build_break_stmt): Likewise.
652         (build_return_stmt): Likewise.
653
654         * c-decl.c (do_case): Rewrite to do what previously done in
655         c-parse.in.
656
657         * c-semantics.c (build_stmt): Define.
658         (build_return_stmt): Likewise.
659         (build_break_stmt): Likewise.
660         (build_continue_stmt): Likewise.
661         (build_case_label): Likewise.
662
663         * c-parse.in (BREAK): Change to build tree, then generate RTL.
664         (CONTINUE): Likewise.
665         (RETURN): Likewise.
666         (CASE): Likewise.
667         (DEFAULT): Likewise.
668
669         * c-parse.y: Regenerate.
670         * c-pasre.c: Likewise.
671
672 2000-07-09  Jason Merrill  <jason@redhat.com>
673
674         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
675
676         * tree.h (STRIP_NOPS): Check for error_mark_node.
677         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
678         (dwarf2out_*): Remove duplicate declarations.
679
680         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
681         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
682
683 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
684
685         * diagnostic.c (wrap_text): New function.
686         (maybe_wrap_text): Likewise.
687         (output_add_string): Use it.
688         (output_format): Likewise.
689         (count_error): Use verbatim instead of notice.
690         (report_error_function): Likewise. Don't use plain fprintf.
691         (finish_diagnostic): New function.
692         (output_do_verbatim): Tweak.  Commonalize functionalities in
693         output_verbatim and verbatim.
694         (output_verbatim): Adjust.
695         (verbatim): Likewise.
696         (report_diagnostic): Define.
697
698         * diagnostic.h (report_diagnostic): Prototype.
699
700 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
701
702         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
703
704 2000-07-09  Neil Booth  <NeilB@earthling.net>
705
706         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
707         IShspace, ISspace: Update.
708
709         * cppinit.c: ISTABLE: Update.
710         V: New.
711
712         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
713         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
714         (skip_block_comment, skip_line_comment, parse_string,
715         lex_line): Use is_vspace rather than IS_NEWLINE.
716         (skip_whitespace, lex_line): Clean up to use is_nvspace.
717         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
718         gets a BOL flag.
719         (lex_next): Unconditionally stop if within a directive.
720         Treat directives within macro invocations as directives
721         (after parse_args emits error), not as the argument.
722
723 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
724
725         * diagnostic.c (diagnostic_args): New macro.
726         (diagnostic_msg): Likewise.
727         (output_formatted_integer): Likewise.
728         (output_state): New data type.
729         (digit_buffer): Make global.
730         (output_add_integer): Rename to output_decimal. Squeeze
731         digit_buffer.
732         (output_long_decimal, output_unsigned_decimal,
733         output_long_unsigned_decimal, output_octal, output_long_octal,
734         output_hexadecimal, output_long_hexadecimal): New functions.
735         (output_append_r): New function.
736         (output_append): Tweak.
737         (output_flush_on): Rename to output_to_stream.
738         (output_format): Change prototype.  Improve documentation. Handle
739         more format specifiers.
740         (build_location_prefix): Rename to context_as_prefix.
741         (output_notice): Rename to output_do_printf.
742         (output_printf): Tweak.
743         (line_wrapper_printf): Likewise.
744         (vline_wrapper_message_with_location): Adjust call to renamed
745         functions.
746         (v_message_with_decl): Likewise.
747         (default_print_error_function): Likewise.
748         (save_output_state): New function.
749         (restore_output_state): Likewise.
750         (output_do_verbatim): Likewise.
751         (output_verbatim): Define.
752         (verbatim): Likewise.
753
754         * diagnostic.h (printer_fn): Change return type from void to int.
755         Improve documentation.
756         (output_add_integer): Rename to output_decimal.
757         (output_flush_on, output_format): Don't export.
758         (output_verbatim, verbatim): Declare.
759
760 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
761
762         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
763         Check whether c divides op1 exactly if operation is not
764         multiplication.
765
766 2000-07-08  Richard Henderson  <rth@cygnus.com>
767
768         * final.c (final): Do not abort when reg-stack introduces
769         a new insn.
770
771 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
772
773         * cpplib.h (struct cpp_name): Now struct cpp_string.
774         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
775         CPP_HEADER_NAME): Change to type S.
776         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
777         field, a cpp_hashnode *.  All references to val.name updated
778         to use val.str or val.node as appropriate.
779         (struct cpp_reader): Add spec_nodes field.
780         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
781
782         * cpphash.h (struct spec_nodes): New.
783         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
784         val.str.  All references to 'spelling > SPELL_NONE' updated to
785         match.
786
787         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
788         pfile->buffer->inc are not NULL before dereferencing them.
789
790         * cpplex.c (parse_name): Take a pointer to the current token,
791         plus current position and limit as args; return the new
792         position; don't copy the text of a name into the string
793         buffer, instead call cpp_lookup and store the node pointer.
794         If extending a token, copy out the text of the old into a
795         scratch buffer, append the new, look that up and store the new
796         node pointer.  Inline.
797         (maybe_paste_with_next): If the result of paste is a NAME,
798         then look up the pasted text and store its node pointer.
799         (lex_line): Adjust for new parse_name interface.
800         Check for L"str", L'str' using spec_nodes->n_L.
801         (spell_token): SPELL_IDENT tokens have their spelling in
802         val.node->name.  Handle SPELL_STRING tokens that don't have
803         string delimiters.
804         (_cpp_expand_name_space,
805         (can_paste): Check for L ## "str" using spec_nodes->n_L.
806         (cpp_get_token, special_symbol): No need to call cpp_lookup.
807         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
808         return 1=equal 0=not, not a tristate.
809
810         * cpphash.c (var_args_str): Delete.
811         (find_param): Compare node fields directly.
812         (is__va_args__): Use CPP_PEDANTIC.  Just compare
813         token->val.node with spec_nodes->n__VA_ARGS__.
814         (dump_funlike_macro): Don't use var_args_str.
815
816         * cpplib.c (_cpp_check_directive): Just walk through
817         spec_nodes->dirs comparing pointers.
818         (get_define_node, do_pragma_poison, detect_if_not_defined,
819         parse_ifdef): The identifier has already been looked up.
820         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
821         node.
822         (do_if): Only call detect_if_not_defined at beginning of file.
823         (_cpp_parse_assertion): Only copy string pointers for
824         SPELL_STRING tokens.
825         (pragma_dispatch): Take a node pointer and examine its name
826         field.
827         (_cpp_init_stacks): Also initialize the spec_nodes structure.
828
829         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
830         _cpp_init_macros.
831         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
832         reverse order from the corresponding _cpp_init_* routines.
833
834         * cppexp.c (parse_number, parse_charconst, parse_defined,
835         lex): Check val.node->type instead of calling cpp_defined.
836         Use spec_nodes entries where appropriate.
837
838         * fix-header.c, scan-decls.c: Update for interface changes.
839
840 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
841
842         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
843         emitting aux_truncdfsf2.
844
845 2000-07-03  Donn Terry  (donnte@microsoft.com)
846
847         * cppinit.c (print_help): split overlong line into ISO C89
848         maximum chunks.
849
850 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
851
852         * cppexp.c: Update all code for new lexer interface.
853         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
854         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
855         * cpplex.c (token_names): Trim leading CPP_ from names; make
856         the strings unsigned.
857         (_cpp_spell_operator): New.
858         (is_macro_disabled): Disable all macros if rescanning
859         preprocessed text.
860         (_cpp_get_directive_token): Remove.
861
862         * cppinit.c: Don't set no_macro_expand.
863         * cpplib.c (read_line_number, do_line): Check only for EOF,
864         not VSPACE.
865         * cpphash.h: Update prototypes.
866         * cpplib.h (CPP_VSPACE): Remove.
867         (struct cpp_reader): Remove no_macro_expand.
868
869 2000-07-08  Neil Booth  <NeilB@earthling.net>
870
871         * cpphash.c (is__va_args__): New function.
872         (count_params): Fix line reported in error messages.  Use
873         is__va_args__.  Don't return ')' on error.  Flag GNU style
874         rest args macro definitions.
875         (parse_define): Check macro name is not __VA_ARGS__.
876         (save_expansion): Check identifier in non-varargs-macro is
877         not __VA_ARGS__.  Don't flag GNU_VARARGS.
878         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
879         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
880          than per-token GNU_VARARGS.
881         * cpplib.h (GNU_VARARGS): Remove.
882         (GNU_REST_ARGS): New.
883
884 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
885
886         * i386.md (call_pop, call, call_value_pop): Do not set
887         current_function_uses_pic_offset_table for calls to static
888         functions or indirect calls.
889
890 2000-07-07  Jim Wilson  <wilson@cygnus.com>
891
892         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
893         is_predicate_reg, then take max write_count of register pair.
894
895 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
896
897         * tradcpp.c (main): Rename label `include' to `add_include' to
898         avoid conflicts with variable `include' in traditional C.
899
900 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
901
902         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
903
904 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
905
906         * sibcall.c (uses_addressof): Add INMEM argument, check for
907         current_function_internal_arg_pointer outside of MEM rtxs in addition
908         to ADDRESSOFs.
909         (sequence_uses_addressof): Update caller.
910
911 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
912
913         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
914         and friends.
915
916 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
917
918         * system.h (UNION_INIT_ZERO): New macro for initializing union
919         members in structs.
920
921         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
922
923 2000-07-07  Neil Booth  <NeilB@earthling.net>
924
925         * cpp.texi: Update.
926
927 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
928
929         * final.c (final): Detect out of bounds array access to
930         the insn_lengths array.
931
932 2000-07-07  Kazu Hirata  <kazu@hxi.com>
933
934         * fold-const.c (fold): Fix a comment typo.
935
936 2000-07-07  Neil Booth  <NeilB@earthling.net>
937
938         * cpp.texi: Update to new lexer.
939
940 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
941
942         * tradcpp.c: New file.
943         * tradcif.y: New file.
944         * tradcif.c: New generated file.
945
946         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
947         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
948         dependencies of C.  Install tradcpp from install-common, in
949         $(libsubdir).
950
951 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
952
953         * cppinit.c: Include cppdefault.h.  Refer to
954         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
955         to GCC_INCLUDE_DIR and its length.
956         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
957         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
958         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
959         cppdefault.h.
960         (include_defaults_array): Move to cppdefault.c.
961
962         * cppdefault.h: New file.
963         * cppdefault.c: New file.
964
965         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
966         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
967         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
968         this file.
969
970 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
971
972         * reload.c (push_reload): When seeing if can reuse a register,
973         check extra registers against widest of INMODE and OUTMODE.
974
975 2000-07-06  Neil Booth  <NeilB@earthling.net>
976
977         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
978         based on full length of predicate.
979
980 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
981
982         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
983         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
984
985 2000-07-05  Kazu Hirata  <kazu@hxi.com>
986
987         * h8300-proto.h: Fix formatting.
988         * h8300.c: Likewise.
989         * h8300.h: Likewise.
990
991 2000-07-05  Jim Wilson  <wilson@cygnus.com>
992
993         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
994         CCmode.
995
996 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
997
998         * invoke.texi: Fix minor typos
999         * md.texi: Fix minor typos
1000
1001 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
1002
1003         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
1004
1005 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1006
1007         * cpplex.c: Don't include sys/mman.h.
1008         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
1009
1010         * cpplib.c: Include sys/mman.h and obstack.h.
1011         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
1012         obstack.
1013         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
1014         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
1015         bother freeing if stack entries (they will be freed with their buffer).
1016         (do_endif): Free if stack entries from the buffer obstack.
1017         (push_conditional): Allocate if stack entries from the buffer obstack.
1018
1019         (find_answer): Rename to _cpp_find_answer.
1020         (do_assert, do_unassert): Update.
1021
1022         * cpphash.h: Update prototypes.
1023         (xobnew): New convenience macro.
1024         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
1025         Update comments.
1026         (struct cpp_hashnode): Remove disabled field.
1027
1028         * cppinit.c: Don't include hashtab.h or splay-tree.h.
1029         (report_missing_guard): Moved to cppfiles.c.
1030         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
1031         cpp_init_includes.
1032         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
1033         cpp_cleanup_includes.  Don't destroy hashtab or
1034         all_include_files here.
1035         (cpp_finish): Use _cpp_report_missing_guards.
1036
1037         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
1038         (_cpp_init_include_table): Rename _cpp_init_includes.
1039         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
1040
1041         * cppexp.c (parse_assertion): Update for new name of
1042         find_answer.
1043
1044         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
1045
1046 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1047
1048         * cpplib.c (do_ident): s/VSPACE/EOF/
1049
1050 2000-07-05  Neil Booth  <NeilB@earthling.net>
1051
1052         * cpplex.c: Fix trigraph replacement within strings.
1053
1054 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1055
1056         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
1057
1058         * xcoffout.c (assign_type_number): Constify.
1059         (xcoffout_source_file): Add static prototype.  Don't needlessly
1060         cast away const-ness.
1061
1062 2000-07-04  Jason Merrill  <jason@redhat.com>
1063
1064         * frame.h (frame_state): Move base_offset to end.
1065
1066 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1067
1068         * calls.c (emit_library_call_value_1): Revert previous change.
1069
1070 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1071
1072         * fix-header.c (struct partial_proto): Remove unnecessary fields.
1073         (recognized_extern, recognized_function, read_scan_file):
1074         Update for new scheme.
1075         (check_protection): It's still a multiple include guard even
1076         if it doesn't always trigger.
1077         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
1078         new scheme.
1079         * scan.h: Declare struct cpp_token.  Update prototypes.
1080
1081 2000-07-03  Neil Booth  <neilb@earthling.net>
1082             Zack Weinberg  <zack@wolery.cumb.org>
1083
1084         Complete overhaul of the lexer and macro expander.
1085
1086         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
1087         arg, arglist, argdata, reflist, collect_objlike_expansion,
1088         collect_funlike_expansion, collect_params,
1089         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
1090         unsafe_chars, macarg, compare_defs, special_symbol,
1091         scan_arguments, stringify, funlike_macroexpand,
1092         _cpp_quote_string, monthnames): Delete.
1093         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
1094         _cpp_create_definition, _cpp_dump_definition,
1095         dump_hash_helper): Adjust.
1096         (find_param, count_params, parse_define, var_args_str,
1097         check_macro_redefinition, save_expansion): New.
1098
1099         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
1100         parse_string, output_line_command, trigraph_replace,
1101         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
1102         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
1103         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
1104         _cpp_skip_rest_of_line): Modify.
1105
1106         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
1107         find_position, null_warning, bump_column, expand_name_space,
1108         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
1109         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
1110         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
1111         _cpp_prescan): Delete.
1112
1113         (dump_param_spelling, process_directive, lex_next,
1114         is_macro_disabled, stringify_arg, expand_context_stack,
1115         output_token, make_string_token, alloc_number_token,
1116         special_symbol, duplicate_token, maybe_paste_with_next,
1117         can_paste, prevent_macro_expansion, restore_macro_expansion,
1118         get_temp_token, release_temp_tokens, quote_string,
1119         token_names, token_spellings, _cpp_expand_name_space,
1120         _cpp_glue_header_name, _cpp_reserve_name_space,
1121         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
1122         placemarker_token, eof_token, cpp_context, macro_args,
1123         get_raw_token, parse_arg, parse_args, save_token,
1124         push_arg_context, push_macro_context, pop_context,
1125         do_pop_context, free_macro_args, _cpp_get_line,
1126         _cpp_run_directive): New.
1127
1128         * cpplib.c (validate_else, parse_include, push_conditional,
1129         pass_thru_directive, read_line_number, parse_ifdef,
1130         detect_if_not_defined, _cpp_check_directive, do_define,
1131         do_undef, do_include, do_import, do_include_next, do_error,
1132         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
1133         top_pragmas, do_pragma_gcc, do_pragma_implementation,
1134         do_pragma_poison, do_pragma_system_header,
1135         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
1136         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
1137         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
1138         cpp_defined): Update for new scheme.
1139         (strtoul_for_line, get_define_node, dump_macro_name,
1140         _cpp_check_linemarker, _cpp_parse_assertion): New.
1141         (_cpp_handle_directive, do_pragma_default): Delete.
1142
1143         * cpphash.h (struct predicate): Now struct answer.
1144         (enum spell_type, struct token_spelling, struct directive,
1145         directive_handler): New.
1146         Update prototypes.  Remove unused macros.
1147         * cpplib.h: Update prototypes.  Remove unused macros,
1148         structure definitions, and fields.
1149
1150         * cpperror.c (print_containing_files, v_message): Adjust.
1151         * cppexp.c (parse_assertion, lex, parse_escape,
1152         _cpp_parse_expr): Adjust.
1153         * cppfiles.c (open_include_file, _cpp_execute_include,
1154         _cpp_compare_file_date, cpp_read_file, read_include_file):
1155         Adjust.
1156         * cppinit.c (dump_special_to_buffer): Delete.
1157         (append_include_chain, merge_include_chains, cpp_reader_init,
1158         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1159         cpp_finish, handle_option, print_help): Adjust.
1160         * cppmain.c (main): Adjust.
1161
1162 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1163
1164         * cppspec.c (lang_specific_driver): Use double quotes in error
1165         message.
1166
1167 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1168
1169         * calls.c (emit_library_call_value_1): Use valreg instead
1170         of hard_libcall_value.
1171
1172 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1173
1174         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1175         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1176         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1177         (movhi): Likewise.
1178         (movqi): Likewise.
1179         (movdf): Likewise.
1180         (movsf): Likewise.
1181         (movdi): Likewise.
1182         (movti): Likewise.
1183
1184         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1185         mode instead of wider_mode is being used.
1186
1187 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1188
1189         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1190         of 'r'. Use q_regs_operand.
1191         (andsi_1+2): Use q_regs_operand.
1192
1193 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1194
1195         * builtins.c (get_memory_rtx): Always put into alias set 0.
1196
1197 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1198
1199         * config/arm/arm.md: Fix post increment and pre increment
1200         peepholes so that they do not generate UNPREDICATBLE opcodes.
1201         (ie ones where the increment clobbers the source/destination).
1202
1203 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1204
1205         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1206         change too big for -mtiny-stack" a warning, if larger than 63.
1207         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1208         always safe to use on possible future devices.
1209         (function_prologue): Write SPH before SPL, for consistency.
1210         If interrupt_func_p true, we know we have enabled interrupts.
1211         (avr_num_arg_regs): New function.  Round up to even number of
1212         bytes if no -mpack-args or if calling a libgcc function.
1213         (function_arg, function_arg_advance): Use it.
1214         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1215         Output "movw" if available.
1216         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1217         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1218         (asm_output_section_name): Add blanks for consistent output.
1219         (encode_section_info): Set TREE_READONLY for progmem data to
1220         avoid gas warnings about changed section attributes.
1221         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1222         even numbered registers on devices with "movw".
1223         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1224         (TARGET_SWITCHES): Mark help strings for translation.
1225         Add new -mpack-args and -menhanced switches.
1226         (TARGET_OPTIONS): Mark help strings for translation.
1227         (progmem_section): Add section attributes.
1228         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1229         Output "movw" if available.
1230         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1231         New patterns.
1232         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1233         call convention (arguments aligned on even registers).
1234         (_cleanup, _exit): Make weak symbols libc can override.
1235
1236 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1237
1238         * fp-bit.h: New file.
1239
1240         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1241         Comment #endif statements.
1242         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1243
1244 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1245
1246         * gcse.c (compute_pre_data): Compute ae_kill using other local
1247         properties instead of calling compute_ae_kill.
1248
1249         * alias.c (init_alias_analysis): Do not call
1250         prologue_epilogue_contains until after reload has completed.
1251
1252 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1253
1254         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1255         (genrtl_finish_compound_stmt): Likewise.
1256         (genrtl_compound_stmt): Change to return void.
1257
1258         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1259         move code from here to ...
1260         (genrtl_compound_stmt): ... here.
1261         (genrtl_finish_compound_stmt): Remove.
1262         (expand_stmt): Add comment.
1263
1264 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1265
1266         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1267         and VOID_TYPE_P.
1268
1269 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1270
1271         * cpplib.h (struct cpp_reader): New field include_depth.
1272         (struct cpp_printer): Rename last_bsd to last_id.
1273         * cppfiles.c (read_include_file): Bump include_depth.
1274         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1275         (output_line_command): Output correct #line if a header
1276         is including itself and is not protected against multiple inclusion.
1277         Use include_depth instead of buffer_stack_depth, last_id instead of
1278         last_bsd.
1279         * cppinit.c (cpp_start_read): Initialize last_id instead of
1280         last_bsd.
1281
1282 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1283
1284         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1285         (c-semantics.o): New target.
1286
1287         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1288         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1289         (genrtl_clear_out_block): Likewise.
1290         (genrtl_goto_stmt): Likewise.
1291         (genrtl_expr_stmt): Likewise.
1292         (genrtl_decl_stmt): Likewise.
1293         (genrtl_if_stmt): Likewise.
1294         (genrtl_while_stmt): Likewise.
1295         (genrtl_do_stmt): Likewise.
1296         (genrtl_return_stmt): Likewise.
1297         (genrtl_for_stmt): Likewise.
1298         (genrtl_break_stmt): Likewise.
1299         (genrtl_continue_stmt): Likewise.
1300         (genrtl_scope_stmt): Likewise.
1301         (genrtl_switch_stmt): Likewise.
1302         (genrtl_case_label): Likewise.
1303         (genrtl_begin_compound_stmt): Likewise.
1304         (gerntl_finish_compound_stmt): Likewise.
1305         (genrtl_compound_stmt): Likewise.
1306         (genrtl_asm_stmt): Likewise.
1307         (genrtl_decl_cleanup): Likewise.
1308         (DECL_ANON_UNION_ELEMS): Likewise.
1309         (emit_local_var): Likewise.
1310         (make_rtl_for_local_static): Likewise.
1311         (expand_cond): Likewise.
1312         (expand_stmt): Likewise.
1313         (c_expand_return): Likewise.
1314         (c_expand_start_case): Likewise.
1315         (do_case): Likewise.
1316         (COMPOUND_STMT_NO_SCOPE): Likewise.
1317         (c_expand_asm_operands): Likewise.
1318         (NEW_FOR_SCOPE_P): New macro.
1319         (expand_expr_stmt_fn): New type.
1320
1321         (set_current_function_name_declared): Likewise.
1322         (current_function_name_declared): Likewise.
1323         (lang_expand_stmt): Likewise.
1324         (stmts_are_full_exprs_p): Likewise.
1325         (anon_aggr_type_p): Likewise.
1326         (lang_expand_expr_stmt): Likewise.
1327         (build_case_label): Likewise.
1328
1329         * c-decl.c (lang_expand_expr_stmt): Initialize.
1330         (stmts_are_full_exprs_p): Define.
1331         (current_function_name_declared): Likewise.
1332         (do_case): Likewise.
1333         (lang_expand_stmt): Likewise.
1334         (set_current_function_name_declared): Likewise.
1335         (anon_aggr_type_p): Likewise.
1336
1337         * c-semantics.c: New file.
1338         (expand_cond): Moved from cp/semantics.c.
1339         (genrtl_do_pushlevel): Likewise.
1340         (genrtl_clear_out_block): Likewise.
1341         (genrtl_goto_stmt): Likewise.
1342         (genrtl_expr_stmt): Likewise.
1343         (genrtl_decl_stmt): Likewise.
1344         (genrtl_if_stmt): Likewise.
1345         (genrtl_while_stmt): Likewise.
1346         (genrtl_do_stmt): Likewise.
1347         (genrtl_return_stmt): Likewise.
1348         (genrtl_for_stmt): Likewise.
1349         (genrtl_break_stmt): Likewise.
1350         (genrtl_continue_stmt): Likewise.
1351         (genrtl_scope_stmt): Likewise.
1352         (genrtl_switch_stmt): Likewise.
1353         (genrtl_case_label): Likewise.
1354         (genrtl_begin_compound_stmt): Likewise.
1355         (genrtl_finish_compound_stmt): Likewise.
1356         (genrtl_compound_stmt): Likewise.
1357         (genrtl_asm_stmt): Likewise.
1358         (genrtl_decl_cleanup): Likewise.
1359         (make_rtl_for_local_static): Moved from cp/decl.c.
1360         (emit_local_var): Likewise.
1361         (expand_stmt): Define.
1362
1363         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1364         (c_expand_return): Likewise.
1365         (c_expand_start_case): Likewise.
1366
1367 2000-07-01  Richard Henderson  <rth@cygnus.com>
1368
1369         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1370         with the low 13 bits set.
1371         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1372         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1373         of the low 13 bits into a CONST plus an adddi3.
1374         (load_symptr): Set RTX_UNCHANGING_P.
1375
1376 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1377
1378         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1379         * c-common.c (ridpointers): Declare.
1380         * c-common.h (enum rid): Declare.
1381         (NORID): Likewise.
1382         (ridpointers): Likewise.
1383         * c-lex.c (ridpointers): Don't declare.
1384         (init_lex): Initialize ridpointers.
1385         * c-lex.h (enum rid): Don't declare.
1386         (NORID): Likewise.
1387         (RID_FIRST_MODIFIER): Likewise.
1388         (ridpointers): Likewise.
1389
1390 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1391
1392         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1393         have global scope.
1394
1395 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1396
1397         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1398         always an error.
1399
1400 2000-06-30  Catherine Moore  <clm@cygnus.com>
1401
1402         * c-common.c (decl_attributes):  Differentiate between
1403         types and type decls for alignment.
1404
1405 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1406
1407         * cpp.texi: Document #pragma GCC dependency
1408         * cppfiles.c (open_include_file): Set date to unknown.
1409         (_cpp_compare_file_date): New function.
1410         (read_include_file): Set file date.
1411         * cpphash.h (struct include_file): Add date member.
1412         (_cpp_compare_file_date): Prototype.
1413         * cpplib.c (parse_include): Add trail parameter. Adjust.
1414         (do_include): Adjust parse_include call.
1415         (do_import): Likewise.
1416         (do_include_next): Likewise.
1417         (gcc_pragmas): Add dependency pragma.
1418         (do_pragma_dependancy): New pragma.
1419
1420 2000-06-29  Jason Merrill  <jason@redhat.com>
1421
1422         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1423         no operands.
1424
1425 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1426
1427         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1428         a volatile mem and FR_REGS.
1429
1430 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1431
1432         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1433         * c-common.h (flag_const_strings): Declare.
1434         (warn_format): Likewise.
1435         (flag_traditional): Likewise.
1436         (flag_isoc99): Likewise.
1437         (warn_parentheses): Likewise.
1438         (warn_conversion): Likewise.
1439         (C_TYPE_OBJECT_P): Likewise.
1440         (C_TYPE_INCOMPLETE_P): Likewise.
1441         (C_TYPE_FUNCTION_P): Likewise.
1442         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1443         (C_EXP_ORIGINAL_CODE): Likewise.
1444         (build_unary_op): Likewise.
1445         (build_binary_op): Likewise.
1446         (lvalue_p): Likewise.
1447         (default_conversion): Likewise.
1448         (common_type): Likewise.
1449         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1450         (C_TYPE_INCOMPLETE_P): Likewise.
1451         (C_TYPE_FUNCTION_P): Likewise.
1452         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1453         (C_EXP_ORIGINAL_CODE): Likewise.
1454         (common_type): Likewise.
1455         (default_conversion): Likewise.
1456         (build_binary_op): Likewise.
1457         (build_unary_op): Likewise.
1458         (lvalue_p): Likewise.
1459         (flag_const_strings): Likewise.
1460         (warn_format): Likewise.
1461         (warn_conversion): Likewise.
1462         (flag_traditional): Likewise.
1463         (flag_isoc99): Likewise.
1464         (warn_parentheses): Likewise.
1465
1466 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1467
1468         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1469
1470         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1471         same.  Only tie XFmode with XFmode.
1472
1473 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1474
1475         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1476         * Makefile.in: Update deps.
1477
1478 2000-06-29  Andrew Haley  <aph@cygnus.com>
1479
1480         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1481         to true.
1482
1483 2000-06-29  Andrew Haley  <aph@cygnus.com>
1484
1485         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1486         bytes: remove the multiply by 8.
1487
1488 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1489
1490         * rtl.c : Revert NLS changes.
1491         * gcc.c : Fix bug in display_help introced by my last changes.
1492
1493 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1494
1495         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1496         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1497
1498 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1499
1500         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1501
1502 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1503
1504         * c-decl.c : Mark strings for translation.
1505         (parmlist_tags_warning): Use distinct messages instead
1506         of conditional expressions.
1507         * diagnostic.c (v_message_with_decl): Mark string for translation.
1508         * gcc.c: Mark messages for translation.
1509         (display_help): Combine messages into one string where necessary.
1510         * mips-tfile: Add intl.h. Mark messages for translation.
1511         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1512         messages for translation.
1513         * timevar.c: Mark messages for translation.
1514         * tlink.c: Likewise.
1515         * toplev.c: Likewise.
1516
1517 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1518
1519         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1520
1521         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1522         use -isystem instead of -idirafter.
1523         * i386/i386-interix.h: Likewise.
1524
1525 2000-06-28  Jason Merrill  <jason@redhat.com>
1526
1527         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1528         unless DWARF2_DEBUGGING_INFO is defined.
1529         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1530
1531 2000-06-28  Richard Henderson  <rth@cygnus.com>
1532
1533         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1534
1535 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1536
1537         * cpplex.c (output_line_command): Output correct #line if a header
1538         is including itself and is not protected against multiple inclusion.
1539
1540 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1541
1542         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1543         ENFILE, close all cached file descriptors and try again.
1544         (_cpp_execute_include): Keep a count of the number of times
1545         each header is included.
1546         (close_cached_fd): New function.
1547         * cpphash.h (struct include_file): Rename before to
1548         include_count; all users updated.  Make include_count and sysp
1549         unsigned short.
1550         * cppinit.c (cpp_finish): If -H, report headers that could use
1551         reinclude guards.
1552         (report_missing_guard): New function.
1553
1554 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1555
1556         * i386.md (prologue_set_got): Set length_immediate field.
1557         (testqi_ccno_1):  Add missing '@' character.
1558
1559 2000-06-27  Jason Merrill  <jason@redhat.com>
1560
1561         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1562         DWARF_FRAME_REGNUM.
1563
1564 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1565
1566         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1567         unsigned macros available.
1568
1569 2000-06-27  Richard Henderson  <rth@cygnus.com>
1570
1571         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1572         epilogue_deallocate_stack.
1573
1574         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1575         completers for UNORDERED and ORDERED as well.
1576         * config/ia64/ia64.md (bunordered, bordered): New.
1577         (sunordered, sordered): New.
1578
1579 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1580
1581         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1582         * i386.c (ix86_attr_length_default): Kill.
1583         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1584         New.
1585         * i386-protos.h (ix86_attr_length_default): Kill
1586         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1587         Add prototype
1588         * i386.md (attribute type): Add "test".
1589         (attribute length_prefix): Kill.
1590         (attribute length_opcode): Kill.
1591         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1592         prefix_rep, prefix_0f, modrm): New.
1593         (attribute length): Compute using the new attributes.
1594         (attribute pent_prefix): New.
1595         (attribute pent_pair): Compute using pent_prefix.
1596         (all insn patterns): Set mode,modrm and immediate_length attributes where
1597         needed.
1598         (cmpsi patterns): Compute sizes propertly for test instruction.
1599         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1600         (movstricthi_xor, movstrictqi_xor): New patterns.
1601         (andsi/andhi): Use splitters to generate xor instructions.
1602         (xorqi_ext_1): New pattern.
1603         (movstricthi->movstricthi_xor peep2): New.
1604
1605 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1606
1607         * i386.md (addqi_low_1): Remove.
1608
1609 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1610
1611         * 1750a.h: Mark help strings for options/switches for translation.
1612         * a29k.h: Likewise.
1613         * alpha.h: Likewise.
1614         * arm.h: Likewise.
1615         * pe.h: Likewise.
1616         * riscix.h: Likewise.
1617         * c4x.h: Likewise.
1618         * clipper.h: Likewise.
1619         * convex.h: Likewise.
1620         * elxsi.h: Likewise.
1621         * fr30.h: Likewise.
1622         * fx80.h: Likewise.
1623         * h8300.h: Likewise.
1624         * i370.h: Likewise.
1625         * cygwin.h: Likewise.
1626         * dgux.h: Likewise.
1627         * djgpp.h: Likewise.
1628         * i386.h: Likewise.
1629         * osf1elf.h: Likewise.
1630         * osfrose.h: Likewise.
1631         * sco5.h: Likewise.
1632         * win32.h: Likewise.
1633         * i860.h: Likewise.
1634         * paragon.h: Likewise.
1635         * i960.h: Likewise.
1636         * ia64.h: Likewise.
1637         * m32r.h: Likewise.
1638         * mcore.h: Likewise.
1639         * mips.h: Likewise.
1640         * mn10300.h: Likewise.
1641         * ns32k.h: Likewise.
1642         * pdp11.h: Likewise.
1643         * pj.h: Likewise.
1644         * aix.h: Likewise.
1645         * aix41.h: Likewise.
1646         * aix43.h: Likewise.
1647         * beos.h: Likewise.
1648         * rs6000.h: Likewise.
1649         * sysv4.h: Likewise.
1650         * linux.h: Likewise.
1651         * linux64.h: Likewise.
1652         * sp64-elf.h: Likewise.
1653         * sparc.h: Likewise.
1654         * splet.h: Likewise.
1655         * v850.h: Likewise.
1656         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1657         for translation.
1658         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1659         Properly document option and mark for translation.
1660         * sp86x-elf.h: Likewise.
1661
1662 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1663
1664         Add MMX and SSE registers to i386 machine description.
1665         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1666         ix86_local_alignment): Declare.
1667
1668         * i386.h (TARGET_MMX, TARGET_SSE): New.
1669         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1670         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1671         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1672         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1673         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1674         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1675         (RETURN_IN_MEMORY): Handle MMX/SSE.
1676         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1677         also get stack space.
1678         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1679         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1680         (MMX_REGISTER_NAMES): New.
1681         (ALIGN_MODE_128): New macro.
1682         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1683         (DATA_ALIGNMENT): Likewise.
1684         (LOCAL_ALIGNMENT): Likewise.
1685         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1686         TARGET_MMX/TARGET_SSE.
1687         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1688         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1689         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1690         SSE/MMX regs and something else.
1691         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1692         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1693         3 if moving between MMX regs and something else.
1694
1695         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1696         (regclass_map): Add MMX/SSE registers.
1697         (print_operand): Add code to print XMMWORD as appropriate.
1698         (ix86_split_movdi): Abort for MMX regs.
1699         (init_cumulative_args): Also allow SSE_REGS
1700         (function_arg_advance, function_arg): Likewise
1701         (print_reg): Support 'm'.  Add case for TImode.
1702         (override_options): TARGET_SSE implies TARGET_MMX.
1703         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1704         New functions.
1705
1706         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1707         FIRST_SSE_REG.
1708         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1709         memory.
1710         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1711         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1712
1713 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1714
1715         * ssa.c (struct rename_set_data): Change the name of field
1716         'set_dest' to 'old_reg'.  Add comments.
1717         (struct rename_context): Change the name of 'set_data' to
1718         'new_renames'.  Add new field 'done_renames'.
1719         (create_delayed_rename): New function.
1720         (apply_delayed_renames): New function.
1721         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1722         SUBREGs and similar by emitting a move.
1723         (new_registers_for_updates): Delete, functionality moved to
1724         apply_delayed_renames.
1725         (rename_block): Handle moves emitted by rename_insn_1 by putting
1726         them into a SEQUENCE with the original insn.  Add sanity checks
1727         and comments.
1728         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1729         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1730
1731 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1732             Jason Merrill <jason@redhat.com>
1733
1734         * dwarf2.h (enum dwarf_call_frame_info): Add
1735         DW_CFA_def_cfa_expression.
1736         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1737         dw_loc_descr_struct entry.
1738         (struct cfa_loc): New structure to track a CFA location.
1739         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1740         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1741         offset, plus handle DW_CFA_def_cfa_expression.
1742         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1743         cfa_loc record.
1744         (dwarf2out_def_cfa): Entry point maintained for compatability.
1745         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1746         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1747         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1748         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1749         cfa_reg.
1750         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1751         sequences for the new DW_CFA_def_cfa_expression record.
1752         (dwarf2out_frame_debug): Use new variables/fields.A
1753         (output_cfi): Handle DW_CFA_def_cfa_expression.
1754         (output_cfa_loc): New function to generate a CFI record for
1755         DW_CFA_def_cfa_expression.
1756         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
1757         a dw_loc_descr sequeunce.
1758         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
1759         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
1760         size_of_locs, output_loc_operands, output_loc_sequence): Move into
1761         unwind info section.
1762         * frame.h (frame_state): Add base_offset and indirect fields.
1763         * frame-dwarf2.c (decode_stack_op): New function to interpret a
1764         dw_loc_descr operation.
1765         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
1766         (struct frame_state): Add base offset and indirect fields.
1767         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
1768
1769 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
1770
1771         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
1772         Make warnings about implicit int be pedwarns in C99.  Don't warn
1773         about duplicate type qualifiers in C99.
1774         (start_function): Make warning about implict int return type be a
1775         pedwarn in C99.
1776         * c-lex.c (yylex): Don't warn about `long long' in C99.
1777         * c-typeck.c (c_expand_return): In C99, always pedwarn about
1778         `return' with no value in function returning non-void.
1779
1780 2000-06-26  Richard Henderson  <rth@cygnus.com>
1781
1782         * c-typeck.c (pedwarn_c99): New.
1783         * diagnostic.c (verror, vwarning, vpedwarn): Export.
1784         * toplev.h: Prototype them.
1785
1786 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1787
1788         * c-typeck.c (digest_init): Return error_mark_node node when
1789         TREE_TYPE (init)  == error_mark_node.
1790
1791 2000-06-26  Philipp Thomas  <pthomas@suse.de>
1792
1793         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
1794         test for msgfmt without path instead.
1795         * configure: Rebuilt.
1796
1797 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1798
1799         * gengenrtl.c (special_rtx): Fix typo in comment.
1800
1801 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1802
1803         * mklibgcc.in (LIB2FUNCS): Add missing space.
1804
1805 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1806
1807         * tree.h (enum tree_index): Add vector type nodes.
1808         Add accessor macros for them.
1809         (TYPE_REPRESENATION_TYPE): New macro.
1810         * tree.c (build_common_tree_nodes_2): Build these nodes.
1811         (finish_vector_type): New function.
1812         * c-common.c (type_for_mode): Handle vector modes.
1813         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
1814
1815         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
1816         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
1817         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
1818         (gen_type_die): Likewise.
1819         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
1820         (fundamental_type_code): Likewise.
1821         (type_is_fundamental): VECTOR_TYPEs aren't.
1822         (output_type): Handle VECTOR_TYPEs.
1823
1824 2000-06-25  Kazu Hirata  <kazu@hxi.com>
1825
1826         * config/arm.c: Fix a comment typo.
1827         * config/arm.h: Likewise.
1828
1829 2000-06-25  Philipp Thomas  <pthomas@suse.de>
1830
1831         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
1832         compiler found.
1833         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
1834         * configure: Rebuilt.
1835
1836 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
1837
1838         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
1839
1840 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1841
1842         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
1843         libgcc.a.
1844
1845 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
1846
1847         * collect2.c (resolve_lib_name): Move '/' check out of loop.
1848
1849 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
1850
1851         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
1852
1853 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
1854
1855         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
1856         last_unconditional_cleanup.
1857
1858 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1859
1860         * tree.def (VECTOR_TYPE): New node type.
1861         * tree.h: Adjust some comments to reflect addition of vector types.
1862         (TYPE_VECTOR_SUBPARTS): New macro.
1863         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
1864         * c-convert.c (convert): Likewise.
1865         * convert.c (convert_to_integer): Handle vector modes.
1866         (convert_to_vector): New function.
1867         * convert.h (convert_to_vector): Declare.
1868         * expr.c (convert_move): Handle vector modes.
1869         * expmed.c (extract_bit_field): Don't abort for vector modes.
1870
1871 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
1872
1873         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
1874         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
1875         New functions, common code moved from function_{prologue,epilogue}
1876         and extended to support the -mtiny-stack option.
1877         (function_prologue, function_epilogue): Use them.
1878         Use lo8/hi8 consistently for asm output readability.
1879         (avr_hard_regno_mode_ok): New function.
1880         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
1881         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
1882         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
1883         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
1884         Write SPH before SPL.
1885         (*movqi): No need to disable interrupts for just one "out"
1886         in alternative 5.  Change length attribute from 4 to 1.
1887         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
1888         Write SPH before SPL.
1889
1890 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1891
1892         * rtl.texi (Vector Operations): New node.
1893         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
1894         (Conversions): Add ss_truncate, us_truncate.
1895         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
1896         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
1897         US_TRUNCATE): New rtx codes.
1898         * machmode.def: Add vector modes.
1899         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
1900         MODE_VECTOR_FLOAT.
1901         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
1902         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
1903         (VECTOR_MODE_P): New.
1904
1905 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
1906
1907         * cpp.texi: Clarify #pragma GCC namespace.
1908
1909 2000-06-24  Philipp Thomas  <pthomas@suse.de>
1910
1911         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
1912         all catalogs specified in ALL_LINGUAS.
1913         * configure: Rebuilt.
1914
1915 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1916
1917         * config/sparc/sparc.md (reload_outdi+1): Handle
1918         HOST_BITS_PER_WIDE_INT == 64 case correctly.
1919         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
1920
1921 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
1922
1923         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
1924         struct vs. scalar-ness when -fno-strict-aliasing.
1925
1926 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1927
1928         * cpplib.c (struct pragma_entry): New structure.
1929         (pragma_dispatch): Pragma dispatcher.
1930         (top_pragmas, gcc_pragmas): New static variables.
1931         (do_pragma): Use pragma_dispatch.
1932         (do_pragma_gcc): New pragma handler.
1933         * cpp.texi: Update.
1934
1935 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1936
1937         * calls.c (compute_argument_addresses): Force stack slots into
1938         alias set 0.
1939         * expr.c (emit_push_insn): Force pushes into alias set 0.
1940
1941 2000-06-23  Richard Henderson  <rth@cygnus.com>
1942
1943         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
1944         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
1945
1946 2000-06-22  Jason Merrill  <jason@redhat.com>
1947
1948         * toplev.c (compile_file): Always call timevar_print.
1949         * Makefile.in (calls.o): Depend on TIMEVAR_H.
1950
1951 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1952
1953         * varasm.c (constant_descriptor): Make contents unsigned char.
1954         (mark_const_hash_entry): Adjust.
1955         (const_hash): Just hash the code of unknown nodes.
1956         (compare_constant_1): Adjust for unsigned char.
1957         Use language specific expander on unknown nodes.
1958         (record_constant_1): Likewise.
1959
1960 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1961
1962         * cppfiles.c (cpp_make_system_header): New function.
1963         * cpplib.h: Prototype it.
1964         * cpplib.c (do_line, do_pragma_system_header): Use it.
1965         * fix-header.c (read_scan_file): Use it.
1966
1967         * fix-header.c (check_macro_names): Cast second arg of
1968         cpp_defined to const unsigned char *.
1969         (read_scan_file): Make getchar_call const unsigned char.
1970
1971 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1972
1973         * cppfiles.c: Include splay-tree.h, not hashtab.h.
1974         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
1975         (destroy_include_file_node): New.
1976         (_cpp_init_include_hash): Rename _cpp_init_include_table.
1977         Create a splay tree, not a hash table.
1978         (open_include_file): Look up the path in the include table,
1979         do the multiple include optimization here, etc.
1980         (cpp_included): Walk the path.
1981         (find_include_file): Just walk the path calling
1982         open_include_file, or call it directly for an absolute path.
1983         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
1984         scheme.
1985         (read_include_file): Update for new scheme.  Don't close the
1986         file unless reading fails.
1987         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
1988
1989         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
1990         (struct include_file): New.
1991         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
1992         macros.
1993         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
1994         Update prototypes.
1995
1996         * cppinit.c: Include splay-tree.h.
1997         (cpp_reader_init, cpp_cleanup): Update.
1998
1999         * cpplib.h (struct cpp_buffer): Change ihash field to
2000         'struct include_file *inc'.  Remove system_header_p.
2001         (struct cpp_reader): Change all_include_files to a
2002         struct splay_tree_s *.
2003
2004         * cpplex.c: Update all references to cpp_buffer->ihash and/or
2005         cpp_buffer->system_header_p.
2006         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
2007
2008         * Makefile.in (SPLAY_TREE_H): New macro.
2009         (cppfiles.o, cppinit.o): Update dependencies.
2010
2011 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
2012
2013         * invoke.texi (g++): "g++" is not a script anymore.
2014
2015 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2016
2017         * function.c (round_down): Delete obsolete prototype.
2018
2019         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
2020
2021 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
2022
2023         * configure.in: Use 'test a = b' not 'test a == b'.
2024         * configure: Regen.
2025
2026         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
2027
2028         * Makefile.in: Remove all references to HOST_INTLLIBS.
2029
2030         * cpplex.c (parse_name): Don't warn about $ in identifiers if
2031         skipping.
2032
2033 2000-06-20  Philipp Thomas  <pthomas@suse.de>
2034
2035         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
2036         for PA 2.0.
2037
2038 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2039
2040         * Take REG_INC notes into account.
2041
2042 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
2043
2044         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
2045         (primary: IDENTIFIER): Just call build_external_ref.
2046         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2047         Regenerate.
2048         * c-lex.c (lastiddecl): Remove.
2049         (yylex): Replace all instances of lastiddecl with local
2050         variables.
2051
2052         * c-typeck.c (build_external_ref): New function.  Treat decls
2053         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
2054         Look up the decl from the id here.  Call lookup_objc_ivar.
2055         * c-lang.c (lookup_objc_ivar): Stub.
2056         * objc/objc-act.c (lookup_objc_ivar): New function.
2057
2058         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
2059         * c-lex.h: Don't declare lastiddecl.
2060
2061 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
2062
2063         * c-common.h (IF_COND): Added documentation.
2064         (THEN_CLAUSE): Likewise.
2065         (ELSE_CLAUSE): Likewise.
2066         (WHILE_COND): Likewise.
2067         (WHILE_BODY): Likewise.
2068         (DO_COND): Likewise.
2069         (DO_BODY): Likewise.
2070         (RETURN_EXPR): Likewise.
2071         (EXPR_STMT_EXPR): Likewise.
2072         (FOR_INIT_STMT): Likewise.
2073         (FOR_COND): Likewise.
2074         (FOR_EXPR): Likewise.
2075         (FOR_BODY): Likewise.
2076         (SWITCH_COND): Likewise.
2077         (SWITCH_BODY): Likewise.
2078         (CASE_LOW): Likewise.
2079         (CASE_HIGH): Likewise.
2080         (GOTO_DESTINATION): Likewise.
2081         (COMPOUND_BODY): Likewise.
2082         (ASM_CV_QUAL): Likewise.
2083         (ASM_STRING): Likewise.
2084         (ASM_OUTPUTS): Likewise.
2085         (ASM_INPUTS): Likewise.
2086         (ASM_CLOBBERS): Likewise.
2087         (DECL_STMT_DECL): Likewise.
2088         (STMT_EXPR_STMT): Likewise.
2089         (LABEL_STMT_LABEL): Likewise.
2090
2091         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
2092         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
2093         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
2094         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2095
2096 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2097
2098         * configure.in (--enable-checking): Update --help doc to reflect
2099         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
2100
2101 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2102
2103         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
2104
2105         * function.c (put_var_into_stack): Don't reference DECL_ fields
2106         if input is a SAVE_EXPR.
2107         Use set_mem_attributes in COMPLEX case.
2108
2109 2000-06-18  Richard Henderson  <rth@cygnus.com>
2110
2111         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
2112         (ia64_file_start): Declare.
2113         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
2114         (GR_REGNO_P): Likewise.
2115         * config/ia64/ia64.c: Many prototypes.
2116         (ia64_reg_numbers): Constify.
2117         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
2118         (ia64_section_threshold): Make unsigned.
2119         (ia64_print_operand): Constify.
2120         (fix_range): Constify.
2121         (ia64_init_builtins): Don't compare signed vs unsigned.
2122         (ia64_expand_builtin): Likewise.
2123
2124         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
2125         (CONSTRAINT_OK_FOR_Q): New.
2126         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
2127         (movsf_internal, movdf_internal): Likewise.
2128         (cmovdi_internal): Rewrite so that constraints and predicates match;
2129         simplify splitters.
2130         (cmovsi_internal): Likewise.
2131
2132         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
2133         (ASM_FILE_START): New.
2134         * config/ia64/ia64.c (ia64_file_start): New.
2135         (rtx_needs_barrier): Handle pred.rel.mutex.
2136         (emit_predicate_relation_info): New.
2137         * config/ia64/ia64.md (pred_rel_mutex): New.
2138         * config/ia64/linux.h (ASM_SPEC): Define.
2139         * config/ia64/sysv4.h (ASM_FILE_START): Define.
2140
2141         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
2142         filtering global register variables.
2143
2144 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2145
2146         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
2147
2148 2000-06-17  Michael Meissner  <meissner@redhat.com>
2149
2150         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
2151         not present and there is a field after a '-'.
2152
2153 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2154
2155         * fixinc/check.tpl:  finish the implementation of multiple tests
2156         for a single fix
2157         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2158         (io_quotes_def): add a second test
2159         (various): reorder `files' so that "limits.h" is never first
2160         * fixinc/tests/base/*: update the testing output
2161
2162 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2163
2164         * gcc.texi: Remove reference to stupid.c.
2165
2166 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2167
2168         * c-common.c (c_tree_code_type): New array.
2169         (c_tree_code_length): Likewise.
2170         (c_tree_code_name): Likewise.
2171         (add_c_tree_codes): New function.
2172
2173         * c-common.h (add_c_tree_codes): Declare.
2174         (enum c_tree_code): New enum.
2175
2176         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2177
2178 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2179
2180         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2181         select pattern to also match macro defs with only one argument.
2182
2183 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2184
2185         * i386.md: Create new [right,left] rotate and right shift
2186         patterns to optimize shift by 1 bit for certain ia32 processors.
2187         Update patterns which perform left shifts to optimize shift by
2188         1 bit for certain ia32 processors.
2189         * i386.c (const_int_1_operand): New predicate.
2190         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2191         * i386-protos.h (const_int_1_operand): Prototype.
2192
2193 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2194
2195         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2196
2197 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2198
2199         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2200         LABEL_REFs.
2201
2202 2000-06-14  Richard Henderson  <rth@cygnus.com>
2203
2204         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2205
2206         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2207         auto-inc code.
2208
2209         * print-rtl.c (print_rtx): Emit space before mem alias set.
2210
2211 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2212
2213         * rs6000.c (expand_block_move): Fix typo in earlier change.
2214         (print_operand): Remove unused variables neg and op.
2215         (toc_hash_mark_entry): Fix prototype.
2216
2217 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2218
2219         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2220         (THEN_CLAUSE): Likewise.
2221         (ELSE_CLAUSE): Likewise.
2222         (WHILE_COND): Likewise.
2223         (WHILE_BODY): Likewise.
2224         (DO_COND): Likewise.
2225         (DO_BODY): Likewise.
2226         (RETURN_EXPR): Likewise.
2227         (EXPR_STMT_EXPR): Likewise.
2228         (FOR_INIT_STMT): Likewise.
2229         (FOR_COND): Likewise.
2230         (FOR_EXPR): Likewise.
2231         (FOR_BODY): Likewise.
2232         (SWITCH_COND): Likewise.
2233         (SWITCH_BODY): Likewise.
2234         (CASE_LOW): Likewise.
2235         (CASE_HIGH): Likewise.
2236         (GOTO_DESTINATION): Likewise.
2237         (COMPOUND_BODY): Likewise.
2238         (ASM_CV_QUAL): Likewise.
2239         (ASM_STRING): Likewise.
2240         (ASM_OUTPUTS): Likewise.
2241         (ASM_INPUTS): Likewise.
2242         (ASM_CLOBBERS): Likewise.
2243         (DECL_STMT_DECL): Likewise.
2244         (STMT_EXPR_STMT): Likewise.
2245         (LABEL_STMT_LABEL): Likewise.
2246         (SCOPE_BEGIN_P): Likewise.
2247         (SCOPE_END_P): Likewise.
2248         (SCOPE_STMT_BLOCK): Likewise.
2249         (SCOPE_NULLIFIED_P): Likewise.
2250         (SCOPE_NO_CLEANUPS_P): Likewise.
2251         (SCOPE_PARTIAL_P): Likewise.
2252         (ASM_VOLATILE_P): Likewise.
2253         (STMT_LINENO): Likewise.
2254         (STMT_LINENO_FOR_FN_P): Likewise.
2255
2256         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2257         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2258         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2259         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2260         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2261
2262         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2263
2264 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2265
2266         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2267         writable in parts of the GCC code.
2268
2269         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2270         specification match cast.
2271
2272 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2273
2274         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2275         * configure, config.in: Rebuilt.
2276         * sys-protos.h: Similarly.
2277
2278 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2279
2280         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2281         * basic-block.h (EDGE_COMPLEX): ... here.
2282
2283         * loop.c (check_dbra_loop): Specify the register when
2284         generating REG_NONNEG notes and don't generate duplicates.
2285
2286 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2287
2288         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2289         (struct tree_type, struct tree_decl): Add user_align member.
2290         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2291         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2292         and DECL_USER_ALIGN 0, cap alignment to this value.
2293         (place_field): Likewise.
2294         (finalize_type_size): Set TYPE_USER_ALIGN.
2295         (layout_type): Likewise.
2296         (initialize_sizetypes): Likewise.
2297         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2298         DECL_USER_ALIGN to 1.
2299         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2300         (xfer_tag): Set TYPE_USER_ALIGN.
2301         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2302         (finish_enum): Likewise.
2303         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2304         (expand_anon_union_decl): Likewise.
2305         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2306         (build_index_type): Set TYPE_USER_ALIGN.
2307         (build_range_type): Likewise.
2308         (build_common_tree_nodes_2): Likewise.
2309         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2310
2311 2000-06-13  Andreas Jaeger  <aj@suse.de>
2312
2313         * configure.in: Use --enable-checking=misc,tree,gc by default if
2314         no --enable-checking option is given and for
2315         --enable-checking=yes.
2316         * configure: Rebuilt.
2317
2318 2000-06-13  Richard Henderson  <rth@cygnus.com>
2319
2320         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2321         (__throw): Don't pass the address of a label.
2322
2323         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2324         current_function_is_leaf.
2325         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2326         instead of reg_names[RETURN_ADDRESS_REGNUM].
2327         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2328         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2329         from RETURN_ADDRESS_REGNUM.  Update all uses.
2330         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2331         zero instead of null on failure.
2332         (ELIMINABLE_REGS): Add ra->b0 elimination.
2333         (CAN_ELIMINATE): Update accordingly.
2334         (INITIAL_ELIMINATION_OFFSET): Likewise.
2335         (REGISTER_NAMES): Use an illegal assembler name for
2336         RETURN_ADDRESS_POINTER_REGNUM.
2337
2338 2000-06-13  Richard Henderson  <rth@cygnus.com>
2339
2340         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2341         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2342         (REG_CLASS_NAMES): Likewise.
2343         (REG_CLASS_CONTENTS): Likewise.
2344         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2345         (HARD_REGNO_MODE_OK): Remove references to them.
2346         (REGNO_REG_CLASS): Likewise.
2347         (REG_CLASS_FROM_LETTER): Likewise.
2348         (CLASS_MAX_NREGS): Likewise.
2349         (REGISTER_MOVE_COST): Likewise.
2350         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2351         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2352         (movqi_internal): Special case moves from zero.
2353         (movhi_internal, movsi_internal): Likewise.
2354         (movdi_internal): Likewise.  Fill out "f" constraints.
2355         (movsf_internal): Fill out "r" constraints.
2356         (movdf_internal): Likewise.
2357
2358 2000-06-13  Richard Henderson  <rth@cygnus.com>
2359
2360         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2361         alive before reload.
2362
2363         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2364         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2365         (remove_dependence): Always define.
2366         (set_sched_group_p): New.
2367         (sched_analyze_2): Use it.
2368         (sched_analyze_insn): Don't special-case naked uses.  Look for
2369         and extend in_post_call_group_p.
2370         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2371         (init_deps): Clear in_post_call_group_p.
2372
2373 2000-06-13  Richard Henderson  <rth@cygnus.com>
2374
2375         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2376         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2377         and hard-coded tests.
2378         (simplify_set): Likewise.
2379         (gen_lowpart_for_combine): Likewise.
2380         * emit-rtl.c (gen_lowpart_common): Likewise.
2381         * global.c (find_reg): Likewise.
2382         * local-alloc.c (find_free_reg): Likewise.
2383         * recog.c (register_operand): Likewise.
2384         * regclass.c (init_reg_sets_1): Likewise.
2385         (record_operand_costs, regclass): Likewise.
2386         * reload.c (push_reload): Likewise.
2387         * reload1.c (choose_reload_regs): Likewise.
2388         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2389         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2390         Update all references.
2391         * regs.h (struct reg_info_def): Likewise.
2392         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2393         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2394         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2395
2396         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2397         (CLASS_CANNOT_CHANGE_MODE_P): New.
2398         * config/mips/mips.h: Likewise.
2399         * config/pa/pa32-regs.h: Likewise.
2400         * config/pa/pa64-regs.h: Likewise.
2401         * config/rs6000/rs6000.h: Likewise.
2402         * config/sh/sh.h: Likewise.
2403         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2404         (CLASS_CANNOT_CHANGE_MODE_P): New.
2405         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2406         * config/d30v/d30v.h: Likewise.
2407
2408 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2409
2410         * configure.in: Add AC_TYPE_GETGROUPS test.
2411         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2412         * configure: Rebuilt.
2413         * config.in: Rebuilt.
2414
2415 2000-06-13  Richard Henderson  <rth@cygnus.com>
2416
2417         * explow.c (set_mem_attributes): Do nothing for NULL type.
2418
2419 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2420
2421         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2422         correctly.
2423
2424 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2425
2426         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2427
2428 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2429
2430         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2431
2432 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2433
2434         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2435         * configure: Rebuilt.
2436
2437 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2438
2439         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2440         We now default to ELF for the i386, and a.out is the special case.
2441         * configure:  Rebuilt.
2442
2443 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2444
2445         * final.c (final_scan_insn): Delete notes between cc0 setter and
2446         user when restarting from setter.
2447
2448 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2449
2450         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2451         cast to squelch signed/unsigned warnings.
2452
2453 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2454
2455         * cpplib.c (handle_directive): Print non-NUL-terminated string
2456         with %.*s.
2457
2458 2000-06-12  Michael Meissner  <meissner@redhat.com>
2459
2460         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2461         path if the machine needs extra support to do conditional
2462         execution.
2463
2464 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2465
2466         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2467         to print the alias set.
2468         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2469
2470 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2471
2472         * config/float-vax.h: Add GFLOAT defines.
2473
2474 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2475
2476         * configure.in: Update tm dependencies for MPE.
2477         * configure: Rebuilt.
2478
2479 2000-06-12  H.J. Lu  <hjl@gnu.org>
2480
2481         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2482
2483 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2484
2485         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2486         (CPP_SPEC): Change mthreads to pthread.
2487         (LIB_SPEC): Likewise.
2488         (STARTFILE_SPEC): Likewise.
2489         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2490         (CPP_SPEC): Change mthreads to pthread.
2491         (LIB_SPEC): Likewise.
2492         (STARTFILE_SPEC): Likewise.
2493         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2494         * rs6000.c (reg_or_arith_cint_operand): New.
2495         (num_insns_constant_wide): Decorate unsigned constant.
2496         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2497         * rs6000.md (addsi3): Use new predicate.
2498         (subsi3, adddi3, subdi3): Likewise.
2499
2500 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2501
2502         * c-common.c (lang_get_alias_set): Fix typo.
2503
2504 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2505
2506         * flow.c (mark_used_regs): Revert last change.
2507         (life_analysis): Remove PROP_AUTOINC if running after reload.
2508         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2509
2510 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2511
2512         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2513         has run.
2514
2515 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2516
2517         * bb-reorder.c (build_scope_forest): Initialize variable
2518         `curr_scope'.
2519
2520         * calls.c (expand_call): Likewise for variables
2521         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2522
2523         * i386.c (function_arg_advance, function_arg): Cast to avoid
2524         signed/unsigned warnings.
2525
2526         * i386.h (MEMORY_MOVE_COST): Likewise.
2527
2528         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2529         `else_start' and `else_end'.
2530
2531         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2532
2533         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2534
2535 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2536
2537         * Makefile.in (libintl.a): Depend on intl.all.
2538
2539 2000-06-09  H.J. Lu  (hjl@gnu.org)
2540
2541         * Makefile.in (c-parse.o): Also depend on output.h.
2542
2543 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2544
2545         * mcore-protos.h: discards const warning removal.
2546         * mcore.c: discards const warning removal.
2547
2548 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2549
2550         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2551         the beginning of the file.
2552
2553 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2554
2555         * real.h:  Add prototype for ldexp.
2556
2557 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2558
2559         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2560         it ggc_alloc, drop second argument, never clear returned memory.
2561         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2562         (ggc_alloc_cleared): New.
2563         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2564         ggc_alloc_obj.  Remove ggc_alloc macro.
2565         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2566
2567         * rtl.c (rtvec_alloc): Clear the vector always.
2568         (rtx_alloc): Clear the first word always.  Remove dirty
2569         obstack tricks (this routine is no longer a bottleneck).
2570         * tree.c (make_node): Clear the new node always.
2571         (make_tree_vec): Likewise.
2572         (tree_cons): Clear the common structure always.
2573         (build1): Likewise; also, clear TREE_COMPLEXITY.
2574         * gengenrtl.c: Use puts wherever possible.  Remove extra
2575         newlines.
2576         (gendef): Clear the first word of an RTX in the generator
2577         function, irrespective of ggc_p.  Initialize '0' slots to
2578         NULL.
2579         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2580         thin wrapper macro around obstack_alloc.
2581
2582         * stmt.c (expand_fixup): Use ggc_alloc.
2583         * c-typeck.c (add_pending_init): Use ggc_alloc.
2584         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2585         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2586         const0_rtx when it is created.
2587         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2588         we are not in a function.
2589
2590         * tree.c (tree_class_check_failed): Make second arg an int.
2591         * tree.h: Update prototype.
2592
2593 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2594
2595         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2596         of an error_mark_node.
2597
2598 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2599
2600         * config/avr/avr.c (asm_output_section_name): bugfix.
2601
2602 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2603
2604         * timevar.def: Add TV_EXPAND.
2605         * timevar.c (timevar_print): Update timing information.
2606         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2607
2608         * stmt.c (expand_return): Check for error_mark_node.
2609
2610 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2611
2612         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2613
2614         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2615         variable against filename expansion when it contains "char *".
2616
2617         * system.h (SSIZE_MAX): Delete backup definition.
2618
2619         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2620         instead of SSIZE_MAX.
2621
2622 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2623
2624         * configure.in: Check whether gas supports -relax.
2625         * configure, config.in: Rebuilt.
2626         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2627         (EXTRA_SPECS): Add asm_relax.
2628         (ASM_SPEC): Add %(asm_relax).
2629         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2630         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2631         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2632         (ASM_SPEC): Add %(asm_relax).
2633         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2634         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2635         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2636         instead of mov, so that gas can further optimize it.
2637
2638 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2639
2640         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2641         size_of_sleb128.
2642         (value_format, case dw_val_class_const): Use sdata format.
2643         (output_die): Call output_sleb128.
2644
2645 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2646
2647         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2648         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2649         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2650         (output_die, case dw_val_class_unsigned_const): Correct call to
2651         ASM_OUTPUT_DWARF_DATA8.
2652         (output_die, case dw_val_class_long_long): Use
2653         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2654         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2655         pos is zero.
2656
2657         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2658         (output_function_prologue): Fix mispelling.
2659         (output_function_prologue, output_function_epilogue): Reorder to
2660         match ia64.c definition order.
2661         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2662         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2663         Use r3 instead of r2 for large stack restores.
2664         (ia64_output_end_prologue): New function.
2665         (process_set): Emit ".restore sp" for epilogue stack restores.
2666         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2667
2668 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2669
2670         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2671         incomplete types.
2672
2673 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2674
2675         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2676
2677 2000-06-08  Denis Perchine <dyp@perchine.com>
2678
2679         * frame.c (start_fde_sort): Don't malloc (0).
2680
2681 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2682
2683         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2684         error_mark_node.
2685         * print-tree.c (print_node): The transparent_union_flag means
2686         different things for unions and arrays.  Do not inspect it
2687         with TYPE_TRANSPARENT_UNION.
2688
2689 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2690
2691         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2692         returned NULL.
2693
2694 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2695
2696         * config/avr/avr.c (asm_output_section_name): output section
2697         attributes.
2698         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2699
2700 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2701
2702         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2703         fields into header field.
2704         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2705         macros to access length, flags, and version info from header field.
2706         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2707         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2708         (__do_global_ctors_aux): Fix caller.
2709         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2710         prologue_flag to header.  Pass to read_P_record.
2711         (read_P_record): New argument header.  Implement P4 format.
2712         Multiply P7_T_SIZE by 16.
2713         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2714         get_unwind_record.  Copy r to region_header if r is a header record.
2715         (print_all_records): Likewise.
2716         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2717         (__get_personality, __get_except_table): Likewise.
2718         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2719
2720 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2721
2722         * configure.in (AC_C_INLINE): Added.
2723         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2724         * configure: Regenerate.
2725
2726 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2727
2728         * c-common.h (c_language_kind): New type.
2729         (c_language): New variab.e
2730         * c-common.c (lang_get_alias_set): Don't put structures in
2731         non-zero alias sets in C++.
2732         * c-decl.c (c_language): Define it.
2733         * c-lex.c (doing_objc_thang): Remove.
2734         * c-tree.h (doing_objc_thang): Make it a macro.
2735         * objc/objc-act.c (lang_decode_option): Set c_language, not
2736         doing_objc_thang.
2737
2738 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2739
2740         * diagnostic.c (output_maximum_width): Remove.
2741         (doing_line_wrapping): Tweak.
2742         (diagnostic_buffer): New object.
2743         (global_output_buffer): New object.
2744         (output_destroy_prefix): New function.
2745         (default_initialize_buffer): Likewise.
2746         (reshape_diagnostic_buffer): Likewise.
2747         (initialize_diagnostics): Likewise.
2748         (output_clear): Tweak.
2749         (line_wrapper_printf): Adjust call to init_output_buffer.
2750         (vline_wrapper_message_with_location): Likewise.  Use
2751         output_destroy_prefix.
2752         (v_message_with_decl): Likewise.
2753
2754         * diagnostic.h (struct output_buffer): Constify prefix.
2755         (init_output_buffer, output_get_prefix): Constify.
2756         (diagnostic_message_length_per_line): Likewise.
2757         (reshape_diagnostic_buffer): Declare.
2758         (default_initialize_buffer): Declare.
2759         (initialize_diagnostics): Declare.
2760         (diagnostic_buffer): Declare new obbject.
2761
2762         * toplev.c: #include diagnostic.h
2763         (display_help): Document diagnostic formatting options.
2764         (decode_f_option): Handle diagnostic formatting options.
2765         (main): Setup initialization for diagnostic messages outputter.
2766
2767         * toplev.h (set_message_length): Remove.
2768
2769         * Makefile.in (toplev.o): Depends upon diagnostic.h
2770
2771         * invoke.texi : Document diagnostics formatting options.
2772
2773 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
2774
2775         * configure.in (Make the links): Typo fix : the file that must be
2776         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
2777         * configure: File rebuilt.
2778
2779 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
2780
2781         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
2782         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
2783         space.
2784         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
2785         emergency eh_context buffer, if malloc fails.
2786         (__eh_free): Moved from cp/exception.cc. Release to emergency
2787         eh_context buffer, if appropriate.
2788
2789 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
2790
2791         * expr.c (store_expr): Fix typo.
2792
2793 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2794
2795         * m68k.c (legitimize_pic_address): Move prototype ...
2796
2797         * m68k-protos.h (legitimize_pic_address): ... here.
2798
2799         * m68k.md (legitimize_pic_address): Delete prototypes.
2800         (untyped_call): Invoke GEN_CALL(), not gen_call().
2801
2802         * nextstep.c: Include system.h and toplev.h.
2803         (get_directive_line): Don't prototype.
2804         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
2805
2806         * nextstep.h (handle_pragma): Prototype.
2807         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
2808         objc_section_init ...
2809         (EXTRA_SECTION_FUNCTIONS): ... here.
2810
2811 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2812
2813         * sdbout.c (struct sdb_file): NAME now const.
2814         (sdbout_init): input_file_name now const.
2815         (sdbout_start_new_source_file): FILENAME now const.
2816         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
2817
2818 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2819
2820         * c-typeck.c (build_conditional_expr): Handle complex data types.
2821
2822 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2823
2824         * explow.c (maybe_set_unchanging): New function, broken out from...
2825         (set_mem_attributes): Here.
2826         * expr.h: Declare it.
2827         * stmt.c (expand_decl): Call it.
2828
2829 2000-06-05  Richard Henderson  <rth@cygnus.com>
2830
2831         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
2832         while looking for a register to inherit from.
2833
2834 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2835
2836         * Makefile.in (libgcc.ready): Lose.
2837         (libgcc.mk): Just use mv, not move-if-change.
2838         (LIBGCC_DEPS): New macro.
2839         (libgcc.a): Use it.
2840         (stmp-multilib): Likewise.
2841         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
2842         it rather than the directories themselves.
2843         (LIB2ADD): Depend on the list file rather than 'force'.
2844
2845         * fold-const.c (fold, case COND_EXPR): Elide conversion between
2846         cv-qualified versions of types.
2847
2848 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2849
2850         * config/sparc/sparc.c (short_branch): Correct error in range
2851         computation.
2852
2853 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2854
2855         * fixinc/inclhack.def: New include hacks for ultrix.
2856         * (nested_ultrix): Replaced by ultrix_nested_svc.
2857         * (ultrix_atof_param): test_text string added.
2858         * (ultrix_ifdef): Modified select string.
2859
2860 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
2861
2862         * objc/objc-act.c (generate_method_descriptors): Register
2863         objc_method_prototype_template as a GC root.
2864         (comp_method_with_proto): Register function_type as a GC root.
2865         (comp_proto_with_proto): Replace function_type1 and
2866         function_type2 with a two-element array; register it as a GC root.
2867
2868         (generate_protocols, build_protocol_initializer,
2869         generate_protocol_list, build_category_initializer,
2870         build_shared_structure_initializer): Do not cache cast_type
2871         and/or cast_type2.
2872
2873 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2874
2875         * function.c (assign_parms): Add missing argument to set_mem_attributes
2876         call.
2877
2878 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2879
2880         * tree.h (VOID_TYPE_P): New macro.
2881         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
2882         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
2883         (get_parm_info): Likewise.
2884         (store_parm_decls): Likewise.
2885         (combine_parm_decls): Likewise.
2886         (finish_function): Likewise.
2887         * c-typeck.c (build_function_call): Likewise.
2888         (build_binary_op): Likewise.
2889         (build_conditional_expr): Likewise.
2890         (internal_build_compound_expr): Likewise.
2891         (convert_for_assignment): Likewise.
2892         * stmt.c (expend_expr_stmt): Likewise.
2893         (warn_if_unused_value): Likewise.
2894         (expand_return): Likewise.
2895         * c-parse.in (primary): Likewise.
2896         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2897         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2898
2899 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2900
2901         * alias.c (get_alias_set): If compnent is addressable, use alias
2902         set of component.
2903         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
2904         (grokdeclarator): Likewise.
2905         * c-typeck.c (common_type): Likewise.
2906
2907 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
2908
2909         * Makefile.in (OBJS): Remove dyn_string.o
2910         (dyn-string.o): Delete rule.
2911         * dyn-string.c: Delete file
2912         * dyn-string.h: Likewise.
2913
2914 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2915
2916         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
2917         subdir.
2918
2919 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
2920
2921         * alias.c (record_component_aliases): Don't inspect
2922         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
2923
2924 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
2925
2926         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
2927         it with the pattern to do machine dependent work.
2928         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
2929         use it to modify the true/false tests used in conditional
2930         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
2931         defined, invoke them if the conversion to conditional execution
2932         was successful or not.
2933
2934         * tm.texi (IFCVT_MODIFY_TESTS): Document.
2935         (IFCVT_MODIFY_INSN): Ditto.
2936         (IFCVT_MODIFY_FINAL): Ditto.
2937         (IFCVT_MODIFY_CANCEL): Ditto.
2938
2939 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
2940
2941         * toplev.c (main): Fix misspellings of possibility and language.
2942
2943 2000-06-03  Richard Henderson  <rth@cygnus.com>
2944
2945         * alias.c (record_alias_subset): Initialize has_zero_child in the
2946         superset.
2947
2948 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
2949
2950         * arm.md (untyped_call): Use GEN_CALL macro.
2951
2952 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
2953
2954         * Makefile.in: Use $(MAKE) not "make"
2955
2956 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2957
2958         * alias.c (struct alias_set_entry): New field has_zero_child.
2959         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
2960         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
2961         do nothing.
2962         Call record_component_aliases for aggregate types.
2963         (record_alias_subset): Set has_zero_child.
2964         (record_component_aliases, case ARRAY_TYPE): Do nothing if
2965         TYPE_NONALIASES_COMPONENT.
2966         (record_component_aliases, case RECORD_TYPE): Test
2967         DECL_NONADDRESSABLE_P.
2968         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
2969         of TREE_ADDRESSABLE.
2970         * calls.c (initialize_argument_information): Only test
2971         TYPE_TRANSPARENT_UNION for UNION_TYPE.
2972         * function.c (assign_parms): Likewise.
2973         * integrate.c (function_cannot_inline_p): Likewise.
2974         * stor-layout.c (finish_record_layout): Don't call
2975         record_component_aliases.
2976         * tree.h (struct tree_int_cst): Use struct tree_common.
2977         (struct tree_real_cst, struct tree_string): Likewise.
2978         (struct tree_complex, struct tree_identifier): Likewise.
2979         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
2980         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
2981         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
2982         (TYPE_NONALIASES_COMPONENT): New macro.
2983         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
2984         (DECL_NONADDRESSABLE_P): New macro.
2985         (struct tree_decl): Reorder bits for clarity of how many left;
2986         add non_adressable.
2987
2988 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
2989
2990         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
2991         * mklibgcc.in (force): New target.
2992         Make LIB2ADD stuff depend on it.
2993
2994 2000-06-02  Richard Henderson  <rth@cygnus.com>
2995
2996         * alias.c (lang_get_alias_set): Remove.
2997         (get_alias_set): Call it directly, not indirectly.
2998         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
2999         * c-common.h (c_get_alias_set): Don't declare.
3000         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
3001         * expr.h (lang_get_alias_set): Declare as function, not pointer.
3002
3003 2000-06-02  Bruce Korb  <bkorb@gnu.org>
3004
3005         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
3006         (server_setup):  define the server's master pid
3007         (close_server):  actually do the deed IFF we are the server's master
3008
3009 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
3010
3011         * c-common.c (c_get_alias_set): Check whether signed_type did not
3012         return its argument before calling get_alias_set on the result.
3013
3014 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
3015
3016         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
3017
3018 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3019
3020         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
3021         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
3022         for TARGET_NOMACSAVE.
3023         (NOMACSAVE_BIT): Define.
3024         (TARGET_NOMACSAVE): Define.
3025         (TARGET_SWITCHES): Add "nomacsave".
3026
3027 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
3028
3029         * sh.md (untyped_call): Remove excess parameters
3030
3031 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
3032
3033         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
3034         match that used before the conversion to c_fix style.
3035         * fixinc/fixincl.x: regenerate
3036
3037 2000-06-01  Stan Cox  <scox@cygnus.com>
3038
3039         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
3040         macro argument typo.
3041
3042 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
3043
3044         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
3045         error message.
3046         * cpplib.c (parse_include): Remove support for VAX-C
3047         "#include starlet" misfeature.
3048
3049 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
3050
3051         * cppfiles.c: conditionally define O_BINARY.
3052         (open_include_file): pass O_BINARY to open().
3053
3054 2000-06-01  Richard Henderson  <rth@cygnus.com>
3055
3056         * i960.c (i960_br_predict_opcode): Remove.
3057         (i960_print_operand) [+]: Emit branch prediction hints.
3058         (i960_function_arg): Return early for VOIDmode.
3059         (i960_round_align): Return early for incomplete types.
3060         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3061         * i960.md (all conditional branches): Add "%+".
3062
3063 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3064
3065         * alias.c (get_alias_set): Don't call language-specific routine more
3066         than is needed and clean up code a bit.
3067         * c-common.c (c_get_alias_set): All references whose type
3068         is char get alias set 0, but character types need not.
3069         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
3070         (make_decl_rtl): Don't call it for FUNCTION_DECL.
3071
3072 2000-06-01  Bruce Korb  <bkorb@gnu.org>
3073
3074         * fixinc/tests/base/...: new base result files
3075
3076 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
3077
3078         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
3079         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
3080         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
3081         will use FCOMI.
3082
3083 2000-06-01  Richard Henderson  <rth@cygnus.com>
3084
3085         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
3086
3087         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
3088
3089 2000-05-31  Richard Henderson  <rth@cygnus.com>
3090
3091         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
3092         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
3093         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
3094
3095 2000-05-31  Richard Henderson  <rth@cygnus.com>
3096
3097         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
3098         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
3099         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
3100         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3101         * config/ia64/ia64.md (all branch/call patterns): Use %+.
3102
3103 2000-05-31  Richard Henderson  <rth@cygnus.com>
3104
3105         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
3106
3107 2000-05-31  Richard Henderson  <rth@cygnus.com>
3108
3109         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
3110         remaining edges.
3111         (find_if_block): Allow THEN with no outgoing edges.
3112         * flow.c (merge_blocks_nomove): Remove a barrier not following
3113         a jump as well.
3114
3115 2000-05-31  Richard Henderson  <rth@cygnus.com>
3116
3117         * flow.c (propagate_block): Move initialization of mem_set_list ...
3118         (init_propagate_block_info): ... here.  Also track blocks with
3119         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
3120
3121 2000-05-31  Richard Henderson  <rth@cygnus.com>
3122
3123         * jump.c (jump_optimize_1): Revert 05-18 change.
3124
3125 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
3126
3127         * invoke.texi: Remove documentation for -fguiding-decls.
3128
3129 2000-05-31  Richard Henderson  <rth@cygnus.com>
3130
3131         * configure.in: Fix typo last change.
3132
3133 2000-05-31  Philipp Thomas  <pthomas@suse.de>
3134
3135         * configure.in (enable-nls): Enable if build == host, i.e. when
3136         not building a canadian cross compiler.
3137         (enable-maintainer-mode): Added for use with i18n.
3138         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
3139         cross section of ALL_LINGUAS and LINGUAS.
3140         * configure: Rebuild.
3141
3142 2000-05-31  Bruce Korb  <bkorb@gnu.org>
3143
3144         * fixinc/check.tpl: rework to use test result tree
3145         * fixinc/Makefile.in: change invocation of check script
3146         * fixinc/check.diff: No longer needed
3147         * fixinc/fixincl.x: regenerate
3148         * fixinc/inclhack.def:  add new tests
3149         * fixinc/tests/base/arch/i960/archI960.h:  New test result
3150         * fixinc/tests/base/curses.h: modified test result
3151         * fixinc/tests/base/stdio.h: ditto
3152         * fixinc/tests/base/time.h: ditto
3153         * fixinc/tests/base/sys/asm.h: ditto
3154         * fixinc/tests/base/sys/stat.h: ditto
3155         * fixinc/tests/base/sys/wait.h: ditto
3156
3157 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3158
3159         * except.c (clear_function_eh_region): Do not free NULL.
3160
3161 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3162
3163         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3164         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3165         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3166         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3167         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3168         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3169         (get_alias_set): Likewise.
3170         Major rework to do more things and allow language-specific code
3171         to just handle special-cases.
3172         (record_alias_subset): Args are HOST_WIDE_INT.
3173         (record_component_alias): Local vars are HOST_WIDE_INT.
3174         Don't handle COMPLEX_EXPR.
3175         (get_varargs_alias_set): Moved from builtins.c.
3176         (get_frame_alias_set): New function.
3177         * builtins.c (expand_builtin_return_address): Use frame alias set.
3178         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3179         for setjmp buffer.
3180         (get_memory_rtx): Rework to use set_mem_attributes.
3181         (get_varargs_alias_set): Deleted from here.
3182         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3183         (c_find_base_decl): Deleted from here.
3184         (c_get_alias_set): Remove many cases and rework to just handle
3185         C-specific cases.
3186         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3187         * c-decl.c (rtl.h, expr.h): Now included.
3188         (init_decl_processing): Call record_component_aliases on array types.
3189         (grokdeclarator): Likewise.
3190         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3191         * c-typeck.c (common_type): Call record_component_aliases for array.
3192         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3193         Set all save areas to the frame alias set.
3194         * calls.c (initialie_argument_information): Call set_mem_attributes.
3195         (compute_argument_addresses, expand_call): Likewise.
3196         * explow.c (set_mem_attributes): New function.
3197         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3198         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3199         LEN and OFFSET now HOST_WIDE_INT.
3200         (clear_by_pieces): Similar changes.
3201         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3202         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3203         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3204         (clear_by_pieces_1): Likewise.
3205         (emit_push_insn): Call set_mem_attributes.
3206         (expand_expr, case INDIRECT_REF): Likewise.
3207         (expand_expr, case VAR_DECL): Call change_address.
3208         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3209         tree_low_cst.
3210         (get_varargs_alias_set, get_frame_alias_set): New decls.
3211         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3212         (new_alias_set, set_mem_attributes): Likewse.
3213         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3214         (assign_stack_temp_for_type): Likewise.
3215         Can split slot even if alias set since can copy.
3216         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3217         (assign_temp): Use host_integerp and tree_low_cst.
3218         (put_var_into_stack): Properly handle SAVE_EXPR.
3219         (put_addressof_into_stack): Likewise.
3220         (assign_parms): Call set_mem_attributes.
3221         Delete #if 0 code.
3222         (fix_lexical_address): Put reference to chain into frame alias set.
3223         (expand_function_start): Call set_mem_attributes.
3224         * integrate.c (expand_inline_function): Likewise.
3225         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3226         * regmove.c (try_apply_stack_adjustment): Likewise.
3227         * reload.c (push_reload, make_memloc): Likewise.
3228         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3229         * rtl.def (MEM): Update comment.
3230         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3231         (move_by_pieces): Change length to HOST_WIDE_INT.
3232         (record_base_value, record_alias_subset): Delete from here.
3233         * stmt.c (expand_decl): Call set_mem_attributes.
3234         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3235         * toplev.c (compile_file): Call init_alias_once earlier.
3236         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3237         from here: now in alias.c.
3238         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3239         (struct tree_decl): Likewise.
3240         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3241         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3242         (output_constant_def, force_const_mem): Likewise.
3243
3244         * flow.c (propagate_block): If block has no successors, stores to
3245         frame are dead if not used.
3246
3247 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3248
3249         * stmt (expand_end_case): Reorder conversion sequence for jump
3250         table to avoid extra truncations.
3251
3252 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3253
3254         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3255         in the block is more than just a simple conditional branch.
3256         (noce_process_if_block): Similarly.
3257
3258 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3259
3260         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3261         queue.
3262
3263 2000-05-30  Michael Meissner  <meissner@redhat.com>
3264
3265         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3266         instructions.  Treat LO_SUM operations as loading the full integer
3267         constant.
3268
3269 2000-05-30  Richard Henderson  <rth@cygnus.com>
3270
3271         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3272
3273 2000-05-30  Richard Henderson  <rth@cygnus.com>
3274
3275         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3276
3277 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3278
3279         * fixinc/tests/*:  Added expected result files for fixinc's make check
3280         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3281
3282 2000-05-30  Richard Henderson  <rth@cygnus.com>
3283
3284         * config/alpha/alpha.md (*setne_internal): Use match_operator
3285         instead of working down from insn.
3286
3287 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3288
3289         * invoke.texi (-Wtraditional): Update WRT function macros.
3290
3291 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3292
3293         * except.c (free_exception_table): Do not free NULL.
3294
3295 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3296
3297         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3298         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3299         and skipping here.
3300
3301 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3302
3303         * flow.c (mark_used_reg): If a register is unconditionally live,
3304         remove any conditional death information.
3305
3306 2000-05-29  Richard Henderson  <rth@cygnus.com>
3307
3308         * final.c (current_output_insn): New.
3309         (final_scan_insn): Set it.
3310         * output.h: Declare it.
3311
3312 2000-05-29  Richard Henderson  <rth@cygnus.com>
3313
3314         * stor-layout.c (finalize_record_size): Fix typo.
3315
3316         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3317         if nlabel is null.
3318
3319 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3320
3321         * cpplib.h (cpp_reader): Remove if_stack.  Change
3322         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3323         * cpphash.h (struct ihash): Change control_macro to a
3324         cpp_hashnode * and shorten name to cmacro.
3325         Add NEVER_REINCLUDE constant.
3326
3327         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3328         Examine the cmacro node directly, no need to call cpp_defined.
3329         (_cpp_execute_include, read_include_file): Set cmacro to
3330         NEVER_REINCLUDE, not U"".
3331         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3332         (cpp_get_token): If pfile->skipping is true, discard text and
3333         keep scanning until we hit a directive; don't expand macros.
3334
3335         * cpplib.c (struct if_stack): Remove if_succeeded, add
3336         was_skipping. Change control_macro to a cpp_hashnode * and
3337         shorten name to cmacro.  Remove typedef IF_STACK.
3338         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3339         (conditional_skip, skip_if_group,
3340         consider_directive_while_skipping): Delete.
3341         (push_conditional): New.
3342         (_cpp_handle_directive): Don't process directives other than
3343         conditionals if we are skipping.
3344
3345         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3346         Update to new scheme.
3347         (validate_else): Skip rest of line here, unconditionally.
3348         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3349         pfile->skipping off.
3350
3351         (all): Remove `scare quotes' from error messages.
3352
3353 2000-05-29  Richard Henderson  <rth@cygnus.com>
3354
3355         * function.c (emit_return_into_block): New line_note arg; emit it.
3356         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3357         for the close brace to accompany HAVE_return.  Move all line notes
3358         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3359
3360 2000-05-29  Richard Henderson  <rth@cygnus.com>
3361
3362         * longlong.h [__alpha] (count_leading_zeros): New.
3363         (count_trailing_zeros): New.
3364         (COUNT_LEADING_ZEROS_0): New.
3365
3366         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3367         (alpha_split_conditional_move): New.
3368         * config/alpha/alpha-protos.h: Prototype them.
3369         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3370         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3371         * config/alpha/alpha.md: Update ffs cix commentary.
3372         (*ze_and_ne): New.
3373         (*nabssf2, *nabsdf2): New.
3374         (*mov[qhsd]icc_internal): Use add_operand.
3375         (if_then_else constant splitters): New.
3376         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3377         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3378
3379 2000-05-29  Richard Henderson  <rth@cygnus.com>
3380
3381         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3382         a constant to NEG or NOT when conditions allow.
3383
3384         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3385         unless both args are general_operand.  Don't canonicalize plus
3386         to ior unless it helps.
3387
3388         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3389         instead track register_life_up_to_date.  Toggle no_new_pseudos
3390         around if_convert.
3391
3392 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3393
3394         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3395         so output_operand doesn't see them.
3396
3397 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3398
3399         * lcm.c (make_preds_opaque): Fix comment.
3400         (optimize_mode_switching): Use NORMAL_MODE instead of
3401         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3402         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3403         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3404         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3405         (MODE_USES_IN_EXIT_BLOCK): Delete.
3406         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3407         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3408         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3409         (MODE_NEEDED): Don't look for USE.
3410         (EPILOGUE_USES): Define.
3411
3412 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3413
3414         * mklibgcc.in (all): Variable initialised to `libgcc'.
3415
3416 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3417
3418         * toplev.h (skip_leading_substring): New macro.
3419         * toplev.c (decode_f_option): Use skip_leading_substring instead
3420         of strncmp.
3421         (decode_W_option): Likewise.
3422
3423 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3424
3425         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3426         modify reg_names.
3427
3428 2000-05-28  Richard Henderson  <rth@cygnus.com>
3429
3430         * regclass.c (record_operand_costs): Protect reg_changes_size
3431         with CLASS_CANNOT_CHANGE_SIZE.
3432
3433         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3434
3435 2000-05-28  Richard Henderson  <rth@cygnus.com>
3436
3437         * function.c (diddle_return_value): A pcc-style struct return
3438         returns a pointer.
3439
3440 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3441
3442         * cppfiles.c: Read files in, using mmap if possible, then
3443         prescan them separately.
3444         (read_file, read_with_read): New functions.
3445         * cpplex.c: Don't define UCHAR_MAX.
3446         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3447         the file here.
3448
3449         * cppinit.c (handle_option): Automatically define __cplusplus,
3450         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3451         the respective -lang switch.
3452
3453         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3454         prototype): Move to...
3455         * cpplib.h: ... here.  Rename struct hashnode to struct
3456         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3457         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3458
3459 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3460
3461         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3462
3463         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3464         (class_can_change_size): New variable.
3465         (reg_changes_size): New variable.
3466         (init_reg_sets_1): Initialise class_can_change_size.
3467         (record_operand_costs): Remove subreg_changes_size.
3468         Don't pass it around.  Instead update reg_changes_size.
3469         (regclass): Initialise and free reg_changes_size.  If a register
3470         changes size, don't preference it to a class that contains
3471         registers that can't change size.
3472         (record_reg_classes): Don't look at subreg_changes_size.
3473
3474 2000-05-27  Richard Henderson  <rth@cygnus.com>
3475
3476         * print-rtl.c (reg_names): Remove const.
3477         * regclass.c (reg_names): Likewise.
3478         * regs.h (reg_names): Likewise.
3479         * hard-reg-set.h (reg_names): Likewise.
3480
3481 2000-05-27  Richard Henderson  <rth@cygnus.com>
3482
3483         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3484
3485 2000-05-27  Richard Henderson  <rth@cygnus.com>
3486
3487         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3488         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3489         (alpha_expand_prologue): Emit prologue_mcount if needed.
3490         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3491         * config/alpha/alpha.md (prologue_mcount): New.
3492         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3493         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3494         * config/alpha/netbsd.h: Likewise.
3495
3496 2000-05-27  Richard Henderson  <rth@cygnus.com>
3497
3498         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3499         change to config/elfos.h.
3500
3501 2000-05-27  Richard Henderson  <rth@cygnus.com>
3502
3503         * Makefile.in (resource.o): Depend on except.h.
3504         * except.h (output_exception_table_data): Prototype.
3505         * genconfig.c (gen_peephole2): Prototype.
3506         * genemit.c (main): Include ggc.h.
3507         * genoutput.c: Revert parts of last change: include errors.h
3508         (main): Set progname.
3509         * recog.c: Include hard-reg-set.h before recog.h.
3510         * resource.c: Include except.h.
3511
3512         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3513         with RTX_CODE.
3514         (alpha_write_linkage): Protect with BUFSIZ.
3515         (alpha_need_linkage): Update prototype.
3516         * config/alpha/alpha.c (function_arg): Move VMS code here.
3517         (alpha_links_base): Remove.
3518         (alpha_links): New.
3519         (mark_alpha_links_node, mark_alpha_links): New.
3520         (alpha_write_one_linkage): New.
3521         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3522         (alpha_write_linkage): Use splay_tree_foreach.
3523         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3524         to get the linkage symbol.
3525         (call_value_vms): Likewise.
3526         * config/alpha/elf.h (output_file_directive): Remove decl.
3527         (ctors_section, dtors_section): Prototype.
3528         (sbss_section, sdata_section): Prototype.
3529         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3530         (readonly_section, link_section, literals_section): Prototype.
3531         (ctors_section, dtors_section): Prototype.
3532         (vms_valid_decl_attribute_p): Remove decl.
3533         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3534
3535 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3536
3537         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3538
3539         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3540         substituting the REG in a (subreg:X (reg:Y ...)).
3541
3542 2000-05-28  Neil Booth  <NeilB@earthling.net>
3543
3544         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3545         first token of a line BOL.  Update EOF code for this.
3546         Remove illegal directive check - it appears in the (not
3547         yet committed) caller.
3548         * cpplib.h (BOL): New flag.
3549
3550 2000-05-28  Neil Booth  <NeilB@earthling.net>
3551
3552         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3553         (_cpp_free_toklist): No comment space to free.
3554         (expand_comment_space): Remove.
3555         (save_comment_space): Place the comment in the current token and
3556         not in a separate comment space.
3557         (_cpp_lex_line): Save comments during plain code and #define
3558         directives only.
3559         * cpplib.h (struct _cpp_toklist): Remove comment space.
3560
3561 2000-05-28  Neil Booth  <NeilB@earthling.net>
3562
3563         * cppexp.c (parse_assertion): Supply extra argument to
3564         _cpp_init_toklist.
3565         * cpplib.c (do_assert, do_unassert): Similarly.
3566         * cpphash.h (_cpp_init_toklist) Update.
3567         (_cpp_expand_token_space): New.
3568         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3569         * cpplex.c (_cpp_init_toklist): New argument.
3570         (parse_string2): New argument multiline_ok.
3571         (spell_token): Take a const cpp_token *.
3572         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3573         (SPELL_ macros): Replace with enum.
3574         (expand_token_space): Replace with _cpp_expand_token_space.
3575         Take COUNT argument.
3576         (IS_DIRECTIVE): Update.
3577         (_cpp_lex_line): Update token structure before parsing number.
3578         Don't assume start at beginning of token list.
3579         (save_comment): Use INIT_TOKEN_NAME.
3580
3581 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3582
3583         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3584         -Wmissing-prototypes.
3585         * configure: Regenerate.
3586         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3587
3588         * builtins.c, calls.c: Change all instances of gen_call_* or
3589         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3590         * calls.c (struct_value_size_rtx): Separate definition from
3591         initialization to avoid unused variable warning.
3592
3593         * genflags.c (gen_macro): New function.
3594         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3595         (gen_nonproto): Delete.
3596         (gen_insn): Put all insns on the same obstack.
3597         (main): Generate prototypes for everything unconditionally.
3598
3599         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3600         out check for wchar_t.
3601         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3602         * system.h: Add infrastructure for defining missing
3603         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3604         definitions of UCHAR_MAX and SSIZE_MAX.
3605         * configure: Regenerate.
3606         * config.in: Regenerate.
3607
3608         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3609         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3610         headers.
3611         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3612         libgcc2.a, or libgcc1.null.
3613
3614 2000-05-27  Richard Henderson  <rth@cygnus.com>
3615
3616         * Makefile.in (recog.o): Don't depend on resource.h.
3617         * recog.c: Don't include resource.h.
3618         (recog_last_allowed_insn): Remove.
3619         (recog_next_insn): Remove.
3620         (struct peep2_insn_data): New.
3621         (peep2_insn_data, peep2_current): New.
3622         (peep2_next_insn): New.
3623         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3624         (peep2_find_free_register): New.
3625         (peephole2_optimize): Track life information by insn as we go.
3626         * recog.h: Update declarations.
3627         * resource.c (find_free_register, reg_dead_p): Remove.
3628         * resource.h: Remove their declarations.
3629         * toplev.c: Include hard-reg-set.h before recog.h.
3630
3631         * genconfig.c (max_insns_per_peep2): New.
3632         (gen_peephole2): New.
3633         (main): Call it.
3634         * genemit.c (output_peephole2_scratches): Generate calls to
3635         peep2_find_free_register; adjust surrounding code.
3636         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3637         * genrecog.c (change_state): Don't track last_insn.
3638         (write_action): Write into *_pmatch_len before accepting.
3639         (write_tree): Adjust peephole2_insns and subroutines to match.
3640
3641         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3642
3643         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3644         (hard_int_register_operand): New.
3645         * config/alpha/alpha-protos.h: Declare it.
3646         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3647         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3648         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3649
3650 2000-05-27  Richard Henderson  <rth@cygnus.com>
3651
3652         * function.c (thread_prologue_epilogue_insns): Don't move the
3653         line note at the head of the chain.  Only force a lineno note
3654         before the end of block 0.
3655
3656 2000-05-27  Richard Henderson  <rth@cygnus.com>
3657
3658         * gensupport.c (collect_insn_data): Record the maximum number
3659         of alternatives, not the last seen.
3660
3661         * genoutput.c: Don't include errors.h.
3662         (struct data): Add lineno member.
3663         (have_error): New.
3664         (scan_operands): Use message_with_line instead of error.
3665         (validate_insn_alternatives): Likewise.
3666         (gen_insn): Accept and store the pattern's line number.
3667         (gen_peephole, gen_expand, gen_split): Likewise.
3668         (main): Don't set progname.  Pass line_no to gen_foo.
3669
3670 2000-05-27  Richard Henderson  <rth@cygnus.com>
3671
3672         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3673         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3674         * config/d30v/d30v.md (attr predicable): New.
3675         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3676         (andsi3*): Unify into one pattern.
3677         (iorsi3*, xorsi3*): Likewise.
3678         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3679         conditional return.
3680         (old cond_exec patterns): Remove.
3681         (define_cond_exec): New.
3682
3683 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3684
3685         * tree.h (TREE_CODE_LENGTH): New macro.
3686         * c-common.c (c_find_base_decl): Use it.
3687         * expr.c (safe_from_p): Likewise.
3688         * print-tree.c (print_node): Likewise.
3689         * tree.c (make_node, copy_node, get_identifier): Likewie.
3690         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3691         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3692         * fold-const.c (make_range): Likewise.
3693         (fold): Likewise; also use first_rtl_op.
3694         * c-iterate.c (collect_iterators): Use first_rtl_op.
3695         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3696         Use IS_EXPR_CODE_CLASS.
3697         (preexpand_calls): Likewise.
3698         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3699         and TREE_CODE_LENGTH.
3700         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3701
3702 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3703
3704         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3705         than '%1(%*)'.
3706         (movdi_internal64): Likewise.
3707
3708         * config/rs6000/rs6000.md: Correct order of operands for DImode
3709         boolean patterns.
3710
3711         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3712         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3713         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3714         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3715         boolean_operator for the boolean patterns without NOTs.
3716
3717         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3718         from reg_or_u_cint_operand.  Change comment and behaviour.
3719         (logical_operand): Clean up, add assertion.
3720         (non_logical_cint_operand): Also check for
3721         reg_or_logical_cint_operand.
3722         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3723         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3724         in the expander.
3725         (xorsi3): Likewise.
3726         (iordi3): Likewise.
3727         (xordi3): Likewise.
3728
3729 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3730
3731         * tree.h (struct record_layout_info): Rename to (struct
3732         record_layout_info_s).
3733         * stor-layout.c (start_record_layout): Replace
3734         `record_layout_info' with `record_layout_info_s'.
3735
3736 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3737
3738         * flow.c (find_label_refs): New function.
3739         (find_basic_blocks_1): Call it for each alternative of a call
3740         placeholder.
3741
3742 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3743
3744         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3745         of get_pc.
3746
3747 2000-05-25  Richard Henderson  <rth@cygnus.com>
3748
3749         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3750         so strict about DImode.
3751         (alpha_swapped_comparison_operator): Likewise.
3752         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3753         any integer output mode.
3754         (*setcc_internal): Likewise.
3755         (*setcc_swapped_internal): Likewise.
3756         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
3757         (*mov[qhs]icc_internal): New.
3758         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
3759
3760 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3761
3762         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
3763
3764 2000-05-25  Richard Henderson  <rth@cygnus.com>
3765
3766         * bb-reorder.c (reorder_block_def): Reorder elements for size.
3767         Remove add_jump; add next; replace flags with visited.
3768         (rbd_init): Remove.
3769         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
3770         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
3771         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
3772         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
3773         (RBI): New.
3774         (reorder_index, reorder_last_visited): Remove.
3775         (skip_insns_after_block): Rewrite to use a switch.
3776         (get_common_dest): Remove.
3777         (chain_reorder_blocks): Remove.
3778         (record_effective_endpoints): Split out from reorder_basic_blocks.
3779         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
3780         (make_reorder_chain_1): Renamed from old make_reorder_chain.
3781         Only construct the reorder chain, do not move insns.  Try harder
3782         to tail recurse.
3783         (label_for_bb, emit_jump_to_block_after): New.
3784         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
3785         and adjust the jump insns appropriately.  Fixup basic_block_info.
3786         (verify_insn_chain): Always define.
3787         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
3788         in allocation size.
3789         (make_new_scope): Don't write zeros to calloc'd space.
3790         (build_scope_forest): Rely on xrealloc to DTRT.
3791         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
3792         profile_arc_flag.  Streamline EH test.
3793
3794         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
3795         * basic-block.h: Declare them.
3796
3797 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
3798
3799         * emit-rtl.c (reset_used_decls): New function.
3800         (unshare_all_rtl_again): Call it.
3801
3802 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
3803
3804         * cpplex.c (maybe_macroexpand): Warn about function-like
3805         macros used in non-function context, if -Wtraditional.
3806
3807 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3808
3809         * recog.c (peephole2_optimize): Use INSN_P.
3810
3811 2000-05-25  Richard Henderson  <rth@cygnus.com>
3812
3813         * ifcvt.c (seq_contains_jump): New.
3814         (noce_try_store_flag_constants): Use it to fail conversion.
3815         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
3816
3817 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3818
3819         * except.h (can_throw): Declare it.
3820         * except.c (can_throw): Give it external linkage.
3821         * resource.c (find_dead_or_set_registers): Use can_throw.
3822
3823 2000-05-25  Richard Henderson  <rth@cygnus.com>
3824
3825         * flow.c (mark_set_1): Don't record conditionally dead memory.
3826
3827 2000-05-25  Jan Hubicka  <jh@suse.cz>
3828
3829         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
3830         and pc_set at the place of simplejump_p and condjump_p.
3831         * cse.c (record_jump_equiv): Likewise.
3832         * emit-rtl.c (emit): Likewise.
3833         * explow.c (find_next_ref): Likewise.
3834         * flow.c (tidy_fallthru_edge): Likewise.
3835         (init_propagate_block_info): Likewise.
3836         * gcse.c (delete_null_pointer_checks): Likewise.
3837         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
3838         dead_or_predicable): Likewise.
3839         * integrate.c (copy_insn_list): Likewise.
3840         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
3841         for_each_insn_in_loop, check_dbra_loop, get_condition,
3842         insert_bct, load_mems): Likewise.
3843         * resource.c (find_dead_or_set_registers): Likewise.
3844         * sibcalls.c (simplejump_p): Likewise.
3845         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
3846
3847 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
3848
3849         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
3850         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
3851         when unaligned.
3852         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
3853         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
3854         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
3855         * rs6000.md: Name various internal patterns.
3856
3857 2000-05-25  Jan Hubicka  <jh@suse.cz>
3858
3859         * jump.c (invert_exp_1): Remove first argument, use pc_set
3860         to get the expression.
3861         (redirect_exp): Make static; redirect only the pc_set expression,
3862         remove first argument.
3863         (invert_exp): Remove first argument, make static.
3864         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
3865         any_onlyjump at most places where we originaly did condjump_p
3866         and simplejump_p.
3867         (jump_back_p, follow_jumps, thread_jumps): Likewise.
3868         (delete_barrier_succesors): Use pc_set.
3869         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
3870         calls of invert_exp and redirect_exp.
3871         * rtl.h (redirect_exp, invert_exp): Remove.
3872         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
3873
3874 2000-05-25  Richard Henderson  <rth@cygnus.com>
3875
3876         * stmt.c (expand_end_bindings): Fix thinko last change.
3877
3878 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
3879             Andrew Haley  <aph@cygnus.com>
3880
3881         * except.c  (func_eh_entry): Add emitted field.
3882         (new_eh_region_entry): Set emitted field to 0;
3883         (output_exception_table_entry): Only emit previously un-emitted data,
3884         and send it to the eh_data section.
3885         (output_exception_table): Break out common parts. Output
3886         exception table for entire compilation unit to eh_data section.
3887         (output_exception_table_data): Common parts of output_exception_table.
3888         Send output to eh_data section.
3889         (output_function_exception_table): Output exception table data for
3890         a single function to eh_data section.
3891         (free_exception_table): New external to free the table.
3892         * except.h (free_exception_table): Add prototype.
3893         (output_function_exception_table): Add prototype.
3894         * final.c (final_end_function): Output function exception table
3895         for IA64_UNWIND_INFO.
3896         (final_scan_insn): Emit any unwind directives for an insn.
3897
3898         * frame-dwarf2.c: New file containing all DWARF 2 specific code
3899         from frame.c.
3900         * frame.c: Remove all DWARF 2 specific code.
3901         * config/ia64/frame-ia64.c: New file.
3902         (gthread_stuff): Make all gthread available with
3903         IA64_UNWIND_INFO.
3904         (dwarf_fde): Define an IA64 struct for dwarf_fde.
3905         (__register_frame_info, __register_frame): Move to common area of file.
3906         (__register_frame_info_table, __register_frame_table): Move to common i
3907         area.
3908         (__deregister_frame_info, __deregister_frame): Move to common area.
3909         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
3910         (read_uleb128): New version for ia64.
3911         (get_unwind_record): Read the next IA-64 unwind record.
3912         (read_R_record): Read a region header record.
3913         (process_a_b_reg_code): X record helper.
3914         (read_X_record): Read an X format record.
3915         (read_B_record): Read a B format record.
3916         (P3_record_types): List of record types matching the P3 format.
3917         (P7_record_types): List of record types matching the P7 format.
3918         (P8_record_types): List of record types matching the P8 format.
3919         (read_P_record): Read a P format record.
3920         (init_ia64_reg_loc): Set default fields for a register.
3921         (init_ia64_unwind_frame): Set defaults for all register records.
3922         (execute_one_ia64_descriptor): Execute one descriptor record.
3923         (rse_address_add): Calculate the position of a local reg in memory.
3924         (normalize_reg_loc): Turn a location descriptor into a memory address.
3925         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
3926         within a specified PC offset range.
3927         (get_real_reg_value): Given a register location, retrieve its value.
3928         (set_real_reg_value): Change the value of a register location.
3929         (copy_reg_value): Copy reg values, if needed.
3930         (copy_saved_reg_state): Copy all registers that need to be copied.
3931         (process_state_between): Normalize all frame register records that
3932         fall within the specified PC range.
3933         (frame_translate): Take a processed frame description, and turn
3934         everything into addresses.
3935         (build_ia64_frame_state ): Find and create frame state record for a PC.
3936         (get_personality): Get the personality routine for a given frame.
3937         (get_except_table): Get the exception table for a given frame.
3938         (record_name): Unwind record names for debugging.
3939         (print_record): Print and unwind record.
3940         (print_all_records): Print an entire unwind image.
3941         (__ia64_backtrace): Print a backtrace.
3942         (ia64_backtrace_helper): New function.
3943         (__register_frame_info_aux): New function.
3944         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
3945
3946         * frame.h (enum unw_record_type): New unwind record types.
3947         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
3948         (struct unw_r_record, unwind_record): New unwind record structs.
3949         (struct unwind_info_ptr): Unwind information layout.
3950         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
3951         descriptors.
3952         (struct ia64_reg_loc): Register location description.
3953         (struct ia64_frame_state): Location of all registers in a frame.
3954         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
3955         * libgcc2.c (__ia64_personality_v1): Personality routine.
3956         (__calc_caller_bsp): Calculate the bsp register for the caller's
3957         frame.
3958         (ia64_throw_helper): Figure out who to return to and set up the
3959         registers.
3960         (__throw): Throw routine.
3961
3962         * output.h (assemble_eh_align, assemble_eh_label): New functions
3963         to generate EH info where we want it.
3964         (assemble_eh_integer): New function.
3965         * toplev.c (compile_file): Output module level exception table for
3966         non-ia64 targets.
3967         (main): Set exceptions_via_longjump and flag_new_exceptions based
3968         on IA64_UNWIND_INFO too.
3969
3970         * varasm.c (assemble_eh_label): Generate a label via
3971         ASM_OUTPUT_EH_LABEL if it has been specified.
3972         (assemble_eh_align): Generate an alignment directive via
3973         ASM_OUTPUT_EH_ALIGN if it has been specified.
3974         (assemble_eh_label): Generate an integer value via
3975         ASM_OUTPUT_EH_type if they have been specified.
3976         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
3977         (ia64_init_builtins): Add __builtin_ia64_bsp
3978         and __builtin_ia64_flushrs.
3979         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
3980         IA64_BUILTIN_FLUSHRS.
3981         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
3982         IA64_BUILTIN_FLUSHRS.
3983
3984         * config/ia64/ia64.md (flushrs): New insn to flush the register
3985         stack.  Add to unspec list.
3986
3987         * config/ia64/crtbegin.asm (frame_object): Change size.
3988         (__do_frame_setup_aux): New function.
3989         * config/ia64/crtend.asm: call __do_frame_setup_aux.
3990         * config/ia64/t-ia64 (LIB2ADDEH): Add.
3991         * Makefile.in (LIB2ADDEH): Add.
3992         (LIB2ADD): Use LIB2ADDEH.
3993
3994 2000-05-24  Richard Henderson  <rth@cygnus.com>
3995
3996         * recog.c (offsettable_address_p): If mode size is zero, assume
3997         BIGGEST_ALIGNMENT.
3998
3999 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
4000
4001         * configure.in: Check for -Wno-long-long option support and improve
4002         handling of warning CFLAGS for stages 1 and 2.
4003         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
4004         * configure: Regenerate.
4005
4006 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
4007
4008         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
4009         * contrib.texi: New file.
4010
4011 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4012
4013         * loop.c (basic_induction_var): Avoid double recording of an increment.
4014
4015 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4016
4017         * Back out this patch:
4018         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
4019           * loop.h (struct induction): Add multi_insn_incr.
4020           * loop.c (basic_induction_var): New multi_insn_incr argument.
4021           Set it if we search back through previous insns for the biv.
4022           (record_biv): New multi_insn_incr argument; fill in struct induction.
4023           (strength_reduce): Discard an iv with multiple bivs, any of
4024           which require multiple insns to increment.
4025
4026         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
4027
4028 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4029
4030         * rtl.h (loc_mentioned_in_p): Declare.
4031         * reload.c (loc_mentioned_in_p): Moved from here...
4032         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
4033         Fix loop increment for 'E' handling.
4034         * loop.c (strength_reduce): When doing biv->giv conversion,
4035         take multi-insn biv increments into account.
4036
4037 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
4038
4039         * stmt.c (expand_end_bindings): Look through NOTEs to find a
4040         BARRIER.
4041
4042 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
4043
4044         * calls.c (expand_call): Handle cleanups in tail-recursion
4045         arguments analagously to cleanups in sibling calls.
4046
4047 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4048
4049         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
4050         All callers changed.
4051
4052 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4053
4054         * expr.c (expand_assignment, store_expr, expand_expr,
4055         expand_expr_unaligned): Set in_check_memory_usage while emitting
4056         chkr_check_addr libcall.
4057
4058 2000-05-24  Nick Clifton  <nickc@cygnus.com>
4059
4060         * fold-const.c (extract_muldiv): When constructing a
4061         multiplier/divisor, do not expect const_binop to correctly
4062         determine if overflow has occured, so check explicitly.
4063
4064 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4065
4066         * c-decl.c (build_enumerator): Don't modify the value's type,
4067         convert it.
4068
4069 2000-05-24  Andreas Jaeger  <aj@suse.de>
4070
4071         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
4072
4073 2000-05-24  Eric Christopher <echristo@cygnus.com>
4074
4075         * configure.in: Redefine inhibit_libc conditions.
4076         * libgcc2.c: Remove inhibit_libc conditional define.
4077         * configure: Regenerate.
4078
4079 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
4080
4081         * configure.in:  For --enable-languages=LIST, check for empty LIST.
4082         * configure:  Regenerate.
4083
4084 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
4085
4086         * pdp11.h (STACK_BOUNDARY): Define.
4087
4088 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
4089
4090         * ifcvt.c (if_convert): Update life info globally.
4091
4092 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4093
4094         * emit-rtl.c (unshare_all_decls): New function.
4095         (unshare_all_rtl): Call it.
4096
4097 2000-05-23  Nick Clifton  <nickc@cygnus.com>
4098
4099         * configure.in: Treat 'strongarm' as if it were 'arm' when
4100         determining cpu type.
4101
4102         * configure: Regenerate.
4103
4104         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
4105         where constant strings are involved.
4106
4107         * config/arm/arm.h (arm_condition_codes): Change type to 'const
4108         char *'.
4109
4110         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
4111         cases where constant strings are involved.
4112
4113 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
4114
4115         * config/sh/sh.c (gen_far_branch, split_branches): Update
4116         to reflect new prototypes for redirect_jump and invert_jump.
4117         (sh_insn_length_adjustment): Get rid of const warnings.
4118
4119 2000-05-23  Kazu Hirata  <kazu@hxi.com>
4120
4121         * invoke.texi (Options for Debugging Your Program or GCC): Update
4122         the names of dump files.
4123
4124 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
4125
4126         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
4127         * configure: Regenerated.
4128
4129 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4130
4131         * simplify-rtx.c (SIGN_EXTEND): New macro.
4132         (simplify_unary_operation, simplify_binary_operation,
4133         simplify_relational_operation): Use SIGN_EXTEND.  Make low
4134         halves of (low, high) pairs unsigned if they weren't already.
4135         (simplify_ternary_operation): Cast INTVAL to unsigned before
4136         comparing to a MODE_BITSIZE.
4137
4138 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4139
4140         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
4141         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
4142
4143         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
4144         gcc_AC_NEED_DECLARATIONS.
4145
4146         * dwarfout.c: Don't prototype time().
4147
4148         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
4149
4150         * system.h: Likewise.
4151
4152         * toplev.c: Likewise.
4153
4154 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4155
4156         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4157
4158 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4159
4160         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4161
4162 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4163
4164         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4165
4166 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4167
4168         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4169         (alpha_start_function): Never write ..ng label if VMS or NT.
4170         (alpha_align_insns): Remove GP_IN_USE arg.
4171         Alignment now unsigned.
4172         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4173         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4174         and two define_insn's.
4175
4176 2000-05-22  Richard Henderson  <rth@cygnus.com>
4177
4178         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4179
4180 2000-05-22  Richard Henderson  <rth@cygnus.com>
4181
4182         * stor-layout.c (place_field): Change rli->size to rli->offset.
4183
4184 2000-05-22  Richard Henderson  <rth@cygnus.com>
4185
4186         * function.c (thread_prologue_and_epilogue_insns): Make sure
4187         existing line number notes appear after the prologue.
4188
4189 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4190
4191         * config/alpha/alpha.c (alpha_fnname): New static variable.
4192         (print_operand, case '~'): New case.
4193         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4194         (alpha_start_function): Set alpha_fnname.
4195         Write "ng" label if no ldgp; don't write ldgp insn.
4196         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4197         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4198
4199 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4200
4201         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4202         on deleted labels.
4203
4204 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4205
4206         * varasm.c (eh_frame_section): Revert change to argument list.
4207
4208 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4209
4210         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4211         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4212
4213         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4214         dangling "else" that causes "break" to be conditional.
4215         Also remove unneeded code at start.
4216
4217 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4218
4219         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4220         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4221         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4222
4223 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4224
4225         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4226         just one argument.
4227
4228 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4229
4230         * alias.c (record_component_aliases): New function.
4231         * tree.h: Clean up some declarations and comments.
4232         (record_component_aliases): New declaration.
4233         * tree.c (get_alias_set): If type and has alias set, use it.
4234
4235 2000-05-22  Richard Henderson  <rth@cygnus.com>
4236
4237         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4238         IF_THEN_ELSE to a setcc form.
4239         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4240
4241 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4242
4243         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4244         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4245
4246 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4247
4248         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4249         not a PARALLEL.
4250
4251 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4252
4253         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4254         * config/mn10300/mn10300.c (print_operand): Likewise.
4255
4256         * final.c (split_double): Right shift of negative values is not
4257         portable.
4258
4259         * ifcvt.c (if_convert): Scan and kill dead code.
4260
4261         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4262
4263 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4264
4265         * diagnostic.c: Eliminate implicit int.
4266         * except.c, gcc.c: Add static prototypes.
4267         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4268         * gensupport.c (process_rtx): Use XVEC to initialize vector
4269         slot of 'split'.
4270
4271         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4272         debug_reg_names instead of static reg_names.  If not, define
4273         global reg_names.
4274         * regclass.c: Don't define global reg_names unless
4275         DEBUG_REGISTER_NAMES is defined.
4276
4277         * reload1.c (order_regs_for_reload): Remove unused variable.
4278         * varasm.c: Include output.h after defaults.h.  Define
4279         eh_frame_section as function of no args, not of unspecified args.
4280
4281         * gcc.c: Constify argbuf; arguments to store_arg,
4282         process_command, main; elements of struct command and struct
4283         switchstr; local variables in execute, process_command, main.
4284
4285 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4286
4287         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4288         * fixinc/check.diff:  regenerated
4289         * fixinc/fixincl.x:  regenerated
4290
4291 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4292
4293         * alias.c: Clarify some comments.
4294         (record_base_value): REGNO is unsigned.
4295         * rtl.h (record_base_value): Likewise.
4296
4297         * alias.c (aliases_everything_p): Don't special-case QImode here.
4298         * c-common.c (c_get_alias_set): Do it here.
4299         Handle BIT_FIELD_REF by getting alias info for arg.
4300         Use POINTER_TYPE_P.
4301
4302 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4303
4304         * mklibgcc.in: Restore rule to create ${dir}.
4305
4306 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4307
4308         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4309         GCC_FOR_TARGET used by MULTILIBS.
4310         * mklibgcc.in: Make sure each .o file depends on the
4311         directory it will be in.
4312         Make the multilib directory depends libgcc.
4313
4314 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4315
4316         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4317
4318 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4319
4320         * fold-const.c (make_range): Handle degenerated intervals.
4321         Fixes c-torture/execute/991221-1.c
4322
4323 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4324
4325         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4326         * reload.c (find_equiv_reg): Likewise.
4327         * alias.c (init_alias_analysis): Likewise.
4328         Only call prologue_epilogue_contains on insns.
4329         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4330         * bb-reorder.c (hard-reg-set.h): Include earlier.
4331         * haifa-sched.c (hard-reg-set.h): Likewise.
4332         * ifcvt.c (hard-reg-set.h): Likewise.
4333         * local-alloc.c (hard-reg-set.h): Likewise.
4334         * loop.c (hard-reg-set.h): Likewise.
4335         * predict.c (hard-reg-set.h): Likewise.
4336         * regrename.c (hard-reg-set.h): Likewise.
4337         * flow.c (hard-reg-set.h): Likewise.
4338         (reg_set_to_hard_reg_set): New function.
4339         * bitmap.c (regs.h, basic-block.h): No longer include.
4340         (bitmap.h): Now include.
4341         * conflict.c (hard-reg-set.h): Include.
4342         * profile.c (hard-reg-set.h): Likewise.
4343         * print-rtl.c (hard-reg-set.h): Likewise.
4344         * sbitmap.c (hard-reg-set.h): Likewise.
4345         * toplev.c (hard-reg-set.h): Likewise.
4346         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4347         * hard-reg-set.h (reg_names): Now constant.
4348         * regs.h (reg_names): Likewise.
4349         * regclass.c (reg_names): Likewise.
4350         * loop.h (basic-block.h): No longer include.
4351         (bitmap.h): Now include.
4352         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4353         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4354         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4355
4356 2000-05-19  Jan Hubicka  <jh@suse.cz>
4357             Richard Henderson  <rth@cygnus.com>
4358
4359         * basic-block.h (struct edge_def): New field "count".
4360         (struct basic_block_def): Likewise.
4361         * flow.c (entry_exit_blocks): Add count fileds.
4362         (split_edge): Keep count information up-to-date.
4363         (dump_edge_info, dump_flow_info): Dump count fields.
4364
4365         * final.c (count_instrumented_edges): Rename to edge from arc.
4366         (end_final): Update users.
4367         * profile.c: Include expr.h, basic-block.h.
4368         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4369         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4370         (ignore_next_note, return_label_execution_count): Kill.
4371         (bbg_file_name, da_file_name): Kill.
4372         (edge_info, bb_info): New structures.
4373         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4374         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4375         (total_num_edges_instrumented): Likewise.
4376         (init_arc, expand_spanning_tree): Kill.
4377         (fill_spanning_tree, tablejump_entry_p): Kill.
4378         (instrument_edges):  Rewrite from instrument_arcs to use
4379         commit_edge_insertions infrastructure.
4380         (compute_branch_probabilities): Remove arguments; rewrite for
4381         CFG infrastructure; use rtl_dump_file directly.
4382         (branch_prob, find_spanning_tree): Likewise.
4383         (union_groups, find_group): New.
4384         (init_branch_prob): Make bbg_file_name and da_file_name local.
4385         (end_branch_prob): Use rtl_dump_file directly.
4386         (init_edge_profiler): Rename to edge from arc.
4387         (output_arc_profiler): Kill.
4388         (gen_edge_profiler): New.
4389         (output_func_start_profiler): Turn off profiling.  Make the
4390         constructor static when we can.
4391         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4392
4393         * toplev.c (DFI_flow): Remove.
4394         (DFI_cfg, DFI_life): New.
4395         (dump_file): Update accordingly.
4396         (compile_file): Call end_branch_prob if profile_arc_flag too.
4397         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4398         profiling after the CFG is built.  Move flow1 life analysis to
4399         DFI_life.  Always estimate remaining probabilities.
4400
4401 2000-05-19  Richard Henderson  <rth@cygnus.com>
4402
4403         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4404
4405         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4406
4407 2000-05-19  Richard Henderson  <rth@cygnus.com>
4408
4409         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4410         remove labels and code following when LABEL_NUSES goes to zero.
4411         (invert_jump): Likewise.
4412         (jump_optimize_1): Fix redirect/invert arguments.
4413         (do_cross_jump, thread_jumps): Likewise.
4414         * flow.c (split_edge): Likewise.
4415         * reorg.c (optimize_skip): Likewise.
4416         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4417         * profile.c (instrument_arcs): Likewise.
4418         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4419         * rtl.h: Update prototypes.
4420
4421 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4422
4423         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4424         notes.
4425         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4426         critical edges.
4427
4428 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4429
4430         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4431         past l1 when deleting whitespace and markers.
4432
4433         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4434         * cpplib.c (do_unassert): Put the list to compare against on
4435         the stack.
4436
4437 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4438
4439         * fixinc/README:  cleaned up old documentation
4440         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4441         * fixinc/check.tpl: compute the list of needed directories
4442         emit "#if defined(name)" because of conflict
4443         omit machine name differences from output differences
4444         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4445         (machine_name): change test text to use `sed' markers
4446         * fixinc/fixincl.x: regen
4447
4448 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4449
4450         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4451         a CONSTRUCTOR.
4452
4453 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4454
4455         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4456         it to match the current practice.
4457
4458 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4459
4460         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4461
4462 2000-05-18  Richard Henderson  <rth@cygnus.com>
4463
4464         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4465         * rtl.h (insn_dependant_p): Declare it.
4466         * loop.c (strength_reduce): Use it.
4467
4468 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4469
4470         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4471         16-bit and 64-bit clean-up.
4472
4473 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4474
4475         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4476         * configure: Rebuilt.
4477
4478 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4479
4480         * genopinit.c: Use $ for escape sequences in optab patterns.
4481         Remove backslashes from optab patterns.  Change $A, $B, $C to
4482         expand to (int) whatever instead of just whatever; remove
4483         explicit (int) from all optab patterns.
4484
4485         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4486         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4487         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4488         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4489         xstrdup.
4490
4491 2000-05-18  Richard Henderson  <rth@cygnus.com>
4492
4493         * jump.c (jump_optimize_1): Base minimum insn count during
4494         find_cross_jump on BRANCH_COST.
4495
4496 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4497
4498         * print-rtl.c (print_rtx): Only print note line number as string
4499         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4500         * final.c (final_scan_insn): Do nothing for note line number 0.
4501
4502 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4503
4504         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4505         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4506         NOTE_INSN_DELETED_LABEL.
4507
4508 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4509
4510         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4511         uninitialised data in .rodata not .bss, and do not interpret an
4512         error in the initialisation value as meaning that the variable
4513         should be placed in the .bss section.
4514
4515 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4516
4517         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4518         not `$ac_cv_prog_cc_cc_c_o'.
4519         * configure: Regenerated.
4520
4521 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4522             Richard Henderson  <rth@cygnus.com>
4523
4524         * c-common.h (enum c_tree_index): Add g77 type entries.
4525         (g77_integer_type_node, g77_uinteger_type_node): New.
4526         (g77_longint_type_node, g77_ulongint_type_node): New.
4527         * c-decl.c (init_decl_processing): Initialize them.
4528
4529 2000-05-18  Richard Henderson  <rth@cygnus.com>
4530
4531         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4532
4533         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4534         (small_power_of_two): Likewise; use exact_log2.
4535         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4536         (output_adds_subs): Remove.
4537         (two_insn_adds_subs_operand): New.
4538         (split_adds_subs): New.
4539         * config/h8300/h8300-protos.h: Update.
4540         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4541         (CONST_OK_FOR_L): Match strict adds operands.
4542         (CONST_OK_FOR_N): Match struct subs operands.
4543         * config/h8300/h8300.md (adds_subs insns): Remove.
4544         (addhi patterns): Output adds/subs directly.
4545         (addsi_h8300h): Likewise.
4546         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4547
4548 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4549
4550         * cppexp.c (parse_assertion): New.
4551         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4552         (_cpp_parse_expr): Remove case '#'.  Don't set
4553         parsing_if_directive.
4554         * cpphash.c (collect_objlike_expansion,
4555         collect_funlike_expansion, collect_params,
4556         _cpp_create_definition): The list no longer has a trailing
4557         VSPACE token.
4558         * cpphash.h (enum node_type): Add T_ASSERTION.
4559         (struct hashnode): Remove aschain, add pred.
4560         (struct predicate): New.
4561         Update prototypes.
4562
4563         * cpplex.c (expand_token_space): Handle both offset and
4564         nonoffset lists.
4565         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4566         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4567         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4568         _cpp_equiv_toklists): New.
4569         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4570         stop at any single-character token, not just newline.
4571         (_cpp_lex_token): Remove special cases for #define and #if.
4572         (cpp_get_token): Expect # as a separate token type.  Remove
4573         DIRECTIVE case.
4574         (_cpp_get_directive_token): Remove DIRECTIVE case.
4575         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4576
4577         * cpplib.c (_cpp_check_directive): Set dirno and
4578         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4579         (_cpp_handle_directive): Run # <number> through the same logic
4580         as normal directives.
4581         (do_define): Don't set parsing_define_directive.  Use
4582         _cpp_scan_until.  The list does not have a VSPACE at the end.
4583         (do_if): Save, clear, and restore only_seen_white around
4584         _cpp_parse_expr.
4585         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4586         (do_assert, do_unassert): Rewrite.
4587
4588         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4589         (LIST_OFFSET): New flag.
4590         (struct cpp_toklist): Replace dir_handler and dir_flags with
4591         dirno and flags.
4592         (struct cpp_reader): Remove parsing_if_directive and
4593         parsing_define_directive.
4594
4595 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4596
4597         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4598         following the cabs decl which terminate on the following line.
4599         Add the corresponding test_text case.
4600
4601 2000-05-18  Neil Booth  <NeilB@earthling.net>
4602
4603         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4604         default tab stop size.
4605         (no_num, OPT_ftabstop): New.
4606         (handle_option): Handle "ftabstop=" command-line option.
4607         (print_help): Document it.
4608         * cpplex.c (COLUMN): Remove.
4609         (handle_newline): Reset col_adjust.
4610         (skip_whitespace): Update col_adjust as tabs encountered.
4611         (_cpp_lex_line): Update to use col_adjust.  Call
4612         skip_whitespace for all whitespace.
4613         * cpplib.h (struct cpp_options): New member tabstop.
4614         (struct cpp_reader): New member col_adjust.
4615         (CPP_BUF_COL): Update.
4616         (CPP_BUF_COLUMN): New.
4617         * cpp.texi: Document "-ftabstop=" command line option.
4618
4619 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4620
4621         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4622         files.
4623         * configure: Rebuilt.
4624
4625 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4626
4627         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4628
4629         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4630         HOST_BITS_PER_WIDE_INT is >= 64.
4631
4632 2000-05-17  Richard Henderson  <rth@cygnus.com>
4633
4634         * jump.c (jump_optimize_1): Remove inactive but real insns
4635         in jump-to-next-insn optimization.
4636
4637 2000-05-17  Richard Henderson  <rth@cygnus.com>
4638
4639         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4640         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4641         Don't call recompute_reg_usage if no_new_pseudos is true.
4642         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4643         Return true if we did work; update global life information.
4644         * basic-block.h (optimize_mode_switching): Update decl.
4645
4646 2000-05-17  Neil Booth  <neilb@earthling.net>
4647
4648         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4649
4650 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4651
4652         * cpplib.c: New feature, #pragma system_header.
4653         * cpp.texi: Document special treatment of system headers, and
4654         the various mechanisms to get a header that special treatment.
4655
4656 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4657
4658         * system.h (offsetof): Define at the very end, to ensure we prefer
4659         the platform's definition if available.
4660
4661 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4662
4663         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4664         * fixinc/server.c: likewise
4665         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4666         + #ifdef debugging code + use #def constant for
4667         sub-pattern count
4668         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4669         on C++ math namespace
4670
4671 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4672
4673         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4674         Don't check the return value of sprintf.  Use asprintf to avoid
4675         buffer overflows.
4676
4677 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4678
4679         * flags.h (warn_unused_function, warn_unused_label,
4680         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4681         Replace ``warn_unused''.
4682         (set_Wunused): Add declaration.
4683         * toplev.c (set_Wunused): New function.
4684         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4685         warn_unused_variable, warn_unused_value): New variables.
4686         (W_options): Add -Wunused-function, -Wunused-function,
4687         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4688         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4689
4690         * toplev.c (decode_W_option): Update -Wunused flags by calling
4691         set_Wunused.
4692         * c-decl.c (c_decode_option): Ditto for -Wall.
4693
4694         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4695         warn_about_unused_variables): Replace warn_unused with more
4696         explicit warn_unused_value et.al.
4697         * function.c (expand_function_end): Ditto.
4698         * c-typeck.c (internal_build_compound_expr,
4699         internal_build_compound_expr): Ditto.
4700         * c-decl.c (poplevel, pop_label_level): Ditto.
4701         * toplev.c (check_global_declarations): Replace warn_unused with
4702         check for either warn_unused_function or warn_unused_variable.
4703
4704         * gcc.1, invoke.texi (Warning Options): Document
4705         -Wunused-function, -Wunused-function, -Wunused-label,
4706         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4707
4708 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4709
4710         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4711         $(srcdir), not in the current directory.
4712
4713 2000-05-16  Richard Henderson  <rth@cygnus.com>
4714
4715         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4716         assembler supports it.
4717         (.fini, .init): Use a gp-relative indirect call.
4718         (__do_global_dtors_aux): Preserve the gp; rebundle.
4719         (__do_frame_setup): Likewise.
4720         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4721         (.init): Use a gp-relative indirect call.
4722         (__do_global_ctors_aux): Preserve the gp.
4723
4724 2000-05-16  Richard Henderson  <rth@cygnus.com>
4725
4726         * flow.c (commit_one_edge_insertion): Be prepared for a return
4727         insn to be inserted on the edge with a normal jump.
4728         * jump.c (jump_optimize_1): Don't look to create return isns.
4729
4730         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4731         * jump.c (jump_optimize_1): Likewise.
4732         (returnjump_p): Verify the argument is a JUMP_INSN.
4733         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4734
4735 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4736
4737         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4738         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4739         (large_insn_p): Ditto.
4740         (m32r_is_insn): New function: Return true if the insn contains
4741         an executable instruction.
4742         (m32r_adjust_insn): Use m32r_is_insn.
4743         (m32r_sched_reorder): Use m32r_is_insn.
4744         (m32r_sched_variable_issue): Use m32r_is_insn.
4745
4746 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4747
4748         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4749         VAR_DECL.
4750
4751         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4752
4753         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4754         according to given options.
4755
4756 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
4757
4758         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
4759         if X has VOIDmode either.
4760         (LIMIT_RELOAD_CLASS): Similarly.
4761
4762         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
4763         not "general_operand" to match the processor's capabilities.
4764
4765 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4766
4767         * fixinc/README:  corrected return address
4768         * fixinc/check.diff:  regenerate, now that test works
4769         * fixinc/fixfixes.c(format_fix,format_write): reformatted
4770         (char_macro_def_fix,char_macro_use_fix): corrected and
4771         rewrote to use regex to parse the text
4772         * fixinc/inclhack.def: more testing
4773         * fixinc/fixincl.x:  regenerated
4774
4775         * fixinc/inclhack.def: added several "test_text" attributes
4776         changed several fixes to use `c_fix = format'
4777         re-alphabetized the fixes
4778
4779         * fixinc/check.diff: regenerate
4780         * fixinc/fixincl.x: regenerate
4781         * fixinc/check.tpl: added `sparc' and `netinet' to the list
4782         of created dirs
4783
4784
4785 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
4786
4787         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
4788
4789 2000-05-15  Richard Henderson  <rth@cygnus.com>
4790
4791         * toplev.c (rest_of_compilation): Run full jump pass before
4792         find_basic_blocks of flow2.
4793
4794 2000-05-15  Richard Henderson  <rth@cygnus.com>
4795
4796         * jump.c: Fix typos and clarify commentary from last change.
4797         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
4798         (safe_to_remove_jump_p): Remove.
4799         (condjump_label): Use pc_set.
4800
4801 2000-05-15  Richard Henderson  <rth@cygnus.com>
4802
4803         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
4804         that get in the way after reload.
4805         (cond_exec_process_if_block): Skip a label heading THEN block.
4806
4807 2000-05-15  Richard Henderson  <rth@cygnus.com>
4808
4809         * varasm.c (output_constant_pool): Abort instead of converting
4810         (improperly) deleted labels to zero.
4811
4812 2000-05-16  Neil Booth  <NeilB@earthling.net>
4813
4814         * cpplex.c (parse_string2): Update comment.
4815         (cpp_lex_line): No special assertion treatment for '('.
4816         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
4817         * cpplib.h (SYNTAX_ASSERT): Remove.
4818
4819 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4820
4821         * jump.c (condjump_p):  Mark as depreached.
4822         (any_condump_p): New.
4823         (any_uncondump_p): New.
4824         (pc_set): New.
4825         (safe_to_remove_jump_p): New.
4826         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
4827         safe_to_remove_jump_p): Declare.
4828
4829 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4830
4831         * calls.c: Re-install both patches reverted by last patch.
4832         (struct arg_data): New field tail_call_reg.
4833         (initialize_argument_information): Initialize tail_call_reg
4834         (load_register_parameters): New argument flags, use
4835         tail_call_reg when emiting tail call sequence.
4836         (expand_call): Update call of load_register_parameters;
4837         copy unadjusted_args_size to adjusted_args_size.
4838
4839 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4840
4841         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
4842         and bct_p parameters to flags.
4843         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
4844         * rtl.h (loop_optimize): Update prototype.
4845         * toplev.c (rest_of_compilation): Update call of loop_optimize.
4846
4847 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
4848
4849         * calls.c (expand_call): Move expand_start_target_temps call after
4850         start_sequence().
4851
4852 2000-05-15  Neil Booth  <NeilB@earthling.net>
4853
4854         * cpphash.c (trad_stringify, warn_trad_stringify,
4855         collect_params): Make some pointers pointers to const.
4856         * cpplex.c (auto_expand_name_space) Guaranteed to always
4857         expand by at least one character.
4858         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
4859         (struct token_spelling): Use const U_CHAR * rather than PTR.
4860         (expand_name_space): Fix up token pointers if name space
4861         is moved when expanding.
4862         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
4863         parse_string2, save_comment, spell_token, cpp_output_list):
4864         Update so the routines handle tokens with a direct pointer to
4865         their text, rather than an offset into the token's list's namebuf.
4866         (_cpp_lex_line): Rearrange for clarity.
4867
4868         * cpplib.c (_cpp_check_directive): Similarly.
4869         (do_define): Make SYM a pointer to const.
4870         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
4871         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
4872         (TOK_OFFSET): Delete.
4873         (TOK_NAME): Update.
4874
4875 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
4876
4877         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
4878         64-bit ABI.
4879
4880         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
4881         into account.
4882         (logical_u_operand): Delete.
4883         (non_logical_cint_operand): Rewrite to take MODE into account.
4884         (non_logical_u_cint_operand): Delete.
4885         (boolean_operator): New function.
4886         (print_operand): Add new %q operand.
4887         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
4888         remove logical_u_operand and non_logical_u_cint_operand,
4889         update logical_operand and non_logical_cint_operand.
4890         * config/rs6000/rs6000.md: Rewrite the patterns for performing
4891         logical operations to use %q.
4892
4893         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
4894         (movdi): Make similar to movsi.
4895         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
4896         is no such thing as a DImode CONST_DOUBLE.
4897         * config/rs6000/rs6000.c (output_toc): Likewise.
4898
4899         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
4900         codes when old mnemonics are in use.  Print register names
4901         for cc registers when requested.
4902
4903         * optabs.c (expand_float): Don't allow mode widening that causes
4904         double rounding.
4905
4906         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
4907         flags to their current names -maix64 and -maix32.
4908
4909 2000-05-14  Bruce Korb  <bkorb@gnu.org>
4910
4911         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
4912         and/or after current text of file
4913         * fixinc/fixlib.c(must_malloc):
4914         * fixinc/fixlib.h(must_malloc): + reformatting
4915         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
4916         with usages of ``c_fix = wrap;''
4917         Add several tests and use the ``c_fix = format'' fixer more.
4918         * fixinc/fixincl.x: regen
4919         * fixinc/check.diff: regen
4920         * fixinc/check.tpl: emit the associated header with the missing
4921         test message
4922
4923 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
4924
4925         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
4926         variables $src and $dst.
4927
4928 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
4929
4930         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
4931         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
4932         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
4933         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
4934         fields.
4935         (set_message_prefixing_rule): Declare.
4936
4937         * diagnostic.c: (current_prefixing_rule): New variable.
4938         (set_message_prefixing_rule): Define.
4939         (output_set_prefix): Adjust buffer->emitted_prefix_p.
4940         (init_output_buffer): Adjust Initialization.
4941         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
4942
4943 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
4944
4945         * ifcvt.c (if_convert): Do not free NULL.
4946
4947 2000-05-12  Nick Clifton  <nickc@cygnus.com>
4948
4949         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
4950         to move a double word value.
4951         (di_operand): New function: Return true if the operand is suitbale
4952         for a double word move operation.
4953         (nonimmediate_di_operand): New function: Return true if the
4954         operand is a DImode register or MEM.
4955
4956         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
4957         nonimmediate_di_operand.
4958
4959         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
4960         nonimmediate_di_operand.
4961
4962         * config/fr30/fr30.md (movdi): New pattern.  Required because
4963         other patterns generate DImode results.
4964         (movdi_insn): New pattern.
4965
4966 2000-05-12  Richard Henderson  <rth@cygnus.com>
4967
4968         * config/alpha/alpha.c (struct shadow_summary): Define
4969         bitfields as type unsigned int.
4970
4971 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
4972
4973         * config/avr/t-avr: Added definition of FLOAT while generates
4974         fp-bit.c
4975
4976         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
4977         peepholes for tst+jump = sbrs/sbrc optimization.
4978
4979 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
4980
4981         * expr.c (emit_push_insn): Do not adjust stack pointer when
4982         preallocating.
4983
4984 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
4985
4986         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
4987         * system.h (offsetof): ... to here.
4988
4989 2000-05-12  Richard Henderson  <rth@cygnus.com>
4990
4991         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
4992         * final.c (final_end_function): Use app_disable.  Rearrange note
4993         handling into a switch.  Emit deleted labels.
4994         (output_asm_label): Generate label strings for deleted labels.
4995         * flow.c (tail_recursion_label_list): New.
4996         (find_basic_blocks_1): Set label_value_list directly.  Collect list
4997         of tail recursion labels from call_placeholders.  Don't add deleted
4998         labels to the label value list.
4999         (cleanup_cfg): Use free_EXPR_LIST_list.
5000         (flow_delete_insn_chain): Turn non-removable labels into notes.
5001         (flow_delete_block): Don't disable deleting the block because of
5002         a non-removable label.
5003         (tail_recursion_label_p): New.
5004         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
5005         because of a label.
5006         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
5007         jump table.
5008         (merge_blocks): Disable a merge because of tail recursion labels.
5009         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
5010         Use a more accurate measure of not merging the join block.
5011         (find_if_block): Don't disable conversion because of a label.
5012         (find_if_case_1, find_if_case_2): Likewise.
5013         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
5014         element when copying.
5015         (squeeze_notes): Also leave EH notes.
5016         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
5017         REG_LABEL notes.
5018         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
5019         deleting a label.
5020         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
5021         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
5022         referring to a deleted label.  Convert tail handling to a switch.
5023         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
5024         for NOTE_INSN_DELETED_LABEL.
5025         (NOTE): Fix commentary.
5026         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
5027         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
5028         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
5029         (LABEL_NUSES, LABEL_REFS): Likewise.
5030         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
5031
5032 2000-05-12  Bruce Korb  <bkorb@gnu.org>
5033
5034         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
5035         * fixinc/check.diff: updated
5036         * fixinc/inclhack.def: corrected & added some test_text-s
5037         * fixinc/genfixes: removed unneeded options to autogen invocation
5038         * fixinc/fixincl.tpl: Specified the output file
5039         * fixinc/fixfixes.c: visual appearance
5040         * fixinc/fixincl.x: regenerate
5041
5042 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
5043
5044         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
5045         CTRL_defn_fix): Delete.
5046         (fix_char_macro_defines, fix_char_macro_uses): Rename to
5047         char_macro_def_fix and char_macro_use_fix, respectively.  Put
5048         them into the FIXUP_TABLE.  Get the string to search for from
5049         a c_fix_arg.
5050
5051         (format_write): New function.
5052         (format_fix): Use it.
5053
5054         (FIX_PROC_HEAD): Constify text parameter.
5055         (machine_name_fix): Constify all char *s.
5056         * fixtests.c (skip_quote): Remove double static.
5057
5058         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
5059         ctrl_use_quotes): Update for new scheme.
5060         * fixincl.x: Regenerate.
5061
5062 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
5063
5064         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
5065         DWARF2_DEBUG.
5066         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
5067         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
5068
5069 2000-05-11  Robert Lipe <robertlipe@usa.net>
5070
5071         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
5072         * fixincl.x: Regenerate.
5073
5074 2000-05-11  Richard Henderson  <rth@cygnus.com>
5075
5076         * calls.c: Revert both 05-09 patches.
5077
5078 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
5079
5080         * config/mn10300/mn10300.c (print_operand): Print FP constants in
5081         hexadecimal.
5082         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
5083         for FP values.
5084
5085         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
5086         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
5087
5088 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
5089
5090         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
5091
5092 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5093
5094         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
5095
5096 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
5097
5098         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
5099         * config/avr/avr.c (jump_over_one_insn_p): New function.
5100         * config/avr/avr.md: New peepholes added. Output test and
5101         conditional jump to "sbrc" or "sbrs" command.
5102
5103 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
5104
5105         * cppmain.c (main): Use IS_DIR_SEPARATOR.
5106
5107 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
5108
5109         * except.c (find_exception_handler_labels_1): New function.
5110         (find_exception_handler_labels): Split into two functions, dive
5111         into CALL_PLACEHOLDERs when looking for exception handler labels.
5112
5113 2000-05-11 Stan Cox <scox@cygnus.com>
5114
5115         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
5116         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
5117         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
5118
5119 2000-05-11  Bruce Korb  <bkorb@gnu.org>
5120
5121         * fixinc/fixfixes.c (double_slash_fix):  obsolete
5122         (else_endif_label_fix): obsolete
5123         (format_fix):  new, unused as yet
5124         (main): obsolete
5125         * fixinc/fixlib.h: added fix description struct for use by format_fix
5126         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
5127         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
5128         modules.  Removed the vestiges of the script version.
5129         Added support for "make check".
5130         * fixinc/check.diff: base diff file (needs work!!)
5131         * fixinc/check.tpl: quiet the fixup output
5132         * fixinc/fixtests.c (main): obsolete
5133         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
5134         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
5135
5136 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
5137
5138         * toplev.c (rest_of_compilation): Remove dead code after
5139         combine.
5140
5141 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5142
5143         * cpphash.c (collect_funlike_expansion): Make "# is not
5144         followed by a macro argument name" a pedwarn, not an error.
5145         Preserve the # in the output.  Suppress the warning if lang_asm.
5146
5147 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
5148
5149         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
5150         * configure: Rebuilt.
5151
5152 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5153
5154         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5155
5156 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5157
5158         * combine.c (try_combine): Fix a typo.
5159
5160 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5161
5162         * config/ia64/ia64.md (insv): Add comment.
5163
5164 2000-05-10  Richard Henderson  <rth@cygnus.com>
5165
5166         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5167         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5168         dependancies on FPBIT and DPBIT.
5169
5170 2000-05-10  Nick Clifton  <nickc@redhat.com>
5171
5172         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5173         when optimising for size.
5174         (mark_used_regs:) Ditto.
5175         (try_pre_increment_1): Ditto.
5176
5177 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5178
5179         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5180         Make error message friendlier.
5181
5182         * cpphash.h (struct hashnode): Use struct hack for name
5183         member.
5184         * cpphash.c (struct hashdummy): New.
5185         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5186         (make_HASHNODE): No need to set ->name pointer.  Correct
5187         setting of p.
5188         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5189
5190 2000-05-10  Richard Henderson  <rth@cygnus.com>
5191
5192         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5193         after completion.
5194
5195 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5196
5197         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5198
5199 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5200
5201         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5202         after we enter .debug.
5203
5204 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5205
5206         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5207         abstract instance of a nested inline function.
5208
5209         * stor-layout.c (finish_record_layout): finalize_type_size
5210         before laying out the pending_statics.
5211
5212 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5213
5214         * cpplex.c (spell_token): New function.
5215         (spell_string, spell_comment, spell_name): fold into
5216         spell_token.
5217         (I, S): Add macros.
5218         (E, H): Remove macros.
5219         (save_comment): Save comment opening characters too.
5220         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5221         handling.
5222         * cpplib.h (I, S): Add macros.
5223         (E, H): Remove macros.
5224         (TTYPE_TABLE): Update entries for new speller.
5225         (SYNTAX_ASSERT): Remove.
5226
5227 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5228
5229         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5230         when removing escaped newlines.  Reverse sense of test for
5231         escaped newline.
5232
5233 2000-05-09  Richard Henderson  <rth@cygnus.com>
5234
5235         * flow.c (find_basic_blocks_1): Do not delete the first
5236         bb_note we run across.
5237         (create_basic_block): Use reorder_insns to move an existing
5238         bb_note to the correct place.
5239
5240 2000-05-09  Richard Henderson  <rth@cygnus.com>
5241
5242         * calls.c (expand_call): Increment currently_expanding_call
5243         before calling optimize_tail_recursion.
5244
5245 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5246
5247         * reload1.c (reload_combine): Fix errors in last change.
5248
5249 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5250
5251         * gcc.c (used_arg): Skip over a semicolon at the end of the
5252         split-up loop; don't break out of it.
5253
5254         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5255         (tree.o): Depend on output.h.
5256
5257         * c-decl.c (pending_invalid_xref_file,
5258         current_function_prototype_file): Constify.
5259         (pushdecl): Constify a local char *.
5260         (define_label): Constify filename parameter.
5261         * c-lex.c (init_parse): Constify parameter and return value.
5262         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5263         * c-tree.h: Update prototypes.
5264         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5265         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5266         objc/objc-parse.c: Regenerate.
5267
5268         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5269         * dwarfout.h: Update prototypes.
5270         * expr.c (expand_expr): Constify a local char *.
5271         * flags.h: Constify main_input_filename.
5272         * function.c (expand_function_end): Constify filename parameter.
5273         * genrecog.c (make_insn_sequence): Use a character array for
5274         c_test_pos.
5275         (main): Remove unused variables.
5276         * input.h: Constify input_filename, main_input_filename, and
5277         file_stack.name.  Update prototypes.
5278         * output.h: Declare first_global_object_name and
5279         weak_global_object_name here, as const char *.
5280         * stmt.c (expand_asm_operands): Constify filename parameter.
5281         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5282         Constify filename parameter.
5283         (input_filename, main_input_filename): Constify.
5284         * toplev.h: Update prototypes.
5285         * tree.c: Include output.h.  Don't declare
5286         first_global_object_name or weak_global_object_name.  Clean up string
5287         bashing in get_file_function_name_long.
5288         * tree.h (struct tree_decl): Constify filename member.
5289         (input_filename): Constify.
5290         Update prototypes.
5291         * varasm.c (first_global_object_name, weak_global_object_name):
5292         Constify.
5293         (assemble_start_function, assemble_variable): Clean up string bashing.
5294
5295         * gcc.c: Constify all spec-related strings initialized,
5296         transitively, from string constants.  Constify all strings
5297         and string variables related to multilibs.
5298         (set_spec, read_specs): Cast argument to free to PTR.
5299         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5300         length comparison to compare multilib switches.
5301         * genmultilib: Constify everything declared in multilib.h.
5302
5303 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5304
5305         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5306         as deleted.
5307
5308 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5309
5310         * config/avr/avr-protos.h (extra_constraint): change a type of
5311         second argument from char to int to avoid warnings.
5312         (asm_output_byte): Likewise.
5313
5314         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5315         (initial_elimination_offset): Handle elimination from
5316         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5317         (legitimate_address_p): Use MAX_LD_OFFSET.
5318         (legitimize_address): Likewise.
5319         (out_movqi_r_mr): Likewise.
5320         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5321         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5322         (out_movsi_mr_r): Likewise.
5323         (out_movqi_mr_r): Likewise.
5324         (out_movhi_mr_r): Likewise.
5325         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5326         count as CONST_INT != 6.
5327         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5328         shift count is a CONSTANT_P, but not a CONST_INT.
5329         (ashlhi3_out): Coding style modifications.
5330         (ashlsi3_out): Likewise.
5331         (ashrhi3_out): Likewise.
5332         (ashrsi3_out): Likewise.
5333         (lshrhi3_out): Likewise.
5334         (lshrsi3_out): Likewise.
5335         (ashrqi3_out): Generate shift for any known constant count without
5336         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5337         but not a CONST_INT.
5338         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5339         shift count is a CONSTANT_P, but not a CONST_INT.
5340         (extra_constraint): change a type of
5341         second argument from char to int to avoid warnings.
5342         (asm_output_byte): Likewise.
5343         (asm_file_end): Output size generated commands count as a hex
5344         number too.
5345
5346         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5347
5348         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5349         removed.
5350         (ashlqi3): Values of "length" attribute changed. Shift count
5351         uses constraints 'n' instead of 'i'.
5352         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5353         shifts without clobber register.
5354         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5355         (call_insn): Correct test for which_alternative == 1 (was 0).
5356         (call_value_insn): Likewise.
5357
5358         * config/avr/t-avr: Remove definition of FLOAT while generates
5359         fp-bit.c
5360
5361 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5362
5363         * fixinc/check.tpl:  Template for checking fixes
5364         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5365         disable hpux8_bogus_inlines on SCO
5366         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5367
5368 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5369
5370         * calls.c (expand_call): Reorganize somewhat in order
5371         to avoid unnecesary recalculation inside loop and make
5372         tail call failure code cleaner.
5373
5374 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5375
5376         * alias.c (nonlocal_reference_p): Minor reformatting.
5377         * reload.c (find_equiv_reg): Simplify logic for
5378         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5379         some some reformatting.
5380         * reload1.c (reload_combine): Don't assume everything in
5381         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5382
5383 2000-05-08  Richard Henderson  <rth@cygnus.com>
5384
5385         * final.c (current_insn_predicate): New.
5386         (final_scan_insn): Set it.
5387         * output.h (current_insn_predicate): Declare.
5388
5389         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5390         Attach it to call insns.
5391         (cond_exec_process_if_block): Track probability for true and
5392         false branches.
5393         (dead_or_predicable): Likewise.
5394
5395         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5396         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5397         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5398         (estimate_probability, expected_value_to_br_prob): Use them.
5399
5400         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5401         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5402         (ia64_expand_prediction): New.
5403         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5404         as needed after calls.
5405         (ia64_epilogue_uses): Mark b0 used.
5406         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5407         (bne_true, bne_false): Remove.
5408         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5409         (br_true, br_false): New.  Use predicate_operator and
5410         ia64_expand_prediction.
5411         (return_true, return_false): Likewise.
5412         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5413         (call_internal1, call_value_internal): Likewise.
5414         (call_value_internal1, call_multiple_values_internal1): Likewise.
5415
5416         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5417
5418         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5419
5420 2000-05-08  Richard Henderson  <rth@cygnus.com>
5421
5422         * rtlanal.c (may_trap_p): Consider old-style and volatile
5423         asms to trap.
5424
5425 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5426
5427         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5428
5429 2000-05-08  Richard Henderson  <rth@cygnus.com>
5430
5431         * config/ia64/ia64.h (predicate_operator): Declare.
5432
5433         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5434         of existance.
5435
5436         * gensupport.c (process_rtx): Copy and post-process each member
5437         of the define_insn rtvec individually.
5438
5439 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5440
5441         * cpplex.c (spell_token): New function.
5442         (TOKEN_LEN): Add 1 for whitespace.
5443         (_cpp_lex_file): Update to use spell_token.
5444         * cpplib.h (E): Remove.
5445         (TTYPE_TABLE): Update CPP_VSPACE entry.
5446
5447 2000-05-08  Richard Henderson  <rth@cygnus.com>
5448
5449         * flow.c (init_propagate_block_info): Watch out for conditional
5450         branch to next instruction, and thus one outgoing edge.
5451
5452         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5453         for global register variables; don't special case __[CD]TOR_LIST__;
5454         mind ggc_p for string allocation.
5455
5456 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5457
5458         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5459
5460 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5461
5462         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5463         i?86-*-msdosdjgpp* no longer uses fixincludes
5464         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5465         * fixinc/inclhack.sh:  deleted
5466         * fixinc/hackshell.tpl:  deleted
5467         * fixinc/inclhack.tpl:  deleted
5468         * fixinc/Makefile.in:  Remove dependencies on above
5469         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5470
5471 2000-05-08  Andreas Jaeger  <aj@suse.de>
5472
5473         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5474         support.
5475
5476 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5477
5478         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5479         substitutions.
5480
5481 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5482
5483         * cpplex.c: Move new lexer definitions and prototypes
5484         to top.  Conditional include these and the code if
5485         NEW_LEXER is defined.  Rename functions whose names
5486         clash if this code included.
5487
5488 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5489
5490         * rtl.def (COND_EXEC): Clarify.
5491
5492         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5493         same fashion as zero_extendsidi2.
5494
5495 2000-05-06  Richard Henderson  <rth@cygnus.com>
5496
5497         * config/ia64/ia64.c (predicate_operator): New.
5498         (ia64_print_operand): Handle 'J'.
5499         (rtx_needs_barrier): Handle COND_EXEC.
5500         * config/ia64/ia64.h (BRANCH_COST): Define.
5501         (PREDICATE_CODES): Update.
5502         * config/ia64/ia64.md: Docuement used unspec values.
5503         (attr predicable): New.
5504         (movxf, movxf_internal): New.
5505         (extendsfdf2): Don't comment out nop.
5506         (floatdidf2): Remove.
5507         (truncxfsf2, truncxfdf2, floatdixf2): New.
5508         (abssi2, absdi2): Put the neg in the "true" slot.
5509         (conditional branch instructions): Mark not predicable.
5510         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5511         (abs*_internal): Likewise.
5512         (alloc, set_bsp): Mark not predicable.
5513         (barrier, insn_group_barrier, flush_cache): Likewise.
5514         (define_cond_exec): New.
5515
5516 2000-05-06  Richard Henderson  <rth@cygnus.com>
5517
5518         * c-decl.c: Include "tm_p.h".
5519
5520         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5521         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5522         (ia64_expand_op_and_fetch): Declare.
5523         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5524         (setjmp_operand): Constify variables for XSTR.
5525         (ia64_encode_section_info): Likewise.
5526         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5527         values to int.
5528         (ia64_asm_output_external): Constify name.
5529         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5530         (process_for_unwind_directive): Provide switch default.
5531         (ia64_expand_compare_and_swap): Remove unused variables.
5532         (ia64_expand_builtin): Likewise.
5533         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5534         for printing.
5535
5536         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5537         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5538         (shift_count_operand, shift_32bit_count_operand): Likewise.
5539         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5540         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5541         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5542         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5543         (ia64_expand_builtin): Likewise.
5544         (call_multiple_values_operation): Make dest_regno unsigned.
5545
5546 2000-05-06  Richard Henderson  <rth@cygnus.com>
5547
5548         * rtl.def (DEFINE_COND_EXEC): New.
5549         * md.texi: Document it.
5550
5551         * gensupport.c (input_file): Remove.
5552         (struct queue_elem): Add lineno.
5553         (rtx_ready_queue): Remove.
5554         (errors): New.
5555         (predicable_default): New.
5556         (predicable_true, predicable_false): New.
5557         (define_attr_queue, define_attr_tail): New.
5558         (define_insn_queue, define_insn_tail): New.
5559         (define_cond_exec_queue, define_cond_exec_tail): New.
5560         (other_queue, other_tail): New.
5561         (queue_pattern): New.
5562         (process_rtx): Add patterns to the appropriate queues.
5563         (is_predicable, identify_predicable_attribute): New.
5564         (n_alternatives, collect_insn_data): New.
5565         (alter_predicate_for_insn, alter_test_for_insn): New.
5566         (shift_output_template, alter_output_for_insn): New.
5567         (process_one_cond_exec, process_define_cond_exec): New.
5568         (init_md_reader): Read the entire file.  Process define_cond_exec.
5569         (read_md_rtx): Return elements from the queues.
5570
5571 2000-05-06  Richard Henderson  <rth@cygnus.com>
5572
5573         * flow.c (mark_set_1): Don't update conditional life info
5574         if the register is not_dead.
5575
5576 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5577
5578         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5579         (mostlyclean): Also delete fixincl, fixinc.sh, and
5580         specs.ready, and make clean in the fixinc subdir.
5581
5582 2000-05-06  Richard Henderson  <rth@cygnus.com>
5583
5584         * Makefile.in (gensupport.o): Compile for the host.
5585         (host-prefix gensuuprt.o): Remove.
5586         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5587         (genattrtab.o): Likewise.
5588         (gencodes.o): Depend on gensupport.h.
5589         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5590         (genpeep.o, genattr.o, genoutput.o): Likewise.
5591
5592         * gensupport.c (obstack, rtl_obstack): New.
5593         (init_md_reader): Initialize rtl_obstack.
5594         * gensupport.h (rtl_obstack): Declare.
5595         (message_with_line): Declare.
5596
5597         * genattr.c: Remove all traces of obstack manipulation.
5598         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5599         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5600
5601         * genattrtab.c (obstack, rtl_obstack): Remove.
5602         (main): Don't init rtl_obstack.
5603         * genflags.c: Likewise.
5604
5605         * genrecog.c (message_with_line): Move ...
5606         * gensupport.c: ... here.
5607
5608 2000-05-06  Richard Henderson  <rth@cygnus.com>
5609
5610         * c-typeck.c (build_c_cast): Remove dead code.
5611
5612 2000-05-06  Richard Henderson  <rth@cygnus.com>
5613
5614         * flow.c (split_edge): Don't allocate global_live_at_start for
5615         the new block unless the old blocks had them as well.
5616
5617         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5618
5619         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5620         test_bb if a or b uses x.
5621
5622 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5623
5624         * cpphash.h: Remove conditional #define of __extension__.
5625         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5626         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5627         (ENABLE_RTL_CHECKING only).
5628         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5629         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5630         (ENABLE_TREE_CHECKING only).
5631         * varray.h: Add __extension__ to VARRAY_CHECK macro
5632         (ENABLE_CHECKING only).
5633
5634 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5635
5636         Use new tail-calling mechanism on ARM.
5637         * arm.md (sibcall, sibcall_value): New expands.
5638         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5639         (tailcalling peepholes): Delete.
5640         (push_multi): Simplify.
5641         * arm.c (lr_save_eliminated): Delete definition.
5642         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5643         (output_return_instruction): Remove checks on lr_save_eliminated.
5644         (output_arm_prologue): Remove old tail-calling code.
5645         (arm_output_epilogue): New parameter, really_return.  All callers
5646         changed.  Handle tail-calling epilogues.
5647         * arm.h (lr_save_eliminated): Delete declaration.
5648         (frame_pointer_needed): Delete declaration.
5649         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5650
5651         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5652         TARGET_ARM.
5653         * arm.c (thumb_code): Define it.
5654         (arm_override_options): Set it.
5655         * arm.h (thumb_code): Declare it.
5656
5657 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5658
5659         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5660
5661 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5662
5663         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5664         bogus clobber to insns.
5665         (load_multiple_operation, store_mulitple_operation): Don't check
5666         for it.
5667         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5668
5669         * arm.md (and_scc, ior_scc): Add missing mode.
5670
5671         * arm.md (call_value_symbol): Remove predicate from op2.
5672
5673         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5674
5675 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5676
5677         * expr.c (get_subtarget): New function.
5678         (force_operand, expand_expr, do_store_flag): Use it.
5679
5680         * toplev.c (compile_file): Don't take strlen of NAME if null.
5681
5682 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5683
5684         * xcoffout.c (xcoff_current_include_file,
5685         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5686         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5687         char *'.
5688         (xcoffout_declare_function): Make name 'const char *'.
5689         (xcoffout_end_epilogue): Make fname 'const char *'
5690         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5691         xcoffout_declare_function, xcoffout_source_line): Match above.
5692
5693         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5694         -maix64 is error.
5695         * rs6000.c (print_operand): Fix lossage typo.
5696         (output_cbranch): Remove "cr" decoration for now.
5697         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5698
5699 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5700
5701         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5702         constant count.
5703
5704 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5705
5706         * fixinc/genfixes: Improve the matching for make target names
5707
5708 2000-05-05  Catherine Moore  <clm@cygnus.com>
5709
5710         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5711         attribute to the decl.
5712         * c-decl.c (pushdecl): Propagate the USED attribute to the
5713         type copy.
5714
5715 2000-05-05  Richard Henderson  <rth@cygnus.com>
5716
5717         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5718         same way emit_group_load does.
5719
5720 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5721
5722         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5723
5724         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5725         (main): Likewise.
5726
5727 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5728
5729         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5730
5731 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5732
5733         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5734         to support -shared, on platforms with dynamic libraries.
5735
5736 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5737
5738         * system.h (S_ISBLK): Provide fallback definition.
5739
5740 2000-05-05  Geoff Berry  <geoffb@bops.com>
5741
5742         * extend.texi (Extended Asm): Document inability to give asm
5743         statements access to condition codes.
5744
5745 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
5746
5747         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
5748         as arg 2 of UNIQUE_SECTION.
5749
5750 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
5751
5752         * predict.c: Remove May 4 change.
5753         * bb-reorder.c (make_reorder_chain): Do not perform block movement
5754         if we have predicted the branch at 50-50 probability.
5755
5756 2000-05-05  Richard Henderson  <rth@cygnus.com>
5757
5758         * flow.c (init_propagate_block_info): Fix merge error
5759         in HAVE_conditional_execution code.
5760
5761 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
5762
5763         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
5764         shift cycle for unknown shift count. Also generates dec + brpl.
5765         (ashlqi3_out): Don't generate dec + brpl which now generates by
5766         `out_shift_with_cnt'.
5767         (ashlhi3_out): Likewise.
5768         (ashlsi3_out): Likewise.
5769         (ashrqi3_out): Likewise.
5770         (ashrhi3_out): Likewise.
5771         (ashrsi3_out): Likewise.
5772         (lshrqi3_out): Likewise.
5773         (lshrhi3_out): Likewise.
5774         (lshrsi3_out): Likewise.
5775
5776 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
5777
5778         * gcc.c (free_split_directories): Correct typo in explanation
5779         of make_relative_prefix.
5780
5781 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5782
5783         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
5784         comparison codes to branch_comparison_operator.
5785
5786 2000-05-04  Richard Henderson  <rth@cygnus.com>
5787
5788         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
5789
5790 2000-05-04  Richard Henderson  <rth@cygnus.com>
5791
5792         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
5793         (DPBIT_FUNCS): Remove _sf_to_usi.
5794         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
5795
5796         * ifcvt.c (noce_process_if_block): Fail if A or B modified
5797         between condition and jump.
5798
5799         * libgcc2.c (near eh_context_specific): Comment #endif string.
5800         * longlong.h: Don't use strings with embedded newlines.
5801
5802 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5803
5804         * config/rs6000/rs6000-protos.h: Add output_cbranch.
5805         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
5806         (print_operand): Delete %t and %T codes.
5807         (output_cbranch): New function.  Support branch prediction.
5808         * config/rs6000/rs6000.md: Use output_cbranch for
5809         conditional branches and returns.
5810
5811 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
5812
5813         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
5814         * stor-layout.c (place_field): Likewise.
5815         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
5816         * expr.c (store_expr): Make align unsigned.
5817         * explow.c (plus_constant_wide): Make low words unsigned.
5818         * expmed.c (choose_multiplier): Likewise.
5819         * fold-const.c (fold):  Likewise.
5820         * tree.h (build_int_2): Likewise.
5821         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
5822         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
5823         (init_emit): Change cast to unsigned char*.
5824         * varasm.c (compare_constant_1): Add cast to char*.
5825         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
5826         * reload1.c (reload): Likewise.
5827
5828         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
5829
5830 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
5831
5832         * predict.c (estimate_probability): If no prediction was found, then
5833         predict the successor that is the next physical block (if such a
5834         successor exists).
5835
5836 2000-05-04  Richard Henderson  <rth@cygnus.com>
5837
5838         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
5839
5840 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5841
5842         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5843
5844 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
5845
5846         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
5847         attribute macros from here ...
5848         (CPP_SPEC): to here.
5849         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5850         (CPP_SPEC): Likewise.
5851         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
5852
5853         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
5854         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
5855
5856 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5857
5858         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
5859
5860         * diagnostic (vbuild_message_string, build_message_string,
5861         build_location_prefix, output_get_prefix, init_output_buffer,
5862         output_notice, vline_wrapper_message_with_location,
5863         v_message_with_decl, default_print_error_function): De-constify.
5864         (set_real_maximum_length): Prototype.
5865
5866         * diagnostic.h (struct output_buffer, init_output_buffer,
5867         output_get_prefix, output_set_prefix): De-constify.
5868
5869         * function.c (init_function_start): Constify.
5870
5871         * gensupport.c (remove_constraints, process_rtx): Prototype.
5872
5873         * gthr-posix.h: Indent uses of #pragma.
5874
5875         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
5876         Prototype.
5877
5878         * predict.c (find_expected_value): Delete prototype.
5879         (expected_value_to_br_prob): Initialize variable `ev_reg'.
5880
5881         * sbitmap.h (debug_sbitmap): Prototype.
5882
5883         * ssa.c (compute_coalesced_reg_partition): Prototype.
5884
5885         * stor-layout.c (debug_rli): Prototype.
5886
5887         * tree.h (round_down): Prototype.
5888         (init_function_start): Constify.
5889
5890 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
5891
5892         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
5893         (overly conservative).  Change extern inline wrappers to
5894         static inline, define them always, use PARAMS properly.
5895         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
5896         whitespace warnings for \f and \v at the beginning of a line.
5897
5898 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
5899
5900         * haifa-sched.c (schedule_insns): Free the flow edge list when it
5901         is no longer needed
5902
5903 2000-05-04  Bruce Korb  <bkorb@gnu.org>
5904
5905         * fixincl/inclhack.def: added broken_cabs -
5906         Remove `extern double cabs' declarations from math.h
5907         * fixincl/inclhack.sh: regen
5908         * fixincl/fixincl.x: regen
5909         * fixincl/fixincl.c: Remove BOGOSITY code
5910         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
5911
5912 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5913
5914         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
5915         MEM_ALIAS_SET.
5916         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
5917         when calling MEM_COPY_ATTRIBUTES.
5918         * emit-rtl.c (operand_subword, change_address): Likewise.
5919         * explow.c (stabilize): Likewise.
5920         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
5921         * integrate.c (copy_rtx_and_substitute): Likewise.
5922         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
5923         when calling MEM_COPY_ATTRIBUTES.
5924         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
5925         Likewise.
5926         * cse.c (gen_lowpart_if_possible): Likewise.
5927         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
5928         * optabs.c (gen_move_insn): Likewise.
5929         * recog.c (validate_replace_rtx_1): Likewise.
5930         * simplify-rtx.c (add_mem_for_addr): Likewise.
5931         * stmt.c (expand_anon_union_decl): Likewise.
5932         * config/arm/arm.md: Likewise.
5933         * config/h8300/h7300.c (fix_bit_operand): Likewise.
5934         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
5935         (block_move_no_loop, block_move_sequence): Likewise.
5936         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
5937         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5938         Clear MEM_ALIAS_SET.
5939         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
5940         MEM_COPY_ATTRIBUTES.
5941
5942 2000-05-03  Robert Lipe <robertlipe@usa.net>
5943
5944         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
5945         to suppress libgcc1.
5946         (i[34567]86-*-sco3.2v5*) Likewise.
5947         (i[34567]86-*-sco3.2v4*) Likewise.
5948         (i[34567]86-*-sco) Likewise.
5949         (i[34567]86-*-solaris2) Likewise.
5950         (i[34567]86-*-sysv5*) Likewise.
5951         (i[34567]86-*-sysv4*) Likewise.
5952         (i[34567]86-*-udk*) Likewise.
5953         (i[34567]86-*-sysv*) Likewise.
5954
5955 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5956
5957         * cpphash.h (U): New define, to correct type of string constants.
5958         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
5959         routines, to do casts when passing unsigned strings to libc.
5960         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
5961
5962         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
5963         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
5964         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
5965         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
5966         second argument an U_CHAR *.
5967
5968         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
5969         length field, clean up initializer.
5970         (ISTABLE): Add __extension__ to designated-
5971         initializers version.
5972         * cpplex.c (CHARTAB): Likewise.
5973
5974         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
5975         case so the file won't be empty.
5976
5977 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
5978
5979         * bb-reorder.c (struct reorder_block_def): Member succ removed.
5980         (REORDER_BLOCK_SUCC): Removed.
5981         (enum reorder_skip_type): Removed.
5982         (skip_insns_between_block): Renamed to skip_insns_after_block.
5983         Removed second argument. Removed dead code and cleaned up.
5984         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
5985         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
5986         second parameter to skip_insns_after_block.
5987
5988 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5989
5990         * tree.c (staticp, case LABEL_DECL): New case.
5991
5992 2000-05-03  Richard Henderson  <rth@cygnus.com>
5993
5994         * Makefile.in (start.encap): Do not depend on LIBGCC1.
5995
5996         * mklibgcc1.in: Fix typo last change.
5997
5998 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5999
6000         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
6001         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
6002         (GCC_CFLAGS): Use it.
6003         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
6004         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
6005         objc/Make-lang.in: Use it.
6006
6007 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
6008
6009         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
6010
6011 2000-05-03  Richard Henderson  <rth@cygnus.com>
6012
6013         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
6014         LIBGCC1 empty with libgcc1.null.
6015
6016 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
6017
6018         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
6019         change.
6020
6021 2000-05-03  Greg McGary  <gkm@gnu.org>
6022
6023         * tree.h (tree_common): Add bounded_flag member.  Remove
6024         inaccurate comment about number of remaining bits.
6025         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
6026         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
6027         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
6028         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
6029         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
6030         (TYPE_QUAL_BOUNDED): New constant.
6031         (TYPE_QUALS): Handle bounded qualifier.
6032         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
6033         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
6034         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
6035         TYPE_AMBIENT_BOUNDEDNESS): New macros.
6036         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
6037         (tree_type): Add pointer_depth member.  Remove
6038         inaccurate comment about number of remaining bits.
6039         (DECL_POINTER_DEPTH): Add macro.
6040         (tree_decl): Add pointer_depth member.
6041
6042 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
6043
6044         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
6045         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
6046         (lshrhi3_out): Likewise.
6047         (ashrsi3_out): bugfix in shift by 8.
6048         (test_hard_reg_class): New function.
6049         * config/avr/avr.md: Bugfix inside conditions in peepholes.
6050         (ashlhi3): removed define_expand of this pattern.
6051         (*ashlhi3_insn): renamed to ashlhi3.
6052         (ashlsi3): removed define_expand of this pattern.
6053         (*ashlsi3_insn): renamed to ashlsi3.
6054         (ashrqi3): removed define_expand of this pattern.
6055         (*ashrqi3_insn): renamed to ashrqi3.
6056         (ashrhi3): removed define_expand of this pattern.
6057         (*ashrhi3_insn): renamed to ashrhi3.
6058         (ashrsi3): removed define_expand of this pattern.
6059         (*ashrsi3_insn): renamed to ashrsi3.
6060         (lshrhi3): removed define_expand of this pattern.
6061         (*lshrhi3_insn): renamed to lshrhi3.
6062         (lshrsi3): removed define_expand of this pattern.
6063         (*lshrsi3_insn): renamed to lshrsi3.
6064
6065 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
6066
6067         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
6068         inclusion of "system.h".
6069
6070 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
6071
6072         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
6073         TREE_ASM_WRITTEN.
6074
6075 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
6076
6077         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
6078         if -mauto-pic is on.
6079         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
6080         -mconstant-gp is in effect and function-descriptors are being used
6081         to make indirect calls.
6082         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
6083         (MASK_AUTO_PIC): Ditto.
6084         (TARGET_CONST_GP): Ditto.
6085         (TARGET_AUTO_PIC): Ditto.
6086         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
6087         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
6088         -mno-pic is in effect.
6089         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
6090         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
6091         -mauto-pic is in effect.
6092         (gprel64_offset): New pattern.
6093         (load_gprel64): Ditto.
6094         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
6095         -mconstant-gp is in effect, no need to preserve gp around direct
6096         calls.
6097         (call_value): Ditto.
6098         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
6099         (FUNCTION_PROFILER): Define.
6100         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
6101         @fptr() directive when -mno-pic or -mauto-pic is in effect.
6102         (ASM_OUTPUT_DESTRUCTOR): Ditto.
6103
6104 2000-05-03  Richard Henderson  <rth@cygnus.com>
6105
6106         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
6107         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
6108         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
6109         (mklibgcc, libgcc.mk): New targets.
6110         (libgcc.a): Use libgcc.mk.
6111         (stmp-multilib): Likewise.
6112         (stmp-multilib-sub): Remove.
6113         (mostlyclean): Don't delete libgcc2 temp files.
6114         * configure.in (AC_PROG_CC_C_O): Add.
6115         (NO_MINUS_C_MINUS_O): Substitute it.
6116         (all_outputs): Add mklibgcc.
6117         * mklibgcc.in: New file.
6118
6119 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6120
6121         * cppexp.c (op_t): Make an int.
6122
6123         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
6124
6125         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
6126
6127         * gensupport.c (process_rtx): Fix macros used.
6128
6129 2000-05-03  Richard Henderson  <rth@cygnus.com>
6130
6131         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
6132         call-clobbered registers of a call.
6133
6134 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6135
6136         * gensupport.c: New file.
6137         * gensupport.h: New file.
6138         * Makefile.in (HOST_RTL): Depend on gensupport.
6139         (gensupport.o) New rule.
6140         * genattr.c: Use gensupport for reading .md files.
6141         * genattrtab.c: Ditto.
6142         * gencodes.c: Ditto.
6143         * genconfig.c: Ditto.
6144         * genemit.c: Ditto.
6145         * genextract.c: Ditto.
6146         * genflags.c: Ditto.
6147         * genopinit.c: Ditto.
6148         * genoutput.c: Ditto.
6149         * genpeep.c: Ditto.
6150         * genrecog.c: Ditto.
6151         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
6152         * md.texi (Insn Splitting): Document define_insn_and_split.
6153
6154 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6155
6156         * flow.c (verify_flow_info): Added two more sanity checks. The
6157         first checks that the blocks are numbered consecutively. The second
6158         checks that n_basic_blocks is actually equal to the number of
6159         basic blocks in the insn chain.
6160
6161 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6162
6163         * cpplib.h: Add accessor macros for token lists.
6164         * cpplib.c, cpphash.c, cpplex.c: Use them.
6165
6166 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6167
6168         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6169         memory usage if not in a function.
6170         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6171         return address if static.
6172
6173 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6174
6175         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6176         whether address may trap.
6177
6178 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6179
6180         * bb-reorder (chain_reorder_blocks): Changed code to test for
6181         EDGE_FALLTHRU rather than making erroneous assumption that the
6182         first outgoing edge is the fall-through edge.
6183
6184 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6185
6186         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6187         ABI for varargs, across all MIPS. This is incompatible because the
6188         va_list (__builtin_va_list) structure is different, so a compilation
6189         unit passing a va_list and a compilation unit being passed one, should
6190         both be compiled with the same ABI. (The old structure had two
6191         pointers, now it has three.)
6192
6193 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6194
6195         * bb-reorder.c (struct reorder_block_def): Remove members end,
6196         block_begin, and block_end.
6197         (REORDER_BLOCK_OLD_END): Delete.
6198         (REORDER_BLOCK_BEGIN): Delete.
6199         (REORDER_BLOCK_END): Delete.
6200         (chain_reorder_blocks): Remove dead code.
6201
6202 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6203
6204         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6205         notes as the end of a basic block before deleting.
6206
6207 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6208
6209         * final.c (final_start_function): Fix spelling of "necessary".
6210
6211 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6212
6213         * toplev.c (debug_ignore_block): Return int.
6214         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6215         * toplev.h, dwarf2out.h: Adjust.
6216         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6217
6218         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6219         * toplev.c, final.c, rtl.h: Adjust.
6220
6221 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6222
6223         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6224         * configure.in: Look for makeinfo in the unified tree, then
6225         for a system makeinfo which is sufficiently new.
6226         * Makefile.in: If configure says makeinfo is too old, don't
6227         build or install Info documentation.
6228
6229 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6230
6231         * cpphash.c (collect_params): Fix off-by-one error.
6232         (dump_hash_helper): Dump all four macro nodetypes.
6233
6234 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6235
6236         * cpphash.c (trad_stringify): Adjust p after stringification as
6237         well.
6238
6239 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6240
6241         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6242         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6243
6244         * cppfiles.c (file_cleanup): Delete.
6245         * cpphash.c (macro_cleanup): Delete.
6246         (collect_objlike_expansion, collect_funlike_expansion,
6247         macarg, scan_arguments): Remove CPP_POP case.
6248
6249         * cpplex.c (null_cleanup): Delete.
6250         (cpp_pop_buffer): Do the work that was done in the cleanups
6251         here.  Call _cpp_unwind_if_stack from here.
6252         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6253         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6254         stack is the buffer _below_ the one we stacked.
6255         (cpp_get_token): Always pop an exhausted buffer.  Return
6256         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6257         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6258         increment the line number.
6259         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6260
6261         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6262         we see CPP_EOF and the top of stack is the buffer _below_ the
6263         one we stacked.
6264         * scan-decls.c: Likewise.
6265
6266 2000-05-02  Andrew Haley  <aph@cygnus.com>
6267
6268         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6269         where this function is called for the second time on a decl that
6270         has had its section info changed in such a way as to move it out
6271         of small data/bss.
6272         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6273
6274 2000-05-01  Richard Henderson  <rth@cygnus.com>
6275
6276         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6277         the sequence we're moving, not to merge_bb->head.
6278
6279 2000-05-01  Richard Henderson  <rth@cygnus.com>
6280
6281         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6282         reference to alpha/t-linux.
6283         (alpha*-*-linux-gnu*): Likewise.
6284         * configure: Rebuild.
6285
6286         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6287
6288         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6289         if not in SSA form.
6290
6291         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6292
6293 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6294
6295         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6296         TREE_THIS_VOLATILE.
6297
6298 2000-05-01  Richard Henderson  <rth@cygnus.com>
6299
6300         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6301         emit_conditional_move.
6302
6303 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6304
6305         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6306         as the dynamic linker.
6307
6308 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6309
6310         * cppfiles.c (open_include_file): Open file in blocking mode.
6311         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6312         Only exclude block devices and directories.
6313
6314         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6315         static.  Allocate the hashnode and its string in the same
6316         block of memory.
6317         (del_HASHNODE): Don't free h->name.
6318         (_cpp_lookup): If there is no entry for this string, create
6319         one, of type T_VOID.
6320         (_cpp_lookup_slot): Delete.
6321         * cpphash.h: Update prototypes.
6322
6323         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6324         not hp == NULL.
6325         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6326         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6327         node here, just fill in the value field properly.  "Delete"
6328         entries by setting the value field to T_VOID.  Check for
6329         hp->type == T_VOID, not hp == NULL.
6330
6331         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6332         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6333         hashtab.h.
6334
6335 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6336
6337         * config/mn10300/mn10300.c (print_operand_address): Do not add
6338         zero to SP.
6339
6340         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6341         adjusted by less than 256 bytes, use ret regardless of having any
6342         callee-saved register to restore.
6343
6344 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6345
6346         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6347
6348 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6349
6350         * config/i386/djgpp.h (INT_ASM_OP): Define.
6351         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6352         (ASM_WEAKEN_LABEL): Define.
6353         (MASK_BNU210): Define.
6354         (SUBTARGET_SWITCHES): Define.
6355         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6356         (MAKE_DECL_ONE_ONLY): Define.
6357         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6358
6359 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6360
6361         * i386/cygwin.h (INT_ASM_OP): Define.
6362
6363 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6364
6365         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6366         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6367
6368 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6369
6370         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6371         __tmp_reg__ and __zero_reg__ initialization.
6372
6373 2000-04-30  Richard Henderson  <rth@cygnus.com>
6374
6375         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6376
6377         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6378         referenced bewteen the condition and the jump.  Don't delete
6379         anything but the jump.
6380
6381 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6382
6383         * bb-reorder.c (scope_def): New struct.
6384         (scope_forest_info): New struct.
6385         (struct reorder_block_def): New member "scope".
6386         (REORDER_BLOCK_SCOPE): New macro.
6387         (relate_bbs_with_scopes): New function and prototype.
6388         (make_new_scope): Likewise.
6389         (build_scope_forest): Likewise.
6390         (remove_scope_notes): Likewise.
6391         (insert_intra_1): Likewise.
6392         (insert_intra_bb_scope_notes): Likewise.
6393         (insert_inter_bb_scope_notes): Likewise.
6394         (rebuild_scope_notes): Likewise.
6395         (free_scope_forest_1): Likewise.
6396         (free_scope_forest): Likewise.
6397         (dump_scope_forest): Likewise.
6398         (dump_scope_forest_1): Likewise.
6399         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6400         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6401         block.
6402         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6403         and remove_scope_notes before reordering is done. Added calls to
6404         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6405         after reordering is done.
6406
6407 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6408
6409         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6410         removed two stale entries (defined away with OLD_CPP).
6411         * fixinc/inclhack.sh: regen
6412         * fixinc/fixincl.x: regen
6413
6414 2000-04-30  Richard Henderson  <rth@cygnus.com>
6415
6416         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6417         from the last insn in the sequence.
6418
6419 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6420
6421         * cpplex.c (cpp_idcmp): New function.
6422         * cpplib.h: Prototype it.
6423         * scan_decls.c (scan_decls): Use it to inspect token names.
6424         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6425         the file being run through the preprocessor.
6426         (check_macro_names): Provide length of token to cpp_defined.
6427
6428         * Makefile.in: Remove stale warning message.
6429
6430         * cppfiles.c (redundant_include_p): Provide length of token to
6431         cpp_defined.
6432         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6433         values are unsigned int.
6434         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6435         (_cpp_lookup_slot): Do not calculate the hash, either.
6436         * cpphash.h: Update prototypes.
6437         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6438         Hashes are unsigned int.  Calculate hash here, pass by value
6439         to _cpp_lookup_slot.
6440
6441 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6442
6443         * simplify-rtx.c (check_value_useless): Delete function.
6444         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6445         by hand.
6446         (cselib_invalidate_regno): Likewise.
6447         (cselib_invalidate_mem_1): Likewise.
6448         (references_value_p): Recognize useless values by the fact that they
6449         have no locations.
6450         (discard_useless_values): Likewise.
6451         (cselib_record_set): This may turn a useless value
6452         into a useful one.
6453
6454 2000-04-30  Richard Henderson  <rth@cygnus.com>
6455
6456         * config/d30v: New port.
6457
6458         * configure.in (d30v-*): Set fp format.
6459         * configure: Rebuild.
6460
6461 2000-04-30  Richard Henderson  <rth@cygnus.com>
6462
6463         * ifcvt.c: New file.
6464         * Makefile.in (OBJS): Add it.
6465         (ifcvt.o): New target.
6466         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6467         and conditional arithmetic.
6468         (find_insert_position): Remove.
6469         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6470         * toplev.c (DFI_ce, DFI_ce2): New.
6471         (dump_file): Add ce and ce2 dumps.
6472         (rest_of_compilation): Run if_convert a couple o times.  Set
6473         cse_not_expected after cse2.  Don't set no_new_pseudos until
6474         after sched1 or recompute_reg_usage.
6475
6476 2000-04-30  Richard Henderson  <rth@cygnus.com>
6477
6478         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6479         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6480
6481 2000-04-30  Richard Henderson  <rth@cygnus.com>
6482
6483         * flow.c (struct reg_cond_life_info): New.
6484         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6485         (init_propagate_block_info): Initialize them.
6486         (free_propagate_block_info): Destruct them.
6487         (mark_set_1): Consider conditional life before killing a register.
6488         (mark_regno_cond_dead): New.
6489         (free_reg_cond_life_info): New.
6490         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6491         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6492         (mark_used_reg): Record conditional life.
6493
6494         * haifa-sched.c (schedule_insns): Disable death counting
6495         sanity check for HAVE_conditional_execution.
6496
6497 2000-04-30  Richard Henderson  <rth@cygnus.com>
6498
6499         * Makefile.in (TIMEVAR_H): New.
6500         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6501         (timevar.h): Remove rule.
6502
6503 2000-04-29  Richard Henderson  <rth@cygnus.com>
6504
6505         * config/alpha/crtend.asm: Use C comments instead of #.
6506         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6507
6508         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6509
6510 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6511
6512         * cpphash.h (enum node_type: Take out T_MCONST.
6513         (union hashval): Move into struct hashnode.
6514         (struct hashnode): Pack tighter.  Remove file, line, col
6515         members.
6516         * cpphash.c: Constify most of the macro-definition structures.
6517         (struct definition): Replace by struct object_defn
6518         and struct funct_defn.  Put file, line, column information
6519         here.  All users updated to match.
6520         (_cpp_create_definition, _cpp_macroexpand): Remove special
6521         case for #define WORD OTHERWORD.
6522         * cpplib.c (do_undef): Remove T_MCONST case.
6523
6524         * cpphash.h: Move struct reflist, struct definition, and the
6525         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6526         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6527         * cpphash.c (_cpp_free_definition): Free data pointed to by
6528         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6529         (_cpp_create_definition, del_HASHNODE): Just call
6530         _cpp_free_definition to clear out a hashnode.
6531         * cpplib.c (do_pragma_poison): Likewise.
6532
6533 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6534
6535         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6536         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6537         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6538         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6539         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6540         REGNO_AM33_P): Redefine in terms of the new macros.
6541         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6542         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6543         STRUCT_VALUE): Likewise.
6544         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6545         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6546
6547 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6548
6549         * regmove.c (struct record_stack_memrefs_data): New.
6550         (record_stack_memrefs): New function.
6551         (combine_stack_adjustments_for_block): Use it.
6552
6553 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6554
6555         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6556         use special_function_p to detect alloca.
6557
6558 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6559
6560         * gcc.texi: Fixes for makeinfo 4.0 --html.
6561
6562 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6563
6564         * pcp.h: Delete file.
6565
6566 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6567
6568         * h8300.c (function_epilogue): Clean up flags when the last insn
6569         in a function is a barrier.
6570
6571 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6572
6573         * configure.in (sparc-hal-solaris2*): protect [] glob from
6574         my expansion.
6575         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6576         rather than hard-coded constants in target_cpu_default2.
6577         * configure: Regenerate.
6578
6579 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6580
6581         * tree.c (get_callee_fndecl): Extract the initial value from
6582         a readonly decl.
6583
6584 2000-04-28  Richard Henderson  <rth@cygnus.com>
6585
6586         * varasm.c (record_constant_1): Record the CODE_LABEL when
6587         taking the address of a LABEL_REF.
6588
6589 2000-04-28  Richard Henderson  <rth@cygnus.com>
6590             Jan Hubicka  <jh@suse.cz>
6591
6592         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6593         adjustment; don't do the stack adjust.
6594         (expand_call): Call compute_argument_block_size right before
6595         allocating the block; update comment; don't do alignment sanity
6596         checking for sibling call; use args_size instead of
6597         unadjusted_args_size before args_size is adjusted.  Use
6598         combine_pending_stack_adjustment_and_call to compute stack adjust
6599         for must_preallocate case.
6600
6601         * expr.c (push_block): Remove shadow `temp' in inner scope.
6602
6603 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6604
6605         * toplev.c (rest_of_compilation): Call
6606         note_deferral_of_defined_inline_function even if the function
6607         can't be inlined.
6608
6609 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6610
6611         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6612
6613 2000-04-28  Richard Henderson  <rth@cygnus.com>
6614
6615         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6616
6617 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6618
6619         * timevar.c (init_timevar): DeANSIfy function definition.
6620
6621 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6622
6623         * Makefile.in (timevar.o): Depend on flags.h.
6624         * timevar.c (unused_stack_instances): New variable.
6625         (timevar_push): Take a timevar_stack_def from
6626         unused_stack_instances if available.
6627         (timevar_pop): Push the popped timevar_stack_def onto
6628         unused_stack_instances.
6629         (TIMEVAR_ENABLE): New macro.
6630         (timevar_def): Make standalone a 1-bit field.  Add field used.
6631         (get_time): Rename parameter to now.  Return after clearing it if
6632         not TIMEVAR_ENABLE.
6633         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6634         (timevar_pop): Likewise.
6635         (timevar_stop): Likewise.
6636         (timevar_push): Likewise.  Mark the timing variable as used.
6637         (timevar_start): Likewise.
6638         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6639         timevars that were never used.
6640
6641 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6642
6643         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6644         always TREE_READONLY.
6645
6646 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6647
6648         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6649         for call instruction with mode QImode.
6650
6651 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6652
6653         * Makefile.in (OBJS): Add timevar.o.
6654         (toplev.o): Depend on timevar.h.
6655         (ggc-simple.o): Likewise.
6656         (ggc-page.o): Likewise.
6657         (timevar.o): New rule.
6658         (timevar.h): New rule.
6659
6660         * timevar.h: New file.
6661         * timevar.c: Likewise.
6662         * timevar.def: Likewise.
6663
6664         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6665         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6666         throughout.
6667         (TIMEVAR): Remove macro.
6668         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6669         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6670         flow_time, combine_time, regmove_time, sched_time,
6671         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6672         sched2_time, dbr_sched_time, reorder_blocks_time,
6673         rename_registers_time, shorten_branch_time, stack_reg_time,
6674         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6675         all_time): Remove.
6676         (compile_file): Don't initialize time variables.  Call
6677         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6678         of many calls to print_time.
6679         (rest_of_compilation): Add timing for reload_cse_regs.
6680         (get_run_time): Removed to timevar.c.
6681         (print_time): Likewise.
6682         (get_run_time): Implement using TV_TOTAL time variable.
6683         (print_time): Get total run time from get_run_time.
6684         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6685         computing elapsed time explicitly.
6686         * ggc-simple.c (ggc_collect): Likewise.
6687         (gc_time): Remove declaration.
6688
6689 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6690
6691         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6692         (expand_call): Use it.
6693
6694 2000-04-27  Jan Hubicka  <jh@suse.cz>
6695
6696         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6697         fields.
6698
6699 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6700
6701         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6702         registers.
6703
6704 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6705
6706         * function.c (epilogue_done): Pass whole insn to record_insns.
6707
6708 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6709
6710         * cse.c (CSE_ADDRESS_COST): Remove.
6711         (find_best_addr): Add new parameter "MODE", use address_cost instead
6712         of CSE_ADDRESS_COST
6713         (address_cost): New.
6714         (fold_rtx): Update call of find_best_addr.
6715         * rtl.h (address_cost): Declare.
6716         * loop.c (general_induction_var): Add new parameter "MODE", use
6717         address_cost instead of ADDRESS_COST
6718         (init_loop): Use address_cost instead of ADDRESS_COST.
6719         (check_insn_for_givs): Update call of general_induction_var.
6720         (find_mem_givs): Likewise.
6721         (consec_sets_giv): Likewise.
6722         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6723         * i386.c (ix86_address_cost): New.
6724         * i386-protos.h (ix86_address_cost): Declare.
6725
6726 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6727
6728         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6729         registers.
6730
6731 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6732
6733         * expr.c (store_expr): Use clear_storage instead of direct memset
6734         libcall.
6735
6736 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6737
6738         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6739         ASHIFT, AND and LABEL_REF.
6740
6741 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6742
6743         * invoke.texi (-foptimize-sibling-calls): Fix.
6744
6745 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6746
6747         * loop.c (load_mems)  Don't use hard registers for the hoisting.
6748
6749         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
6750         calculation; rename const_equiv array in the preconditioning code
6751         from loop_unroll to loop_unroll_precondition
6752
6753 2000-04-27  Richard Henderson  <rth@cygnus.com>
6754
6755         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
6756         add new_set.
6757         (propagate_one_insn): Clear it.  Don't update reg_live here.
6758         (init_propagate_block_info): Update for pbi member changes.
6759         (free_propagate_block_info): Likewise.
6760         (mark_set_1): Know that zero_extract, sign_extract, and
6761         strict_low_part don't kill their argument.  Alter hard subregs.
6762         Update new_set for non-CLOBBER sets.  Update reg_live.
6763         (find_auto_inc): Update reg_live, not new_dead.
6764         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
6765         to determine if the reg in question was set this insn.  Only update
6766         reg info with PROP_REG_INFO.
6767
6768 2000-04-26  Richard Henderson  <rth@cygnus.com>
6769
6770         * flow.c (allocate_reg_life_data): Set max_regno here ...
6771         (life_analysis): ... not here.
6772
6773         * flow.c (calculate_global_regs_live): Force stack pointer
6774         live at end.
6775
6776 2000-04-26  Richard Henderson  <rth@cygnus.com>
6777
6778         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
6779         commit change group changes.
6780         (invert_exp_1): Similarly.
6781         (redirect_exp, invert_exp): Use them.
6782         (redirect_jump_1): New.
6783         (invert_jump_1): New.
6784         (jump_optimize_1): Remove code subsumed by condexec.c.
6785         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
6786
6787 2000-04-26  Richard Henderson  <rth@cygnus.com>
6788
6789         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
6790
6791         * genconfig.c (main): Set all HAVE_foo to 1.
6792
6793         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
6794
6795 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
6796
6797         * invoke.texi: Document -fssa flag.
6798
6799 2000-04-26  Richard Henderson  <rth@cygnus.com>
6800
6801         * flow.c (count_reg_sets_1): Remove.
6802         (count_reg_sets, count_reg_references): Remove.
6803         (recompute_reg_usage): Implement with update_life_info.
6804         Reallocate life data.
6805
6806 2000-04-26  Richard Henderson  <rth@cygnus.com>
6807
6808         * flow.c (update_life_info): Consider blocks null to mean the
6809         universal set.
6810         (calculate_global_regs_live): Likewise.
6811         (life_analysis): Do that instead of collecting all_blocks.
6812
6813 2000-04-26  Richard Henderson  <rth@cygnus.com>
6814
6815         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
6816         a still-valid conditional jump.
6817
6818 2000-04-26  Richard Henderson  <rth@cygnus.com>
6819
6820         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
6821
6822         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
6823         * flow.c (calculate_loop_depth): Remove.
6824         * output.h (calculate_loop_depth): Don't declare.
6825         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
6826         inline; run estimate_probability at the same time.
6827
6828 2000-04-26  Neil Booth  <NeilB@earthling.net>
6829
6830         * cpplib.h: "~=" is not a single pp-token.
6831         * cpplex.c: Correct commentary.
6832
6833 2000-04-26  Richard Henderson  <rth@cygnus.com>
6834
6835         * flow.c (mark_set_1): New arguments code and flags; update all
6836         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
6837         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
6838         loop_depth when optimizing for size.  Do new_dead update after
6839         emitting REG_UNUSED notes.  Merge mark_set_reg code.
6840         (mark_set_reg): Remove.
6841         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
6842         arrange to not emit REG_UNUSED notes.
6843
6844 2000-04-26  Richard Henderson  <rth@cygnus.com>
6845
6846         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
6847         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
6848
6849 2000-04-26  Richard Henderson  <rth@cygnus.com>
6850
6851         * flow.c (propagate_one_insn): Break out from propagate_block.
6852         (init_propagate_block_info): Likewise.
6853         (free_propagate_block_info): Likewise.
6854         (propagate_block): Use them.  Export.
6855         * basic-block.h: Declare them all.
6856
6857 2000-04-26  Richard Henderson  <rth@cygnus.com>
6858
6859         * basic-block.h (life_analysis): Declare here ...
6860         * output.h: ... not here.
6861         * flow.c (life_analysis): Remove nregs parameter; replace
6862         remove_dead_code with flags.  Remove ssa dead code check.
6863         Only init alias analysis if we'll use it.
6864         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
6865         * ssa.c (convert_to_ssa): Likewise.
6866         (convert_from_ssa): Likewise.
6867         * toplev.c (rest_of_compilation): Likewise.
6868
6869 2000-04-26  Richard Henderson  <rth@cygnus.com>
6870
6871         * flow.c (flow_delete_block): Rename from delete_block.  Export.
6872         * basic-block.h (flow_delete_block): Declare.
6873
6874 2000-04-26  David S. Miller  <davem@redhat.com>
6875
6876         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
6877         taking a PATTERN of it.
6878
6879 2000-04-26  <NeilB@earthling.net>
6880
6881         * cpplex.c (spell_other, spell_char): Remove.
6882         (SPELL_CHAR): New.
6883         (token_spelling, trigraph_map): Use unsigned chars.
6884         (_cpp_lex_line): Tidy up the switch statement.
6885         * cpplib.h: Implement spell_char with spell_string.
6886         (C): New.
6887
6888 2000-04-26  <RodneyBrown@pmsc.com>
6889
6890         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6891         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6892
6893 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6894
6895         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
6896         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
6897         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
6898         dwarf2out_return_save, dwarf2out_return_reg,
6899         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
6900         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
6901         gen_compile_unit_die, dwarf2out_init): Constify a char*.
6902
6903         * dwarf2out.h (dwarf2out_init): Likewise.
6904
6905         * dwarfout.c (filename_entry, primary_filename, last_filename,
6906         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
6907
6908         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
6909         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
6910         dwarf2out_return_reg): Likewise.
6911
6912 2000-04-26  Andreas Jaeger  <aj@suse.de>
6913
6914         * extend.texi (Function Attributes): Fix description of pure
6915         attribute.
6916
6917 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6918
6919         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
6920         before calling rest_of_compilation.
6921
6922 2000-04-26  Andreas Jaeger  <aj@suse.de>
6923
6924         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
6925         last patch.
6926
6927 2000-04-25  Richard Henderson  <rth@cygnus.com>
6928
6929         * cse.c (cse_insn): Emit barrier after unconditional jump.
6930
6931         * calls.c (expand_call): Disable tail call generation once
6932         rtx_equal_function_value_matters is false.
6933
6934         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
6935         like EDGE_EH edges.
6936
6937 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
6938
6939         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
6940
6941         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
6942
6943         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
6944         is the primary DIE for a member function.
6945         (gen_decl_die): Call set_decl_origin_self here.
6946         * dwarfout.c (output_decl): And here.
6947         * integrate.c (output_inline_function): Not here.
6948         Don't clear DECL_INLINE until after calling rest_of_compilation.
6949         (set_decl_origin_self): No longer static.
6950         * tree.h: Add prototype.
6951         * toplev.c (note_deferral_of_defined_inline_function): Only write
6952         out abstract instance for actual inlines.
6953
6954 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
6955
6956         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
6957         EXTENDED_REGS only if TARGET_AM33.
6958         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
6959         SP_REGS to register allocation and reloading unless absolutely
6960         necessary.
6961         (movsi3): Remove special-case of adding non-constants to SP.
6962
6963 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6964
6965         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
6966         INCLUDES to search and does not provide any of its own.  Also it
6967         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
6968         parameters.  Also it does not call AC_DEFINE.
6969         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
6970         AC_DEFINE and provides for automatic entries for autoheader.
6971         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
6972
6973         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
6974         so we can pass -I flags and include gansidecl.h/system.h in this
6975         test.
6976
6977         * acconfig.h: Delete all NEED_DECLARATION_* entries.
6978
6979 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6980
6981         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6982         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6983         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
6984
6985         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6986         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6987         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
6988         for these macros.  Clean up spacing and linewraps.
6989
6990 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6991
6992         * calls.c (expand_call): Use get_callee_fndecl.
6993
6994         * print-tree.c (print_node): Print the chain of an _EXPR.
6995
6996 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
6997                           Jim Wilson  <wilson@cygnus.com>
6998                           Andrew Haley  <aph@cygnus.com>
6999
7000         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
7001         and gp save/restore problems.
7002         * config/ia64/crtend.asm: Add IA-64 unwind support.
7003         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
7004         in fr_pad_size calculation.
7005         (save_restore_insns): Move PR save area.  Correct uses of
7006         RTX_FRAME_RELATED_P.
7007         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
7008         (ia64_expand_epilogue): Add eh_epilogue support.
7009         (ia64_function_prologue): Emit .prologue directive.
7010         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
7011         (ia64_override_options): Set init_machine_status and
7012         mark_machine_status.
7013         (rtx_needs_barrier): Handle bsp reads and writes.
7014         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
7015         New static variables.
7016         (process_set, process_for_unwind_directive): New functions.
7017         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
7018         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
7019         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
7020         macros.
7021         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
7022         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
7023         (struct machine_function): Define.
7024         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
7025
7026 2000-04-25  Bruce Korb  <bkorb@gnu.org>
7027
7028         * fixinc/Makefile.in: make the removal of old programs more
7029         robust
7030         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
7031         install-bin and install-sh
7032
7033 2000-04-25  Nick Clifton  <nickc@cygnus.com>
7034
7035         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
7036         defined, define to return zero.
7037         (function_cannot_inline_p): If a function has any target
7038         specific attributes, then use the macro
7039         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
7040         whether it can be inlined.  If it cannot, issue a suitable
7041         explanation.
7042
7043         * tm.texi: Add a new node 'Inlining' to document the new macro
7044         FUNCTION_ATTRIBUTE_INLINABLE_P.
7045
7046 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
7047
7048         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
7049         commentary.
7050
7051 2000-04-25  Neil Booth  <NeilB@earthling.net>
7052
7053         Restore previous patch, plus the following fixes:
7054
7055         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
7056         flags, not CPP_OPEN_PAREN.
7057         * cpplex.c (expand_token_space, init_token_list,
7058         cpp_free_token_list): Put the dummy token at list->tokens[-1].
7059         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
7060
7061 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7062
7063         * config/i386/freebsd.h (INT_ASM_OP): Define.
7064
7065 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7066
7067         * loop.c (strength_reduce): Fix typo in the last checkin.
7068
7069 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7070
7071         * stor-layout.c (finalize_record_size): Simplify to use existing
7072         functions.
7073         (compute_record_mode): No longer static.
7074         * tree.h (compute_record_mode): New declaration.
7075
7076 2000-04-25  Neil Booth  <NeilB@earthling.net>
7077
7078         * Revert my patch below until cause of build failures
7079         determined.
7080
7081 2000-04-25  Richard Henderson  <rth@cygnus.com>
7082
7083         * combine.c (combine_instructions): Add missing argument
7084         to try_combine.
7085
7086         * toplev.c (rest_of_compilation): Delay sibcall optimization
7087         until after emit_eh_context.
7088
7089 2000-04-24  Nick Clifton  <nickc@redhat.com>
7090
7091         * combine.c (combine_instructions): Do not try to combine a
7092         sequence of insns when the second insn has been replaced by a
7093         note.
7094
7095 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
7096
7097         * gcc.c (load_specs): New static function.
7098         (read_specs): Use it.
7099
7100         * gcc.c (lookup_compiler): Make multiple passes for case
7101         insensitive filesystems.
7102
7103 2000-04-24  Neil Booth  <NeilB@earthling.net>
7104
7105         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
7106         * cpphash.h (_cpp_check_directive): new.
7107         * cpplex.c (handle_newline, cpp_free_token_list,
7108         init_trigraph_map, trigraph_ok, trigraph_replace,
7109         backslash_start, skip_block_comment, skip_line_comment,
7110         skip_whitespace, parse_name, parse_number, parse_string,
7111         copy_comment, _cpp_lex_line, spell_char, spell_string,
7112         spell_comment, spell_name, spell_other, _cpp_lex_file,
7113         _cpp_output_list): new.
7114         (expand_name_space): take length argument.
7115         (init_token_list): add comment list initialisation.
7116         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
7117         instead of HSPACE_BEFORE.
7118
7119         * cpplib.c (_cpp_check_directive): new
7120         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
7121         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
7122         (HSPACE_BEFORE): delete.
7123         (TTYPE_TABLE): rearrange.
7124         (struct cpp_toklist): update.
7125
7126 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7127
7128         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
7129         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
7130         argument form of AC_DEFINE.
7131
7132         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
7133         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
7134         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
7135         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
7136         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
7137
7138         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
7139
7140 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7141
7142         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
7143         deduced.h): Use -isystem, not -I, for including system headers.
7144
7145 2000-04-24  Nick Clifton  <nickc@cygnus.com>
7146
7147         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
7148         the source register is the frame pointer or arg pointer.
7149         (addsi3_small_int): Disallow if source register is the frame
7150         pointer or arg pointer.
7151
7152 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7153
7154         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7155         call to AC_MSG_RESULT.
7156
7157 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7158
7159         * invoke.texi: Correct grammatical errors, document
7160         -fno-gnu-keywords as identical to -fno-asm for C++.
7161
7162 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7163
7164         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7165         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7166         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7167         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7168         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7169
7170         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7171         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7172         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7173         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7174         new macros names.
7175
7176 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7177
7178         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7179         (pop_alignment): Likewise.
7180         (handle_pragma_token): Likewise.
7181
7182 2000-04-24  Robert Lipe <robertlipe@usa.net>
7183
7184         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7185
7186 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7187
7188         * combine.c (try_combine): Update reg_nonzero_bits of
7189         newi2pat before newpat.
7190
7191 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7192
7193         * loop.c (strength_reduce): Simplify test to INSN_P.
7194         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7195         expressions instead of CONST_INT.
7196         (express_from_1): Likewise.
7197
7198 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7199
7200         * regs.h (reg_n_max): Don't declare.
7201         * flow.c (reg_n_max): Don't define.
7202         * regclass.c (renumber): Don't initialize to zero.
7203         (regno_allocated): Likewise.
7204         (reg_n_max): Define.
7205         (allocate_reg_info): Don't initialize unnecessarily.
7206
7207 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7208
7209         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7210         and blockage_p in the newly allocated attribute.
7211
7212 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7213
7214         * config/mn10300/mn10300.md (addsi): `inc4' on address
7215         registers does not modify cc, but `inc' on an extended
7216         register does.
7217
7218 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7219
7220         * reload.c (find_equiv_reg): Checks all valueno regs
7221         as a reload_reg_p regs.
7222
7223 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7224
7225         * cpphash.c (collect_objlike_expansion): Add sanity check.
7226         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7227         the buffer is the empty string, return.  Mark __DATE__ and
7228         __TIME__ as XCONST nodes, not MCONST.
7229         (_cpp_macroexpand): Avoid pushing an empty buffer.
7230         (funlike_macroexpand): Don't pop token_buffer here.
7231
7232 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7233
7234         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7235         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7236         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7237         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7238         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7239         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7240         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7241
7242 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7243
7244         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7245         constant MULT givs.
7246
7247 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7248
7249         * cpphash.h (struct definition): Move file, line, col members...
7250         (struct hashnode): ... here.  Also add 'disabled' flag.
7251         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7252         T_IDENTITY.  Remove T_DISABLED.
7253         Update prototypes.
7254
7255         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7256         (collect_expansion): Split into collect_objlike_expansion and
7257         collect_funlike_expansion.
7258         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7259         funlike_macroexpand.
7260         (_cpp_compare_defs): Rename compare_defs, make static.
7261         (_cpp_make_hashnode): Initialize hp->disabled.
7262         (macro_cleanup): Adjust for new token types.  Clear
7263         m->disabled.
7264         (_cpp_create_definition): Move code here to determine what
7265         sort of macro it is, and code to check for redefinitions, from
7266         do_define.  Implement a few simple cases without creating a
7267         full DEFINITION.
7268         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7269         Handle the simple cases.
7270         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7271         here.
7272
7273         * cppinit.c (builtin_array): Change MCONST to XCONST
7274         everywhere.
7275         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7276         fix check for disabled and function-like macros.
7277         * cpplib.c (do_define): Move most logic to
7278         _cpp_create_definition.
7279         (do_undef): Handle new special token types.
7280
7281 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7282
7283         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7284         of CONSTANT_P for mult_val; always use validate_change to update insn.
7285
7286 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7287
7288         * cpphash.c (trad_stringify, add_pat): New functions.
7289         (collect_expansion): Restore support for -traditional syntax.
7290         Use trad_stringify and add_pat.
7291         (_cpp_macroexpand): Restore support for -traditional semantics.
7292         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7293         get a COMMENT token.
7294         (_cpp_lex_token): Provide COMMENT tokens to caller if
7295         traditional and parsing_define_directive.
7296         (skip_comment): Warn about // comments if -Wtraditional.
7297         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7298         proper node type.
7299         (do_undef): Don't warn about undefining EMPTY nodes.
7300
7301 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7302
7303         * loop.c (strength_reduce): Fix biv removal code.
7304
7305 2000-04-22  Richard Henderson  <rth@cygnus.com>
7306
7307         * predict.c (estimate_probability): Examine both sides of
7308         a branch for no exits.  Use 90% not 50% for predict taken.
7309         Reorg for one copy of note generation code.
7310
7311 2000-04-22  Richard Henderson  <rth@cygnus.com>
7312
7313         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7314
7315 2000-04-22  Richard Henderson  <rth@cygnus.com>
7316
7317         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7318         (output_clear): Likewise.
7319         (output_printf): Use va_copy.
7320         (vline_wrapper_message_with_location): Likewise.
7321         (v_message_with_decl): Likewise.
7322         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7323         * system.h (va_copy): Provide default implementation.
7324
7325 2000-04-22  Richard Henderson  <rth@cygnus.com>
7326
7327         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7328         the collected condition is not a constant.
7329
7330 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7331
7332         * diagnostic.h: New file.
7333
7334         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7335
7336         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7337         various function prototypes.
7338         (diagnostic.h): #include.
7339         (struct output_buffer): Move into diagnostic.h.
7340         (get_output_prefix): Rename to output_get_prefix.  Export.
7341         (init_output_buffer): Export. Break out.  Ajust intialization.
7342         (output_space_left, output_append): Export.
7343         (output_newline): Rename to output_add_newline.  Export.
7344         (output_clear): Nullify additional output_buffer fields.
7345         (output_puts): Rename to output_add_string.  Export.
7346         (dump_output): Rename to output_flush_on.  Export.
7347         (build_location_prefix): Constify return-type.
7348         (emit_output_prefix): Rename to output_emit_prefix. Export.
7349         (set_real_maximum_length): New function.
7350         (output_set_maximum_length): Ditto
7351         (output_clear): Ditto.
7352         (output_add_character): Ditto.
7353         (output_add_integer): Ditto.
7354         (output_add_space): Ditto.
7355         (output_format): Ditto.
7356         (output_printf): Adjust buffer initialization.
7357         (vline_wrapper_message_with_location): Ditto.
7358         (v_message_with_decl): Ditto.  Adjust call to output_puts
7359         and get_output_prefix.
7360         (default_print_error_function): Adjust buffer intialization.
7361
7362 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7363
7364         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7365         of VOID_TYPE.
7366
7367 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7368
7369         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7370         of explicit 0.
7371
7372 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7373
7374         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7375         accurate data about SP moves.
7376
7377 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7378
7379         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7380         aliases to AM33 registers.
7381
7382 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7383
7384         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7385         to all EXTENDED bitmaps.
7386
7387 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7388
7389         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7390         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7391         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7392
7393 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7394
7395         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7396         the operand is not constant.
7397
7398 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7399
7400         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7401         as a call-clobbered regs.
7402
7403 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7404
7405         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7406         * rtl.h: Likewise.
7407         * rtl.def: Update comment.
7408         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7409         * integrate.c (expand_inline_function): Likewise.
7410         * profile.c (branch_prob): Likewise.
7411         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7412         * print-rtl.c (print_rtx): Likewise.
7413         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7414         (reemit_notes): Likewise; also use enum insn_note.
7415
7416         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7417         (place_field): Properly compute know and actual alignment.
7418
7419         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7420         in proper format.
7421
7422         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7423         note for REG1.
7424
7425 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7426
7427         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7428         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7429         (collect_expansion): Rewrite to scan over a token list.
7430         Remove -traditional support.
7431         (collect_formal_parameters): Rename to collect_params; rewrite
7432         to scan over a token list.
7433         (_cpp_create_definition): Adjust to scan a token list.
7434         (_cpp_macroexpand): Remove -traditional support.
7435         (_cpp_compare_defs): Whitespace is now canonicalized.
7436         (comp_def_part): Delete function.
7437
7438         * cpphash.h: Update prototypes.
7439         * cpplex.c (init_token_list): Don't set lineno if there is no
7440         buffer.
7441         (pedantic_whitespace): New function.
7442         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7443         consume a newline.  Use pedantic_whitespace.
7444         (_cpp_lex_token): Remove support for -traditional macros.
7445         (_cpp_get_define_token): Delete.
7446         (_cpp_get_directive_token): Do the real work here.  Use
7447         pedantic_whitespace.
7448         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7449
7450         * cpplib.c (get_macro_name): Delete.
7451         (do_define): Read the entire line into pfile->directbuf, then
7452         feed the token list to _cpp_create_definition.
7453         * cpplib.h (HSPACE_BEFORE): new define.
7454         (struct cpp_reader): Add a toklist member, "directbuf".
7455
7456         * predict.c (estimate_probability): New heuristic: if a jump
7457         branches around a block with no successors, predict it taken.
7458         Disentangle control flow.
7459
7460 2000-04-20  Richard Henderson  <rth@cygnus.com>
7461
7462         * loop.c (emit_iv_add_mult): Revert last change.
7463
7464 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7465
7466         * cpplib.h (enum cpp_ttype): Add token types for all
7467         punctuators.  Distinguish pp-numbers from valid C numbers.
7468         Give some tokens better names.  Initialize from macro.
7469         (struct cpp_name, cpp_token, cpp_toklist): New data
7470         structures.
7471         Update prototypes.
7472         * cpplex.c (bump_column, expand_name_space,
7473         expand_token_space, init_token_list, cpp_output_list,
7474         _cpp_scan_line):  New functions.
7475         (output_line_command): Add third argument, new line number.
7476         * cpphash.h: Update prototypes.
7477         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7478         token names.
7479
7480 2000-04-20  Richard Henderson  <rth@cygnus.com>
7481
7482         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7483
7484 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7485
7486         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7487         object pointed to.
7488
7489 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7490
7491         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7492         REG_EQUAL note explaining the calculated value.
7493
7494         * calls.c (expand_call): Avoid unnecesary precalculation
7495         and outgoing parameters space guarding for sibling calls.
7496         (store_one_arg): Likewise.
7497
7498 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7499
7500         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7501         (rest_of_compilation): Write sibling dump file and account
7502         for time as jump time.
7503         * invoke.texi: Update documentation on dump flags.
7504
7505 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7506
7507         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7508
7509 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7510
7511         * cpphash.c (special_symbol): Represent an empty macro with
7512         "\r \r " not just "\r ".
7513         (_cpp_macroexpand): Correct condition for the foo ( ) special
7514         case.
7515         (unsafe_chars): Handle EOF as second argument.
7516         (push_macro_expansion): Simplify test for removing escape at
7517         end.  Do not trim both escapes if there is no text in between.
7518
7519 2000-04-19  Jim Blandy  <jimb@redhat.com>
7520
7521         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7522         of PTR_SIZE, when appropriate.
7523
7524 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7525
7526         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7527         (USE_ENUM_BITFIELDS): Fix typo.
7528
7529 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7530
7531         * stor-layout.c (place_field): Set rli->offset_align properly.
7532
7533 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7534
7535         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7536         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7537         PARM_BOUNDARY): Remove unnecessary casts.
7538
7539 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7540
7541         * calls.c (precompute_arguments): Remove must_preallocate and
7542         args_size calls.
7543         (expand_call): Update call of precompute_arguments.
7544
7545         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7546         check_insn_for_givs): Break out from ...
7547         (strength_reduce) ... here; use for_every_insn_in_loop to call
7548         check_insn_for_givs.
7549         * loop.h (for_every_insn_in_loop): Declare.
7550         (loop_insn_callback): New type.
7551
7552 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7553
7554         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7555         not nul-terminated.
7556
7557 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7558
7559         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7560         flag_pic and RELOC.
7561
7562 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7563
7564         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7565
7566         * configure.in: Delete --disable-cpplib option and all
7567         references to cpp_main.
7568         * configure: Regenerate.
7569         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7570         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7571         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7572         cpp$(exeext).  Add --no-headers to makeinfo command line when
7573         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7574         cccp.1.
7575         * install.texi: Delete all references to cexp.y/cexp.c.
7576         Delete ancient instructions for compiling GCC on 3b1.
7577         * INSTALL: Regenerate.
7578
7579         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7580         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7581         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7582         cexp.c/cexp.y.
7583         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7584         which is no longer tested anywhere.
7585
7586         * cppinit.c (handle_option): Don't run error message through
7587         gettext twice.
7588
7589 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7590
7591         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7592         * cpperror.c (hashtab.h): Now include.
7593         * cppexp.c (hashtab.h): Likewise.
7594         * cpplex.c (hashtab.h): Likewise.
7595         * cppfiles.c (hashtab.h): Likewise.
7596         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7597         to htab_find_slot_with_hash.
7598         * cpphash.c (hashtab.h): Now include.
7599         (_cpp_lookup_slot): INSERT is now enum insert_option.
7600         * cpphash.h (_cpp_lookup_slot): Likewise.
7601         * cppinit.c (hashtab.h): Include earlier.
7602         (initialize_builtins): Pass enum to htab_find_slot.
7603         * cpplib.c (hashtab.h): Now include.
7604         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7605         (do_pragma_poison, do_assert): Likewise.
7606         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7607         htab_find_slot_with_hash.
7608         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7609         * tree.c (type_hash_add): Likewise.
7610         (build1): Minor cleanup.
7611
7612         * ggc-common.c: Add missing blanks.
7613         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7614         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7615
7616         * stmt.c (mark_case_node): New function.
7617         (mark_case_nesting): Call it.
7618
7619         * expmed.c (emit_store_flag): If comparing two-word integer
7620         with zero, can optimize NE, EQ, GE, and LT.
7621
7622         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7623         * conflict.c: Minor cleanups.
7624         * optabs.c: Add blank line
7625         * simplify-rtx.c: Minor cleanups.
7626
7627 2000-04-18  Stan Cox  <scox@cygnus.com>
7628
7629         * gengenrtl.c (genlegend): Fix misspelling.
7630
7631 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7632
7633         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7634         bitfields of the host compiler are not signed quantities.
7635         * config.in: Regenerate.
7636         * configure: Regenerate.
7637         * system.h (USE_ENUM_BITFIELDS): Added.
7638         (ENUM_BITFIELDS): Added.
7639         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7640         (SHORT_ENUM_BUG): Deleted.
7641         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7642         now ENUM_BITFIELD.
7643         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7644         (CODE_FIELD_BUG): Likewise.
7645         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7646         (OLD_CC): Likewise.
7647         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7648
7649 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7650
7651         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7652         mark is active.
7653
7654 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7655
7656         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7657         * cpplib.c (do_include, do_import, do_include_next,
7658         read_line_number, detect_if_not_defined): Likewise.
7659         * cpphash.c (collect_expansion): Likewise.
7660         (special_symbol, _cpp_macroexpand): Check return from
7661         cpp_file_buffer.
7662         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7663         macros.  Delete all uses.
7664
7665         * gcc.dg/cpp-mi.c: Add two more test cases.
7666         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7667
7668 2000-04-17  Richard Henderson  <rth@cygnus.com>
7669
7670         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7671         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7672
7673 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7674
7675         * function.c (expand_function_start): Use hard_function_value to
7676         compute the RTL to use for DECL_RESULT.
7677
7678 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7679
7680         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7681         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7682          x86_memory_mismatch_stall): New global variables.
7683         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7684         alloved; fix load penalties for Athlon.
7685         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7686         x86_memory_mismatch_stall): Declare.
7687         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7688          TARGET_MEMORY_MISMATCH_STALL): New.
7689         * i386.md (athlon scheduling parameters): Fix latencies according to
7690         Athlon Optimization Manual.
7691         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7692         vector.
7693         (fsqrt instruction patterns): Set athlon_decode to direct.
7694         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7695         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7696         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7697         and TARGET_PARTIAL_REGISTER_STALL machines.
7698         (pushdf_nointeger): New pattern.
7699         (pushdf_integer): Rename from pushdf.
7700         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7701         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7702
7703 2000-04-17  Richard Henderson  <rth@cygnus.com>
7704
7705         * loop.c (canonicalize_condition): Add WANT_REG argument.
7706         Stop the search if we match it.
7707         * expr.h (canonicalize_condition): Update decl.
7708         * predict.c (expected_value_to_br_prob): Use it.  Track last
7709         expected value note.
7710         (find_expected_value): Remove.
7711
7712         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7713
7714 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7715
7716         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7717         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7718         a plain file.
7719         * configure.in: Call AC_FUNC_MMAP_FILE.
7720         * configure: Regenerate.
7721         * config.in: Regenerate.
7722
7723         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7724         * fixinc/fixincl.c: Likewise.
7725
7726 2000-04-17  Richard Henderson  <rth@cygnus.com>
7727
7728         * builtins.c (expand_builtin_expect): New.
7729         (expand_builtin): Call it.
7730         * builtins.def (BUILT_IN_EXPECT): New.
7731         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7732         * extend.texi: Document it.
7733
7734         * predict.c (expected_value_to_br_prob): New.
7735         (find_expected_value): New.
7736         * basic-block.h (expected_value_to_br_prob): Declare.
7737         * toplev.c (rest_of_compilation): Invoke it.
7738
7739         * rtl.h (NOTE_EXPECTED_VALUE): New.
7740         (NOTE_INSN_EXPECTED_VALUE): New.
7741         * rtl.c (note_insn_name): Update.
7742         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7743         cases; handle NOTE_INSN_EXPECTED_VALUE.
7744
7745 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
7746
7747         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
7748         leaf sibcall delay slot if flag_pic.
7749         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
7750
7751 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7752
7753         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
7754
7755         * fixproto: If fix-header fails, exit with an error.
7756
7757 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7758
7759         * cse.c (struct check_depdendence_data): New.
7760         (check_dependence): New function.
7761         (invalidate): Use check_depdenence.
7762
7763 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7764
7765         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
7766         UNITS_PER_WORD is unsigned.
7767
7768         * tree.h (struct tree_common): Remove misleading comment.
7769
7770 2000-04-16  Dave Pitts  <dpitts@cozx.com>
7771
7772         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
7773         message in quotes. Otherwise, IBM's make program treats the '#' as the
7774         start of a comment and ignores the remainder of the line.
7775
7776         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
7777         upper case.
7778         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
7779         * cexp.y (initialize_random_junk): Likewise.
7780         * cppfiles.c (find_include_file): Cast alloca return value.
7781         * cppinit.c (initialize_standard_includes): Likewise.
7782         * cpplib.c (cpp_define, cpp_undef): Likewise.
7783         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
7784         * final.c (output_asm_insn): Allow for holes in EBCDIC.
7785         * fold-const.c (CHARMASK): New.
7786         (real_hex_to_f): Use it.
7787         * real.c (CHARMASK): New.
7788         (etoasc, asctoeg): Use it.
7789         (asctoeg): EBCDIC lower case characters preceed upper case.
7790
7791         * i370.c (mvs_add_label): Change spacing for coding conventions.
7792         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
7793         outputing case vectors.
7794         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
7795         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
7796         since vector in in the data CSECT.
7797         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
7798         * i370.md (Many patterns): Put the length in the XL directives.
7799         (movdi): Put back STM and MVC in definition.
7800         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
7801         pattern using the TCA.
7802         * oe.h (CPP_SPEC): Added to allow trigraphs.
7803         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
7804         not support the "long long" type.
7805
7806 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7807
7808         * config/mips/mips-protos.h (mips_legitimate_address_p): New
7809         function.
7810         (mips_reg_mode_ok_for_base_p): Likewise.
7811         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
7812         (REG_OK_FOR_INDEX_P): Define unconditionally.
7813         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
7814         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
7815         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
7816         that GET_MODE_SIZE is unsigned.
7817         (mips_reg_mode_ok_for_base_p): Define.
7818         (mips_legitimate_address_p): Likewise.  Adjust now
7819         that GET_MODE_SIZE is unsigned.
7820         (block_move_loop): Make the number of bytes unsigned.
7821         (expand_block_move): Likewise.
7822         (function_arg): Make the loop counter unsigned to match the
7823         boundary condition.
7824
7825 2000-04-16  Richard Henderson  <rth@cygnus.com>
7826
7827         * rtl.h (enum insn_note): New enumeration.  Subsume
7828         NOTE_INSN_DELETED and friends.
7829         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
7830         * rtl.c (note_insn_name): Tweak string order.
7831
7832 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
7833
7834         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
7835         to offset * 2.
7836
7837         * cpplex.c (output_line_command): Remove debugging prints.
7838         (cpp_output_tokens): Don't write out a zero-length buffer or
7839         try to see if it has a newline in it.
7840         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
7841         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
7842         the end of the loop.  Use memmove.  Don't read past the end of
7843         the buffer.  Remove trailing newlines from error messages.
7844
7845 2004-04-16  Neil Booth  <NeilB@earthling.net>
7846
7847         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
7848         * cpplib.c: Add new syntax flags to directive table, and
7849         supporting macros.
7850
7851 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
7852
7853         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
7854         using ret $N.
7855
7856 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
7857
7858         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
7859         * haifa-sched.c: Update -fsched-verbose comments to use "=".
7860
7861 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7862
7863         * Makefile.in (ggc-page.o): Now includes toplev.h.
7864         * ggc-page.c (toplev.h): Now included.
7865         (gc_time): Remove declaration.
7866         (ggc_collect): TIME now long.
7867         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
7868         others static.
7869         * toplev.h (gc_time, parse_time, gc_time): New declarations.
7870
7871         * toplev.c: Make *_time variable long to reduce chance of overflow.
7872         (TIMEVAR): Likewise for `otime'.
7873         (print_time): Arg is now long; compute percentage in FP and round.
7874         * toplev.h (print_time): Arg is long.
7875
7876         * tree.c: Minor whitespace changes.
7877
7878         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
7879         * configure: Rebuilt.
7880         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
7881         (__fixunsxfDI): Renamed from __fixunsxfdi.
7882         (__fixunsdfDI): Renamed from __fixunsdfdi.
7883         (__fixunssfDI): Renamed from __fixunssfdi.
7884         (__floatdisf): Use proper type in REP_BIT macro.
7885         (__fixunsxfSI): Renamed from __fixunsxfsi.
7886         (__fixunsdfSI): Renamed from __fixunsdfsi.
7887         (__fixunssfSI): Renamed from __fixunssfsi.
7888         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
7889         Change location of macros and upper-case some names as above.
7890         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
7891         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
7892
7893         * varasm.c (assemble_variable): Add cast to remove warning.
7894         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
7895
7896         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
7897         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
7898         region number to -1.
7899
7900 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
7901
7902         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
7903         call unshare_all_rtl.
7904
7905         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
7906
7907 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
7908
7909         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
7910         Use .s1 not .s0 for all FP instructions.
7911
7912 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
7913
7914         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
7915         interfaces.
7916         (safe_fwrite, output_line_command): New static functions.
7917         (cpp_expand_to_buffer): Now private to cpplib.
7918         (cpp_scan_buffer): Take a printer.
7919
7920         * cpphash.h: Update prototypes.
7921         * cpplib.h: Update prototypes.
7922         (cpp_printer): New.
7923         (cpp_buffer): Remove last_nominal_fname.
7924         (cpp_reader): Remove lineno.
7925
7926         * cppmain.c: Use a cpp_printer.
7927         * fix-header.c: No need to inhibit line commands.  Call
7928         cpp_start_read with no printer.
7929
7930         * cpperror.c (cpp_notice_from_errno): Provide default name.
7931         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
7932         (find_include_file, cpp_read_file): Use make_IHASH.
7933         (file_cleanup): Set control_macro and clear
7934         input_stack_listing_current here.
7935         (_cpp_execute_include): Don't output entering-file marker.
7936         * cpphash.c (special_symbol): Look for the line number in the
7937         buffer, not the reader.
7938         (_cpp_macroexpand): No need to disable line commands.
7939         (_cpp_dump_definition): No need to generate line commands.
7940         (dump_hash_helper): Remove excess newline from output.
7941         * cppinit.c (dump_special_to_buffer): No need to generate line
7942         commands.
7943         (cpp_printer_init): New.
7944         (cpp_start_read): Take a printer, and start it up if it's not
7945         NULL.  No need to generate line commands.
7946         (cpp_finish): Expect no buffers stacked at all.  Take a
7947         printer argument, and flush the output buffer if it's not
7948         NULL.
7949         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
7950         Don't put two hashes at the beginning of an assertion.
7951         (cpp_get_token): Don't increment pfile->lineno or emit line
7952         commands here.  Return EOF if there's no buffer when we get
7953         EOF.
7954         * cpplib.c (do_define, skip_if_group):
7955         No need to disable line commands.
7956         (_cpp_output_line_command): Delete function.
7957         (do_line): Don't emit line commands here, but set things up so
7958         they will be emitted if necessary.  Use _cpp_fake_ihash to
7959         make unique nominal_fnames if necessary.
7960         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
7961         with 0 for column, not -1.
7962         (_cpp_handle_eof): Don't set the control macro here.  Don't
7963         clear input_stack_listing_current here.  Don't emit line
7964         commands.
7965
7966 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
7967
7968         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
7969         always, use the default SVR4 start address.
7970
7971         * config/rs6000/linux.h (LINK_SPEC): Don't define.
7972         (LINK_SHLIB_SPEC): Define.
7973         (LINK_START_DEFAULT_SPEC): Define.
7974         (LINK_OS_DEFAULT_SPEC): Define.
7975
7976         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
7977
7978         * config/rs6000/eabi.asm (__eabi): Call __init rather than
7979         __do_global_ctors to handle constructors.
7980         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
7981         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
7982         (STARTFILE_MVME_SPEC): Likewise.
7983         (STARTFILE_SIM_SPEC): Likewise.
7984         (ENDFILE_ADS_SPEC): Use crtend.
7985         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
7986         (ENDFILE_MVME_SPEC): Likewise.
7987         (ENDFILE_SIM_SPEC): Likewise.
7988         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
7989         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
7990         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
7991         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
7992         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
7993         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
7994         (CRTSTUFF_T_CFLAGS_S): Define.
7995         * config/rs6000/eabi-ctors.c: Delete.
7996
7997         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
7998         boundary.
7999         (__fini): Likewise.
8000         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
8001         boundary.
8002         (__fini): Likewise.
8003
8004 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
8005
8006         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
8007         plus mask size is smaller or equal to the mode size.
8008
8009 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8010
8011         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
8012         not yet set.
8013
8014         * expr.c (reload.h): Now included.
8015         (emit_block_move): Set volatile_ok when checking for movstr.
8016         (emit_move_1): Check for replacements in addresses in multi-word case.
8017         * Makefile.in (expr.o): Now includes reload.h.
8018
8019         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
8020         Never have a LIBCALL end a basic block.
8021         (find_basic_blocks_1): Likewise.
8022         Reorganize CALL_INSN cases.
8023
8024         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
8025
8026 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
8027
8028         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
8029         completers from mov.ret instruction.
8030
8031 2000-04-14  Richard Henderson  <rth@cygnus.com>
8032
8033         * fold-const.c (extract_muldiv): Don't distribute and widen
8034         multiply across plus for non-sizetype unsigned types.
8035
8036 2000-04-14  Richard Henderson  <rth@cygnus.com>
8037
8038         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
8039         If the original source is dead in the incr insn, it's dead now.
8040
8041 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8042
8043         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
8044         see if DECL_BIT_FIELD needs to still be set.
8045
8046         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
8047
8048         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
8049         print_int_cst_octal with something that's not an INTEGER_CST.
8050
8051         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
8052         and not a SUBREG to a FLOAT rtl.
8053
8054 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
8055
8056         * emit-rtl.c (try_split): Avoid infinite loop if the split
8057         results in a sequence that contains the original insn.
8058
8059 2000-04-13  Andreas Jaeger  <aj@suse.de>
8060
8061         * config/mips/mips.c (expand_block_move): Pass alignment
8062         argument to move_by_pieces in bits, not bytes.
8063
8064         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
8065         __pic__ for little endian.
8066
8067 2000-04-13  Andreas Jaeger  <aj@suse.de>
8068
8069         * config/i386/i386-protos.h: Add prototype for
8070         uno_comparison_operator.
8071
8072 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8073
8074         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
8075         * calls.c (ECF_PURE): New flag.
8076         (emit_call_1): Handle ECF_PURE calls.
8077         (initialize_argument_information): Unset ECF_PURE flag too.
8078         (precompute_arguments): Precompute for ECF_PURE too.
8079         (expand_call): Handle ECF_PURE calls too.
8080         (emit_library_call_value_1): Rename no_queue argument to fn_type,
8081         accept value of 2 as pure function.
8082         (emit_library_call_value, emit_library_call): Rename no_queue argument
8083         to fn_type.
8084         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
8085
8086         * tree.h (DECL_IS_PURE): New macro.
8087         (struct tree_decl): Add pure_flag.
8088         * c-common.c (enum attrs): Add attribute "pure".
8089         (init_attributes): Initialize attribute "pure"
8090         (decl_attributes): Handle attribute "pure".
8091         * extend.texi (Attribute "pure"): Document.
8092         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
8093         in pure function.
8094         (flags_from_decl_or_type): Support attribute "pure".
8095
8096 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
8097
8098         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
8099         the token except for numbers and identifiers.
8100
8101 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
8102
8103         * i386.c (ix86_expand_binary_operator,
8104         ix86_expand_unary_operator): Check no_new_pseudos
8105         instead of reload_in_progress and reload_completed.
8106         (ix86_split_ashldi, ix86_split_ashrdi,
8107         ix86_split_lshrdi): Check no_new_pseudos instead
8108         of reload_completed.
8109
8110 2000-04-12  Jeffrey A Law  (law@cygnus.com)
8111
8112         * function.c (purge_addressof): Unshare any shared rtl created by
8113         purge_addressof and its children.
8114
8115 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
8116
8117         * function.c (aggregate_value_p): VOID_TYPE nodes are never
8118         aggregates.
8119
8120 2000-04-05  Andreas Jaeger  <aj@suse.de>
8121
8122         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
8123         not compiling PIC code, add flags for mabi=64.
8124         (SUBTARGET_CPP_SIZE_SPEC): New.
8125         (SUBTARGET_CPP_SPEC): New.
8126         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
8127         for MIPS/Linux and lots of code needs these defines.
8128
8129 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
8130
8131         * reorg.c (fill_slots_from_thread): Check side_effects_p when
8132         trying the "opposite arithmetic" approach.
8133
8134 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8135
8136         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
8137         (struct sh_args): Add new field force_mem.
8138         (INIT_CUMULATIVE_ARGS): Initialize it.
8139         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
8140
8141 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8142
8143         * calls.c (expand_call): Do not reverse args in "equal from" field.
8144         (emit_library_call_value_1): Emit_libcall_block for const and pure
8145         function.
8146
8147 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8148
8149         * reload1.c (reload_combine): Don't enable optimization for fixed
8150         registers when encountering a BARRIER.
8151
8152 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8153
8154         * builtins.c (expand_builtin_memcmp): Do expansion even with
8155         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8156
8157         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8158         stack is propertly aligned; add sanity checking for aligned
8159         stack pointer.
8160         (expand_library_call_value_1): Add sanity checking for aligned
8161         stack pointer.
8162
8163 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8164
8165         * calls.c (emit_library_call_value_1): Change 3rd arg to
8166         locate_and_pad_parm to disregard the setting of partial.
8167
8168 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8169
8170         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8171
8172         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8173         CALL_INSN from the normal case.
8174
8175 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8176
8177         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8178         New global variables.
8179         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8180         adjustment.
8181         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8182         Declare,
8183         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8184          TARGET_ADD_ESP_8): New macros.
8185         * i386.md: Add peep2s to convert esp adjustments to push and pop
8186         instructions.
8187         (pushsi_prologue, popsi_epilogue): New patterns.
8188
8189 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8190
8191         * real.c (toe64): Remove stale #endif from the last change.
8192
8193 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8194
8195         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8196         * real.c (toe64): Revert previous change.
8197
8198 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8199
8200         * objc/objc-act.c: Include ggc.h.
8201         (objc_tree_index, objc_global_trees): Convert most of the
8202         static tree variables into a static array with previous names
8203         as defines.
8204         (objc_ellipsis_node): New variable.
8205         (lang_init): Call objc_act_parse_init and c_parse_init.
8206         Create objc_ellipsis_node.
8207         (build_selector_translation_table): Use objc_ellipsis_node instead
8208         of (tree)1.
8209         (hack_method_prototype): Likewise.
8210         (get_arg_type_list): Likewise.
8211         (start_method_def): Likewise.
8212         (continue_method_def): Likewise.
8213         (gen_method_decl): Likewise.
8214         (ggc_mark_imp_list): New function.
8215         (ggc_mark_hash_table): New function.
8216         (objc_act_parse_init): New function.
8217         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8218         * c-parse.in (c_parse_init): For objc add roots of objc specific
8219         local tree variables.
8220         * objc/objc-parse.y: Rebuilt.
8221         * objc/objc-parse.c: Rebuilt.
8222         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8223
8224 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8225
8226         * cse.c (delete_trivially_dead_insns): Also delete insns
8227         that copy a register to itself where the destination is
8228         a strict_low_part.
8229
8230 2000-04-11  Richard Henderson  <rth@cygnus.com>
8231
8232         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8233         (propagate_block): Initialize them.  Use them in parallel instead
8234         of one tmp variable, ie revert much of the 0408 and 0407 functional
8235         changes, but keep the structural changes.
8236         (mark_set_regs): Take new_dead from propagate_block_info instead.
8237         (mark_set_1, mark_set_reg): Likewise.
8238         (mark_used_regs): Likewise with new_live.
8239         (mark_used_reg): Likewise.  Revert 0408 change.
8240
8241 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8242
8243         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8244         restriction.
8245         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8246
8247 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8248
8249         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8250         const section to output a CONSTRUCTOR based on the same conditions
8251         used for VAR_DECLs.
8252
8253 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8254
8255         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8256         * pa/pa-protos.h (output_call): Add additional argument indicating
8257         if the call is a sibling/tail call.
8258         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8259         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8260         (function_arg, function_arg_partial_nregs): Likewise
8261         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8262         (emit_move_sequence): Zero extend certain constants as needed
8263         for TARGET_64BIT.
8264         (compute_zdepdi_operands, output_64bit_and): New functions.
8265         (output_64bit_ior, function_arg): Likewise.
8266         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8267         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8268         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8269         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8270         (output_bvb): Likewise.
8271         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8272         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8273         as needed.
8274         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8275         (ouput_arg_descriptor): Do not emit argument descriptors for
8276         TARGET_64BIT.
8277         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8278         defined.
8279         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8280         (FUNCTION_OK_FOR_SIBALL): Define.
8281         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8282         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8283         (CPP_SPEC): Use new spec infrastructure.
8284         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8285         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8286         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8287         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8288         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8289         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8290         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8291         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8292         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8293         (FUNCTION_ARG); Call out to C code.
8294         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8295         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8296         (MIN_UNITS_PER_WORD): Likewise.
8297         * pa/pa.md (cmpdi): New expander.
8298         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8299         (64bit conditional arithmetic): New patterns.
8300         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8301         (movsicc): Not available if modes on all the operands to not match.
8302         (movdicc): New expander and associated patterns.
8303         (64bit branches): New patterns.
8304         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8305         (pre_ldd, post_std): New patterns.
8306         (64bit addil, load low part): New patterns.
8307         (special movsf constant): Not available for TARGET_64BIT.
8308         (movsf, movdf expanders): Force constants into memory.
8309         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8310         (64bit movdf/movdi patterns): New patterns.
8311         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8312         for TARGET_64BIT.
8313         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8314         (adddi3 expander): Allow "arith_operand" for second input.
8315         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8316         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8317         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8318         (muldi3): New expander for TARGET_64BIT.
8319         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8320         for TARGET_64BIT.
8321         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8322         patterns for TARGET_64BIT.
8323         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8324         patterns for TARGET_64BIT.
8325         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8326         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8327         (sibcall_epilogue): New expander.
8328         (casesi): Tweak for TARGET_64BIT.
8329         (call expanders): Set & use the outgoing argument pointer.  Use the
8330         64bit call patterns as needed. Add additional arg to output_call.
8331         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8332         (sibcall, sibcall_internal_symref): New expanders.
8333         (sibcall_value, sibcall_value_internal_symref
8334         (interspace_jump): Turn into an expander + matching patterns.
8335         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8336         * pa/pa64-regs.h: Eliminate trigraph sequences.
8337         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8338
8339 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8340
8341         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8342         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8343         cpp_token with cpp_ttype everywhere.
8344         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8345         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8346         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8347         long.
8348         * cpplex.c (cpp_buf_line_and_col): Delete.
8349         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8350         'long lineno' to 'unsigned int lineno'.
8351         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8352
8353 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8354
8355         * extend.texi: ISO C99 is not a draft anymore.
8356         * invoke.texi: ISO C++ is not a draft anymore.
8357         * cpp.texi: __cplusplus is required by the ISO standard.
8358
8359         * extend.texi (-fthis-is-variable): Undocument.
8360         * flags.h (warn_template_debugging): Remove declaration.
8361         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8362         -Wenum-clash, -Wtemplate-debugging): Undocument.
8363
8364 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8365
8366         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8367         integer.
8368         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8369         integer.
8370         (ARM_SIGN_EXTEND): Use HOST_UINT.
8371         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8372         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8373         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8374         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8375
8376         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8377         (arm_gen_constant): Use HOST_UINT.
8378         (arm_canonicalize_constant): Use HOST_UINT.
8379         (arm_reload_in_hi): Use HOST_UINT.
8380         (arm_reload_out_hi): Use HOST_UINT.
8381         (output_multi_immediate): Use HOST_UINT.
8382         (int_log2): Use HOST_UINT.
8383         (arm_poke_function_name): Use HOST_UINT.
8384         (arm_output_epilogue): Use arm_volatile_func().
8385         (output_thumb_prologue): Use arm_strip_name_encoding().
8386
8387 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8388
8389         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8390         of sequence point problems.
8391
8392 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8393
8394         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8395         Recomment.
8396         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8397
8398 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8399
8400         * sbitmap.h: Whitespace changes and use upper-case macro args.
8401         (struct simple_bitmap_def): All sizes now unsigned.
8402         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8403         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8404         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8405         (sbitmap_zero): Cast bzero arg to PTR.
8406         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8407         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8408         loop to make structure clearer.
8409         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8410         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8411         (sbitmap_a_and_b_or_c): Likewise.
8412         (sbitmap_intersection_of_succs): Minor cleanups.
8413         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8414         (sbitmap_union_of_preds): Likewise.
8415         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8416         (debug_sbitmap): New function.
8417
8418         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8419         * c-typeck.c (convert_for_assignment): Likewise.
8420
8421         * expmed.c (init_expmed): Don't free objects we make.
8422         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8423
8424         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8425         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8426
8427         * gcse.c (expr_hash_table_size): Now unsigned.
8428         (compute_ae_gen): Local variable `i' now unsigned.
8429         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8430         (compute_transout, hoist_code): Likewise.
8431         (compute_local_properties): Likewise, also hash_table_size.
8432         (alloc_expr_hash_table): N_INSNS now unsigned.
8433         (delete_null_pointer_checks): Mark arg F as unused.
8434
8435         * regrename.c: Minor cleanups, including chang some variables
8436         to unsigned int.
8437
8438 2000-04-10  Neil Booth  <NeilB@earthling.net>
8439
8440         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8441         than GETC ().
8442         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8443
8444 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8445
8446         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8447         __classof__, and __headof__ from the list of gnu keywords.
8448         (-ansi): Remove -foperator-names from list of implied options.
8449         Do not call it ANSI C++.
8450         (-foperator-names): Document as -fno-operator-names.
8451
8452 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8453
8454         * cpphash.c (timestamp): Delete.
8455         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8456         (special_symbol): Remove unnecessary braces.  Remove
8457         T_VERSION.  Treat T_STDC like T_CONST unless
8458         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8459         when one is encountered, then convert them into T_MCONST
8460         nodes.
8461         * cppinit.c (builtin_array): version_string is T_MCONST.
8462         __STDC__ has a "1" in its cpval.  Don't have a terminator
8463         entry.  Clean up which entries are dumped.
8464         (initialize_builtins): Only __STDC__ gets the special
8465         -traditional treatment.  Count the length of builtin_array.
8466         Render version_string here.
8467         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8468         * cpplib.h (struct cpp_reader): Remove timebuf.
8469
8470 2000-04-09  Richard Henderson  <rth@cygnus.com>
8471
8472         * genrecog.c (pred): Update comparison_operator for the unordered
8473         operators.
8474
8475         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8476         operators.
8477         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8478         (uno_comparison_operator): New.
8479         (put_condition_code): Handle UNORDERED/ORDERED.
8480         (unsigned_comparison): Likewise.
8481         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8482         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8483         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8484         update all callers.  Handle all 8 unordered operators.
8485         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8486         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8487         * config/i386/i386.h (PREDICATE_CODES): Update.
8488         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8489         (ix86_expand_branch, ix86_expand_setcc): Update.
8490         * config/i386/i386.md (sunordered, sordered): New.
8491         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8492         (bunordered, bordered): New.
8493         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8494         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8495         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8496
8497 2000-04-09  Philip Blundell  <philb@gnu.org>
8498
8499         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8500
8501 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8502
8503         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8504         fix_truncxfhi2): New patterns.
8505         * i386.c (output_fix_trunc): Handle converting to HImode.
8506
8507 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8508
8509         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8510         life_analysis.
8511         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8512         (for_each_successor_phi): Change parameter to basic_block.
8513         (coalesce_regs_in_successor_phi_nodes): Likewise.
8514         (coalesce_regs_in_copies): Likewise.
8515         (compute_coalesced_reg_partition): Use basic_block instead of index.
8516         * rtl.h (convert_to_ssa): Delete.
8517         (convert_from_ssa): Likewise.
8518         (successor_phi_fn): Likewise.
8519         (for_each_successor_phi): Likewise.
8520         (in_ssa_form): Likewise.
8521         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8522         (convert_from_ssa): Likewise.
8523         (successor_phi_fn): Likewise.
8524         (in_ssa_form): Likewise.
8525         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8526         * flow.c (calculate_global_regs_live): Pass a basic_block to
8527         for_each_successor_phi.
8528
8529 2000-04-08  Richard Henderson  <rth@cygnus.com>
8530
8531         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8532         was modified in the current insn.
8533
8534 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8535
8536         * arm/thumb.md: Delete.
8537         * arm/thumb-protos.h: Delete.
8538
8539 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8540
8541         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8542
8543         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8544
8545         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8546         into branch.
8547
8548         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8549         define_expand.
8550         (*arm_nop, *thumb_nop): Delete.
8551
8552         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8553         constants.  Use casts instead.
8554         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8555         output_multi_immediate, arm_poke_function_name): Likewise.
8556         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8557         MASK_RETURN_ADDDR): Likewise.
8558
8559         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8560
8561         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8562         into branch.
8563
8564         * arm.md (eh_epilogue): New function.
8565         * arm.h (struct machine_function): Move to here ...
8566         * arm.c: ... from here.
8567         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8568         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8569         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8570
8571         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8572
8573         * config/arm/semi.h (ASM_SPEC): Restore definition.
8574         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8575
8576         * config/arm/elf.h (ASM_SPEC): Restore definition.
8577         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8578
8579         * config/arm/arm.h (ASM_SPEC): Remove definition.
8580         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8581
8582         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8583
8584         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8585
8586         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8587
8588         Various formating tidyups, elimination of compile time
8589         warnings and synchronisation with internal sources:
8590
8591         * config/arm/arm-protos.h (assemble_align): Add prototype.
8592         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8593         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8594         (arm_return_addr_rtx): Rename to arm_return_addr.
8595
8596         * config/arm/arm.c: Include except.h.
8597         Define shorter typenames for strict minipool_node and struct
8598         minipool_fix.
8599         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8600         in memory.
8601         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8602         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8603
8604         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8605         already defined.
8606         (ASM_SPEC): Define if not already defined.
8607         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8608
8609         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8610         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8611         arm_gen_compare_reg.
8612         (indirect_jump):  Only accept register operands.
8613         (load_indirect_jump): Keep this pattern since combine can generate
8614         it.
8615
8616         * config/arm/coff.h: Include aout.h.
8617         (MULTILIB_DEFAULTS): Only define if not already defined.
8618
8619         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8620         into arm.h (so that COFF ports can support thumb based aliases).
8621         (ASM_SPEC): Move definition into arm.h
8622
8623         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8624         redundant apcs spec.
8625         (ASM_SPEC): Move definition to arm.h
8626
8627         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8628
8629         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8630         for entries in the .bss section
8631
8632         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8633
8634         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8635         to thumb_far_jump_used_p.
8636
8637         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8638         single integer parameter.
8639
8640         * config/arm/arm.c (struct machine_function): Add two new
8641         fields, 'far_jump_used' and 'arg_pointer_live'.
8642         (thumb_far_jump_used_p): Once the decision has been made that
8643         far jumps might be used, always return true.
8644         If being called from the initial elimination offset macro then
8645         do not bother to perform the test if the arg pointer is not
8646         being used.
8647         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8648         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8649
8650         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8651
8652         * arm.c (output_return_instruction): Handle more cases where we can
8653         return from a function with an ldr instruction.
8654         (arm_output_epilogue): Likewise.
8655
8656         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8657         if we need to push a large stack frame and there are no callee-saved
8658         registers.
8659
8660         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8661         in ARM code if the frame pointer has been eliminated.
8662
8663         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8664         unspec_volatile arguments to avoid duplicates.
8665         (consttable_1, consttable_2): Fixes for big-endian mode.
8666
8667         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8668         as appropriate.
8669
8670         Re-write constant pool code.
8671         * arm.c (minipool_node, minipool_fix): New types.
8672         (minifix): Delete type.
8673         (arm_add_minipool_constant): Delete.
8674         (arm_compute_minipool_offsets, arm_find_barrier,
8675         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8676         (get_jump_table_size): Now returns HOST_WIDE_INT.
8677         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8678         functions.
8679         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8680         (assign_minipool_offsets, arm_print_value): Likewise.
8681         (dump_minipool): Rewrite.
8682         (arm_barrier_cost): New function.
8683         (create_fix_barrier): New function.
8684         (push_minipool_barrier): New function.
8685         (push_minipool_fix): Record additional information about the fixup
8686         required.
8687         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8688         check the mode of what needs fixing.
8689         (arm_reorg): Rewrite.
8690
8691         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8692
8693         * config/arm/arm.md (indirect_jump): Force constant addresses into
8694         a register.
8695
8696         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8697
8698         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8699
8700         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8701
8702         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8703         adjust is word aligned.
8704         (thumb_expand_epilogue): Make sure that stack adjust is word
8705         aligned.
8706
8707         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8708
8709         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8710
8711         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8712         pointer relative addresses.
8713
8714         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8715
8716         * arm.c (find_barrier): Find the last barrier within the allowed
8717         range.
8718
8719         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8720
8721         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8722
8723         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8724
8725         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8726         ARM_FUNCTION_PROFILER.
8727
8728         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8729         ARM_FUNCTION_PROFILER.
8730
8731         * config/arm/linux-oldld.h: Imported from mainline sources.
8732
8733         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8734
8735         * config/arm/lib1funcs.asm: Merge in thumb functions from
8736         lib1thumb.asm.
8737
8738         * config/arm/lib1thumb.asm: Delete.
8739
8740         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8741
8742         * config/arm/arm.c: Sychronised with current Red hat local
8743         sources.
8744         * config/arm/arm.h: Ditto.
8745         * config/arm/arm-protos.h: Ditto.
8746
8747         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
8748
8749         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
8750
8751         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
8752         byte stores.
8753
8754         2000-02-02  Nick Clifton  <nickc@cygnus.com>
8755
8756         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
8757
8758         * config/arm/arm.md (epilogue): Fix rtl checking abort because
8759         (return) was emited using an emit_insn() call.
8760
8761         2000-01-31  Nick Clifton  <nickc@cygnus.com>
8762
8763         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
8764         thumb stack frame.
8765         (thumb_exit): Move frame pointer back into hard frame pointer
8766         register if backtracing is being used.
8767
8768         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
8769
8770         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
8771         into branch.
8772
8773         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
8774
8775         * config/arm/arm.md (neg_pool_offset): Provide default for new
8776         attribute.
8777         (arm_movsi_insn): Add neg_pool_offset attribute.
8778         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
8779         rtx for the insn that starts the scan and an unsigned long for its
8780         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
8781         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
8782         instructions in *PINSERTED.
8783         (struct minipool_fixup): Add MIN_ADDRESS elt.
8784         (sort_fixups): Compute it.
8785         (arm_reorg): Changes to support inserting pools before the insn to be
8786         fixed up.
8787
8788         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
8789
8790         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
8791         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
8792         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
8793
8794         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
8795
8796         * config/arm/semi.h (TARGET_VERSION): Do not define if already
8797         defined.
8798         (TARGET_DEFAULT): Do not define if already defined.
8799
8800         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
8801
8802         * config/arm/arm.md (anddi3): Allow disjoint source operands.
8803         (iordi3): Allow disjoint source operands.
8804         (xordi3): Allow disjoint source operands.
8805         (negdi2): Permit construction for ARM and Thumb.
8806         (arm_negdi2): Renamed version of old negdi2 pattern.
8807         (thumb_negdi2): New pattern: Only permit non-overlapping
8808         source and destination.
8809
8810         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
8811
8812         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
8813         scratch low register so that it will not be deleted.
8814
8815         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
8816
8817         * config/arm/pe.h (ARM_PE): Define.
8818
8819         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
8820         interfacearm attribute if this is a PE toolchain.
8821         (output_return_instruction): Do not emit anything if the function
8822         has the naked attribute set.
8823         (is_called_in_ARM_mode): If the function has the interfacearm
8824         attribute then return true.
8825         (thumb_expand_prologue): Do not generate a prologue for naked
8826         functions.
8827         (thumb_expand_epilogue): Do not generate an epilogie for a naked
8828         function.
8829         (output_thumb_prologue): Do not bother if the function is naked.
8830         Strip PE encoding from function name before emitting.
8831
8832         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
8833
8834         * arm.md (pic_load_addr): Fix constraints.
8835
8836         * arm.md (casesi_insn): Fix mis-applied patch.
8837
8838         * arm.md ("core" function unit): Add rules for single- and
8839         multi-cycle insns.
8840         (All TARGET_THUMB patterns): Add "type" attribute information
8841         where needed.
8842         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
8843         the following insn is a CALL.
8844
8845         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
8846         pointer.
8847         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
8848         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
8849         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
8850
8851         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
8852
8853         * config/arm/linux-gas.h: oops - this file was missed out when the
8854         branch was created...
8855
8856         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
8857
8858         * thumb.c: Deleted.  Move contents to ...
8859         * arm.c: ... here.
8860         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
8861         rule for thumb.o
8862         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
8863         * configure: Regen.
8864
8865         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
8866         declare a prototype for asm_output_align();
8867
8868         * arm.c (thumb_condition_code): Delete.
8869         (arm_print_operand): Always use arm_condition_code array.
8870
8871         * arm.c (thumb_return_addr_rtx): Delete.
8872         (arm_save_machine_status, arm_restore_machine_status): Delete.
8873         (arm_init_machine_status, arm_mark_machine_status): New functions.
8874         (arm_init_expanders): Update accordingly.
8875         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
8876         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
8877         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
8878
8879         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
8880
8881         * configure.in : Fix arm-*-aout target to use new t-arm-aout
8882         script.
8883         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
8884         targets.
8885
8886         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
8887
8888         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
8889         stack backtrace structure.
8890
8891         * config/arm/arm-protos.h: Add prototypes for functions defined in
8892         arm/pe.h.
8893
8894         * config/arm/arm.c (arm_override_options): Fix selection of
8895         attributes of default processor.
8896
8897         * config/arm/coff.h: Delete needless #include.
8898
8899         * config/arm/pe.c: Delete unused code.
8900
8901         * config/arm/pe.h (CPP_DEFINES): Delete
8902         (SUBTARGET_CPP_SPEC): Define.
8903         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8904
8905         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
8906
8907         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
8908
8909         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
8910         updated.
8911         (CAN_DEBUG_WITHOUT_FP): Define.
8912         (FIXED_REGISTERS): Make r11 call-saved.
8913         (CALL_USED_REGISTERS): Likewise.
8914         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
8915         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
8916         frame-pointer is required.
8917         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
8918         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
8919         if the target normally needs a stack frame in non-leaf functions.
8920         (use_return_insn): Correct logic for determining when a return
8921         instruction can be used.
8922         (output_return_instruction): Handle the frame-pointer register as
8923         a normal register when not TARGET_APCS_FRAME.
8924         (arm_output_prologue): Likewise.
8925         (arm_output_epilogue): Likewise.
8926         (output_func_epilogue): Likewise.
8927         (arm_expand_prologue): Likewise.
8928         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
8929
8930         * arm.c (use_return_insn): No need to check floating point regs if
8931         TARGET_SOFT_FLOAT.
8932         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
8933         the code of value stored in the minipool array.
8934         (arm_add_minipool_constant): Likewise.
8935
8936 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8937
8938         * basic-block.h (conflict_graph_enum_fn): K&R fix.
8939
8940 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8941
8942         * tree.c (tree_expr_nonnegative_p): New function.
8943
8944         * tree.h (tree_expr_nonnegative_p): Declare.
8945
8946         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
8947         elide some sign_compare warnings.
8948         (build_conditional_expr): Likewise.
8949
8950 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
8951
8952         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
8953
8954         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
8955         * i386.c (print_operand): Use the proper suffix for a 387 HImode
8956         operand.  Abort if a 387 operand has an unsupported size.
8957
8958 2000-04-08  Neil Booth  <NeilB@earthling.net>
8959
8960         * cppexp.c (parse_charconst): Null does not end character
8961         constants.
8962         * cppinit.c (ISTABLE): Null character handled as whitespace.
8963         * cpplex.c (null_warning):  new function.
8964         (skip_string): Emit warning if nulls encountered.
8965         (_cpp_skip_hspace): Emit warning if nulls encountered.
8966         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
8967         them.
8968         * cpp.texi: Update.
8969
8970 2000-04-07  Richard Henderson  <rth@cygnus.com>
8971
8972         * flow.c (loop_depth): Remove.
8973         (reg_next_use, cc0_live, mem_set_list): Replace with ...
8974         (struct propagate_block_info): New.
8975         (life_analysis): Don't allocate reg_next_use.
8976         (propagate_block_delete_insn): Break out of propagate_block.
8977         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
8978         (propagate_block_delete_libcall): Likewise.
8979         (propagate_block): Create a propagate_block_info struct to pass
8980         to subroutines.  Allocate one not two temporary regsets.  Don't
8981         clobber memory for const calls.  Look for clobbers in
8982         CALL_INSN_FUNCTION_USAGE.
8983         (mark_set_regs): Recognize COND_EXEC.
8984         (mark_set_reg): Break out of mark_set_1.
8985         (mark_used_reg): Break out of mark_used_regs.
8986         (mark_used_regs): Recognize COND_EXEC.
8987         (insn_dead_p): Use propagate_block_info struct.
8988         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
8989         (find_auto_inc, try_pre_increment_1): Likewise.
8990         (print_rtl_with_bb): Dump regs live at end too.
8991         (count_reg_sets_1): Pass in loop_depth.
8992         (count_reg_sets, count_reg_references): Likewise.
8993         (recompute_reg_usage): Provide it.
8994
8995 2000-04-07  Richard Henderson  <rth@cygnus.com>
8996
8997         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
8998         not the raw files.
8999
9000 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
9001
9002         * cpplib.c (do_elif): Skip the rest of the line if we're
9003         not going to bother evaluating it.
9004         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
9005         to avoid pointless calls to the lexer.
9006
9007 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
9008
9009         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
9010
9011 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
9012
9013         * calls.c (expand_call): emit_queue if we're trying a sibcall.
9014
9015 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
9016
9017         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
9018
9019 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
9020
9021         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
9022         crtend so they can be multilibbed.
9023         (STAGESTUFF): Remove s-crt and s-crtS.
9024
9025 2000-04-07  Richard Henderson  <rth@cygnus.com>
9026
9027         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
9028         if we discover we need a pseudo and no_new_pseudos is true.
9029         * config/alpha/alpha.md (ne:DI insn): New.
9030         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
9031
9032 2000-04-07  Richard Henderson  <rth@cygnus.com>
9033
9034         * rtl.def (COND_EXEC): New.
9035         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
9036         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
9037
9038         * genconfig.c (have_cond_arith_flag): Remove.
9039         (have_cond_exec_flag): New.
9040         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
9041         (main): Print HAVE_conditional_execution.
9042
9043         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
9044         (sched_analyze_insn, print_pattern): Likewise.
9045         * reload.c (find_equiv_reg): Likewise.
9046         * rtlanal.c (reg_referenced_p): Likewise.
9047         (note_stores, dead_or_set_regno_p): Likewise.
9048         (reg_overlap_mentioned_p): Rewrite to use a switch.
9049
9050         * ggc.h (struct rtx_def): Forward declare.
9051
9052         * print-rtl.c (debug_rtx_range): New.
9053         * rtl.h (debug_rtx_range): Declare.
9054
9055         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
9056
9057         * gcse.c (gcse_main): Don't rebuild the CFG here.
9058         (delete_null_pointer_checks): Likewise.
9059         * ssa.c (convert_to_ssa): Likewise.
9060         * toplev.c (rest_of_compilation): Do it here instead.  Combine
9061         sequential calls to TIMEVAR.  Consistently use `insns' instead of
9062         `get_insns()'.  Always split insns after reload when optimizing.
9063
9064         * basic-block.h (merge_blocks_nomove): Declare.
9065         (tidy_fallthru_edge): Declare.
9066         * flow.c (merge_blocks_nomove): Document as merging into previous
9067         blocks.  Remove cruft from between blocks; remove all edges out of A.
9068         (tidy_fallthru_edge): Export.
9069
9070 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9071
9072         * ssa.c (compute_conservative_reg_partition): Declare with
9073         void arguments.
9074         * toplev.c (clean_dump_file): Remove previously-deleted function
9075         inadvertantly merged back in.
9076         * conflict.c (conflict_graph_add): Use a single call to
9077         htab_find_slot to look up and insert.
9078
9079 2000-04-06  Richard Henderson  <rth@cygnus.com>
9080
9081         * genrecog.c (*): Rename _last_insn to last_insn.
9082         (make_insn_sequence): Set the position of the peephole2 C test
9083         to be at the last insn.
9084
9085 2000-04-06  Richard Henderson  <rth@cygnus.com>
9086
9087         * flow.c (compute_flow_dominators): Free worklist.
9088
9089 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
9090
9091         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
9092
9093 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9094
9095         * rtl.h (INSN_P): New macro.
9096         (successor_phi_fn): New typedef.
9097         (for_each_successor_phi): New prototype.
9098         (in_ssa_form): New variable.
9099         (PHI_NODE_P): Likewise.
9100         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
9101         phi nodes in successors.
9102         (mark_used_regs): Add PHI case.
9103         (set_phi_alternative_reg): New function.
9104         (life_analysis): Assert that dead code elimination is not selected
9105         when in SSA form.
9106         * toplev.c (to_ssa_time): New variable.
9107         (from_ssa_time): Likewise.
9108         (compile_file): Zero to_ssa_time and from_ssa_time.
9109         Print time to convert to and from SSA.
9110         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
9111         (print_time): Compute percent fraction as integer.
9112         * ssa.c (PHI_NODE_P): Moved to rtl.h.
9113         (convert_to_ssa): Check if we're already in SSA.
9114         Don't eliminate dead code in life_analysis.
9115         Rerun flow and life analysis at bottom.
9116         (eliminate_phi): Use canonical regnos when adding nodes.
9117         (mark_reg_in_phi): New function.
9118         (mark_phi_and_copy_regs): Likewise.
9119         (convert_from_ssa): Rerun life analysis at top.
9120         Use coalesced partition.
9121         Check for removing a phi node at the end of the block.
9122         (compute_coalesced_reg_partition): New function.
9123         (coalesce_regs_in_copies): Likewise.
9124         (coalesce_reg_in_phi): Likewise.
9125         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
9126         (for_each_successor_phi): Likewise.
9127         (rename_context): New struct.
9128         (rename_block): Use a rename_context with rename_insn_1.  When
9129         renaming sets of a subreg, emit a copy of the entire reg first.
9130         (rename_insn_1): Treat data as a rename_context *.  Save current
9131         insn in set_data.
9132         (rename_set_data): Add field set_insn.
9133         * Makefile.in (HASHTAB_H): Move up in file.
9134         (OBSTACK_H): New macro.
9135         (collect2.o): Use OBSTACK_H in dependencies.
9136         (sdbout.o): Likewise.
9137         (emit-rtl.o): Likewise.
9138         (simplify-rtx.o): Likewise.
9139         (fix-header.o): Likewise.
9140         (OBJS): Add conflict.o.
9141         (conflict.o): New rule.
9142         * basic-block.h: Include partition.h.
9143         (conflict_graph): New typedef.
9144         (conflict_graph_enum_fn): Likewise.
9145         (conflict_graph_new): New prototype.
9146         (conflict_graph_delete): Likewise.
9147         (conflict_graph_add): Likewise.
9148         (conflict_graph_conflict_p): Likewise.
9149         (conflict_graph_enum): Likewise.
9150         (conflict_graph_merge_regs): Likewise.
9151         (conflict_graph_print): Likewise.
9152         (conflict_graph_compute): Likewise.
9153         * conflict.c: New file.
9154
9155 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9156
9157         * tlink.c (read_repo_files): Don't look for .rpo info for
9158         linker flags.
9159
9160 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9161
9162         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9163
9164 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9165
9166         * config/sh/lib1funcs.asm (___udivsi3_i4):
9167         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9168         only depends on FMOVD_WORKS.
9169
9170 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9171
9172         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9173         make double constant 8-byte aligned.
9174
9175 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9176
9177         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9178         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9179         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9180         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9181         Accept storing GENERAL_REGS into offsetable memory.
9182         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9183         building a TFmode constant other than 0.0L into GENERAL_REGS.
9184
9185 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9186
9187         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9188
9189 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9190
9191         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9192         (macro_cleanup): No need to cast pbuf->macro.
9193         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9194         it returns VSPACE.  Remove check for trailing space after
9195         CPP_COMMENT.
9196         (_cpp_create_definition): Don't diddle flags here.  Return
9197         directly on error.
9198         (unsafe_chars): Handle c1 being EOF.
9199         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9200         checks.  Don't push the buffer till after we're done with
9201         them.
9202         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9203         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9204         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9205         appropriately.
9206         (_cpp_parse_assertion): Don't NUL terminate.
9207         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9208         hspace before calling _cpp_parse_assertion.  Remove all sets
9209         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9210         special with '\n' here.
9211         (maybe_macroexpand): Handle T_EMPTY hash entries without
9212         pushing a buffer at all.
9213         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9214         incrementing the line number here.  Clear
9215         potential_control_macro as well as only_seen_white, if
9216         appropriate.
9217         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9218         (_cpp_get_define_token): New function, basically like
9219         _cpp_get_directive_token was but doesn't eat horizontal space.
9220         Don't do anything with only_seen_white here.
9221         (_cpp_get_directive_token): Just call _cpp_get_define_token
9222         repeatedly till it returns non-hspace.
9223
9224         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9225         (conditional_skip, skip_if_group): Return int.
9226         (DIRECTIVE_TABLE): Change origin of all conditional directives
9227         to "COND".
9228         (TRAD_DIRECT_P): New macro.
9229         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9230         an error for a bogus directive, unless -lang-asm.  Use
9231         TRAD_DIRECT_P. Loop calling handler functions till one returns
9232         zero.
9233         (get_macro_name): Don't diddle flags here.
9234         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9235         Create T_EMPTY nodes for #define macro /* nothing */.
9236         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9237         Use hp->name when calling pass_thru_directive.
9238         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9239         Return the result of conditional_skip and/or skip_if_group.
9240         Don't call _cpp_output_line_command.
9241         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9242         Issue -Wtraditional warnings as appropriate.  Don't complain
9243         about unrecognized directives.  If we are to stop skipping,
9244         return the number of the directive that ended the skip.
9245         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9246         expansion and line commands while skipping.  Return the result
9247         of consider_directive_while_skipping, if nonzero.
9248         (do_endif): Just set potential_control_macro here.
9249         (validate_else): Use _cpp_get_directive_token.
9250         (do_assert, do_unassert): Don't save pointers into the
9251         token_buffer across calls to the lexer.  Use
9252         _cpp_get_directive_token.
9253
9254         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9255         pointer, not an offset.  Replace 'data', which was a generic
9256         pointer, with 'macro', which points to a struct hashnode.
9257         (cpp_reader): Add 'potential_control_macro' pointer.
9258         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9259         (CPP_BUF_GET, CPP_FORWARD): Delete.
9260         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9261         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9262         ACTIVE_MARK_P): Update.
9263         (_cpp_get_define_token): New internal function.
9264         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9265
9266 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9267
9268         * configure.in: And here.
9269         * configure: Regenerate.
9270         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9271         --enable-libstdcxx-v3 is passed at configure time.
9272         * config.h.in: Regenerate.
9273
9274 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9275
9276         * final.c (final): Use xcalloc to allocate line_note_exists.
9277         * function.c (free_after_compilation): Free the temp_slots.
9278         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9279         (combine_temp_slot): Free temp_slots when they get combined.
9280         (purge_addressof): Fix typo in comment.
9281         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9282         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9283
9284         * ggc.h: Include varray.h.
9285         (ggc_pending_trees): Declare.
9286         (ggc_mark_tree_children): Remove declaration.
9287         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9288         * ggc-common.c (ggc_pending_trees): New variable.
9289         (ggc_mark_roots): Call ggc_mark_trees.
9290         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9291         the ggc_pending_trees.
9292         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9293         of ggc.h.
9294
9295 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9296
9297         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9298         GET_MODE_SIZE.
9299
9300 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9301
9302         * sh.c (sh_insn_length_adjustment): New function.
9303         * sh-protos.h (sh_insn_length_adjustment): Declare.
9304         * sh.h (ADJUST_INSN_LENGTH): Use it.
9305
9306 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9307
9308         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9309         from the insn where REG_RETVAL is added.
9310         (emit_no_conflict_block): Ditto.
9311
9312         * md.texi (Standard Names): Clarify when movX is needed.
9313
9314         * combine.c (simplify_comparison) [MINUS]: Do not replace
9315         all (op (minus A B) 0) with (op A B).
9316
9317 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9318                           J"orn Rennecke <amylaar@cygnus.co.uk>
9319
9320         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9321         (block_lump_real): Likewise.
9322
9323 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9324
9325         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9326         remaining non-zero debugging masks.
9327
9328 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9329
9330         * basic-block.h (verify_flow_info): Declare.
9331         (flow_loop_outside_edge_p): Declare.
9332         * flow.c (verify_flow_info): Remove declaration.
9333         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9334
9335 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9336
9337         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9338         not C++ comments.
9339
9340 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9341
9342         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9343         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9344         seqdi_zero_trunc+1): Allow splits only if registers are
9345         different.
9346
9347 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9348
9349         * acconfig.h: Add HAVE_GAS_HIDDEN.
9350         * config.in: Regenerated.
9351         * configure.in: Add test for .hidden pseudo-op in gas.
9352         * configure: Regenerated.
9353         * crtstuff.c: Include auto-host.h.
9354         Emit additional .hidden pseudo-op for __dso_handle if the
9355         assembler knows about it.
9356
9357 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9358
9359         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9360         before freeing argnames.
9361         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9362
9363 2000-04-05  Michael Meissner  <meissner@redhat.com>
9364
9365         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9366         Walton <jonboy@gordian.com> to make memory references with update
9367         work wtih -mregnames.
9368
9369 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9370
9371         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9372         (regrename_optimize): Rename variables `def_uses' and
9373         `ext_basic_blocks' to avoid conflicts with similarly named
9374         typedefs in traditional C.
9375
9376         * calls.c (initialize_argument_information): Fix typo in previous
9377         change.
9378
9379 2000-04-04  Richard Henderson  <rth@cygnus.com>
9380
9381         * regrename.c (consider_available): Test fixed_regs not
9382         PIC_OFFSET_TABLE_REGNUM.
9383
9384 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9385
9386         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9387         crtend.
9388         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9389         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9390         (ENDFILE_LINUX_SPEC): Always use crtend.
9391         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9392         (powerpc-*-linux-gnu): Likewise.
9393         * configure: Regenerate.
9394
9395         * config/rs6000/eabi.h: Don't include sysv4.h.
9396         (MULTILIB_DEFAULTS): Don't define.
9397         * config/rs6000/eabiaix.h: Don't include eabi.h.
9398         * config/rs6000/eabile.h: Delete.
9399         * config/rs6000/eabilesim.h: Delete.
9400         * config/rs6000/eabisim.h: Don't include eabi.h.
9401         * config/rs6000/linux.h: Don't include sysv4.h.
9402         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9403         (MULTILIB_DEFAULTS): Don't redefine.
9404         * config/rs6000/rtems.h: Don't include eabi.h.
9405         * config/rs6000/sol2.h: Don't include sysv4le.h.
9406         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9407         * config/rs6000/t-ppc: Delete.
9408         * config/rs6000/t-ppcgas: Correct comment.
9409         * config/rs6000/t-ppcos: Correct comment.  Don't build
9410         multilibs for -fPIC, rather use -fPIC -mstrict-align
9411         as default.
9412         * config/rs6000/t-ppc: Delete.
9413         * config/rs6000/vxppc.h: Don't include sysv4.h.
9414         * config/rs6000/vxppcle.h: Delete.
9415         * configure.in: Use multiple header files for p2pc ELF targets
9416         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9417         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9418         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9419         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9420         always available for these platforms.
9421
9422 2000-04-04  Richard Henderson  <rth@cygnus.com>
9423
9424         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9425
9426 2000-04-04  Stan Cox  <scox@cygnus.com>
9427
9428         * Makefile.in: Add rules for regrename.o
9429         * regrename.c: New file.
9430         * rtl.h (regrename_optimize): Add prototype.
9431         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9432         (compile_file, decode_d_option): Add support for -frename-registers.
9433         (rest_of_compilation): Call regrename_optimize.
9434         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9435         New macros.
9436
9437 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9438
9439         * Makefile (gccbug): New target.
9440         (doc): Depend on it.
9441         * gcc.texi (Bugs): Link subnodes.
9442         (gccbug): New node.
9443         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9444         Document severities, priorities, and classes in bug form.
9445
9446 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9447
9448         * cpplex.c (trigraph_map, speccase): Combine into single
9449         table, chartab.
9450         (NORMAL, NONTRI): New macros.
9451         (_cpp_read_and_prescan): Change to use unified table.  Use
9452         is_hspace to test for whitespace.
9453
9454         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9455         definition that doesn't provoke the "empty body in an
9456         if-statement" warning.
9457
9458 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9459
9460         * builtins.c (expand_builtin_strlen): Force the source to
9461         be a memory address.
9462
9463 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9464
9465         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9466
9467 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9468
9469         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9470          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9471         (ECF_IS_CONST): Rename to ECF_CONST.
9472         (special_function_p): Make static, change interface.
9473         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9474         (expand_call) ... here; convert number of variables to flags.
9475         (emit_library_call_vlue_1): Likewise.
9476         (setjmp_call_p): New function.
9477         (initialize_argument_information): Accepts flags as argument;
9478         return flags.
9479         (precompute_arguments): Likewise.
9480         * tree.h (special_function_p): Remove.
9481         (setjmp_call_p): Add prototype.
9482
9483 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9484
9485         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9486         so that addresses are offsetable by up to 16 bytes.
9487         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9488         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9489         offsetable.
9490
9491         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9492         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9493         (movsf): Don't force any constant to memory if target is integer
9494         hard register.
9495         Move fp_zero_operand check below the const0_rtx check.
9496         (movtf): Likewise. Also allow fp_zero_operand for stores into
9497         memory.
9498         (movdf): Likewise. Also allow fp_zero_operand for stores into
9499         memory and into integer hard registers.
9500         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9501         movdf_const_intreg_sp64): Remove.
9502         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9503         conditions.
9504         (movdf_no_e_insn_v9_sp32): New pattern.
9505         (movdf_insn_v9only): Remove.
9506         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9507         (movdf_insn_sp64): Remove.
9508         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9509         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9510         (following splits): Rewrite conditions. Add two new splits
9511         for storing 0.0 into memory and registers.
9512         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9513         (movtf_insn_sp32): Redo constraints and conditions.
9514         (movtf_insn_vis_sp32): New pattern.
9515         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9516         (movtf_insn_hq_sp64): Likewise.
9517         (movtf_insn_hq_vis_sp64): New pattern.
9518         (movtf_insn_sp64): Redo constraints and conditions.
9519         (movtf_insn_vis_sp64): New pattern.
9520         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9521         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9522         or memory.
9523         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9524         -mvis or -m64 to take down the number of various reload patterns.
9525
9526 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9527
9528         * pa/pa-64.h: New file.
9529         * pa/pa64-regs.h: New file.
9530         * pa/pa64-start.h: New file.
9531         * pa/t-pa64: New file.
9532         * pa/xm-pa64hpux.h: New file.
9533
9534 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9535
9536         * sparc.c (output_restore_regs): Prototype.
9537         (sparc_emit_float_lib_cmp): Constification.
9538
9539         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9540
9541         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9542         Prototype.
9543
9544         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9545         (get_value_hash, hash_rtx): Likewise.
9546
9547         * ssa.c (compute_conservative_reg_partition): Prototype.
9548
9549         * tree.c (mark_hash_entry): Prototype.
9550
9551 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9552
9553         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9554         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9555         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9556
9557         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9558         * objc/lang-specs.h: Likewise.
9559
9560 2000-04-03  Neil Booth  <NeilB@earthling.net>
9561
9562         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9563         and SYNTAX_ERROR2. Replace `' in messages with ''.
9564         (op_to_str): Make re-entrant.
9565         (_cpp_parse_expr): Implement new error macros. Use | rather
9566         than || to logically or 2 boolean integers.  Simply expression
9567         checking we have a left operand iff needed.
9568
9569 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9570
9571         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9572
9573 2000-04-03  Philip Blundell  <philb@gnu.org>
9574
9575         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9576
9577 2000-04-03  Felix Lee  <flee@cygnus.com>
9578
9579         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9580         (run_shell): Use it.
9581
9582 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9583
9584         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9585         (stmp-fixproto): ...rather than here.
9586
9587 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9588
9589         * pa.c (print_operand): Compute 'base' only inside the code paths
9590         that use it.
9591
9592 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9593
9594         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9595         CEIL_DIV_EXPR.
9596
9597 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9598
9599         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9600
9601 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9602
9603         * Makefile.in (alias.o): Depend on $(TREE_H).
9604
9605 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9606
9607         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9608         processing C++.
9609         * cpplib.c (_cpp_handle_directive): Improve warnings for
9610         traditional C and indented directives.
9611
9612         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9613         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9614         fixinc/inclhack.def: Indent the # of #include_next one space.
9615         * cp/rtti.c: Un-indent #if and #endif.
9616
9617         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9618         syntax error, but an error has already been printed.
9619         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9620         message when called with nothing remaining on the line.
9621         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9622         OTHER token, not an ASSERTION.
9623         * cpplib.c (do_assert): When we create a 'base' node, clear
9624         its aschain pointer.
9625
9626 2000-04-02  Neil Booth <NeilB@earthling.net>
9627
9628         * cppexp.c:  New typedef op_t.  struct operation and struct
9629         token updated to use it.
9630         (op_to_str): New function.
9631         (_cpp_parse_expr): Error messages modified to use op_to_str.
9632
9633 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9634
9635         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9636         before checking MUST_PASS_IN_STACK.
9637
9638 2000-04-02  Neil Booth <NeilB@earthling.net>
9639
9640         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9641         flags and initial priority into a single constant.  New
9642         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9643         (_parse_cpp_expr): Implement new constants.  Take left operand
9644         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9645         parse indicated by reducing FINISHED token.  Remove new lines
9646         from cpp_error messages.
9647
9648 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9649
9650         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9651         permanent obstack.
9652
9653 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9654
9655         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9656         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9657         the strings and function names on the fly.  Take the #sccs
9658         entry out of the table if SCCS_DIRECTIVE is not defined.
9659         (_cpp_handle_directive): Decide if the # was at the beginning
9660         of the line here.  Issue -pedantic warnings for extended
9661         directives here.  Warn about K+R directives with the #
9662         indented, and C89/extended directives with the # not indented,
9663         here.
9664         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9665         do_assert, do_unassert): Don't issue pedantic warning here.
9666
9667         * cpphash.h: Add CPP_WTRADITIONAL macro.
9668         * cpplib.h (struct cpp_options): Rename warn_stringify to
9669         warn_traditional; update comments.
9670         * cppinit.c (handle_option): Set warn_traditional not
9671         warn_stringify.
9672         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9673         CPP_WTRADITIONAL (pfile).
9674         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9675         be ignored in -traditional mode here.
9676
9677         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9678         to initialize speccase[] and trigraph_map[].  Delete all
9679         references to pfile->input_speccase.  Always treat '?' as a
9680         special character.  Remove table-initialization code from
9681         _cpp_init_input_buffer.
9682
9683         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9684         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9685
9686 2000-04-01  Richard Henderson  <rth@cygnus.com>
9687
9688         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9689         (mostlyclean): Likewise.
9690
9691         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9692         (struct dump_file_info, enum dump_file_index, dump_file): New.
9693         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9694         not a string.  Clean out file if we havn't yet done so.  Do nothing
9695         if the dump isn't enabled.
9696         (close_dump_file): Do nothing if the dump isn't open.  Dump
9697         graph data if requested.
9698         (dump_rtl, clean_dump_file): Remove.
9699         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9700         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9701         .combine dump if optimizing.  Iterate over dump_file to finalize the
9702         graph dumps.
9703         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9704         Convert all uses of dump_rtl.
9705         (decode_d_option): Iterate over dump_file to implement 'a' and to
9706         locate pass-specific dumps.
9707
9708 2000-04-01  Neil Booth <NeilB@earthling.net>
9709
9710         * cppexp.c: Redefine priority constants.
9711         (_cpp_parse_expr): Replace left and right priority scheme with
9712         single priority logic.  Move LOGICAL to same place as COMPARE.
9713         Remove bogus check for multiple unary +/- operators.
9714
9715 2000-04-01  Neil Booth <NeilB@earthling.net>
9716
9717         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9718         within the switch statement.  Binary operations break out of
9719         the switch naturally.  '(' tokens handled by forcing
9720         immediate shift.  ')' handled by forcing immediate reduce to
9721         the previous '('.  New error messages.
9722
9723 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9724
9725         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9726         part', it's already in use.  Use %K instead.  Add a return at the
9727         end of what is now %K.
9728         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9729
9730 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9731
9732         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9733         allocate_dynamic_stack_space.
9734         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9735         update stack_pointer_delta; do not update arg_size_so_far.
9736         (compute_argument_block_size): Use stack_delta instead of
9737         stack_pointer_pending and arg_size_so_far.
9738         (expand_call): Add sanity checking for stack_pointer_delta;
9739         save and restore stack_pointer_delta for SIB, use
9740         stack_pointer_delta for alignment; do not update arg_space_so_far.
9741         (emit_library_call_value): Use stack_pointer_delta for alignment.
9742         (store_one_arg): Do not update arg_space_so_far.
9743         * explow.c (adjust_stack, anti_adjust_stack): Update
9744         stack_pointer_delta.
9745         (allocate_dynamic_stack_space): Add sanity checking for
9746         stack_pointer_delta.
9747         * expr.c (init_expr, clear_pending_stack_adjust): Clear
9748         stack_pointer_delta.
9749         (emit_push_insn): Update stack_pointer_delta.
9750         * function.h (struct expr_status): Add x_stack_pointer_delta;
9751         remove x_arg_space_so_far.
9752         (arg_space_so_far): Remove.
9753         (stack_pointer_delta): New macro.
9754
9755 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
9756
9757         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
9758         Reorder struct cpp_options and struct cpp_reader for better
9759         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
9760         takes two args.  Change all 'char' flags to 'unsigned char'.
9761         Move show_column flag into struct cpp_options.  Don't
9762         prototype cpp_options_init.
9763         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
9764         cppinit.c, cpplex.c, cpplib.c:
9765         Replace CPP_OPTIONS (pfile)->whatever with
9766         CPP_OPTION (pfile, whatever), and likewise for
9767         opts = CPP_OPTIONS (pfile); ... opts->whatever;
9768
9769         * cppinit.c (merge_include_chains): Take a cpp_reader *.
9770         Extract CPP_OPTION (pfile, pending) and work with that
9771         directly.
9772         (cpp_options_init): Delete.
9773         (cpp_reader_init): Turn on on-by-default options here.
9774         Allocate the pending structure here.
9775         (cl_options, enum opt_code): Define these from the same table,
9776         kept in a large macro.  Add -fshow-column and -fno-show-column
9777         options.
9778
9779         * cpperror.c (v_message): If show_column is off, don't print
9780         the column number.
9781
9782         * cppmain.c: Update for new interface.
9783         * fix-header.c: Likewise.
9784
9785 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
9786
9787         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
9788         definition.
9789         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
9790         are passed to any invocation of AR_FOR_TARGET.
9791         (AR_CREATE_FOR_TARGET): New macro.
9792         (AR_EXTRACT_FOR_TARGET): New macro.
9793         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
9794         AR_EXTRACT_FOR_TARGET.
9795         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
9796         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
9797         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
9798         AR_EXTRACT_FOR_TARGET to sub-makes.
9799
9800 2000-03-31  Neil Booth <NeilB@earthling.net>
9801
9802         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
9803         PAREN_INNER_PRIO.
9804         (_cpp_parse_expr): Check for multiple unary +/- operators.
9805         Correct priorities of ':' and '?'.  Treat ')' as having a
9806         value.  Ensure conditional expression is not void.
9807
9808 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
9809
9810         * alias.c (canon_rtx): Make it global.
9811         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
9812         equality.
9813         * cse.c (struct table_elt): Add canon_exp.
9814         (insert): Clear it.
9815         (invalidate): Canonicalize expressions only once.
9816         * rtl.h (canon_rtx): Declare.
9817
9818 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
9819
9820         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
9821         * alias.c (reg_known_value): Add comments.
9822         (init_alias_analysis): Likewise.
9823         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
9824         address.
9825         (cse_basic_block): Fix typo in comment.
9826         * emit-rtl.c: Include hashtab.h.
9827         (const_int_htab): New variable.
9828         (const_int_htab_hash): New function.
9829         (const_int_htab_eq): Likewise.
9830         (rtx_htab_mark_1): Likewise.
9831         (rtx_htab_mark): Likewise.
9832         (gen_rtx_CONST_INT): Cache all CONST_INTs.
9833         (unshare_all_rtx): Fix formatting.
9834         (init_emit_once): Initialize const_int_htab.
9835         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
9836         address.
9837         * rtl.texi: Document the fact that all CONST_INTs with the same
9838         value are shared.
9839
9840 2000-03-30  Richard Henderson  <rth@cygnus.com>
9841
9842         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
9843
9844 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
9845
9846         * configure.in: Comment out --enable-c-cpplib stanza.
9847         * configure: Regenerate.
9848
9849 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9850
9851         * expr.c (store_constructor): Properly compute displacement and
9852         alignment when offset is variable.
9853
9854         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
9855         cases of alignment in bytes.
9856
9857 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
9858
9859         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
9860         since it is used to generate c-parse.y.
9861         * objc-parse.c, objc-parse.y: Regenerated.
9862
9863         * function.c (expand_function_end): Pass alignment argument to
9864         emit_block_move in bits, not bytes.
9865
9866 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9867
9868         * expr.c (move_by_pieces_ninsns): Fix one more missing align
9869         correction.
9870
9871         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
9872
9873         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
9874         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
9875         * function.c (assign_parms): Likewise.
9876         * integrate.c (expand_inline_function): Likewise.
9877         * stmt.c (expand_decl): Likewise.
9878         (copy_rtx_and_substitute): Likewise.
9879         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
9880         (clear_by_pieces): Fix error in last change.
9881         * emit-rtl.c (init_emit): Set known registers alignment in bits.
9882         * function.h (regno_pointer_align): Now unsigned.
9883         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
9884         is in bits.
9885         * config/i386/i386.c (aligned_operand): Likewise.
9886         * config/sparc/sparc.c (mem_min_alignment): Likewise.
9887         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
9888         (unaligned_memory_operand): Likewise.
9889         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9890         Also make alignments and sizes unsigned and some whitespace cleanup.
9891         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
9892
9893         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
9894         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
9895         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
9896         (expand_builtin_memset): Likewise, but to clear_storage.
9897         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
9898         (restore_fixed_argument_area): Likewise.
9899         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
9900         (load_register_parameters): Likewise, to emit_group_load.
9901         (expand_call): Likewise, to emit_group_store and emit_block_move.
9902         (emit_library_call_value_1): Likewise, to emit_block_move.
9903         (store_one_arg): Likewise, and to emit_push_insn.
9904         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
9905         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
9906         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
9907         (emit_block_move, emit_group_load, emit_group_store): Likewise.
9908         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
9909         (expand_assigment, store_expr, store_constructor_field): Likewise.
9910         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
9911         (store_constructor, store_field, get_inner_reference): Likewise.
9912         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
9913         (expand_expr, case COMPONENT_REF): Likewise.
9914         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
9915         and positions; reindent code.
9916         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
9917         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
9918         (assign_parms): Likewise to emit_group_store.
9919         * optabs.c (prepare_cmp_insn): Alignment is in bits.
9920         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
9921         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
9922         (expand_return): Likewise to {extract,store}_bit_field.
9923         * stor-layout.c (get_mode_alignment): Minor cleanup.
9924         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
9925         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
9926
9927 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9928
9929         * config/arm/arm.h: Undo effects of previous delta:
9930         (ASM_SPEC): Do not define.
9931         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
9932
9933         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
9934         typo.
9935
9936 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9937
9938         * cppinit.c (cpp_start_read): Call initialize_dependency_output
9939         only after reading in the primary source file.
9940
9941 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
9942
9943         * c-common.c (c_common_nodes_and_builtins): The first parameter to
9944         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
9945         or a reference to a va_list.
9946         * builtins.c (stabilize_va_list): Simplify now we don't have to
9947         work around C array address decay.
9948         * c-typeck.c (convert_for_assignment): Handle assignment to
9949         a reference parameter by taking the address of the RHS.
9950         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
9951         (va_copy): Likewise.
9952         (__va_copy): Likewise.
9953         * ginclude/varargs.h (va_start): Likewise.
9954         (__va_copy): Likewise.
9955
9956 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
9957
9958         * i386/djgpp.h: Remove extraneous "+".
9959
9960         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
9961
9962         * calls.c (expand_call): Fix typo in last change.
9963
9964 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
9965
9966         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
9967         been expanded.
9968
9969 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9970
9971         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
9972         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
9973         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
9974         * tree.c (bit_position, byte_position): Likewise.
9975         * tree.h: Declare new functions.
9976
9977 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9978
9979         * config/arm/arm.c: Minor formatting changes/
9980         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
9981         already defined.
9982         (ASM_SPEC): Define if not already defined.
9983
9984 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9985
9986         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
9987         _cpp_calc_hash.
9988
9989 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
9990
9991         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
9992         value, don't output it as unsigned.
9993
9994 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
9995
9996         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
9997
9998 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9999
10000         * c-common.c (c_common_nodes_and_builtins): Don't special case
10001         cplus_mode when declaring builtin bzero/bcmp, always avoid
10002         prototype arguments.
10003
10004 2000-03-29  Bruce Korb  <bkorb@gnu.org>
10005
10006         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
10007         to a non-file
10008
10009 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10010
10011         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
10012         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
10013         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
10014         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
10015         (save_fixed_argument_area, restore_fixed_argument_area):
10016         conditionize by #ifdef REG_PARM_STACK_SPACE only.
10017         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
10018         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
10019         (precompute_register_parameters): Avoid #ifdefs on
10020         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
10021         (stire_one_args): Likewise.
10022         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
10023         (emit_library_call_value_1): Likewise.
10024         (compute_argument_block_size): Align to STACK_BOUNDARY only for
10025         ACCUMULATE_OUTGOING_ARGS.
10026         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
10027         value.
10028         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
10029         (use_crosses_set_p): Likewise.
10030         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
10031         #define ACCUMULATE_OUTGOING_ARGS 1.
10032         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
10033         frames.
10034         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
10035         constants.
10036         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
10037         (TARGET_SWITCHES): Add push-args, no-push-args,
10038         accumulate-outgoing-args and no-accumulate-outgoing-args.
10039         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
10040         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
10041         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
10042         and PUSH_ROUNDING.
10043         (emit_push_insn): Likewise.
10044         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10045         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
10046         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10047         (STACK_DYNAMIC_OFFSET): Define correctly for both
10048         ACCUMULATE_OUTGOING_ARGS and normal mode.
10049         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
10050         * tm.texi (PUSH_ARGS): Document.
10051         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
10052
10053 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10054
10055         * flags.h (flag_optimize_sibling_calls): Declare.
10056         * calls.c (expand_call): Fail sibcall when
10057         !flag_optimize_sibling_calls
10058         * invoke.texi (flag_optimize_sibling_calls): Document.
10059         * toplev.c (flag_optimize_sibling_calls): New global variable.
10060         (f_options): Add flag_optimize_sibling_calls.
10061         (rest_of_compilation): Conditionize
10062         optimize_sibling_and_tail_recursive_calls by
10063         flag_optimize_sibling_calls.
10064         (main): Set flag_optimize_sibling_calls for -O2.
10065         * stmt.c (expand_return): Conditionize tail recursion by
10066         flag_optimize_sibling_calls.
10067
10068 2000-03-29  Richard Henderson  <rth@cygnus.com>
10069
10070         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
10071         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
10072
10073 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
10074
10075         * except.c (add_eh_table_entry): Mark type_info's as referenced.
10076
10077 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10078
10079         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
10080         is given.
10081         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
10082         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
10083         * config/rs6000/aix.h: then modified likewise.
10084
10085 2000-03-28  Richard Henderson  <rth@cygnus.com>
10086
10087         * rtl.h: Redistribute enum reg_note documentation.
10088         Kill trailing whitespace.
10089         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
10090         Kill trailing whitespace.
10091
10092 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
10093
10094         * cppfiles.c (hash_IHASH): Just return i->hash.
10095         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
10096         htab_find_with_hash.
10097         (cpp_read_file): Likewise.
10098         (find_include_file): Likewise.  Properly initialize
10099         ih->nshort.  Share ih->name and ih->nshort if possible.
10100         * cpphash.c (_cpp_calc_hash): New function.
10101         (hash_HASHNODE): Just return h->hash.
10102         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
10103         htab_find_with_hash.
10104         * cpphash.h: Prototype _cpp_calc_hash.
10105         * cppinit.c (initialize_builtins): Provide a valid hash
10106         to _cpp_make_hashnode, using _cpp_calc_hash.
10107
10108         * cpphash.c (collect_expansion): # is not a special character
10109         in object-like macros.  In -traditional mode, /**/ is not
10110         token paste at the beginning or end of the line.
10111         * cpplib.c (do_include, do_import, do_include_next): If
10112         parse_include fails, return immediately.
10113
10114 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10115
10116         * config/arm/arm.md (return peepholes): Update to reflect the new
10117         call insn patterns.
10118         * config/arm/arm.c (arm_volatile_func): Also check
10119         current_function_nothrow.
10120         (output_return_instruction, output_func_prologue): Use it.
10121         (arm_output_epilogue, arm_expand_prologue): Likewise.
10122
10123 2000-03-27  Tom Tromey  <tromey@cygnus.com>
10124
10125         * gcc.c (handle_braces): In {x*...} case, break out of loop if
10126         switch is found.
10127
10128 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10129
10130         * expr.c (store_constructor): SIZE now signed.
10131         For EXPR_SIZE, don't evaluate size; just needed if constant.
10132         * fold-const.c (fold): Fix a number of cases when folded tree is
10133         wrong type.
10134         * function.c (flush_addressof): Reenable.
10135         * tree.h (flush_addressof): Likewise.
10136         * toplev.c (independent_decode_option): Look at strings_processed.
10137         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
10138
10139 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
10140
10141         * sibcall.c (indentify_call_return_value): Find last call in the chain;
10142         Allow stack adjustment after function call.
10143
10144         * regmove.c (struct csa_memlist): Make mem field rtx *.
10145         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
10146         (try_apply_stack_adjustment): Replace whole MEM rtx.
10147         (combine_stack_adjustments_for_block): Update calls
10148         to record_one_stack_ref.
10149
10150 2000-03-28  Neil Booth  <NeilB@earthling.net>
10151
10152         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10153         '\\' rather than a null character, so nulls are not special.  Fix
10154         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10155         speed trigraph conversion.
10156         (_cpp_init_input_buffer): Initialize trigraph map.
10157
10158 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10159
10160         * config/i386/i386.c (output_387_binary_op): Correct intel
10161         mode assembly output, and add spaces after commas in AT&T
10162         output.  Correct Unixware assembler comment.  Document input
10163         constraints.  Comment fp operations.  Reduce profligate buffer
10164         size.  Remove extraneous abort.  Localize temp var.
10165         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10166         (output_fix_trunc): Add spaces after commas in assembly output.
10167
10168 2000-03-27  Richard Henderson  <rth@cygnus.com>
10169
10170         * i386-protos.h (ix86_match_ccmode): Declare.
10171         * i386.c (ix86_match_ccmode): New.
10172         (ix86_expand_fp_compare): Update for pattern renames.
10173         (ix86_expand_strlensi_unroll_1): Likewise.
10174         * i386.h (EXTRA_CC_MODES): Add CCZ.
10175         (SELECT_CC_MODE): Use it for EQ/NE zero.
10176         * i386.md (cmpsi_ccz_1): New.
10177         (cmpqi_ccz_1): New.
10178         (*testsi_ccz_1): New.
10179         (testqi_ccz_1): New.
10180         (cmpsi_ccno_1): Rename from cmpsi_0.
10181         (testsi_ccno_1): Rename from testsi_1.
10182         (testqi_ccno_1): Rename from testqi_1.
10183         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10184         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10185         (*cmphi_0): Use ix86_match_ccmode.
10186         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10187         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10188         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10189         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10190         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10191         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10192         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10193         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10194         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10195         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10196         (appropriate peepholes): Likewise.
10197         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10198         (*subsi_3, *subhi_3, *subqi_3): Remove.
10199         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10200         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10201         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10202         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10203         (x86_shift_adj_1): Use CCZ.
10204         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10205
10206 2000-03-27  Stan Cox  <scox@cygnus.com>
10207
10208         * resource.h (mark_resource_type): New.
10209         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10210         find_free_register): Use mark_resource_type.
10211         (mark_set_resources): Change include_delayed_effects
10212         to mark_resource_type.
10213         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10214         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10215         Use mark_resource_type.
10216
10217 2000-03-27  Richard Henderson  <rth@cygnus.com>
10218
10219         * i386.md (call_pop_0, call_value_pop_0): New.
10220         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10221         (call_value_pop_1): Likewise.
10222         (call_0, call_value_0): New.
10223         (call_1, call_value_1): Remove constraint from unused arg.
10224
10225 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10226
10227         * invoke.texi (Spec Files): Document new spec % command created by
10228         Tom Tromey's recent patch.
10229
10230 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10231
10232         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10233         if not defined.
10234
10235 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10236
10237         * expr.c (expand_assignment): Fix typo in last change.
10238
10239         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10240
10241 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10242
10243         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10244         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10245         and DECL_INLINE if FUNCTION_DECL.
10246         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10247         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10248         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10249         (combine_parm_decls): Likewise.
10250         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10251         * print-tree.c (print_node): Likewise.
10252         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10253         DECL_TRANSPARENT_UNION on proper decl types.
10254         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10255         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10256         DECL_BIT_FIELD of FIELD_DECL.
10257         * tree.h (DECL_RESULT_FLD): New macro.
10258
10259         * expr.c (expand_assignment): Add code to handle variable-sized
10260         BLKmode case.
10261
10262 2000-03-26  Richard Henderson  <rth@cygnus.com>
10263
10264         * calls.c (expand_call): Pass parms not original exp to
10265         optimize_tail_recursion.  Mind return value instead of looking
10266         for a barrier.
10267         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10268         call_expr.  Move checks for call_expr and current_function_decl ...
10269         (expand_return): ... here.
10270
10271 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10272
10273         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10274         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10275         defines.
10276         (process_command): Use them.
10277         (check_live_switch): Likewise.
10278         (give_switch): Skip ignored switches.
10279
10280 2000-03-26  Jan Hubicka  <jh@suse.cz>
10281
10282         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10283         for minimal jump pass test.
10284
10285 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10286
10287         * integrate.c (function_cannot_inline_p): Do inline functions that
10288         return `void'.
10289
10290 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10291
10292         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10293         now a list of TREE_LIST entries, not types.
10294         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10295
10296         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10297         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10298         int_bit_position.
10299         * config/mips/mips.c (function_arg): Likewise; also remove cast
10300         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10301         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10302         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10303         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10304         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10305         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10306         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10307         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10308         num_adjusts now unsigned.
10309         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10310         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10311         NREGS now unsigned.
10312         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10313         as is BITPOS variable; use host_integerp and int_bit_position.
10314         (function_arg_record_value_2): Likewise.
10315         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10316         Variable REGNO now unsigned.
10317         (function_arg_record_value): NREGS now unsigned.
10318
10319 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10320
10321         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10322
10323 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10324
10325         * Rework fields used to describe positions of bitfields and
10326         modify sizes to be unsigned and use HOST_WIDE_INT.
10327         * alias.c (reg_known_value_size): Now unsigned.
10328         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10329         (really_start_incremental_init): Use bitsize_zero_node.
10330         (push_init_level, pop_init_level, output_init_element): Likewise.
10331         Use bitsize_unit_node and bitsize_one_node.
10332         (output_pending_init_elements, process_init_element): Likewise.
10333         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10334         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10335         HOST_WIDE_INT, respectively.
10336         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10337         (num_sign_bit_copies): Returns unsigned.
10338         BITWIDTH now unsigned; rework arithmetic.
10339         Remove recursive call from arg to MAX.
10340         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10341         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10342         REGNO now unsigned.
10343         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10344         (find_split_point, expand_compound_operation, make_extraction): LEN
10345         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10346         (make_field_assignment): Likewise.
10347         (combine_simplify_rtx): Add cast.
10348         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10349         (force_to_mode): WIDTH now unsigned; add cast.
10350         (if_then_else_cond): SIZE now unsigned.
10351         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10352         (extended_count): Now returns unsigned.
10353         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10354         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10355         (simplify_comparison): MODE_WIDTH now unsigned.
10356         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10357         (mark_used_regs_combine): Likewise; rework arithmetic.
10358         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10359         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10360         (record_promoted_value): REGNO now unsigned.
10361         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10362         (get_last_value): REGNO now unsigned.
10363         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10364         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10365         (remove_death): Arg REGNO now unsigned.
10366         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10367         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10368         now unsigned.
10369         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10370         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10371         (struct cse_reg_info): REGNO now unsigned.
10372         (cached_regno): Now unsigned.
10373         (REGNO_QTY_VALID_P): Add cast.
10374         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10375         (remove_invalid_regs): Likewise.
10376         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10377         as are variables END and I.
10378         (get_cse_reg_info, insert): Likewise.
10379         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10380         (canon_hash): Likewise.
10381         (insert_regs, lookup_for_remove): REGNO now unsigned.
10382         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10383         New variable RN.
10384         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10385         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10386         * emit-rtl.c (subreg_realpart_p): Add cast.
10387         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10388         (operand_subword_force): Arg I is now unsigned.
10389         * except.c (eh_regs): Variable I is now unsigned.
10390         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10391         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10392         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10393         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10394         (extract_split_bit_field, store_bit_field, extract_bit_field):
10395         Likewise.
10396         * expr.c (store_constructor_fields, store_constructor, store_field):
10397         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10398         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10399         (do_jump): Likewise.
10400         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10401         MAX_SIZE is now unsigned.
10402         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10403         (emit_group_store): Likewise.
10404         (emit_move_insn): I now unsigned.
10405         (store_constructor): Use host_integerp, tree_low_cst, and
10406         bitsize_unit_node.
10407         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10408         Rework all calculations to use trees and new fields.
10409         * expr.h (promoted_input_arg): Regno now unsigned.
10410         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10411         (mark_seen_cases): Arg is HOST_WIDE_INT.
10412         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10413         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10414         precisions and alignments are unsigned.
10415         (optimize_bit_field_compare, fold_truthop): Likewise.
10416         (int_const_binop): Adjust threshold for size_int_type_wide call.
10417         (fold_convert): Likewise.
10418         (size_int_type_wide): Make table larger and fix thinko that only
10419         had half of table used.
10420         (all_ones_mask_p, fold): Precisions are unsigned.
10421         * function.c (put_reg_info_stack): REGNO is unsigned.
10422         (instantiate_decl): Size is HOST_WIDE_INT.
10423         (instantiate_virtual_regs): I is unsigned.
10424         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10425         (promoted_input_arg): REGNO is unsigned.
10426         * function.h (struct function): x_max_parm_reg is now unsigned.
10427         * gcse.c (max_gcse_regno): Now unsigned.
10428         (struct null_pointer_info): min_reg and max_reg now unsigned.
10429         (lookup_set, next_set): REGNO arg now unsigned.
10430         (compute_hash_table): REGNO and I now unsigned.
10431         (handle_avail_expr): regnum_for_replacing now unsigned.
10432         (cprop_insn): REGNO now unsigned.
10433         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10434         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10435         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10436         * hard-reg-set.h (reg_class_size): Now unsigned.
10437         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10438         * jump.c (mark_modified_reg): I now unsigned; add cast.
10439         (rtx_equal_for_thread_p): Add cast.
10440         * loop.c (max_reg_before_loop): Now unsigned.
10441         (struct_movable): REGNO now unsigned.
10442         (try_copy_prop): REGNO arg unsigned.
10443         (regs_match_p): XN and YN now unsigned.
10444         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10445         (strength_reduce): Likewise; NREGS also unsigned.
10446         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10447         * loop.h (struct iv_class): REGNO now unsigned.
10448         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10449         Now unsigned.
10450         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10451         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10452         * optabs.c (expand_binop): I and NWORDS now unsigned.
10453         (expand_unop): I now unsigned.
10454         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10455         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10456         * real.c (significand_size): Now returns unsigned.
10457         * real.h (significand_size): Likewise.
10458         * regclass.c (reg_class_size): Now unsigned.
10459         (choose_hard_reg_mode): Both operands now unsigned.
10460         (record_reg_classes): REGNO and NR now unsigned.
10461         (reg_scan): NREGS now unsigned.
10462         (reg_scan_update): old_max_regno now unsigned.
10463         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10464         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10465         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10466         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10467         Likewise for variable R.
10468         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10469         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10470         (find_equiv_reg): Add casts.
10471         (regno_clobbered_p): Arg REGNO now unsigned.
10472         * reload.h (struct reload): NREGS now unsigned.
10473         (refers_to_regno_for_reload_p): Regno args are unsigned.
10474         (regno_clobbered_p): Likewise.
10475         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10476         (compute_use_by_pseudos): REGNO now unsigned.
10477         (find_reg): I and J now unsigned, new variable K, and change loop
10478         variables accordingly; THIS_NREGS now unsigned.
10479         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10480         (spill_hard_reg): REGNO arg now unsigned; add casts.
10481         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10482         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10483         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10484         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10485         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10486         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10487         (emit_reload_insns): REGNO now unsigned.
10488         (reload_cse_move2add): Add cast.
10489         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10490         and rework loop.
10491         * resource.c (mark_referenced_resources, mark_set_resources): New
10492         variable R; REGNO and LAST_REGNO now unsigned.
10493         (mark_target_live_regs): J and REGNO now unsigned.
10494         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10495         * rtl.h (union rtunion_def): New field rtuint.
10496         (XCUINT): New macro.
10497         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10498         (operand_subword, operand_subword_force): Word number is unsigned.
10499         (choose_hard_reg_mode): Operands are unsigned.
10500         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10501         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10502         (regno_use_in, combine_instructions, remove_death): Likewise.
10503         (reg_scan, reg_scan_update): Likewise.
10504         (extended_count): Return is unsigned.
10505         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10506         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10507         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10508         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10509         (reg_reg_last_1): FIRS and LAST now unsigned.
10510         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10511         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10512         now unsigned.
10513         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10514         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10515         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10516         (replace_regs): Arg NREGS now unsigned.
10517         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10518         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10519         (simplify_binary_operation): Likewise.
10520         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10521         THIS_LAST now unsigned.
10522         (cselib_record_set): Add cast.
10523         * ssa.c (ssa_max_reg_num): Now unsigned.
10524         (rename_block): REGNO now unsigned.
10525         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10526         sizes now unsigned.
10527         (all_cases_count): Just return -1 not -2.
10528         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10529         Rework tests to use trees whenever possible.
10530         Use host_integerp and tree_low_cst.
10531         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10532         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10533         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10534         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10535         (smallest_mode_for_size): Likewise.
10536         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10537         KNOWN_ALIGN is now an alignment, so simplify code.
10538         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10539         (start_record_layout): Renamed from new_record_layout_info.
10540         Update to new fields.
10541         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10542         New functions.
10543         (place_union_field): Renamed from layout_union_field.
10544         Update to use new fields in rli.
10545         (place_field): Renamed from layout_field.
10546         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10547         (finalize_record_size): Rework to use new fields in rli and handle
10548         union.
10549         (compute_record_mode): Rework to simplify and to use new DECL fields.
10550         (finalize_type_size): Make rounding more consistent.
10551         (finish_union_layout): Deleted.
10552         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10553         (layout_type, case RECORD_TYPE): Call new function names.
10554         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10555         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10556         (get_best_mode): UNIT is now unsigned; remove casts.
10557         * tree.c (bit_position): Compute from new fields.
10558         (byte_position, int_byte_position): New functions.
10559         (print_type_hash_statistics): Cast to remove warning.
10560         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10561         (build_index_type): Likewise; make subtype of sizetype.
10562         (build_index_2_type): Pass sizetype to build_range_type.
10563         (build_common_tree_nodes): Use size_int and bitsize_int to
10564         initialize nodes; add bitsize_{zero,one,unit}_node.
10565         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10566         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10567         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10568         (DECL_FIELD_BITPOS): Deleted.
10569         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10570         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10571         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10572         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10573         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10574         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10575         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10576         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10577         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10578         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10579         (DECL_ALIGN): Adjust to new field in union.
10580         (DECL_OFFSET_ALIGN): New field.
10581         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10582         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10583         (union tree_decl): Add struct for both aligns.
10584         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10585         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10586         (struct record_layout_info): Rework fields to have offset
10587         alignment and byte and bit position.
10588         (start_record_layout, place_field): Renamed from old names.
10589         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10590         (byte_position, int_byte_position): Likewise.
10591         (get_inner_reference): Change types of position and length.
10592         * unroll.c (unroll_loop): New variable R; use for some loops.
10593         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10594         (calculate_giv_inc): Arg REGNO now unsigned.
10595         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10596         * varasm.c (assemble_variable): Clean up handling of size using
10597         host_integerp and tree_low_cst.
10598         (decode_addr_const): Use byte, not bit, position.
10599         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10600         use tree_low_cst and int_bit_position.
10601         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10602
10603 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10604
10605         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10606         (reorder_block_def): New members eff_head and eff_end.
10607         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10608         (verify_insn_chain): New function.
10609         (skip_insns_between_block): Add code to skip deleted insns.
10610         Check for note before using.
10611         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10612         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10613         Check for note before using.
10614         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10615         (fixup_reorder_chain): Restructure, clean up, defect removal.
10616         (reorder_basic_blocks): Remove last_insn and references to it.
10617         Moved insn chain verification code into a new function (see above).
10618         Delete defective code that sets last insn.
10619         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10620         all blocks.
10621
10622 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10623
10624         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10625
10626 2000-03-24  Richard Henderson  <rth@cygnus.com>
10627
10628         * tree.c (lang_safe_for_unsave): Remove.
10629         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10630         allowing for two levels of unsafeness.  Remove lang hook.
10631         * tree.h: Update declarations.
10632         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10633         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10634         Always fail sibcalls when there are pending cleanups.
10635
10636 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10637
10638         * flow.c (propagate_block): When we delete an ADDR_VEC,
10639         also delete the BARRIER following it if there is one.
10640
10641 2000-03-24  Richard Henderson  <rth@cygnus.com>
10642
10643         * builtins.c (expand_builtin_bzero): Convert `length' argument
10644         to sizetype.
10645
10646 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10647
10648         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10649         comparison if regno's are equal.
10650         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10651         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10652         (expand_call): Update caller.
10653         Avoid making a sibling call if argument size of the callee is larger
10654         than argument size of the caller.
10655         Call hard_function_value with outgoing set if in sibcall pass.
10656         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10657
10658         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10659         Change LEAF_REGISTERS from an array initializer to actual array
10660         identifier. Move static global variable into the function.
10661         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10662         sequences for leaf functions.
10663         * global.c (global_alloc): Likewise.
10664         * tm.texi (LEAF_REGISTERS): Update documentation.
10665
10666         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10667         TARGET_FLAT leaf disabling hack.
10668         (LEAF_REGISTERS): Changed from an array initializer to actual array
10669         identifier to avoid duplication and remove the above hack.
10670         (FUNCTION_OK_FOR_SIBCALL): Define.
10671         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10672         always like call attribute.
10673         (eligible_for_sibcall_delay): New attribute.
10674         (sibcall): New delay type.
10675         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10676         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10677         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10678         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10679         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10680         New functions.
10681         (output_function_epilogue): Move part of the code into
10682         output_restore_regs.
10683         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10684         TYPE_SIBCALL.
10685         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10686         prototypes.
10687
10688         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10689         until infrastructure is finished.
10690
10691 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10692
10693         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10694         (save_parm_insns): Not here.
10695
10696 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10697
10698         * builtins.c (expand_builtin_bzero): New function.
10699         (expand_builtin): Handle bzero.
10700
10701         * builtins.def: Add BUILT_IN_BZERO.
10702
10703         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10704         prototype & function for bzero.
10705
10706 2000-03-23  Michael Meissner  <meissner@redhat.com>
10707
10708         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10709         change adding TARGET_FP to the TF floating point insns, except for
10710         trunctfsf2, which generates direct calls to truncdfsf2.
10711
10712 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10713
10714         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10715         try to protect against middle-end changes that break binary
10716         compatibility.
10717         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10718
10719 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10720
10721         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10722
10723 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10724
10725         * calls.c (expand_call): If TARGET is passed by reference and
10726         is readonly, write a CLOBBER.
10727
10728 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10729
10730         * builtins.c (expand_builtin): Handle bcmp.
10731
10732         * builtins.def: Add BUILT_IN_BCMP.
10733
10734         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10735         prototype & function for bcmp.
10736
10737 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10738
10739         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10740         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10741         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10742
10743 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10744
10745         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
10746         alternative when using -fp64 -gp32.
10747
10748 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10749
10750         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
10751         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
10752         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
10753
10754         * frame.h (frame_state): Revert last change.
10755         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
10756         * libgcc2.c (throw_helper): Revert last change.
10757
10758 2000-03-22  Richard Henderson  <rth@cygnus.com>
10759
10760         * stmt.c (expand_asm_operands): Don't promote the temporary.
10761
10762 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10763
10764         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
10765         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
10766           c_get_alias_set): Likewise.
10767         * c-decl.c (duplicate_decls): Likewise.
10768         * c-typeck.c (default_conversion,build_unary_op): Likewise.
10769         * calls.c (initialize_argument_information): Likewise.
10770         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
10771         Likewise.
10772         * dwarfout.c (decl_class_context,output_type): Likewise.
10773         * expr.c (get_inner_reference): Likewise.
10774         * fold-const.c (simple_operand_p,fold): Likewise.
10775         * function.c (aggregate_value_p): Likewise.
10776         * stmt.c (expand_asm_operands): Likewise.
10777         * varasm.c (named_section): Likewise.
10778
10779 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10780
10781         Implement dwarf2 exception handling for the ARM.
10782         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
10783         (DWARF_FRAME_RETURN_COLUMN): Define.
10784         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
10785         REG_FRAME_RELATED_EXPR note.
10786         (emit_sfm): Likewise.
10787         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
10788         * dwarf2out.c (reg_save): Handle saving a register to itself.
10789         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
10790         * except.c (eh_regs): Don't use the static chain reg if it's
10791         callee-saved.
10792         * frame.h (frame_state): Add cfa_saved field.
10793         * frame.c (execute_cfa_insn): Set it.
10794         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
10795         the epilogue.
10796         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
10797         Now takes a parm.
10798         (instantiate_virtual_regs): Adjust.
10799         * tm.texi: Adjust.
10800         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10801         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10802         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
10803
10804         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
10805         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
10806
10807 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10808
10809         * builtins.def: New file.
10810
10811         * Makefile.in (TREE_H): Depend on builtins.def.
10812
10813         * builtins.c (built_in_names): Use builtins.def.
10814
10815         * tree.h (built_in_function): Likewise.
10816
10817 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
10818
10819         * tree.c (size_in_bytes): Return size_zero_node, not
10820         integer_zero_node.
10821
10822 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
10823
10824         * config/fp-bit.c (pack_d): Correct the case when a denormal
10825         is rounded up and stops being denormal.
10826
10827 2000-03-21  Richard Henderson  <rth@cygnus.com>
10828
10829         * config/alpha/alpha.c (function_arg): Check for void_type_node
10830         before using MUST_PASS_IN_STACK.
10831
10832 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
10833
10834         * regmove.c (combine_stack_adjustments_for_block): Check that
10835         the stack pointer is a valid memory address.
10836
10837 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
10838
10839         * calls.c: re-install Mar 16 emit_library_call merge.
10840
10841 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
10842
10843         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
10844         we cannot be sure that if reload_completed base register will
10845         be properly aligned.
10846
10847 2000-03-21  Richard Henderson  <rth@cygnus.com>
10848
10849         * flow.c (delete_block): Fix typo last change.
10850
10851 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
10852
10853         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
10854         not COMPLETE_TYPE_P, to check the type of the expression.
10855
10856 2000-03-21  Michael Meissner  <meissner@redhat.com>
10857
10858         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
10859         all floating point insns that just tested the macro
10860         TARGET_HAS_XFLOATING_LIBS.
10861         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
10862         used to only use the gprs.
10863
10864 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10865
10866         * tree.h (COMPLETE_TYPE_P): New macro.
10867         (COMPLETE_OR_VOID_TYPE_P): New macro.
10868         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
10869         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
10870         * c-aux-info.c (gen_type): Use them.
10871         * c-common.c (c_expand_expr_stmt): Likewise.
10872         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
10873         grokdeclarator, grokparms, finish_struct, start_function,
10874         store_parm_decls, combine_parm_decls): Likewise.
10875         * c-parse.y (cast_expr): Likewise.
10876         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
10877         c_size_in_bytes, c_alignof, build_component_ref,
10878         build_indirect_ref, build_array_ref, convert_arguments,
10879         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
10880         * calls.c (initialize_argument_information): Likewise.
10881         * convert.c (convert_to_integer): Likewise.
10882         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
10883         * dwarfout.c (location_or_const_value_attribute,
10884         output_enumeration_type_die, output_structure_type_die,
10885         output_union_type_die, output_type): Likewise.
10886         * expr.c (safe_from_p, expand_expr): Likewise.
10887         * function.c (assign_parms): Likewise.
10888         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
10889         * tree.c (build_array_type, build_function_type,
10890         build_method_type, build_offset_type, build_complex_type): Likewise.
10891         * c-parse.c, c-parse.h: Regenerated.
10892
10893 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10894
10895         * config/c4x/rtems.h: Include config/rtems.h.
10896
10897 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
10898
10899         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
10900         decl is a FUNCTION_DECL
10901
10902 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
10903
10904         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
10905         function uses output registers.  Don't save RP for leaf functions.
10906         Do save RP even if no epilogue.
10907         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
10908         (CALL_USED_REGISTERS): Unmark in registers.
10909         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
10910         to near the middle.
10911
10912 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10913
10914         * config/rs6000/rs6000.md (bunordered): New expander.
10915         (bordered): New expander.
10916         (buneq): New expander.
10917         (bunge): New expander.
10918         (bungt): New expander.
10919         (bunle): New expander.
10920         (bunlt): New expander.
10921         (bltgt): New expander.
10922
10923         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
10924         (ccr_bit_negated_p): New function.
10925         (print_operand): For %C, generate appropriate cror for UNEQ,
10926         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
10927
10928 2000-03-20  Andreas Jaeger  <aj@suse.de>
10929
10930         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
10931         warning.
10932
10933         * tree.h (safe_for_unsave): Prototype.
10934
10935 2000-03-20  Richard Henderson  <rth@cygnus.com>
10936
10937         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
10938         (combine_stack_adjustments_for_block): Don't allow sp references
10939         in the side of a set we're not fixing up.
10940         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
10941         after life_analysis.
10942
10943 2000-03-20  Richard Henderson  <rth@cygnus.com>
10944
10945         * calls.c (expand_call): Don't bother generating tail call
10946         sequences if there are pending cleanups.  Use
10947         expand_start_target_temps/expand_end_target_temps to elide
10948         cleanups created during sibcall expansion.
10949
10950 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10951
10952         * configure.in: Set $IFS to a value if it doesn't already have one
10953         in the --enable-checking handling.
10954         * configure: Regenerate.
10955
10956 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10957
10958         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
10959         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10960         Regenerated.
10961
10962 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
10963
10964         * jump.c (delete_noop_moves): Remove code attempting to
10965         combine stack adjustments.
10966
10967 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10968
10969         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
10970         * except.c (emit_cleanup_handler): Use them.
10971         (expand_end_all_catch): Likewise.
10972         * function.c (fixup_var_refs): Likewise.
10973         (expand_function_end): Clear catch_clauses_last.
10974         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
10975         * except.h (struct eh_status): New field x_catch_clauses_last.
10976         (catch_clauses_last): New define.
10977
10978         * Makefile.in (tree.o): Depend on HASHTAB_H.
10979         * tree.c: Include hashtab.h.
10980         (struct type_hash): Remove next field.
10981         (TYPE_HASH_SIZE): Remove.
10982         (TYPE_HASH_INITIAL_SIZE): New define.
10983         (type_hash_table): Change type to htab_t.
10984         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
10985         mark_hash_entry): New functions.
10986         (init_obstacks): Allocate type hash.
10987         (type_hash_lookup): Use htab functions.
10988         (type_hash_add, mark_type_hash): Likewise.
10989         (dump_tree_statistics): Call print_type_hash_statistics.
10990
10991 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10992
10993         * rs6000/t-aix41: New file.
10994
10995         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
10996
10997 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
10998
10999         * tm.texi (Driver): Fix typos and tweak entry for
11000         INCLUDE_DEFAULTS.
11001         Move misplaced STRUCT_FORCE_BLK entry ...
11002         (Storage Layout): ... to here.
11003         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
11004
11005 2000-03-19  Richard Henderson  <rth@cygnus.com>
11006
11007         * flow.c (delete_block): Delete the addr_vec along with the block.
11008         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
11009         reference labels.
11010
11011         * fold-const.c (extract_muldiv): Apply type check for defined
11012         overflow to multiply as well as divide.
11013
11014         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
11015
11016 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11017
11018         * emit-rtl.c (remove_unncessary_notes): Check that all
11019         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
11020         associated NOTE_BLOCK.
11021         * function.h (identify_blocks): Update comments.
11022         (reorder_blocks): Declare.
11023         * function.c (identify_blocks): Don't take paramters.
11024         (reorder_blocks): Don't take parameters.
11025         * loop.h (find_loop_tree_blocks): Remove.
11026         (unroll_block_trees): Likewise.
11027         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
11028         reorder_blocks instead of unroll_block_trees.h
11029         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
11030         * stmt.c (find_loop_tree_blocks): Remove.
11031         (unroll_block_trees): Likewise.
11032         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
11033         in whole-function mode.
11034         * tree.h (reorder_blocks): Remove declaration.
11035
11036         * expr.c: Include intl.h.
11037         * Makefile.in (expr.o): Depend on intl.h.
11038
11039 2000-03-18  Richard Henderson  <rth@cygnus.com>
11040
11041         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
11042
11043 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11044
11045         * tree.h (tree_index): Remove enumerals for integer types.
11046         (integer_type_kind): New type.
11047         (integer_types): New variable.
11048         (char_type_node): Adjust.
11049         (signed_char_type_node): Likewise.
11050         (unsigned_char_type_node): Likewise.
11051         (short_integer_type_node): Likewise.
11052         (short_unsigned_type_node): Likewise.
11053         (integer_type_node): Likewise.
11054         (unsigned_type_node): Likewise.
11055         (long_integer_type_node): Likewise.
11056         (long_unsigned_type_node): Likewise.
11057         (long_long_integer_type_node): Likewise.
11058         (long_long_unsigned_type_node): Likewise.
11059         * tree.c (integer_types): New variable.
11060         (init_obstacks): Register it as a root.
11061
11062 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
11063
11064         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
11065         NEXT_INSN. Update last insn in chain.
11066
11067 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
11068
11069         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
11070         with TYPE_DECL_SUPPRESS_DEBUG set.
11071
11072 2000-03-18  Richard Henderson  <rth@cygnus.com>
11073
11074         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
11075
11076 2000-03-18  Richard Henderson  <rth@cygnus.com>
11077
11078         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
11079         care for HALF_PIC_P.
11080         (expander_call_insn_operand): Remove.
11081         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
11082         * i386.h (PREDICATE_CODES): Update.
11083         * i386.md (all call expanders): Remove predicates, remove special
11084         handling for half-pic.
11085         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
11086         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
11087         (sibcall_epilogue): New.
11088
11089 2000-03-17  Richard Henderson  <rth@cygnus.com>
11090
11091         * rtlanal.c (single_set): Reject if the parallel has anything
11092         except SET or USE or CLOBBER.
11093
11094 2000-03-17  Jeff Law  <law@cygnus.com>
11095             Richard Henderson  <rth@cygnus.com>
11096
11097         * Makefile.in (OBJS): Add sibcall.o.
11098         (sibcall.o): New.
11099         * sibcall.c: New file.
11100         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
11101         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
11102         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
11103         Emit sibcall patterns when requested.  Update all callers.
11104         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
11105         elimination seems feasable.
11106         * final.c (leaf_function_p): Sibling calls don't discount being
11107         a leaf function.
11108         * flow.c (HAVE_sibcall_epilogue): Provide default.
11109         (find_basic_blocks_1): Sibling calls don't throw.
11110         (make_edges): Make edge from sibling call to EXIT.
11111         (propagate_block): Don't remove sibcall_epilogue insns.
11112         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
11113         (sibcall_epilogue): New.
11114         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
11115         (identify_blocks_1): Likewise.  Break out from ...
11116         (identify_blocks): ... here.
11117         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
11118         (reorder_blocks): ... here.
11119         (init_function_for_compilation): Zap prologue/epilogue as varrays.
11120         (record_insns): Extend a varray instead of mallocing new memory.
11121         (contains): Read a varray not array of ints.
11122         (sibcall_epilogue_contains): New.
11123         (thread_prologue_and_epilogue_insns): Emit and record
11124         sibcall_epilogue patterns.
11125         (init_function_once): Allocate prologue/epilogue varrays.
11126         * genflags.c (gen_insn): Treat sibcall patterns as calls.
11127         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
11128         Broken out from ...
11129         (save_for_inline_nocopy): ... here.
11130         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
11131         Broken out from ...
11132         (expand_inline_function): ... here.
11133         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
11134         (subst_constants): Handle 'n' formats.
11135         * jump.c (jump_optimize_minimal): New.
11136         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
11137         optimizations if it's set.
11138         * rtl.c (copy_rtx): Do copy jump & call for insns.
11139         * rtl.h (struct rtx_def): Document use of jump and call for insns.
11140         (SIBLING_CALL_P): New.
11141         (sibcall_use_t): New.
11142         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
11143         Invoke optimize_sibling_and_tail_recursive_calls.
11144         * tree.c (lang_safe_for_unsave): New.
11145         (safe_for_unsave): New.
11146         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
11147
11148         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
11149         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
11150         (*sibcall_osf_1, *sibcall_value_osf_1): New.
11151
11152 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11153
11154         * objc/objc-act.c (encode_method_prototype): Pass types, not
11155         PARM_DECLs, to int_size_in_bytes.
11156
11157 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11158
11159         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11160
11161         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11162         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11163
11164 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11165
11166         * Clean up usages of TREE_INT_CST_LOW.
11167         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11168         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11169         Regenerated.
11170         * c-tree.h (min_precision): Move declaration to here.
11171         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11172         (build_unary_op, add_pending_init): Use bit_position.
11173         (pending_init_member, process_init_element): Likewise.
11174         (really_start_incremental_init, push_init_level, pop_init_level):
11175         Don't make copies of nodes or modify them in place, use consistent
11176         types when tracking positions, and use tree routines computations.
11177         (set_init_index, output_init_element): Likewise.
11178         (output_pending_init_elements, process_init_element): Likewise.
11179         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11180         tree_low_cst and int_bit_position; also minor cleanup.
11181         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11182         (print_cst_octal): Precision is unsigned.
11183         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11184         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11185         (simple_type_align_in_bits): Result is unsigned int.
11186         Use tree_int_low_cst and host_integerp.
11187         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11188         (field_byte_offset): Result is HOST_WIDE_INT.
11189         Change types of internal variables so alignments are unsigned int,
11190         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11191         Use host_integerp, tree_low_cst, and int_bit_position.
11192         (add_bit_offset_attribute): Likewise.
11193         (add_data_member_location_attribute): Use tree_cst_low.
11194         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11195         (add_bit_size_attribute): Use tree_low_cst.
11196         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11197         * dwarfout.c: Similar changes to dwarf2out.c.
11198         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11199         * genoutput.c (n_occurences): Return -1 for null string.
11200         (strip_whitespace): Accept null string and make into function.
11201         (scan_operands): Reflect above changes.
11202         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11203         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11204         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11205         * tree.c (int_size_in_bytes): Check for too big to represent.
11206         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11207         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11208         New declarations.
11209         (min_precision): Delete from here.
11210         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11211         and int_bit_position.
11212         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11213         (encode_method_def): Likewise.
11214         (build_ivar_list_initializer): Use int_bit_position.
11215         (generate_shared_structures): Convert size.
11216         (encode_type, encode_complete_bitfield): Use integer_zerop.
11217         (encode_bitfield): Use tree_low_cst and int_bit_position.
11218
11219 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11220
11221         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11222
11223 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11224
11225         * call.c (special_function_p): It is only malloc if it returns
11226         Pmode.
11227
11228 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11229
11230         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11231         (C33_FLAG, TARGET_C3X): Add macros.
11232         (TARGET_SWITCHES): Add -m33 option.
11233         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11234
11235 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11236
11237         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11238         (PARALLEL_PACK_FLAG): Delete.
11239         (TARGET_SWITCHES): Update.
11240         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11241
11242 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11243
11244         * fold-const.c (fold): Fix a few cases when the returned result
11245         is not of the same type as the input.
11246
11247 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11248
11249         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11250         warning.
11251
11252 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11253
11254         * libgcc2.h: Move prototypes above macros with the same name.
11255         Wrap some function prototypes in the conditional which indicates
11256         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11257
11258 2000-03-16  Richard Henderson  <rth@cygnus.com>
11259
11260         * calls.c: Revert last two changes.
11261
11262 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11263
11264         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11265         has exponent 0 is a zero.
11266
11267         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11268         HASH may already be nonzero.  Add code/mode into hash value
11269         immediately after repeat label.
11270         (cselib_lookup): Don't leave the hash table in an inconsistent
11271         state before a hash lookup operation.
11272
11273 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11274
11275         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11276         by TARGET_[HQ]IMODE_MATH.
11277         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11278         x86_promote_qi_regs): Declare.
11279         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11280         TARGET_PROMOTE_QI_REGS): New macros.
11281         (PROMOTE_MODE): New macro.
11282         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11283         x86_promote_qi_regs): New global variables.
11284
11285 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11286
11287         * calls.c (emit_library_call_value_1): Break out from ...; handle
11288         VOIDmode function calls too.
11289         (emit_library_call_value): ... here.
11290         (emit_library_call): Implement by calling emit_library_call_value_1.
11291
11292 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11293
11294         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11295         Update arg_space_so_far on stack adjustments.
11296         (emit_library_call, emit_library_call_value): Likewise; take into
11297         account arg_space_so_far and pending_stack_adjust when calculcating
11298         the boundary.
11299
11300 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11301
11302         * flow.c: Move all basic block reordering code into its own file.
11303         (create_basic_block): Externalize.
11304         * bb-reorder.c: New file. Copy all basic block reordering code from
11305         flow.c to this file.
11306         (reorder_basic_blocks): Fix fencepost error in for-loop.
11307         (reorder_basic_blocks): Remove braces from single statement for-loops.
11308         * basic-block.h: Add declaration for create_basic_block.
11309         * Makefile.in: Add rules for bb-reorder.o.
11310
11311 2000-03-16  Neil Booth  <NeilB@earthling.net>
11312
11313         * cppinit.c (handle_option):  Implement #unassert directive
11314         as -A- command line option.
11315         (print_help):  Update.
11316         * cpptexi.c:  Update.
11317
11318 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11319
11320         * md.texi (Standard Names): Document `jump'.
11321
11322 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11323
11324         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11325         gotos.
11326
11327 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11328
11329         Merge changes from newppc-branch onto trunk.
11330
11331         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11332
11333         * rs6000.c (toc_hash_table): Update for new hash table functions.
11334         (toc_hash_function): Likewise.
11335         (toc_hash_eq): Likewise.
11336         (toc_hash_mark_entry): Likewise.
11337         (toc_hash_mark_table): Likewise.
11338         (output_toc): Likewise.
11339         (rs6000_add_gc_roots): Likewise.
11340
11341         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11342
11343         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11344         (AR_FLAGS_FOR_TARGET): here.  New macro.
11345
11346         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11347
11348         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11349         fpmem_operand) Delete.
11350         (xer_operand) New.
11351         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11352         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11353         (rs6000_save_machine_status, rs6000_restore_machine_status,
11354         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11355         references to above variables.
11356         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11357         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11358         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11359         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11360         (XER_REGNO_P, XER_REGNO): New.
11361         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11362         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11363         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11364         XER_REGNO_P.
11365         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11366         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11367         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11368
11369         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11370
11371         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11372         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11373         * rs6000.h: from here.
11374
11375         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11376         (rs6000_select_rtx_section): Likewise.
11377         (rs6000_encode_section_info): Likewise.
11378         (sdata_section): Likewise.
11379         (sdata2_section): Likewise.
11380         (sbss_section): Likewise.
11381         * sysv4.h (rs6000_select_section): Delete prototype.
11382         (rs6000_select_rtx_section): Likewise.
11383         (rs6000_encode_section_info): Likewise.
11384         (sdata_section): Likewise.
11385         (sdata2_section): Likewise.
11386         (sbss_section): Likewise.
11387         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11388
11389         * sysv4.h: Delete various unnecessary #undef's and put a comment
11390         on the remaining ones.
11391         Change various comments according to coding standard.
11392
11393         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11394
11395         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11396         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11397         (CR0_REGNO_P) Remove.
11398         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11399         setup_incoming_varargs, mtcrf_operation, print_operand,
11400         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11401         Use the above macros.
11402
11403         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11404
11405         * config/rs6000/rs6000.md: Added a new alternative for each
11406         pattern that had a 'x' alternative but no 'y' alternative.
11407         Added a new split for each of the above patterns.
11408
11409         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11410
11411         * aix41.h (ASM_CPU_SPEC): Delete.
11412         (CPP_CPU_SPEC): Delete.
11413
11414         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11415         (ASM_OUTPUT_LABEL): Define.
11416         (ASM_GLOBALIZE_LABEL): Define.
11417         (STRIP_NAME_ENCODING): Define.
11418         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11419         (STRIP_NAME_ENCODING): Don't define.
11420         (ASM_OUTPUT_LABEL): Don't define.
11421         (ASM_GLOBALIZE_LABEL): Don't define.
11422         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11423         names, and ASM_OUTPUT_LABEL to output labels, rather than
11424         asm_fprintf.
11425         (ASM_OUTPUT_LABEL): Define.
11426         (ASM_OUTPUT_INT): Use assemble_name.
11427         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11428         (STRIP_NAME_ENCODING): Don't undefine first.
11429         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11430         ELF.
11431         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11432         specified with 'asm' even with -fleading-underscore.
11433         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11434         (output_epilog): Likewise.
11435         (output_toc): Likewise.
11436         * tramp.asm: Handle -fleading-underscore correctly.
11437
11438         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11439         -mminimal-toc.
11440         (nonlocal_goto_receiver): Delete.
11441         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11442
11443         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11444         (SET_ASM_OP): Define.
11445         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11446
11447         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11448         (ASM_LONG): Define.
11449
11450         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11451         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11452
11453         * rs6000.h: Add 'u' to more constants.
11454
11455         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11456
11457         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11458
11459         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11460
11461         * rs6000.c (reg_or_u_cint_operand): New function.
11462         (logical_operand): Handle 64-bit hosts.
11463         (logical_u_operand): New function.
11464         (non_logical_cint_operand): Handle 64-bit hosts.
11465         (non_logical_u_cint_operand): New function.
11466         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11467         (PREDICATE_CODES): Define new functions.
11468         * rs6000-protos.h: Declare new functions.
11469         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11470         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11471         CONST_DOUBLE for 32-bit values.
11472         (scc insns): Generate DImode compares.
11473         (mfcr insns): Create DImode versions.
11474         (sge matchers): New patterns.
11475
11476         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11477
11478         * rs6000.md: Correct instructions length attributes and
11479         constraints on unsigned compare instructions.
11480         (*ne0): Disable for PowerPC64.
11481
11482         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11483
11484         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11485         quantity, fix profile1.C test failure under -fPIC.
11486
11487         * rs6000.c: Add 'u' to many constants to suppress warnings.
11488         (constant_pool_expr_1): Make static.
11489         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11490         * rs6000.h: Add 'u' to many constants to suppress warnings.
11491
11492         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11493         for the start of the TOC, instead of LCTOC..0.
11494         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11495         of the TOC.
11496         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11497         (load_toc_aix_di): Use LCTOC..1.
11498
11499         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11500         * rs6000.c (rs6000_legitimize_address): New function from
11501         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11502         symbols in the constant pool that really are TOC references.
11503         (print_operand_address): For ELF, write TOC offsets under
11504         -fPIC as subtractions in the insn.
11505         (output_toc): For ELF, define symbols in TOC as normal labels,
11506         to match RTL.
11507         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11508         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11509         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11510         * rs6000.md (movsi): Only use create_TOC_reference on
11511         symbols in the constant pool that really are TOC references.
11512
11513         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11514         * rs6000.c (rs6000_reorg): Delete.
11515         * rs6000-protos.h (rs6000_reorg): Delete.
11516
11517         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11518
11519         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11520
11521         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11522         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11523         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11524         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11525         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11526         rs6000_aix_emit_builtin_unwind_init.
11527         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11528         rs6000_emit_eh_toc_restore on AIX.
11529         (return_eh_si): Use r2.
11530         (return_eh_di): Use r2.
11531
11532         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11533         since we're breaking binary compatibility anyway.
11534
11535         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11536
11537         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11538         constant_pool_expr_p): Declare them.
11539         (constant_pool_expr_p): Declare it.
11540         * config/rs6000/rs6000.c (toc_label_name): Define.
11541         (rs6000_override_options): Set toc_label_name.
11542         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11543         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11544         uses_TOC): New functions.
11545         (print_operand): Delete old '*' case.
11546         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11547         and strip off rtl for TOC before calling output_addr_const.
11548         (rs6000_emit_load_toc_table): Use toc_label_name.
11549         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11550         the default.
11551         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11552         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11553         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11554         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11555         into explicit TOC_REGISTER offsets.
11556         (TOC_REGISTER): New macro.
11557         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11558         TARGET_TOC to reference TOC_REGISTER.
11559         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11560         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11561         uses_TOC before emitting label references.
11562
11563         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11564
11565         * rs6000.md (stack_tie): Fix warning.
11566
11567         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11568         to handle -fleading-underscore.
11569         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11570         (USER_LABEL_PREFIX): New macro.
11571         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11572         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11573         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11574         call-linux can use the same multilibs.
11575         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11576         and call-linux multilibs.  Do multilib with -fleading-underscore.
11577         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11578         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11579         to call-aix.
11580
11581         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11582         have MASK_SOFT_FLOAT set.
11583         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11584         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11585         CPP_FLOAT_DEFAULT_SPEC.
11586
11587         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11588         * rs6000.md: Whitespace change.
11589         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11590         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11591
11592         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11593
11594         * rs6000.md (eh_epilogue): New expander.
11595         (eh_reg_restore): New expand/split/insn combination.
11596         (return_eh_si): New insn.
11597         (return_eh_di): New insn.
11598
11599         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11600         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11601         * eabi-ctors.c (__do_global_ctors): Register this object's
11602         frame.  Clean up.  Call atexit() after the constructors.
11603         (__do_global_dtors): Deregister this object's frame.  Clean up.
11604         Allow for recursive calls to exit().
11605         * rs6000.c (fixuplabelno): New variable.
11606         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11607         TARGET_RELOCATABLE, it slows down exec() under linux.
11608         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11609
11610         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11611         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11612         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11613         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11614         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11615         (ASM_OUTPUT_DWARF_ADDR): New macro.
11616         (ASM_OUTPUT_DWARF_DATA4): New macro.
11617         (ASM_OUTPUT_DWARF_DATA2): New macro.
11618         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11619         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11620         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11621
11622         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11623
11624         * rs6000.c (rs6000_sr_alias_set): New variable.
11625         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11626         (rs6000_emit_stack_tie): New function.
11627         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11628         in a way that dwarf2out can understand.
11629         (rs6000_frame_related): New function.
11630         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11631         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11632         Use rs6000_emit_stack_tie when needed.
11633         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11634         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11635         * rs6000.md (stack_tie): New insn.
11636         (return_internal_si): Allow return value to be in the count
11637         register.
11638         (return_internal_di): Likewise.
11639
11640         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11641
11642         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11643
11644         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11645
11646         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11647
11648         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11649
11650         * rs6000.md (stmw): Use the right POWER opcode.
11651         (lmw): Likewise.
11652
11653         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11654
11655         * rs6000-protos.h: New file.
11656
11657         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11658
11659         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11660         warnings.
11661
11662         * sysv4.h: Likewise.
11663
11664         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11665
11666         * ../../configure.in: Delete powerpcle-*-winnt*
11667         and powerpcle-*-pe|powerpcle-*-cygwin*.
11668         * ../../configure: Regenerated.
11669         * cygwin.h: Delete.
11670         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11671         (TARGET_WINDOWS_NT): Delete.
11672         (ABI_NT): Delete.
11673         (CALL_NT_DLLIMPORT): Delete.
11674         Delete NT-specific code.
11675         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11676         * win-nt.h: Delete.
11677         * t-winnt: Delete.
11678         * nt-ci.asm: Delete.
11679         * nt-cn.asm: Delete.
11680         * ntstack.asm: Delete.
11681
11682         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11683
11684         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11685         (ASM_FILE_START): Likewise.
11686         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11687         (ASM_OUTPUT_LABELREF): Likewise.
11688         (ASM_OUTPUT_SKIP): Likewise.
11689         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11690         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11691         (ASM_OUTPUT_CASE_LABEL): Likewise.
11692         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11693         (ASM_OUTPUT_ASCII): Likewise.
11694
11695         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11696
11697         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11698         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11699         increment rs6000_pic_labelno here.
11700         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11701         and increment rs6000_pic_labelno here.
11702
11703         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11704
11705         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11706         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11707         allocation knows (reg) is dead before the insn.
11708
11709         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11710
11711         * rs6000.md (movsi_to_cr): Correct typo in output template.
11712
11713         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11714
11715         * rs6000.c (rs6000_pic_labelno): Always define.
11716         (rs6000_pic_func_labelno): Delete.
11717         (lmw_operation): Check for a zero base register,
11718         which doesn't mean what we want.
11719         (stmw_operation): New function.
11720         (print_operand): Define new 'l' modifier.
11721         (rs6000_stack_info): We must save all 64 bits of the registers
11722         if TARGET_POWERPC64.
11723         (rs6000_output_load_toc_table): Delete.
11724         (rs6000_emit_load_toc_table): New function.
11725         (rs6000_allocate_stack_space): Delete.
11726         (rs6000_emit_allocate_stack): New function.
11727         (rs6000_emit_prologue): New function.
11728         (output_prolog): Use rs6000_emit_prologue.
11729         (rs6000_emit_epilogue): Change a few variable names to be
11730         more accurate.  Restore all 64 bits of the registers if
11731         TARGET_POWERPC64.  Only restore the FP registers which were used
11732         if they are being saved/restored one-at-a-time.
11733         (output_mi_thunk): Delete inefficient code generation.
11734         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11735         * rs6000.h: Declare rs6000_emit_load_toc_table,
11736         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11737         rs6000_output_load_toc_table.
11738         * rs6000.md (elf_high): Allow register 0, but discourage it
11739         heavily.
11740         (elf_low): Support loading into register 0.
11741         (load_toc_aix_si): New pattern.
11742         (load_toc_aix_di): New pattern.
11743         (load_toc_v4_pic_si): New pattern.
11744         (load_toc_v4_pic_di): New pattern.
11745         (load_toc_v4_PIC_1): New pattern.
11746         (load_toc_v4_PIC_1b): New pattern.
11747         (load_toc_v4_PIC_2): New pattern.
11748         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
11749         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
11750         (prologue): New expander.
11751         (movesi_from_cr): New pattern.
11752         (stmw): New pattern.
11753         (save_fpregs_si): New pattern.
11754         (save_fpregs_di): New pattern.
11755
11756         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11757
11758         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
11759         (movdi): Likewise.
11760         (movhi): Likewise.
11761         (movqi): Likewise.
11762
11763         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11764
11765         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
11766         at present.
11767         (movsi_got_internal): Likewise.
11768         (movsi_got_internal+1): Likewise.
11769         (set_sp): 'unspec 7' does a SImode clobber.
11770
11771         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11772
11773         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
11774         allocate a stack temporary.
11775         (floatsidf2_internal): Likewise.
11776         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
11777         with unspec.
11778         (floatunssidf2): Don't use the fpmem "register", just
11779         allocate a stack temporary.
11780         (floatunssidf2_internal): Likewise.
11781         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
11782         with unspec.
11783         (floatsidf2_loadaddr): Delete.
11784         (floatsidf2_store1): Delete.
11785         (floatsidf2_store2): Delete.
11786         (floatsidf2_load): Delete.
11787         (fix_truncdfsi2): Don't use the fpmem "register", just
11788         allocate a stack temporary.
11789         (fix_truncdfsi2_internal_si): Delete.
11790         (fix_truncdfsi2_internal_di): Delete.
11791         (fix_truncdfsi2_internal): New insn.
11792         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
11793         (fix_truncdfsi2_store): Delete.
11794         (fix_truncdfsi2_load): Delete.
11795         (fctiwz): Produce gen_fctiwz.
11796
11797         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11798
11799         * eabi.h (INVOKE__main): Define.
11800         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
11801         specially.
11802         (rs6000_emit_prologue): Likewise.
11803         * rs6000.h (struct rs6000_stack): Don't keep track of whether
11804         this is the main program.
11805
11806         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11807
11808         * rs6000.c (rs6000_va_arg): Delete some unused variables.
11809
11810         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11811
11812         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
11813         goes after the argument.
11814
11815         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11816
11817         * rs6000.md: Document 'unspec' values used.
11818         (epilogue): New expander.
11819         (movesi_to_cr_one): New expander.
11820         (movesi_to_cr and following): New pattern.
11821         (lmw): New pattern.
11822         (return_internal_si): New pattern.
11823         (return_internal_di): New pattern.
11824         (return_and_restore_fpregs_si): New pattern.
11825         (return_and_restore_fpregs_di): New pattern.
11826         * rs6000.h: Declare new functions.
11827         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
11828         rather than rs6000_calls_p.
11829         (rs6000_makes_calls): Delete.
11830         (lmw_operation): New function.
11831         (mtcrf_operation): New function.
11832         (rs6000_emit_epilogue): New function.
11833         (output_epilog): Call rs6000_emit_epilogue and final if
11834         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
11835
11836         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11837
11838         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
11839         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
11840         * aix.h (SUBTARGET_SWITCHES): Document switches.
11841         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
11842         sched-prolog and sched-epilog the same.  Document all the
11843         switches.
11844         (TARGET_OPTIONS): No longer allow -mdebug-.
11845
11846         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11847
11848         * rs6000.h (ASM_FILE_END): Move to aix.h.
11849         (EXTRA_SECTIONS): Move to aix.h.
11850         (READONLY_DATA_SECTION): Move to aix.h.
11851         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
11852         (SELECT_SECTION): Move to aix.h.
11853         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
11854         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
11855         (LINK_REGISTER_REGNUM): New definition.
11856         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
11857         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
11858         AIX and SVR4.
11859         * sysv4.h: Delete the code between the inclusion of rs6000.h
11860         and svr4.h.
11861         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
11862         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
11863         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
11864         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
11865         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
11866         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
11867         (fix_truncdfsi2_internal_di): New pattern.
11868         (fix_truncdfsi2_store): The second arg here is Pmode too.
11869         (fix_truncdfsi2_load): The second arg here is Pmode too.
11870         (tablejumpdi): Now that switch tables hold only SImode values,
11871         gcc needs to know how to add them to the pc which is DImode.
11872         * rs6000.c (rs6000_stack_info): Use symbolic name for
11873         LINK_REGISTER_REGNUM.
11874         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
11875         (output_toc): Delete unused variables s1 and s2.
11876         (output_ascii): Use fputs not fprintf on a variable string.
11877
11878         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11879
11880         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11881         * aix43.h: Revert Aug 2 change.
11882         (HAS_INIT_SECTION): Define, not visible yet.
11883         (LD_INIT_SWITCH): Define, not visible yet.
11884         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11885
11886         2000-01-04  Joel Sherrill (joel@OARcorp.com>
11887
11888         * config/rs6000/rtems.h: Include config/rtems.h.
11889
11890         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11891
11892         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11893         (SLOW_UNALIGNED_ACCESS): Define.
11894         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11895         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11896         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11897         (toc_section): Likewise and .toc pseudo-op.
11898         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11899         64-bit mode.
11900         (TEXT_SECTION_ASM_OP): Likewise.
11901         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11902         32-bit offsets.
11903
11904         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11905
11906         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
11907         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11908         compiling libgcc2.
11909
11910         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11911
11912         * rs6000.h: Move more stuff from here...
11913         * aix.h: to here.
11914         * sysv4.h: Cleanup accordingly.
11915         * netware.h: Likewise
11916
11917         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11918
11919         * rs6000.h: Continue cleanup.
11920         * aix.h: Likewise.
11921         * lynx.h: Likewise.
11922         * netware.h: Likewise.
11923         * sol2.h: Likewise.
11924         * sysv4.h: Likewise.
11925         * win-nt.h: Likewise.
11926
11927         * rs6000.h (TARGET_SWITCHES): Add descriptions.
11928         (TARGET_OPTIONS): Likewise.
11929
11930         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
11931         (SUBTARGET_OPTIONS): Likewise.
11932
11933         * rs6000.md: Fix compile time warnings.
11934
11935         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11936
11937         vxworks patches from the Cygnus tree originally by
11938         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
11939         <vmakarov@cygnus.com>.
11940         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
11941         (ENDFILE_SPEC): Likewise.
11942         (LIB_VXWORKS_SPEC): New macro.
11943         (STARTFILE_VXWORKS_SPEC): New macro.
11944         (ENDFILE_VXWORKS_SPEC): New macro.
11945         (LINK_START_VXWORKS_SPEC): New macro.
11946         (LINK_OS_VXWORKS_SPEC): New macro.
11947         (CPP_OS_VXWORKS_SPEC): New macro.
11948         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
11949         * vxppc.h: Rewrite to use proper configuration method.
11950         * vxppcle.h: New file.
11951         * ../../configure.in: Add powerpcle-wrs-vxworks*.
11952         * ../../configure: Rebuilt.
11953
11954         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11955
11956         Lots of changes to rs6000.h, sysv4.h, aix.h,
11957         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
11958         with the aim that rs6000.h is the first header
11959         included and the others override it.
11960         * aix.h: New file.
11961
11962         * x-aix41-gld: Remove.
11963         * x-aix43: Remove.
11964         * x-aix41: Remove target-specific switches, and don't specify
11965         -Wl,-bbigtoc as we don't need it any more.
11966         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
11967         Use t-aix43 for AIX 4.3 and above.
11968         * ../../configure: Regenerated.
11969
11970         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
11971         options, that don't do anything yet.
11972         (MASK_SCHED_PROLOG): New macro.
11973         (MASK_SCHED_EPILOG): New macro.
11974         (TARGET_SCHED_PROLOG): New macro.
11975         (TARGET_SCHED_EPILOG): New macro.
11976
11977         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11978
11979         * rs6000.c: Correct comment, the `minimal' TOCs are actually
11980         one per translation unit, not one per function.
11981         (output_toc): Also do duplicate constant elimination
11982         for per-translation-unit TOCs.
11983
11984         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
11985         a comment explaining _exactly_ when this pattern gets used.
11986         (builtin_setjmp_receiver): New pattern for better clarity.
11987         (init_v4_pic): Move it into a section dealing with TOC registers.
11988
11989         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
11990
11991         * rs6000.c (toc_hash_table): New variable.
11992         (rs6000_hash_constant): New function.
11993         (toc_hash_function): New function.
11994         (toc_hash_eq): New function.
11995         (toc_hash_mark_entry): New function.
11996         (toc_hash_mark_table): New function.
11997         (output_toc): Don't output duplicate TOC entries in
11998         a single file.
11999         (rs6000_add_gc_roots): Add the hash table as a GC root.
12000         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
12001         where they clearly shouldn't be.  This may need to be fixed
12002         later when there is a GNU ar for AIX.
12003         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
12004         Don't define BOOT_LDFLAGS as it is now not necessary.
12005
12006         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
12007
12008         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
12009         for va_list on AIX.  Use unsigned_char_type_node rather than
12010         constructing our own version on svr4.
12011
12012         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
12013
12014         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
12015         since patently it's not.
12016
12017         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
12018
12019         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
12020         define_expand/define_insn pair, and handle restore of the
12021         SVR4 -fpic register.
12022
12023 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
12024
12025         * acconfig.h (HAVE_GAS_WEAK): New define.
12026         * configure.in (assembler weak support): Check for .weak support.
12027         * config.in, configure: Rebuilt.
12028         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
12029         HAVE_GAS_WEAK is defined.
12030
12031 2000-03-15  Nick Clifton  <nickc@cygnus.com>
12032
12033         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
12034         asm_fprintf().
12035
12036 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
12037
12038         * cppfiles.c (open_include_file): New function.
12039         (find_include_file, cpp_read_file): Use it.
12040
12041 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
12042
12043         * cpphash.c (dump_hash_helper): Take the slot, not the element.
12044
12045 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
12046
12047         * flow.c (verify_flow_info): Check for unconditional return.
12048
12049 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
12050
12051         * config/ia64/ia64.md (restore_stack_nonlocal): New.
12052         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
12053         (__ia64_restore_stack_nonlocal): New.
12054         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
12055
12056 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12057
12058         * cpphash.c (collect_formal_parameters): Do not complain about
12059         parameter names that just start with `__VA_ARGS__'.
12060
12061 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
12062
12063         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
12064         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
12065         * i386.c (pentiumpro_cost): Set mul cost to 4.
12066         (x86_use_movx): Set for PPro.
12067
12068 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
12069
12070         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
12071         STACK_BOUNDARY for empty frames now.
12072
12073 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
12074
12075         * stor-layout.c (layout_union): Remove.
12076         (layout_union_field): New function, split out from layout_union.
12077         (finish_union_layout): Likewise.
12078         (layout_field): Handle unions by calling layout_union_field.
12079         (finish_record_layout): Handle unions.
12080         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
12081         QUAL_UNION_TYPE handling.
12082
12083 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
12084
12085         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
12086         end of basic block is jump_insn, not barrier; use create_basic_block
12087         instead of creating basic block by hand.
12088
12089 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
12090
12091         * flow.c (reorder_basic_blocks): Account for barriers when writing
12092         over NEXT_INSN (last_bb->end).
12093         (verify_flow_info): Add check for missing barriers.
12094
12095 2000-03-14  Greg McGary  <gkm@gnu.org>
12096
12097         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
12098         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
12099         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
12100         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
12101         __unbounded, __unbounded__): New keywords.
12102         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
12103         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
12104         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
12105
12106 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12107
12108         * cselib.h: New file.
12109         * alias.c: Include "cselib.h".
12110         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
12111         MEMs as two new arguments.
12112         (get_addr): New static function.
12113         (find_base_term): Handle VALUEs.
12114         (memrefs_conflict_p): Likewise.
12115         (true_dependence): Call get_addr on the addresses.
12116         Call fixed_scalar_and_varying_struct_p with addresses that have been
12117         passed through get_addr and canon_rtx.
12118         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
12119         with true_dependence.
12120         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
12121         * loop.c: Include "cselib.h".
12122         (load_mems): Process extended basic block that enters the loop with
12123         cselib.  Use that information to change initialization of the shadow
12124         register so that a constant equivalence is seen by later passes.
12125         * reload1.c: Include "cselib.h".
12126         (reload_cse_invalidate_regno): Delete function.
12127         (reload_cse_mem_conflict_p): Likewise.
12128         (reload_cse_invalidate_mem): Likewise.
12129         (reload_cse_invalidate_rtx): Likewise.
12130         (reload_cse_regno_equal_p): Likewise.
12131         (reload_cse_check_clobber): Likewise.
12132         (reload_cse_record_set): Likewise.
12133         (reg_values): Delete static variable.
12134         (invalidate_regno_rtx): Likewise.
12135         (reload_cse_delete_noop_set): New static function.
12136         (reload_cse_simplify): New static function, broken out of
12137         reload_cse_regs_1.
12138         (reload_cse_noop_set_p): Delete unused argument INSN.
12139         Just call rtx_equal_for_cselib_p on set source and destination.
12140         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
12141         reload_cse_delete_noop_set.  Delete code to keep track of values; use
12142         cselib functions instead.  Delete code to push/pop obstacks.
12143         (reload_cse_simplify_set): Use cselib to find equivalent values.
12144         Delete code to push/pop obstacks.
12145         (reload_cse_simplify_operands): Likewise.
12146         * rtl.def (VALUE): New rtx code.
12147         * rtl.h (union rtunion_def): New elt rt_cselib.
12148         (X0CSELIB, CSELIB_VAL_PTR): New macros.
12149         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
12150         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
12151         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
12152         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12153         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12154         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12155         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12156         cselib_record_set, cselib_record_sets): New static functions.
12157         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12158         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12159         references_value_p): New functions.
12160         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12161         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12162         n_useless_values, reg_values, callmem, cselib_obstack,
12163         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12164         New static variables.
12165         * varray.h (union varray_data_tag): New elt te.
12166         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12167         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12168         dependencies.
12169
12170 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12171
12172         * gcc.c (do_spec_1): Catch the case where %* is used in a
12173         substitution pattern, but it has not been initialised.
12174         Issue a meaningful error message if an unrecognised operator
12175         is encountered in a spec string.
12176
12177 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12178
12179         * function.c (prepare_function_start): Correctly initialize
12180         cfun->stack_alignment_needed.
12181
12182 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12183
12184         * cppfiles.c (find_include_file): Don't assume nshort is a
12185         substring of name.
12186
12187 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12188
12189         * configure.in (hppa configurations): Add pa32-regs.h to the
12190         list of tm files as appropriate.
12191         * configure: Rebuilt.
12192         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12193         register numbering.
12194         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12195         (fmpyaddoperands, fmpysuboperands): Likewise.
12196         * pa.h: Remove various definitions which depend on knowing
12197         how registers are numbered.
12198         * pa32-regs.h: New file with PA32 register numbering specific
12199         definitions.
12200
12201 2000-03-14  Richard Henderson  <rth@cygnus.com>
12202
12203         * regmove.c (combine_stack_adjustments): New.
12204         (stack_memref_p, single_set_for_csa): New.
12205         (free_csa_memlist, record_one_stack_memref): New.
12206         (try_apply_stack_adjustment): New.
12207         (combine_stack_adjustments_for_block): New.
12208         * rtl.h (combine_stack_adjustments): Declare.
12209         * toplev.c (rest_of_compilation): Call it.
12210
12211         * i386.md: Revert 2000-01-16 change.
12212
12213 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12214
12215         * gccbug.in: Add web category, gcc specific classes.
12216
12217 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12218
12219         * stor-layout.c (finalize_record_size): Fix typo.
12220
12221 2000-03-14  Stan Shebs  <shebs@apple.com>
12222
12223         * c-typeck.c (c_alignof): Error on incomplete types.
12224         * extend.texi (Alignment): Document this.
12225
12226 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12227
12228         * cppfiles.c: Include mkdeps.h.
12229         (find_include_file, read_include_file): Remove _cpp_ prefix
12230         from name, make static.
12231         (_cpp_execute_include): New function, broken out of
12232         do_include.
12233
12234         * cpplib.c: Don't include mkdeps.h.
12235         (struct directive): Remove type field. Reorder entries.  The
12236         function takes only one argument.
12237         (struct if_stack): Make type field an int.
12238         (directive_table): Rename to dtable.  Generate it, the
12239         prototypes of the directive handlers, and the enum for the
12240         directive numbers, from a template macro.
12241         (do_ifndef, do_include_next, do_import): New functions.
12242         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12243         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12244         do_ident, do_assert, do_unassert, do_sccs): Take only one
12245         argument.
12246         (do_sccs): Define always, but alter behavior based on
12247         SCCS_DIRECTIVE.
12248         (_cpp_handle_directive, consider_directive_while_skipping):
12249         Restructure for new directive table layout.
12250
12251         (pass_thru_directive): Take a directive number, not a pointer
12252         to a struct directive.
12253         (parse_include): New function, broken out of do_include.
12254         (do_include, do_import, do_include_next): Use parse_include
12255         and _cpp_execute_include.
12256         (do_elif, do_else): Test for T_ELSE specifically when checking
12257         for #elif/#else after #else.
12258         (parse_ifdef): New function, broken out of do_ifdef.
12259         (validate_else): Expect a name arg without a leading #.
12260         (if_directive_name): Delete.
12261         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12262         directive handlers with only one argument.
12263
12264         * cpphash.h: Update prototypes.
12265         (enum node_type): Remove entries for directives.
12266         * Makefile.in: Update dependencies.
12267
12268         * cpphash.c (dump_hash_helper): Only dump nodes of type
12269         T_MACRO.  Emit a newline after each definition.
12270
12271 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12272
12273         * gccbug.in: New file.
12274         * configure.in (all_outputs): Add gccbug.
12275         * Makefile.in (install-common): Install gccbug.
12276         (GCCBUG_INSTALL_NAME): New variable.
12277         * configure: Rebuilt.
12278
12279 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12280
12281         * function.c (put_var_into_stack): Use type_for_mode to calculate
12282         part_type.  Use MEM_SET_IN_STRUCT_P.
12283         * expr.c (store_field): Handle CONCAT.
12284         (store_constructor): Use fields_length.
12285         * tree.c (fields_length): New fn.
12286         * tree.h: Declare it.
12287
12288 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12289
12290         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12291         (cpplex.o): New target.
12292         * po/POTFILES.in: Add cpplex.c.
12293
12294         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12295         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12296         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12297         skip_block_comment, skip_line_comment, skip_comment,
12298         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12299         _cpp_parse_name, skip_string, parse_string,
12300         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12301         _cpp_get_directive_token, find_position,
12302         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12303         (maybe_macroexpand, _cpp_lex_token): New functions.
12304
12305         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12306         parse_goto_mark): Delete.
12307         (_cpp_handle_eof): New function.
12308         (_cpp_handle_directive): Rename from handle_directive.
12309         (_cpp_output_line_command): Rename from output_line_command.
12310         (do_if, do_elif): Call _cpp_parse_expr directly.
12311         * cppfiles.c (_cpp_read_include_file): Don't call
12312         init_input_buffer here.
12313         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12314         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12315         here; pop the token_buffer and skip the rest of the line here.
12316         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12317         here.
12318
12319         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12320         Define here.
12321         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12322         CPP_GOTO_MARK): New macros.
12323         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12324         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12325         _cpp_read_and_prescan, _cpp_init_input_buffer,
12326         _cpp_grow_token_buffer, _cpp_get_directive_token,
12327         _cpp_handle_directive, _cpp_handle_eof,
12328         _cpp_output_line_command): Prototype them here.
12329         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12330         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12331         quote_string, output_line_command): Remove.
12332
12333 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12334
12335         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12336         whether it is too large we must also verify that it isn't negative.
12337
12338 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12339
12340         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12341         (movsi_zero_liveg0): Remove.
12342         (movsf_insn_novis_liveg0): Remove.
12343         (negsi2): Remove.
12344         (negsi2_not_liveg0): Rename to negsi2.
12345         (one_cmplsi2): Remove.
12346         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12347         (one_cmplsi2_liveg0): Remove.
12348         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12349         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12350         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12351         (PREDICATE_CODES): Remove zero_operand.
12352         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12353         TARGET_BROKEN_SAVERESTORE.
12354         (zero_operand): Remove.
12355         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12356         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12357         options.
12358         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12359         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12360         TARGET_BROKEN_SAVERESTORE): Remove.
12361         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12362         Remove.
12363         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12364         Remove.
12365         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12366         Remove.
12367
12368         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12369
12370 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12371
12372         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12373         truncating a string.  Don't assume tokens are nul terminated.
12374         Problem noted by Andreas Jaeger <aj@suse.de>
12375
12376 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12377
12378         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12379         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12380         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12381
12382 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12383
12384         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12385         STRUCTURE_SIZE_BOUNDARY.
12386
12387 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12388
12389         * tree.h (record_layout_info_s): New structure.
12390         (record_layout_info): New type.
12391         (new_record_layout_info): New function.
12392         (layout_field): Likewise.
12393         (finish_record_layout): Likewise.
12394         * stor-layout.c (layout_record): Remove.
12395         (new_record_layout_info): New function.
12396         (layout_field): New function, broken out from layout_record.
12397         (finalize_record_size): Likewise.
12398         (compute_record_mode): Likewise.
12399         (finalize_type_size): New function, broken out from layout_type.
12400         (finish_record_layout): Likewise.
12401         (layout_type): Use them.
12402
12403 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12404
12405         * cpphash.c: Don't include version.h.
12406         (special_symbol) [case T_VERSION]: Look for the string in
12407         hp->value.cpval; don't use version_string.
12408         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12409         __VERSION__ to version_string.
12410         * Makefile.in (cpphash.o): Update deps.
12411
12412 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12413
12414         Convert cpplib to use libiberty/hashtab.c.
12415
12416         * cpplib.h (struct cpp_reader): Make hashtab and
12417         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12418         and ALL_INCLUDE_HASHSIZE macros.
12419
12420         * cpphash.h: Update prototypes.
12421         (struct hashnode): Remove next, prev, and bucket_hdr members.
12422         Make length a size_t.  Add hash member.
12423         (struct ihash): Remove next member.  Add hash member.  Make
12424         name a flexible array member.
12425
12426         * cppfiles.c: Include hashtab.h.
12427         (include_hash): Delete.
12428         (IHASHSIZE): New macro.
12429         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12430         (cpp_included): Do the hash lookup here.
12431         (_cpp_find_include_file): Rewrite.
12432         (cpp_read_file): Put the "fake" hash entry into the hash
12433         table.  Honor the control_macro, if it turns out we've seen
12434         the file before.  Don't push the buffer here.
12435         (_cpp_read_include_file): Push the buffer here.
12436         (OMODES): New macro.  Use it whenever we call open(2).
12437
12438         * cpphash.c: Include hashtab.h.
12439         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12440         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12441         _cpp_lookup_slot): New functions.
12442         (HASHSIZE): new macro.
12443         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12444         (_cpp_lookup): Use hashtab.h routines.
12445
12446         * cppinit.c: Include hashtab.h.
12447         (cpp_reader_init): Call _cpp_init_macro_hash and
12448         _cpp_init_include_hash.  Don't allocate hashtab directly.
12449         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12450         pfile->all_include_files.
12451         (initialize_builtins): Use _cpp_make_hashnode and
12452         htab_find_slot to add hash entries.
12453         (cpp_finish): Just call _cpp_dump_macro_hash.
12454         * cpplib.c: Include hashtab.h.
12455         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12456         create hash entries.
12457         (do_pragma_poison, do_assert): Likewise.
12458         (do_include): Don't push the buffer here.  Don't increment
12459         system_include_depth unless _cpp_read_include_file succeeds.
12460         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12461         or htab_remove_elt.
12462         (do_pragma_implementation): Use alloca to create copy.
12463
12464         * Makefile.in: Update dependencies.
12465
12466 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12467
12468         * cppinit.c (cl_directive_handler): More K&R fixing.
12469
12470 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12471
12472         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12473         STACK_BOUNDARY.
12474         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12475
12476 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12477
12478         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12479         Change from char[] to macros.
12480
12481 2000-03-12  Neil Booth  <NeilB@earthling.net>
12482
12483         * cppinit.c (cpp_start_read): Update indirect function
12484         call to K&R C.
12485
12486 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12487
12488         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12489         entry.
12490
12491         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12492         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12493
12494 2000-03-11  Neil Booth  <NeilB@earthling.net>
12495
12496         * cppinit.c (struct pending option): Replace undef with a
12497         pointer to a directive handling routine.
12498         (struct cpp_pending): Replace separate assert_ and define_
12499         lists with one directive_ list.
12500         (new_pending_define): Rename new_pending_directive. Extra
12501         argument is the directive's handling routine.
12502         (handle_option): Update to use new_pending_directive.
12503
12504 2000-03-11  Neil Booth  <NeilB@earthling.net>
12505
12506         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12507         remap_filename, _cpp_read_include_file, actual_directory,
12508         hack_vms_include_specification): Replace bcopy(), index() etc
12509         calls.  Add casts to some allocations.  Make some variables
12510         pointers to const [unsigned] char.
12511         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12512         collect_formal_parameters): Similarly.
12513         * cppinit.c (struct pending_option, append_include_chain,
12514         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12515         cpp_start_read, new_pending_define, handle_option): Similarly.
12516         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12517         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12518         do_pragma_implementation, detect_if_not_defined,
12519         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12520         do_assert, do_unassert): Similarly.
12521         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12522         function prototypes.
12523         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12524
12525 2000-03-10  Richard Henderson  <rth@cygnus.com>
12526
12527         * builtins.c (expand_builtin_strlen): Revert last change.
12528         Use emit_insn_before if we're at the beginning of a sequence.
12529
12530 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12531
12532         * builtins.c (expand_builtin_strlen): Make sure that we have something
12533         at the beginning of the sequence.
12534
12535         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12536         deferred inlines.
12537
12538         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12539
12540 2000-03-10  Richard Henderson  <rth@cygnus.com>
12541
12542         * except.c (can_throw): Use INTVAL on a CONST_INT.
12543         (reachable_handlers): Likewise.
12544         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12545
12546 2000-03-10  Andreas Jaeger  <aj@suse.de>
12547
12548         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12549         MD_STARTFILE_PREFIX since those are not needed on linux.
12550         (ASM_FILE_START): New, from mips/gnu.h.
12551
12552 2000-03-09  Richard Henderson  <rth@cygnus.com>
12553             Alex Samuel  <samuel@codesourcery.com> and others
12554
12555         * Makefile.in (ssa.o): New rule.
12556         (OBJS): Add ssa.o.
12557         (STAGESTUFF): Add *.ssa and *.ussa.
12558         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12559         * rtl.def (PHI): New RTL expression.
12560         * rtl.h (clear_log_links): New declaration.
12561         (convert_to_ssa): Likewise.
12562         (convert_from_ssa): Likewise.
12563         * flow.c (split_edge): If the entry node falls through to the
12564         split edge's source block, split the entry edge.
12565         (clear_log_links): New function.
12566         * toplev.c (ssa_dump): New variable.
12567         (flag_ssa): Likewise.
12568         (f_options): Add "ssa".
12569         (compile_file): Create SSA dump files.
12570         (rest_of_compilation): Go to and from SSA if enabled.
12571         (decide_d_option): Handle -de for SSA dump files.
12572         * ssa.c: New file.
12573
12574 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12575
12576         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12577         same as VAR_DECL.
12578
12579 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12580
12581         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12582
12583 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12584
12585         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12586         (MD_STARTFILE_PREFIX_1): New macro.
12587
12588 2000-03-09  Robert Lipe  <robertl@sco.com>
12589
12590         * config/ia64/ia64.c: Include system.h.
12591
12592 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12593
12594         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12595         (init_eh_nesting_info): Likewise.
12596
12597         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12598         (TREE_NOTHROW): Rename from TREE_RAISES.
12599         * toplev.c (rest_of_compilation): Set it.
12600         * print-tree.c (print_node): Adjust.
12601         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12602         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12603         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12604         REG_EH_REGION note as appropriate.
12605         (libfunc_nothrow): New fn.
12606         (emit_library_call, emit_library_call_value): Use it.
12607         (expand_call): Check TREE_NOTHROW.
12608
12609         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12610         DECL_ASSEMBLER_NAME.
12611
12612 2000-03-09  Andreas Jaeger  <aj@suse.de>
12613
12614         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12615         (TARGET_MEM_FUNCTIONS): Define.
12616
12617 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12618
12619         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12620
12621         * except.c (can_throw): See through a SEQUENCE.
12622         (nothrow_function_p): New fn.
12623         * except.h: Declare it.
12624         * function.c (current_function_nothrow): New var.
12625         (prepare_function_start): Initialize it.
12626         * output.h: Declare it.
12627         * toplev.c (rest_of_compilation): Set it.
12628         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12629
12630 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12631
12632         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12633         match.  (cpp_compare_defs): Count the nul separator when
12634         advancing over argument names.
12635
12636 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12637
12638         * recog.c (preprocess_constraints): Matching constraints affect
12639         same alternative/different operand, not same operand/different
12640         alternative.
12641
12642         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12643         register and a constant specially.
12644
12645 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12646
12647         * libgcc2.h: New file.
12648         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12649
12650 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12651
12652         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12653         * configure: Regenerate.
12654         * config/ia64: New.
12655
12656 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12657
12658         * Makefile.in (LIBCPP_DEPS): New macro.
12659         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12660         it to declare deps.
12661         * cpperror.c: Include cpphash.h.
12662         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12663         dingleberry.
12664         (lex): Don't use CPP_WARN_UNDEF.
12665         (_cpp_parse_expr): Return an int, the truth value.
12666         * cppfiles.c: Include cpphash.h.
12667         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12668         * cppinit.c (include_defaults_array): Disentangle.
12669         (cpp_cleanup): Don't free the if stack here.
12670         (cpp_finish): Pop off all buffers, not just one.
12671         * cpplib.c (eval_if_expr): Return int.
12672         (do_xifdef): Rename do_ifdef.
12673         (handle_directive): Don't use CPP_PREPROCESSED.
12674         (cpp_get_token): Don't use CPP_C89.
12675         * fix-header.c: Don't use CPP_OPTIONS.
12676
12677         * cpplib.h: Move U_CHAR, enum node_type, struct
12678         file_name_list, struct ihash, is_idchar, is_idstart,
12679         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12680         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12681         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12682         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12683         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12684         of _cpp_simplify_pathname, _cpp_find_include_file,
12685         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12686         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12687         cppinit.c.
12688         Change all uses of U_CHAR to be unsigned char instead.
12689         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12690
12691 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12692
12693         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12694         (dwarf2out_begin_prologue): Set it.
12695         (output_call_frame_info): Don't emit EH unwind info for leaves.
12696
12697         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12698         can occur outside of an EH region.
12699         * except.c: Correct comments about rethrow behavior.
12700         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12701
12702 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12703
12704         * flow.c (make_edges): Always call make_eh_edge for calls.
12705
12706 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12707
12708         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12709         (struct cpp_buffer): Remove fname and underflow fields.
12710         (struct cpp_reader): Remove get_token field.
12711         (struct include_hash): Rename to struct ihash.  Add typedef to
12712         IHASH.
12713         (struct if_stack): Remove fname field.
12714         (IF_STACK_FRAME): Rename to IF_STACK.
12715
12716         * cpperror.c (print_containing_files): Trust that there are no
12717         macro buffers below the top file buffer.
12718         * cppfiles.c: Replace all references to 'struct include_hash'
12719         with 'IHASH'.  Rename initialize_input_buffer to
12720         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12721         use buffer->ihash->name instead.
12722         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12723         not CPP_NULL_BUFFER.
12724         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12725         IF_STACK_FRAME, IHASH not struct include_hash.
12726         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12727         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12728         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12729         references to cpp_buffer->fname (delete entirely, or use
12730         ->ihash->name instead) and IF_STACK->fname.
12731         (cpp_push_buffer): Don't set new->underflow.
12732         (do_include): Use cpp_file_buffer.
12733
12734         * cpphash.c (collect_formal_parameters): Remove duplicate
12735         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12736         used as a macro argument name.  Don't append "..." to namebuf
12737         for varargs macros.  After we're done scanning, go through
12738         namebuf and make it NUL separated, not comma separated.
12739         (_cpp_compare_defs): Remove register tag from variables.
12740         Expect defn->argnames to be NUL separated.
12741         (_cpp_dump_definition): Expect defn->argnames to be NUL
12742         separated and in forward order.
12743         * cpphash.h: Update documentation of argnames field.
12744
12745 2000-03-08  Richard Henderson  <rth@cygnus.com>
12746
12747         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
12748         to fail.  Don't pre-expand the source operand.
12749
12750         * i386.md (strlensi): Initialize eoschar and align before use.
12751
12752 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12753
12754         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
12755         CONSTRUCTOR element.
12756
12757 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12758
12759         * mips.c (mips_expand_prologue): If the last
12760         named argument is the vararg marker "va_list", treat it as
12761         an unnamed argument.
12762
12763 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
12764
12765         * dbxout.c (dbxout_parms): When correcting for promoted
12766         big-endian parameters, use the mode of the DECL_RTL rather
12767         than UNITS_PER_WORD.
12768
12769 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
12770
12771         * c-common.h (make_fname_decl): Declare.
12772         * c-common.c (make_fname_decl): Define.
12773         (declare_hidden_char_array): Remove.
12774         (declare_function_name): Use make_fname_decl.
12775         * c-decl.c (c_make_fname_decl): New function.
12776         (init_decl_processing): Set make_fname_decl.
12777
12778 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
12779
12780         * cccp.c (handle_directive): Initialize backslash_newlines_p.
12781
12782 2000-03-07  Philipp Thomas  <pthomas@suse.de>
12783
12784         * po/POTFILES.in: Remove cppalloc.c from file list.
12785
12786 2000-03-07  Steve Chamberlain  <sac@pobox.com>
12787
12788         * pj.c (pj_expand_prologue): current_function->args_info is
12789         now current_function_args_info.
12790
12791         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
12792         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
12793         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
12794
12795 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12796
12797         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
12798         output as hexadecimal rather than the default octal.
12799
12800 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12801
12802         * cpphash.c (special_symbol): Fix thinko in previous commit.
12803
12804 2000-03-07  Neil Booth  <NeilB@earthling.net>
12805
12806         * cppexp.c (struct operation, left_shift, right_shift,
12807         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
12808         "int"s to "unsigned int"s.
12809         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
12810         Similarly.
12811         * cpplib.h: Update for above.
12812         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
12813         returned from allocations.
12814
12815         * cppinit.c (opt_comp, parse_options): New functions.
12816         (handle_option): Use parse_option to parse a single command
12817         line option, that possibly takes an argument.
12818         (cpp_handle_options): Sort the array of command line options on
12819         first invocation (non-ASCII hosts only).
12820         (print_help): Update.
12821
12822 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12823
12824         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
12825         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
12826
12827         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
12828         initialized.
12829         * cppinit.c (cpp_cleanup): Free imp->nshort also.
12830
12831         * cpperror.c (cpp_print_containing_files,
12832         cpp_print_file_and_line, v_cpp_message): Rename to
12833         print_containing_files, print_file_and_line, and v_message.
12834         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
12835         to _cpp_parse_expr, parse_escape, and lex.
12836         (parse_charconst): Remove broken multibyte support.
12837         * cppfiles.c (include_hash): Make static.
12838         (cpp_included): New function.
12839         (merge_include_chains, find_include_file, finclude,
12840         simplify_pathname): Rename to _cpp_merge_include_chains,
12841         _cpp_find_include_file, _cpp_read_include_file, and
12842         _cpp_simplify_pathname.
12843         * cpphash.c (cpp_lookup, free_definition, delete_macro,
12844         cpp_install, create_definition, macroexpand, compare_defs,
12845         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
12846         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
12847         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
12848         * cppinit.c (cpp_handle_option): Rename to handle_option, make
12849         static.
12850         * cpplib.c: Remove extern prototype of cpp_parse_expr.
12851
12852         * cpphash.h: Update prototypes.
12853         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
12854
12855 2000-03-07  Andrew Haley  <aph@cygnus.com>
12856
12857         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
12858         PTRDIFF_TYPE should be based solely on Pmode.
12859         (SIZE_TYPE): ditto.
12860
12861 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12862
12863         * rtl.h (rtunion_def): Constify member `rtstr'.
12864         (emit_line_note_after, emit_line_note, emit_line_note_force,
12865         emit_note, decode_asm_operands): Constify.
12866
12867         * cse.c (canon_hash): Likewise.
12868
12869         * dbxout.c (dbxout_block): Likewise.
12870
12871         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
12872         v_warning_for_asm): Likewise.
12873
12874         * dwarfout.c (function_start_label): Likewise.
12875
12876         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
12877         emit_line_note_force): Likewise.
12878
12879         * final.c (last_filename, asm_insn_count, final_scan_insn,
12880         output_source_line): Likewise.
12881
12882         * function.h (struct emit_status): Likewise.
12883
12884         * gcse.c (hash_expr_1): Likewise.
12885
12886         * genattr.c (gen_attr, main): Likewise.
12887
12888         * genattrtab.c (struct function_unit, current_alternative_string,
12889         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
12890         attr_numeral, check_attr_test, check_attr_value,
12891         convert_set_attr_alternative, convert_set_attr,
12892         compute_alternative_mask, simplify_by_exploding, gen_attr,
12893         gen_unit): Likewise.
12894
12895         * genflags.c (gen_insn): Likewise.
12896
12897         * gengenrtl.c (type_from_format): Likewise.
12898
12899         * genopinit.c (gen_insn): Likewise.
12900
12901         * genoutput.c (n_occurrences, process_template, process_template):
12902         Likewise.
12903
12904         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12905         Likewise.
12906
12907         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12908         Likewise.
12909
12910         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
12911         ggc_set_mark, ggc_get_size): Likewise.
12912
12913         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
12914
12915         * optabs.c (init_one_libfunc): Likewise.
12916
12917         * output.h (assemble_start_function): Likewise.
12918
12919         * recog.c (decode_asm_operands): Likewise.
12920
12921         * toplev.c (rest_of_compilation): Likewise.
12922
12923         * tree.h (emit_line_note_after, emit_line_note,
12924         emit_line_note_force): Likewise.
12925
12926         * varasm.c (asm_output_bss, asm_output_aligned_bss,
12927         asm_emit_uninitialised, assemble_start_function,
12928         assemble_variable, const_hash, compare_constant_1,
12929         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
12930
12931         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
12932
12933         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
12934
12935         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
12936
12937         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
12938
12939         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
12940         arm_dllimport_name_p): Likewise.
12941
12942         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
12943         Likewise.
12944
12945         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
12946
12947         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12948
12949         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
12950         arm_mark_dllexport, arm_mark_dllimport,
12951         arm_pe_encode_section_info): Likewise.
12952
12953         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
12954         ASM_FINISH_DECLARE_OBJECT): Likewise.
12955
12956         * arm/thumb.c (thumb_function_prologue): Likewise.
12957
12958         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
12959
12960         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12961
12962         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
12963
12964         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
12965
12966         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12967
12968         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12969
12970         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
12971         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
12972
12973         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
12974
12975         * i386/i386.c (asm_output_function_prefix): Likewise.
12976
12977         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
12978
12979         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12980
12981         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
12982
12983         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
12984         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
12985         ASM_OUTPUT_SECTION_NAME): Likewise.
12986
12987         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
12988
12989         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
12990
12991         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
12992
12993         * m32r/m32r.c (m32r_encode_section_info): Likewise.
12994
12995         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12996
12997         * mcore/mcore.c (mcore_encode_section_info): Likewise.
12998
12999         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13000
13001         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13002
13003         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13004
13005         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
13006
13007         * mips/mips.md (movdi, movsi): Likewise.
13008
13009         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13010
13011         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13012
13013         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13014
13015         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
13016         ASM_OUTPUT_ASCII): Likewise.
13017
13018         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
13019         output_mi_thunk, output_toc): Likewise.
13020
13021         * rs6000/rs6000.md (movsi): Likewise.
13022
13023         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
13024
13025         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
13026
13027         * v850/v850.c (print_operand, print_operand_address,
13028         v850_encode_data_area): Likewise.
13029
13030 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
13031
13032         * config/mips/mips.md (zero_extendsidi2): Always force operand
13033         one to memory for mips16.
13034
13035 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13036
13037         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
13038         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
13039         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
13040         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
13041         (min_precision): Result is unsigned.
13042         (add_double, neg_double, mul_double): Low word is unsigned.
13043         (lshift_double, rshift_double, lrotate_double): Likewise.
13044         (rrotate_double, div_and_round_double): Likewise.
13045         (tree_floor_log2, compare_tree_int): New functions.
13046         (preserve_rtl_expr_temps): New declaration.
13047         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
13048         (decl_attributes): Use tree_log2 to find alignment.
13049         Check for TREE_INT_CST_HIGH for format args.
13050         (min_precision): Now unsigned.
13051         Use tree_floor_log2.
13052         (truthvalue_conversion): Delete long-disabled code.
13053         * c-decl.c (finish_struct): Clean up tests on field width.
13054         (finish_function): Use compare_tree_int.
13055         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
13056         * c-typeck.c (comptypes): Use tree_int_cst_equal.
13057         (default_conversion, digest_init): Use compare_tree_int.
13058         (build_binary_op): Use integer_all_onesp and compare_tree_int.
13059         Fix type errors in forming masks.
13060         * calls.c (initialize_argument_information): Use compare_tree_int.
13061         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13062         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
13063         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
13064         (store_field): Use compare_tree_int.
13065         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
13066         (expand_expr, case ARRAY_REF): Use compare_tree_int.
13067         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
13068         (do_store_flag): Use compare_tree_int.
13069         * fold-const.c (encode, decode): Low part is always unsigned.
13070         (force_fit_type, add_double, neg_double, mul_double): Likewise.
13071         (lshift_double, rshift_double, lrotate_double): Likewise.
13072         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
13073         (fold_convert): Use compare_tree_int.
13074         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
13075         (invert_truthvalue, case INTEGER_CST): Likewise.
13076         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
13077         * mkdeps.c (deps_dummy_targets): Make I unsigned.
13078         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
13079         (lshift_double, rshift_double, lrotate_double, rrotate_double):
13080         Likewise.
13081         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
13082         (expand_end_case): Use compare_tree_int.
13083         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13084         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
13085         (layout_decl): Likewise.
13086         (layout_record, layout_union): Make sizes unsigned.
13087         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
13088         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
13089         * tree.c (struct type_hash): hashcode is unsigned.
13090         (build_type_attribute_variant, type_hash_list): Likewise.
13091         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
13092         (attribute_hash_list, build_array_type, build_method_type): Likewise.
13093         (build_complex_type): Likewise.
13094         (real_value_from_int_cst): Remove unneeded casts.
13095         (integer_all_onesp): Add casts.
13096         (tree_floor_log2, compare_tree_int): New functions.
13097         (build_index_type): Use tree_int_cst_sgn.
13098         * varasm.c (assemble_variable): Use compare_tree_int.
13099
13100 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
13101
13102         * cpphash.c (collect_expansion): Also catch ## at start of macro.
13103
13104         * varasm.c (make_decl_rtl): Don't add a number to members of
13105         local classes.
13106         (make_function_rtl): Likewise.
13107
13108 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13109
13110         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
13111         patch from 2000-01-28.
13112
13113 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
13114
13115         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
13116         filled with an insn from the jump target.
13117
13118 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13119
13120         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
13121         (c4x_external_ref): Likewise.
13122         * config/c4x/c4x.c (struct name_list): Likewise.
13123
13124 1999-12-16  Ben Collins  <bcollins@debian.org>
13125
13126         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
13127         argument to genmultilib.
13128         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
13129         the contents into the multilib.h header.
13130         * gcc.c: Declare multilib_exclusions for the specs file.
13131         (set_multilib_dir): Use it.
13132         (print_multilib_info): Likewise.
13133         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
13134         to pass to genmultilib.
13135
13136 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13137
13138         * builtins.c (built_in_class_names, built_in_names): Constify a
13139         char*.
13140
13141         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
13142         int.
13143         (_mcleanup): Ensure value matches format specifier in sprintf.
13144
13145         * cpphash.c (special_symbol): Don't needlessly cast away
13146         const-ness.
13147
13148         * cppinit.c (base_name): Delete unused prototype.
13149
13150         * mkdeps.c (deps_init): Make definition K&R safe.
13151
13152         * tree.h (built_in_class_names, built_in_names): Constify a
13153         char*.
13154
13155 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13156
13157         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13158         floating point instructions for epilogue delay.
13159
13160         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13161         to gas if it supports .register pseudo.
13162
13163         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13164         LONG_DOUBLE_TYPE_SIZE if not defined.
13165         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13166         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13167         * real.c: Likewise.
13168         * gengenrtl.c: Likewise.
13169         * print-rtl.c: Likewise.
13170         * rtl.c: Likewise.
13171         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13172         MASK_LONG_DOUBLE_128.
13173         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13174         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13175         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13176         (SUBTARGET_SWITCHES): Define.
13177         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13178         with -mlong-double-128.
13179         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13180         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13181         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13182         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13183         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13184         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13185         with -mlong-double-128.
13186         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13187         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13188         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13189         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13190         TARGET_LONG_DOUBLE_128): Define.
13191         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13192         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13193         long double on TARGET_ARCH64.
13194
13195 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13196
13197         * function.c (free_temps_for_rtl_expr): Don't free slots
13198         that have been pushed into a higher level.
13199
13200         Revert this patch:
13201         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13202
13203 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13204
13205         * basic-block.h (ALLOCA_REG_SET): Remove.
13206         (INITIALIZE_REG_SET): New macro.
13207         * flow.c (update_life_info): Use it.
13208         (calculate_global_regs_live): Likewise.
13209         (propagate_block): Likewise.
13210         * global.c (build_insn_chain): Likewise.
13211         * haifa-sched.c (schedule_region): Likewise.
13212
13213 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13214
13215         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13216         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13217         (DWARF_ARANGES_PAD_SIZE): New define.
13218         (output_aranges): Use it to pad the address range header.
13219         (DWARF_ROUND): Fix for non power of 2 rounding.
13220
13221 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13222
13223         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13224
13225 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13226
13227         * tree.def (RTL_EXPR): Update documentation.
13228         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13229         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13230         * function.c (preserve_rtl_expr_temp): New function.
13231         (preserve_rtl_expr_temps): Likewise.
13232         (preserve_rtl_expr_result): Use it.
13233
13234         Revert this patch:
13235         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13236
13237 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13238
13239         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13240         for unchanging destination.
13241
13242 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13243
13244         * function.h (struct sequence_stack): Remove rtl_expr.
13245         (struct emit_staus): Likewise.
13246         (seq_rtl_expr): Remove.
13247         * tree.h (free_temps_for_rtl_expr): Don't declare.
13248         (start_sequence_for_rtl_expr): Likewise.
13249         * rtl.h (preserve_rtl_expr_result): Likewise.
13250         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13251         (start_sequence_for_rtl_expr): Remove.
13252         (push_topmost_sequence): Don't save sequence_rtl_expr.
13253         (pop_topmost_sequence): Remove comment about not restoring it.
13254         (end_sequence): Don't set seq_rtl_expr.
13255         (init_emit): Don't initialize it.
13256         (mark_sequence_stack): Don't mark it.
13257         (mark_emit_status): Likewise.
13258         * except.c (protect_with_terminate): Use
13259         start_sequence_for_rtl_expr, not start_sequence.
13260         * expr.c (expand_expr, case RTL_EXPR): Don't call
13261         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13262         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13263         (preserve_rtl_expr_result): Remove.
13264         (free_temps_for_rtl_expr): Likewise.
13265         (pop_temp_slots): Likewise.
13266         (mark_temp_slot): Don't mark the rtl_expr.
13267         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13268         start_sequence_for_rtl_expr.
13269
13270 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13271
13272         * mkdeps.c, mkdeps.h: New files.
13273         * po/POTFILES.in: Add them.
13274         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13275         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13276         (mkdeps.o): New target.
13277
13278         * cppfiles.c: Delete deps_output.
13279         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13280         OBJECT_SUFFIX, and base_name.
13281         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13282         the include hash.
13283         (initialize_dependency_output): Use deps_init,
13284         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13285         all the unnecessary string bashing.
13286         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13287         level.
13288         * cpplib.c (do_include): Use deps_add_dep.
13289         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13290         deps_allocated_size, deps_size, deps_column members with
13291         single pointer to a struct deps.  Delete prototype of
13292         deps_output.
13293
13294         * cppinit.c: Fix thinko in previous patch.
13295
13296 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13297
13298         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13299         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13300         (mode_for_size_tree): New function.
13301         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13302         * tree.h (mode_for_size_tree): New declaration.
13303
13304         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13305
13306 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13307
13308         * stmt.c (is_body_block): Move...
13309         * dwarfout.c, dwarf2out.c: ...from here.
13310         * tree.h: Declare it.
13311         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13312         * final.c (final_start_function): Do call remove_unnecessary_notes
13313         when scheduling.
13314
13315 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13316
13317         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13318
13319         * cpplib.h (_dollar_ok): New macro.
13320         (is_idchar, is_idstart): Use it.
13321         (IStable): Rename to _cpp_IStable.  Declare it const if
13322         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13323         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13324         is_space): Update for renamed IStable.
13325
13326         * cppinit.c: Delete all references to FAKE_CONST and CAT
13327         macros. Define init_IStable as empty macro if gcc >=2.7 or
13328         C99. Change TABLE() to ISTABLE and hardcode name of table.
13329         (cpp_start_read): Don't change the IStable based on
13330         dollars_in_ident.
13331
13332         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13333         changed.  Handle '$' for char1 correctly.
13334         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13335
13336         * cppexp.c (tokentab2): Make const.
13337         (cpp_lex): Make toktab const.
13338         * cppinit.c (include_defaults_array): Make const.
13339         (initialize_standard_includes): Make default_include const.
13340
13341 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13342
13343         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13344         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13345         (gen_decl_die): Likewise.
13346         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13347         (output_decl): Likewise.
13348
13349         * varasm.c (make_function_rtl): If we change the name used in the
13350         rtl, update DECL_ASSEMBLER_NAME accordingly.
13351         (make_decl_rtl): Likewise.
13352
13353         * toplev.c (rest_of_compilation): Tweak formatting.
13354
13355         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13356         remove_unnecessary_notes.
13357         (debug_ignore_block): New fn.
13358         * toplev.h: Declare it.
13359         * emit-rtl.c (remove_unncessary_notes): Call it.
13360         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13361         * dwarf2out.h: Declare it.
13362         * final.c (final_start_function): Don't call remove_unnecessary_notes
13363         if we did insn scheduling.
13364
13365 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13366
13367         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13368         * cpplib.h: Delete SET_CPP_PEDANTIC.
13369
13370 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13371
13372         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13373         result is a RECORD_TYPE.
13374
13375 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13376
13377         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13378
13379 2000-03-03  Richard Henderson  <rth@cygnus.com>
13380
13381         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13382         addition over compliments over shifts.
13383
13384 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13385
13386         * reload1.c (reload_combine_note_use): Handle return register USEs.
13387         REG case: Handle multi-hard-register hard regs.
13388
13389 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13390
13391         * md.texi: Document use of '*' in insn pattern name.
13392
13393 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13394
13395         * calls.c (special_function_p): operator new may not be malloc-like.
13396
13397         * gcse.c (dump_hash_table): Really fix error in last change.
13398
13399 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13400
13401         * avr.c (print_operand): Use print_operand_address instead of
13402         output_addr_const.
13403         * avr/libgcc.S: Cleanup code.
13404
13405 2000-03-02  Richard Henderson  <rth@cygnus.com>
13406
13407         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13408
13409 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13410
13411         * tree.h (TYPE_ALIGN_UNIT): New macro.
13412
13413 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13414
13415         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13416
13417 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13418
13419         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13420         for the buffer.
13421         (SET_CPP_PEDANTIC): New macro.
13422         * cpplib.c (do_include): Don't bother checking system_header_p.
13423         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13424         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13425
13426         * function.h (struct expr_status): Add x_arg_space_so_far.
13427         (arg_space_so_far): New macro.
13428         * expr.c (init_expr): Initialize it.
13429         * calls.c (emit_call_1): Reset it.
13430         (compute_argument_block_size, expand_call): Use it.
13431         (expand_call, store_one_arg): Increment it.
13432
13433 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13434
13435         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13436         a UNION_TYPE.
13437
13438 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13439
13440         * cppfiles.c (cpp_read_file): New function.
13441
13442         * cpphash.c (collect_expansion): Make sure to reset last_token
13443         to NORM when we hit a string.  Handle trailing whitespace
13444         properly when the expansion is empty.
13445         (create_definition): Disable line commands while parsing the
13446         directive line.
13447         (dump_definition): If pfile->lineno == 0, output a line
13448         command ahead of the dump, and add a trailing newline.
13449
13450         * cppinit.c (append_include_chain): Add fifth argument, which
13451         indicates whether or not system headers are C++ aware.
13452         (initialize_standard_includes): New function,
13453         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13454         the include_defaults_array on to append_include_chain.
13455         (dump_special_to_buffer): Const-ify char array.
13456         (builtin_array): Don't dump __BASE_FILE__.
13457         (cpp_start_read): Use cpp_read_file.  Reorder code for
13458         clarity.  Don't output line commands here for -D/-A/-U
13459         switches.  Don't call deps_output for files included with
13460         -include or -imacros.
13461
13462         * cpplib.c (do_define): Don't pay any attention to the second
13463         argument.
13464         (cpp_expand_to_buffer): Disable line commands while scanning.
13465         (output_line_command): Work in the file buffer.
13466         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13467         Fix formatting of comments.  Prototype cpp_read_file.
13468
13469 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13470
13471         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13472         reference the language-equivalent of sizetype.
13473         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13474         * fold-const.c (size_binop, size_diffop): Put back checks.
13475         * gcse.c (dump_hash_table): Fix minor error in last change.
13476         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13477         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13478         all sizetypes.
13479
13480 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13481
13482         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13483         with inhibit_defer_pop set.
13484
13485 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13486
13487         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13488         the DECL_SIZE for a FIELD_DECL.
13489
13490 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13491
13492         * fixinc/inclhack.tpl: remove unused symlinks
13493         * fixinc/README: GCC Maintainer info
13494         * fixinc/inclhack.sh: regen
13495         * fixinc/fixincl.sh: regen
13496
13497 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13498
13499         * cpphash.c (collect_expansion): Trim trailing white space
13500         from macro definitions, but don't go past the last insertion
13501         point.
13502
13503 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13504
13505         * i386.md (mulqi3): New pattern.
13506
13507 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13508
13509         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13510         token types.
13511         (struct cpp_reader): Add parsing_if_directive and
13512         parsing_define_directive flags.
13513         (struct cpp_options): Remove output_conditionals flag.
13514         (check_macro_name): Delete prototype.
13515
13516         * cpphash.h (struct macrodef): Delete.
13517         (struct reflist): Separate from struct definition.
13518         (struct definition): Remove unused fields.  Add column number.
13519         (create_definition): Returns a DEFINITION *.  Takes a
13520         cpp_reader * and an int.
13521
13522         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13523         (PEEKC): Copy defn from cpplib.c.
13524         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13525         (struct arg): New.
13526         (struct arglist): Simplify.
13527         (collect_expansion): Rewrite.  Get tokens by calling
13528         cpp_get_token.  Add more error checking.
13529         (collect_formal_parameters): New function, broken out of
13530         create_definition and reworked to use get_directive_token.
13531         (create_definition): All real work is now in collect_expansion
13532         and collect_formal_parameters.  do_define handles finding the
13533         macro name.  Return a DEFINITION, not a MACRODEF.
13534         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13535         character-at-a-time copy loop with memcpy and pointer increments.
13536         (compare-defs): d1->argnames / d2->argnames might be null.
13537
13538         * cpplib.c (copy_rest_of_line): Delete function.
13539         (skip_rest_of_line): Do all the work ourselves.
13540         (skip_string): New function.
13541         (parse_string): Use skip_string.
13542         (get_macro_name): New function.
13543         (check_macro_name): Delete.
13544         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13545         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13546         (handle_directive): ICE if we're called on a macro buffer.
13547         (do_define): Determine macro name and type (funlike/objlike)
13548         here.  Expunge all uses of MACRODEF.
13549         (cpp_push_buffer): Set line_base to NULL.
13550         (do_undef, read_line_number): Don't worry about getting a POP token.
13551         (eval_if_expression): Set/reset parsing_if_directive around
13552         cpp_parse_expr. Don't clear only_seen_white.
13553         (skip_if_group): Remove output_conditionals logic.  Use
13554         skip_rest_of_line.
13555         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13556         tokens under appropriate conditions.
13557         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13558
13559         * cppexp.c (parse_defined): New function, break out of
13560         cpp_lex.
13561         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13562         ourselves, with cpp_defined.
13563         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13564
13565         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13566         * gcc.dg/strpaste-2.c: New.
13567
13568 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13569
13570         * fold-const.c (size_binop): Don't asert inputs are the same and
13571         have TYPE_IS_SIZETYPE set.
13572         (size_diffop): Likewise.
13573
13574 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13575
13576         * dwarfout.c (output_block): Output abstract blocks even if they
13577         don't have TREE_ASM_WRITTEN set.
13578
13579         * calls.c (emit_library_call): Check for null REG.
13580
13581 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13582
13583         * c-decl.c (current_function_decl): Move to toplev.c.
13584         (init_decl_processing): Don't add current_function_decl as a ggc
13585         root here.
13586         * dbxout.c (dbxout_symbol): Change return type to int.
13587         (dbxout_symbol_location, dbxout_syms): Likewise.
13588         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13589         any locals. Use current_function_func_begin_label if set.
13590         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13591         * dwarf2out.c (dwarf2out_begin_prologue): Set
13592         current_function_func_begin_label.
13593         * final.c (final_start_function): Reset it.
13594         * toplev.c (current_function_decl): Define it here.
13595         (current_function_func_begin_label): New variable.
13596         (main): Add both as ggc roots.
13597         * tree.h (current_function_func_begin_label): Declare.
13598
13599 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13600
13601         * gcse.c: Cleanups throughout: mostly white-space, but also
13602         some minor rearrangement of code.
13603
13604 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13605
13606         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13607         returns a PARALLEL.  Use emit_group_load and use_group_regs
13608         as needed.
13609         (emit_library_call_value): Similarly.
13610
13611         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13612         * pa/quadlib.asm: Remove.
13613         * pa/quadlib.c: New file.
13614
13615         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13616         * configure: Rebuilt.
13617
13618 2000-02-29  Philip Blundell  <pb@futuretv.com>
13619
13620         * config/arm/conix-elf.h: New file.
13621         * configure.in (arm*-*-conix*): New configuration.
13622         * configure: Regenerate.
13623
13624 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13625
13626         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13627         don't have TREE_ASM_WRITTEN set.
13628
13629 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13630
13631         * Eliminate DECL_FIELD_SIZE.
13632         * builtins.c (built_in_class_names, built_in_names): New variables.
13633         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13634         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13635         DECL_SIZE, not DECL_FIELD_SIZE.
13636         * print-tree.c (print_node): Remove code that prints extra blank
13637         lines in some cases.
13638         Properly handle inline and builtin function cases.
13639         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13640         * tree.h (built_in_class_named, built_in_names): New declarations.
13641         (union tree_decl): Rename internal unions to u1 and u2 and change
13642         some of their components.
13643         Add new field built_in_class.
13644         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13645         Reflect above changes.
13646         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13647         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13648         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13649         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13650
13651 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13652
13653         * extend.texi: Document ARM's support for long/short calls.
13654
13655         * invoke.texi: Document ARM's -mlong-calls command line switch.
13656
13657         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13658         (arm_encode_call_attribute): Add prototype.
13659         (arm_set_default_type_attribute): Add prototype.
13660         (arm_strip_name_encoding): Add prototype.
13661
13662         * config/arm/arm.c (arm_init_cumulative_args): replace
13663         initialisation og 'long_calls' field with initialisation of
13664         'call_cookie' field.
13665         (enum arm_pragma_enum): New enum.
13666         (arm_pragma_long_calls): New static variable.
13667         (arm_process_pragma): Also process "#pragma long_calls_off".
13668         (arm_valid_type_attribute_p): Accept short_call attribute.
13669         (arm_comp_type_attributes): Check long/short call attributes.
13670         (arm_encode_call_attribute):  New function:  Encode long_call
13671         or short_call attribute in function name.
13672         (arm_set_default_type_attributes): New function: Assign
13673         default attributes to newly defined type.
13674         (current_file_function_operand): New function: Return true if
13675         the symbol is a function which has already been compiled.
13676         (arm_is_longcall_p): New function: Return true if the
13677         indicated function should be called via a long call.
13678         (arm_get_strip_length): New function.  Returns number of
13679         prefix characters to be stripped from a function's name.
13680         (arm_strip_name_encoding): New function.  Strip prefix characters
13681         from a function's name.
13682
13683         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13684         with 'call_cookie'.
13685         (SHORT_CALL_FAG_CHAR): Define.
13686         (LONG_CALL_FAG_CHAR): Define.
13687         (ENCODED_SHORT_CALL_ATTR_P): Define.
13688         (ENCODED_LONG_CALL_ATTR_P): Define.
13689         (ARM_NAME_ENCODING_LENGTHS): Define.
13690         (STRIP_NAME_ENCODING): Define.
13691         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13692         (ARM_ENCODE_CALL_TYPE): Define.
13693         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13694         (ARM_DECLARE_FUNCTION_SIZE): Define.
13695         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13696
13697         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13698         if a long call is needed.
13699         (call_value): Ditto.
13700         (call_symbol): Ditto.
13701
13702         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13703         ARM_DECLARE_FUNCTION_SIZE.
13704
13705         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13706         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13707         (ARM_STRIP_NAME_ENCODING): Undefine.
13708         (STRIP_NAME_ENCODING): Undefine.
13709         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13710         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13711         (ASM_OUTPUT_COMMON): Ditto.
13712         (ASM_DECLARE_OBJECT_NAME): Ditto.
13713
13714         * config/arm/pe.c (arm_dllexport_name_p): Check for
13715         ARM_PE_FLAG_CHAR.
13716         (arm_dllimport_name_p): Ditto.
13717         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13718         (arm_mark_dllimport): Ditto.
13719
13720 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13721
13722         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13723
13724 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13725
13726         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13727
13728 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13729
13730         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13731         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13732         NO_BUILTIN_WCHAR_TYPE is not defined.
13733         (CPP_WCHAR_TYPE): Delete.
13734         * cccp.c (main): Don't change wchar_type if cplusplus.
13735         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13736
13737 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13738
13739         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13740
13741 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13742
13743         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13744         (ASM_WEAKEN_LABEL): Define.
13745
13746 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
13747
13748         * expr.c (store_constructor): Do not emit USE.
13749         * rtl.h (stupid_life_analysis): Remove.
13750
13751 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13752
13753         * function.c (number_blocks): Reset next_block_index based on
13754         what debugging format is used, not what is defined.
13755
13756         * lcm.c: Minor reformatting throughout.
13757         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
13758
13759         * toplev.c (rest_of_compilation): Account for time in
13760         optimize_mode_switching.
13761
13762         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
13763         if only marking labels.
13764
13765 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
13766
13767         * calls.c (expand_call): Attempt to combine stack adjustments with
13768         pending stack adjustments.
13769
13770 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13771
13772         * loop.c (reg_in_basic_block_p): Don't abort when falling through
13773         to the end of the function.
13774
13775 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
13776
13777         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
13778         blocks.
13779         * final.c (next_block_index): Remove.
13780         (max_block_depth): Likewise.
13781         (pending_blocks): Likewise.
13782         (init_final): Don't initialize them.
13783         (final_start_function): Don't set next_block_index.  Set up
13784         BLOCK_NUMBER.
13785         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
13786         * function.h (number_blocks): New function.
13787         * function.c (get_block_vector): New function.
13788         (identify_blocks): Use it.
13789         (reorder_blocks): Set NOTE_BLOCK.
13790         (number_blocks): New function.
13791         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
13792         * tree.h (BLOCK_NUMBER): New macro.
13793         (tree_block): Add block_num field.
13794         * dbxout.c (next_block_number): Remove.
13795         (dbxout_init): Don't set it.
13796         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
13797         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
13798         block numbers.
13799         * toplev.c (rest_of_compilation): Always call
13800         find_loop_tree_blocks.  Fix indentation.
13801         * dwarf2out.c (next_block_number): Remove.
13802         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13803         to determine block numbers.
13804         (gen_inlined_subroutine_die): Likewise.
13805         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
13806         (decls_for_scope): Don't increment next_block_number.
13807         * dwarfout.c (next_block_number): Remove.
13808         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13809         to determine block numbers.
13810         (output_inlined_subroutine_die): Likewise.
13811         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
13812         (output_decls_for_scope): Don't increment next_block_number.
13813         * sdbout.c (next_block_number): Remove.
13814         (sdbout_block): Use BLOCK_NUMBER.
13815         (sdbout_begin_block): Simplify.
13816         * xcoffout.c (next_block_number): Remove.
13817         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
13818         (xcoffout_begin_block): Don't set next_block_number.
13819         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
13820         next_block_number.
13821
13822 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13823
13824         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
13825         (expand_builtin_strcpy): Pass correct type to size_binop.
13826         (expand_builtin_strcmp): Likewise.
13827         Clean up conditional structure.
13828         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
13829         (complete_array_type): Don't use size_binop for MAXINDEX.
13830         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
13831         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
13832         (c_alignof): Use size_one_node.
13833         (build_unary_op): Pass arg of proper type to size_binop.
13834         (really_start_incremental_init, push_init_level): Use sizetype for
13835         constructor{,_bit,_unfilled}_index.
13836         (pop_init_label, output_init_element): Likewise.
13837         (output_pending_init_elements, process_init_element): Likewise.
13838         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
13839         * expr.c (store_expr): Use size_int.
13840         (store_constructor): Use proper types for size_binop args.
13841         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
13842         (expand_expr_unaligned): Likewise.
13843         (string_contant): Return object of sizetype.
13844         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
13845         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
13846         (ARGS_SIZE_TREE): Pass proper types to size_binop.
13847         * fold-const.c (int_const_binop): Refine when size_int is called.
13848         (fold_convert): Likewise.
13849         (size_int_wide): Rework to take KIND as arg, only take low order
13850         bits, handle new sizetype_tab datatype, and chain entries in
13851         size_table.
13852         (size_int_type_wide): New function.
13853         (size_binop): Validate types of arguments.
13854         (ssize_binop): Deleted.
13855         (size_diffop): New function.
13856         (extract_muldiv): Only fold division into multiplication for sizetypes.
13857         * function.c (assign_parms): Use size_diffop and make sure
13858         VAR field is of ssizetype; also pass proper type to size_binop.
13859         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
13860         (round_down): Deleted from here.
13861         * store-layout.c (sizetype_tab): Now an array.
13862         (sizetype_set, early_root_list): New variables.
13863         (variable_size): Use size_one_node.
13864         (round_up): Pass proper type to size_binop.
13865         (round_down): Moved to here and corrected as above.
13866         (layout_record): Pass proper arg types to size_binop.
13867         (layout_type): Likewise.
13868         If sizetype_set is zero, record the type just laid out.
13869         (make_unsigned_type): Don't call set_sizetype;
13870         (make_signed_type): Likewise; also, call fixup_signed_type.
13871         (initialize_sizetypes): New function.
13872         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
13873         set name of bitsizetype to "bit_size_type".
13874         Fix up type of sizes of all types made before call.
13875         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
13876         * tree.c (fix_sizetype): Deleted.
13877         (build_common_tree_nodes): Call initialize_sizetypes.
13878         (build_common_tree_nodes_2): Don't call fix_sizetype.
13879         * tree.h (TYPE_IS_SIZETYPE): New macro.
13880         (initialize_sizetype): New declaration.
13881         (enum size_type_kind): New type.
13882         (struct sizetype_tab): Deleted.
13883         (sizetype_tab): Now array; adjust sizetype macros.
13884         (size_diffop, size_int_type_wide): New functions.
13885         (size_int_wide): Change number of args and type; access macros changed.
13886         (ssize_int, sbitsize_int): New macros.
13887         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
13888         (ROUND_TYPE_SIZE_UNIT): New macro.
13889
13890 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
13891
13892         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
13893
13894 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13895
13896         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
13897         Mark as possibly unused.
13898
13899         * cse.c (cse_insn): Delete dead code involving tablejump.
13900         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
13901
13902         * Makefile.in (libcpp.a): Start by deleting it.
13903
13904 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13905
13906         * cpplib.h (enum file_change_code): Added rename_file.
13907         * cpplib.c (do_line): If a filename is given, set file_change to
13908         rename_file.
13909         (output_line_command): If file_change is rename_file, always
13910         output a # directive with the file name.
13911
13912         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
13913
13914 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
13915
13916         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
13917         when copying a PARM_DECL or RESULT_DECL.
13918
13919 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13920
13921         * fix-header.c (recognized_function): Also fix prototypes for
13922         functions taking "void".
13923
13924 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13925
13926         * reload1.c (do_output_reload): Check reg_reloaded_valid before
13927         looking at reg_reloaded_contents.
13928
13929 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
13930
13931         * Makefile.in (STMP_FIXINC): New toggle.
13932         (LIBGCC2_DEPS): Delete all references.
13933         (stmp-headers): Delete target.  All references either deleted
13934         or changed to stmp-int-headers.
13935         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
13936         (LIBCPP_OBJS): Take out cppalloc.o.
13937         (cppalloc.o): Delete target.
13938         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
13939         (gen-protos, fix-header): Link with libiberty.a.
13940         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
13941         to empty.
13942
13943         * configure.in: Remove refs to strerror.
13944         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
13945         * system.h: Take out strerror stanza.
13946
13947         * cpperror.c (my_strerror): Delete function.
13948         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
13949         * cppmain.c (main): Call xmalloc_set_program_name first thing.
13950         * cppalloc.c: Delete file.
13951         * gen-protos.c: Don't provide xrealloc.
13952
13953         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
13954         xstrerror throughout.
13955
13956 2000-02-26  Bruce Korb  <bkorb@gnu.org>
13957
13958         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
13959         match for DOS headers, too.
13960         * fixinc/inclhack.sh,fixincl.x: Regenerate.
13961
13962 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13963
13964         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
13965         is right for most ELF targets.
13966         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
13967         Let the default file use %U properly.
13968         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
13969         default.
13970
13971         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
13972         numbers.
13973
13974 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13975
13976         * toplev.c (documented_lang_options): Correct spelling error.
13977         (decode_d_option, decode_f_option, main): Likewise.
13978
13979         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
13980
13981         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
13982         to tell assembler it is permitted to expand large constants.
13983
13984 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
13985
13986         * protoize.c: (AUX_INFO_SUFFIX): New macro.
13987         (aux_info_suffix): Use.
13988         (SAVE_SUFFIX): New macro.
13989         (save_suffix): Use.
13990         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
13991         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
13992         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
13993
13994         * invoke.texi (Running Protoize): Update documentation.
13995
13996 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
13997
13998         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
13999
14000 2000-02-25  John Wehle  (john@feith.com)
14001
14002         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
14003
14004 2000-02-25  Anthony Green  <green@cygnus.com>
14005
14006         * toplev.c (rest_of_compilation): Rebuild jump labels if
14007         combine_instructions has created a new direct jump.
14008         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
14009         when appropriate.
14010         (combine_instructions): Call try_combine with new argument.
14011         Return non-null value when new direct jump instruction is created.
14012         * rtl.h: combine_instructions returns an int.
14013
14014 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
14015
14016         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
14017         jump when changing a computed jump into a jump to a known
14018         target.
14019
14020 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
14021
14022         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
14023         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
14024
14025         * i386.md (define_expand "clrstrsi"): Fix typo.
14026
14027 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
14028
14029         * rtl.texi: Fix typo.
14030
14031 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14032
14033         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
14034         UNITS_PER_WORD.  Change caller initial_elimination_offset.
14035         (rounded_frame_size): Take into account that argument pushed has
14036         changed.  Fix TARGET_ALIGN_DOUBLE problem.
14037
14038 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
14039
14040         * haifa-sched.c (schedule_block): Explain the real reason
14041         we delete REG_SAVE_NOTEs on the first insn of a block.
14042         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
14043
14044 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
14045
14046         * input.h (push_srcloc): New function.
14047         (pop_srcloc): Likewise.
14048         * toplev.c (push_srcloc): Define it.
14049         (pop_srcloc): Likewise.
14050
14051 2000-02-24  Richard Henderson  <rth@cygnus.com>
14052
14053         * flow.c (life_analysis): When collecting reg info, clear
14054         regs_ever_live.
14055
14056 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14057
14058         Fix bug exposed by reload.c no longer rounding the frame
14059         size to BIGGEST_ALIGNMENT:
14060         * sh.c (rounded_frame_size): New function.
14061         (sh_expand_prologue, sh_expand_epilogue): Use it.
14062         (initial_elimination_offset): Likewise.
14063
14064 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14065
14066         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
14067         * sh-protos.h (sh_need_epilogue): Declare.
14068         * sh.c (sh_need_epilogue_known): New static variable.
14069         (sh_need_epilogue): New function.
14070         (function_epilogue): Clear need_epilogue_known.
14071         * sh.md (return): Split into expander / insn pattern.
14072         Make the expander conditional on ! sh_need_epilogue ().
14073
14074 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
14075
14076         * machmode.h (get_mode_alignment): Declare.
14077         (GET_MODE_ALIGNMENT): Call it.
14078         * stor-layout.c (get_mode_alignment): New function. Make
14079         sure alignment is always power of 2.
14080
14081 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14082
14083         * i386.h: Remove useless definition of "I386" and misleading
14084         comment above it.
14085
14086 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14087
14088         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
14089         under which TREE_PERMANENT will be set.
14090         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
14091         build1): Use TREE_SET_PERMANENT.
14092         * print-tree.c (print_node): Don't report value of
14093         TREE_PERMANENT if ggc_p is true.
14094
14095         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
14096         decide whether to give a type a new alias set.
14097         * objc/objc-act.c (build_objc_string_object): Never copy the string.
14098         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
14099         of value of 'obstack'.
14100
14101
14102 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14103
14104         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
14105
14106 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14107
14108         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
14109         * cpplib.c (cpp_get_token): Produce them.
14110         * cppexp.c (cpp_lex): Handle them.
14111
14112 2000-02-23  Nick Clifton  <nickc@cygnus.com>
14113
14114         * config/arm/arm.c (arm_comp_type_attributes): Simply and
14115         comment tests on type attributes.
14116
14117 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14118
14119         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
14120         conform to documentation.
14121         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
14122         to check for special cases.
14123         * sh-protos.h (sh_loop_align): Declare.
14124         * sh.c (sh_loop_align): Define.
14125
14126 2000-02-22  Andrew Haley  <aph@cygnus.com>
14127
14128         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
14129         (SIZE_TYPE): Is 32 bits when using -mgp32.
14130         (PTRDIFF_TYPE): Ditto.
14131
14132 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14133
14134         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
14135
14136 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14137
14138         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
14139         BIGGEST_FIELD_ALIGNMENT a constant.
14140
14141 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
14142
14143         * dwarf2out.c (output_line_info): Put the marker for the end of
14144         the line number info at the actual end.
14145         (gen_struct_or_union_type_die): Use decl_function_context
14146         to check for local classes.
14147         * dwarfout.c (output_type): Likewise.
14148
14149 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
14150
14151         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
14152         for arguments with a mode, but no type.
14153         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14154         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14155         * pa/long_double.h: New file.
14156         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14157         both have 128bit wide long doubles.
14158         * configure: Rebuilt.
14159
14160 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14161
14162         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14163
14164         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14165         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14166         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14167
14168         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14169
14170         * integrate.c (compare_blocks, find_block): Likewise.
14171
14172         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14173
14174         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14175
14176         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14177         expand_asm_operands): Likewise.
14178
14179 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14180
14181         * predict.c (estimate_probability): Added the pointer heuristic to
14182         the collection of static branch predictors.
14183
14184 2000-02-21  Catherine Moore  <clm@cygnus.com>
14185
14186         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14187         * invoke.texi (-mfix7000): Document.
14188
14189 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14190
14191         * diagnostic.c (init_output_buffer): Make it possible to output at
14192         least 32 characters if we're given a too long prefix.
14193
14194 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14195
14196         * varasm.c (initializer_constant_valid_p): Call
14197         lang_expand_constant to simplify the constant.
14198
14199 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14200
14201         * fixinc/inclhack.def(stdio_va_list):
14202         typedef needs to be disabled.
14203         * fixinc/inclhack.sh: regen
14204         * fixinc/fixincl.x: regen
14205
14206 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14207
14208         * print-rtl.c (print_rtx): Don't print addresses when
14209         flag_dump_unnumbered.
14210
14211 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14212
14213         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14214         ATTRIBUTE_UNUSED.
14215         (sparc_va_arg, sparc_flat_output_function_prologue,
14216         sparc_flat_output_function_epilogue): Cast value to unsigned in
14217         comparison.
14218         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14219
14220         * sparc.md: Add default case in switch.
14221
14222 2000-02-19  Richard Henderson  <rth@cygnus.com>
14223
14224         * c-typeck.c (add_pending_init): Don't abort for multiple
14225         fields at the same offset.
14226         (pending_init_member): Test the correct member.
14227
14228 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14229
14230         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14231         instead of SImode.
14232         (start_catch_handler) : Same.
14233
14234 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14235
14236         * Makefile.in: Have flow.o depend on $(EXPR_H)
14237
14238 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14239
14240         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14241         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14242         (finish_decl): Remove -Wlarger-than code from here.
14243         * flags.h (id_clash_len): Now int.
14244         (larger_than_size): Now HOST_WIDE_INT.
14245         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14246         Clean up checking to see if in table.
14247         (make_bit_field_ref): Remove extra parm to bitsize_int.
14248         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14249         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14250         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14251         and for computing size of decl.
14252         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14253         Move -Wlarger-than code to here.
14254         (layout_record): Remove extra arg to bitsize_int.
14255         Set TYPE_BINFO_SIZE_UNIT.
14256         (layout_union): Remove extra arg to bitsize_int.
14257         Use proper type for size of QUAL_UNION.
14258         (layout_type): Remove extra arg to bitsize_int.
14259         * toplev.c (id_clash_len): Now int.
14260         (larger_than_size): Now HOST_WIDE_INT.
14261         (decode_W_option): Clean up id-clash and larger-than- cases.
14262         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14263         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14264         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14265         (struct tree_decl): New field size_unit.
14266         (size_int_wide): No HIGH operand; NUMBER is now signed.
14267         (size_int_2): Deleted.
14268         (size_int, bitsize_int): Don't use it and rework args.
14269         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14270
14271 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14272
14273         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14274
14275 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14276
14277         * invoke.texi (Warning Options): Add an explanation of why
14278         you might want the -Wfloat-equal flag.
14279
14280 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14281
14282         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14283         * cppinit.c (new_pending_define): Add cast to avoid warning.
14284         * expmed.c (extract_bit_field): Likewise.
14285         * flow.c (enum reorder_skip_type): New type.
14286         (skip_insns_between_blcok): New it.
14287         Rework to avoid warning about possibly undefined variable.
14288         * function.c (assign_parms): Make thisparm_boundary unsigned.
14289         * genrecog.c (write_switch): Cast XWINT result to int.
14290         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14291         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14292         one for MIPS and one for Alpha.
14293         (get_tag, copy_object): Add casts to avoid warnings.
14294         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14295         * reload.c (find_reloads): Make TYPE enum reload_type.
14296         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14297         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14298         * varasm.c (compare_constant_1): Add cast to avoid warning.
14299         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14300         to (char *).
14301         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14302         Cast switch operand of size to int.
14303         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14304         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14305         in unhandled case.
14306
14307 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14308
14309         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14310         anything for an alignment of zero.
14311
14312         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14313         anything for an alignment of zero.
14314
14315 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14316
14317         * gcc.texi (Bug Reporting): Refer to bugs.html.
14318         (Bug Lists): Likewise.
14319         * system.h (GCCBUGURL): New preprocessor define.
14320         * rtl.c (fancy_abort): Use it.
14321         * gcc.c (main): Likewise.
14322
14323 2000-02-18  Richard Henderson  <rth@cygnus.com>
14324
14325         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14326         (life_analysis_1): Subsume into ...
14327         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14328         Use update_life_info for the relaxation.
14329         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14330         entry and regs_live_at_setjmp.
14331         (set_noop_p): Simplify.
14332         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14333         (record_volatile_insns): Split into ...
14334         (delete_noop_moves): ... here,
14335         (notice_stack_pointer_modification): ... here,
14336         (insn_dead_p): ... and here.
14337         (propagate_block): Don't query INSN_VOLATILE.
14338         (mark_used_regs): Mind !PROP_REG_INFO.
14339         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14340         not in life_analysis.
14341
14342 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14343
14344         * loop.c (canonicalize_condition): New function,
14345         broken out of get_condition.
14346         (get_condition): Use it.
14347         * expr.h (canonicalize_condition): Prototype it.
14348
14349         * tree.h (tree_int_cst_msb): Declare.
14350         * tree.c (tree_int_cst_msb): New function.
14351
14352 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14353
14354         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14355         isn't set.
14356
14357         * invoke.texi (-fmessage-length=n): Document.
14358
14359 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14360
14361         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14362
14363 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14364
14365         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14366         after the prologue.
14367
14368 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14369
14370         * config/arm/thumb.c: Replace includes of system headers with
14371         #include "system.h".
14372
14373 2000-02-16  Richard Henderson  <rth@cygnus.com>
14374
14375         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14376         Add crtbeginS.o and crtendS.o.
14377         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14378         (ENDFILE_SPEC): Use crtendS.o.
14379         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14380
14381         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14382         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14383         shared and present.
14384         (__dso_handle): New variable.
14385         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14386         bias to __CTOR_END__.
14387
14388 2000-02-16  Richard Henderson  <rth@cygnus.com>
14389
14390         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14391
14392 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14393
14394         * longlong.h (__clz_tab): Declare as static to match definition.
14395
14396 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14397
14398         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14399         (XREF_FILE_NAME): Define.
14400
14401         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14402         (EH_FRAME_SECTION_ASM_OP): Define.
14403         (IDENT_ASM_OP): Define.
14404         (TEXT_SECTION_ASM_OP): Define.
14405         (CPP_SPEC): Define.
14406         (CTORS_SECTION_ASM_OP): Define.
14407         (CTOR_SECTION_FUNCTION): Use it.
14408         (DTORS_SECTION_ASM_OP): Define.
14409         (DTOR_SECTION_FUNCTION): Use it.
14410
14411 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14412
14413         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14414         NOTE_BASIC_BLOCK.
14415
14416         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14417         debug_bb_n): New functions.
14418         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14419         * basic-block.h: Prototype new functions.
14420
14421 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14422
14423         * configure.in: Add support for avr target.
14424         * configure: Rebuilt.
14425
14426         * invoke.texi: Add AVR invocation docs.
14427         * install.texi: Add information about AVR.
14428         * md.texi: Add AVR constraint letters description.
14429         * extend.texi: Add description for AVR specific attributes.
14430
14431 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14432
14433         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14434
14435 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14436
14437         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14438         (make_insn_raw): Move RTL check here.
14439
14440 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14441
14442         * version.c: Include gansidecl.h and version.h.
14443
14444         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14445
14446         * configure.in (gcc_version): When setting, narrow search to
14447         lines containing `version_string'.
14448
14449         * Makefile.in (mainversion): Likewise.
14450         (GCC_H): New variable.
14451         (gcc.h): Delete target.
14452         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14453         (version.o): Depend on version.h.
14454         (dbxout.o): Don't depend on gcc.h.
14455
14456 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14457                           Michael Meissner  <meissner@cygnus.com>
14458
14459         * md.texi (Simple Constraints): Add item about whitespace.
14460         * genoutput.c (strip_whitespace): New.
14461         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14462         strip_whitespace for constraints.
14463         Test pointer using NULL, not 0.
14464
14465 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14466
14467         * cpplib.c (do_line): Pedwarn for #line > 32767.
14468
14469         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14470
14471 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14472
14473         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14474         to default cpp spec.
14475         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14476         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14477         * cpp.1: Likewise.
14478
14479         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14480         default spec.
14481
14482 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14483
14484         * configure.in: Add support for avr target.
14485
14486 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14487
14488         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14489         (sh_addr_diff_vec_mode): Don't declare.
14490         * sh.c (sh_addr_diff_vec_mode): Delete.
14491
14492 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14493
14494         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14495
14496 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14497
14498         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14499         (smulsi3_highpart_i): Name.
14500         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14501         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14502         (smulsi3_highpart, umulsi3_highpart): Likewise.
14503
14504         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14505         correctly independent of endianness.
14506         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14507         confuse the optimizers.
14508         (mulsidi3+1, umulsidi3+1): New define_split.
14509
14510 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14511
14512         * config/sh/sh.md: Guard insn splits against illegal registers.
14513         * config/sh/sh.h: Correct comment about macros.
14514
14515 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14516                           Andrew MacLeod  <amacleod@cygnus.com>
14517
14518         * Makefile.in (lcm.o): Depend on insn-attr.h.
14519         * basic-block.h (optimize_mode_switching): Declare.
14520         * lcm.c (tm_p.h, insn-attr.h): #include.
14521         (seginfo, bb_info): New structs.
14522         (antic, transp, comp, delete, insert) : New file-scope static variables.
14523         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14524         (reg_becomes_live, optimize_mode_switching): Likewise.
14525         * tm.texi: Add description of mode switching macros.
14526         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14527
14528         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14529         (fldi_ok, fpscr_set_from_mem): New prototypes.
14530         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14531         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14532         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14533         (sh_flag_remove_dead_before_cse): Remove declaration.
14534         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14535         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14536         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14537         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14538         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14539         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14540         (fldi_ok): New function.
14541         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14542         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14543         (emit_df_insn): Likewise.
14544         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14545         (sh_flag_remove_dead_before_cse): Delete.
14546         (get_free_reg, fpscr_set_from_mem): New functions.
14547         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14548         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14549
14550 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14551
14552         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14553
14554 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14555
14556         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14557         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14558
14559         * cccp.c: Include version.h and/or don't declare `version_string'.
14560         * collect2.c: Likewise.
14561         * alpha.c: Likewise.
14562         * arm/aof.h: Likewise.
14563         * arm/coff.h: Likewise.
14564         * arm/elf.h: Likewise.
14565         * arm/pe.h: Likewise.
14566         * arm/tcoff.h: Likewise.
14567         * arm/telf.h: Likewise.
14568         * arm/tpe.h: Likewise.
14569         * arm/vxarm.h: Likewise.
14570         * convex/convex.c: Likewise.
14571         * i386/dgux.c: Likewise.
14572         * i386/sun386.h: Likewise.
14573         * m88k/m88k.c: Likewise.
14574         * mcore/mcore-pe.h: Likewise.
14575         * mips/mips.h: Likewise.
14576         * romp/romp.h: Likewise.
14577         * sh/sh.c: Likewise.
14578         * cpphash.c: Likewise.
14579         * cppinit.c: Likewise.
14580         * dwarf2out.c: Likewise.
14581         * dwarfout.c: Likewise.
14582         * gcc.c: Likewise.
14583         * gcc.h: Likewise.
14584         * mips-tfile.c: Likewise.
14585         * protoize.c: Likewise.
14586         * toplev.c: Likewise.
14587         * tree.h: Likewise.
14588
14589         * version.c (version_string): Constify a char*.
14590
14591         * version.h: New file.
14592
14593 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14594
14595         * configure.in: Add mcore-elf and mcore-pe targets.
14596         * configure: Regenerate.
14597
14598         * NEWS: Add note that MCore port has been contributed.
14599
14600         * invoke.texi: Document command line switches for MCore port.
14601         * install.texi: Add MCore to list of supported targets.
14602
14603 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14604
14605         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14606         then we will need to import the frame handling functions.
14607         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14608         to import the frames themselves.
14609
14610 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14611                           Jason Eckhardt  <jle@cygnus.com>
14612
14613         * basic_block.h: Added prototype for reorder_basic_blocks.
14614         * toplev.c: Changes to add -freorder-blocks and graph dump after
14615         block reordering is done.
14616         * flow.c (reorder_block_def): New structure for use during block
14617         reordering.
14618         (REORDER_BLOCK_*): New macros to access members of above structure.
14619         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14620         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14621         functions for block reordering.
14622
14623 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14624
14625         * gcc.texi (Passes): Fix typo.
14626         * md.texi (Standard Names): Ditto.
14627         * tm.texi (Storage Layout): Ditto.
14628
14629 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14630
14631         * cpplib.c (do_define): Only free the old definition if it
14632         actually had one.
14633
14634 2000-02-13   Neil Booth  <NeilB@earthling.net>
14635
14636         * cppfiles.c (read_and_prescan): When emitting deferred
14637         newlines, test speccase[] again instead of checking each
14638         possible whitespace character in turn.  When we encounter \r,
14639         look behind for \n first, then ahead.
14640
14641 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14642
14643         * cse.c (cse_altered): New internal flag.
14644         (cse_insn): Set it if we changed an insn.
14645         (cse_main): Clear cse_altered before each basic block.
14646         Only garbage collect if cse_altered is true afterward.
14647
14648 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14649
14650         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14651
14652 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14653
14654         * combine.c (simplify_comparison): Fix typo.
14655
14656 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14657
14658         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14659         consistently.
14660
14661 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14662
14663         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14664         previously inserted node instead of root node.  Caller changed.
14665
14666 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14667
14668         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14669
14670 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14671
14672         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14673         __dereg_frame_dtor): Add prototype argument.
14674
14675         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14676
14677         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14678
14679         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14680
14681         * gthr-vxworks.h (__gthread_once): Likewise.
14682
14683         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14684
14685 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14686
14687         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14688         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14689         stack pointer in functions w/o saved registers, output LEAVE more often
14690         on TARGET_USE_LEAVE machines.
14691
14692 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14693
14694         * config/arm/arm.c (arm_init_cumulative_args); New function:
14695         Initlaise the CUMULATIE_ARGS strcuture for a function
14696         defintion.
14697         (arm_function_arg): New function: Determine where to place a
14698         function's argument.  Also handles deciding the function's
14699         call cookie.
14700         (current_file_function_operand): New function: Return true if
14701         the symbol is a function which has already been compiled.
14702         (arm_is_long_call_p): New function: Return true if the
14703         indicated function should be called via a long call.
14704         (arm_valid_type_attribute_p): New function: Return true if the
14705         attribute is a valid, arm specific, attribute.
14706         (arm_comp_type_attribute): New function: Return true if the
14707         two types have compatable, arm specific, attributes.
14708
14709         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14710         structure.
14711         (FUNCTION_ARG): Redefine to call arm_function_arg.
14712         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14713         structure field.
14714         (INIT_CUMULATIVE_ARGS): Redefine to call
14715         arm_init_cumulative_args.
14716         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14717         field.
14718         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14719         field.
14720         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14721         functions.
14722         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14723         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14724         (COMP_TYPE_ATTRIBUTES): Define.
14725
14726         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14727         if a long call is needed.
14728         (call_value): Call arm_is_long_call_p to decide if a long call
14729         is needed.
14730         (call_symbol): Call arm_is_long_call_p to decide if a long call
14731         is needed.
14732
14733         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14734
14735 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14736
14737         * README.AVR: New file with information about the avr ports.
14738         * config/avr: New directory with avr port files.
14739
14740 2000-02-11  Andreas Jaeger  <aj@suse.de>
14741
14742         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14743
14744 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14745
14746         * cpphash.c: Fix formatting, update commentary.
14747         (dump_definition): Take three separate arguments instead of a
14748         MACRODEF structure argument.
14749         * cpphash.h: Update prototype of dump_definition.
14750         * cppinit.c (cpp_finish): Update call of dump_definition.
14751
14752         * cpplib.c (do_define): Always create new hash entry with
14753         T_MACRO type.  Remove redundant check for redefinition of
14754         poisoned identifier.  Update call of dump_definition.
14755         (do_undef): Don't call check_macro_name.  Rename sym_length to
14756         len.
14757         (do_error, do_warning): Don't use copy_rest_of_line or
14758         SKIP_WHITE_SPACE.
14759         (do_warning): Don't use pedwarn for the actual warning,
14760         only the notice about its not being in the standard.  (Fixes
14761         bug with #warning in system headers.)
14762         (do_ident): Stricter argument checking - accept only a single
14763         string after #ident.  Also, macro-expand the line.
14764         (do_xifdef): Use cpp_defined.  De-obfuscate.
14765
14766         (do_pragma): Split out specific pragma handling to separate
14767         functions.  Use get_directive_token.  Update commentary.  Do
14768         not pass on #pragma once or #pragma poison to the front end.
14769         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
14770         do_pragma_default): New.
14771
14772 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
14773
14774         * jump.c (jump_optimize_1): The first operand in a relational
14775         can be a CONST_INT.
14776         * optabs.c (emit_conditional_move): Handle relationals which
14777         have a known true/false result.
14778
14779 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14780
14781         * function.c (thread_prologue_and_epilogue_insns): Don't insert
14782         a RETURN insn into a block which already ends with a jump.
14783
14784 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14785
14786         * haifa-sched.c (BUF_LEN): Increase a lot.
14787
14788 2000-02-11  Nick Clifton  <nickc@cygnus.com>
14789
14790         * configure.in: Add tm_p_file specification for thumb targets.
14791         * configure: Regenerate.
14792
14793         * config/arm/thumb-protos.h: New file: Prototypes for exported
14794         functions defined in thumb.c.
14795
14796 2000-02-11  Robert Lipe  <robertl@sco.com>
14797
14798         * Makefile.in (bootstrap-lean): Remove additional files.
14799         (bootstrap2-lean): Likewise.
14800         (VOL_FILES): List of files for above.
14801
14802 2000-02-11  Nathan Sidwell  <nathan@acm.org>
14803
14804         * cpphash.c (special_symbol): Remove spurious argument to
14805         cpp_lookup.
14806
14807 2000-02-11  Joel Sherrill (joel@OARcorp.com>
14808
14809         * configure.in: (i*86-*-rtems*): Swapped elf and coff
14810         stanzas.
14811         * configure: Rebuilt.
14812
14813 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
14814
14815         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
14816
14817 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
14818
14819         * pa.c, pa.h: Remove trigraph sequences within comments.
14820
14821 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
14822
14823         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
14824
14825 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
14826
14827         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
14828
14829 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14830
14831         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
14832
14833 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14834
14835         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
14836         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
14837         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14838         (ASM_FILE_END): Use c4x_file_end.
14839         * config/c4x/c4x.c (c4x_global_label): New function.
14840         (c4x_external_ref, c4x_file_end): Likewise.
14841
14842         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
14843         (c4x_external_ref, c4x_end_file): Likewise.
14844
14845 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
14846
14847         * cppexp.c: Don't include cpphash.h.
14848         (parse_charconst, cpp_lex): Use cpp_defined.
14849         (cpp_lex): Use get_directive_token throughout.  Remove
14850         unnecessary cases from switch.  Move assertion-handling code
14851         down to OTHER case.
14852         (cpp_parse_expr): If we see '+' or '-', check the context to
14853         determine if they are unary or binary operators.  Streamline
14854         the jumps a bit.  Do not call skip_rest_of_line.
14855
14856         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
14857         static.  Export get_directive_token.  Update commentary.
14858         (cpp_defined): New function.
14859         (do_define): Remove reference to T_PCSTRING.  Call
14860         free_definition to release memory for old definition, when
14861         redefining a macro.
14862         (eval_if_expression): Set only_seen_white to 0 before calling
14863         cpp_parse_expr.  Call skip_rest_of_line after it returns.
14864         (cpp_read_check_assertion): Don't preserve a pointer into the
14865         token buffer across a call to cpp_get_token.
14866
14867         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
14868         * cppfiles.c (redundant_include_p): Use cpp_defined.
14869         * cpphash.c (free_definition): New function.
14870         (delete_macro): Use it.  Update commentary.
14871         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
14872         free_definition.
14873         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
14874         from enum node_type.  Prototype cpp_defined and get_directive_token.
14875         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
14876
14877         * fix-header.c (check_macro_names): Use cpp_defined.
14878         (read_scan_file): Set inhibit_warnings and inhibit_errors in
14879         the options structure.
14880
14881 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14882
14883         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
14884
14885 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
14886
14887         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
14888         rather than die->die_tag.
14889
14890 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14891
14892         * combine.c (make_extraction, force_to_mode): Avoid warning on
14893         mixed-signedness conditionals.
14894         (make_field_assignment, nonzero_bits): Likewise.
14895         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
14896         (store_split_bit_field, extract_split_bit_field): Likewise.
14897         (extract_fixed_bit_field, store_bit_field,
14898         * expr.c: Change alignment to be unsigned everywhere.
14899         (move_by_pieces, store_constructor_field, store_constructor):
14900         Alignment parm is unsigned.
14901         (emit_block_move, emit_group_load, emit_group_store): Likewise.
14902         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14903         (do_compare_rtx_and_jump): Likewise.
14904         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
14905         Compare align with GET_MODE_ALIGNMENT.
14906         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
14907         (get_inner_reference): Likewise.
14908         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
14909         (expand_assignment): Local vars for alignment now unsigned.
14910         (store_constructor, store_field, expand_expr, do_jump): Likewise.
14911         (do_compare_and_jump): Likewise.
14912         (store_field): Call new function expr_align.
14913         * expr.h (emit_block_move, emit_group_load, emit_group_store):
14914         Alignment arg now unsigned.
14915         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14916         (do_compare_rtx_and_jump, store_bit_field): Likewise.
14917         (extract_bit_field): Likewise.
14918         * fold-const.c (add_double): Add cast to eliminate signedness warning.
14919         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
14920         (get_best_mode): Alignment arg is unsigned.
14921         * rtl.h (move_by_pieces): Likewise.
14922         * store-layout.c (maximum_field_alignment, set_alignment):
14923         Now unsigned.
14924         (layout_decl): Alignment arg is now unsigned.
14925         Remove unneeded casts.
14926         (layout_record, layout_union, layout_type): Remove unneeded casts.
14927         Local alignment variables now unsigned.
14928         (get_best_mode): Alignment arg now unsigned.
14929         * tree.c (expr_align): New function.
14930         * tree.h (expr_align): Likewise.
14931         (maximum_field_alignment, set_alignment): Now unsigned.
14932         (get_inner_reference): Alignment argument is now pointer to unsigned.
14933         * varasm.c (assemble_variable): Add cast to eliminate warning.
14934
14935 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
14936
14937         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
14938         then store directly into op0.
14939
14940         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
14941         the CALL_INSN, and emit the note immediately after it.
14942
14943 2000-02-10  Nick Clifton  <nickc@cygnus.com>
14944
14945         * config/arm/thumb.md (epilogue): Include a (return) in the
14946         generated insn, and emit it using emit_jump_insn not
14947         emit_insn.
14948
14949 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
14950
14951         * function.c (assign_temp): Change zero-sized arrays to size 1.
14952         * integrate.c (expand_inline_function): Do not update
14953         stack_alignment_needed
14954         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
14955         add some sanity checking, remove optimization for function with
14956         zero frame size.
14957
14958 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14959
14960         * flow.c (mark_regs_live_at_end): Delete unused variables.
14961
14962         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
14963
14964         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
14965         in macro FRAME_GROWS_DOWNWARD.
14966
14967         * stmt.c (expand_end_bindings): Delete unused variable.
14968
14969         * unroll.c (iteration_info): Mark parameter `loop' with
14970         ATTRIBUTE_UNUSED.
14971
14972 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14973
14974         * fixinc/server.c (load_data): Return NULL if the marker line is
14975         not found.
14976         (run_shell): If load_data returns NULL, retry the command once, in
14977         a new shell.
14978
14979         * configure: Rebuilt.
14980
14981 2000-02-09  Bruce Korb  <bkorb@gnu.org>
14982
14983         * gcc/fixincludes:  ** DELETED **
14984         * gcc/fixcpp:  ** DELETED **
14985         * gcc/fixinc-nt.sed:  ** DELETED **
14986         * gcc/just-fixinc:  ** DELETED **
14987         * gcc/Makefile.in:  Removed out-dated commentary
14988         * gcc/configure.in: Removed fast-fixincludes disablement.
14989         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
14990
14991 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14992         * function.c (thread_prologue_and_epilogue_insns): Uncomment
14993         last change.
14994
14995 2000-02-09  Richard Henderson  <rth@cygnus.com>
14996
14997         * jump.c (delete_insn): Don't delete user labels at -O0.
14998
14999 2000-02-09  Robert Lipe  <robertl@sco.com>
15000
15001         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
15002         Don't link with HOST_LIBS.
15003
15004 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15005
15006         * configure.in: Correct --help text for --with-dwarf2.
15007         Put tm-dwarf2.h after other tm files, if it's requested.
15008         * configure: Regenerate.
15009         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
15010         defining it.
15011
15012 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15013
15014         * cpplib.h: Provide HASHNODE typedef and forward decl of
15015         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
15016         DEFINITION, struct hashnode, struct macrodef, struct
15017         definition, scan_decls prototype, default defn of
15018         INCLUDE_LEN_FUDGE moved elsewhere.
15019
15020         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
15021         definition, and struct hashnode moved here. Remove the unused
15022         'predefined' field from struct definition.  Replace the 'args'
15023         union with its sole member.  All users updated (cpphash.c).
15024         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
15025         multiple include guard.
15026
15027         * cpphash.c (hashf): Make static; use better algorithm; drop
15028         HASHSIZE parameter; return an unsigned int.
15029         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
15030         used. Calculate HASHSIZE modulus here.
15031         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
15032         here.
15033         (create_definition): Drop PREDEFINITION parameter.
15034         * cpplib.c (do_define): Don't calculate a hash value here.
15035         Don't pass (keyword == NULL) to create_definition.
15036
15037         * scan.h: Prototype scan_decls here.
15038         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
15039         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
15040         callers of cpp_lookup and cpp_install updated.
15041
15042         * cpphash.c (macarg): Hoist all the flag diddling out of the
15043         function...
15044         (macroexpand): ... and out of the loop that calls macarg.
15045         Skip over the initial paren before macro arguments with
15046         cpp_get_non_space_token; point may be some distance before
15047         that paren.  Abort if it's not there.
15048
15049         * cpplib.c (parse_clear_mark): Delete function.
15050         (parse_set_mark, parse_goto_mark): Make static.
15051         (ACTIVE_MARK_P): New macro.
15052         (skip_block_comment, skip_line_comment): Do not bump the line
15053         if ACTIVE_MARK_P is true.
15054         (cpp_pop_buffer): The buffer to be popped may not have an
15055         active mark.
15056         (cpp_get_token): When looking for the initial paren before
15057         macro arguments, only set a mark in a file buffer, Always
15058         return to that mark before proceeding to call macroexpand or
15059         return a NAME token.
15060
15061         * cpplib.h: Remove prototypes of parse_set_mark,
15062         parse_clear_mark, parse_goto_mark.
15063         (struct cpp_options): Rename 'put_out_comments' to
15064         'discard_comments' and invert its sense.
15065         * cppinit.c, cpphash.c, cpplib.c: All users of
15066         put_out_comments changed to use discard_comments, with
15067         opposite sense.
15068
15069 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15070
15071         * function.c (thread_prologue_and_epilogue_insns): Don't delete
15072         the edge from a block that both jumps and falls through to the
15073         fallthru block.
15074
15075 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
15076
15077         * config/arm/arm.md (movsi): In PIC mode, make sure that a
15078         constant source address is legitimate.
15079
15080 2000-02-09  Philip Blundell  <pb@futuretv.com>
15081
15082         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
15083         correctly.
15084
15085         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
15086         generating PIC.
15087         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
15088
15089 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15090
15091         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
15092         ends with a newline and a NUL.  Don't be so clever manipulating
15093         strings.
15094
15095 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
15096
15097         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
15098         not to BIGGEST_ALIGNMENT.
15099
15100 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
15101
15102         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
15103         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
15104         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
15105         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
15106         * frame.c (execute_cfa_insn): Handle
15107         DW_CFA_GNU_negative_offset_extended.
15108
15109 2000-02-08  Richard Henderson  <rth@cygnus.com>
15110
15111         * flow.c (tidy_fallthru_edges): Split out from ...
15112         (delete_unreachable_blocks): ... here.
15113         (find_basic_blocks): Use it.
15114
15115 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15116
15117         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
15118
15119 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
15120
15121         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
15122         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
15123         (fix-header.o): Don't depend on cpphash.h.
15124
15125         * scan.c (hashstr): New function.
15126         * scan.h: Prototype it.
15127         * fix-header.c: Don't include cpphash.h.  Use hashstr.
15128         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
15129         hashstr.  Report hash table statistics.  Add private
15130         definition of xrealloc.
15131
15132 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15133
15134         * i386.h (TARGET_SWITCHES): Fix typo in option name.
15135
15136 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
15137
15138         * function.c (thread_prologue_and_epilogue_insns): Don't replace
15139         jumps with returns unless they are jumps to the fallthru block.
15140
15141 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
15142
15143         * i386.md (addqi3_cc): Fix contraints.
15144
15145 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15146
15147         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
15148
15149 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
15150
15151         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
15152         carriage return after a macro name.
15153
15154 2000-02-07  Fred Fish  <fnf@be.com>
15155
15156         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15157         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15158
15159 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15160
15161         * cppfiles.c (deps_output): Count spacers in deps_column.
15162
15163 2000-02-07  Neil Booth  <NeilB@earthling.net>
15164
15165         * cppinit.c (initialize_dependency_output): If there is no
15166         suffix, don't try to look for known suffixes.  Use strrchr.
15167         (cpp_start_read): Remove duplicate initialization.
15168
15169 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15170
15171         * calls.c (compute_argument_block_size): New argument
15172         preferred_stack_boundary.
15173         (expand_call): update cfun->preferred_stack_boundary, update call of
15174         compute_argument_block_size
15175         (emit_library_call): Increate cfun->preferred_stack_boundary
15176         to PREFERRED_STACK_BOUNDARY
15177         (emit_library_call_value): Likewise.
15178         * explow.c (allocate_dynamic_stack_spave): Likewise.
15179         * function.c (prepare_function_start): Set
15180         cfun->preferred_stack_boundary
15181         * function.h (struct function): Add preferred_stack_boundary field.
15182         * integrate.c (expand_inline_function): Update
15183         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15184         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15185         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15186
15187 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15188
15189         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15190         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15191         cpp_pedwarn, cpp_pedwarn_with_line,
15192         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15193         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15194         v_cpp_error_with_line, v_cpp_warning_with_line,
15195         cpp_message_from_errno, cpp_perror_with_name): Delete.
15196
15197         * cpperror.c (cpp_print_containing_files): Take starting
15198         buffer as argument.
15199         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15200         (v_cpp_message): Now called directly by all entry points.
15201         Remove -1 case.
15202         (cpp_pfatal_with_name, cpp_message): Delete.
15203         (cpp_notice_from_errno, cpp_ice): New functions.
15204         (cpp_notice): Is now for reporting error conditions, just
15205         without an associated file.
15206         (cpp_error, cpp_error_with_line): Don't do anything if
15207         opts->inhibit_errors is on.
15208         (cpp_pedwarn_with_file_and_line): Take column argument also.
15209
15210         * cpplib.h: Update prototypes of exported functions.
15211         (struct cpp_options): Add inhibit_errors.
15212
15213         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15214         non-error messages.  Include intl.h.
15215
15216         * cppinit.c, cppmain.c: Likewise.  Also, use
15217         cpp_notice_from_errno instead of cpp_perror_with_name or
15218         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15219
15220         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15221         report internal errors.
15222
15223         * cpplib.c (do_define): Switch bcopy to memcpy.
15224         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15225
15226         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15227         bail out early if we hit a line comment.
15228
15229 2000-02-06  Richard Henderson  <rth@cygnus.com>
15230
15231         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15232         * basic-block.h: Declare them.
15233         * emit-rtl.h (active_insn_p): New.
15234         (next_active_insn, prev_active_insn): Use it.
15235         * rtl.h: Declare it.
15236         * function.c (emit_return_into_block): New.
15237         (thread_prologue_and_epilogue_insns): Insert return insns instead
15238         of epilogues when possible.
15239         * jump.c (jump_optimize_1): Remove code to insert a return insn
15240         on the fallthru to the exit block.
15241
15242         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15243         and for non-empty stack frames.
15244         * i386.md (return): Expand to return-pop as needed.
15245
15246 2000-02-06  Richard Henderson  <rth@cygnus.com>
15247
15248         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15249         constant to op1 for testing.
15250
15251 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15252
15253         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15254         (fixuns_truncqfqi2): Use it.
15255
15256 2000-02-06  Richard Henderson  <rth@cygnus.com>
15257
15258         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15259         as a TYPE_LEA insn.
15260
15261         * i386.md (widening and peepholes): Mask the constant instead of
15262         using gen_lowpart.
15263
15264 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15265
15266         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15267         input pointer before possibly branching off to the backslash
15268         code.
15269         * cpphash.c (macroexpand): Correctly delete \r escapes when
15270         stringifying parameters.
15271         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15272         if we can; bail out early if we hit a line comment.
15273         (handle_directive): Treat '# 123' in an .S file just like
15274         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15275         Return 1 for '# not_a_directive'.
15276         (get_directive_token): Pop macro buffers here, so that
15277         cpp_get_token can't sneakily move past a newline.
15278         Add sanity checks.
15279         (cpp_get_token): goto randomchar if handle_directive returns 0.
15280
15281         * cppalloc.c: Update copyright.
15282         * cpplib.c: Merge all the static function prototypes into one
15283         block.
15284         * cpplib.h: Remove #if 0 block.
15285
15286         * cpperror.c: Remove #ifdef EMACS block.
15287         * cppmain.c: Likewise.
15288         * cpphash.c: Remove #if 0 blocks.
15289         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15290         * cpplib.c: Remove #if 0 blocks and code referencing
15291         pcp_inside_if or for_lint.  Remove duplicate error message.
15292         Fix error messages for #else after #else or #elif.  Reformat.
15293         Remove archaic TODO list.
15294         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15295
15296 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15297
15298         * i386/osf1elf.h: Add missing backslash to multiline string.
15299
15300 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15301
15302         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15303
15304 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15305
15306         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15307
15308         * c-common.c: Include expr.h.
15309
15310         * c-pragma.c (mark_align_stack): Add prototype.
15311
15312         * caller-save.c (add_stored_regs): Likewise.
15313
15314         * combine.c (record_promoted_value): Likewise.
15315
15316         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15317         Likewise.
15318
15319         * cppinit.c (new_pending_define): Likewise.
15320
15321         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15322
15323         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15324         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15325         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15326         class_scope_p): Likewise.
15327
15328         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15329         dwarf2out_add_library_unit_info): Likewise.
15330
15331         * ggc.h (ggc_page_print_statistics): Likewise.
15332
15333         * haifa-sched.c (propagate_deps): Likewise.
15334
15335         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15336
15337         * rtl.h (set_stack_check_libfunc): Likewise.
15338
15339         * toplev.h (set_fatal_function): Likewise.
15340
15341         * toplev.c (set_fatal_function): Delete prototype.
15342
15343         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15344
15345 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15346
15347         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15348         (FUNC_END): Likewise.
15349
15350 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15351
15352         * caller-save.c: Include tm_p.h.
15353
15354 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15355
15356         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15357
15358 2000-02-04  Neil Booth  <NeilB@earthling.net>
15359
15360         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15361         it to strcmp.
15362
15363 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15364
15365         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15366         * genflags.c: Use the max_operand_1 logic from genemit.c to
15367         calculate how many arguments gen_insn prototypes have.  Remove
15368         NO_MD_PROTOTYPES ifdefs from the generated file.
15369         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15370         file.  Cast gen_insn initializers to insn_gen_fn.
15371         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15372         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15373
15374 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15375
15376         * fixinc/Makefile.in (HDR): Add machname.h.
15377         (clean): Likewise.
15378
15379 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15380
15381         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15382         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15383         (c4x_cpu_version): Ditto.
15384         * config/c4x/c4x-protos.h: ... here.
15385
15386 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15387
15388         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15389         gen_abstract_function on our context if we're a nested function.
15390
15391 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15392
15393         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15394         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15395
15396 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15397
15398         * fixinc/genfixes(machname.h):
15399         Move the functionality from gen-machine.h into this file.
15400         UNdef MN_NAME_PAT if there are no names to change.
15401         Also, be a little kinder when AutoGen is not present.
15402
15403         * fixinc/Makefile.in(machname.h):
15404         Change the generation rule to use genfixes.
15405
15406         * fixinc/fixfixes.c(machine_name):
15407         machine_name_fix's functionality now dependent upon whether
15408         MN_NAME_PAT is defined.
15409
15410         * fixinc/fixtests.c(machine_name):
15411         ditto.
15412
15413         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15414         of MN_NAME_PAT.
15415
15416         * fixinc/fixlib.h(mn_get_regexps):
15417         ditto
15418
15419         * fixinc/gen-machine.h: DELETED
15420
15421 2000-02-04  Jan Hubicka  <jh@suse.cz>
15422             Richard Henderson  <rth@cygnus.com>
15423
15424         * i386.c (SAVE_REGS_FIRST): Remove.
15425         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15426         (ix86_compute_frame_size): Likewise.
15427         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15428         (ix86_emit_restore_regs): Remove.
15429         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15430         when a frame pointer is in use.
15431         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15432         instead of pop to restore a register when profitable; emit leave
15433         when profitable.
15434         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15435         as a TYPE_LEA insn.
15436         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15437         * i386.md (prologue_allocate_stack): Remove.
15438         (epilogue_deallocate_stack): Remove.
15439         (pro_epilogue_adjust_stack): New.
15440
15441 2000-02-04  Richard Henderson  <rth@cygnus.com>
15442
15443         * function.c (diddle_return_value): Rework to use a callback function.
15444         Use current_function_return_rtx if it's been set up.
15445         (do_clobber_return_reg, clobber_return_register): New.
15446         (do_use_return_reg, use_return_register): New.
15447         (expand_function_end): Use them.
15448         * stmt.c (expand_null_return): Likewise.
15449         * function.h: Declare them.
15450         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15451         (mark_reg): Change arguments as appropriate for callback.
15452         * integrate.c (expand_inline_function): Revert 19 Jan change.
15453
15454 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15455
15456         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15457         (Misc): Say the scheduler, not the Haifa scheduler.
15458
15459 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15460
15461         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15462         when in_mem is set.  Update all callers.
15463
15464 2000-02-04  Richard Henderson  <rth@cygnus.com>
15465
15466         * i386/openbsd.h (INT_ASM_OP): Define.
15467
15468 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15469
15470         * tm.texi: Fix various typos.
15471
15472 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15473
15474         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15475         (MD_STARTFILE_PREFIX_1): New macro.
15476
15477 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15478
15479         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15480         destination when needed.
15481         (strmovsi, strsetsi): New expander.
15482         (strmovsi_1, strsetsi_1): New pattern.
15483         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15484         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15485         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15486         * invoke.texi (align-stringops, inline-all-stringops): Document.
15487
15488 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15489
15490         * i386/netbsd.h (INT_ASM_OP): Define.
15491
15492 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15493
15494         * cpplib.h (cpp_reader): Add new flag, no_directives.
15495         * cpphash.c (macarg): Set it.
15496         * cpplib.c (handle_directive): If no_directives is on and we
15497         find a directive, issue an error and discard the line.
15498
15499 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15500
15501         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15502         FP constants.  Add ! TARGET_FPU check for FP constants.
15503
15504 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15505
15506         * flow.c (find_basic_blocks): Don't kill label_value_list
15507         here.
15508         (cleanup_cfg): Kill it here.
15509
15510 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15511
15512         * expr.c (store_field): Ensure ALIGN is no stricter than the
15513         alignment of EXP.
15514
15515 2000-02-02  Richard Henderson  <rth@cygnus.com>
15516
15517         * jump.c (delete_insn): Partially revert 19 Jan change;
15518         don't convert unused code labels to notes at -O0.
15519
15520 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15521
15522         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15523         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15524
15525 2000-02-01  Richard Henderson  <rth@cygnus.com>
15526
15527         * i386.c (general_no_elim_operand): New.
15528         (nonmemory_no_elim_operand): New.
15529         (ix86_expand_move): Copy eliminable operands before a push.
15530         * i386-protos.h: Declare new functions.
15531         * i386.h (CAN_ELIMINATE): Simplify.
15532         (PREDICATE_CODES): Update.
15533         * i386.md (push insns): Don't allow eliminable register operands.
15534
15535 2000-02-01  Richard Henderson  <rth@cygnus.com>
15536
15537         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15538         replace BLKmode with DECL_RTL's mode.
15539
15540 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15541
15542         * frame.c (find_fde): Convert for loop to do-while so compiler
15543         sees it's always executed at least once.
15544         * libgcc2.c (BBINBUFSIZE): Kill.
15545         (__bb_init_prg): Use fgets.
15546         (__bb_exit_trace_func): Don't paste strings.
15547         * unroll.c (unroll_loop): Initialize unroll_type, not
15548         unroll_number, and tweak logic to match.
15549
15550         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15551         all failure paths.
15552         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15553         (ix86_sched_reorder): Break guts out to
15554         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15555         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15556         any possible use.
15557
15558         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15559         use string concatenation.  Don't save and restore esi.
15560
15561         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15562         (machname.h): Remove script to separate file.  Use two-step
15563         sequence so target is not created if script fails.
15564         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15565         identifiers are defined.
15566         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15567         an empty string, machine_name doesn't need to do anything at
15568         all.
15569         (is_cxx_header): Add more cases to regexp.
15570         * fixinc/fixlib.h: Update prototype.
15571         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15572         mn_get_regexps.
15573         * fixinc/fixincl.c: Define NO_BOGOSITY.
15574
15575         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15576         (hp_sysfile): Add missing comma.
15577         (math_exception): Put the wrapper ifdefs at the beginning and
15578         the end of the file.
15579         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15580
15581 2000-02-01  Richard Henderson  <rth@cygnus.com>
15582
15583         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15584         Use CONST0_RTX.  Update all callers.
15585         * sparc.h, sparc-protos.h: Update accordingly.
15586         * sparc.md (fp mov insns): Use fp_zero_operand directly
15587         where applicable.
15588
15589 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15590
15591         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15592         example.
15593
15594 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15595
15596         * Makefile.in (specs.ready): New target.
15597         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15598
15599 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15600
15601         * fixinc.irix: Use unique filenames for writing into /tmp,
15602         * fixinc.ptx: Likewise.
15603         * fixinc.sco: Likewise.
15604         * fixinc.svr4: Likewise.
15605         * fixinc.winnt: Likewise.
15606
15607 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15608
15609         * tsystem.h: New file.
15610
15611         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15612         s-crtS): Depend on tsystem.h.
15613
15614         * crtstuff.c: Include tsystem.h.
15615         * frame.c: Likewise.
15616         * libgcc2.c: Likewise.
15617
15618 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15619
15620         * builtins.c (expand_builtin_memset): Expand for variable sized
15621         lengths too.
15622
15623 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15624
15625         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15626         on ABI.
15627
15628 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15629
15630         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15631
15632         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15633
15634 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15635
15636         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15637         case 3->2 combining (combining with splitting) in which 2 is CC0
15638         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15639         checked at the begining of the function with the aid of calling
15640         function 'can_combine_p'.
15641
15642 2000-01-31  Dave Brolley  <brolley@redhat.com>
15643
15644         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15645
15646 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15647
15648         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15649         new label.
15650
15651 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15652
15653         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15654
15655         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15656         PROTO -> PARAMS.
15657
15658 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15659
15660         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15661         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15662         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15663         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15664         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15665         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15666         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15667         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15668         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15669         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15670
15671         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15672         Add %(cpp_cpu) to CPP_SPEC.
15673
15674         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15675         Add %(cc1_cpu) to CC1_SPEC.
15676
15677 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15678
15679         * c-decl.c (c_decode_option): Accept optional numeric argument to
15680         -Wformat and set warn_format.
15681         * c-common.c: Don't emit warning about non-constant printf format
15682         string unless warn_format > 1.
15683
15684 2000-01-30  Richard Henderson  <rth@cygnus.com>
15685
15686         * alpha.md (return_internal): Allow after reload only.
15687
15688 2000-01-30  Richard Henderson  <rth@cygnus.com>
15689
15690         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15691         local frame size is zero.
15692
15693 2000-01-30  Richard Henderson  <rth@cygnus.com>
15694
15695         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15696         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15697         * alpha.md (return): Turn into an expander.
15698         (return_internal): Don't use $26.
15699         (epilogue): Emit the return insn.
15700
15701 2000-01-30  Richard Henderson  <rth@cygnus.com>
15702
15703         * alpha.md (negtf2, abstf2): Fix word order thinko.
15704         (extendsftf2): New.
15705         (trunctfsf2): Avoid intermediate rounding errors.
15706
15707 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15708
15709         * cppfiles.c (find_position): Drop 'colp' argument, return the
15710         new line base.
15711         (read_and_prescan): Adjust to match.  Don't ever manipulate
15712         line or line_base except via find_position.
15713
15714 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15715
15716         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15717         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15718         Regenerate.
15719
15720 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15721
15722         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15723         just print "<command line>".  If 'filename' is null or an
15724         empty string, print "<stdin>" for the filename.
15725         * cpplib.c (do_define): Don't print the 'location of the
15726         previous definition' message if we're still parsing the
15727         command line.
15728         (cpp_pedwarn_with_file_and_line): Always call
15729         cpp_file_line_for_message.
15730
15731 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15732
15733         * flow.c (mark_regs_live_at_end): Fix typo.
15734
15735 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15736
15737         * c-common.c: Adjust variable names, comments, help strings to c99.
15738         * c-lex.c: Likewise.
15739         * c-parse.y: Likewise.
15740         * c-tree.h: Likewise.
15741         * cccp.c: Likewise.
15742         * cpplib.h: Likewise.
15743         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15744         * cppinit.c: Likewise.
15745
15746 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15747
15748         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
15749         * c4x.c: Define the optab rtx values.
15750         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
15751         (c4x_emit_libcall): Use new optab rtx values.
15752         (c4x_emit_libcall3): Likewise.
15753         (c4x_emit_libcall_mulhi): Likewise.
15754         * c4x-protos.h: Add prototypes for optab rtx values and change
15755         prototypes for above c4x_emit_libcall functions.
15756
15757 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15758
15759         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
15760         syntax is used.
15761         (c4x_function_prologue): Use regnames intead of float_reg_names when
15762         TI syntax is used.
15763         (c4x_function_epilogue): Likewise.
15764         (c4x_print_operand): Likewise.
15765         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
15766         * c4x.md (set_high): Disable for TARGET_TI.
15767
15768 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15769
15770         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
15771         of framepointer + constant to ADDR_REGS class.
15772         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
15773         * c4x.c (std_or_reg_operand): New function.
15774         * c4x-protos.h (std_or_reg_operand): Prototype it.
15775
15776 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15777
15778         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
15779                 object names as libgcc2.c.
15780         * libgcc.S: Use newly defined names.
15781
15782 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
15783         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
15784         function.
15785         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
15786         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
15787         (FLOW_LOOP_LAST_BLOCK): Likewise.
15788
15789 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15790
15791         * basic-block.h (struct loop): New fields 'first' and 'last'.
15792         * flow.c (flow_loops_find): Compute loop->first and loop->last.
15793         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
15794         and loop->last to check for NOTE_INSN_LOOP_END.
15795
15796 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
15797
15798         * predict.c (estimate_probability): Use the new FIRST and LAST fields
15799         of the loop descriptor rather than HEADER and LATCH. Also added
15800         missing break statements as well making some coding style modifications
15801         as suggested by Michael Hayes.
15802
15803 2000-01-28  Richard Henderson  <rth@cygnus.com>
15804
15805         * flow.c (find_basic_blocks): Remove do_cleanup argument.
15806         Break out that code ...
15807         (cleanup_cfg): ... here.
15808         (commit_one_edge_insertion): Detect a return instruction being
15809         emitted to an edge.  Emit a barrier following; clear fallthru.
15810         (commit_edge_insertions): Verify CFG consistency.
15811         * function.c (expand_function_start): Kill unused variable.
15812         (expand_function_end): Likewise.
15813         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
15814         to insert the epilogue.
15815
15816         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
15817         (delete_null_pointer_checks): Likewise.
15818         * output.h: Likewise.
15819         * reg-stack.c (reg_to_stack): Likewise.
15820         * toplev.c (rest_of_compilation): Likewise.  Run
15821         thread_prologue_and_epilogue_insns after rebuilding the CFG.
15822
15823 2000-01-28  Richard Henderson  <rth@cygnus.com>
15824
15825         * Makefile.in (flow.o): Revert 24 Jan change.
15826         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
15827         FUNCTION_VALUE result to DECL_RESULT's mode.
15828
15829         * haifa-sched.c (schedule_insns): Don't recompute reg info
15830         after reload.
15831
15832 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
15833
15834         * configure.in: Make --enable-cpplib the default.
15835         * configure: Regenerate.
15836         * gcc.dg/990119-1.c: No longer expected to fail.
15837
15838 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
15839
15840         * jump.c (jump_optimize_1): Delete an optimization that is also done
15841         by merge_blocks in flow.
15842
15843 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15844
15845         * diagnostic.c (build_message_string, output_printf,
15846         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
15847         (build_location_prefix): Fix non-literal format string.
15848
15849 2000-01-27  Richard Henderson  <rth@cygnus.com>
15850
15851         * alpha.md (trunctfsf2): New.
15852
15853 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
15854
15855         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
15856
15857 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15858
15859         * cppinit.c (cpp_handle_option): Recognize C++ comments under
15860         -std=gnu89.
15861         * cpplib.c (skip_block_comment, skip_line_comment): Split code
15862         out of...
15863         (skip_comment) ... here.  Permit C++ comments in system
15864         headers always.  Warn about C++ comments in user code under
15865         -std=gnu89 -pedantic.
15866         (copy_comment): Use skip_comment.
15867         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
15868         return EOF.
15869         (consider_directive_while_skipping, do_else, do_endif): Call
15870         validate_else unconditionally.
15871         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
15872         text after the conditional in a system header.
15873         * cpplib.h (struct cpp_buffer): Add flag
15874         warned_cplusplus_comments.
15875
15876 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15877
15878         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
15879         Use unshare_all_rtl_1.
15880         (unshare_all_rtl_again): New function.
15881         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
15882
15883         * function.c (purge_addressof_1): Use unshare_all_rtl_again
15884         rather than resetting the 'used' flags ourself.
15885
15886         * toplev.c (rest_of_compilation): Add current_function_decl
15887         to the unshare_all_rtl call.
15888         * tree.h: Prototype unshare_all_rtl.
15889         * rtl.h: Prototype unshare_all_rtl_again here.
15890
15891 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15892
15893         * genoutput.c (output_prologue): Include ggc.h in generated
15894         files.
15895         * Makefile.in (insn-output.o): Depends on ggc.h.
15896
15897 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
15898             Hans-Peter Nilsson  <hp@bitrange.com>
15899
15900         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
15901         Remove redundant include of xm-ns32k.h.
15902         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
15903         Remove redundant include of xm-ns32k.h.
15904         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
15905         Remove redundant include of xm-ns32k.h.
15906         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
15907
15908         * ns32k/ns32k.h: Update comment on multiply-add instructions.
15909         (TARGET_SWITCHES): Add documentation strings.
15910         (DWARF_FRAME_REGNUM): Override default definition.
15911         (REG_CLASS_CONTENTS): Add comments.
15912         (SUBSET_P): Format to reduce line length.
15913         (SMALL_REGISTER_CLASSES): Make a run time option.
15914         (GO_IF_NONINDEXED_ADDRESS): Reformat.
15915         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
15916         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
15917         (regclass_map): fix typo in comment.
15918         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
15919         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
15920         (trace, reg_or_mem_operand): Delete, unused function.
15921         (calc_address_cost): Small offsets are cheaper than large ones.
15922         (expand_block_move): Generate more efficient code when bytes is a
15923         known at compile time.
15924         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
15925         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
15926         instead of reg_or_mem_operand.
15927
15928         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
15929         not general_operand.  Similarly use "=rm" or stricter, not "=g".
15930         For input operands, use stricter constraints than "g" if not
15931         general_operand.  Similarly use stricter predicate than
15932         "general_operand" when stricter constraints than "g" are present,
15933         except for matching constraints.
15934         (movstrsi): Use "memory_operand" for operands 0 and 1.
15935         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
15936         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
15937         not reg_or_mem_operand.
15938         (udivmoddisi4): Ditto.
15939         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
15940         Use nonimmediate_operand for operand 3, not register_operand.
15941         (udivmoddiqi4_internal): Use register_operand for operand 1, not
15942         reg_or_mem_operand.
15943
15944 2000-01-27  Fred Fish  <fnf@be.com>
15945
15946         * gthr-posix.h: Fix typo; compatibily -> compatibility.
15947         * gthr-single.h: Likewise.
15948         * gthr-solaris.h: Likewise.
15949         * gthr-vxworks.h: Likewise.
15950         * gthr-win32.h: Likewise.
15951         * gthr.h: Likewise.
15952
15953 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15954
15955         * cppinit.c: Add " (cpplib)" to end of string printed by
15956         -v / --version.
15957
15958 2000-01-27  Richard Henderson  <rth@cygnus.com>
15959
15960         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
15961         testing for a signed comparison.
15962         (alpha_emit_floatuns): New.
15963         * alpha-protos.h: Declare it.
15964         * alpha.md (floatunsdisf2, floatunsdidf2): New.
15965         (extendsfdf2): Tidy.
15966
15967 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
15968
15969         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
15970         no -g option specifying debugging format, default to -gstabs+.
15971
15972 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
15973
15974         * calls.c (special_function_p): New argument fork_or_exec.
15975         (expand_call): When profile_arc_flag is set and the function
15976         is in the fork_or_exec group, call __bb_fork_func first.
15977         * libgcc2.c, _bb module (__bb_fork_func): New function.
15978         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
15979         output file.
15980         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
15981         * tree.h (special_function_p): Update prototype.
15982
15983 2000-01-26  Richard Henderson  <rth@cygnus.com>
15984
15985         * alpha.c (alpha_split_tfmode_pair): New.
15986         * alpha-protos.h: Declare it.
15987         * alpha.md (abstf2, negtf2): New.
15988         (movtf insn): Add input G constraint.
15989         (movtf splitter): Use alpha_split_tfmode_pair.
15990
15991 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15992
15993         * i386/cygwin.h: PROTO -> PARAMS.
15994
15995 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
15996
15997         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
15998         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
15999         using _Qp_cmp/_Q_cmp and testing the return value.
16000         (print_operand): Call reverse_condition_maybe_unordered if
16001         we are handling CCFPmode or CCFPEmode.
16002         Handle ORDERED, UN* and LTGT comparisons.
16003         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
16004         if not TARGET_HARD_QUAD.
16005         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
16006         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
16007         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
16008         Adjust gen_b* calls so that they reflect return comparison of
16009         sparc_emit_float_lib_cmp.
16010
16011 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16012
16013         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
16014         incoming operands array is large enough for one more operand.
16015         (alpha_emit_xfloating_arith): Likewise.
16016
16017 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16018
16019         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
16020         file with one line and no trailing newline.
16021         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
16022         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
16023         checking if the match is on the line.
16024         * fixinc/gnu-regex.c: Provide regerror not __regerror.
16025
16026 2000-01-25  Richard Henderson  <rth@cygnus.com>
16027
16028         * sparc.c (output_cbranch): Fix accidental squashing of the
16029         fp branch pre-delay nop.
16030
16031 2000-01-25  Richard Henderson  <rth@cygnus.com>
16032
16033         * tree.def (UNNE_EXPR): Remove.
16034         * c-typeck.c (build_binary_op): Don't handle it.
16035         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
16036
16037         * rtl.def (UNNE): Remove.
16038         (LTGT): Add.
16039         * jump.c (reverse_condition): Update accordingly.
16040         (swap_condition): Likewise.
16041         (comparison_dominates_p): Handle unordered comparisons.
16042         (reverse_condition_maybe_unordered): New.
16043         * rtl.h (reverse_condition_maybe_unordered): Declare.
16044
16045         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
16046         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
16047         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
16048         * sparc.md (bltgt): New.
16049
16050 2000-01-25  Nick Clifton  <nickc@redhat.com>
16051
16052         * emit-rtl.c (emit_insn): Only check machine class insns for
16053         improper emission of a RETURN.
16054
16055 2000-01-25  Richard Henderson  <rth@cygnus.com>
16056
16057         * Makefile.in (flow.o): Depend on $(EXPR_H).
16058         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
16059         duplicate the structure of diddle_return_value for keeping regs live.
16060
16061 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16062
16063         * loop.c (current_loop_info): Delete.
16064         (consec_sets_invariant_p): Add loop argument, update callers.
16065         (get_condition_for_loop): Likewise.
16066         (count_nonfixed_reads, update_giv_derive): Likewise.
16067         (simplify_giv_expr, general_induction_var): Likewise.
16068         (consec_sets_giv, recombine_givs): Likewise.
16069         (move_movables): Delete loop_start and loop_end arguments,
16070         add loop argument, and update callers.
16071         (find_mem_givs, check_final_value): Likewise.
16072         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
16073         (loop_invariant_p): Rename from invariant_p, add loop argument, and
16074         update callers.
16075         (basic_induction_var): Add loop argument, delete loop_level argument,
16076         and update callers.
16077         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
16078         add loop argument, and update callers.
16079         (find_splittable_regs, find_splittable_givs): Likewise.
16080         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
16081         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
16082         (biv_total_increment): Delete loop_start and loop_end arguments;
16083         update callers.
16084         (precondition_loop_p): Delete loop_start and loop_info arguments;
16085         update callers.
16086         * loop.h (get_condition_for_loop): Add loop argument.
16087         (biv_total_increment): Delete loop_start and loop_end arguments.
16088         (precondition_loop_p): Delete loop_start and loop_info arguments;
16089         add loop argument.
16090         (final_biv_value): Delete loop_start and loop_end arguments;
16091         add loop argument.
16092         (final_giv_value, back_branch_in_range_p): Likewise.
16093
16094 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16095
16096         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
16097
16098 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16099
16100         * Makefile.in (c-gperf.h) : Change the "See" pointer to
16101         point to the new "generated_files" doc.
16102
16103 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16104
16105         * config/fp-bit.c (_unord_f2): Fix typo.
16106
16107 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16108
16109         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
16110         c-typeck.c, objc/objc-act.c: Remove all references to obstack
16111         functions obsoleted by GC, such as push_obstacks_nochange,
16112         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
16113         and code which existed only to decide whether or not to call
16114         them.  Remove now-unused NESTED argument from start_function;
16115         all callers changed.  Do not change behavior based on ggc_p.
16116         The use of the ixp_obstack in c-iterate.c and the util_obstack
16117         in objc/objc-act.c remain; these are not obsoleted by garbage
16118         collection.
16119         * c-tree.h: Update prototype for start_function.
16120
16121         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
16122
16123 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16124
16125         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
16126         mips16.
16127
16128 2000-01-25  Richard Henderson  <rth@cygnus.com>
16129
16130         * sparc-protos.h (select_cc_mode): Declare.
16131         * sparc.c (select_cc_mode): New.  Handle unordered compares.
16132         (output_cbranch): Always reverse via code change.  Handle
16133         unordered compares.  Factor tests and string updates.
16134         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
16135         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
16136         * sparc.md (bunordered, bordered): New.
16137         (bungt, bunlt, buneq, bunge, bunle): New.
16138
16139 2000-01-25  Richard Henderson  <rth@cygnus.com>
16140
16141         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
16142         * ggc-common.c (ggc_add_rtx_varray_root): New.
16143         (ggc_mark_rtx_varray): New.
16144         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
16145         functions down below ggc_mark_foo.
16146         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
16147
16148 2000-01-25  Richard Henderson  <rth@cygnus.com>
16149
16150         * alpha.c (secondary_reload_class): Don't allocate a secondary
16151         for integral mode memories into FLOAT_REGS.  Rearrange the more
16152         complicated memory expression inward.
16153
16154 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16155
16156         * inclhack.def: Fixes to play nicer with FreeBSD, and
16157         corrections to comments.
16158         (cxx_unready): Add select expression.
16159         (irix_sockaddr): Add bypass expression.
16160         (machine_ansi_h_va_list): New fix.
16161         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16162         Split out addition of "#include <stdarg.h>" to...
16163         (stdio_stdarg_h): ... here.
16164         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16165         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16166         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16167         size_t.
16168         (ultrix_ifdef): Tighten up select expression.
16169
16170         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16171         re_ct and max_mach to avoid use of shell.  Make printed names
16172         match names in inclhack.def.  Use static copyright date.
16173         Don't count c_test and test expressions as requiring regex_t
16174         slots.  Add some commentary.
16175         * inclhack.tpl: Do not include the 'This script contains N
16176         fixup scripts' line if PROGRAM is defined.  Use static
16177         copyright date.
16178
16179 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16180
16181         * dwarf2out.c: include "varray.h", not dyn-string.h.
16182         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16183         (addr_const_to_string, addr_to_string): Lose.
16184         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16185         (struct dw_val_struct): val_addr is now an rtx.
16186         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16187         (used_rtx_varray): New varray.
16188         (dwarf2out_init): Initialize it.
16189         (save_rtx): New fn.
16190         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16191         addr_to_string.
16192         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16193         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16194         * Makefile.in (dwarf2out.o): Update dependencies.
16195
16196 2000-01-24  Richard Henderson  <rth@cygnus.com>
16197
16198         * i386.c (i386_dwarf_output_addr_const): New.
16199         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16200
16201         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16202         if defined.
16203         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16204         * i386.c (i386_simplify_dwarf_addr): New.
16205         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16206
16207 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16208
16209         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16210         TYPE_STUB_DECL is NULL.
16211
16212 2000-01-24  Richard Henderson  <rth@cygnus.com>
16213
16214         * builtins.c (expand_tree_builtin): Move ...
16215         * c-common.c (expand_tree_builtin): ... here.
16216
16217 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16218
16219         * loop.h (LOOP_INFO): New accessor macro.
16220         * basic-block.h (struct loop): Rename field `info' to `aux'.
16221         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16222         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16223         * unroll.c (loop_iterations, unroll_loop): Likewise.
16224
16225 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16226
16227         * config/i386/t-cygwin: Accomodate new winsup directory layout
16228         when searching for include files.
16229
16230 2000-01-24  Richard Henderson  <rth@cygnus.com>
16231
16232         * rtl.def: Add unordered fp comparisions.
16233         * tree.def: Likewise.
16234         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16235
16236         * builtins.c (expand_tree_builtin): New function.
16237         * c-typeck.c (build_function_call): Use it.
16238         (build_binary_op): Support unordered compares.
16239         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16240
16241         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16242         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16243         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16244         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16245         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16246         return UNKNOWN.
16247         (swap_condition): Handle unordered compares.
16248         (thread_jumps): Check can_reverse before reversing.
16249         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16250         reversed for FP.
16251
16252         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16253         setcc is present before acking for cmp_optab.  Update all callers.
16254         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16255         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16256         * expr.c (expand_expr): Likewise.  Support unordered compares.
16257         (do_jump, do_store_flag): Likewise.
16258         * expr.h (enum libfunc_index): Add unordered compares.
16259
16260         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16261         (DPBIT_FUNCS): Add _unord_df.
16262         * config/fp-bit.c (_unord_f2): New.
16263         * fp-test.c (main): Try unordered compare builtins.
16264
16265         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16266         * alpha.c (alpha_comparison_operator): Check mode properly.
16267         (alpha_swapped_comparison_operator): Likewise.
16268         (signed_comparison_operator): Likewise.
16269         (alpha_fp_comparison_operator): New.
16270         (alpha_emit_conditional_branch): Handle unordered compares.
16271         * alpha.h (PREDICATE_CODES): Update.
16272         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16273         (bunordered, bordered): New.
16274
16275 2000-01-24  Richard Henderson  <rth@cygnus.com>
16276
16277         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16278         * alpha.md (movtf): New expander, insn, and splitter.
16279
16280 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16281
16282         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16283         dead registers.
16284
16285 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16286
16287         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16288         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16289          REG_ALLOC_ORDER): Add frame pointer
16290         (FRAME_POINTER_REGNUM): Set to 20
16291         (HARD_FRAME_POINTER_REGNUM): New macro.
16292         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16293         to HARD_FRAME_POINTER.
16294         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16295         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16296         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16297         (HI_REGISTER_NAMES): Add "frame".
16298         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16299         (debug_reg): Handle FRAME_POINTER_REGNUM.
16300         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16301         GENERAL_REGS and INDEX_REGS.
16302         * i386.c (SAVED_REGS_FIRST): new macro.
16303         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16304         (ix86_decompose_address, memory_address_length): Likewise.
16305         (regclass_map): Add frame pointer.
16306         (call_insn_operand): Handle frame_pointer_rtx.
16307         (reg_no_sp_operand): Likewise.
16308         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16309         (print_operand, legitimize_pic_address): Fix formating.
16310         (ix86_compute_frame_size): Make static, update prototype, new
16311         parameters padding1, padding2, use ix86_nsaved_regs, use
16312         stack_alignment_needed.
16313         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16314         to HARD_FRAME_POINTER_REGNUM conversions.
16315         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16316         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16317         (print_reg): Abort on FRAME_POINTER_REGNUM
16318
16319 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16320
16321         * i386.h (PREDICATE_CODES): Add aligned_operand.
16322         * i386.c (aligned_operand): New function.
16323         (ix86_aligned_p): Kill.
16324         * i386.md (movhi_1): Emit mov for aligned operands.
16325         (promoting peep2s): Use aligned_operand.
16326
16327 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16328
16329         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16330         expression to allow underscores in macro names.
16331         (fix_char_macro_defines): Increment scanning pointer.
16332
16333 2000-01-23  Richard Henderson  <rth@cygnus.com>
16334
16335         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16336         * alpha/osf5.h: New file.
16337         * configure.in (alpha-*-osf5): Add it to tm_file.
16338
16339         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16340
16341         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16342         (alpha_emit_xfloating_cvt, function_arg): Declare.
16343         * alpha.c (alpha_emit_conditional_branch): Call
16344         alpha_emit_xfloating_compare for TFmode compares.
16345         (alpha_lookup_xfloating_lib_func): New.
16346         (alpha_compute_xfloating_mode_arg): New.
16347         (alpha_emit_xfloating_libcall): New.
16348         (alpha_emit_xfloating_arith): New.
16349         (alpha_emit_xfloating_compare): New.
16350         (alpha_emit_xfloating_cvt): New.
16351         (print_operand): Add default abort case.
16352         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16353         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16354         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16355         (RETURN_IN_MEMORY): True for TF/TCmode.
16356         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16357         (FUNCTION_ARG): Move to function_arg.
16358         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16359         (ASM_OUTPUT_LONG_DOUBLE): New.
16360         (ASM_OUTPUT_DOUBLE): Always output bits.
16361         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16362         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16363         (extenddftf2, trunctfdf2): New.
16364
16365 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16366
16367         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16368         * config/sparc/sol2.h: ... here.
16369
16370 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16371
16372         * basic-block.h (struct loops): New field `levels'.
16373         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16374         (flow_loop_level_compute): Initialise level to 1.
16375         (flow_loops_find): Set loops->levels.
16376         (flow_loops_dump): Print loops->levels.
16377
16378 2000-01-23  Richard Henderson  <rth@cygnus.com>
16379
16380         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16381         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16382
16383 2000-01-23  Richard Henderson  <rth@cygnus.com>
16384
16385         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16386         * i386.h (DBX_REGISTER_NUMBER): Use them.
16387         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16388         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16389         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16390         * i386/sequent.h: Kill incorrect comment.
16391
16392 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16393
16394         * ggc-page.c (struct page_entry): Make `context_depth' an
16395         `unsigned short'.
16396         (struct globals): Likewise.
16397
16398 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16399
16400         * loop.c (check_dbra_loop): When checking a loop for
16401         reversability, check the source of any stores to ensure
16402         they don't depend on an initial value.
16403
16404 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16405
16406         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16407
16408 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16409
16410         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16411         'pz_scan' into scope of entire function.  Only affects
16412         compiles with -DDEBUG.
16413
16414 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16415
16416         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16417         section naming to that prior to 2000-01-07 patch.
16418         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16419         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16420         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16421         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16422         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16423
16424 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16425
16426         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16427         constant.
16428
16429 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16430
16431         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16432         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16433
16434 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16435
16436         * cpphash.c (change_newlines): Delete function.
16437         (struct argdata): Delete 'newlines' and 'use_count' fields.
16438         (macroexpand): Remove code referencing those fields.
16439
16440 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16441
16442         * loop.c (loops_info): New variable.
16443         (loop_optimize): Allocate loops->array and free it on exit.
16444         Allocate memory for loops_info and assign to each loop,
16445         replacing alloca.
16446         (find_and_verify_loops): Do not allocate loops->array.
16447
16448 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16449
16450         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16451
16452 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16453
16454         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16455         pseudos if expanded after first flow.
16456         (movdi_pic_label_ref): Likewise.
16457
16458 2000-01-20  Richard Henderson  <rth@cygnus.com>
16459
16460         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16461
16462 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16463
16464         * Makefile.in (fixinc.sh): Depend on specs.
16465         * fixinc/Makefile.in: Add rule to create machname.h.
16466         (fixlib.o): Depend on machname.h.
16467         * fixinc/fixtests.c (machine_name): New test.
16468         * fixinc/fixfixes.c (machine_name): New fix.
16469         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16470         the machine_name test and fix.
16471         * fixinc/fixlib.h: Prototype it.
16472         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16473         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16474
16475         * gcc.c (do_spec_1) [case P]: Take care not to create
16476         identifiers with three leading or trailing underscores.
16477
16478         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16479         (fixincl): Don't specify libraries twice on link line.
16480         (gnu-regex.o): Remove special rule.
16481         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16482         defined by config.h.  Do not define _REGEX_RE_COMP.
16483         (regcomp): Allocate and initialize a fastmap.
16484         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16485
16486 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16487
16488         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16489
16490 2000-01-19  Richard Henderson  <rth@cygnus.com>
16491
16492         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16493         arguments with BB.  Update all callers.  Tidy line wrapping.
16494
16495 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16496
16497         * emit-rtl.c (try_split): Return last_insn if we split the
16498         last_insn.
16499
16500 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16501
16502         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16503         (ix86_initial_elimination_offset): Declare.
16504         * i386.c (ix86_nsaved_regs): Break out from ...
16505         (ix86_can_use_return_insn_p): ... here.
16506         (ix86_emit_save_regs): Break out from ...
16507         (ix86_expand_prologue): ... here.
16508         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16509         out from ...
16510         (ix86_expand_epilogue): ... here.
16511         (ix86_compute_frame_size): Make static, add prototype.
16512         (ix86_initial_elimination_offset): Break out from ...
16513         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16514
16515 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16516
16517         * recog.h (OUT_FCN): Delete.
16518
16519         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16520
16521 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16522
16523         * cppalloc.c: PROTO -> PARAMS.
16524         * cpperror.c: Likewise.
16525         * cppfiles.c: Likewise.
16526         * cpplib.c: Likewise.
16527         * cpplib.h: Likewise.
16528
16529         * config/arm/arm-protos.h: PROTO -> PARAMS.
16530         * config/arm/arm.c: Likewise.
16531         * config/c4x/c4x.c: Likewise.
16532         * config/fr30/fr30-protos.h: Likewise.
16533         * config/nextstep.c: Likewise.
16534         * config/pa/pa.c: Likewise.
16535         * config/pj/pj.c: Likewise.
16536         * config/rs6000/rs6000.c: Likewise.
16537         * config/v850/v850-protos.h: Likewise.
16538         * config/v850/v850.c: Likewise.
16539
16540 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16541
16542         * i370-protos.h: New file.
16543
16544         * i370.c: Include tm_p.h.  Fix compile time warnings.
16545
16546         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16547         warnings.
16548
16549         * i370.md: Likewise.
16550
16551 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16552
16553         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16554         (target_isinf, target_isnan, eisnan): Mark parameter with
16555         ATTRIBUTE_UNUSED.
16556         (eiisinf): Wrap in INFINITY.
16557         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16558         (ibmtoe): Remove unused variable `rndsav'.
16559
16560 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16561
16562         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16563         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16564
16565 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16566
16567         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16568         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16569         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16570
16571         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16572         Recognize Emacs mode markers also.
16573         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16574         C++ comments in C++ headers.  Call is_cxx_header only if
16575         necessary.
16576
16577         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16578         bypass for ncurses.
16579         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16580         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16581         ... these, which use the new C fixes.
16582         (math_exception): Escape literal '+' in bypass expression.
16583
16584         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16585         Regenerate.
16586
16587 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16588
16589         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16590         inside the MEM.
16591
16592 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16593
16594         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16595         prior to calling scan_loop.
16596
16597 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16598
16599         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16600         (split_branches, calc_live_regs): Likewise.
16601
16602 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16603
16604         * sh.md (fpu_single, fp_mode): New attributes.
16605
16606 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16607
16608         * loop.c (current_loop_info): Renamed from loop_info_data
16609         and changed to a pointer.
16610         (loop_optimize): Allocate loop_info structure for each loop
16611         and initialise to zero.
16612         (scan_loop): Set current_loop_info.
16613
16614         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16615         on iteration_var.
16616
16617 2000-01-19  Richard Henderson  <rth@cygnus.com>
16618
16619         * stupid.c: Die die die.
16620         * Makefile.in (OBJS): Remove stupid.o.
16621         (stupid.o): Likewise.
16622
16623         * except.c (emit_eh_context): Don't emit USEs for stupid.
16624         * explow.c (probe_stack_range): Likewise.
16625         * flags.h (obey_regdecls): Remove.
16626         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16627         when not optimizing.
16628         (life_analysis): Limit data collection when not optimizing.
16629         (mark_regs_live_at_end): Always mark the return value registers.
16630         (mark_used_regs): Remove dummy RETURN case.
16631         (print_rtl_with_bb): Don't consult obey_regdecls.
16632         * function.c (use_variable, use_variable_after): Remove.
16633         (assign_parms): Consult optimize not obey_regdecls.
16634         (expand_function_start): Don't emit USEs for stupid.
16635         (expand_function_end): Likewise.
16636         * global.c (build_insn_chain): Export.
16637         * integrate.c (expand_inline_function): Kill return-value USE
16638         handling code.
16639         * jump.c (jump_optimize_1): Do simple jump optimizations and
16640         dead code elimination.
16641         (calculate_can_reach_end): Remove check_deleted argument.
16642         (delete_insn): Patch out insns even when not optimizing.
16643         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16644         * rtl.h (use_variable, use_variable_after): Remove declarations.
16645         (build_insn_chain): Declare.
16646         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16647         (expand_end_bindings): Likewise.
16648         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16649         * toplev.c (obey_regdecls): Remove.
16650         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16651         flow1, local-alloc, and reload.
16652         (main): Don't set obey_regdecls.
16653
16654         * config/nextstep.c (handle_pragma): Likewise.
16655
16656         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16657
16658         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16659
16660 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16661
16662         * alpha-protos.h: PROTO -> PARAMS.
16663         * alpha.c: Likewise.
16664         * elf.h: Likewise.
16665         * h8300.c: Likewise.
16666         * i386-protos.h: Likewise.
16667         * i386.c: Likewise.
16668         * m32r-protos.h: Likewise.
16669         * m32r.c: Likewise.
16670         * mips.c: Likewise.
16671         * mips.md: Likewise.
16672         * gmon-sol2.c: Likewise.
16673         * sparc.c: Likewise.
16674
16675 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16676
16677         * ns32k-protos.h: New file.
16678
16679         * ns32k.c: Fix compile time warnings.
16680
16681         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16682         warnings.
16683
16684         * ns32k.md: Likewise.
16685
16686 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16687
16688         * vax-protos.h: New file.
16689
16690         * vax.c: Fix compile time warnings.
16691
16692         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16693         warnings.
16694
16695         * vax.md: Likewise.
16696
16697         * vaxv.md: Likewise.
16698
16699 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16700
16701         * romp-protos.h: New file.
16702
16703         * romp.c: Fix compile time warnings.
16704
16705         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16706         warnings.
16707
16708         * romp.md: Likewise.
16709
16710 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16711
16712         * we32k-protos.h: New file.
16713
16714         * we32k.c: Fix compile time warnings.
16715
16716         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16717         warnings.
16718
16719 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16720
16721         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16722
16723         * except.c (eh_regs): Likewise.
16724
16725         * final.c (output_operand): Likewise.
16726
16727         * fold-const.c (target_isinf, target_isnan): Likewise.
16728
16729 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16730
16731         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16732         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16733
16734         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16735         when optimize_size.
16736         (clrstrsi): Rewrite.
16737         (strsethi, strsetqi): New expanders.
16738         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16739         (cmpstrsi): Emit compare insn before cmpstrsi_1
16740         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16741         (strlensi_1): Likewise.
16742         (cmpstrsi_1): Likewise; do not output compare.
16743         (strlen expander): Do not unroll when optimizing for size.
16744         (*subsi3_carry): Rename to subsi3_carry
16745         (addqi3_cc): New pattern.
16746         * i386.h (processor_costs): Add move_ratio field.
16747         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
16748         * i386.c (*_cost): Set move_ratio.
16749         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
16750         (x86_expand_strlensi_1): Rewrite the main loop.
16751
16752 2000-01-17  Richard Henderson  <rth@cygnus.com>
16753
16754         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
16755         * cse.c (find_comparison_args, fold_rtx): Likewise.
16756         * integrate.c (subst_constants): Likewise.
16757         * loop.c (get_condition): Likewise.
16758
16759         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
16760
16761         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
16762
16763 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16764
16765         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
16766         (RESTORE_WARN_FLAGS): Unpack it.
16767         Change semantic type of extension to ttype.
16768         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
16769         * c-parse.y, c-parse.c, objc/objc-parse.y,
16770         objc/objc-parse.c: Regenerate.
16771
16772 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
16773
16774         * fixinc/fixlib.c: Add copyright notice.
16775         (compile_re): New function.
16776         * fixinc/fixlib.h: Prototype compile_re.
16777
16778         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
16779         Use compile_re to compile regular expressions.
16780
16781         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
16782         where the pattern matched.
16783
16784         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
16785         use 'replace'.
16786         (ultrix_ansi_compat): Likewise.
16787         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
16788         add egrep test.
16789         (interactv_add2, interactv_add3): Delete.
16790         (x11_sprintf): Don't use filename glob.
16791         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
16792         Regenerate.
16793
16794 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16795
16796         * print-rtl.c: PROTO -> PARAMS.
16797         * real.c: Likewise.
16798         * reg-stack.c: Likewise.
16799         * resource.c: Likewise.
16800         * sdbout.h: Likewise.
16801         * simplify-rtx.c: Likewise.
16802         * stor-layout.c: Likewise.
16803         * stupid.c: Likewise.
16804         * xcoffout.c: Likewise.
16805         * xcoffout.h: Likewise.
16806
16807 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16808
16809         * toplev.c: PROTO -> PARAMS.
16810         * toplev.h: Likewise.
16811         * tree.c: Likewise.
16812         * tree.h: Likewise.
16813         * unroll.c: Likewise.
16814         * varasm.c: Likewise.
16815         * varray.c: Likewise.
16816         * varray.h: Likewise.
16817
16818 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16819
16820         * reload.c: PROTO -> PARAMS.
16821         * reload.h: Likewise.
16822         * reload1.c: Likewise.
16823         * reorg.c: Likewise.
16824         * resource.h: Likewise.
16825         * rtl.c: Likewise.
16826         * rtl.h: Likewise.
16827         * rtlanal.c: Likewise.
16828         * sbitmap.h: Likewise.
16829         * sdbout.c: Likewise.
16830         * stack.h: Likewise.
16831         * stmt.c: Likewise.
16832         * system.h: Likewise.
16833
16834 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16835
16836         * machmode.h: PROTO -> PARAMS.
16837         * mbchar.h: Likewise.
16838         * mips-tdump.c: Likewise.
16839         * mips-tfile.c: Likewise.
16840         * optabs.c: Likewise.
16841         * output.h: Likewise.
16842         * prefix.c: Likewise.
16843         * profile.c: Likewise.
16844         * protoize.c: Likewise.
16845         * real.h: Likewise.
16846         * recog.c: Likewise.
16847         * recog.h: Likewise.
16848         * regclass.c: Likewise.
16849         * regmove.c: Likewise.
16850         * regs.h: Likewise.
16851
16852 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16853
16854         * ggc-common.c: PROTO -> PARAMS.
16855         * ggc-page.c: Likewise.
16856         * ggc-simple.c: Likewise.
16857         * ggc.h: Likewise.
16858         * global.c: Likewise.
16859         * graph.c: Likewise.
16860         * gthr-win32.h: Likewise.
16861         * haifa-sched.c: Likewise.
16862         * halfpic.h: Likewise.
16863         * integrate.c: Likewise.
16864         * integrate.h: Likewise.
16865         * jump.c: Likewise.
16866         * lcm.c: Likewise.
16867         * local-alloc.c: Likewise.
16868         * loop.c: Likewise.
16869         * loop.h: Likewise.
16870
16871 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16872
16873         * genattr.c: PROTO -> PARAMS.
16874         * genattrtab.c: Likewise.
16875         * gencheck.c: Likewise.
16876         * gencodes.c: Likewise.
16877         * genconfig.c: Likewise.
16878         * genemit.c: Likewise.
16879         * genextract.c: Likewise.
16880         * genflags.c: Likewise.
16881         * gengenrtl.c: Likewise.
16882         * genopinit.c: Likewise.
16883         * genoutput.c: Likewise.
16884         * genpeep.c: Likewise.
16885         * genrecog.c: Likewise.
16886
16887 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
16888
16889         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
16890
16891 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16892
16893         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
16894         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
16895         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
16896         * configure, config.in: Rebuilt.
16897
16898 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
16899
16900         * config/i386/i386.md: Add peephole to merge successive stack
16901         adjusts.
16902
16903 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
16904
16905         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
16906         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
16907         when walking backwards to find all the parameter loads when
16908         the basic block ends in a call.
16909
16910 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16911
16912         * loop.c (this_loop_info): Delete.
16913         (uid_loop): Add in place of uid_loop_num.  All uses updated.
16914         (loop_number_exit_count): Delete and replace with entry in loop
16915         structure.  All uses updated.
16916         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16917         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16918         (loop_outer_loop): Likewise.
16919         (loop_invalid, loop_number_exit_labels): Likewise.
16920         (loop_used_count_register): Delete and replace with entry in
16921         loop_info structure.
16922         (find_and_verify_loops): Add loops argument.
16923         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
16924         loop_end, etc. arguments with loop structure pointer.  All callers
16925         changed.
16926         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
16927         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
16928         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
16929         (insert_bct): Likewise.
16930         (basic_induction_var): New argument level.
16931         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
16932         vtop, and cont.  Add used_count_register.
16933         (uid_loop): Delete declaration.
16934         (loop_number_exit_count): Likewise.
16935         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16936         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16937         (loop_outer_loop, loop_used_count_register): Likewise.
16938         (loop_invalid, loop_number_exit_labels): Likewise.
16939         (unroll_loop): Replace loop_start and loop_end arguments
16940         with loop structure pointer.
16941         (loop_precondition_p, loop_iterations): Likewise.
16942         Include basic-block.h.
16943         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
16944         with loop structure pointer.
16945         (loop_precondition_p, loop_iterations): Likewise.
16946         * basic-block.h (struct loop): New entries vtop, cont,
16947         cont_dominator, start, end, top, scan_start, exit_labels,
16948         exit_count.
16949         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
16950
16951 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16952
16953         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
16954
16955 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
16956
16957         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
16958
16959 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16960
16961         * pdp11-protos.h: New file.
16962
16963         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
16964         time warnings.
16965
16966         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
16967         warnings.
16968
16969         * pdp11.md: Likewise.
16970
16971         * 2bsd.h: Likewise.
16972
16973 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16974
16975         * mn10300-protos.h: New file.
16976
16977         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16978         time warnings.
16979
16980         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
16981         warnings.
16982
16983         * mn10300.md: Likewise.
16984
16985 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16986
16987         * mn10200-protos.h: New file.
16988
16989         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
16990         time warnings.
16991
16992         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
16993         warnings.
16994
16995         * mn10200.md: Likewise.
16996
16997 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16998
16999         * h8300-protos.h: New file.
17000
17001         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17002         time warnings.
17003
17004         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
17005         warnings.
17006
17007         * h8300.md: Likewise.
17008
17009 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17010
17011         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
17012         (asm_emit_uninitialised): Likewise.
17013
17014 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
17015
17016         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
17017         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
17018
17019 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17020
17021         * config/mips/mips.c (override_options): Don't turn on extra
17022         alignment for mips16.
17023
17024 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17025
17026         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
17027         eabi, and make sure queued POSTINCREMENT rtl is emitted at
17028         the right point.
17029
17030 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17031
17032         * builtins.c (PAD_VARARGS_DOWN): Define.
17033         (std_expand_builtin_va_arg): Use the above macro.
17034         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
17035         * tm.texi (Register Arguments): Document the above macro.
17036
17037 2000-01-14  Nick Clifton  <nickc@cygnus.com>
17038
17039         * emit-rtl.c (emit_insn): If checking is enabled, make sure
17040         that this function has not been used to emit a jump
17041         instruction.
17042
17043         * jump.c (return_jump_1): Cope with being passed a null rtx.
17044
17045 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17046
17047         * eh-common.h: PROTO -> PARAMS.
17048         * emit-rtl.c: Likewise.
17049         * errors.c: Likewise.
17050         * errors.h: Likewise.
17051         * except.c: Likewise.
17052         * except.h: Likewise.
17053         * explow.c: Likewise.
17054         * expmed.c: Likewise.
17055         * expr.c: Likewise.
17056         * expr.h: Likewise.
17057         * final.c: Likewise.
17058         * fix-header.c: Likewise.
17059         * flow.c: Likewise.
17060         * fold-const.c: Likewise.
17061         * function.c: Likewise.
17062         * function.h: Likewise.
17063         * gcc.c: Likewise.
17064         * gcov-io.h: Likewise.
17065         * gcov.c: Likewise.
17066         * gcse.c: Likewise.
17067
17068 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17069
17070         * sh-protos.h: New file.
17071
17072         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
17073         Add static prototypes.  Fix compile time warnings.
17074
17075         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
17076         * sh.md: Likewise.
17077         * elf.h: Likewise.
17078
17079 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17080
17081         * arc-protos.h: New file.
17082
17083         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
17084         time warnings.
17085
17086         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
17087         warnings.
17088
17089         * arc.md: Likewise.
17090
17091 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17092
17093         * dsp16xx-protos.h: New file.
17094
17095         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
17096         time warnings.
17097
17098         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
17099         warnings.
17100
17101         * dsp16xx.md: Likewise.
17102
17103 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17104
17105         * convex-protos.h: New file.
17106
17107         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
17108         time warnings.
17109
17110         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
17111         warnings.
17112
17113 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17114
17115         * elxsi-protos.h: New file.
17116
17117         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
17118         time warnings.
17119
17120         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
17121         warnings.
17122
17123         * elxsi.md: Likewise.
17124
17125 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17126
17127         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
17128         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
17129         match the comment for MIPS16.
17130
17131 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
17132
17133         * flow.c (split_edge): Do not call set_block_for_insn if we
17134         do not have a basic_block_for_insn structure.
17135
17136         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
17137         and destination functions are 32bit aligned within the trampoline.
17138         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
17139         (TRAMPOLINE_ALIGNMENT): Define.
17140
17141         * cse.c (cse_insn): When changing (set (pc) (reg)) to
17142         (set (pc) (label_ref)), verify the change creates a valid insn.
17143
17144         * fr30.c (call_operand): Tighten and rework to match rules for
17145         call RTL expressions.
17146         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
17147         * fr30.md (call patterns): Improve constraints.
17148
17149 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
17150
17151         * fr30.c (fr30_expand_epilogue): Revert last change.
17152         Use emit_jump_insn for the return insn.
17153
17154 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17155                           Stan Cox  <scox@cygnus.com>
17156
17157         * predict.c: New file. Preliminary infrastructure work for static
17158         branch prediction and basic block reordering.
17159         * basic-block.h: Add prototype for estimate_probability.
17160         * Makefile.in: Add rules for predict.o.
17161
17162 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17163
17164         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17165         * fixinc/*: Likewise.
17166
17167 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17168
17169         * cccp.c: PROTO -> PARAMS.
17170         * cexp.y: Likewise.
17171         * collect2.c: Likewise.
17172         * combine.c: Likewise.
17173         * convert.h: Likewise.
17174         * cse.c: Likewise.
17175         * dbxout.c: Likewise.
17176         * dbxout.h: Likewise.
17177         * diagnostic.c: Likewise.
17178         * doprint.c: Likewise.
17179         * dwarf2out.c: Likewise.
17180         * dwarf2out.h: Likewise.
17181         * dwarfout.c: Likewise.
17182         * dwarfout.h: Likewise.
17183         * dyn-string.h: Likewise.
17184
17185 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17186
17187         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17188         macro conditionals guarding use.
17189
17190         * dwarf2out.c: Include "tm_p.h".
17191
17192         * function.c (locate_and_pad_parm): Mark parameter with
17193         ATTRIBUTE_UNUSED.
17194         (expand_function_end): Likewise for variable `context'.
17195
17196         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17197
17198 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17199
17200         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17201         register to prevent compile time warnings.
17202
17203 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17204
17205         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17206         to avoid -Wtraditional warning.
17207
17208 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17209
17210         * 1750a-protos.h: New file.
17211
17212         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17213         time warnings.
17214
17215         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17216         warnings.
17217
17218         * 1750a.md: Likewise.
17219
17220 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17221
17222         * a29k-protos.h: New file.
17223
17224         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17225         time warnings.
17226
17227         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17228         warnings.
17229
17230 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17231
17232         * clipper-protos.h: New file.
17233
17234         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17235         time warnings.
17236
17237         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17238         warnings.
17239
17240 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17241
17242         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17243
17244 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17245
17246         * configure.in (--enable-new-gxx-abi): New option.
17247         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17248         * Makefile.in (GXX_ABI_FLAG): New variable.
17249         * configure: Regenerate.
17250
17251 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17252
17253         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17254         * tm.texi (FORCE_STRUCT_BLK): Document.
17255         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17256
17257 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17258
17259         * config/ns32k/ns32k.md: Revert Jan 9 change.
17260
17261         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17262         to a mode-test, if the predicate is address_operand.
17263
17264 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17265
17266         * combine.c (if_then_else_cond): Be careful about what kinds
17267         of RTL expressions are passed to operand_subword.
17268
17269         * flow.c (split_edge): If we have to insert a new jump, make
17270         sure to associate it with a basic block.
17271
17272         * flow.c (commit_one_edge_insertion): A block with one successor
17273         can end in a JUMP_INSN that is not a simplejump.
17274
17275 2000-01-12  Robert Lipe  <robertl@sco.com>
17276
17277         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17278         (BUILD_VA_LIST_TYPE): Define.
17279         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17280         with crtstuff.c.
17281
17282 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17283
17284         * cccp.c (do_pragma): Add cast to (char *).
17285
17286 2000-01-12  Richard Henderson  <rth@cygnus.com>
17287             Fred Fish  <fnf@be.com>
17288             Jason Merrill  <jason@cygnus.com>
17289
17290         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17291         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17292         * i386/beos-elf.h, i386/beos-pe.h: New files.
17293
17294         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17295         * cross-make (SYSTEM_HEADER_DIR): Define using
17296         CROSS_SYSTEM_HEADER_DIR.
17297
17298         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17299         (process_command): Use it.
17300         (main): Likewise.  Kill trailing = from env vars.
17301         (build_search_list): Put it back.
17302         * collect2.c (main): Use LIBRARY_PATH_ENV.
17303
17304         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17305         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17306
17307         * tm.texi (Frame Layout): Document SMALL_STACK.
17308         * c-common.c (c_common_nodes_and_builtins): Check it.
17309
17310         * system.h: Undef alloca after including glibc's <stdlib.h>,
17311         if USE_C_ALLOCA is defined.
17312
17313         * gcc.c (set_input): New fn.
17314         (main): After all input files are compiled, reset the input file
17315         info to the first.
17316
17317         * aclocal.m4 (rindex, index): If already defined, don't attempt
17318         to redefine.
17319
17320         * ginclude/varargs.h: (__va_list__): Define ifndef.
17321         * ginclude/stdarg.h: Likewise.
17322
17323         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17324         instead of unsigned char.
17325
17326         * hash.h (true, false, boolean): Undef before enum.
17327
17328         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17329         proper type of "HOST_WIDE_INT *", rather than their natural type of
17330         "unsigned HOST_WIDE_INT *".
17331
17332 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17333
17334         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17335
17336         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17337
17338         * regclass.c (choose_hard_reg_mode): Likewise.
17339
17340         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17341
17342         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17343
17344 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17345
17346         * c-common.c: PROTO -> PARAMS.
17347         * c-common.h: Likewise.
17348         * c-decl.c: Likewise.
17349         * c-iterate.c: Likewise.
17350         * c-lang.c: Likewise.
17351         * c-lex.c: Likewise.
17352         * c-lex.h: Likewise.
17353         * c-parse.in: Likewise.
17354         * c-pragma.c: Likewise.
17355         * c-pragma.h: Likewise.
17356         * c-tree.h: Likewise.
17357         * c-typeck.c: Likewise.
17358         * objc/objc-act.c: Likewise.
17359         * objc/objc-act.h: Likewise.
17360
17361 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17362
17363         * m88k-protos.h: New file.
17364
17365         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17366         time warnings.
17367
17368         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17369
17370         * m88k.md: Likewise.
17371
17372         * tekXD88.h: Likewise.
17373
17374 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17375
17376         * m68k-protos.h: New file.
17377
17378         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17379         time warnings.
17380
17381         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17382
17383         * mot3300.h: Likewise.
17384
17385 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17386
17387         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17388         extract_bitlst.
17389         (extract_bitlist): Declare bitlen.
17390
17391 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17392
17393         * cccp.c: Accept and ignore -lang-fortran.
17394
17395         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17396         qualifiers don't match at any level of pointerness.
17397
17398 2000-01-12  Robert Lipe  <robertl@sco.com>
17399
17400         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17401
17402 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17403
17404         * reload1.c (reload_reg_unavailable): New static variable.
17405         (reload_reg_free_p): Test it.
17406         (reload_reg_free_for_value_p): Test it instead of
17407         reload_reg_used.
17408         (choose_reload_regs_init): Compute it.
17409
17410 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17411
17412         * reorg.c (fill_slots_from_thread): Check modified_in_p
17413         before replacing.
17414
17415 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17416
17417         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17418         these nodes even if INTERNALS is not set.
17419
17420 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17421
17422         * gcse.c (delete_null_pointer_checks_1): Cope when
17423         get_condition cannot determine the condition.
17424
17425 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17426
17427         * toplev.h (set_message_length): Declare.
17428
17429         * diagnostic.c (obstack_chunk_alloc): Define macro.
17430         (obstack_chunk_free): Likewise.
17431         (struct output_buffer): New data structure.
17432         (vmessage): Remove.
17433         (output_maximum_width): New variable.
17434         (doing_line_wrapping, set_message_length, init_output_buffer,
17435         get_output_prefix, output_space_left, emit_output_prefix,
17436         output_newline, output_append, output_puts, dump_output,
17437         vbuild_message_string, build_message_string, build_location_prefix,
17438         voutput_notice, output_printf, line_wrapper_printf,
17439         vline_wrapper_message_with_location):  New functions. Implement
17440         automatic line wrapping.
17441         (v_message_with_decl): Make it handle automatic line wrapping.
17442         (v_error_with_file_and_line): Likewise.
17443         (v_warning_with_file_and_line): Likewise.
17444         (announce_function): Likewise.
17445         (default_print_error_function): Likewise.
17446
17447 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17448
17449         * cpplib.h (struct cpp_options): Change lang_asm to char.
17450         Add lang_fortran.
17451         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17452         done in cpp_handle_option now.
17453         (initialize_builtins): Take out special case code used only by
17454         __STDC_VERSION__.
17455         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17456         if -traditional.  Recognize -lang-fortran and set
17457         lang_fortran, also turn off cplusplus_comments.
17458         (print_help): Document -lang-fortran.
17459         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17460         lang_asm. Ignore all directives other than `# 123 "file"' if
17461         CPP_PREPROCESSED.
17462         (cpp_get_token): If -traditional, don't recognize directives
17463         unless the # is in column 1.
17464         (parse_string): If lang_fortran or lang_asm, silently
17465         terminate strings ('' or "") at end of line.
17466         Remove unnecessary braces.
17467
17468 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17469             Richard Henderson  <rth@cygnus.com>
17470
17471         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17472         as used.
17473         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17474         strict_low_part when possible.
17475
17476 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17477
17478         * alias.c: PROTO -> PARAMS.
17479         * basic-block.h: Likewise.
17480         * bitmap.c: Likewise.
17481         * bitmap.h: Likewise.
17482         * builtins.c: Likewise.
17483         * c-aux-info.c: Likewise.
17484         * caller-save.c: Likewise.
17485         * calls.c: Likewise.
17486
17487 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17488
17489         * Makefile.in (toplev.o): Depend on regs.h.
17490
17491         * output.h (tdesc_section): Prototype.
17492
17493         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17494
17495         * sdbout.c: Include "tm_p.h".
17496
17497         * toplev.c: Include "regs.h".
17498
17499 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17500
17501         * unroll.c (unroll_loop): Add EH support.
17502
17503 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17504
17505         * pa-protos.h: New file.
17506
17507         * pa.c: Include recog.h and tm_p.h.
17508         (compute_zdepwi_operands, compute_movstrsi_length,
17509         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17510         find_addr_reg, import_milli): Add static prototypes.
17511         (pa_cpu_string, pa_arch_string): Constify a char*.
17512         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17513         (read_only_operand): Add argument `mode'.
17514         (singlemove_string, output_move_double, output_fp_move_double,
17515         output_block_move, output_and, output_ior, output_ascii,
17516         remove_useless_addtr_insns, milli_names, output_mul_insn,
17517         output_div_insn, output_mod_insn, output_arg_descriptor,
17518         output_cbranch, output_bb, output_bvb, output_dbra, ,
17519         output_millicode_call, output_call, hppa_encode_label,
17520         output_parallel_movb, output_parallel_addb): Constify a char*.
17521         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17522         (output_parallel_addb): Remove extra arg to `constrain_operands'
17523
17524         * pa.h:  Move all prototypes to pa-protos.h.
17525         (pa_cpu_string, pa_arch_string): Constify a char*.
17526         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17527
17528         * pa.md: Call `function_label_operand' with mode argument.
17529         Likewise for `read_only_operand'.
17530         Fix nesting of parens in call to `symbolic_operand'.
17531
17532 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17533
17534         * i860-protos.h: New file.
17535
17536         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17537         time warnings.
17538
17539         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17540
17541         * i860.md: Likewise.
17542
17543 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17544
17545         * i386.md (movstrsi expander): Rewrite.
17546         (movstrsi_1 insn): Deleted.
17547         (strmovhi, strmovqi expander): New expanders.
17548         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17549         * i386.c (x86_single_stringop): New global variable.
17550         * i386.h (x86_single_stringop): Declare.
17551         (TARGET_SINGLE_STRINGOP): New macro.
17552
17553 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17554
17555         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17556         integer vararg POSTINCREMENT before the destination of the jump
17557         for the hard fp case.
17558         (function_arg_pass_by_reference): Pass a copy of CUM to
17559         FUNCTION_ARG.
17560
17561         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17562         for CONSTANT_ADDRESS_P above while loop for subreg.
17563
17564 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17565
17566         * flow.c (propagate_block): When a prologue/epilogue insn
17567         is marked dead, unconditionally clear libcall_is_dead and
17568         insn_is_dead, and only dump rtl if warnings aren't being
17569         suppressed.
17570
17571 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17572
17573         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17574         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17575         (FIXED_REGISTERS): Set dirflag as fixed.
17576         (CALL_USED_REGISTERS): Set dirflag as used.
17577         (REG_ALLOC_ORDER): Set dirflag as last one.
17578         (DIRFLAG_REG): New macro.
17579         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17580         (HI_REGISTER_NAMES): Add dirflag.
17581         (DEBUF_PRINT_REG): Handle dirflag.
17582         * i386.md (type attribute): New cld and str types.
17583         (length_opcode attribute): Set cld and str to 1.
17584         (memory attribute): Set str to unknown - it is not clear from the
17585         patterns.
17586         (pent_np function unit): Prefixed string operations takes 12 cycles
17587         minimally; cld takes 2 cycles.
17588         (ppro_uops attribute): Str is "many" and cld is "few".
17589         (ppro_p0 unit): Handle cld here.
17590         (k6_alux unit): Handle cld and str types.
17591         (k6_load unit): It is ocupied by str opcodes.
17592         (k6_store unit): It is ocupied by str opcodes.
17593         (athlon_decode): Str is vector decoded.
17594         (athlon_ieu): Handle str and cld.
17595         (cld pattern): New.
17596         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17597         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17598         cmpstrsi_nz_1 insn): Do not output cld instruction
17599
17600 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17601
17602         * gcc.texi (G++ and GCC): Add Java and Chill.
17603         (Bug Critera): Don't list languages.
17604
17605         * gcc.texi (Incompatibilities): No longer claim most C compilers
17606         are K&R.
17607
17608         * gcc.texi (G++ and GCC): Update other front-ends list.
17609
17610 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17611
17612         * i386.c (ix86_expand_setcc): Fix typo.
17613         (ix86_expand_movcc): Similarly.
17614
17615         * Band-aid until haifa's bitset implementation is nuked.
17616         * haifa-sched.c (extract_bitlst): New parameter for size of the
17617         bitset in bits.  All callers changed.  Avoid looking at undefined
17618         bits in the bitset.
17619         (edgeset_bitsize): New variable.
17620         (schedule_region): Initialize edgeset_bitsize.
17621
17622 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17623
17624         * Makefile.in (optabs.o): Depend on real.h
17625         (resource.o): Depend on insn-attr.h
17626
17627         * builtins.c (result_vector): Wrap prototype in macro conditions
17628         governing definition and use.
17629
17630         * c-common.c: Include tm_p.h.
17631
17632         * c-lex.c: Likewise.
17633
17634         * elfos.h: Constify a char*.
17635
17636         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17637         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17638         parameter with ATTRIBUTE_UNUSED.
17639
17640         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17641         CHECK_FLOAT_VALUE.
17642
17643         * haifa-sched.c (schedule_insns): Mark parameter with
17644         ATTRIBUTE_UNUSED.
17645
17646         * optabs.c: Include real.h.
17647
17648         * real.h (ereal_atof): Add prototype arguments.
17649
17650         * resource.c: Include insn-attr.h.
17651
17652         * sdbout.c (sdbout_queue_anonymous_type,
17653         sdbout_dequeue_anonymous_types): Wrap in macro
17654         SDB_ALLOW_FORWARD_REFERENCES.
17655         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17656         ATTRIBUTE_UNUSED.
17657
17658         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17659
17660         * stupid.c: Include tm_p.h.
17661
17662         * tree.c (real_value_from_int_cst): Mark parameter with
17663         ATTRIBUTE_UNUSED.
17664
17665 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17666
17667         * i960-protos.h: New file.
17668
17669         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17670         time warnings.
17671
17672         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17673
17674 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17675
17676         * combine.c (expand_field_assignment): Do not discard SUBREGs
17677         while computing nonzero_bits.
17678
17679 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17680
17681         * config/arm/arm.c: Fix compile time warnings about signed vs
17682         unsigned constants.
17683         * config/arm/arm.h: Fix compile time warnings about signed vs
17684         unsigned constants.
17685
17686 2000-01-09  Philip Blundell  <philb@gnu.org>
17687
17688         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17689         than `ldm' with only one register.
17690         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17691         only one register.
17692
17693         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17694         clobbered.
17695
17696 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17697
17698         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17699         must have SImode.
17700
17701 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17702
17703         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17704         assignment used as truth value.
17705
17706         * function.c (assign_temp): Mark parameter `dont_promote' with
17707         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17708         PROMOTE_FOR_CALL_ONLY.
17709
17710         * genrecog.c (write_subroutine): Mark variable `operands' with
17711         ATTRIBUTE_UNUSED.
17712
17713         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17714         ATTRIBUTE_UNUSED.
17715
17716         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17717         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17718
17719         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17720         for `decl'.
17721
17722 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17723
17724         * config/c4x.h: Tidy up comments.
17725         * config/c4x.c: Likewise.
17726
17727 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17728
17729         * fold-const.c (lshift_double, rshift_double): Handle
17730         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17731
17732 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17733
17734         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17735         in prepare_function_start().
17736
17737 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17738
17739         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17740         longer allocate extra stack for function calls.
17741
17742 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17743
17744         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17745
17746 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17747
17748         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
17749
17750 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
17751
17752         * rs6000.c (processor_target_table): Add power3 as alias for 630.
17753         * aix43.h: Revert Aug 2 change.
17754         (HAS_INIT_SECTION): Define, not visible yet.
17755         (LD_INIT_SWITCH): Define, not visible yet.
17756         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
17757
17758         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
17759
17760         * collect2.c (main): Expand ld2 size further.
17761         (export_object_lst): Cast assignment to avoid warning.
17762         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
17763         (scan_prog_file, COFF): Do not collect initialization or
17764         finalization functions generated for entire shared object if
17765         init/fini support present.
17766
17767 2000-01-07  Nick Clifton  <nickc@cygnus.com>
17768
17769         * config/elfos.h: Tidy up formatting of marcos.  Make sure
17770         that .section directives are always prefixed by a tab.
17771
17772         * config/svr4.h: Add #include "elfos.h" and remove duplicate
17773         definitions.
17774
17775 2000-01-07  Matt Austern  <austern@sgi.com>
17776
17777         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
17778         expon.
17779
17780 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
17781
17782         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
17783         crtstuff.c.
17784         (crtbegin.o, s-crtS): Likewise.
17785
17786 2000-01-06  Richard Henderson  <rth@cygnus.com>
17787
17788         * alpha.md (adddi_2+1): Limit offset such that it will be
17789         loadable with a single ldah+lda pair.
17790         (adddi_2+2): Explicitly fail split if we can't make it work.
17791
17792 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
17793
17794         * protoize.c: Conditionally include unistd.h.
17795         (IS_SAME_PATH_CHAR): New macro.
17796         (IS_SAME_PATH): New macro.
17797         (CPLUS_FILE_SUFFIX): New macro.
17798         (cplus_suffix): New static variable.
17799         (is_abspath): New static function.
17800         (in_system_include_dir): Handle DOS style pathnames.
17801         (file_could_be_converted): Likewise.
17802         (file_normally_convertible): Likewise.
17803         (directory_specified_p): Likewise.
17804         (file_excluded_p): Likewise.
17805         (abspath): Likewise.
17806         (shortpath): Likewise.
17807         (referenced_file_is_newer): Likewise.
17808         (save_def_or_dec): Likewise.
17809         (do_processing): Likewise.
17810         (main): Likewise.
17811         (edit_file): Likewise. Use rename instead of link.
17812         (rename_c_file): Likewise. Don't rename syscalls file.
17813         (munge_compile_params): Define null device for DOS based systems.
17814         (process_aux_info_file): Use binary mode if appliable.
17815         (edit_file): Likewise.
17816         * invoke.texi (Running Protoize): Document C++ suffixes used.
17817
17818         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
17819         IS_DIR_SEPARATOR macros.
17820         * collect2.c: Likewise.
17821         * cppinit.c: Likewise.
17822         * dwarf2out.c: Likewise.
17823         * gcc.c: Likewise.
17824         * gcov.c: Likewise.
17825         * prefix.c: Likewise.
17826         * rtl.c: Likewise.
17827         * toplev.c: Likewise.
17828         * system.h: And move to here.
17829
17830         * prefix.c (update_path): Fix typo in variable name.
17831
17832 2000-01-06  Richard Henderson  <rth@cygnus.com>
17833
17834         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
17835         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
17836         (count_reg_sets_1, count_reg_references): Likewise.
17837         (flow_loops_level_compute): Start counting actual loop depth at 1.
17838         (flow_loops_find): Likewise.
17839         * local-alloc.c (update_equiv_regs): Likewise.
17840         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
17841
17842 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
17843
17844         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
17845         FIRST_PSEUDO_REGISTER
17846         * dwarf2out.c: Don't include frame.h
17847         * dwarfout.c: Likewise
17848         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
17849         frame.h
17850
17851 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
17852
17853         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
17854         dead registers.
17855
17856         * i386.c (movsf splitter): Fix typo in my last checkin.
17857
17858 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17859
17860         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
17861         own definition of this macro.
17862         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
17863         flag_data_sections or UNIQUE_SECTION_P are true.
17864
17865         * tm.texi (UNIQUE_SECTION): Document that it can be called for
17866         unitialised data decls.
17867
17868         * config/i386/winnt.c (i386_pe_unique_section): Cope with
17869         being called for uninitialised data.
17870
17871         * config/i386/interix.c (i386_pe_unique_section): Cope with
17872         being called for uninitialised data.
17873
17874         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
17875         for uninitialised data.
17876
17877         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
17878         for uninitialised data.
17879
17880         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
17881         for uninitialised data.
17882
17883         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
17884         (UNIQUE_SECTION_P): Always generate a unique section if
17885         flag_data_sections is true.
17886         (UNIQUE_SECTION): Also generate unique sections for
17887         uninitialised data.
17888         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
17889         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
17890         named_section().
17891
17892 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17893
17894         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
17895         SI, or DI.
17896
17897 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17898
17899         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
17900         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
17901         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
17902         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
17903         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
17904
17905         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
17906
17907 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
17908
17909         * c-decl.c (finish_enum): Simplify code to determine minimum and
17910         maximum values of the enum, and calculate the type.  Remove check
17911         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
17912         the DECL_INITIAL of each enumeration constant with a copy converted
17913         to the enumeration type.  When updating variant types, don't bother
17914         updating the type itself.
17915
17916         * c-typeck.c (build_binary_op): Simplify conditional expressions
17917         when weeding out spurious signed-unsigned warnings.  Add new
17918         spurious warning category: if the unsigned quantity is an enum
17919         and its maximum value fits in signed_type(result_type).  Update
17920         commentary.
17921         (build_conditional_expr): Warn here if one alternative is signed
17922         and the other is unsigned.
17923
17924 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17925
17926         * config/fr30/fr30.h: Remove extraneous comments.
17927
17928 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
17929
17930         * reload1.c (choose_reload_regs): When disabling a reload, also
17931         set reload_spill_index to -1.
17932
17933 2000-01-04  Joel Sherrill (joel@OARcorp.com>
17934
17935         * configure.in (m68*-*-rtemscoff*): New target, formal name for
17936         old m68*-*-rtems*.
17937         (m68*-*-rtemself*): New target.
17938         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
17939         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
17940         (sparc*-*-rtemself*): New target.
17941         (sparc*-*-rtems*): Now elf not a.out.
17942         * config/i386/rtems.h: Include config/rtems.h.
17943         * config/i386/rtemself.h: Include config/rtems.h.
17944         * config/i960/rtems.h: Include config/rtems.h.
17945         * config/m68k/rtems.h: Include config/rtems.h.
17946         * config/m68k/rtemself.h: Include config/rtems.h.
17947         * config/mips/rtems64.h: Include config/rtems.h.
17948         * config/pa/rtems.h: Include config/rtems.h.
17949         * config/rs6000/rtems.h: Include config/rtems.h.
17950         * config/sh/rtems.h: Include config/rtems.h.
17951         * config/sh/rtemself.h: Include config/rtems.h.
17952         * config/sparc/rtems.h: Include config/rtems.h.
17953         * config/sparc/rtemself.h: Include config/rtems.h
17954
17955 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
17956
17957         * final.c (shorten_branches): Correctly compute length of
17958         asms without operands.
17959
17960 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
17961
17962         * configure.in: Add pj target.
17963         * configure: Regenerate.
17964         * config/pj: New directory.
17965         * config/pj/lib1funcs.S: New file.
17966         * config/pj/linux.h: New file.
17967         * config/pj/pj.c: New file.
17968         * config/pj/pj.md: New file.
17969         * config/pj/pjl.h: New file.
17970         * config/pj/t-pj: New file.
17971         * config/pj/xm-pj.h: New file
17972
17973 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
17974
17975         * toplev.c (rest_of_compilation): Run shorten-branches before
17976         reg-stack for now.
17977
17978 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17979
17980         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
17981         macros so that they're consistent with their names.
17982         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17983         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17984
17985 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17986
17987         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
17988         modified inadvertently.
17989
17990 2000-01-04  Joel Sherrill <joel@OARcorp.com>
17991
17992         * configure.in (v850*-*-rtems*): New target.
17993         * configure: Regenerate.
17994         * config/v850/rtems.h: New file.
17995
17996 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
17997
17998         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
17999         (__gthread_key_create): Likewise.
18000         (__gthread_key_dtor):  Likewise.
18001         (__gthread_once): Fix logic.
18002         (__gthread_key_delete): Cast away constness.
18003
18004         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
18005         * invoke.texi: Document.
18006         * i386/mingw32.h (CPP_SPEC): Use.
18007         (LIBGCC_SPEC): Likewise.
18008         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
18009
18010 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18011
18012         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
18013         (HANDLE_PRAGMA_PACK): Undefine.
18014         (SLOW_UNALIGNED_ACCESS): Define.
18015
18016 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18017
18018         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18019         to default definition.
18020         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
18021         (store_fixed_bit_field): Call macro with word_mode and alignment.
18022         (extract_bit_field): Call macro with relevant mode and alignment.
18023         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18024         to default definition.
18025         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
18026         and alignment.
18027         (move_by_pieces_ninsns): Likewise.
18028         (clear_by_pieces): Likewise.
18029         (emit_push_insn): Likewise.
18030         (store_field): Call macro with relevant mode and alignment.
18031         (expand_expr): Likewise.
18032         (expand_expr_unaligned): Likewise.
18033
18034         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
18035         (SLOW_UNALIGNED_ACCESS): Define.
18036         (CASE_VECTOR_MODE): Always use 32-bit offsets.
18037         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
18038         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
18039         (toc_section): Likewise and .toc pseudo-op.
18040         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
18041         64-bit mode.
18042         (TEXT_SECTION_ASM_OP): Likewise.
18043         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
18044         32-bit offsets.
18045
18046         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
18047         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
18048         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
18049         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
18050         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
18051
18052 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
18053
18054         * regclass.c: Revert my Jan 4 change to loop cost computation.
18055
18056 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18057
18058         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
18059         compilation.
18060
18061 2000-01-04  Stan Cox  <scox@cygnus.com>
18062
18063         * haifa-sched.c (build_control_flow): Change unreachable simple
18064         loop test to check if current block has only one predecessor.
18065         (find_rgns): Initialize degree.  Use dest as degree index, not src.
18066
18067 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18068
18069         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
18070
18071         * calls.c (expand_call): Likewise for
18072         `old_stack_arg_under_construction'.
18073
18074         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
18075
18076         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
18077         `save_constant'.
18078
18079         * gcc.c (execute): Likewise for `ut' and `st'.
18080
18081         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
18082
18083         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
18084
18085         * jump.c (jump_optimize_1): Likewise for `temp2'.
18086
18087         * local-alloc.c (block_alloc): Likewise for `r1'.
18088
18089         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
18090
18091         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
18092         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
18093
18094         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
18095         and `set2'.
18096
18097         * reload.c (find_reloads): Likewise for `goal_alternative_number'
18098         and `goal_earlyclobber'.
18099
18100         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
18101
18102         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
18103
18104         * stupid.c (stupid_life_analysis): Likewise for `chain'.
18105
18106         * unroll.c (copy_loop_body): Likewise for `copy'.
18107
18108         * varasm.c (output_constructor): Likewise for `byte'.
18109
18110 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18111
18112         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
18113         all FP constants for constant->reg moves.
18114         (ix86_split_to_parts): Try to convert memory address into immediate
18115         when available in the constant pool.
18116         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
18117         moves.
18118         (LEGITIMATE_CONSTANT_P): Return 1.
18119         * i386.md (pushsf): New splitter to convert constant pool memory
18120         reference to immediate.
18121         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
18122         reload.
18123
18124 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
18125
18126         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
18127         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
18128         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
18129         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
18130         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
18131
18132 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
18133
18134         * ginclude/stdbool.h:  Support compilation as C++.
18135
18136 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
18137
18138         * fold-const.c (make_range): Don't try to reverse an unbounded range.
18139
18140 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
18141
18142         * regclass.c (regclass): Properly compute loop_cost.  Adjust
18143         comments.
18144
18145         * regclass.c: Fix minor whitespace problems.
18146
18147 2000-01-03  Anthony Green  <green@cygnus.com>
18148
18149         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
18150         Restore the pic register if required.
18151
18152 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18153
18154         * c-common.c (format_char_info): Update comment.
18155         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18156         was recognized.  Emit warning for formats new in ISO C99 only
18157         if flag_isoc9x is not set.
18158
18159 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18160
18161         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18162
18163 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18164
18165         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18166         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18167         (make_compound_operation): Choose cheaper alternative between
18168         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18169
18170         * regclass.c (op_costs): Remove global variable.
18171         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18172         (record_operand_costs): Break out from ...
18173         (scan_one_insn): ... here.
18174         (dump_regclass): Make dumps nicer.
18175         (regclass): Dump preferrences choosed and changes done during passes.
18176
18177 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18178
18179         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18180
18181 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18182
18183         * config/sparc/sparc.c (gen_df_reg): New function.
18184         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18185         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18186         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18187         movtf_cc_reg_sp64+1): Use it.
18188
18189 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18190
18191         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18192         copied LABEL_DECLs.
18193
18194 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18195
18196         * config/i386/i386.c (ix86_expand_unary_operator): Function
18197         definition made void.
18198         (ix86_expand_binary_operator): Update outdated preceding comment.
18199         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18200         prototype.
18201
18202         * config/i386/i386.c (override_options): Fix option-name typo.
18203
18204 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18205
18206         * system.h (CEIL): Define.
18207         * builtins.c (CEIL): Remove.
18208         * expmed.c (CEIL): Likewise.
18209         * expr.c (CEIL): Likewise.
18210         * stor-layout.c (CEIL): Likewise.
18211
18212 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18213
18214         * expr.c (store_constructor_field): Fix typo introduced with last
18215         gcc2 merge.
18216
18217 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18218
18219         * tree.h (BINFO_N_BASETYPES): New macro.
18220
18221 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18222
18223         * expmed.c (emit_store_flag): Prevent losing a pending stack
18224         adjust the same way we prevent losing queued increments.
18225
18226 See ChangeLog.2 for earlier changes.