OSDN Git Service

* config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
2
3         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
4         for vtable references.
5
6         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
7         choice, don't put integer values in FP regs.
8
9 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
10
11         * flow.c (verify_flow_info): Revamp code to verify that the
12         head and end of each basic block are in the insn chain.
13
14 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
15
16         * gcse.c (record_one_set): Prepend instead of append onto
17         reg_set_table, making it O(n) instead O(n^2).
18         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
19         Use a queue instead of a stack as worklist.
20
21 2000-07-20  Kazu Hirata  <kazu@hxi.com>
22
23         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
24         * h8300.h (OK_FOR_T): New.
25         (EXTRA_CONSTRAINT): Support OK_FOR_T.
26         * h8300.md: Use inc/dec.[wl] for increment/decrement
27         by 1 and 2 in HI and SI modes.
28
29 2000-07-20  Jim Wilson  <wilson@cygnus.com>
30
31         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
32         larger than 14 bits.
33
34 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
35
36         * cppmacro.c (CAN_PASTE_AFTER): New macro.
37         (count_params): Don't set GNU_REST_ARGS on anything.
38         (save_expansion): Set PASTE_LEFT only on tokens for which
39         CAN_PASTE_AFTER is true, or which are named operators.
40
41         * cpplex.c (parse_args): Distinguish between a rest argument
42         given one empty argument, and a rest argument given zero arguments.
43         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
44         deletion of previous token based on that.
45         (get_raw_token): Flatten some control structure.
46
47         * cpplib.h (CPP_LAST_EQ): Correct.
48         (VOID_REST): New token flag.
49         (GNU_REST_ARGS): Delete.
50
51         * tradcpp.c (main): Don't munge -D options.
52         (make_definition): Bring -D handling in line with cpplib.
53         (do_define): Strip all leading whitespace from macro definitions.
54
55 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
56
57         * Makefile.in (tradcpp): Depend on intl.o and version.o.
58
59 2000-07-20  Bruce Korb  <bkorb@gnu.org>
60
61         * fixincl/check.tpl: strip the platform specific types before testing
62         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
63         * fixincl/fixincl.tpl: use platform specific types
64         * fixincl/fixlib.h: include the platform specific types
65         * fixincl/inclhack.def(gnu_types): don't supply the types
66         * fixincl/fixincl.x: regen
67
68 2000-07-19  Jim Wilson  <wilson@cygnus.com>
69
70         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
71         GR_REGS.
72
73 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
74
75         * tradcpp.c (rescan): Do not recognize directives when the #
76         is indented.
77
78 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
79
80         Implement C++ named operators.
81
82         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
83         of operators allowed in #if and having an _EQ variant.  Add
84         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
85         (cpp_token flags): Add NAMED_OP.
86         (enum node_type): Add T_OPERATOR.
87         (struct cpp_hashnode): Add code slot to value union.
88         * cpphash.h (spec_nodes): Remove n_defined.
89
90         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
91         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
92         (is_macro_disabled): Tweak error messages.
93
94         * cpplib.c (get_define_node): Disallow all named operators as
95         macro names.  Tweak error messages.
96         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
97
98         * cppinit.c (builtin_array): Add entries for the named operators.
99         * cppexp.c (lex): Check for CPP_DEFINED token.
100         (priority table): Add entries for CPP_MIN and CPP_MAX.
101         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
102
103 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
104
105         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
106         larger than the array of cuids.
107         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
108         cuids.
109
110 2000-07-19  Bruce Korb  <bkorb@gnu.org>
111
112         * fixinc/fixincl.c:  Convert to using a table of environment variables
113         and activate the auto-edit marker on the fixed output files.
114         * fixinc/fixlib.h:  Define the environment table
115         * fixinc/fixincl.sh: export the ${INPUT} dir
116         * fixinc/check.tpl: likewise
117
118 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
119
120         * gcc.c (.h spec): Fix typo.
121
122 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
123
124         * Makefile.in: Fix tradcif.c path.
125
126 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
127
128         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
129           macros, not five.
130
131         * cpphash.h (TOKEN_NAME): New macro.
132         (_cpp_spell_operator): Deleted.
133         (token_spellings): Now _cpp_token_spellings.
134
135         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
136         * cpplex.c: Use OP and TK macros when expanding the
137         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
138         store the stringification of the enumeration name (CPP_CHAR,
139         etc.) in the name slot of token_spellings.
140         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
141         token_spellings directly.
142         * cpplib.c: Use TOKEN_SPELL.
143
144         * cpplex.c (_cpp_push_token): If the token being pushed back
145         is the previous token in this context, just subtract one from
146         context->posn.
147         * cppmacro.c (save_expansion): Clear aux field when storing a
148         placemarker.
149
150 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
151
152         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
153         buffer, provided it is not NULL.
154
155 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
156
157         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
158         case of invalid volatile re-declaration.
159
160 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
161
162         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
163         (expand_call): Adjust caller.
164
165 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
166
167         * diagnostic.h (report_diagnostic): Change prototype.
168
169         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
170         diagnostic_for_decl):  Change prototype.
171         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
172         error, warning, error_with_file_and_line,
173         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
174         Adjust call to report_diagnostic, diagnostic_for_decl.
175         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
176         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
177
178         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
179         varaible argument list.
180
181 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
182
183         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
184         moved to cppmacro.c.
185         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
186         dump_hash_helper): Delete.
187         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
188         cpp_forall_identifiers): New. Implement specialized version of
189         Vlad's expandable hash table.
190         (cpp_lookup): Use new functions.
191         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
192         implementation.
193         * cppmacro.c: New file.
194         * cppinit.c (dump_macros_helper): New.
195         (cpp_finish): Iterate over the identifier table directly.
196         * cpplex.c (parse_name): Calculate the hash of the identifier
197         while we scan it.  Use _cpp_lookup_with_hash when we can.
198
199         * cpphash.h: Update prototypes.
200         (xcnewvec, HASHSTEP): New helper macros.
201         * cpplib.h: Update prototypes.
202         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
203         (cppmacro.o): New rule.
204         (cpphash.o): Update deps.
205
206         * cppmain.c: Do not set pfile->printer if no_output is on.
207
208 2000-07-15  Neil Booth  <neilb@earthling.net>
209
210         * cpplib.c: Change all directive-handler functions to return
211         void, not int.
212         * cpphash.h: Update typedefs.
213
214 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
215
216         * configure: Regenerate.
217
218         * extend.texi (Extended Asm): Mention that a memory clobber
219         does not count as a side-effect.
220
221         * unroll.c (copy_loop_body): Fix one instance of using host
222         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
223         cross-compile.
224
225         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
226
227 2000-07-17  Richard Henderson  <rth@cygnus.com>
228
229         * config/ia64/ia64.md (movdi): Split out load address code.
230         New post-reload splitter for symbolic operands.
231         (movdi_internal): Abort if we didn't split symbolic operands
232         when we should have.
233         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
234         (ia64_reorg): Split insns when not optimizing.
235         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
236
237 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
238
239         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
240         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
241
242 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
243
244         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
245
246 2000-07-17  Jason Merrill  <jason@redhat.com>
247
248         * Makefile.in (clean): Remove libgcc directory.
249
250         * configure.in (-Wno-long-long check): Use higher-level macros.
251
252 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
253
254         * simplify-rtx.c (simplify_binary_operation): Recognize
255            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
256         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
257            a CONST_INT, it will always be zero.
258
259 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
260
261         * loop.c (check_dbra_loop) : Return if more than one condition is
262         present to control the loop.
263
264 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
265
266         * mips.c (mips_expand_prologue): Don't calculate the last argument
267         register unless we need it.  When we are calculating this, make
268         sure FUNCTION_ARG is giving us a REG.
269
270 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
271
272         * flow.c (libcall_dead_p): Use single_set to verify the insn
273         has only one set and get for analysis.
274         (propagate_one_insn): Don't pass the PATTERN of the insn.
275
276 2000-07-17  Mark Klein <mklein@dis.com>
277
278          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
279
280 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
281
282         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
283         * configure.in (TARGET_GETGROUPS_T): Evaluate.
284         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
285         of second argument of getgroups.
286         * configure, config.in: Rebuilt.
287
288 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
289
290         * simplify-rtx.c (simplify_relational_operation): Two signed
291         values with equal high words are less/greater than each other if
292         their low words are less/greater when considered as unsigned.
293
294 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
295
296         * configure.in (vax-*-openbsd):  Change to new style configuration,
297         add collect2/float_format information.
298         * configure:  Rebuilt.
299         * config/vax/openbsd1.h:  New.
300         * config/vax/openbsd.h:  New.
301         * config/vax/t-openbsd:  New.
302
303 2000-07-17  Chip Salzenberg  <chip@valinux.com>
304
305         * c-common.c (shorten_compare): Quiet warnings about unsigned
306         comparisons with zero when they occur in a system header.
307
308 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
309
310         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
311         update to describe current practice.
312
313         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
314
315         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
316         references to C9X.  Change references to -fstd and -flang-isoc9x
317         to refer to -std.
318
319         * c-common.c (scan_char_table): Allow "z" length modifiers on
320         diouxXn formats.
321         (check_format_info): Use TYPE_DOMAIN on the type matched against
322         for "z" formats, to retrieve the language size_t rather than the
323         internal one.
324
325         * c-common.c (check_format_info): Do not make a pedantic objection
326         to the 'L' length modifier if used with a floating point type
327         character.
328
329         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
330         constants in C99 mode.
331
332 2000-07-17  Kazu Hirata  <kazu@hxi.com>
333
334         * h8300.md: Fix the format of mac.
335         (movsi_h8300hs): Output a tab after stmac instead of a space.
336
337         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
338         profitable adds/subs sequences.
339
340         * fold-const.c: Fix comment typos.
341
342 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
343
344         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
345
346 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
347
348         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
349
350 2000-07-16  Neil Booth  <NeilB@earthling.net>
351
352         * cpplex.c: Update comments.
353         * README.Portability: Small update.
354
355 2000-07-16  Neil Booth  <NeilB@earthling.net>
356
357         * README.Portability:  Small update.
358
359 2000-07-15  Richard Henderson  <rth@cygnus.com>
360
361         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
362         * config/ia64/ia64.c (ia64_move_ok): New function.
363         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
364         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
365
366 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
367
368         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
369         immediately following a paste operator.
370         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
371         (cpp_reader_init): Call it, if HOST_EBCDIC.
372         (cpp_handle_options): Do not sort option list here.
373         (handle_option): Rename to cpp_handle_option and export.
374         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
375         _cpp_get_token directly.
376         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
377         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
378         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
379         cpp_scan_line.
380
381 2000-07-15  Richard Henderson  <rth@cygnus.com>
382
383         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
384         cast around an expression.  Tidy other unsigned tests.
385
386 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
387
388         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
389         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
390         (v_message_with_decl): Rename to ...
391         (format_with_decl): ... this. Tweak
392         (diagnostic_for_decl): New function.
393         (fatal_io_error): Use verbatim in lieu of notice.
394         (announce_function): Use verbatim.
395         (default_print_error_function): Likewise.
396         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
397         infratructure.
398
399 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
400
401         * mips.c (function_arg_pass_by_reference): Don't do automatic
402         aggregate initialization.
403         (machine_dependent_reorg): Initialize variable `mode'.
404
405         * mips.md (absdi2): Change variable `regno1' to unsigned int.
406         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
407         conflicts with sys/param.h macro of the same name.
408         (reload_outdi): Likewise.
409
410 2000-07-15  Michael Meissner  <meissner@redhat.com>
411
412         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
413         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
414         create a new node instead.
415
416 2000-07-15  Neil Booth  <NeilB@earthling.net>
417
418         * README.Portability: Correct example about calling a function
419         through a pointer to function.  Format wide paragraphs.
420
421 2000-07-15  Michael Meissner  <meissner@redhat.com>
422
423         * README.Portability: Update integer suffixes and function
424         prototype sections.
425
426 2000-07-15  Neil Booth  <NeilB@earthling.net>
427
428         * README.Portability: Small update.
429
430 2000-07-15  Neil Booth  <NeilB@earthling.net>
431
432         * README.Portability: New file.
433
434 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
435
436         * INSTALL: Give special instructions for building GCC on Irix 6.
437         * config/mips/x-iris6 (CC): Don't set it.
438         (OLDCC): Likewise.
439
440 2000-07-14  Jason Merrill  <jason@redhat.com>
441
442         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
443         register in the stack and later in another register, use the new
444         register.
445
446 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
447
448         * config/mips/mips.md: (absdi2): Handle sign_extend for
449         second operand.
450
451 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
452
453         * cpplib.c (do_pragma_dependency): Tidy warning messages.
454
455 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
456
457         * .cvsignore: Correct typo.
458
459 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
460
461         * .cvsignore: Add generated YACC files.
462         * objc/.cvsignore: New file.
463
464 2000-07-14  Neil Booth  <NeilB@earthling.net>
465
466         * cpplex.c (adjust_column): New funcion.
467         (skip_whitespace): Use it.
468         (skip_block_comment): Use it, and warn about /*/* with
469         -Wcomments.
470
471 2000-07-14  Neil Booth  <NeilB@earthling.net>
472
473         * cpphash.c (struct macro_info): Add new members.
474         (_cpp_free_definition): Delete the macro directly.
475         (count_params): Return void, with first token of
476         expansion in struct macro_info on success.
477         (parse_define): Return int.  Hoist syntax checking from
478         save_macro_expansion.  Leave call to save_expansion to
479         _cpp_create_definition.
480         (alloc_macro): Needs just 2 arguments.
481         (free_macro): Delete.
482         (save_expansion): Don't perform syntax check.
483         (_cpp_create_definition): Call save_expansion.
484
485 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
486
487         * genrecog.c (write_header): Split long string.
488
489         * cpphash.c (macro_info): Don't use the `signed' keyword.
490
491         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
492
493 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
494
495         * calls.c (stored_args_map): New variable.
496         (check_sibcall_argument_overlap_1): New.
497         (check_sibcall_argument_overlap): New.
498         (expand_call): Initialize stored_args_map.
499         Call check_sibcall_argument_overlap.
500
501 2000-07-13  Bruce Korb  <bkorb@gnu.org>
502
503         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
504         (emit_gnu_type): utility procedure for gnu_type_fix
505         (gnu_type_fix): implement various pre-processor guards around
506         standard types so these types can be defined over and over
507         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
508         types alluded to above will have GNU-compliant base types
509         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
510         * fixinc/inclhack.def: add test_text entries and utilize the new
511         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
512         * fixinc/fixincl.x: regenerate
513
514 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
515
516         * diagnostic.c (vline_wrapper_message_with_location,
517         v_message_with_file_and_line, v_error_with_file_and_file,
518         v_error_for_asm, v_warning_for_asm, vfatal,
519         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
520         vsorry, verror, vwarning, vpedwarn): Remove.
521         (diagnostic_for_asm): New function.
522         (pedwarn, error, warning, pedwarn_with_file_and_line,
523         error_with_file_and_line, warning_with_file_and_line, sorry,
524         error_for_asm, warning_for_asm, fatal): Reimplement.
525         (finish_diagnostic): Clear diagnostic info as well.
526
527 2000-07-13  Neil Booth  <NeilB@earthling.net>
528
529         * c-common.h (flag_digraphs): New.
530         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
531         * c-lex.c (yylex): Use flag_digraphs to decide whether to
532         honour digraphs.
533
534 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
535
536         * gcc.c (do_spec_1): Add new %B operator.
537         (set_input): Prepare for %B.
538
539         (link_command_spec): Move up with the other tm.h-
540         overrideable specs.  Factor out the portion conditional on
541         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
542         (struct compiler): Just have a single spec string.  All users
543         updated.
544         (default_compilers): Remove unnecessary braces.
545         (static_specs): Update.
546
547         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
548         named specs.
549         (C and assembly specs): Use the new named specs, as appropriate.
550
551         * objc/lang-specs.h: Use the new named specs.
552         Remove unnecessary braces.
553
554 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
555
556         * gcc.c (execute): If a subprocess gets a fatal signal, report
557         strsignal() of the signal number, and ask for a bug report.
558         Do not do this for SIGPIPE if there's already been an error.
559
560         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
561         Delete pipe_closed.
562
563         * tradcif.c: Remove.
564
565 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
566
567         * final.c (profile_function): Do not emit profile counters in
568         the data section, if NO_PROFILE_COUNTERS is defined.
569         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
570         FUNCTION_PROFILER.
571
572         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
573         (FUNCTION_PROFILER): Just emit a call to mcount.
574
575 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
576
577         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
578
579         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
580         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
581         traditional, lang_chill, or lang_fortran.
582
583         * cppfiles.c: #undef strcmp to suppress warning about macros
584         used without arguments.
585         (_cpp_execute_include): Use f, not fname, in "No include path"
586         error.
587         (_cpp_pop_file_buffer): New function.
588         * cpplib.c: Don't include <sys/mman.h>.
589         (cpp_push_buffer): Set line_base and lineno in new buffer.
590         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
591
592         * cpplex.c: Move all prototypes and structure declarations to the
593         top of the file.  Properly parenthesise some macro arguments.
594         (cpp_scan_line): New function.
595         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
596         don't need to walk up the stack counting.
597
598 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
599
600         * c-common.c (combine_strings): Emit a pedantic warning when a
601         string length is greater than the minimum ANSI C is required
602         to support.
603
604 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
605
606         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
607         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
608
609 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
610
611         * c-decl.c (define_label): Warn about identifier conflicts with
612         labels in traditional C.
613
614         * c-parse.in (unop +): Warn about the unary plus operator for
615         traditional C.
616
617         * c-typeck.c (store_init_value): Warn about automatic aggregate
618         initialization for traditional C.
619
620         * invoke.texi (-Wtraditional): Document new warnings.
621
622 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
623
624         * Makefile.in (c-errors.o): Fix thinko in dependency.
625
626 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
627
628         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
629         -traditional, -ftraditional, or -traditional-cpp was given.
630         Do not pass -traditional to the preprocessor.
631         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
632         preprocessor does it automatically.
633         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
634
635         * ch/lang-specs.h: Always use tradcpp.  Do not pass
636         -traditional, -trigraphs, or -pedantic to the preprocessor.
637         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
638         _LANGUAGE_FORTRAN.
639
640 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
641
642         * cppexp.c (LOGICAL): Delete macro.
643         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
644         and && directly.
645
646         * cpphash.c (HASHSIZE): Increase to 4096.
647         (struct hashdummy): Add hash field.
648         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
649         the string values using memcmp.
650         (cpp_lookup): Set dummy.hash.
651
652 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
653
654         * configure.in (m88k-openbsd): Express configuration using new fragment
655         style.
656         * configure: Rebuilt.
657         * m88k/aout-dbx.h: New.
658         * m88k/openbsd.h: New.
659         * m88k/xm-openbsd.h: New.
660
661 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
662
663         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
664
665 2000-07-12  Richard Henderson  <rth@cygnus.com>
666
667         * reload.c (push_secondary_reload): Make sure to add the new
668         reload at the end, after acquiring secondary memory.
669
670 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
671
672         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
673
674         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
675         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
676
677         * c-parse.in (stmt): Delete unused variables.
678
679         * convert.c (convert_to_vector): Likewise.
680
681         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
682
683         * tree.c (finish_vector_type): Prototype.
684
685 2000-07-12  Bruce Korb  <bkorb@gnu.org>
686
687         * fixinc/fixfixes.c: use xmalloc
688         * fixinc/fixincl.c(initialize): set program name for xmalloc
689         * fixinc/fixlib.c(must_malloc): obsolete
690         (is_cxx_header): no longer used - disabled
691         (skip_quote): inserted and disabled for future use
692         * fixinc/fixlib.h: reflects above
693         * fixinc/fixtests.c: removed dinkleberries
694
695 2000-07-12  Neil Booth  <NeilB@earthling.net>
696
697         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
698         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
699
700         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
701         struct toklist_dummy): New.
702         (cpp_free_definition): Free macros with free_macro.
703         (count_params): Don't save paramter spellings.  Save macro
704         information in a struct macro_info.
705         (parse_define): Don't allocate a token list.
706         (save_expansion): Allocate the macro's token list, and
707         save parameter spellings if necessary.  Use TOKEN_SPELL.
708         (cpp_create_definition): Make list const.
709
710 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
711
712         * c-typeck.c (pedwarn_c99): Move to
713         * c-errors.c: ... Here.
714         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
715         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
716         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
717         (c-errors.o): List dependency.
718
719 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
720
721         * c-parse.c: Remove.
722         * c-parse.h: Likewise.
723         * c-parse.y: Likewise.
724         * objc/objc-parse.c: Likewise.
725         * objc/objc-pasre.y: Likewise.
726
727 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
728
729         * gcc.texi: Fix minor typos
730         * extend.texi: Fix minor typos
731
732 2000-07-11  Marc Espie <espie@openbsd.org>
733
734         * collect2.c (main): Recognize .lo as object files.
735
736 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
737
738         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
739         true.
740
741         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
742         with MAP_ANONYMOUS and MAP_ANON.
743         * configure, config.in: Rebuilt.
744
745 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
746
747         * diagnostic.c (save_output_state): Remove.
748         (restore_output_state): Likewise.
749         (clear_text_info): New function.
750         (clear_diagnostic_info): Likewise.
751         (output_text_length, is_starting_newline, output_prefix,
752         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
753         prefixing_policy, output_buffer_ptr_to_format_args): New macros
754         (set_real_maximum_length, output_set_maximum_length,
755         output_set_prefix, output_get_prefix, output_set_maximum_length,
756         output_destroy_prefix, init_output_buffer,
757         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
758         output_add_newline, output_add_character, output_add_space,
759         output_append_r, output_append, wrap_text, output_format,
760         output_do_printf, output_printf, output_do_verbatim,
761         output_verbatim, verbatim): Use them.
762         (output_clear): Split into cleat_text_info and
763         clear_diagnostic_info.
764         (struct output_state): Move to...
765
766         * diagnostic.h: ...Here
767         (struct output_buffer): Adjust.
768
769 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
770
771         * cpplex.c (parse_name): No longer inline (premature optimization).
772         (do_pop_context): Fold into pop_context.
773         (pop_context): Returns int.
774         (lex_next): Hoist test for end of directive into pop_context.
775         (push_macro_context): Returns int; takes just reader and token.
776         Hoist test for excessive nesting to caller.
777         (push_arg_context): Returns void; takes just reader and token.
778         Do not call stringify_arg or get_raw_token.
779         (get_raw_token): Convert tail recursion through push_arg_context
780         to a loop at this level.  Call stringify_arg here if appropriate.
781         (maybe_paste_with_next): Convert tail recursion to a while loop.
782         Hoist test of paste_level to caller.
783
784         (stringify_arg): Push arg context at beginning.
785         (cpp_get_token): Split out core into _cpp_get_token.  Call
786         process_directive here.  Throw away CPP_PLACEMARKER tokens.
787         (_cpp_get_token): Convert tail recursion through
788         push_macro_context to a loop at this level.
789         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
790         _cpp_get_raw_token): Use _cpp_get_token.
791         (_cpp_skip_rest_of_line): Drop the context stack directly; do
792         not call pop_context.
793         (_cpp_run_directive): Call lex_next directly.
794
795         * cpphash.h: Prototype _cpp_get_token.
796         * cppexp.c (lex): Use it.
797         * cpphash.c (parse_define): Use it.
798         * cpplib.c (get_define_node, do_undef, parse_include,
799         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
800         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
801         parse_ifdef, validate_else): Use it.
802         (cpp_push_buffer): Tweak error message; abort if anyone tries
803         to push a buffer while macro expansions are stacked.
804
805 2000-07-11  Donn Terry  <donnte@microsoft.com>
806
807         * cpplex.c (free_macro_args, save_token): Cast arg of free
808         and/or xrealloc to PTR.
809         (_cpp_init_input_buffer): Clear all fields of the base context.
810
811 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
812
813         * gensupport.c (process_rtx): Make rtl checking stop
814         complaining about the define_insn while it is being
815         converted from a define_insn_and_split.
816
817 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
818
819         * config/mips/mips.c (simple_memory_operand): Access the
820         INTVAL of the address, not it's containing MEM.
821
822 2000-07-11  Bruce Korb  <bkorb@gnu.org>
823
824         * fixinc/fixtests.c(double_slash): obsolete
825         (else_endif_label): likewise
826         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
827         (libc1_ifdefd_memx): correct initial comment
828         and omit the #if/#endif pair from the memxxx declarations
829         * fixinc/fixincl.x: regen
830
831 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
832
833         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
834
835 2000-07-11  Neil Booth  <NeilB@earthling.net>
836
837         * cpp.texi: Update.
838
839 2000-07-11  Neil Booth  <NeilB@earthling.net>
840
841         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
842         (handle_option): Set digraphs according to standard.
843         Merge OPT_lang_c89 handler with OPT_std_c89.
844
845         * cpplex.c: (lex_line, can_paste): Honour digraphs in
846         accordance with the digraphs flag.
847
848         * cpplib.h: (struct cpp_options): New option digraphs.
849
850 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
851             Bruce Korb  <bkorb@gnu.org>
852
853         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
854         * fixinc/fixincl.x: Regenerate.
855         * fixinc/tests/base/testing.h: Add testcase.
856
857 2000-07-10  Richard Henderson  <rth@cygnus.com>
858
859         * config/ia64/ia64.c (got_symbolic_operand): New.
860         (symbolic_operand, move_operand): Revert 0701 change.
861         * config/ia64/ia64.h (PREDICATE_CODES): Update.
862         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
863         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
864         split the offset into a 14-bit low part instead of a 13-bit low part.
865         (load_fptr): Mark the mem as unchanging.
866         (load_symptr): Use got_symbolic_operand.
867
868 2000-07-10  Nick Clifton  <nickc@cygnus.com>
869
870         * libgcc2.c (next_stack_level): Cast result of computation to
871         (void **) so that the assignment does not generate a warning.
872
873 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
874
875         * flags.h : Add new variable flag_single_precision_constant.
876         * toplev.c (display_help) : Add -fsingle-precision-constant option.
877         (flag_single_precision_constant): New.
878         * c-lex.c (yylex): Convert floating point constant to single
879         precision constant.
880         * invoke.texi : Add documentation for this new option.
881
882 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
883
884         * diagnostic.c (output_octal): Second parameter is unsigned.
885         (output_long_octal): Likewise.
886         (output_hexadecimal): Likewise.
887         (output_long_hexadecimal): Likewise.
888         (output_format): Adjust arguments extraction. Tweak.
889         (output_verbatim, verbatim): End variable argument list.
890         (report_diagnostic): Improve documentation.
891
892 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
893
894         * c-common.h (build_stmt): Declare.
895         (build_continue_stmt): Likewise.
896         (build_break_stmt): Likewise.
897         (build_return_stmt): Likewise.
898
899         * c-decl.c (do_case): Rewrite to do what previously done in
900         c-parse.in.
901
902         * c-semantics.c (build_stmt): Define.
903         (build_return_stmt): Likewise.
904         (build_break_stmt): Likewise.
905         (build_continue_stmt): Likewise.
906         (build_case_label): Likewise.
907
908         * c-parse.in (BREAK): Change to build tree, then generate RTL.
909         (CONTINUE): Likewise.
910         (RETURN): Likewise.
911         (CASE): Likewise.
912         (DEFAULT): Likewise.
913
914         * c-parse.y: Regenerate.
915         * c-pasre.c: Likewise.
916
917 2000-07-09  Jason Merrill  <jason@redhat.com>
918
919         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
920
921         * tree.h (STRIP_NOPS): Check for error_mark_node.
922         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
923         (dwarf2out_*): Remove duplicate declarations.
924
925         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
926         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
927
928 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
929
930         * diagnostic.c (wrap_text): New function.
931         (maybe_wrap_text): Likewise.
932         (output_add_string): Use it.
933         (output_format): Likewise.
934         (count_error): Use verbatim instead of notice.
935         (report_error_function): Likewise. Don't use plain fprintf.
936         (finish_diagnostic): New function.
937         (output_do_verbatim): Tweak.  Commonalize functionalities in
938         output_verbatim and verbatim.
939         (output_verbatim): Adjust.
940         (verbatim): Likewise.
941         (report_diagnostic): Define.
942
943         * diagnostic.h (report_diagnostic): Prototype.
944
945 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
946
947         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
948
949 2000-07-09  Neil Booth  <NeilB@earthling.net>
950
951         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
952         IShspace, ISspace: Update.
953
954         * cppinit.c: ISTABLE: Update.
955         V: New.
956
957         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
958         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
959         (skip_block_comment, skip_line_comment, parse_string,
960         lex_line): Use is_vspace rather than IS_NEWLINE.
961         (skip_whitespace, lex_line): Clean up to use is_nvspace.
962         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
963         gets a BOL flag.
964         (lex_next): Unconditionally stop if within a directive.
965         Treat directives within macro invocations as directives
966         (after parse_args emits error), not as the argument.
967
968 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
969
970         * diagnostic.c (diagnostic_args): New macro.
971         (diagnostic_msg): Likewise.
972         (output_formatted_integer): Likewise.
973         (output_state): New data type.
974         (digit_buffer): Make global.
975         (output_add_integer): Rename to output_decimal. Squeeze
976         digit_buffer.
977         (output_long_decimal, output_unsigned_decimal,
978         output_long_unsigned_decimal, output_octal, output_long_octal,
979         output_hexadecimal, output_long_hexadecimal): New functions.
980         (output_append_r): New function.
981         (output_append): Tweak.
982         (output_flush_on): Rename to output_to_stream.
983         (output_format): Change prototype.  Improve documentation. Handle
984         more format specifiers.
985         (build_location_prefix): Rename to context_as_prefix.
986         (output_notice): Rename to output_do_printf.
987         (output_printf): Tweak.
988         (line_wrapper_printf): Likewise.
989         (vline_wrapper_message_with_location): Adjust call to renamed
990         functions.
991         (v_message_with_decl): Likewise.
992         (default_print_error_function): Likewise.
993         (save_output_state): New function.
994         (restore_output_state): Likewise.
995         (output_do_verbatim): Likewise.
996         (output_verbatim): Define.
997         (verbatim): Likewise.
998
999         * diagnostic.h (printer_fn): Change return type from void to int.
1000         Improve documentation.
1001         (output_add_integer): Rename to output_decimal.
1002         (output_flush_on, output_format): Don't export.
1003         (output_verbatim, verbatim): Declare.
1004
1005 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
1006
1007         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
1008         Check whether c divides op1 exactly if operation is not
1009         multiplication.
1010
1011 2000-07-08  Richard Henderson  <rth@cygnus.com>
1012
1013         * final.c (final): Do not abort when reg-stack introduces
1014         a new insn.
1015
1016 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
1017
1018         * cpplib.h (struct cpp_name): Now struct cpp_string.
1019         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
1020         CPP_HEADER_NAME): Change to type S.
1021         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
1022         field, a cpp_hashnode *.  All references to val.name updated
1023         to use val.str or val.node as appropriate.
1024         (struct cpp_reader): Add spec_nodes field.
1025         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
1026
1027         * cpphash.h (struct spec_nodes): New.
1028         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
1029         val.str.  All references to 'spelling > SPELL_NONE' updated to
1030         match.
1031
1032         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
1033         pfile->buffer->inc are not NULL before dereferencing them.
1034
1035         * cpplex.c (parse_name): Take a pointer to the current token,
1036         plus current position and limit as args; return the new
1037         position; don't copy the text of a name into the string
1038         buffer, instead call cpp_lookup and store the node pointer.
1039         If extending a token, copy out the text of the old into a
1040         scratch buffer, append the new, look that up and store the new
1041         node pointer.  Inline.
1042         (maybe_paste_with_next): If the result of paste is a NAME,
1043         then look up the pasted text and store its node pointer.
1044         (lex_line): Adjust for new parse_name interface.
1045         Check for L"str", L'str' using spec_nodes->n_L.
1046         (spell_token): SPELL_IDENT tokens have their spelling in
1047         val.node->name.  Handle SPELL_STRING tokens that don't have
1048         string delimiters.
1049         (_cpp_expand_name_space,
1050         (can_paste): Check for L ## "str" using spec_nodes->n_L.
1051         (cpp_get_token, special_symbol): No need to call cpp_lookup.
1052         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
1053         return 1=equal 0=not, not a tristate.
1054
1055         * cpphash.c (var_args_str): Delete.
1056         (find_param): Compare node fields directly.
1057         (is__va_args__): Use CPP_PEDANTIC.  Just compare
1058         token->val.node with spec_nodes->n__VA_ARGS__.
1059         (dump_funlike_macro): Don't use var_args_str.
1060
1061         * cpplib.c (_cpp_check_directive): Just walk through
1062         spec_nodes->dirs comparing pointers.
1063         (get_define_node, do_pragma_poison, detect_if_not_defined,
1064         parse_ifdef): The identifier has already been looked up.
1065         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
1066         node.
1067         (do_if): Only call detect_if_not_defined at beginning of file.
1068         (_cpp_parse_assertion): Only copy string pointers for
1069         SPELL_STRING tokens.
1070         (pragma_dispatch): Take a node pointer and examine its name
1071         field.
1072         (_cpp_init_stacks): Also initialize the spec_nodes structure.
1073
1074         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
1075         _cpp_init_macros.
1076         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
1077         reverse order from the corresponding _cpp_init_* routines.
1078
1079         * cppexp.c (parse_number, parse_charconst, parse_defined,
1080         lex): Check val.node->type instead of calling cpp_defined.
1081         Use spec_nodes entries where appropriate.
1082
1083         * fix-header.c, scan-decls.c: Update for interface changes.
1084
1085 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
1086
1087         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
1088         emitting aux_truncdfsf2.
1089
1090 2000-07-03  Donn Terry  (donnte@microsoft.com)
1091
1092         * cppinit.c (print_help): split overlong line into ISO C89
1093         maximum chunks.
1094
1095 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1096
1097         * cppexp.c: Update all code for new lexer interface.
1098         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
1099         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
1100         * cpplex.c (token_names): Trim leading CPP_ from names; make
1101         the strings unsigned.
1102         (_cpp_spell_operator): New.
1103         (is_macro_disabled): Disable all macros if rescanning
1104         preprocessed text.
1105         (_cpp_get_directive_token): Remove.
1106
1107         * cppinit.c: Don't set no_macro_expand.
1108         * cpplib.c (read_line_number, do_line): Check only for EOF,
1109         not VSPACE.
1110         * cpphash.h: Update prototypes.
1111         * cpplib.h (CPP_VSPACE): Remove.
1112         (struct cpp_reader): Remove no_macro_expand.
1113
1114 2000-07-08  Neil Booth  <NeilB@earthling.net>
1115
1116         * cpphash.c (is__va_args__): New function.
1117         (count_params): Fix line reported in error messages.  Use
1118         is__va_args__.  Don't return ')' on error.  Flag GNU style
1119         rest args macro definitions.
1120         (parse_define): Check macro name is not __VA_ARGS__.
1121         (save_expansion): Check identifier in non-varargs-macro is
1122         not __VA_ARGS__.  Don't flag GNU_VARARGS.
1123         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
1124         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
1125          than per-token GNU_VARARGS.
1126         * cpplib.h (GNU_VARARGS): Remove.
1127         (GNU_REST_ARGS): New.
1128
1129 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1130
1131         * i386.md (call_pop, call, call_value_pop): Do not set
1132         current_function_uses_pic_offset_table for calls to static
1133         functions or indirect calls.
1134
1135 2000-07-07  Jim Wilson  <wilson@cygnus.com>
1136
1137         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
1138         is_predicate_reg, then take max write_count of register pair.
1139
1140 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1141
1142         * tradcpp.c (main): Rename label `include' to `add_include' to
1143         avoid conflicts with variable `include' in traditional C.
1144
1145 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1146
1147         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
1148
1149 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1150
1151         * sibcall.c (uses_addressof): Add INMEM argument, check for
1152         current_function_internal_arg_pointer outside of MEM rtxs in addition
1153         to ADDRESSOFs.
1154         (sequence_uses_addressof): Update caller.
1155
1156 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1157
1158         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
1159         and friends.
1160
1161 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1162
1163         * system.h (UNION_INIT_ZERO): New macro for initializing union
1164         members in structs.
1165
1166         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
1167
1168 2000-07-07  Neil Booth  <NeilB@earthling.net>
1169
1170         * cpp.texi: Update.
1171
1172 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
1173
1174         * final.c (final): Detect out of bounds array access to
1175         the insn_lengths array.
1176
1177 2000-07-07  Kazu Hirata  <kazu@hxi.com>
1178
1179         * fold-const.c (fold): Fix a comment typo.
1180
1181 2000-07-07  Neil Booth  <NeilB@earthling.net>
1182
1183         * cpp.texi: Update to new lexer.
1184
1185 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1186
1187         * tradcpp.c: New file.
1188         * tradcif.y: New file.
1189         * tradcif.c: New generated file.
1190
1191         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
1192         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
1193         dependencies of C.  Install tradcpp from install-common, in
1194         $(libsubdir).
1195
1196 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1197
1198         * cppinit.c: Include cppdefault.h.  Refer to
1199         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
1200         to GCC_INCLUDE_DIR and its length.
1201         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1202         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
1203         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
1204         cppdefault.h.
1205         (include_defaults_array): Move to cppdefault.c.
1206
1207         * cppdefault.h: New file.
1208         * cppdefault.c: New file.
1209
1210         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
1211         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
1212         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
1213         this file.
1214
1215 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1216
1217         * reload.c (push_reload): When seeing if can reuse a register,
1218         check extra registers against widest of INMODE and OUTMODE.
1219
1220 2000-07-06  Neil Booth  <NeilB@earthling.net>
1221
1222         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
1223         based on full length of predicate.
1224
1225 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
1226
1227         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
1228         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
1229
1230 2000-07-05  Kazu Hirata  <kazu@hxi.com>
1231
1232         * h8300-proto.h: Fix formatting.
1233         * h8300.c: Likewise.
1234         * h8300.h: Likewise.
1235
1236 2000-07-05  Jim Wilson  <wilson@cygnus.com>
1237
1238         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
1239         CCmode.
1240
1241 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
1242
1243         * invoke.texi: Fix minor typos
1244         * md.texi: Fix minor typos
1245
1246 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
1247
1248         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
1249
1250 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1251
1252         * cpplex.c: Don't include sys/mman.h.
1253         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
1254
1255         * cpplib.c: Include sys/mman.h and obstack.h.
1256         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
1257         obstack.
1258         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
1259         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
1260         bother freeing if stack entries (they will be freed with their buffer).
1261         (do_endif): Free if stack entries from the buffer obstack.
1262         (push_conditional): Allocate if stack entries from the buffer obstack.
1263
1264         (find_answer): Rename to _cpp_find_answer.
1265         (do_assert, do_unassert): Update.
1266
1267         * cpphash.h: Update prototypes.
1268         (xobnew): New convenience macro.
1269         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
1270         Update comments.
1271         (struct cpp_hashnode): Remove disabled field.
1272
1273         * cppinit.c: Don't include hashtab.h or splay-tree.h.
1274         (report_missing_guard): Moved to cppfiles.c.
1275         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
1276         cpp_init_includes.
1277         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
1278         cpp_cleanup_includes.  Don't destroy hashtab or
1279         all_include_files here.
1280         (cpp_finish): Use _cpp_report_missing_guards.
1281
1282         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
1283         (_cpp_init_include_table): Rename _cpp_init_includes.
1284         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
1285
1286         * cppexp.c (parse_assertion): Update for new name of
1287         find_answer.
1288
1289         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
1290
1291 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1292
1293         * cpplib.c (do_ident): s/VSPACE/EOF/
1294
1295 2000-07-05  Neil Booth  <NeilB@earthling.net>
1296
1297         * cpplex.c: Fix trigraph replacement within strings.
1298
1299 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1300
1301         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
1302
1303         * xcoffout.c (assign_type_number): Constify.
1304         (xcoffout_source_file): Add static prototype.  Don't needlessly
1305         cast away const-ness.
1306
1307 2000-07-04  Jason Merrill  <jason@redhat.com>
1308
1309         * frame.h (frame_state): Move base_offset to end.
1310
1311 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1312
1313         * calls.c (emit_library_call_value_1): Revert previous change.
1314
1315 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1316
1317         * fix-header.c (struct partial_proto): Remove unnecessary fields.
1318         (recognized_extern, recognized_function, read_scan_file):
1319         Update for new scheme.
1320         (check_protection): It's still a multiple include guard even
1321         if it doesn't always trigger.
1322         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
1323         new scheme.
1324         * scan.h: Declare struct cpp_token.  Update prototypes.
1325
1326 2000-07-03  Neil Booth  <neilb@earthling.net>
1327             Zack Weinberg  <zack@wolery.cumb.org>
1328
1329         Complete overhaul of the lexer and macro expander.
1330
1331         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
1332         arg, arglist, argdata, reflist, collect_objlike_expansion,
1333         collect_funlike_expansion, collect_params,
1334         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
1335         unsafe_chars, macarg, compare_defs, special_symbol,
1336         scan_arguments, stringify, funlike_macroexpand,
1337         _cpp_quote_string, monthnames): Delete.
1338         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
1339         _cpp_create_definition, _cpp_dump_definition,
1340         dump_hash_helper): Adjust.
1341         (find_param, count_params, parse_define, var_args_str,
1342         check_macro_redefinition, save_expansion): New.
1343
1344         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
1345         parse_string, output_line_command, trigraph_replace,
1346         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
1347         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
1348         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
1349         _cpp_skip_rest_of_line): Modify.
1350
1351         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
1352         find_position, null_warning, bump_column, expand_name_space,
1353         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
1354         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
1355         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
1356         _cpp_prescan): Delete.
1357
1358         (dump_param_spelling, process_directive, lex_next,
1359         is_macro_disabled, stringify_arg, expand_context_stack,
1360         output_token, make_string_token, alloc_number_token,
1361         special_symbol, duplicate_token, maybe_paste_with_next,
1362         can_paste, prevent_macro_expansion, restore_macro_expansion,
1363         get_temp_token, release_temp_tokens, quote_string,
1364         token_names, token_spellings, _cpp_expand_name_space,
1365         _cpp_glue_header_name, _cpp_reserve_name_space,
1366         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
1367         placemarker_token, eof_token, cpp_context, macro_args,
1368         get_raw_token, parse_arg, parse_args, save_token,
1369         push_arg_context, push_macro_context, pop_context,
1370         do_pop_context, free_macro_args, _cpp_get_line,
1371         _cpp_run_directive): New.
1372
1373         * cpplib.c (validate_else, parse_include, push_conditional,
1374         pass_thru_directive, read_line_number, parse_ifdef,
1375         detect_if_not_defined, _cpp_check_directive, do_define,
1376         do_undef, do_include, do_import, do_include_next, do_error,
1377         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
1378         top_pragmas, do_pragma_gcc, do_pragma_implementation,
1379         do_pragma_poison, do_pragma_system_header,
1380         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
1381         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
1382         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
1383         cpp_defined): Update for new scheme.
1384         (strtoul_for_line, get_define_node, dump_macro_name,
1385         _cpp_check_linemarker, _cpp_parse_assertion): New.
1386         (_cpp_handle_directive, do_pragma_default): Delete.
1387
1388         * cpphash.h (struct predicate): Now struct answer.
1389         (enum spell_type, struct token_spelling, struct directive,
1390         directive_handler): New.
1391         Update prototypes.  Remove unused macros.
1392         * cpplib.h: Update prototypes.  Remove unused macros,
1393         structure definitions, and fields.
1394
1395         * cpperror.c (print_containing_files, v_message): Adjust.
1396         * cppexp.c (parse_assertion, lex, parse_escape,
1397         _cpp_parse_expr): Adjust.
1398         * cppfiles.c (open_include_file, _cpp_execute_include,
1399         _cpp_compare_file_date, cpp_read_file, read_include_file):
1400         Adjust.
1401         * cppinit.c (dump_special_to_buffer): Delete.
1402         (append_include_chain, merge_include_chains, cpp_reader_init,
1403         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1404         cpp_finish, handle_option, print_help): Adjust.
1405         * cppmain.c (main): Adjust.
1406
1407 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1408
1409         * cppspec.c (lang_specific_driver): Use double quotes in error
1410         message.
1411
1412 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1413
1414         * calls.c (emit_library_call_value_1): Use valreg instead
1415         of hard_libcall_value.
1416
1417 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1418
1419         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1420         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1421         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1422         (movhi): Likewise.
1423         (movqi): Likewise.
1424         (movdf): Likewise.
1425         (movsf): Likewise.
1426         (movdi): Likewise.
1427         (movti): Likewise.
1428
1429         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1430         mode instead of wider_mode is being used.
1431
1432 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1433
1434         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1435         of 'r'. Use q_regs_operand.
1436         (andsi_1+2): Use q_regs_operand.
1437
1438 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1439
1440         * builtins.c (get_memory_rtx): Always put into alias set 0.
1441
1442 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1443
1444         * config/arm/arm.md: Fix post increment and pre increment
1445         peepholes so that they do not generate UNPREDICATBLE opcodes.
1446         (ie ones where the increment clobbers the source/destination).
1447
1448 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1449
1450         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1451         change too big for -mtiny-stack" a warning, if larger than 63.
1452         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1453         always safe to use on possible future devices.
1454         (function_prologue): Write SPH before SPL, for consistency.
1455         If interrupt_func_p true, we know we have enabled interrupts.
1456         (avr_num_arg_regs): New function.  Round up to even number of
1457         bytes if no -mpack-args or if calling a libgcc function.
1458         (function_arg, function_arg_advance): Use it.
1459         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1460         Output "movw" if available.
1461         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1462         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1463         (asm_output_section_name): Add blanks for consistent output.
1464         (encode_section_info): Set TREE_READONLY for progmem data to
1465         avoid gas warnings about changed section attributes.
1466         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1467         even numbered registers on devices with "movw".
1468         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1469         (TARGET_SWITCHES): Mark help strings for translation.
1470         Add new -mpack-args and -menhanced switches.
1471         (TARGET_OPTIONS): Mark help strings for translation.
1472         (progmem_section): Add section attributes.
1473         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1474         Output "movw" if available.
1475         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1476         New patterns.
1477         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1478         call convention (arguments aligned on even registers).
1479         (_cleanup, _exit): Make weak symbols libc can override.
1480
1481 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1482
1483         * fp-bit.h: New file.
1484
1485         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1486         Comment #endif statements.
1487         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1488
1489 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1490
1491         * gcse.c (compute_pre_data): Compute ae_kill using other local
1492         properties instead of calling compute_ae_kill.
1493
1494         * alias.c (init_alias_analysis): Do not call
1495         prologue_epilogue_contains until after reload has completed.
1496
1497 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1498
1499         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1500         (genrtl_finish_compound_stmt): Likewise.
1501         (genrtl_compound_stmt): Change to return void.
1502
1503         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1504         move code from here to ...
1505         (genrtl_compound_stmt): ... here.
1506         (genrtl_finish_compound_stmt): Remove.
1507         (expand_stmt): Add comment.
1508
1509 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1510
1511         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1512         and VOID_TYPE_P.
1513
1514 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1515
1516         * cpplib.h (struct cpp_reader): New field include_depth.
1517         (struct cpp_printer): Rename last_bsd to last_id.
1518         * cppfiles.c (read_include_file): Bump include_depth.
1519         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1520         (output_line_command): Output correct #line if a header
1521         is including itself and is not protected against multiple inclusion.
1522         Use include_depth instead of buffer_stack_depth, last_id instead of
1523         last_bsd.
1524         * cppinit.c (cpp_start_read): Initialize last_id instead of
1525         last_bsd.
1526
1527 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1528
1529         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1530         (c-semantics.o): New target.
1531
1532         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1533         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1534         (genrtl_clear_out_block): Likewise.
1535         (genrtl_goto_stmt): Likewise.
1536         (genrtl_expr_stmt): Likewise.
1537         (genrtl_decl_stmt): Likewise.
1538         (genrtl_if_stmt): Likewise.
1539         (genrtl_while_stmt): Likewise.
1540         (genrtl_do_stmt): Likewise.
1541         (genrtl_return_stmt): Likewise.
1542         (genrtl_for_stmt): Likewise.
1543         (genrtl_break_stmt): Likewise.
1544         (genrtl_continue_stmt): Likewise.
1545         (genrtl_scope_stmt): Likewise.
1546         (genrtl_switch_stmt): Likewise.
1547         (genrtl_case_label): Likewise.
1548         (genrtl_begin_compound_stmt): Likewise.
1549         (gerntl_finish_compound_stmt): Likewise.
1550         (genrtl_compound_stmt): Likewise.
1551         (genrtl_asm_stmt): Likewise.
1552         (genrtl_decl_cleanup): Likewise.
1553         (DECL_ANON_UNION_ELEMS): Likewise.
1554         (emit_local_var): Likewise.
1555         (make_rtl_for_local_static): Likewise.
1556         (expand_cond): Likewise.
1557         (expand_stmt): Likewise.
1558         (c_expand_return): Likewise.
1559         (c_expand_start_case): Likewise.
1560         (do_case): Likewise.
1561         (COMPOUND_STMT_NO_SCOPE): Likewise.
1562         (c_expand_asm_operands): Likewise.
1563         (NEW_FOR_SCOPE_P): New macro.
1564         (expand_expr_stmt_fn): New type.
1565
1566         (set_current_function_name_declared): Likewise.
1567         (current_function_name_declared): Likewise.
1568         (lang_expand_stmt): Likewise.
1569         (stmts_are_full_exprs_p): Likewise.
1570         (anon_aggr_type_p): Likewise.
1571         (lang_expand_expr_stmt): Likewise.
1572         (build_case_label): Likewise.
1573
1574         * c-decl.c (lang_expand_expr_stmt): Initialize.
1575         (stmts_are_full_exprs_p): Define.
1576         (current_function_name_declared): Likewise.
1577         (do_case): Likewise.
1578         (lang_expand_stmt): Likewise.
1579         (set_current_function_name_declared): Likewise.
1580         (anon_aggr_type_p): Likewise.
1581
1582         * c-semantics.c: New file.
1583         (expand_cond): Moved from cp/semantics.c.
1584         (genrtl_do_pushlevel): Likewise.
1585         (genrtl_clear_out_block): Likewise.
1586         (genrtl_goto_stmt): Likewise.
1587         (genrtl_expr_stmt): Likewise.
1588         (genrtl_decl_stmt): Likewise.
1589         (genrtl_if_stmt): Likewise.
1590         (genrtl_while_stmt): Likewise.
1591         (genrtl_do_stmt): Likewise.
1592         (genrtl_return_stmt): Likewise.
1593         (genrtl_for_stmt): Likewise.
1594         (genrtl_break_stmt): Likewise.
1595         (genrtl_continue_stmt): Likewise.
1596         (genrtl_scope_stmt): Likewise.
1597         (genrtl_switch_stmt): Likewise.
1598         (genrtl_case_label): Likewise.
1599         (genrtl_begin_compound_stmt): Likewise.
1600         (genrtl_finish_compound_stmt): Likewise.
1601         (genrtl_compound_stmt): Likewise.
1602         (genrtl_asm_stmt): Likewise.
1603         (genrtl_decl_cleanup): Likewise.
1604         (make_rtl_for_local_static): Moved from cp/decl.c.
1605         (emit_local_var): Likewise.
1606         (expand_stmt): Define.
1607
1608         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1609         (c_expand_return): Likewise.
1610         (c_expand_start_case): Likewise.
1611
1612 2000-07-01  Richard Henderson  <rth@cygnus.com>
1613
1614         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1615         with the low 13 bits set.
1616         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1617         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1618         of the low 13 bits into a CONST plus an adddi3.
1619         (load_symptr): Set RTX_UNCHANGING_P.
1620
1621 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1622
1623         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1624         * c-common.c (ridpointers): Declare.
1625         * c-common.h (enum rid): Declare.
1626         (NORID): Likewise.
1627         (ridpointers): Likewise.
1628         * c-lex.c (ridpointers): Don't declare.
1629         (init_lex): Initialize ridpointers.
1630         * c-lex.h (enum rid): Don't declare.
1631         (NORID): Likewise.
1632         (RID_FIRST_MODIFIER): Likewise.
1633         (ridpointers): Likewise.
1634
1635 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1636
1637         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1638         have global scope.
1639
1640 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1641
1642         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1643         always an error.
1644
1645 2000-06-30  Catherine Moore  <clm@cygnus.com>
1646
1647         * c-common.c (decl_attributes):  Differentiate between
1648         types and type decls for alignment.
1649
1650 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1651
1652         * cpp.texi: Document #pragma GCC dependency
1653         * cppfiles.c (open_include_file): Set date to unknown.
1654         (_cpp_compare_file_date): New function.
1655         (read_include_file): Set file date.
1656         * cpphash.h (struct include_file): Add date member.
1657         (_cpp_compare_file_date): Prototype.
1658         * cpplib.c (parse_include): Add trail parameter. Adjust.
1659         (do_include): Adjust parse_include call.
1660         (do_import): Likewise.
1661         (do_include_next): Likewise.
1662         (gcc_pragmas): Add dependency pragma.
1663         (do_pragma_dependancy): New pragma.
1664
1665 2000-06-29  Jason Merrill  <jason@redhat.com>
1666
1667         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1668         no operands.
1669
1670 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1671
1672         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1673         a volatile mem and FR_REGS.
1674
1675 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1676
1677         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1678         * c-common.h (flag_const_strings): Declare.
1679         (warn_format): Likewise.
1680         (flag_traditional): Likewise.
1681         (flag_isoc99): Likewise.
1682         (warn_parentheses): Likewise.
1683         (warn_conversion): Likewise.
1684         (C_TYPE_OBJECT_P): Likewise.
1685         (C_TYPE_INCOMPLETE_P): Likewise.
1686         (C_TYPE_FUNCTION_P): Likewise.
1687         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1688         (C_EXP_ORIGINAL_CODE): Likewise.
1689         (build_unary_op): Likewise.
1690         (build_binary_op): Likewise.
1691         (lvalue_p): Likewise.
1692         (default_conversion): Likewise.
1693         (common_type): Likewise.
1694         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1695         (C_TYPE_INCOMPLETE_P): Likewise.
1696         (C_TYPE_FUNCTION_P): Likewise.
1697         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1698         (C_EXP_ORIGINAL_CODE): Likewise.
1699         (common_type): Likewise.
1700         (default_conversion): Likewise.
1701         (build_binary_op): Likewise.
1702         (build_unary_op): Likewise.
1703         (lvalue_p): Likewise.
1704         (flag_const_strings): Likewise.
1705         (warn_format): Likewise.
1706         (warn_conversion): Likewise.
1707         (flag_traditional): Likewise.
1708         (flag_isoc99): Likewise.
1709         (warn_parentheses): Likewise.
1710
1711 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1712
1713         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1714
1715         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1716         same.  Only tie XFmode with XFmode.
1717
1718 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1719
1720         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1721         * Makefile.in: Update deps.
1722
1723 2000-06-29  Andrew Haley  <aph@cygnus.com>
1724
1725         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1726         to true.
1727
1728 2000-06-29  Andrew Haley  <aph@cygnus.com>
1729
1730         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1731         bytes: remove the multiply by 8.
1732
1733 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1734
1735         * rtl.c : Revert NLS changes.
1736         * gcc.c : Fix bug in display_help introced by my last changes.
1737
1738 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1739
1740         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1741         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1742
1743 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1744
1745         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1746
1747 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1748
1749         * c-decl.c : Mark strings for translation.
1750         (parmlist_tags_warning): Use distinct messages instead
1751         of conditional expressions.
1752         * diagnostic.c (v_message_with_decl): Mark string for translation.
1753         * gcc.c: Mark messages for translation.
1754         (display_help): Combine messages into one string where necessary.
1755         * mips-tfile: Add intl.h. Mark messages for translation.
1756         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1757         messages for translation.
1758         * timevar.c: Mark messages for translation.
1759         * tlink.c: Likewise.
1760         * toplev.c: Likewise.
1761
1762 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1763
1764         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1765
1766         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1767         use -isystem instead of -idirafter.
1768         * i386/i386-interix.h: Likewise.
1769
1770 2000-06-28  Jason Merrill  <jason@redhat.com>
1771
1772         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1773         unless DWARF2_DEBUGGING_INFO is defined.
1774         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1775
1776 2000-06-28  Richard Henderson  <rth@cygnus.com>
1777
1778         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1779
1780 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1781
1782         * cpplex.c (output_line_command): Output correct #line if a header
1783         is including itself and is not protected against multiple inclusion.
1784
1785 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1786
1787         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1788         ENFILE, close all cached file descriptors and try again.
1789         (_cpp_execute_include): Keep a count of the number of times
1790         each header is included.
1791         (close_cached_fd): New function.
1792         * cpphash.h (struct include_file): Rename before to
1793         include_count; all users updated.  Make include_count and sysp
1794         unsigned short.
1795         * cppinit.c (cpp_finish): If -H, report headers that could use
1796         reinclude guards.
1797         (report_missing_guard): New function.
1798
1799 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1800
1801         * i386.md (prologue_set_got): Set length_immediate field.
1802         (testqi_ccno_1):  Add missing '@' character.
1803
1804 2000-06-27  Jason Merrill  <jason@redhat.com>
1805
1806         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1807         DWARF_FRAME_REGNUM.
1808
1809 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1810
1811         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1812         unsigned macros available.
1813
1814 2000-06-27  Richard Henderson  <rth@cygnus.com>
1815
1816         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1817         epilogue_deallocate_stack.
1818
1819         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1820         completers for UNORDERED and ORDERED as well.
1821         * config/ia64/ia64.md (bunordered, bordered): New.
1822         (sunordered, sordered): New.
1823
1824 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1825
1826         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1827         * i386.c (ix86_attr_length_default): Kill.
1828         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1829         New.
1830         * i386-protos.h (ix86_attr_length_default): Kill
1831         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1832         Add prototype
1833         * i386.md (attribute type): Add "test".
1834         (attribute length_prefix): Kill.
1835         (attribute length_opcode): Kill.
1836         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1837         prefix_rep, prefix_0f, modrm): New.
1838         (attribute length): Compute using the new attributes.
1839         (attribute pent_prefix): New.
1840         (attribute pent_pair): Compute using pent_prefix.
1841         (all insn patterns): Set mode,modrm and immediate_length attributes where
1842         needed.
1843         (cmpsi patterns): Compute sizes propertly for test instruction.
1844         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1845         (movstricthi_xor, movstrictqi_xor): New patterns.
1846         (andsi/andhi): Use splitters to generate xor instructions.
1847         (xorqi_ext_1): New pattern.
1848         (movstricthi->movstricthi_xor peep2): New.
1849
1850 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1851
1852         * i386.md (addqi_low_1): Remove.
1853
1854 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1855
1856         * 1750a.h: Mark help strings for options/switches for translation.
1857         * a29k.h: Likewise.
1858         * alpha.h: Likewise.
1859         * arm.h: Likewise.
1860         * pe.h: Likewise.
1861         * riscix.h: Likewise.
1862         * c4x.h: Likewise.
1863         * clipper.h: Likewise.
1864         * convex.h: Likewise.
1865         * elxsi.h: Likewise.
1866         * fr30.h: Likewise.
1867         * fx80.h: Likewise.
1868         * h8300.h: Likewise.
1869         * i370.h: Likewise.
1870         * cygwin.h: Likewise.
1871         * dgux.h: Likewise.
1872         * djgpp.h: Likewise.
1873         * i386.h: Likewise.
1874         * osf1elf.h: Likewise.
1875         * osfrose.h: Likewise.
1876         * sco5.h: Likewise.
1877         * win32.h: Likewise.
1878         * i860.h: Likewise.
1879         * paragon.h: Likewise.
1880         * i960.h: Likewise.
1881         * ia64.h: Likewise.
1882         * m32r.h: Likewise.
1883         * mcore.h: Likewise.
1884         * mips.h: Likewise.
1885         * mn10300.h: Likewise.
1886         * ns32k.h: Likewise.
1887         * pdp11.h: Likewise.
1888         * pj.h: Likewise.
1889         * aix.h: Likewise.
1890         * aix41.h: Likewise.
1891         * aix43.h: Likewise.
1892         * beos.h: Likewise.
1893         * rs6000.h: Likewise.
1894         * sysv4.h: Likewise.
1895         * linux.h: Likewise.
1896         * linux64.h: Likewise.
1897         * sp64-elf.h: Likewise.
1898         * sparc.h: Likewise.
1899         * splet.h: Likewise.
1900         * v850.h: Likewise.
1901         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1902         for translation.
1903         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1904         Properly document option and mark for translation.
1905         * sp86x-elf.h: Likewise.
1906
1907 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1908
1909         Add MMX and SSE registers to i386 machine description.
1910         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1911         ix86_local_alignment): Declare.
1912
1913         * i386.h (TARGET_MMX, TARGET_SSE): New.
1914         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1915         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1916         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1917         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1918         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1919         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1920         (RETURN_IN_MEMORY): Handle MMX/SSE.
1921         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1922         also get stack space.
1923         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1924         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1925         (MMX_REGISTER_NAMES): New.
1926         (ALIGN_MODE_128): New macro.
1927         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1928         (DATA_ALIGNMENT): Likewise.
1929         (LOCAL_ALIGNMENT): Likewise.
1930         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1931         TARGET_MMX/TARGET_SSE.
1932         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1933         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1934         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1935         SSE/MMX regs and something else.
1936         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1937         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1938         3 if moving between MMX regs and something else.
1939
1940         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1941         (regclass_map): Add MMX/SSE registers.
1942         (print_operand): Add code to print XMMWORD as appropriate.
1943         (ix86_split_movdi): Abort for MMX regs.
1944         (init_cumulative_args): Also allow SSE_REGS
1945         (function_arg_advance, function_arg): Likewise
1946         (print_reg): Support 'm'.  Add case for TImode.
1947         (override_options): TARGET_SSE implies TARGET_MMX.
1948         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1949         New functions.
1950
1951         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1952         FIRST_SSE_REG.
1953         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1954         memory.
1955         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1956         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1957
1958 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1959
1960         * ssa.c (struct rename_set_data): Change the name of field
1961         'set_dest' to 'old_reg'.  Add comments.
1962         (struct rename_context): Change the name of 'set_data' to
1963         'new_renames'.  Add new field 'done_renames'.
1964         (create_delayed_rename): New function.
1965         (apply_delayed_renames): New function.
1966         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1967         SUBREGs and similar by emitting a move.
1968         (new_registers_for_updates): Delete, functionality moved to
1969         apply_delayed_renames.
1970         (rename_block): Handle moves emitted by rename_insn_1 by putting
1971         them into a SEQUENCE with the original insn.  Add sanity checks
1972         and comments.
1973         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1974         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1975
1976 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1977             Jason Merrill <jason@redhat.com>
1978
1979         * dwarf2.h (enum dwarf_call_frame_info): Add
1980         DW_CFA_def_cfa_expression.
1981         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1982         dw_loc_descr_struct entry.
1983         (struct cfa_loc): New structure to track a CFA location.
1984         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1985         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1986         offset, plus handle DW_CFA_def_cfa_expression.
1987         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1988         cfa_loc record.
1989         (dwarf2out_def_cfa): Entry point maintained for compatability.
1990         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1991         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1992         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1993         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1994         cfa_reg.
1995         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1996         sequences for the new DW_CFA_def_cfa_expression record.
1997         (dwarf2out_frame_debug): Use new variables/fields.A
1998         (output_cfi): Handle DW_CFA_def_cfa_expression.
1999         (output_cfa_loc): New function to generate a CFI record for
2000         DW_CFA_def_cfa_expression.
2001         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
2002         a dw_loc_descr sequeunce.
2003         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
2004         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
2005         size_of_locs, output_loc_operands, output_loc_sequence): Move into
2006         unwind info section.
2007         * frame.h (frame_state): Add base_offset and indirect fields.
2008         * frame-dwarf2.c (decode_stack_op): New function to interpret a
2009         dw_loc_descr operation.
2010         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
2011         (struct frame_state): Add base offset and indirect fields.
2012         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
2013
2014 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2015
2016         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
2017         Make warnings about implicit int be pedwarns in C99.  Don't warn
2018         about duplicate type qualifiers in C99.
2019         (start_function): Make warning about implict int return type be a
2020         pedwarn in C99.
2021         * c-lex.c (yylex): Don't warn about `long long' in C99.
2022         * c-typeck.c (c_expand_return): In C99, always pedwarn about
2023         `return' with no value in function returning non-void.
2024
2025 2000-06-26  Richard Henderson  <rth@cygnus.com>
2026
2027         * c-typeck.c (pedwarn_c99): New.
2028         * diagnostic.c (verror, vwarning, vpedwarn): Export.
2029         * toplev.h: Prototype them.
2030
2031 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2032
2033         * c-typeck.c (digest_init): Return error_mark_node node when
2034         TREE_TYPE (init)  == error_mark_node.
2035
2036 2000-06-26  Philipp Thomas  <pthomas@suse.de>
2037
2038         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
2039         test for msgfmt without path instead.
2040         * configure: Rebuilt.
2041
2042 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2043
2044         * gengenrtl.c (special_rtx): Fix typo in comment.
2045
2046 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2047
2048         * mklibgcc.in (LIB2FUNCS): Add missing space.
2049
2050 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2051
2052         * tree.h (enum tree_index): Add vector type nodes.
2053         Add accessor macros for them.
2054         (TYPE_REPRESENATION_TYPE): New macro.
2055         * tree.c (build_common_tree_nodes_2): Build these nodes.
2056         (finish_vector_type): New function.
2057         * c-common.c (type_for_mode): Handle vector modes.
2058         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
2059
2060         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
2061         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
2062         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
2063         (gen_type_die): Likewise.
2064         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
2065         (fundamental_type_code): Likewise.
2066         (type_is_fundamental): VECTOR_TYPEs aren't.
2067         (output_type): Handle VECTOR_TYPEs.
2068
2069 2000-06-25  Kazu Hirata  <kazu@hxi.com>
2070
2071         * config/arm.c: Fix a comment typo.
2072         * config/arm.h: Likewise.
2073
2074 2000-06-25  Philipp Thomas  <pthomas@suse.de>
2075
2076         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
2077         compiler found.
2078         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
2079         * configure: Rebuilt.
2080
2081 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
2082
2083         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
2084
2085 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2086
2087         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
2088         libgcc.a.
2089
2090 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
2091
2092         * collect2.c (resolve_lib_name): Move '/' check out of loop.
2093
2094 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
2095
2096         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
2097
2098 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
2099
2100         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
2101         last_unconditional_cleanup.
2102
2103 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2104
2105         * tree.def (VECTOR_TYPE): New node type.
2106         * tree.h: Adjust some comments to reflect addition of vector types.
2107         (TYPE_VECTOR_SUBPARTS): New macro.
2108         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
2109         * c-convert.c (convert): Likewise.
2110         * convert.c (convert_to_integer): Handle vector modes.
2111         (convert_to_vector): New function.
2112         * convert.h (convert_to_vector): Declare.
2113         * expr.c (convert_move): Handle vector modes.
2114         * expmed.c (extract_bit_field): Don't abort for vector modes.
2115
2116 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
2117
2118         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
2119         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
2120         New functions, common code moved from function_{prologue,epilogue}
2121         and extended to support the -mtiny-stack option.
2122         (function_prologue, function_epilogue): Use them.
2123         Use lo8/hi8 consistently for asm output readability.
2124         (avr_hard_regno_mode_ok): New function.
2125         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
2126         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
2127         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
2128         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
2129         Write SPH before SPL.
2130         (*movqi): No need to disable interrupts for just one "out"
2131         in alternative 5.  Change length attribute from 4 to 1.
2132         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
2133         Write SPH before SPL.
2134
2135 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2136
2137         * rtl.texi (Vector Operations): New node.
2138         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
2139         (Conversions): Add ss_truncate, us_truncate.
2140         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
2141         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
2142         US_TRUNCATE): New rtx codes.
2143         * machmode.def: Add vector modes.
2144         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
2145         MODE_VECTOR_FLOAT.
2146         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
2147         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
2148         (VECTOR_MODE_P): New.
2149
2150 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
2151
2152         * cpp.texi: Clarify #pragma GCC namespace.
2153
2154 2000-06-24  Philipp Thomas  <pthomas@suse.de>
2155
2156         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
2157         all catalogs specified in ALL_LINGUAS.
2158         * configure: Rebuilt.
2159
2160 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2161
2162         * config/sparc/sparc.md (reload_outdi+1): Handle
2163         HOST_BITS_PER_WIDE_INT == 64 case correctly.
2164         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
2165
2166 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
2167
2168         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
2169         struct vs. scalar-ness when -fno-strict-aliasing.
2170
2171 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
2172
2173         * cpplib.c (struct pragma_entry): New structure.
2174         (pragma_dispatch): Pragma dispatcher.
2175         (top_pragmas, gcc_pragmas): New static variables.
2176         (do_pragma): Use pragma_dispatch.
2177         (do_pragma_gcc): New pragma handler.
2178         * cpp.texi: Update.
2179
2180 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2181
2182         * calls.c (compute_argument_addresses): Force stack slots into
2183         alias set 0.
2184         * expr.c (emit_push_insn): Force pushes into alias set 0.
2185
2186 2000-06-23  Richard Henderson  <rth@cygnus.com>
2187
2188         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
2189         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
2190
2191 2000-06-22  Jason Merrill  <jason@redhat.com>
2192
2193         * toplev.c (compile_file): Always call timevar_print.
2194         * Makefile.in (calls.o): Depend on TIMEVAR_H.
2195
2196 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2197
2198         * varasm.c (constant_descriptor): Make contents unsigned char.
2199         (mark_const_hash_entry): Adjust.
2200         (const_hash): Just hash the code of unknown nodes.
2201         (compare_constant_1): Adjust for unsigned char.
2202         Use language specific expander on unknown nodes.
2203         (record_constant_1): Likewise.
2204
2205 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2206
2207         * cppfiles.c (cpp_make_system_header): New function.
2208         * cpplib.h: Prototype it.
2209         * cpplib.c (do_line, do_pragma_system_header): Use it.
2210         * fix-header.c (read_scan_file): Use it.
2211
2212         * fix-header.c (check_macro_names): Cast second arg of
2213         cpp_defined to const unsigned char *.
2214         (read_scan_file): Make getchar_call const unsigned char.
2215
2216 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2217
2218         * cppfiles.c: Include splay-tree.h, not hashtab.h.
2219         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
2220         (destroy_include_file_node): New.
2221         (_cpp_init_include_hash): Rename _cpp_init_include_table.
2222         Create a splay tree, not a hash table.
2223         (open_include_file): Look up the path in the include table,
2224         do the multiple include optimization here, etc.
2225         (cpp_included): Walk the path.
2226         (find_include_file): Just walk the path calling
2227         open_include_file, or call it directly for an absolute path.
2228         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
2229         scheme.
2230         (read_include_file): Update for new scheme.  Don't close the
2231         file unless reading fails.
2232         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
2233
2234         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
2235         (struct include_file): New.
2236         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
2237         macros.
2238         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
2239         Update prototypes.
2240
2241         * cppinit.c: Include splay-tree.h.
2242         (cpp_reader_init, cpp_cleanup): Update.
2243
2244         * cpplib.h (struct cpp_buffer): Change ihash field to
2245         'struct include_file *inc'.  Remove system_header_p.
2246         (struct cpp_reader): Change all_include_files to a
2247         struct splay_tree_s *.
2248
2249         * cpplex.c: Update all references to cpp_buffer->ihash and/or
2250         cpp_buffer->system_header_p.
2251         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
2252
2253         * Makefile.in (SPLAY_TREE_H): New macro.
2254         (cppfiles.o, cppinit.o): Update dependencies.
2255
2256 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
2257
2258         * invoke.texi (g++): "g++" is not a script anymore.
2259
2260 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2261
2262         * function.c (round_down): Delete obsolete prototype.
2263
2264         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
2265
2266 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
2267
2268         * configure.in: Use 'test a = b' not 'test a == b'.
2269         * configure: Regen.
2270
2271         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
2272
2273         * Makefile.in: Remove all references to HOST_INTLLIBS.
2274
2275         * cpplex.c (parse_name): Don't warn about $ in identifiers if
2276         skipping.
2277
2278 2000-06-20  Philipp Thomas  <pthomas@suse.de>
2279
2280         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
2281         for PA 2.0.
2282
2283 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2284
2285         * Take REG_INC notes into account.
2286
2287 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
2288
2289         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
2290         (primary: IDENTIFIER): Just call build_external_ref.
2291         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2292         Regenerate.
2293         * c-lex.c (lastiddecl): Remove.
2294         (yylex): Replace all instances of lastiddecl with local
2295         variables.
2296
2297         * c-typeck.c (build_external_ref): New function.  Treat decls
2298         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
2299         Look up the decl from the id here.  Call lookup_objc_ivar.
2300         * c-lang.c (lookup_objc_ivar): Stub.
2301         * objc/objc-act.c (lookup_objc_ivar): New function.
2302
2303         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
2304         * c-lex.h: Don't declare lastiddecl.
2305
2306 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
2307
2308         * c-common.h (IF_COND): Added documentation.
2309         (THEN_CLAUSE): Likewise.
2310         (ELSE_CLAUSE): Likewise.
2311         (WHILE_COND): Likewise.
2312         (WHILE_BODY): Likewise.
2313         (DO_COND): Likewise.
2314         (DO_BODY): Likewise.
2315         (RETURN_EXPR): Likewise.
2316         (EXPR_STMT_EXPR): Likewise.
2317         (FOR_INIT_STMT): Likewise.
2318         (FOR_COND): Likewise.
2319         (FOR_EXPR): Likewise.
2320         (FOR_BODY): Likewise.
2321         (SWITCH_COND): Likewise.
2322         (SWITCH_BODY): Likewise.
2323         (CASE_LOW): Likewise.
2324         (CASE_HIGH): Likewise.
2325         (GOTO_DESTINATION): Likewise.
2326         (COMPOUND_BODY): Likewise.
2327         (ASM_CV_QUAL): Likewise.
2328         (ASM_STRING): Likewise.
2329         (ASM_OUTPUTS): Likewise.
2330         (ASM_INPUTS): Likewise.
2331         (ASM_CLOBBERS): Likewise.
2332         (DECL_STMT_DECL): Likewise.
2333         (STMT_EXPR_STMT): Likewise.
2334         (LABEL_STMT_LABEL): Likewise.
2335
2336         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
2337         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
2338         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
2339         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2340
2341 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2342
2343         * configure.in (--enable-checking): Update --help doc to reflect
2344         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
2345
2346 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2347
2348         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
2349
2350         * function.c (put_var_into_stack): Don't reference DECL_ fields
2351         if input is a SAVE_EXPR.
2352         Use set_mem_attributes in COMPLEX case.
2353
2354 2000-06-18  Richard Henderson  <rth@cygnus.com>
2355
2356         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
2357         (ia64_file_start): Declare.
2358         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
2359         (GR_REGNO_P): Likewise.
2360         * config/ia64/ia64.c: Many prototypes.
2361         (ia64_reg_numbers): Constify.
2362         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
2363         (ia64_section_threshold): Make unsigned.
2364         (ia64_print_operand): Constify.
2365         (fix_range): Constify.
2366         (ia64_init_builtins): Don't compare signed vs unsigned.
2367         (ia64_expand_builtin): Likewise.
2368
2369         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
2370         (CONSTRAINT_OK_FOR_Q): New.
2371         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
2372         (movsf_internal, movdf_internal): Likewise.
2373         (cmovdi_internal): Rewrite so that constraints and predicates match;
2374         simplify splitters.
2375         (cmovsi_internal): Likewise.
2376
2377         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
2378         (ASM_FILE_START): New.
2379         * config/ia64/ia64.c (ia64_file_start): New.
2380         (rtx_needs_barrier): Handle pred.rel.mutex.
2381         (emit_predicate_relation_info): New.
2382         * config/ia64/ia64.md (pred_rel_mutex): New.
2383         * config/ia64/linux.h (ASM_SPEC): Define.
2384         * config/ia64/sysv4.h (ASM_FILE_START): Define.
2385
2386         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
2387         filtering global register variables.
2388
2389 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2390
2391         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
2392
2393 2000-06-17  Michael Meissner  <meissner@redhat.com>
2394
2395         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
2396         not present and there is a field after a '-'.
2397
2398 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2399
2400         * fixinc/check.tpl:  finish the implementation of multiple tests
2401         for a single fix
2402         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2403         (io_quotes_def): add a second test
2404         (various): reorder `files' so that "limits.h" is never first
2405         * fixinc/tests/base/*: update the testing output
2406
2407 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2408
2409         * gcc.texi: Remove reference to stupid.c.
2410
2411 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2412
2413         * c-common.c (c_tree_code_type): New array.
2414         (c_tree_code_length): Likewise.
2415         (c_tree_code_name): Likewise.
2416         (add_c_tree_codes): New function.
2417
2418         * c-common.h (add_c_tree_codes): Declare.
2419         (enum c_tree_code): New enum.
2420
2421         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2422
2423 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2424
2425         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2426         select pattern to also match macro defs with only one argument.
2427
2428 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2429
2430         * i386.md: Create new [right,left] rotate and right shift
2431         patterns to optimize shift by 1 bit for certain ia32 processors.
2432         Update patterns which perform left shifts to optimize shift by
2433         1 bit for certain ia32 processors.
2434         * i386.c (const_int_1_operand): New predicate.
2435         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2436         * i386-protos.h (const_int_1_operand): Prototype.
2437
2438 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2439
2440         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2441
2442 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2443
2444         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2445         LABEL_REFs.
2446
2447 2000-06-14  Richard Henderson  <rth@cygnus.com>
2448
2449         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2450
2451         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2452         auto-inc code.
2453
2454         * print-rtl.c (print_rtx): Emit space before mem alias set.
2455
2456 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2457
2458         * rs6000.c (expand_block_move): Fix typo in earlier change.
2459         (print_operand): Remove unused variables neg and op.
2460         (toc_hash_mark_entry): Fix prototype.
2461
2462 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2463
2464         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2465         (THEN_CLAUSE): Likewise.
2466         (ELSE_CLAUSE): Likewise.
2467         (WHILE_COND): Likewise.
2468         (WHILE_BODY): Likewise.
2469         (DO_COND): Likewise.
2470         (DO_BODY): Likewise.
2471         (RETURN_EXPR): Likewise.
2472         (EXPR_STMT_EXPR): Likewise.
2473         (FOR_INIT_STMT): Likewise.
2474         (FOR_COND): Likewise.
2475         (FOR_EXPR): Likewise.
2476         (FOR_BODY): Likewise.
2477         (SWITCH_COND): Likewise.
2478         (SWITCH_BODY): Likewise.
2479         (CASE_LOW): Likewise.
2480         (CASE_HIGH): Likewise.
2481         (GOTO_DESTINATION): Likewise.
2482         (COMPOUND_BODY): Likewise.
2483         (ASM_CV_QUAL): Likewise.
2484         (ASM_STRING): Likewise.
2485         (ASM_OUTPUTS): Likewise.
2486         (ASM_INPUTS): Likewise.
2487         (ASM_CLOBBERS): Likewise.
2488         (DECL_STMT_DECL): Likewise.
2489         (STMT_EXPR_STMT): Likewise.
2490         (LABEL_STMT_LABEL): Likewise.
2491         (SCOPE_BEGIN_P): Likewise.
2492         (SCOPE_END_P): Likewise.
2493         (SCOPE_STMT_BLOCK): Likewise.
2494         (SCOPE_NULLIFIED_P): Likewise.
2495         (SCOPE_NO_CLEANUPS_P): Likewise.
2496         (SCOPE_PARTIAL_P): Likewise.
2497         (ASM_VOLATILE_P): Likewise.
2498         (STMT_LINENO): Likewise.
2499         (STMT_LINENO_FOR_FN_P): Likewise.
2500
2501         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2502         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2503         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2504         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2505         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2506
2507         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2508
2509 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2510
2511         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2512         writable in parts of the GCC code.
2513
2514         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2515         specification match cast.
2516
2517 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2518
2519         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2520         * configure, config.in: Rebuilt.
2521         * sys-protos.h: Similarly.
2522
2523 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2524
2525         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2526         * basic-block.h (EDGE_COMPLEX): ... here.
2527
2528         * loop.c (check_dbra_loop): Specify the register when
2529         generating REG_NONNEG notes and don't generate duplicates.
2530
2531 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2532
2533         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2534         (struct tree_type, struct tree_decl): Add user_align member.
2535         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2536         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2537         and DECL_USER_ALIGN 0, cap alignment to this value.
2538         (place_field): Likewise.
2539         (finalize_type_size): Set TYPE_USER_ALIGN.
2540         (layout_type): Likewise.
2541         (initialize_sizetypes): Likewise.
2542         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2543         DECL_USER_ALIGN to 1.
2544         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2545         (xfer_tag): Set TYPE_USER_ALIGN.
2546         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2547         (finish_enum): Likewise.
2548         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2549         (expand_anon_union_decl): Likewise.
2550         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2551         (build_index_type): Set TYPE_USER_ALIGN.
2552         (build_range_type): Likewise.
2553         (build_common_tree_nodes_2): Likewise.
2554         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2555
2556 2000-06-13  Andreas Jaeger  <aj@suse.de>
2557
2558         * configure.in: Use --enable-checking=misc,tree,gc by default if
2559         no --enable-checking option is given and for
2560         --enable-checking=yes.
2561         * configure: Rebuilt.
2562
2563 2000-06-13  Richard Henderson  <rth@cygnus.com>
2564
2565         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2566         (__throw): Don't pass the address of a label.
2567
2568         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2569         current_function_is_leaf.
2570         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2571         instead of reg_names[RETURN_ADDRESS_REGNUM].
2572         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2573         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2574         from RETURN_ADDRESS_REGNUM.  Update all uses.
2575         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2576         zero instead of null on failure.
2577         (ELIMINABLE_REGS): Add ra->b0 elimination.
2578         (CAN_ELIMINATE): Update accordingly.
2579         (INITIAL_ELIMINATION_OFFSET): Likewise.
2580         (REGISTER_NAMES): Use an illegal assembler name for
2581         RETURN_ADDRESS_POINTER_REGNUM.
2582
2583 2000-06-13  Richard Henderson  <rth@cygnus.com>
2584
2585         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2586         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2587         (REG_CLASS_NAMES): Likewise.
2588         (REG_CLASS_CONTENTS): Likewise.
2589         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2590         (HARD_REGNO_MODE_OK): Remove references to them.
2591         (REGNO_REG_CLASS): Likewise.
2592         (REG_CLASS_FROM_LETTER): Likewise.
2593         (CLASS_MAX_NREGS): Likewise.
2594         (REGISTER_MOVE_COST): Likewise.
2595         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2596         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2597         (movqi_internal): Special case moves from zero.
2598         (movhi_internal, movsi_internal): Likewise.
2599         (movdi_internal): Likewise.  Fill out "f" constraints.
2600         (movsf_internal): Fill out "r" constraints.
2601         (movdf_internal): Likewise.
2602
2603 2000-06-13  Richard Henderson  <rth@cygnus.com>
2604
2605         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2606         alive before reload.
2607
2608         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2609         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2610         (remove_dependence): Always define.
2611         (set_sched_group_p): New.
2612         (sched_analyze_2): Use it.
2613         (sched_analyze_insn): Don't special-case naked uses.  Look for
2614         and extend in_post_call_group_p.
2615         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2616         (init_deps): Clear in_post_call_group_p.
2617
2618 2000-06-13  Richard Henderson  <rth@cygnus.com>
2619
2620         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2621         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2622         and hard-coded tests.
2623         (simplify_set): Likewise.
2624         (gen_lowpart_for_combine): Likewise.
2625         * emit-rtl.c (gen_lowpart_common): Likewise.
2626         * global.c (find_reg): Likewise.
2627         * local-alloc.c (find_free_reg): Likewise.
2628         * recog.c (register_operand): Likewise.
2629         * regclass.c (init_reg_sets_1): Likewise.
2630         (record_operand_costs, regclass): Likewise.
2631         * reload.c (push_reload): Likewise.
2632         * reload1.c (choose_reload_regs): Likewise.
2633         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2634         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2635         Update all references.
2636         * regs.h (struct reg_info_def): Likewise.
2637         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2638         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2639         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2640
2641         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2642         (CLASS_CANNOT_CHANGE_MODE_P): New.
2643         * config/mips/mips.h: Likewise.
2644         * config/pa/pa32-regs.h: Likewise.
2645         * config/pa/pa64-regs.h: Likewise.
2646         * config/rs6000/rs6000.h: Likewise.
2647         * config/sh/sh.h: Likewise.
2648         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2649         (CLASS_CANNOT_CHANGE_MODE_P): New.
2650         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2651         * config/d30v/d30v.h: Likewise.
2652
2653 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2654
2655         * configure.in: Add AC_TYPE_GETGROUPS test.
2656         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2657         * configure: Rebuilt.
2658         * config.in: Rebuilt.
2659
2660 2000-06-13  Richard Henderson  <rth@cygnus.com>
2661
2662         * explow.c (set_mem_attributes): Do nothing for NULL type.
2663
2664 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2665
2666         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2667         correctly.
2668
2669 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2670
2671         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2672
2673 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2674
2675         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2676
2677 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2678
2679         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2680         * configure: Rebuilt.
2681
2682 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2683
2684         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2685         We now default to ELF for the i386, and a.out is the special case.
2686         * configure:  Rebuilt.
2687
2688 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2689
2690         * final.c (final_scan_insn): Delete notes between cc0 setter and
2691         user when restarting from setter.
2692
2693 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2694
2695         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2696         cast to squelch signed/unsigned warnings.
2697
2698 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2699
2700         * cpplib.c (handle_directive): Print non-NUL-terminated string
2701         with %.*s.
2702
2703 2000-06-12  Michael Meissner  <meissner@redhat.com>
2704
2705         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2706         path if the machine needs extra support to do conditional
2707         execution.
2708
2709 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2710
2711         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2712         to print the alias set.
2713         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2714
2715 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2716
2717         * config/float-vax.h: Add GFLOAT defines.
2718
2719 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2720
2721         * configure.in: Update tm dependencies for MPE.
2722         * configure: Rebuilt.
2723
2724 2000-06-12  H.J. Lu  <hjl@gnu.org>
2725
2726         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2727
2728 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2729
2730         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2731         (CPP_SPEC): Change mthreads to pthread.
2732         (LIB_SPEC): Likewise.
2733         (STARTFILE_SPEC): Likewise.
2734         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2735         (CPP_SPEC): Change mthreads to pthread.
2736         (LIB_SPEC): Likewise.
2737         (STARTFILE_SPEC): Likewise.
2738         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2739         * rs6000.c (reg_or_arith_cint_operand): New.
2740         (num_insns_constant_wide): Decorate unsigned constant.
2741         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2742         * rs6000.md (addsi3): Use new predicate.
2743         (subsi3, adddi3, subdi3): Likewise.
2744
2745 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2746
2747         * c-common.c (lang_get_alias_set): Fix typo.
2748
2749 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2750
2751         * flow.c (mark_used_regs): Revert last change.
2752         (life_analysis): Remove PROP_AUTOINC if running after reload.
2753         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2754
2755 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2756
2757         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2758         has run.
2759
2760 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2761
2762         * bb-reorder.c (build_scope_forest): Initialize variable
2763         `curr_scope'.
2764
2765         * calls.c (expand_call): Likewise for variables
2766         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2767
2768         * i386.c (function_arg_advance, function_arg): Cast to avoid
2769         signed/unsigned warnings.
2770
2771         * i386.h (MEMORY_MOVE_COST): Likewise.
2772
2773         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2774         `else_start' and `else_end'.
2775
2776         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2777
2778         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2779
2780 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2781
2782         * Makefile.in (libintl.a): Depend on intl.all.
2783
2784 2000-06-09  H.J. Lu  (hjl@gnu.org)
2785
2786         * Makefile.in (c-parse.o): Also depend on output.h.
2787
2788 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2789
2790         * mcore-protos.h: discards const warning removal.
2791         * mcore.c: discards const warning removal.
2792
2793 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2794
2795         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2796         the beginning of the file.
2797
2798 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2799
2800         * real.h:  Add prototype for ldexp.
2801
2802 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2803
2804         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2805         it ggc_alloc, drop second argument, never clear returned memory.
2806         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2807         (ggc_alloc_cleared): New.
2808         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2809         ggc_alloc_obj.  Remove ggc_alloc macro.
2810         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2811
2812         * rtl.c (rtvec_alloc): Clear the vector always.
2813         (rtx_alloc): Clear the first word always.  Remove dirty
2814         obstack tricks (this routine is no longer a bottleneck).
2815         * tree.c (make_node): Clear the new node always.
2816         (make_tree_vec): Likewise.
2817         (tree_cons): Clear the common structure always.
2818         (build1): Likewise; also, clear TREE_COMPLEXITY.
2819         * gengenrtl.c: Use puts wherever possible.  Remove extra
2820         newlines.
2821         (gendef): Clear the first word of an RTX in the generator
2822         function, irrespective of ggc_p.  Initialize '0' slots to
2823         NULL.
2824         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2825         thin wrapper macro around obstack_alloc.
2826
2827         * stmt.c (expand_fixup): Use ggc_alloc.
2828         * c-typeck.c (add_pending_init): Use ggc_alloc.
2829         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2830         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2831         const0_rtx when it is created.
2832         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2833         we are not in a function.
2834
2835         * tree.c (tree_class_check_failed): Make second arg an int.
2836         * tree.h: Update prototype.
2837
2838 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2839
2840         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2841         of an error_mark_node.
2842
2843 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2844
2845         * config/avr/avr.c (asm_output_section_name): bugfix.
2846
2847 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2848
2849         * timevar.def: Add TV_EXPAND.
2850         * timevar.c (timevar_print): Update timing information.
2851         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2852
2853         * stmt.c (expand_return): Check for error_mark_node.
2854
2855 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2856
2857         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2858
2859         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2860         variable against filename expansion when it contains "char *".
2861
2862         * system.h (SSIZE_MAX): Delete backup definition.
2863
2864         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2865         instead of SSIZE_MAX.
2866
2867 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2868
2869         * configure.in: Check whether gas supports -relax.
2870         * configure, config.in: Rebuilt.
2871         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2872         (EXTRA_SPECS): Add asm_relax.
2873         (ASM_SPEC): Add %(asm_relax).
2874         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2875         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2876         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2877         (ASM_SPEC): Add %(asm_relax).
2878         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2879         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2880         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2881         instead of mov, so that gas can further optimize it.
2882
2883 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2884
2885         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2886         size_of_sleb128.
2887         (value_format, case dw_val_class_const): Use sdata format.
2888         (output_die): Call output_sleb128.
2889
2890 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2891
2892         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2893         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2894         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2895         (output_die, case dw_val_class_unsigned_const): Correct call to
2896         ASM_OUTPUT_DWARF_DATA8.
2897         (output_die, case dw_val_class_long_long): Use
2898         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2899         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2900         pos is zero.
2901
2902         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2903         (output_function_prologue): Fix mispelling.
2904         (output_function_prologue, output_function_epilogue): Reorder to
2905         match ia64.c definition order.
2906         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2907         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2908         Use r3 instead of r2 for large stack restores.
2909         (ia64_output_end_prologue): New function.
2910         (process_set): Emit ".restore sp" for epilogue stack restores.
2911         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2912
2913 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2914
2915         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2916         incomplete types.
2917
2918 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2919
2920         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2921
2922 2000-06-08  Denis Perchine <dyp@perchine.com>
2923
2924         * frame.c (start_fde_sort): Don't malloc (0).
2925
2926 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2927
2928         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2929         error_mark_node.
2930         * print-tree.c (print_node): The transparent_union_flag means
2931         different things for unions and arrays.  Do not inspect it
2932         with TYPE_TRANSPARENT_UNION.
2933
2934 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2935
2936         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2937         returned NULL.
2938
2939 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2940
2941         * config/avr/avr.c (asm_output_section_name): output section
2942         attributes.
2943         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2944
2945 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2946
2947         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2948         fields into header field.
2949         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2950         macros to access length, flags, and version info from header field.
2951         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2952         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2953         (__do_global_ctors_aux): Fix caller.
2954         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2955         prologue_flag to header.  Pass to read_P_record.
2956         (read_P_record): New argument header.  Implement P4 format.
2957         Multiply P7_T_SIZE by 16.
2958         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2959         get_unwind_record.  Copy r to region_header if r is a header record.
2960         (print_all_records): Likewise.
2961         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2962         (__get_personality, __get_except_table): Likewise.
2963         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2964
2965 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2966
2967         * configure.in (AC_C_INLINE): Added.
2968         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2969         * configure: Regenerate.
2970
2971 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2972
2973         * c-common.h (c_language_kind): New type.
2974         (c_language): New variab.e
2975         * c-common.c (lang_get_alias_set): Don't put structures in
2976         non-zero alias sets in C++.
2977         * c-decl.c (c_language): Define it.
2978         * c-lex.c (doing_objc_thang): Remove.
2979         * c-tree.h (doing_objc_thang): Make it a macro.
2980         * objc/objc-act.c (lang_decode_option): Set c_language, not
2981         doing_objc_thang.
2982
2983 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2984
2985         * diagnostic.c (output_maximum_width): Remove.
2986         (doing_line_wrapping): Tweak.
2987         (diagnostic_buffer): New object.
2988         (global_output_buffer): New object.
2989         (output_destroy_prefix): New function.
2990         (default_initialize_buffer): Likewise.
2991         (reshape_diagnostic_buffer): Likewise.
2992         (initialize_diagnostics): Likewise.
2993         (output_clear): Tweak.
2994         (line_wrapper_printf): Adjust call to init_output_buffer.
2995         (vline_wrapper_message_with_location): Likewise.  Use
2996         output_destroy_prefix.
2997         (v_message_with_decl): Likewise.
2998
2999         * diagnostic.h (struct output_buffer): Constify prefix.
3000         (init_output_buffer, output_get_prefix): Constify.
3001         (diagnostic_message_length_per_line): Likewise.
3002         (reshape_diagnostic_buffer): Declare.
3003         (default_initialize_buffer): Declare.
3004         (initialize_diagnostics): Declare.
3005         (diagnostic_buffer): Declare new obbject.
3006
3007         * toplev.c: #include diagnostic.h
3008         (display_help): Document diagnostic formatting options.
3009         (decode_f_option): Handle diagnostic formatting options.
3010         (main): Setup initialization for diagnostic messages outputter.
3011
3012         * toplev.h (set_message_length): Remove.
3013
3014         * Makefile.in (toplev.o): Depends upon diagnostic.h
3015
3016         * invoke.texi : Document diagnostics formatting options.
3017
3018 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
3019
3020         * configure.in (Make the links): Typo fix : the file that must be
3021         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
3022         * configure: File rebuilt.
3023
3024 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
3025
3026         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
3027         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
3028         space.
3029         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
3030         emergency eh_context buffer, if malloc fails.
3031         (__eh_free): Moved from cp/exception.cc. Release to emergency
3032         eh_context buffer, if appropriate.
3033
3034 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
3035
3036         * expr.c (store_expr): Fix typo.
3037
3038 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3039
3040         * m68k.c (legitimize_pic_address): Move prototype ...
3041
3042         * m68k-protos.h (legitimize_pic_address): ... here.
3043
3044         * m68k.md (legitimize_pic_address): Delete prototypes.
3045         (untyped_call): Invoke GEN_CALL(), not gen_call().
3046
3047         * nextstep.c: Include system.h and toplev.h.
3048         (get_directive_line): Don't prototype.
3049         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
3050
3051         * nextstep.h (handle_pragma): Prototype.
3052         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
3053         objc_section_init ...
3054         (EXTRA_SECTION_FUNCTIONS): ... here.
3055
3056 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3057
3058         * sdbout.c (struct sdb_file): NAME now const.
3059         (sdbout_init): input_file_name now const.
3060         (sdbout_start_new_source_file): FILENAME now const.
3061         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
3062
3063 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3064
3065         * c-typeck.c (build_conditional_expr): Handle complex data types.
3066
3067 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3068
3069         * explow.c (maybe_set_unchanging): New function, broken out from...
3070         (set_mem_attributes): Here.
3071         * expr.h: Declare it.
3072         * stmt.c (expand_decl): Call it.
3073
3074 2000-06-05  Richard Henderson  <rth@cygnus.com>
3075
3076         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
3077         while looking for a register to inherit from.
3078
3079 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3080
3081         * Makefile.in (libgcc.ready): Lose.
3082         (libgcc.mk): Just use mv, not move-if-change.
3083         (LIBGCC_DEPS): New macro.
3084         (libgcc.a): Use it.
3085         (stmp-multilib): Likewise.
3086         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
3087         it rather than the directories themselves.
3088         (LIB2ADD): Depend on the list file rather than 'force'.
3089
3090         * fold-const.c (fold, case COND_EXPR): Elide conversion between
3091         cv-qualified versions of types.
3092
3093 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3094
3095         * config/sparc/sparc.c (short_branch): Correct error in range
3096         computation.
3097
3098 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3099
3100         * fixinc/inclhack.def: New include hacks for ultrix.
3101         * (nested_ultrix): Replaced by ultrix_nested_svc.
3102         * (ultrix_atof_param): test_text string added.
3103         * (ultrix_ifdef): Modified select string.
3104
3105 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
3106
3107         * objc/objc-act.c (generate_method_descriptors): Register
3108         objc_method_prototype_template as a GC root.
3109         (comp_method_with_proto): Register function_type as a GC root.
3110         (comp_proto_with_proto): Replace function_type1 and
3111         function_type2 with a two-element array; register it as a GC root.
3112
3113         (generate_protocols, build_protocol_initializer,
3114         generate_protocol_list, build_category_initializer,
3115         build_shared_structure_initializer): Do not cache cast_type
3116         and/or cast_type2.
3117
3118 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3119
3120         * function.c (assign_parms): Add missing argument to set_mem_attributes
3121         call.
3122
3123 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3124
3125         * tree.h (VOID_TYPE_P): New macro.
3126         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
3127         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
3128         (get_parm_info): Likewise.
3129         (store_parm_decls): Likewise.
3130         (combine_parm_decls): Likewise.
3131         (finish_function): Likewise.
3132         * c-typeck.c (build_function_call): Likewise.
3133         (build_binary_op): Likewise.
3134         (build_conditional_expr): Likewise.
3135         (internal_build_compound_expr): Likewise.
3136         (convert_for_assignment): Likewise.
3137         * stmt.c (expend_expr_stmt): Likewise.
3138         (warn_if_unused_value): Likewise.
3139         (expand_return): Likewise.
3140         * c-parse.in (primary): Likewise.
3141         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
3142         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
3143
3144 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3145
3146         * alias.c (get_alias_set): If compnent is addressable, use alias
3147         set of component.
3148         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
3149         (grokdeclarator): Likewise.
3150         * c-typeck.c (common_type): Likewise.
3151
3152 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
3153
3154         * Makefile.in (OBJS): Remove dyn_string.o
3155         (dyn-string.o): Delete rule.
3156         * dyn-string.c: Delete file
3157         * dyn-string.h: Likewise.
3158
3159 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3160
3161         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
3162         subdir.
3163
3164 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
3165
3166         * alias.c (record_component_aliases): Don't inspect
3167         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
3168
3169 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
3170
3171         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
3172         it with the pattern to do machine dependent work.
3173         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
3174         use it to modify the true/false tests used in conditional
3175         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
3176         defined, invoke them if the conversion to conditional execution
3177         was successful or not.
3178
3179         * tm.texi (IFCVT_MODIFY_TESTS): Document.
3180         (IFCVT_MODIFY_INSN): Ditto.
3181         (IFCVT_MODIFY_FINAL): Ditto.
3182         (IFCVT_MODIFY_CANCEL): Ditto.
3183
3184 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
3185
3186         * toplev.c (main): Fix misspellings of possibility and language.
3187
3188 2000-06-03  Richard Henderson  <rth@cygnus.com>
3189
3190         * alias.c (record_alias_subset): Initialize has_zero_child in the
3191         superset.
3192
3193 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
3194
3195         * arm.md (untyped_call): Use GEN_CALL macro.
3196
3197 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
3198
3199         * Makefile.in: Use $(MAKE) not "make"
3200
3201 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3202
3203         * alias.c (struct alias_set_entry): New field has_zero_child.
3204         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
3205         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
3206         do nothing.
3207         Call record_component_aliases for aggregate types.
3208         (record_alias_subset): Set has_zero_child.
3209         (record_component_aliases, case ARRAY_TYPE): Do nothing if
3210         TYPE_NONALIASES_COMPONENT.
3211         (record_component_aliases, case RECORD_TYPE): Test
3212         DECL_NONADDRESSABLE_P.
3213         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
3214         of TREE_ADDRESSABLE.
3215         * calls.c (initialize_argument_information): Only test
3216         TYPE_TRANSPARENT_UNION for UNION_TYPE.
3217         * function.c (assign_parms): Likewise.
3218         * integrate.c (function_cannot_inline_p): Likewise.
3219         * stor-layout.c (finish_record_layout): Don't call
3220         record_component_aliases.
3221         * tree.h (struct tree_int_cst): Use struct tree_common.
3222         (struct tree_real_cst, struct tree_string): Likewise.
3223         (struct tree_complex, struct tree_identifier): Likewise.
3224         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
3225         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
3226         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
3227         (TYPE_NONALIASES_COMPONENT): New macro.
3228         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
3229         (DECL_NONADDRESSABLE_P): New macro.
3230         (struct tree_decl): Reorder bits for clarity of how many left;
3231         add non_adressable.
3232
3233 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
3234
3235         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
3236         * mklibgcc.in (force): New target.
3237         Make LIB2ADD stuff depend on it.
3238
3239 2000-06-02  Richard Henderson  <rth@cygnus.com>
3240
3241         * alias.c (lang_get_alias_set): Remove.
3242         (get_alias_set): Call it directly, not indirectly.
3243         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
3244         * c-common.h (c_get_alias_set): Don't declare.
3245         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
3246         * expr.h (lang_get_alias_set): Declare as function, not pointer.
3247
3248 2000-06-02  Bruce Korb  <bkorb@gnu.org>
3249
3250         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
3251         (server_setup):  define the server's master pid
3252         (close_server):  actually do the deed IFF we are the server's master
3253
3254 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
3255
3256         * c-common.c (c_get_alias_set): Check whether signed_type did not
3257         return its argument before calling get_alias_set on the result.
3258
3259 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
3260
3261         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
3262
3263 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3264
3265         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
3266         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
3267         for TARGET_NOMACSAVE.
3268         (NOMACSAVE_BIT): Define.
3269         (TARGET_NOMACSAVE): Define.
3270         (TARGET_SWITCHES): Add "nomacsave".
3271
3272 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
3273
3274         * sh.md (untyped_call): Remove excess parameters
3275
3276 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
3277
3278         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
3279         match that used before the conversion to c_fix style.
3280         * fixinc/fixincl.x: regenerate
3281
3282 2000-06-01  Stan Cox  <scox@cygnus.com>
3283
3284         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
3285         macro argument typo.
3286
3287 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
3288
3289         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
3290         error message.
3291         * cpplib.c (parse_include): Remove support for VAX-C
3292         "#include starlet" misfeature.
3293
3294 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
3295
3296         * cppfiles.c: conditionally define O_BINARY.
3297         (open_include_file): pass O_BINARY to open().
3298
3299 2000-06-01  Richard Henderson  <rth@cygnus.com>
3300
3301         * i960.c (i960_br_predict_opcode): Remove.
3302         (i960_print_operand) [+]: Emit branch prediction hints.
3303         (i960_function_arg): Return early for VOIDmode.
3304         (i960_round_align): Return early for incomplete types.
3305         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3306         * i960.md (all conditional branches): Add "%+".
3307
3308 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3309
3310         * alias.c (get_alias_set): Don't call language-specific routine more
3311         than is needed and clean up code a bit.
3312         * c-common.c (c_get_alias_set): All references whose type
3313         is char get alias set 0, but character types need not.
3314         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
3315         (make_decl_rtl): Don't call it for FUNCTION_DECL.
3316
3317 2000-06-01  Bruce Korb  <bkorb@gnu.org>
3318
3319         * fixinc/tests/base/...: new base result files
3320
3321 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
3322
3323         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
3324         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
3325         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
3326         will use FCOMI.
3327
3328 2000-06-01  Richard Henderson  <rth@cygnus.com>
3329
3330         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
3331
3332         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
3333
3334 2000-05-31  Richard Henderson  <rth@cygnus.com>
3335
3336         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
3337         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
3338         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
3339
3340 2000-05-31  Richard Henderson  <rth@cygnus.com>
3341
3342         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
3343         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
3344         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
3345         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3346         * config/ia64/ia64.md (all branch/call patterns): Use %+.
3347
3348 2000-05-31  Richard Henderson  <rth@cygnus.com>
3349
3350         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
3351
3352 2000-05-31  Richard Henderson  <rth@cygnus.com>
3353
3354         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
3355         remaining edges.
3356         (find_if_block): Allow THEN with no outgoing edges.
3357         * flow.c (merge_blocks_nomove): Remove a barrier not following
3358         a jump as well.
3359
3360 2000-05-31  Richard Henderson  <rth@cygnus.com>
3361
3362         * flow.c (propagate_block): Move initialization of mem_set_list ...
3363         (init_propagate_block_info): ... here.  Also track blocks with
3364         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
3365
3366 2000-05-31  Richard Henderson  <rth@cygnus.com>
3367
3368         * jump.c (jump_optimize_1): Revert 05-18 change.
3369
3370 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
3371
3372         * invoke.texi: Remove documentation for -fguiding-decls.
3373
3374 2000-05-31  Richard Henderson  <rth@cygnus.com>
3375
3376         * configure.in: Fix typo last change.
3377
3378 2000-05-31  Philipp Thomas  <pthomas@suse.de>
3379
3380         * configure.in (enable-nls): Enable if build == host, i.e. when
3381         not building a canadian cross compiler.
3382         (enable-maintainer-mode): Added for use with i18n.
3383         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
3384         cross section of ALL_LINGUAS and LINGUAS.
3385         * configure: Rebuild.
3386
3387 2000-05-31  Bruce Korb  <bkorb@gnu.org>
3388
3389         * fixinc/check.tpl: rework to use test result tree
3390         * fixinc/Makefile.in: change invocation of check script
3391         * fixinc/check.diff: No longer needed
3392         * fixinc/fixincl.x: regenerate
3393         * fixinc/inclhack.def:  add new tests
3394         * fixinc/tests/base/arch/i960/archI960.h:  New test result
3395         * fixinc/tests/base/curses.h: modified test result
3396         * fixinc/tests/base/stdio.h: ditto
3397         * fixinc/tests/base/time.h: ditto
3398         * fixinc/tests/base/sys/asm.h: ditto
3399         * fixinc/tests/base/sys/stat.h: ditto
3400         * fixinc/tests/base/sys/wait.h: ditto
3401
3402 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3403
3404         * except.c (clear_function_eh_region): Do not free NULL.
3405
3406 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3407
3408         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3409         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3410         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3411         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3412         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3413         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3414         (get_alias_set): Likewise.
3415         Major rework to do more things and allow language-specific code
3416         to just handle special-cases.
3417         (record_alias_subset): Args are HOST_WIDE_INT.
3418         (record_component_alias): Local vars are HOST_WIDE_INT.
3419         Don't handle COMPLEX_EXPR.
3420         (get_varargs_alias_set): Moved from builtins.c.
3421         (get_frame_alias_set): New function.
3422         * builtins.c (expand_builtin_return_address): Use frame alias set.
3423         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3424         for setjmp buffer.
3425         (get_memory_rtx): Rework to use set_mem_attributes.
3426         (get_varargs_alias_set): Deleted from here.
3427         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3428         (c_find_base_decl): Deleted from here.
3429         (c_get_alias_set): Remove many cases and rework to just handle
3430         C-specific cases.
3431         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3432         * c-decl.c (rtl.h, expr.h): Now included.
3433         (init_decl_processing): Call record_component_aliases on array types.
3434         (grokdeclarator): Likewise.
3435         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3436         * c-typeck.c (common_type): Call record_component_aliases for array.
3437         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3438         Set all save areas to the frame alias set.
3439         * calls.c (initialie_argument_information): Call set_mem_attributes.
3440         (compute_argument_addresses, expand_call): Likewise.
3441         * explow.c (set_mem_attributes): New function.
3442         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3443         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3444         LEN and OFFSET now HOST_WIDE_INT.
3445         (clear_by_pieces): Similar changes.
3446         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3447         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3448         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3449         (clear_by_pieces_1): Likewise.
3450         (emit_push_insn): Call set_mem_attributes.
3451         (expand_expr, case INDIRECT_REF): Likewise.
3452         (expand_expr, case VAR_DECL): Call change_address.
3453         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3454         tree_low_cst.
3455         (get_varargs_alias_set, get_frame_alias_set): New decls.
3456         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3457         (new_alias_set, set_mem_attributes): Likewse.
3458         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3459         (assign_stack_temp_for_type): Likewise.
3460         Can split slot even if alias set since can copy.
3461         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3462         (assign_temp): Use host_integerp and tree_low_cst.
3463         (put_var_into_stack): Properly handle SAVE_EXPR.
3464         (put_addressof_into_stack): Likewise.
3465         (assign_parms): Call set_mem_attributes.
3466         Delete #if 0 code.
3467         (fix_lexical_address): Put reference to chain into frame alias set.
3468         (expand_function_start): Call set_mem_attributes.
3469         * integrate.c (expand_inline_function): Likewise.
3470         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3471         * regmove.c (try_apply_stack_adjustment): Likewise.
3472         * reload.c (push_reload, make_memloc): Likewise.
3473         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3474         * rtl.def (MEM): Update comment.
3475         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3476         (move_by_pieces): Change length to HOST_WIDE_INT.
3477         (record_base_value, record_alias_subset): Delete from here.
3478         * stmt.c (expand_decl): Call set_mem_attributes.
3479         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3480         * toplev.c (compile_file): Call init_alias_once earlier.
3481         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3482         from here: now in alias.c.
3483         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3484         (struct tree_decl): Likewise.
3485         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3486         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3487         (output_constant_def, force_const_mem): Likewise.
3488
3489         * flow.c (propagate_block): If block has no successors, stores to
3490         frame are dead if not used.
3491
3492 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3493
3494         * stmt (expand_end_case): Reorder conversion sequence for jump
3495         table to avoid extra truncations.
3496
3497 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3498
3499         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3500         in the block is more than just a simple conditional branch.
3501         (noce_process_if_block): Similarly.
3502
3503 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3504
3505         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3506         queue.
3507
3508 2000-05-30  Michael Meissner  <meissner@redhat.com>
3509
3510         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3511         instructions.  Treat LO_SUM operations as loading the full integer
3512         constant.
3513
3514 2000-05-30  Richard Henderson  <rth@cygnus.com>
3515
3516         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3517
3518 2000-05-30  Richard Henderson  <rth@cygnus.com>
3519
3520         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3521
3522 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3523
3524         * fixinc/tests/*:  Added expected result files for fixinc's make check
3525         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3526
3527 2000-05-30  Richard Henderson  <rth@cygnus.com>
3528
3529         * config/alpha/alpha.md (*setne_internal): Use match_operator
3530         instead of working down from insn.
3531
3532 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3533
3534         * invoke.texi (-Wtraditional): Update WRT function macros.
3535
3536 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3537
3538         * except.c (free_exception_table): Do not free NULL.
3539
3540 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3541
3542         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3543         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3544         and skipping here.
3545
3546 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3547
3548         * flow.c (mark_used_reg): If a register is unconditionally live,
3549         remove any conditional death information.
3550
3551 2000-05-29  Richard Henderson  <rth@cygnus.com>
3552
3553         * final.c (current_output_insn): New.
3554         (final_scan_insn): Set it.
3555         * output.h: Declare it.
3556
3557 2000-05-29  Richard Henderson  <rth@cygnus.com>
3558
3559         * stor-layout.c (finalize_record_size): Fix typo.
3560
3561         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3562         if nlabel is null.
3563
3564 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3565
3566         * cpplib.h (cpp_reader): Remove if_stack.  Change
3567         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3568         * cpphash.h (struct ihash): Change control_macro to a
3569         cpp_hashnode * and shorten name to cmacro.
3570         Add NEVER_REINCLUDE constant.
3571
3572         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3573         Examine the cmacro node directly, no need to call cpp_defined.
3574         (_cpp_execute_include, read_include_file): Set cmacro to
3575         NEVER_REINCLUDE, not U"".
3576         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3577         (cpp_get_token): If pfile->skipping is true, discard text and
3578         keep scanning until we hit a directive; don't expand macros.
3579
3580         * cpplib.c (struct if_stack): Remove if_succeeded, add
3581         was_skipping. Change control_macro to a cpp_hashnode * and
3582         shorten name to cmacro.  Remove typedef IF_STACK.
3583         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3584         (conditional_skip, skip_if_group,
3585         consider_directive_while_skipping): Delete.
3586         (push_conditional): New.
3587         (_cpp_handle_directive): Don't process directives other than
3588         conditionals if we are skipping.
3589
3590         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3591         Update to new scheme.
3592         (validate_else): Skip rest of line here, unconditionally.
3593         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3594         pfile->skipping off.
3595
3596         (all): Remove `scare quotes' from error messages.
3597
3598 2000-05-29  Richard Henderson  <rth@cygnus.com>
3599
3600         * function.c (emit_return_into_block): New line_note arg; emit it.
3601         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3602         for the close brace to accompany HAVE_return.  Move all line notes
3603         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3604
3605 2000-05-29  Richard Henderson  <rth@cygnus.com>
3606
3607         * longlong.h [__alpha] (count_leading_zeros): New.
3608         (count_trailing_zeros): New.
3609         (COUNT_LEADING_ZEROS_0): New.
3610
3611         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3612         (alpha_split_conditional_move): New.
3613         * config/alpha/alpha-protos.h: Prototype them.
3614         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3615         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3616         * config/alpha/alpha.md: Update ffs cix commentary.
3617         (*ze_and_ne): New.
3618         (*nabssf2, *nabsdf2): New.
3619         (*mov[qhsd]icc_internal): Use add_operand.
3620         (if_then_else constant splitters): New.
3621         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3622         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3623
3624 2000-05-29  Richard Henderson  <rth@cygnus.com>
3625
3626         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3627         a constant to NEG or NOT when conditions allow.
3628
3629         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3630         unless both args are general_operand.  Don't canonicalize plus
3631         to ior unless it helps.
3632
3633         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3634         instead track register_life_up_to_date.  Toggle no_new_pseudos
3635         around if_convert.
3636
3637 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3638
3639         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3640         so output_operand doesn't see them.
3641
3642 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3643
3644         * lcm.c (make_preds_opaque): Fix comment.
3645         (optimize_mode_switching): Use NORMAL_MODE instead of
3646         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3647         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3648         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3649         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3650         (MODE_USES_IN_EXIT_BLOCK): Delete.
3651         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3652         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3653         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3654         (MODE_NEEDED): Don't look for USE.
3655         (EPILOGUE_USES): Define.
3656
3657 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3658
3659         * mklibgcc.in (all): Variable initialised to `libgcc'.
3660
3661 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3662
3663         * toplev.h (skip_leading_substring): New macro.
3664         * toplev.c (decode_f_option): Use skip_leading_substring instead
3665         of strncmp.
3666         (decode_W_option): Likewise.
3667
3668 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3669
3670         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3671         modify reg_names.
3672
3673 2000-05-28  Richard Henderson  <rth@cygnus.com>
3674
3675         * regclass.c (record_operand_costs): Protect reg_changes_size
3676         with CLASS_CANNOT_CHANGE_SIZE.
3677
3678         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3679
3680 2000-05-28  Richard Henderson  <rth@cygnus.com>
3681
3682         * function.c (diddle_return_value): A pcc-style struct return
3683         returns a pointer.
3684
3685 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3686
3687         * cppfiles.c: Read files in, using mmap if possible, then
3688         prescan them separately.
3689         (read_file, read_with_read): New functions.
3690         * cpplex.c: Don't define UCHAR_MAX.
3691         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3692         the file here.
3693
3694         * cppinit.c (handle_option): Automatically define __cplusplus,
3695         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3696         the respective -lang switch.
3697
3698         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3699         prototype): Move to...
3700         * cpplib.h: ... here.  Rename struct hashnode to struct
3701         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3702         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3703
3704 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3705
3706         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3707
3708         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3709         (class_can_change_size): New variable.
3710         (reg_changes_size): New variable.
3711         (init_reg_sets_1): Initialise class_can_change_size.
3712         (record_operand_costs): Remove subreg_changes_size.
3713         Don't pass it around.  Instead update reg_changes_size.
3714         (regclass): Initialise and free reg_changes_size.  If a register
3715         changes size, don't preference it to a class that contains
3716         registers that can't change size.
3717         (record_reg_classes): Don't look at subreg_changes_size.
3718
3719 2000-05-27  Richard Henderson  <rth@cygnus.com>
3720
3721         * print-rtl.c (reg_names): Remove const.
3722         * regclass.c (reg_names): Likewise.
3723         * regs.h (reg_names): Likewise.
3724         * hard-reg-set.h (reg_names): Likewise.
3725
3726 2000-05-27  Richard Henderson  <rth@cygnus.com>
3727
3728         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3729
3730 2000-05-27  Richard Henderson  <rth@cygnus.com>
3731
3732         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3733         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3734         (alpha_expand_prologue): Emit prologue_mcount if needed.
3735         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3736         * config/alpha/alpha.md (prologue_mcount): New.
3737         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3738         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3739         * config/alpha/netbsd.h: Likewise.
3740
3741 2000-05-27  Richard Henderson  <rth@cygnus.com>
3742
3743         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3744         change to config/elfos.h.
3745
3746 2000-05-27  Richard Henderson  <rth@cygnus.com>
3747
3748         * Makefile.in (resource.o): Depend on except.h.
3749         * except.h (output_exception_table_data): Prototype.
3750         * genconfig.c (gen_peephole2): Prototype.
3751         * genemit.c (main): Include ggc.h.
3752         * genoutput.c: Revert parts of last change: include errors.h
3753         (main): Set progname.
3754         * recog.c: Include hard-reg-set.h before recog.h.
3755         * resource.c: Include except.h.
3756
3757         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3758         with RTX_CODE.
3759         (alpha_write_linkage): Protect with BUFSIZ.
3760         (alpha_need_linkage): Update prototype.
3761         * config/alpha/alpha.c (function_arg): Move VMS code here.
3762         (alpha_links_base): Remove.
3763         (alpha_links): New.
3764         (mark_alpha_links_node, mark_alpha_links): New.
3765         (alpha_write_one_linkage): New.
3766         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3767         (alpha_write_linkage): Use splay_tree_foreach.
3768         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3769         to get the linkage symbol.
3770         (call_value_vms): Likewise.
3771         * config/alpha/elf.h (output_file_directive): Remove decl.
3772         (ctors_section, dtors_section): Prototype.
3773         (sbss_section, sdata_section): Prototype.
3774         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3775         (readonly_section, link_section, literals_section): Prototype.
3776         (ctors_section, dtors_section): Prototype.
3777         (vms_valid_decl_attribute_p): Remove decl.
3778         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3779
3780 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3781
3782         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3783
3784         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3785         substituting the REG in a (subreg:X (reg:Y ...)).
3786
3787 2000-05-28  Neil Booth  <NeilB@earthling.net>
3788
3789         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3790         first token of a line BOL.  Update EOF code for this.
3791         Remove illegal directive check - it appears in the (not
3792         yet committed) caller.
3793         * cpplib.h (BOL): New flag.
3794
3795 2000-05-28  Neil Booth  <NeilB@earthling.net>
3796
3797         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3798         (_cpp_free_toklist): No comment space to free.
3799         (expand_comment_space): Remove.
3800         (save_comment_space): Place the comment in the current token and
3801         not in a separate comment space.
3802         (_cpp_lex_line): Save comments during plain code and #define
3803         directives only.
3804         * cpplib.h (struct _cpp_toklist): Remove comment space.
3805
3806 2000-05-28  Neil Booth  <NeilB@earthling.net>
3807
3808         * cppexp.c (parse_assertion): Supply extra argument to
3809         _cpp_init_toklist.
3810         * cpplib.c (do_assert, do_unassert): Similarly.
3811         * cpphash.h (_cpp_init_toklist) Update.
3812         (_cpp_expand_token_space): New.
3813         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3814         * cpplex.c (_cpp_init_toklist): New argument.
3815         (parse_string2): New argument multiline_ok.
3816         (spell_token): Take a const cpp_token *.
3817         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3818         (SPELL_ macros): Replace with enum.
3819         (expand_token_space): Replace with _cpp_expand_token_space.
3820         Take COUNT argument.
3821         (IS_DIRECTIVE): Update.
3822         (_cpp_lex_line): Update token structure before parsing number.
3823         Don't assume start at beginning of token list.
3824         (save_comment): Use INIT_TOKEN_NAME.
3825
3826 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3827
3828         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3829         -Wmissing-prototypes.
3830         * configure: Regenerate.
3831         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3832
3833         * builtins.c, calls.c: Change all instances of gen_call_* or
3834         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3835         * calls.c (struct_value_size_rtx): Separate definition from
3836         initialization to avoid unused variable warning.
3837
3838         * genflags.c (gen_macro): New function.
3839         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3840         (gen_nonproto): Delete.
3841         (gen_insn): Put all insns on the same obstack.
3842         (main): Generate prototypes for everything unconditionally.
3843
3844         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3845         out check for wchar_t.
3846         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3847         * system.h: Add infrastructure for defining missing
3848         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3849         definitions of UCHAR_MAX and SSIZE_MAX.
3850         * configure: Regenerate.
3851         * config.in: Regenerate.
3852
3853         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3854         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3855         headers.
3856         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3857         libgcc2.a, or libgcc1.null.
3858
3859 2000-05-27  Richard Henderson  <rth@cygnus.com>
3860
3861         * Makefile.in (recog.o): Don't depend on resource.h.
3862         * recog.c: Don't include resource.h.
3863         (recog_last_allowed_insn): Remove.
3864         (recog_next_insn): Remove.
3865         (struct peep2_insn_data): New.
3866         (peep2_insn_data, peep2_current): New.
3867         (peep2_next_insn): New.
3868         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3869         (peep2_find_free_register): New.
3870         (peephole2_optimize): Track life information by insn as we go.
3871         * recog.h: Update declarations.
3872         * resource.c (find_free_register, reg_dead_p): Remove.
3873         * resource.h: Remove their declarations.
3874         * toplev.c: Include hard-reg-set.h before recog.h.
3875
3876         * genconfig.c (max_insns_per_peep2): New.
3877         (gen_peephole2): New.
3878         (main): Call it.
3879         * genemit.c (output_peephole2_scratches): Generate calls to
3880         peep2_find_free_register; adjust surrounding code.
3881         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3882         * genrecog.c (change_state): Don't track last_insn.
3883         (write_action): Write into *_pmatch_len before accepting.
3884         (write_tree): Adjust peephole2_insns and subroutines to match.
3885
3886         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3887
3888         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3889         (hard_int_register_operand): New.
3890         * config/alpha/alpha-protos.h: Declare it.
3891         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3892         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3893         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3894
3895 2000-05-27  Richard Henderson  <rth@cygnus.com>
3896
3897         * function.c (thread_prologue_epilogue_insns): Don't move the
3898         line note at the head of the chain.  Only force a lineno note
3899         before the end of block 0.
3900
3901 2000-05-27  Richard Henderson  <rth@cygnus.com>
3902
3903         * gensupport.c (collect_insn_data): Record the maximum number
3904         of alternatives, not the last seen.
3905
3906         * genoutput.c: Don't include errors.h.
3907         (struct data): Add lineno member.
3908         (have_error): New.
3909         (scan_operands): Use message_with_line instead of error.
3910         (validate_insn_alternatives): Likewise.
3911         (gen_insn): Accept and store the pattern's line number.
3912         (gen_peephole, gen_expand, gen_split): Likewise.
3913         (main): Don't set progname.  Pass line_no to gen_foo.
3914
3915 2000-05-27  Richard Henderson  <rth@cygnus.com>
3916
3917         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3918         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3919         * config/d30v/d30v.md (attr predicable): New.
3920         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3921         (andsi3*): Unify into one pattern.
3922         (iorsi3*, xorsi3*): Likewise.
3923         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3924         conditional return.
3925         (old cond_exec patterns): Remove.
3926         (define_cond_exec): New.
3927
3928 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3929
3930         * tree.h (TREE_CODE_LENGTH): New macro.
3931         * c-common.c (c_find_base_decl): Use it.
3932         * expr.c (safe_from_p): Likewise.
3933         * print-tree.c (print_node): Likewise.
3934         * tree.c (make_node, copy_node, get_identifier): Likewie.
3935         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3936         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3937         * fold-const.c (make_range): Likewise.
3938         (fold): Likewise; also use first_rtl_op.
3939         * c-iterate.c (collect_iterators): Use first_rtl_op.
3940         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3941         Use IS_EXPR_CODE_CLASS.
3942         (preexpand_calls): Likewise.
3943         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3944         and TREE_CODE_LENGTH.
3945         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3946
3947 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3948
3949         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3950         than '%1(%*)'.
3951         (movdi_internal64): Likewise.
3952
3953         * config/rs6000/rs6000.md: Correct order of operands for DImode
3954         boolean patterns.
3955
3956         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3957         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3958         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3959         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3960         boolean_operator for the boolean patterns without NOTs.
3961
3962         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3963         from reg_or_u_cint_operand.  Change comment and behaviour.
3964         (logical_operand): Clean up, add assertion.
3965         (non_logical_cint_operand): Also check for
3966         reg_or_logical_cint_operand.
3967         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3968         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3969         in the expander.
3970         (xorsi3): Likewise.
3971         (iordi3): Likewise.
3972         (xordi3): Likewise.
3973
3974 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3975
3976         * tree.h (struct record_layout_info): Rename to (struct
3977         record_layout_info_s).
3978         * stor-layout.c (start_record_layout): Replace
3979         `record_layout_info' with `record_layout_info_s'.
3980
3981 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3982
3983         * flow.c (find_label_refs): New function.
3984         (find_basic_blocks_1): Call it for each alternative of a call
3985         placeholder.
3986
3987 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3988
3989         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3990         of get_pc.
3991
3992 2000-05-25  Richard Henderson  <rth@cygnus.com>
3993
3994         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3995         so strict about DImode.
3996         (alpha_swapped_comparison_operator): Likewise.
3997         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3998         any integer output mode.
3999         (*setcc_internal): Likewise.
4000         (*setcc_swapped_internal): Likewise.
4001         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
4002         (*mov[qhs]icc_internal): New.
4003         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
4004
4005 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4006
4007         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
4008
4009 2000-05-25  Richard Henderson  <rth@cygnus.com>
4010
4011         * bb-reorder.c (reorder_block_def): Reorder elements for size.
4012         Remove add_jump; add next; replace flags with visited.
4013         (rbd_init): Remove.
4014         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
4015         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
4016         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
4017         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
4018         (RBI): New.
4019         (reorder_index, reorder_last_visited): Remove.
4020         (skip_insns_after_block): Rewrite to use a switch.
4021         (get_common_dest): Remove.
4022         (chain_reorder_blocks): Remove.
4023         (record_effective_endpoints): Split out from reorder_basic_blocks.
4024         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
4025         (make_reorder_chain_1): Renamed from old make_reorder_chain.
4026         Only construct the reorder chain, do not move insns.  Try harder
4027         to tail recurse.
4028         (label_for_bb, emit_jump_to_block_after): New.
4029         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
4030         and adjust the jump insns appropriately.  Fixup basic_block_info.
4031         (verify_insn_chain): Always define.
4032         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
4033         in allocation size.
4034         (make_new_scope): Don't write zeros to calloc'd space.
4035         (build_scope_forest): Rely on xrealloc to DTRT.
4036         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
4037         profile_arc_flag.  Streamline EH test.
4038
4039         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
4040         * basic-block.h: Declare them.
4041
4042 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
4043
4044         * emit-rtl.c (reset_used_decls): New function.
4045         (unshare_all_rtl_again): Call it.
4046
4047 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
4048
4049         * cpplex.c (maybe_macroexpand): Warn about function-like
4050         macros used in non-function context, if -Wtraditional.
4051
4052 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4053
4054         * recog.c (peephole2_optimize): Use INSN_P.
4055
4056 2000-05-25  Richard Henderson  <rth@cygnus.com>
4057
4058         * ifcvt.c (seq_contains_jump): New.
4059         (noce_try_store_flag_constants): Use it to fail conversion.
4060         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
4061
4062 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4063
4064         * except.h (can_throw): Declare it.
4065         * except.c (can_throw): Give it external linkage.
4066         * resource.c (find_dead_or_set_registers): Use can_throw.
4067
4068 2000-05-25  Richard Henderson  <rth@cygnus.com>
4069
4070         * flow.c (mark_set_1): Don't record conditionally dead memory.
4071
4072 2000-05-25  Jan Hubicka  <jh@suse.cz>
4073
4074         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
4075         and pc_set at the place of simplejump_p and condjump_p.
4076         * cse.c (record_jump_equiv): Likewise.
4077         * emit-rtl.c (emit): Likewise.
4078         * explow.c (find_next_ref): Likewise.
4079         * flow.c (tidy_fallthru_edge): Likewise.
4080         (init_propagate_block_info): Likewise.
4081         * gcse.c (delete_null_pointer_checks): Likewise.
4082         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
4083         dead_or_predicable): Likewise.
4084         * integrate.c (copy_insn_list): Likewise.
4085         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
4086         for_each_insn_in_loop, check_dbra_loop, get_condition,
4087         insert_bct, load_mems): Likewise.
4088         * resource.c (find_dead_or_set_registers): Likewise.
4089         * sibcalls.c (simplejump_p): Likewise.
4090         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
4091
4092 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
4093
4094         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
4095         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
4096         when unaligned.
4097         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
4098         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
4099         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
4100         * rs6000.md: Name various internal patterns.
4101
4102 2000-05-25  Jan Hubicka  <jh@suse.cz>
4103
4104         * jump.c (invert_exp_1): Remove first argument, use pc_set
4105         to get the expression.
4106         (redirect_exp): Make static; redirect only the pc_set expression,
4107         remove first argument.
4108         (invert_exp): Remove first argument, make static.
4109         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
4110         any_onlyjump at most places where we originaly did condjump_p
4111         and simplejump_p.
4112         (jump_back_p, follow_jumps, thread_jumps): Likewise.
4113         (delete_barrier_succesors): Use pc_set.
4114         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
4115         calls of invert_exp and redirect_exp.
4116         * rtl.h (redirect_exp, invert_exp): Remove.
4117         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
4118
4119 2000-05-25  Richard Henderson  <rth@cygnus.com>
4120
4121         * stmt.c (expand_end_bindings): Fix thinko last change.
4122
4123 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
4124             Andrew Haley  <aph@cygnus.com>
4125
4126         * except.c  (func_eh_entry): Add emitted field.
4127         (new_eh_region_entry): Set emitted field to 0;
4128         (output_exception_table_entry): Only emit previously un-emitted data,
4129         and send it to the eh_data section.
4130         (output_exception_table): Break out common parts. Output
4131         exception table for entire compilation unit to eh_data section.
4132         (output_exception_table_data): Common parts of output_exception_table.
4133         Send output to eh_data section.
4134         (output_function_exception_table): Output exception table data for
4135         a single function to eh_data section.
4136         (free_exception_table): New external to free the table.
4137         * except.h (free_exception_table): Add prototype.
4138         (output_function_exception_table): Add prototype.
4139         * final.c (final_end_function): Output function exception table
4140         for IA64_UNWIND_INFO.
4141         (final_scan_insn): Emit any unwind directives for an insn.
4142
4143         * frame-dwarf2.c: New file containing all DWARF 2 specific code
4144         from frame.c.
4145         * frame.c: Remove all DWARF 2 specific code.
4146         * config/ia64/frame-ia64.c: New file.
4147         (gthread_stuff): Make all gthread available with
4148         IA64_UNWIND_INFO.
4149         (dwarf_fde): Define an IA64 struct for dwarf_fde.
4150         (__register_frame_info, __register_frame): Move to common area of file.
4151         (__register_frame_info_table, __register_frame_table): Move to common i
4152         area.
4153         (__deregister_frame_info, __deregister_frame): Move to common area.
4154         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
4155         (read_uleb128): New version for ia64.
4156         (get_unwind_record): Read the next IA-64 unwind record.
4157         (read_R_record): Read a region header record.
4158         (process_a_b_reg_code): X record helper.
4159         (read_X_record): Read an X format record.
4160         (read_B_record): Read a B format record.
4161         (P3_record_types): List of record types matching the P3 format.
4162         (P7_record_types): List of record types matching the P7 format.
4163         (P8_record_types): List of record types matching the P8 format.
4164         (read_P_record): Read a P format record.
4165         (init_ia64_reg_loc): Set default fields for a register.
4166         (init_ia64_unwind_frame): Set defaults for all register records.
4167         (execute_one_ia64_descriptor): Execute one descriptor record.
4168         (rse_address_add): Calculate the position of a local reg in memory.
4169         (normalize_reg_loc): Turn a location descriptor into a memory address.
4170         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
4171         within a specified PC offset range.
4172         (get_real_reg_value): Given a register location, retrieve its value.
4173         (set_real_reg_value): Change the value of a register location.
4174         (copy_reg_value): Copy reg values, if needed.
4175         (copy_saved_reg_state): Copy all registers that need to be copied.
4176         (process_state_between): Normalize all frame register records that
4177         fall within the specified PC range.
4178         (frame_translate): Take a processed frame description, and turn
4179         everything into addresses.
4180         (build_ia64_frame_state ): Find and create frame state record for a PC.
4181         (get_personality): Get the personality routine for a given frame.
4182         (get_except_table): Get the exception table for a given frame.
4183         (record_name): Unwind record names for debugging.
4184         (print_record): Print and unwind record.
4185         (print_all_records): Print an entire unwind image.
4186         (__ia64_backtrace): Print a backtrace.
4187         (ia64_backtrace_helper): New function.
4188         (__register_frame_info_aux): New function.
4189         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
4190
4191         * frame.h (enum unw_record_type): New unwind record types.
4192         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
4193         (struct unw_r_record, unwind_record): New unwind record structs.
4194         (struct unwind_info_ptr): Unwind information layout.
4195         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
4196         descriptors.
4197         (struct ia64_reg_loc): Register location description.
4198         (struct ia64_frame_state): Location of all registers in a frame.
4199         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
4200         * libgcc2.c (__ia64_personality_v1): Personality routine.
4201         (__calc_caller_bsp): Calculate the bsp register for the caller's
4202         frame.
4203         (ia64_throw_helper): Figure out who to return to and set up the
4204         registers.
4205         (__throw): Throw routine.
4206
4207         * output.h (assemble_eh_align, assemble_eh_label): New functions
4208         to generate EH info where we want it.
4209         (assemble_eh_integer): New function.
4210         * toplev.c (compile_file): Output module level exception table for
4211         non-ia64 targets.
4212         (main): Set exceptions_via_longjump and flag_new_exceptions based
4213         on IA64_UNWIND_INFO too.
4214
4215         * varasm.c (assemble_eh_label): Generate a label via
4216         ASM_OUTPUT_EH_LABEL if it has been specified.
4217         (assemble_eh_align): Generate an alignment directive via
4218         ASM_OUTPUT_EH_ALIGN if it has been specified.
4219         (assemble_eh_label): Generate an integer value via
4220         ASM_OUTPUT_EH_type if they have been specified.
4221         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
4222         (ia64_init_builtins): Add __builtin_ia64_bsp
4223         and __builtin_ia64_flushrs.
4224         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
4225         IA64_BUILTIN_FLUSHRS.
4226         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
4227         IA64_BUILTIN_FLUSHRS.
4228
4229         * config/ia64/ia64.md (flushrs): New insn to flush the register
4230         stack.  Add to unspec list.
4231
4232         * config/ia64/crtbegin.asm (frame_object): Change size.
4233         (__do_frame_setup_aux): New function.
4234         * config/ia64/crtend.asm: call __do_frame_setup_aux.
4235         * config/ia64/t-ia64 (LIB2ADDEH): Add.
4236         * Makefile.in (LIB2ADDEH): Add.
4237         (LIB2ADD): Use LIB2ADDEH.
4238
4239 2000-05-24  Richard Henderson  <rth@cygnus.com>
4240
4241         * recog.c (offsettable_address_p): If mode size is zero, assume
4242         BIGGEST_ALIGNMENT.
4243
4244 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
4245
4246         * configure.in: Check for -Wno-long-long option support and improve
4247         handling of warning CFLAGS for stages 1 and 2.
4248         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
4249         * configure: Regenerate.
4250
4251 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
4252
4253         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
4254         * contrib.texi: New file.
4255
4256 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4257
4258         * loop.c (basic_induction_var): Avoid double recording of an increment.
4259
4260 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4261
4262         * Back out this patch:
4263         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
4264           * loop.h (struct induction): Add multi_insn_incr.
4265           * loop.c (basic_induction_var): New multi_insn_incr argument.
4266           Set it if we search back through previous insns for the biv.
4267           (record_biv): New multi_insn_incr argument; fill in struct induction.
4268           (strength_reduce): Discard an iv with multiple bivs, any of
4269           which require multiple insns to increment.
4270
4271         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
4272
4273 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4274
4275         * rtl.h (loc_mentioned_in_p): Declare.
4276         * reload.c (loc_mentioned_in_p): Moved from here...
4277         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
4278         Fix loop increment for 'E' handling.
4279         * loop.c (strength_reduce): When doing biv->giv conversion,
4280         take multi-insn biv increments into account.
4281
4282 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
4283
4284         * stmt.c (expand_end_bindings): Look through NOTEs to find a
4285         BARRIER.
4286
4287 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
4288
4289         * calls.c (expand_call): Handle cleanups in tail-recursion
4290         arguments analagously to cleanups in sibling calls.
4291
4292 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4293
4294         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
4295         All callers changed.
4296
4297 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4298
4299         * expr.c (expand_assignment, store_expr, expand_expr,
4300         expand_expr_unaligned): Set in_check_memory_usage while emitting
4301         chkr_check_addr libcall.
4302
4303 2000-05-24  Nick Clifton  <nickc@cygnus.com>
4304
4305         * fold-const.c (extract_muldiv): When constructing a
4306         multiplier/divisor, do not expect const_binop to correctly
4307         determine if overflow has occured, so check explicitly.
4308
4309 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4310
4311         * c-decl.c (build_enumerator): Don't modify the value's type,
4312         convert it.
4313
4314 2000-05-24  Andreas Jaeger  <aj@suse.de>
4315
4316         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
4317
4318 2000-05-24  Eric Christopher <echristo@cygnus.com>
4319
4320         * configure.in: Redefine inhibit_libc conditions.
4321         * libgcc2.c: Remove inhibit_libc conditional define.
4322         * configure: Regenerate.
4323
4324 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
4325
4326         * configure.in:  For --enable-languages=LIST, check for empty LIST.
4327         * configure:  Regenerate.
4328
4329 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
4330
4331         * pdp11.h (STACK_BOUNDARY): Define.
4332
4333 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
4334
4335         * ifcvt.c (if_convert): Update life info globally.
4336
4337 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4338
4339         * emit-rtl.c (unshare_all_decls): New function.
4340         (unshare_all_rtl): Call it.
4341
4342 2000-05-23  Nick Clifton  <nickc@cygnus.com>
4343
4344         * configure.in: Treat 'strongarm' as if it were 'arm' when
4345         determining cpu type.
4346
4347         * configure: Regenerate.
4348
4349         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
4350         where constant strings are involved.
4351
4352         * config/arm/arm.h (arm_condition_codes): Change type to 'const
4353         char *'.
4354
4355         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
4356         cases where constant strings are involved.
4357
4358 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
4359
4360         * config/sh/sh.c (gen_far_branch, split_branches): Update
4361         to reflect new prototypes for redirect_jump and invert_jump.
4362         (sh_insn_length_adjustment): Get rid of const warnings.
4363
4364 2000-05-23  Kazu Hirata  <kazu@hxi.com>
4365
4366         * invoke.texi (Options for Debugging Your Program or GCC): Update
4367         the names of dump files.
4368
4369 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
4370
4371         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
4372         * configure: Regenerated.
4373
4374 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4375
4376         * simplify-rtx.c (SIGN_EXTEND): New macro.
4377         (simplify_unary_operation, simplify_binary_operation,
4378         simplify_relational_operation): Use SIGN_EXTEND.  Make low
4379         halves of (low, high) pairs unsigned if they weren't already.
4380         (simplify_ternary_operation): Cast INTVAL to unsigned before
4381         comparing to a MODE_BITSIZE.
4382
4383 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4384
4385         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
4386         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
4387
4388         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
4389         gcc_AC_NEED_DECLARATIONS.
4390
4391         * dwarfout.c: Don't prototype time().
4392
4393         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
4394
4395         * system.h: Likewise.
4396
4397         * toplev.c: Likewise.
4398
4399 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4400
4401         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4402
4403 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4404
4405         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4406
4407 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4408
4409         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4410
4411 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4412
4413         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4414         (alpha_start_function): Never write ..ng label if VMS or NT.
4415         (alpha_align_insns): Remove GP_IN_USE arg.
4416         Alignment now unsigned.
4417         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4418         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4419         and two define_insn's.
4420
4421 2000-05-22  Richard Henderson  <rth@cygnus.com>
4422
4423         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4424
4425 2000-05-22  Richard Henderson  <rth@cygnus.com>
4426
4427         * stor-layout.c (place_field): Change rli->size to rli->offset.
4428
4429 2000-05-22  Richard Henderson  <rth@cygnus.com>
4430
4431         * function.c (thread_prologue_and_epilogue_insns): Make sure
4432         existing line number notes appear after the prologue.
4433
4434 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4435
4436         * config/alpha/alpha.c (alpha_fnname): New static variable.
4437         (print_operand, case '~'): New case.
4438         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4439         (alpha_start_function): Set alpha_fnname.
4440         Write "ng" label if no ldgp; don't write ldgp insn.
4441         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4442         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4443
4444 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4445
4446         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4447         on deleted labels.
4448
4449 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4450
4451         * varasm.c (eh_frame_section): Revert change to argument list.
4452
4453 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4454
4455         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4456         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4457
4458         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4459         dangling "else" that causes "break" to be conditional.
4460         Also remove unneeded code at start.
4461
4462 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4463
4464         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4465         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4466         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4467
4468 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4469
4470         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4471         just one argument.
4472
4473 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4474
4475         * alias.c (record_component_aliases): New function.
4476         * tree.h: Clean up some declarations and comments.
4477         (record_component_aliases): New declaration.
4478         * tree.c (get_alias_set): If type and has alias set, use it.
4479
4480 2000-05-22  Richard Henderson  <rth@cygnus.com>
4481
4482         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4483         IF_THEN_ELSE to a setcc form.
4484         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4485
4486 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4487
4488         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4489         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4490
4491 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4492
4493         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4494         not a PARALLEL.
4495
4496 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4497
4498         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4499         * config/mn10300/mn10300.c (print_operand): Likewise.
4500
4501         * final.c (split_double): Right shift of negative values is not
4502         portable.
4503
4504         * ifcvt.c (if_convert): Scan and kill dead code.
4505
4506         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4507
4508 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4509
4510         * diagnostic.c: Eliminate implicit int.
4511         * except.c, gcc.c: Add static prototypes.
4512         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4513         * gensupport.c (process_rtx): Use XVEC to initialize vector
4514         slot of 'split'.
4515
4516         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4517         debug_reg_names instead of static reg_names.  If not, define
4518         global reg_names.
4519         * regclass.c: Don't define global reg_names unless
4520         DEBUG_REGISTER_NAMES is defined.
4521
4522         * reload1.c (order_regs_for_reload): Remove unused variable.
4523         * varasm.c: Include output.h after defaults.h.  Define
4524         eh_frame_section as function of no args, not of unspecified args.
4525
4526         * gcc.c: Constify argbuf; arguments to store_arg,
4527         process_command, main; elements of struct command and struct
4528         switchstr; local variables in execute, process_command, main.
4529
4530 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4531
4532         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4533         * fixinc/check.diff:  regenerated
4534         * fixinc/fixincl.x:  regenerated
4535
4536 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4537
4538         * alias.c: Clarify some comments.
4539         (record_base_value): REGNO is unsigned.
4540         * rtl.h (record_base_value): Likewise.
4541
4542         * alias.c (aliases_everything_p): Don't special-case QImode here.
4543         * c-common.c (c_get_alias_set): Do it here.
4544         Handle BIT_FIELD_REF by getting alias info for arg.
4545         Use POINTER_TYPE_P.
4546
4547 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4548
4549         * mklibgcc.in: Restore rule to create ${dir}.
4550
4551 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4552
4553         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4554         GCC_FOR_TARGET used by MULTILIBS.
4555         * mklibgcc.in: Make sure each .o file depends on the
4556         directory it will be in.
4557         Make the multilib directory depends libgcc.
4558
4559 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4560
4561         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4562
4563 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4564
4565         * fold-const.c (make_range): Handle degenerated intervals.
4566         Fixes c-torture/execute/991221-1.c
4567
4568 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4569
4570         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4571         * reload.c (find_equiv_reg): Likewise.
4572         * alias.c (init_alias_analysis): Likewise.
4573         Only call prologue_epilogue_contains on insns.
4574         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4575         * bb-reorder.c (hard-reg-set.h): Include earlier.
4576         * haifa-sched.c (hard-reg-set.h): Likewise.
4577         * ifcvt.c (hard-reg-set.h): Likewise.
4578         * local-alloc.c (hard-reg-set.h): Likewise.
4579         * loop.c (hard-reg-set.h): Likewise.
4580         * predict.c (hard-reg-set.h): Likewise.
4581         * regrename.c (hard-reg-set.h): Likewise.
4582         * flow.c (hard-reg-set.h): Likewise.
4583         (reg_set_to_hard_reg_set): New function.
4584         * bitmap.c (regs.h, basic-block.h): No longer include.
4585         (bitmap.h): Now include.
4586         * conflict.c (hard-reg-set.h): Include.
4587         * profile.c (hard-reg-set.h): Likewise.
4588         * print-rtl.c (hard-reg-set.h): Likewise.
4589         * sbitmap.c (hard-reg-set.h): Likewise.
4590         * toplev.c (hard-reg-set.h): Likewise.
4591         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4592         * hard-reg-set.h (reg_names): Now constant.
4593         * regs.h (reg_names): Likewise.
4594         * regclass.c (reg_names): Likewise.
4595         * loop.h (basic-block.h): No longer include.
4596         (bitmap.h): Now include.
4597         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4598         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4599         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4600
4601 2000-05-19  Jan Hubicka  <jh@suse.cz>
4602             Richard Henderson  <rth@cygnus.com>
4603
4604         * basic-block.h (struct edge_def): New field "count".
4605         (struct basic_block_def): Likewise.
4606         * flow.c (entry_exit_blocks): Add count fileds.
4607         (split_edge): Keep count information up-to-date.
4608         (dump_edge_info, dump_flow_info): Dump count fields.
4609
4610         * final.c (count_instrumented_edges): Rename to edge from arc.
4611         (end_final): Update users.
4612         * profile.c: Include expr.h, basic-block.h.
4613         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4614         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4615         (ignore_next_note, return_label_execution_count): Kill.
4616         (bbg_file_name, da_file_name): Kill.
4617         (edge_info, bb_info): New structures.
4618         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4619         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4620         (total_num_edges_instrumented): Likewise.
4621         (init_arc, expand_spanning_tree): Kill.
4622         (fill_spanning_tree, tablejump_entry_p): Kill.
4623         (instrument_edges):  Rewrite from instrument_arcs to use
4624         commit_edge_insertions infrastructure.
4625         (compute_branch_probabilities): Remove arguments; rewrite for
4626         CFG infrastructure; use rtl_dump_file directly.
4627         (branch_prob, find_spanning_tree): Likewise.
4628         (union_groups, find_group): New.
4629         (init_branch_prob): Make bbg_file_name and da_file_name local.
4630         (end_branch_prob): Use rtl_dump_file directly.
4631         (init_edge_profiler): Rename to edge from arc.
4632         (output_arc_profiler): Kill.
4633         (gen_edge_profiler): New.
4634         (output_func_start_profiler): Turn off profiling.  Make the
4635         constructor static when we can.
4636         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4637
4638         * toplev.c (DFI_flow): Remove.
4639         (DFI_cfg, DFI_life): New.
4640         (dump_file): Update accordingly.
4641         (compile_file): Call end_branch_prob if profile_arc_flag too.
4642         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4643         profiling after the CFG is built.  Move flow1 life analysis to
4644         DFI_life.  Always estimate remaining probabilities.
4645
4646 2000-05-19  Richard Henderson  <rth@cygnus.com>
4647
4648         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4649
4650         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4651
4652 2000-05-19  Richard Henderson  <rth@cygnus.com>
4653
4654         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4655         remove labels and code following when LABEL_NUSES goes to zero.
4656         (invert_jump): Likewise.
4657         (jump_optimize_1): Fix redirect/invert arguments.
4658         (do_cross_jump, thread_jumps): Likewise.
4659         * flow.c (split_edge): Likewise.
4660         * reorg.c (optimize_skip): Likewise.
4661         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4662         * profile.c (instrument_arcs): Likewise.
4663         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4664         * rtl.h: Update prototypes.
4665
4666 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4667
4668         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4669         notes.
4670         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4671         critical edges.
4672
4673 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4674
4675         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4676         past l1 when deleting whitespace and markers.
4677
4678         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4679         * cpplib.c (do_unassert): Put the list to compare against on
4680         the stack.
4681
4682 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4683
4684         * fixinc/README:  cleaned up old documentation
4685         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4686         * fixinc/check.tpl: compute the list of needed directories
4687         emit "#if defined(name)" because of conflict
4688         omit machine name differences from output differences
4689         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4690         (machine_name): change test text to use `sed' markers
4691         * fixinc/fixincl.x: regen
4692
4693 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4694
4695         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4696         a CONSTRUCTOR.
4697
4698 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4699
4700         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4701         it to match the current practice.
4702
4703 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4704
4705         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4706
4707 2000-05-18  Richard Henderson  <rth@cygnus.com>
4708
4709         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4710         * rtl.h (insn_dependant_p): Declare it.
4711         * loop.c (strength_reduce): Use it.
4712
4713 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4714
4715         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4716         16-bit and 64-bit clean-up.
4717
4718 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4719
4720         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4721         * configure: Rebuilt.
4722
4723 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4724
4725         * genopinit.c: Use $ for escape sequences in optab patterns.
4726         Remove backslashes from optab patterns.  Change $A, $B, $C to
4727         expand to (int) whatever instead of just whatever; remove
4728         explicit (int) from all optab patterns.
4729
4730         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4731         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4732         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4733         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4734         xstrdup.
4735
4736 2000-05-18  Richard Henderson  <rth@cygnus.com>
4737
4738         * jump.c (jump_optimize_1): Base minimum insn count during
4739         find_cross_jump on BRANCH_COST.
4740
4741 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4742
4743         * print-rtl.c (print_rtx): Only print note line number as string
4744         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4745         * final.c (final_scan_insn): Do nothing for note line number 0.
4746
4747 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4748
4749         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4750         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4751         NOTE_INSN_DELETED_LABEL.
4752
4753 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4754
4755         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4756         uninitialised data in .rodata not .bss, and do not interpret an
4757         error in the initialisation value as meaning that the variable
4758         should be placed in the .bss section.
4759
4760 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4761
4762         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4763         not `$ac_cv_prog_cc_cc_c_o'.
4764         * configure: Regenerated.
4765
4766 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4767             Richard Henderson  <rth@cygnus.com>
4768
4769         * c-common.h (enum c_tree_index): Add g77 type entries.
4770         (g77_integer_type_node, g77_uinteger_type_node): New.
4771         (g77_longint_type_node, g77_ulongint_type_node): New.
4772         * c-decl.c (init_decl_processing): Initialize them.
4773
4774 2000-05-18  Richard Henderson  <rth@cygnus.com>
4775
4776         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4777
4778         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4779         (small_power_of_two): Likewise; use exact_log2.
4780         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4781         (output_adds_subs): Remove.
4782         (two_insn_adds_subs_operand): New.
4783         (split_adds_subs): New.
4784         * config/h8300/h8300-protos.h: Update.
4785         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4786         (CONST_OK_FOR_L): Match strict adds operands.
4787         (CONST_OK_FOR_N): Match struct subs operands.
4788         * config/h8300/h8300.md (adds_subs insns): Remove.
4789         (addhi patterns): Output adds/subs directly.
4790         (addsi_h8300h): Likewise.
4791         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4792
4793 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4794
4795         * cppexp.c (parse_assertion): New.
4796         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4797         (_cpp_parse_expr): Remove case '#'.  Don't set
4798         parsing_if_directive.
4799         * cpphash.c (collect_objlike_expansion,
4800         collect_funlike_expansion, collect_params,
4801         _cpp_create_definition): The list no longer has a trailing
4802         VSPACE token.
4803         * cpphash.h (enum node_type): Add T_ASSERTION.
4804         (struct hashnode): Remove aschain, add pred.
4805         (struct predicate): New.
4806         Update prototypes.
4807
4808         * cpplex.c (expand_token_space): Handle both offset and
4809         nonoffset lists.
4810         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4811         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4812         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4813         _cpp_equiv_toklists): New.
4814         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4815         stop at any single-character token, not just newline.
4816         (_cpp_lex_token): Remove special cases for #define and #if.
4817         (cpp_get_token): Expect # as a separate token type.  Remove
4818         DIRECTIVE case.
4819         (_cpp_get_directive_token): Remove DIRECTIVE case.
4820         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4821
4822         * cpplib.c (_cpp_check_directive): Set dirno and
4823         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4824         (_cpp_handle_directive): Run # <number> through the same logic
4825         as normal directives.
4826         (do_define): Don't set parsing_define_directive.  Use
4827         _cpp_scan_until.  The list does not have a VSPACE at the end.
4828         (do_if): Save, clear, and restore only_seen_white around
4829         _cpp_parse_expr.
4830         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4831         (do_assert, do_unassert): Rewrite.
4832
4833         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4834         (LIST_OFFSET): New flag.
4835         (struct cpp_toklist): Replace dir_handler and dir_flags with
4836         dirno and flags.
4837         (struct cpp_reader): Remove parsing_if_directive and
4838         parsing_define_directive.
4839
4840 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4841
4842         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4843         following the cabs decl which terminate on the following line.
4844         Add the corresponding test_text case.
4845
4846 2000-05-18  Neil Booth  <NeilB@earthling.net>
4847
4848         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4849         default tab stop size.
4850         (no_num, OPT_ftabstop): New.
4851         (handle_option): Handle "ftabstop=" command-line option.
4852         (print_help): Document it.
4853         * cpplex.c (COLUMN): Remove.
4854         (handle_newline): Reset col_adjust.
4855         (skip_whitespace): Update col_adjust as tabs encountered.
4856         (_cpp_lex_line): Update to use col_adjust.  Call
4857         skip_whitespace for all whitespace.
4858         * cpplib.h (struct cpp_options): New member tabstop.
4859         (struct cpp_reader): New member col_adjust.
4860         (CPP_BUF_COL): Update.
4861         (CPP_BUF_COLUMN): New.
4862         * cpp.texi: Document "-ftabstop=" command line option.
4863
4864 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4865
4866         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4867         files.
4868         * configure: Rebuilt.
4869
4870 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4871
4872         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4873
4874         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4875         HOST_BITS_PER_WIDE_INT is >= 64.
4876
4877 2000-05-17  Richard Henderson  <rth@cygnus.com>
4878
4879         * jump.c (jump_optimize_1): Remove inactive but real insns
4880         in jump-to-next-insn optimization.
4881
4882 2000-05-17  Richard Henderson  <rth@cygnus.com>
4883
4884         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4885         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4886         Don't call recompute_reg_usage if no_new_pseudos is true.
4887         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4888         Return true if we did work; update global life information.
4889         * basic-block.h (optimize_mode_switching): Update decl.
4890
4891 2000-05-17  Neil Booth  <neilb@earthling.net>
4892
4893         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4894
4895 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4896
4897         * cpplib.c: New feature, #pragma system_header.
4898         * cpp.texi: Document special treatment of system headers, and
4899         the various mechanisms to get a header that special treatment.
4900
4901 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4902
4903         * system.h (offsetof): Define at the very end, to ensure we prefer
4904         the platform's definition if available.
4905
4906 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4907
4908         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4909         * fixinc/server.c: likewise
4910         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4911         + #ifdef debugging code + use #def constant for
4912         sub-pattern count
4913         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4914         on C++ math namespace
4915
4916 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4917
4918         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4919         Don't check the return value of sprintf.  Use asprintf to avoid
4920         buffer overflows.
4921
4922 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4923
4924         * flags.h (warn_unused_function, warn_unused_label,
4925         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4926         Replace ``warn_unused''.
4927         (set_Wunused): Add declaration.
4928         * toplev.c (set_Wunused): New function.
4929         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4930         warn_unused_variable, warn_unused_value): New variables.
4931         (W_options): Add -Wunused-function, -Wunused-function,
4932         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4933         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4934
4935         * toplev.c (decode_W_option): Update -Wunused flags by calling
4936         set_Wunused.
4937         * c-decl.c (c_decode_option): Ditto for -Wall.
4938
4939         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4940         warn_about_unused_variables): Replace warn_unused with more
4941         explicit warn_unused_value et.al.
4942         * function.c (expand_function_end): Ditto.
4943         * c-typeck.c (internal_build_compound_expr,
4944         internal_build_compound_expr): Ditto.
4945         * c-decl.c (poplevel, pop_label_level): Ditto.
4946         * toplev.c (check_global_declarations): Replace warn_unused with
4947         check for either warn_unused_function or warn_unused_variable.
4948
4949         * gcc.1, invoke.texi (Warning Options): Document
4950         -Wunused-function, -Wunused-function, -Wunused-label,
4951         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4952
4953 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4954
4955         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4956         $(srcdir), not in the current directory.
4957
4958 2000-05-16  Richard Henderson  <rth@cygnus.com>
4959
4960         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4961         assembler supports it.
4962         (.fini, .init): Use a gp-relative indirect call.
4963         (__do_global_dtors_aux): Preserve the gp; rebundle.
4964         (__do_frame_setup): Likewise.
4965         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4966         (.init): Use a gp-relative indirect call.
4967         (__do_global_ctors_aux): Preserve the gp.
4968
4969 2000-05-16  Richard Henderson  <rth@cygnus.com>
4970
4971         * flow.c (commit_one_edge_insertion): Be prepared for a return
4972         insn to be inserted on the edge with a normal jump.
4973         * jump.c (jump_optimize_1): Don't look to create return isns.
4974
4975         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4976         * jump.c (jump_optimize_1): Likewise.
4977         (returnjump_p): Verify the argument is a JUMP_INSN.
4978         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4979
4980 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4981
4982         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4983         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4984         (large_insn_p): Ditto.
4985         (m32r_is_insn): New function: Return true if the insn contains
4986         an executable instruction.
4987         (m32r_adjust_insn): Use m32r_is_insn.
4988         (m32r_sched_reorder): Use m32r_is_insn.
4989         (m32r_sched_variable_issue): Use m32r_is_insn.
4990
4991 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4992
4993         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4994         VAR_DECL.
4995
4996         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4997
4998         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4999         according to given options.
5000
5001 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
5002
5003         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
5004         if X has VOIDmode either.
5005         (LIMIT_RELOAD_CLASS): Similarly.
5006
5007         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
5008         not "general_operand" to match the processor's capabilities.
5009
5010 2000-05-16  Bruce Korb  <bkorb@gnu.org>
5011
5012         * fixinc/README:  corrected return address
5013         * fixinc/check.diff:  regenerate, now that test works
5014         * fixinc/fixfixes.c(format_fix,format_write): reformatted
5015         (char_macro_def_fix,char_macro_use_fix): corrected and
5016         rewrote to use regex to parse the text
5017         * fixinc/inclhack.def: more testing
5018         * fixinc/fixincl.x:  regenerated
5019
5020         * fixinc/inclhack.def: added several "test_text" attributes
5021         changed several fixes to use `c_fix = format'
5022         re-alphabetized the fixes
5023
5024         * fixinc/check.diff: regenerate
5025         * fixinc/fixincl.x: regenerate
5026         * fixinc/check.tpl: added `sparc' and `netinet' to the list
5027         of created dirs
5028
5029
5030 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
5031
5032         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
5033
5034 2000-05-15  Richard Henderson  <rth@cygnus.com>
5035
5036         * toplev.c (rest_of_compilation): Run full jump pass before
5037         find_basic_blocks of flow2.
5038
5039 2000-05-15  Richard Henderson  <rth@cygnus.com>
5040
5041         * jump.c: Fix typos and clarify commentary from last change.
5042         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
5043         (safe_to_remove_jump_p): Remove.
5044         (condjump_label): Use pc_set.
5045
5046 2000-05-15  Richard Henderson  <rth@cygnus.com>
5047
5048         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
5049         that get in the way after reload.
5050         (cond_exec_process_if_block): Skip a label heading THEN block.
5051
5052 2000-05-15  Richard Henderson  <rth@cygnus.com>
5053
5054         * varasm.c (output_constant_pool): Abort instead of converting
5055         (improperly) deleted labels to zero.
5056
5057 2000-05-16  Neil Booth  <NeilB@earthling.net>
5058
5059         * cpplex.c (parse_string2): Update comment.
5060         (cpp_lex_line): No special assertion treatment for '('.
5061         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
5062         * cpplib.h (SYNTAX_ASSERT): Remove.
5063
5064 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5065
5066         * jump.c (condjump_p):  Mark as depreached.
5067         (any_condump_p): New.
5068         (any_uncondump_p): New.
5069         (pc_set): New.
5070         (safe_to_remove_jump_p): New.
5071         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
5072         safe_to_remove_jump_p): Declare.
5073
5074 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5075
5076         * calls.c: Re-install both patches reverted by last patch.
5077         (struct arg_data): New field tail_call_reg.
5078         (initialize_argument_information): Initialize tail_call_reg
5079         (load_register_parameters): New argument flags, use
5080         tail_call_reg when emiting tail call sequence.
5081         (expand_call): Update call of load_register_parameters;
5082         copy unadjusted_args_size to adjusted_args_size.
5083
5084 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5085
5086         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
5087         and bct_p parameters to flags.
5088         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
5089         * rtl.h (loop_optimize): Update prototype.
5090         * toplev.c (rest_of_compilation): Update call of loop_optimize.
5091
5092 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
5093
5094         * calls.c (expand_call): Move expand_start_target_temps call after
5095         start_sequence().
5096
5097 2000-05-15  Neil Booth  <NeilB@earthling.net>
5098
5099         * cpphash.c (trad_stringify, warn_trad_stringify,
5100         collect_params): Make some pointers pointers to const.
5101         * cpplex.c (auto_expand_name_space) Guaranteed to always
5102         expand by at least one character.
5103         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
5104         (struct token_spelling): Use const U_CHAR * rather than PTR.
5105         (expand_name_space): Fix up token pointers if name space
5106         is moved when expanding.
5107         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
5108         parse_string2, save_comment, spell_token, cpp_output_list):
5109         Update so the routines handle tokens with a direct pointer to
5110         their text, rather than an offset into the token's list's namebuf.
5111         (_cpp_lex_line): Rearrange for clarity.
5112
5113         * cpplib.c (_cpp_check_directive): Similarly.
5114         (do_define): Make SYM a pointer to const.
5115         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
5116         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
5117         (TOK_OFFSET): Delete.
5118         (TOK_NAME): Update.
5119
5120 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
5121
5122         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
5123         64-bit ABI.
5124
5125         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
5126         into account.
5127         (logical_u_operand): Delete.
5128         (non_logical_cint_operand): Rewrite to take MODE into account.
5129         (non_logical_u_cint_operand): Delete.
5130         (boolean_operator): New function.
5131         (print_operand): Add new %q operand.
5132         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
5133         remove logical_u_operand and non_logical_u_cint_operand,
5134         update logical_operand and non_logical_cint_operand.
5135         * config/rs6000/rs6000.md: Rewrite the patterns for performing
5136         logical operations to use %q.
5137
5138         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
5139         (movdi): Make similar to movsi.
5140         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
5141         is no such thing as a DImode CONST_DOUBLE.
5142         * config/rs6000/rs6000.c (output_toc): Likewise.
5143
5144         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
5145         codes when old mnemonics are in use.  Print register names
5146         for cc registers when requested.
5147
5148         * optabs.c (expand_float): Don't allow mode widening that causes
5149         double rounding.
5150
5151         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
5152         flags to their current names -maix64 and -maix32.
5153
5154 2000-05-14  Bruce Korb  <bkorb@gnu.org>
5155
5156         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
5157         and/or after current text of file
5158         * fixinc/fixlib.c(must_malloc):
5159         * fixinc/fixlib.h(must_malloc): + reformatting
5160         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
5161         with usages of ``c_fix = wrap;''
5162         Add several tests and use the ``c_fix = format'' fixer more.
5163         * fixinc/fixincl.x: regen
5164         * fixinc/check.diff: regen
5165         * fixinc/check.tpl: emit the associated header with the missing
5166         test message
5167
5168 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
5169
5170         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
5171         variables $src and $dst.
5172
5173 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
5174
5175         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
5176         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
5177         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
5178         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
5179         fields.
5180         (set_message_prefixing_rule): Declare.
5181
5182         * diagnostic.c: (current_prefixing_rule): New variable.
5183         (set_message_prefixing_rule): Define.
5184         (output_set_prefix): Adjust buffer->emitted_prefix_p.
5185         (init_output_buffer): Adjust Initialization.
5186         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
5187
5188 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
5189
5190         * ifcvt.c (if_convert): Do not free NULL.
5191
5192 2000-05-12  H.J. Lu  (hjl@gnu.org)
5193
5194         * gthr-dce.h: Add support for libobjc.
5195         * gthr-posix.h: Likewise.
5196         * gthr-solaris.h: Likewise.
5197         * gthr-vxworks.h: Likewise.
5198         * gthr-single.h: Likewise.
5199         * gthr-win32.h: Likewise.
5200
5201 2000-05-12  Nick Clifton  <nickc@cygnus.com>
5202
5203         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
5204         to move a double word value.
5205         (di_operand): New function: Return true if the operand is suitbale
5206         for a double word move operation.
5207         (nonimmediate_di_operand): New function: Return true if the
5208         operand is a DImode register or MEM.
5209
5210         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
5211         nonimmediate_di_operand.
5212
5213         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
5214         nonimmediate_di_operand.
5215
5216         * config/fr30/fr30.md (movdi): New pattern.  Required because
5217         other patterns generate DImode results.
5218         (movdi_insn): New pattern.
5219
5220 2000-05-12  Richard Henderson  <rth@cygnus.com>
5221
5222         * config/alpha/alpha.c (struct shadow_summary): Define
5223         bitfields as type unsigned int.
5224
5225 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
5226
5227         * config/avr/t-avr: Added definition of FLOAT while generates
5228         fp-bit.c
5229
5230         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
5231         peepholes for tst+jump = sbrs/sbrc optimization.
5232
5233 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
5234
5235         * expr.c (emit_push_insn): Do not adjust stack pointer when
5236         preallocating.
5237
5238 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
5239
5240         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
5241         * system.h (offsetof): ... to here.
5242
5243 2000-05-12  Richard Henderson  <rth@cygnus.com>
5244
5245         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
5246         * final.c (final_end_function): Use app_disable.  Rearrange note
5247         handling into a switch.  Emit deleted labels.
5248         (output_asm_label): Generate label strings for deleted labels.
5249         * flow.c (tail_recursion_label_list): New.
5250         (find_basic_blocks_1): Set label_value_list directly.  Collect list
5251         of tail recursion labels from call_placeholders.  Don't add deleted
5252         labels to the label value list.
5253         (cleanup_cfg): Use free_EXPR_LIST_list.
5254         (flow_delete_insn_chain): Turn non-removable labels into notes.
5255         (flow_delete_block): Don't disable deleting the block because of
5256         a non-removable label.
5257         (tail_recursion_label_p): New.
5258         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
5259         because of a label.
5260         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
5261         jump table.
5262         (merge_blocks): Disable a merge because of tail recursion labels.
5263         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
5264         Use a more accurate measure of not merging the join block.
5265         (find_if_block): Don't disable conversion because of a label.
5266         (find_if_case_1, find_if_case_2): Likewise.
5267         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
5268         element when copying.
5269         (squeeze_notes): Also leave EH notes.
5270         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
5271         REG_LABEL notes.
5272         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
5273         deleting a label.
5274         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
5275         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
5276         referring to a deleted label.  Convert tail handling to a switch.
5277         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
5278         for NOTE_INSN_DELETED_LABEL.
5279         (NOTE): Fix commentary.
5280         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
5281         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
5282         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
5283         (LABEL_NUSES, LABEL_REFS): Likewise.
5284         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
5285
5286 2000-05-12  Bruce Korb  <bkorb@gnu.org>
5287
5288         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
5289         * fixinc/check.diff: updated
5290         * fixinc/inclhack.def: corrected & added some test_text-s
5291         * fixinc/genfixes: removed unneeded options to autogen invocation
5292         * fixinc/fixincl.tpl: Specified the output file
5293         * fixinc/fixfixes.c: visual appearance
5294         * fixinc/fixincl.x: regenerate
5295
5296 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
5297
5298         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
5299         CTRL_defn_fix): Delete.
5300         (fix_char_macro_defines, fix_char_macro_uses): Rename to
5301         char_macro_def_fix and char_macro_use_fix, respectively.  Put
5302         them into the FIXUP_TABLE.  Get the string to search for from
5303         a c_fix_arg.
5304
5305         (format_write): New function.
5306         (format_fix): Use it.
5307
5308         (FIX_PROC_HEAD): Constify text parameter.
5309         (machine_name_fix): Constify all char *s.
5310         * fixtests.c (skip_quote): Remove double static.
5311
5312         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
5313         ctrl_use_quotes): Update for new scheme.
5314         * fixincl.x: Regenerate.
5315
5316 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
5317
5318         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
5319         DWARF2_DEBUG.
5320         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
5321         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
5322
5323 2000-05-11  Robert Lipe <robertlipe@usa.net>
5324
5325         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
5326         * fixincl.x: Regenerate.
5327
5328 2000-05-11  Richard Henderson  <rth@cygnus.com>
5329
5330         * calls.c: Revert both 05-09 patches.
5331
5332 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
5333
5334         * config/mn10300/mn10300.c (print_operand): Print FP constants in
5335         hexadecimal.
5336         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
5337         for FP values.
5338
5339         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
5340         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
5341
5342 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
5343
5344         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
5345
5346 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5347
5348         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
5349
5350 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
5351
5352         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
5353         * config/avr/avr.c (jump_over_one_insn_p): New function.
5354         * config/avr/avr.md: New peepholes added. Output test and
5355         conditional jump to "sbrc" or "sbrs" command.
5356
5357 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
5358
5359         * cppmain.c (main): Use IS_DIR_SEPARATOR.
5360
5361 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
5362
5363         * except.c (find_exception_handler_labels_1): New function.
5364         (find_exception_handler_labels): Split into two functions, dive
5365         into CALL_PLACEHOLDERs when looking for exception handler labels.
5366
5367 2000-05-11 Stan Cox <scox@cygnus.com>
5368
5369         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
5370         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
5371         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
5372
5373 2000-05-11  Bruce Korb  <bkorb@gnu.org>
5374
5375         * fixinc/fixfixes.c (double_slash_fix):  obsolete
5376         (else_endif_label_fix): obsolete
5377         (format_fix):  new, unused as yet
5378         (main): obsolete
5379         * fixinc/fixlib.h: added fix description struct for use by format_fix
5380         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
5381         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
5382         modules.  Removed the vestiges of the script version.
5383         Added support for "make check".
5384         * fixinc/check.diff: base diff file (needs work!!)
5385         * fixinc/check.tpl: quiet the fixup output
5386         * fixinc/fixtests.c (main): obsolete
5387         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
5388         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
5389
5390 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
5391
5392         * toplev.c (rest_of_compilation): Remove dead code after
5393         combine.
5394
5395 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5396
5397         * cpphash.c (collect_funlike_expansion): Make "# is not
5398         followed by a macro argument name" a pedwarn, not an error.
5399         Preserve the # in the output.  Suppress the warning if lang_asm.
5400
5401 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
5402
5403         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
5404         * configure: Rebuilt.
5405
5406 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5407
5408         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5409
5410 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5411
5412         * combine.c (try_combine): Fix a typo.
5413
5414 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5415
5416         * config/ia64/ia64.md (insv): Add comment.
5417
5418 2000-05-10  Richard Henderson  <rth@cygnus.com>
5419
5420         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5421         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5422         dependancies on FPBIT and DPBIT.
5423
5424 2000-05-10  Nick Clifton  <nickc@redhat.com>
5425
5426         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5427         when optimising for size.
5428         (mark_used_regs:) Ditto.
5429         (try_pre_increment_1): Ditto.
5430
5431 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5432
5433         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5434         Make error message friendlier.
5435
5436         * cpphash.h (struct hashnode): Use struct hack for name
5437         member.
5438         * cpphash.c (struct hashdummy): New.
5439         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5440         (make_HASHNODE): No need to set ->name pointer.  Correct
5441         setting of p.
5442         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5443
5444 2000-05-10  Richard Henderson  <rth@cygnus.com>
5445
5446         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5447         after completion.
5448
5449 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5450
5451         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5452
5453 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5454
5455         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5456         after we enter .debug.
5457
5458 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5459
5460         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5461         abstract instance of a nested inline function.
5462
5463         * stor-layout.c (finish_record_layout): finalize_type_size
5464         before laying out the pending_statics.
5465
5466 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5467
5468         * cpplex.c (spell_token): New function.
5469         (spell_string, spell_comment, spell_name): fold into
5470         spell_token.
5471         (I, S): Add macros.
5472         (E, H): Remove macros.
5473         (save_comment): Save comment opening characters too.
5474         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5475         handling.
5476         * cpplib.h (I, S): Add macros.
5477         (E, H): Remove macros.
5478         (TTYPE_TABLE): Update entries for new speller.
5479         (SYNTAX_ASSERT): Remove.
5480
5481 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5482
5483         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5484         when removing escaped newlines.  Reverse sense of test for
5485         escaped newline.
5486
5487 2000-05-09  Richard Henderson  <rth@cygnus.com>
5488
5489         * flow.c (find_basic_blocks_1): Do not delete the first
5490         bb_note we run across.
5491         (create_basic_block): Use reorder_insns to move an existing
5492         bb_note to the correct place.
5493
5494 2000-05-09  Richard Henderson  <rth@cygnus.com>
5495
5496         * calls.c (expand_call): Increment currently_expanding_call
5497         before calling optimize_tail_recursion.
5498
5499 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5500
5501         * reload1.c (reload_combine): Fix errors in last change.
5502
5503 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5504
5505         * gcc.c (used_arg): Skip over a semicolon at the end of the
5506         split-up loop; don't break out of it.
5507
5508         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5509         (tree.o): Depend on output.h.
5510
5511         * c-decl.c (pending_invalid_xref_file,
5512         current_function_prototype_file): Constify.
5513         (pushdecl): Constify a local char *.
5514         (define_label): Constify filename parameter.
5515         * c-lex.c (init_parse): Constify parameter and return value.
5516         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5517         * c-tree.h: Update prototypes.
5518         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5519         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5520         objc/objc-parse.c: Regenerate.
5521
5522         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5523         * dwarfout.h: Update prototypes.
5524         * expr.c (expand_expr): Constify a local char *.
5525         * flags.h: Constify main_input_filename.
5526         * function.c (expand_function_end): Constify filename parameter.
5527         * genrecog.c (make_insn_sequence): Use a character array for
5528         c_test_pos.
5529         (main): Remove unused variables.
5530         * input.h: Constify input_filename, main_input_filename, and
5531         file_stack.name.  Update prototypes.
5532         * output.h: Declare first_global_object_name and
5533         weak_global_object_name here, as const char *.
5534         * stmt.c (expand_asm_operands): Constify filename parameter.
5535         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5536         Constify filename parameter.
5537         (input_filename, main_input_filename): Constify.
5538         * toplev.h: Update prototypes.
5539         * tree.c: Include output.h.  Don't declare
5540         first_global_object_name or weak_global_object_name.  Clean up string
5541         bashing in get_file_function_name_long.
5542         * tree.h (struct tree_decl): Constify filename member.
5543         (input_filename): Constify.
5544         Update prototypes.
5545         * varasm.c (first_global_object_name, weak_global_object_name):
5546         Constify.
5547         (assemble_start_function, assemble_variable): Clean up string bashing.
5548
5549         * gcc.c: Constify all spec-related strings initialized,
5550         transitively, from string constants.  Constify all strings
5551         and string variables related to multilibs.
5552         (set_spec, read_specs): Cast argument to free to PTR.
5553         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5554         length comparison to compare multilib switches.
5555         * genmultilib: Constify everything declared in multilib.h.
5556
5557 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5558
5559         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5560         as deleted.
5561
5562 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5563
5564         * config/avr/avr-protos.h (extra_constraint): change a type of
5565         second argument from char to int to avoid warnings.
5566         (asm_output_byte): Likewise.
5567
5568         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5569         (initial_elimination_offset): Handle elimination from
5570         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5571         (legitimate_address_p): Use MAX_LD_OFFSET.
5572         (legitimize_address): Likewise.
5573         (out_movqi_r_mr): Likewise.
5574         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5575         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5576         (out_movsi_mr_r): Likewise.
5577         (out_movqi_mr_r): Likewise.
5578         (out_movhi_mr_r): Likewise.
5579         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5580         count as CONST_INT != 6.
5581         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5582         shift count is a CONSTANT_P, but not a CONST_INT.
5583         (ashlhi3_out): Coding style modifications.
5584         (ashlsi3_out): Likewise.
5585         (ashrhi3_out): Likewise.
5586         (ashrsi3_out): Likewise.
5587         (lshrhi3_out): Likewise.
5588         (lshrsi3_out): Likewise.
5589         (ashrqi3_out): Generate shift for any known constant count without
5590         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5591         but not a CONST_INT.
5592         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5593         shift count is a CONSTANT_P, but not a CONST_INT.
5594         (extra_constraint): change a type of
5595         second argument from char to int to avoid warnings.
5596         (asm_output_byte): Likewise.
5597         (asm_file_end): Output size generated commands count as a hex
5598         number too.
5599
5600         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5601
5602         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5603         removed.
5604         (ashlqi3): Values of "length" attribute changed. Shift count
5605         uses constraints 'n' instead of 'i'.
5606         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5607         shifts without clobber register.
5608         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5609         (call_insn): Correct test for which_alternative == 1 (was 0).
5610         (call_value_insn): Likewise.
5611
5612         * config/avr/t-avr: Remove definition of FLOAT while generates
5613         fp-bit.c
5614
5615 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5616
5617         * fixinc/check.tpl:  Template for checking fixes
5618         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5619         disable hpux8_bogus_inlines on SCO
5620         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5621
5622 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5623
5624         * calls.c (expand_call): Reorganize somewhat in order
5625         to avoid unnecesary recalculation inside loop and make
5626         tail call failure code cleaner.
5627
5628 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5629
5630         * alias.c (nonlocal_reference_p): Minor reformatting.
5631         * reload.c (find_equiv_reg): Simplify logic for
5632         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5633         some some reformatting.
5634         * reload1.c (reload_combine): Don't assume everything in
5635         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5636
5637 2000-05-08  Richard Henderson  <rth@cygnus.com>
5638
5639         * final.c (current_insn_predicate): New.
5640         (final_scan_insn): Set it.
5641         * output.h (current_insn_predicate): Declare.
5642
5643         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5644         Attach it to call insns.
5645         (cond_exec_process_if_block): Track probability for true and
5646         false branches.
5647         (dead_or_predicable): Likewise.
5648
5649         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5650         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5651         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5652         (estimate_probability, expected_value_to_br_prob): Use them.
5653
5654         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5655         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5656         (ia64_expand_prediction): New.
5657         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5658         as needed after calls.
5659         (ia64_epilogue_uses): Mark b0 used.
5660         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5661         (bne_true, bne_false): Remove.
5662         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5663         (br_true, br_false): New.  Use predicate_operator and
5664         ia64_expand_prediction.
5665         (return_true, return_false): Likewise.
5666         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5667         (call_internal1, call_value_internal): Likewise.
5668         (call_value_internal1, call_multiple_values_internal1): Likewise.
5669
5670         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5671
5672         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5673
5674 2000-05-08  Richard Henderson  <rth@cygnus.com>
5675
5676         * rtlanal.c (may_trap_p): Consider old-style and volatile
5677         asms to trap.
5678
5679 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5680
5681         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5682
5683 2000-05-08  Richard Henderson  <rth@cygnus.com>
5684
5685         * config/ia64/ia64.h (predicate_operator): Declare.
5686
5687         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5688         of existance.
5689
5690         * gensupport.c (process_rtx): Copy and post-process each member
5691         of the define_insn rtvec individually.
5692
5693 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5694
5695         * cpplex.c (spell_token): New function.
5696         (TOKEN_LEN): Add 1 for whitespace.
5697         (_cpp_lex_file): Update to use spell_token.
5698         * cpplib.h (E): Remove.
5699         (TTYPE_TABLE): Update CPP_VSPACE entry.
5700
5701 2000-05-08  Richard Henderson  <rth@cygnus.com>
5702
5703         * flow.c (init_propagate_block_info): Watch out for conditional
5704         branch to next instruction, and thus one outgoing edge.
5705
5706         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5707         for global register variables; don't special case __[CD]TOR_LIST__;
5708         mind ggc_p for string allocation.
5709
5710 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5711
5712         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5713
5714 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5715
5716         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5717         i?86-*-msdosdjgpp* no longer uses fixincludes
5718         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5719         * fixinc/inclhack.sh:  deleted
5720         * fixinc/hackshell.tpl:  deleted
5721         * fixinc/inclhack.tpl:  deleted
5722         * fixinc/Makefile.in:  Remove dependencies on above
5723         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5724
5725 2000-05-08  Andreas Jaeger  <aj@suse.de>
5726
5727         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5728         support.
5729
5730 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5731
5732         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5733         substitutions.
5734
5735 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5736
5737         * cpplex.c: Move new lexer definitions and prototypes
5738         to top.  Conditional include these and the code if
5739         NEW_LEXER is defined.  Rename functions whose names
5740         clash if this code included.
5741
5742 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5743
5744         * rtl.def (COND_EXEC): Clarify.
5745
5746         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5747         same fashion as zero_extendsidi2.
5748
5749 2000-05-06  Richard Henderson  <rth@cygnus.com>
5750
5751         * config/ia64/ia64.c (predicate_operator): New.
5752         (ia64_print_operand): Handle 'J'.
5753         (rtx_needs_barrier): Handle COND_EXEC.
5754         * config/ia64/ia64.h (BRANCH_COST): Define.
5755         (PREDICATE_CODES): Update.
5756         * config/ia64/ia64.md: Docuement used unspec values.
5757         (attr predicable): New.
5758         (movxf, movxf_internal): New.
5759         (extendsfdf2): Don't comment out nop.
5760         (floatdidf2): Remove.
5761         (truncxfsf2, truncxfdf2, floatdixf2): New.
5762         (abssi2, absdi2): Put the neg in the "true" slot.
5763         (conditional branch instructions): Mark not predicable.
5764         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5765         (abs*_internal): Likewise.
5766         (alloc, set_bsp): Mark not predicable.
5767         (barrier, insn_group_barrier, flush_cache): Likewise.
5768         (define_cond_exec): New.
5769
5770 2000-05-06  Richard Henderson  <rth@cygnus.com>
5771
5772         * c-decl.c: Include "tm_p.h".
5773
5774         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5775         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5776         (ia64_expand_op_and_fetch): Declare.
5777         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5778         (setjmp_operand): Constify variables for XSTR.
5779         (ia64_encode_section_info): Likewise.
5780         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5781         values to int.
5782         (ia64_asm_output_external): Constify name.
5783         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5784         (process_for_unwind_directive): Provide switch default.
5785         (ia64_expand_compare_and_swap): Remove unused variables.
5786         (ia64_expand_builtin): Likewise.
5787         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5788         for printing.
5789
5790         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5791         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5792         (shift_count_operand, shift_32bit_count_operand): Likewise.
5793         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5794         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5795         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5796         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5797         (ia64_expand_builtin): Likewise.
5798         (call_multiple_values_operation): Make dest_regno unsigned.
5799
5800 2000-05-06  Richard Henderson  <rth@cygnus.com>
5801
5802         * rtl.def (DEFINE_COND_EXEC): New.
5803         * md.texi: Document it.
5804
5805         * gensupport.c (input_file): Remove.
5806         (struct queue_elem): Add lineno.
5807         (rtx_ready_queue): Remove.
5808         (errors): New.
5809         (predicable_default): New.
5810         (predicable_true, predicable_false): New.
5811         (define_attr_queue, define_attr_tail): New.
5812         (define_insn_queue, define_insn_tail): New.
5813         (define_cond_exec_queue, define_cond_exec_tail): New.
5814         (other_queue, other_tail): New.
5815         (queue_pattern): New.
5816         (process_rtx): Add patterns to the appropriate queues.
5817         (is_predicable, identify_predicable_attribute): New.
5818         (n_alternatives, collect_insn_data): New.
5819         (alter_predicate_for_insn, alter_test_for_insn): New.
5820         (shift_output_template, alter_output_for_insn): New.
5821         (process_one_cond_exec, process_define_cond_exec): New.
5822         (init_md_reader): Read the entire file.  Process define_cond_exec.
5823         (read_md_rtx): Return elements from the queues.
5824
5825 2000-05-06  Richard Henderson  <rth@cygnus.com>
5826
5827         * flow.c (mark_set_1): Don't update conditional life info
5828         if the register is not_dead.
5829
5830 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5831
5832         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5833         (mostlyclean): Also delete fixincl, fixinc.sh, and
5834         specs.ready, and make clean in the fixinc subdir.
5835
5836 2000-05-06  Richard Henderson  <rth@cygnus.com>
5837
5838         * Makefile.in (gensupport.o): Compile for the host.
5839         (host-prefix gensuuprt.o): Remove.
5840         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5841         (genattrtab.o): Likewise.
5842         (gencodes.o): Depend on gensupport.h.
5843         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5844         (genpeep.o, genattr.o, genoutput.o): Likewise.
5845
5846         * gensupport.c (obstack, rtl_obstack): New.
5847         (init_md_reader): Initialize rtl_obstack.
5848         * gensupport.h (rtl_obstack): Declare.
5849         (message_with_line): Declare.
5850
5851         * genattr.c: Remove all traces of obstack manipulation.
5852         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5853         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5854
5855         * genattrtab.c (obstack, rtl_obstack): Remove.
5856         (main): Don't init rtl_obstack.
5857         * genflags.c: Likewise.
5858
5859         * genrecog.c (message_with_line): Move ...
5860         * gensupport.c: ... here.
5861
5862 2000-05-06  Richard Henderson  <rth@cygnus.com>
5863
5864         * c-typeck.c (build_c_cast): Remove dead code.
5865
5866 2000-05-06  Richard Henderson  <rth@cygnus.com>
5867
5868         * flow.c (split_edge): Don't allocate global_live_at_start for
5869         the new block unless the old blocks had them as well.
5870
5871         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5872
5873         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5874         test_bb if a or b uses x.
5875
5876 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5877
5878         * cpphash.h: Remove conditional #define of __extension__.
5879         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5880         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5881         (ENABLE_RTL_CHECKING only).
5882         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5883         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5884         (ENABLE_TREE_CHECKING only).
5885         * varray.h: Add __extension__ to VARRAY_CHECK macro
5886         (ENABLE_CHECKING only).
5887
5888 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5889
5890         Use new tail-calling mechanism on ARM.
5891         * arm.md (sibcall, sibcall_value): New expands.
5892         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5893         (tailcalling peepholes): Delete.
5894         (push_multi): Simplify.
5895         * arm.c (lr_save_eliminated): Delete definition.
5896         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5897         (output_return_instruction): Remove checks on lr_save_eliminated.
5898         (output_arm_prologue): Remove old tail-calling code.
5899         (arm_output_epilogue): New parameter, really_return.  All callers
5900         changed.  Handle tail-calling epilogues.
5901         * arm.h (lr_save_eliminated): Delete declaration.
5902         (frame_pointer_needed): Delete declaration.
5903         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5904
5905         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5906         TARGET_ARM.
5907         * arm.c (thumb_code): Define it.
5908         (arm_override_options): Set it.
5909         * arm.h (thumb_code): Declare it.
5910
5911 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5912
5913         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5914
5915 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5916
5917         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5918         bogus clobber to insns.
5919         (load_multiple_operation, store_mulitple_operation): Don't check
5920         for it.
5921         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5922
5923         * arm.md (and_scc, ior_scc): Add missing mode.
5924
5925         * arm.md (call_value_symbol): Remove predicate from op2.
5926
5927         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5928
5929 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5930
5931         * expr.c (get_subtarget): New function.
5932         (force_operand, expand_expr, do_store_flag): Use it.
5933
5934         * toplev.c (compile_file): Don't take strlen of NAME if null.
5935
5936 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5937
5938         * xcoffout.c (xcoff_current_include_file,
5939         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5940         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5941         char *'.
5942         (xcoffout_declare_function): Make name 'const char *'.
5943         (xcoffout_end_epilogue): Make fname 'const char *'
5944         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5945         xcoffout_declare_function, xcoffout_source_line): Match above.
5946
5947         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5948         -maix64 is error.
5949         * rs6000.c (print_operand): Fix lossage typo.
5950         (output_cbranch): Remove "cr" decoration for now.
5951         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5952
5953 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5954
5955         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5956         constant count.
5957
5958 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5959
5960         * fixinc/genfixes: Improve the matching for make target names
5961
5962 2000-05-05  Catherine Moore  <clm@cygnus.com>
5963
5964         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5965         attribute to the decl.
5966         * c-decl.c (pushdecl): Propagate the USED attribute to the
5967         type copy.
5968
5969 2000-05-05  Richard Henderson  <rth@cygnus.com>
5970
5971         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5972         same way emit_group_load does.
5973
5974 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5975
5976         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5977
5978         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5979         (main): Likewise.
5980
5981 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5982
5983         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5984
5985 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5986
5987         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5988         to support -shared, on platforms with dynamic libraries.
5989
5990 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5991
5992         * system.h (S_ISBLK): Provide fallback definition.
5993
5994 2000-05-05  Geoff Berry  <geoffb@bops.com>
5995
5996         * extend.texi (Extended Asm): Document inability to give asm
5997         statements access to condition codes.
5998
5999 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
6000
6001         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
6002         as arg 2 of UNIQUE_SECTION.
6003
6004 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
6005
6006         * predict.c: Remove May 4 change.
6007         * bb-reorder.c (make_reorder_chain): Do not perform block movement
6008         if we have predicted the branch at 50-50 probability.
6009
6010 2000-05-05  Richard Henderson  <rth@cygnus.com>
6011
6012         * flow.c (init_propagate_block_info): Fix merge error
6013         in HAVE_conditional_execution code.
6014
6015 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
6016
6017         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
6018         shift cycle for unknown shift count. Also generates dec + brpl.
6019         (ashlqi3_out): Don't generate dec + brpl which now generates by
6020         `out_shift_with_cnt'.
6021         (ashlhi3_out): Likewise.
6022         (ashlsi3_out): Likewise.
6023         (ashrqi3_out): Likewise.
6024         (ashrhi3_out): Likewise.
6025         (ashrsi3_out): Likewise.
6026         (lshrqi3_out): Likewise.
6027         (lshrhi3_out): Likewise.
6028         (lshrsi3_out): Likewise.
6029
6030 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
6031
6032         * gcc.c (free_split_directories): Correct typo in explanation
6033         of make_relative_prefix.
6034
6035 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6036
6037         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
6038         comparison codes to branch_comparison_operator.
6039
6040 2000-05-04  Richard Henderson  <rth@cygnus.com>
6041
6042         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
6043
6044 2000-05-04  Richard Henderson  <rth@cygnus.com>
6045
6046         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
6047         (DPBIT_FUNCS): Remove _sf_to_usi.
6048         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
6049
6050         * ifcvt.c (noce_process_if_block): Fail if A or B modified
6051         between condition and jump.
6052
6053         * libgcc2.c (near eh_context_specific): Comment #endif string.
6054         * longlong.h: Don't use strings with embedded newlines.
6055
6056 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6057
6058         * config/rs6000/rs6000-protos.h: Add output_cbranch.
6059         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
6060         (print_operand): Delete %t and %T codes.
6061         (output_cbranch): New function.  Support branch prediction.
6062         * config/rs6000/rs6000.md: Use output_cbranch for
6063         conditional branches and returns.
6064
6065 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
6066
6067         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
6068         * stor-layout.c (place_field): Likewise.
6069         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
6070         * expr.c (store_expr): Make align unsigned.
6071         * explow.c (plus_constant_wide): Make low words unsigned.
6072         * expmed.c (choose_multiplier): Likewise.
6073         * fold-const.c (fold):  Likewise.
6074         * tree.h (build_int_2): Likewise.
6075         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
6076         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
6077         (init_emit): Change cast to unsigned char*.
6078         * varasm.c (compare_constant_1): Add cast to char*.
6079         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
6080         * reload1.c (reload): Likewise.
6081
6082         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
6083
6084 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
6085
6086         * predict.c (estimate_probability): If no prediction was found, then
6087         predict the successor that is the next physical block (if such a
6088         successor exists).
6089
6090 2000-05-04  Richard Henderson  <rth@cygnus.com>
6091
6092         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
6093
6094 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6095
6096         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
6097
6098 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
6099
6100         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
6101         attribute macros from here ...
6102         (CPP_SPEC): to here.
6103         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
6104         (CPP_SPEC): Likewise.
6105         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
6106
6107         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
6108         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
6109
6110 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6111
6112         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
6113
6114         * diagnostic (vbuild_message_string, build_message_string,
6115         build_location_prefix, output_get_prefix, init_output_buffer,
6116         output_notice, vline_wrapper_message_with_location,
6117         v_message_with_decl, default_print_error_function): De-constify.
6118         (set_real_maximum_length): Prototype.
6119
6120         * diagnostic.h (struct output_buffer, init_output_buffer,
6121         output_get_prefix, output_set_prefix): De-constify.
6122
6123         * function.c (init_function_start): Constify.
6124
6125         * gensupport.c (remove_constraints, process_rtx): Prototype.
6126
6127         * gthr-posix.h: Indent uses of #pragma.
6128
6129         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
6130         Prototype.
6131
6132         * predict.c (find_expected_value): Delete prototype.
6133         (expected_value_to_br_prob): Initialize variable `ev_reg'.
6134
6135         * sbitmap.h (debug_sbitmap): Prototype.
6136
6137         * ssa.c (compute_coalesced_reg_partition): Prototype.
6138
6139         * stor-layout.c (debug_rli): Prototype.
6140
6141         * tree.h (round_down): Prototype.
6142         (init_function_start): Constify.
6143
6144 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
6145
6146         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
6147         (overly conservative).  Change extern inline wrappers to
6148         static inline, define them always, use PARAMS properly.
6149         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
6150         whitespace warnings for \f and \v at the beginning of a line.
6151
6152 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
6153
6154         * haifa-sched.c (schedule_insns): Free the flow edge list when it
6155         is no longer needed
6156
6157 2000-05-04  Bruce Korb  <bkorb@gnu.org>
6158
6159         * fixincl/inclhack.def: added broken_cabs -
6160         Remove `extern double cabs' declarations from math.h
6161         * fixincl/inclhack.sh: regen
6162         * fixincl/fixincl.x: regen
6163         * fixincl/fixincl.c: Remove BOGOSITY code
6164         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
6165
6166 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6167
6168         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
6169         MEM_ALIAS_SET.
6170         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
6171         when calling MEM_COPY_ATTRIBUTES.
6172         * emit-rtl.c (operand_subword, change_address): Likewise.
6173         * explow.c (stabilize): Likewise.
6174         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
6175         * integrate.c (copy_rtx_and_substitute): Likewise.
6176         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
6177         when calling MEM_COPY_ATTRIBUTES.
6178         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
6179         Likewise.
6180         * cse.c (gen_lowpart_if_possible): Likewise.
6181         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
6182         * optabs.c (gen_move_insn): Likewise.
6183         * recog.c (validate_replace_rtx_1): Likewise.
6184         * simplify-rtx.c (add_mem_for_addr): Likewise.
6185         * stmt.c (expand_anon_union_decl): Likewise.
6186         * config/arm/arm.md: Likewise.
6187         * config/h8300/h7300.c (fix_bit_operand): Likewise.
6188         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
6189         (block_move_no_loop, block_move_sequence): Likewise.
6190         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
6191         * config/alpha/alpha.c (get_aligned_mem): Likewise.
6192         Clear MEM_ALIAS_SET.
6193         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
6194         MEM_COPY_ATTRIBUTES.
6195
6196 2000-05-03  Robert Lipe <robertlipe@usa.net>
6197
6198         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
6199         to suppress libgcc1.
6200         (i[34567]86-*-sco3.2v5*) Likewise.
6201         (i[34567]86-*-sco3.2v4*) Likewise.
6202         (i[34567]86-*-sco) Likewise.
6203         (i[34567]86-*-solaris2) Likewise.
6204         (i[34567]86-*-sysv5*) Likewise.
6205         (i[34567]86-*-sysv4*) Likewise.
6206         (i[34567]86-*-udk*) Likewise.
6207         (i[34567]86-*-sysv*) Likewise.
6208
6209 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6210
6211         * cpphash.h (U): New define, to correct type of string constants.
6212         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
6213         routines, to do casts when passing unsigned strings to libc.
6214         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
6215
6216         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
6217         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
6218         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
6219         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
6220         second argument an U_CHAR *.
6221
6222         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
6223         length field, clean up initializer.
6224         (ISTABLE): Add __extension__ to designated-
6225         initializers version.
6226         * cpplex.c (CHARTAB): Likewise.
6227
6228         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
6229         case so the file won't be empty.
6230
6231 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
6232
6233         * bb-reorder.c (struct reorder_block_def): Member succ removed.
6234         (REORDER_BLOCK_SUCC): Removed.
6235         (enum reorder_skip_type): Removed.
6236         (skip_insns_between_block): Renamed to skip_insns_after_block.
6237         Removed second argument. Removed dead code and cleaned up.
6238         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
6239         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
6240         second parameter to skip_insns_after_block.
6241
6242 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6243
6244         * tree.c (staticp, case LABEL_DECL): New case.
6245
6246 2000-05-03  Richard Henderson  <rth@cygnus.com>
6247
6248         * Makefile.in (start.encap): Do not depend on LIBGCC1.
6249
6250         * mklibgcc1.in: Fix typo last change.
6251
6252 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6253
6254         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
6255         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
6256         (GCC_CFLAGS): Use it.
6257         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
6258         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
6259         objc/Make-lang.in: Use it.
6260
6261 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
6262
6263         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
6264
6265 2000-05-03  Richard Henderson  <rth@cygnus.com>
6266
6267         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
6268         LIBGCC1 empty with libgcc1.null.
6269
6270 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
6271
6272         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
6273         change.
6274
6275 2000-05-03  Greg McGary  <gkm@gnu.org>
6276
6277         * tree.h (tree_common): Add bounded_flag member.  Remove
6278         inaccurate comment about number of remaining bits.
6279         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
6280         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
6281         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
6282         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
6283         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
6284         (TYPE_QUAL_BOUNDED): New constant.
6285         (TYPE_QUALS): Handle bounded qualifier.
6286         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
6287         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
6288         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
6289         TYPE_AMBIENT_BOUNDEDNESS): New macros.
6290         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
6291         (tree_type): Add pointer_depth member.  Remove
6292         inaccurate comment about number of remaining bits.
6293         (DECL_POINTER_DEPTH): Add macro.
6294         (tree_decl): Add pointer_depth member.
6295
6296 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
6297
6298         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
6299         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
6300         (lshrhi3_out): Likewise.
6301         (ashrsi3_out): bugfix in shift by 8.
6302         (test_hard_reg_class): New function.
6303         * config/avr/avr.md: Bugfix inside conditions in peepholes.
6304         (ashlhi3): removed define_expand of this pattern.
6305         (*ashlhi3_insn): renamed to ashlhi3.
6306         (ashlsi3): removed define_expand of this pattern.
6307         (*ashlsi3_insn): renamed to ashlsi3.
6308         (ashrqi3): removed define_expand of this pattern.
6309         (*ashrqi3_insn): renamed to ashrqi3.
6310         (ashrhi3): removed define_expand of this pattern.
6311         (*ashrhi3_insn): renamed to ashrhi3.
6312         (ashrsi3): removed define_expand of this pattern.
6313         (*ashrsi3_insn): renamed to ashrsi3.
6314         (lshrhi3): removed define_expand of this pattern.
6315         (*lshrhi3_insn): renamed to lshrhi3.
6316         (lshrsi3): removed define_expand of this pattern.
6317         (*lshrsi3_insn): renamed to lshrsi3.
6318
6319 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
6320
6321         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
6322         inclusion of "system.h".
6323
6324 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
6325
6326         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
6327         TREE_ASM_WRITTEN.
6328
6329 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
6330
6331         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
6332         if -mauto-pic is on.
6333         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
6334         -mconstant-gp is in effect and function-descriptors are being used
6335         to make indirect calls.
6336         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
6337         (MASK_AUTO_PIC): Ditto.
6338         (TARGET_CONST_GP): Ditto.
6339         (TARGET_AUTO_PIC): Ditto.
6340         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
6341         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
6342         -mno-pic is in effect.
6343         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
6344         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
6345         -mauto-pic is in effect.
6346         (gprel64_offset): New pattern.
6347         (load_gprel64): Ditto.
6348         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
6349         -mconstant-gp is in effect, no need to preserve gp around direct
6350         calls.
6351         (call_value): Ditto.
6352         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
6353         (FUNCTION_PROFILER): Define.
6354         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
6355         @fptr() directive when -mno-pic or -mauto-pic is in effect.
6356         (ASM_OUTPUT_DESTRUCTOR): Ditto.
6357
6358 2000-05-03  Richard Henderson  <rth@cygnus.com>
6359
6360         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
6361         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
6362         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
6363         (mklibgcc, libgcc.mk): New targets.
6364         (libgcc.a): Use libgcc.mk.
6365         (stmp-multilib): Likewise.
6366         (stmp-multilib-sub): Remove.
6367         (mostlyclean): Don't delete libgcc2 temp files.
6368         * configure.in (AC_PROG_CC_C_O): Add.
6369         (NO_MINUS_C_MINUS_O): Substitute it.
6370         (all_outputs): Add mklibgcc.
6371         * mklibgcc.in: New file.
6372
6373 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6374
6375         * cppexp.c (op_t): Make an int.
6376
6377         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
6378
6379         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
6380
6381         * gensupport.c (process_rtx): Fix macros used.
6382
6383 2000-05-03  Richard Henderson  <rth@cygnus.com>
6384
6385         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
6386         call-clobbered registers of a call.
6387
6388 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6389
6390         * gensupport.c: New file.
6391         * gensupport.h: New file.
6392         * Makefile.in (HOST_RTL): Depend on gensupport.
6393         (gensupport.o) New rule.
6394         * genattr.c: Use gensupport for reading .md files.
6395         * genattrtab.c: Ditto.
6396         * gencodes.c: Ditto.
6397         * genconfig.c: Ditto.
6398         * genemit.c: Ditto.
6399         * genextract.c: Ditto.
6400         * genflags.c: Ditto.
6401         * genopinit.c: Ditto.
6402         * genoutput.c: Ditto.
6403         * genpeep.c: Ditto.
6404         * genrecog.c: Ditto.
6405         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
6406         * md.texi (Insn Splitting): Document define_insn_and_split.
6407
6408 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6409
6410         * flow.c (verify_flow_info): Added two more sanity checks. The
6411         first checks that the blocks are numbered consecutively. The second
6412         checks that n_basic_blocks is actually equal to the number of
6413         basic blocks in the insn chain.
6414
6415 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6416
6417         * cpplib.h: Add accessor macros for token lists.
6418         * cpplib.c, cpphash.c, cpplex.c: Use them.
6419
6420 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6421
6422         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6423         memory usage if not in a function.
6424         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6425         return address if static.
6426
6427 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6428
6429         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6430         whether address may trap.
6431
6432 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6433
6434         * bb-reorder (chain_reorder_blocks): Changed code to test for
6435         EDGE_FALLTHRU rather than making erroneous assumption that the
6436         first outgoing edge is the fall-through edge.
6437
6438 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6439
6440         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6441         ABI for varargs, across all MIPS. This is incompatible because the
6442         va_list (__builtin_va_list) structure is different, so a compilation
6443         unit passing a va_list and a compilation unit being passed one, should
6444         both be compiled with the same ABI. (The old structure had two
6445         pointers, now it has three.)
6446
6447 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6448
6449         * bb-reorder.c (struct reorder_block_def): Remove members end,
6450         block_begin, and block_end.
6451         (REORDER_BLOCK_OLD_END): Delete.
6452         (REORDER_BLOCK_BEGIN): Delete.
6453         (REORDER_BLOCK_END): Delete.
6454         (chain_reorder_blocks): Remove dead code.
6455
6456 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6457
6458         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6459         notes as the end of a basic block before deleting.
6460
6461 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6462
6463         * final.c (final_start_function): Fix spelling of "necessary".
6464
6465 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6466
6467         * toplev.c (debug_ignore_block): Return int.
6468         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6469         * toplev.h, dwarf2out.h: Adjust.
6470         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6471
6472         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6473         * toplev.c, final.c, rtl.h: Adjust.
6474
6475 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6476
6477         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6478         * configure.in: Look for makeinfo in the unified tree, then
6479         for a system makeinfo which is sufficiently new.
6480         * Makefile.in: If configure says makeinfo is too old, don't
6481         build or install Info documentation.
6482
6483 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6484
6485         * cpphash.c (collect_params): Fix off-by-one error.
6486         (dump_hash_helper): Dump all four macro nodetypes.
6487
6488 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6489
6490         * cpphash.c (trad_stringify): Adjust p after stringification as
6491         well.
6492
6493 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6494
6495         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6496         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6497
6498         * cppfiles.c (file_cleanup): Delete.
6499         * cpphash.c (macro_cleanup): Delete.
6500         (collect_objlike_expansion, collect_funlike_expansion,
6501         macarg, scan_arguments): Remove CPP_POP case.
6502
6503         * cpplex.c (null_cleanup): Delete.
6504         (cpp_pop_buffer): Do the work that was done in the cleanups
6505         here.  Call _cpp_unwind_if_stack from here.
6506         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6507         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6508         stack is the buffer _below_ the one we stacked.
6509         (cpp_get_token): Always pop an exhausted buffer.  Return
6510         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6511         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6512         increment the line number.
6513         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6514
6515         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6516         we see CPP_EOF and the top of stack is the buffer _below_ the
6517         one we stacked.
6518         * scan-decls.c: Likewise.
6519
6520 2000-05-02  Andrew Haley  <aph@cygnus.com>
6521
6522         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6523         where this function is called for the second time on a decl that
6524         has had its section info changed in such a way as to move it out
6525         of small data/bss.
6526         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6527
6528 2000-05-01  Richard Henderson  <rth@cygnus.com>
6529
6530         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6531         the sequence we're moving, not to merge_bb->head.
6532
6533 2000-05-01  Richard Henderson  <rth@cygnus.com>
6534
6535         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6536         reference to alpha/t-linux.
6537         (alpha*-*-linux-gnu*): Likewise.
6538         * configure: Rebuild.
6539
6540         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6541
6542         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6543         if not in SSA form.
6544
6545         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6546
6547 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6548
6549         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6550         TREE_THIS_VOLATILE.
6551
6552 2000-05-01  Richard Henderson  <rth@cygnus.com>
6553
6554         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6555         emit_conditional_move.
6556
6557 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6558
6559         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6560         as the dynamic linker.
6561
6562 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6563
6564         * cppfiles.c (open_include_file): Open file in blocking mode.
6565         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6566         Only exclude block devices and directories.
6567
6568         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6569         static.  Allocate the hashnode and its string in the same
6570         block of memory.
6571         (del_HASHNODE): Don't free h->name.
6572         (_cpp_lookup): If there is no entry for this string, create
6573         one, of type T_VOID.
6574         (_cpp_lookup_slot): Delete.
6575         * cpphash.h: Update prototypes.
6576
6577         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6578         not hp == NULL.
6579         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6580         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6581         node here, just fill in the value field properly.  "Delete"
6582         entries by setting the value field to T_VOID.  Check for
6583         hp->type == T_VOID, not hp == NULL.
6584
6585         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6586         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6587         hashtab.h.
6588
6589 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6590
6591         * config/mn10300/mn10300.c (print_operand_address): Do not add
6592         zero to SP.
6593
6594         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6595         adjusted by less than 256 bytes, use ret regardless of having any
6596         callee-saved register to restore.
6597
6598 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6599
6600         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6601
6602 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6603
6604         * config/i386/djgpp.h (INT_ASM_OP): Define.
6605         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6606         (ASM_WEAKEN_LABEL): Define.
6607         (MASK_BNU210): Define.
6608         (SUBTARGET_SWITCHES): Define.
6609         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6610         (MAKE_DECL_ONE_ONLY): Define.
6611         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6612
6613 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6614
6615         * i386/cygwin.h (INT_ASM_OP): Define.
6616
6617 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6618
6619         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6620         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6621
6622 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6623
6624         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6625         __tmp_reg__ and __zero_reg__ initialization.
6626
6627 2000-04-30  Richard Henderson  <rth@cygnus.com>
6628
6629         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6630
6631         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6632         referenced bewteen the condition and the jump.  Don't delete
6633         anything but the jump.
6634
6635 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6636
6637         * bb-reorder.c (scope_def): New struct.
6638         (scope_forest_info): New struct.
6639         (struct reorder_block_def): New member "scope".
6640         (REORDER_BLOCK_SCOPE): New macro.
6641         (relate_bbs_with_scopes): New function and prototype.
6642         (make_new_scope): Likewise.
6643         (build_scope_forest): Likewise.
6644         (remove_scope_notes): Likewise.
6645         (insert_intra_1): Likewise.
6646         (insert_intra_bb_scope_notes): Likewise.
6647         (insert_inter_bb_scope_notes): Likewise.
6648         (rebuild_scope_notes): Likewise.
6649         (free_scope_forest_1): Likewise.
6650         (free_scope_forest): Likewise.
6651         (dump_scope_forest): Likewise.
6652         (dump_scope_forest_1): Likewise.
6653         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6654         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6655         block.
6656         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6657         and remove_scope_notes before reordering is done. Added calls to
6658         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6659         after reordering is done.
6660
6661 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6662
6663         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6664         removed two stale entries (defined away with OLD_CPP).
6665         * fixinc/inclhack.sh: regen
6666         * fixinc/fixincl.x: regen
6667
6668 2000-04-30  Richard Henderson  <rth@cygnus.com>
6669
6670         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6671         from the last insn in the sequence.
6672
6673 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6674
6675         * cpplex.c (cpp_idcmp): New function.
6676         * cpplib.h: Prototype it.
6677         * scan_decls.c (scan_decls): Use it to inspect token names.
6678         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6679         the file being run through the preprocessor.
6680         (check_macro_names): Provide length of token to cpp_defined.
6681
6682         * Makefile.in: Remove stale warning message.
6683
6684         * cppfiles.c (redundant_include_p): Provide length of token to
6685         cpp_defined.
6686         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6687         values are unsigned int.
6688         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6689         (_cpp_lookup_slot): Do not calculate the hash, either.
6690         * cpphash.h: Update prototypes.
6691         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6692         Hashes are unsigned int.  Calculate hash here, pass by value
6693         to _cpp_lookup_slot.
6694
6695 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6696
6697         * simplify-rtx.c (check_value_useless): Delete function.
6698         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6699         by hand.
6700         (cselib_invalidate_regno): Likewise.
6701         (cselib_invalidate_mem_1): Likewise.
6702         (references_value_p): Recognize useless values by the fact that they
6703         have no locations.
6704         (discard_useless_values): Likewise.
6705         (cselib_record_set): This may turn a useless value
6706         into a useful one.
6707
6708 2000-04-30  Richard Henderson  <rth@cygnus.com>
6709
6710         * config/d30v: New port.
6711
6712         * configure.in (d30v-*): Set fp format.
6713         * configure: Rebuild.
6714
6715 2000-04-30  Richard Henderson  <rth@cygnus.com>
6716
6717         * ifcvt.c: New file.
6718         * Makefile.in (OBJS): Add it.
6719         (ifcvt.o): New target.
6720         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6721         and conditional arithmetic.
6722         (find_insert_position): Remove.
6723         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6724         * toplev.c (DFI_ce, DFI_ce2): New.
6725         (dump_file): Add ce and ce2 dumps.
6726         (rest_of_compilation): Run if_convert a couple o times.  Set
6727         cse_not_expected after cse2.  Don't set no_new_pseudos until
6728         after sched1 or recompute_reg_usage.
6729
6730 2000-04-30  Richard Henderson  <rth@cygnus.com>
6731
6732         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6733         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6734
6735 2000-04-30  Richard Henderson  <rth@cygnus.com>
6736
6737         * flow.c (struct reg_cond_life_info): New.
6738         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6739         (init_propagate_block_info): Initialize them.
6740         (free_propagate_block_info): Destruct them.
6741         (mark_set_1): Consider conditional life before killing a register.
6742         (mark_regno_cond_dead): New.
6743         (free_reg_cond_life_info): New.
6744         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6745         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6746         (mark_used_reg): Record conditional life.
6747
6748         * haifa-sched.c (schedule_insns): Disable death counting
6749         sanity check for HAVE_conditional_execution.
6750
6751 2000-04-30  Richard Henderson  <rth@cygnus.com>
6752
6753         * Makefile.in (TIMEVAR_H): New.
6754         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6755         (timevar.h): Remove rule.
6756
6757 2000-04-29  Richard Henderson  <rth@cygnus.com>
6758
6759         * config/alpha/crtend.asm: Use C comments instead of #.
6760         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6761
6762         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6763
6764 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6765
6766         * cpphash.h (enum node_type: Take out T_MCONST.
6767         (union hashval): Move into struct hashnode.
6768         (struct hashnode): Pack tighter.  Remove file, line, col
6769         members.
6770         * cpphash.c: Constify most of the macro-definition structures.
6771         (struct definition): Replace by struct object_defn
6772         and struct funct_defn.  Put file, line, column information
6773         here.  All users updated to match.
6774         (_cpp_create_definition, _cpp_macroexpand): Remove special
6775         case for #define WORD OTHERWORD.
6776         * cpplib.c (do_undef): Remove T_MCONST case.
6777
6778         * cpphash.h: Move struct reflist, struct definition, and the
6779         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6780         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6781         * cpphash.c (_cpp_free_definition): Free data pointed to by
6782         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6783         (_cpp_create_definition, del_HASHNODE): Just call
6784         _cpp_free_definition to clear out a hashnode.
6785         * cpplib.c (do_pragma_poison): Likewise.
6786
6787 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6788
6789         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6790         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6791         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6792         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6793         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6794         REGNO_AM33_P): Redefine in terms of the new macros.
6795         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6796         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6797         STRUCT_VALUE): Likewise.
6798         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6799         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6800
6801 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6802
6803         * regmove.c (struct record_stack_memrefs_data): New.
6804         (record_stack_memrefs): New function.
6805         (combine_stack_adjustments_for_block): Use it.
6806
6807 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6808
6809         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6810         use special_function_p to detect alloca.
6811
6812 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6813
6814         * gcc.texi: Fixes for makeinfo 4.0 --html.
6815
6816 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6817
6818         * pcp.h: Delete file.
6819
6820 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6821
6822         * h8300.c (function_epilogue): Clean up flags when the last insn
6823         in a function is a barrier.
6824
6825 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6826
6827         * configure.in (sparc-hal-solaris2*): protect [] glob from
6828         my expansion.
6829         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6830         rather than hard-coded constants in target_cpu_default2.
6831         * configure: Regenerate.
6832
6833 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6834
6835         * tree.c (get_callee_fndecl): Extract the initial value from
6836         a readonly decl.
6837
6838 2000-04-28  Richard Henderson  <rth@cygnus.com>
6839
6840         * varasm.c (record_constant_1): Record the CODE_LABEL when
6841         taking the address of a LABEL_REF.
6842
6843 2000-04-28  Richard Henderson  <rth@cygnus.com>
6844             Jan Hubicka  <jh@suse.cz>
6845
6846         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6847         adjustment; don't do the stack adjust.
6848         (expand_call): Call compute_argument_block_size right before
6849         allocating the block; update comment; don't do alignment sanity
6850         checking for sibling call; use args_size instead of
6851         unadjusted_args_size before args_size is adjusted.  Use
6852         combine_pending_stack_adjustment_and_call to compute stack adjust
6853         for must_preallocate case.
6854
6855         * expr.c (push_block): Remove shadow `temp' in inner scope.
6856
6857 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6858
6859         * toplev.c (rest_of_compilation): Call
6860         note_deferral_of_defined_inline_function even if the function
6861         can't be inlined.
6862
6863 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6864
6865         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6866
6867 2000-04-28  Richard Henderson  <rth@cygnus.com>
6868
6869         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6870
6871 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6872
6873         * timevar.c (init_timevar): DeANSIfy function definition.
6874
6875 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6876
6877         * Makefile.in (timevar.o): Depend on flags.h.
6878         * timevar.c (unused_stack_instances): New variable.
6879         (timevar_push): Take a timevar_stack_def from
6880         unused_stack_instances if available.
6881         (timevar_pop): Push the popped timevar_stack_def onto
6882         unused_stack_instances.
6883         (TIMEVAR_ENABLE): New macro.
6884         (timevar_def): Make standalone a 1-bit field.  Add field used.
6885         (get_time): Rename parameter to now.  Return after clearing it if
6886         not TIMEVAR_ENABLE.
6887         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6888         (timevar_pop): Likewise.
6889         (timevar_stop): Likewise.
6890         (timevar_push): Likewise.  Mark the timing variable as used.
6891         (timevar_start): Likewise.
6892         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6893         timevars that were never used.
6894
6895 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6896
6897         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6898         always TREE_READONLY.
6899
6900 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6901
6902         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6903         for call instruction with mode QImode.
6904
6905 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6906
6907         * Makefile.in (OBJS): Add timevar.o.
6908         (toplev.o): Depend on timevar.h.
6909         (ggc-simple.o): Likewise.
6910         (ggc-page.o): Likewise.
6911         (timevar.o): New rule.
6912         (timevar.h): New rule.
6913
6914         * timevar.h: New file.
6915         * timevar.c: Likewise.
6916         * timevar.def: Likewise.
6917
6918         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6919         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6920         throughout.
6921         (TIMEVAR): Remove macro.
6922         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6923         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6924         flow_time, combine_time, regmove_time, sched_time,
6925         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6926         sched2_time, dbr_sched_time, reorder_blocks_time,
6927         rename_registers_time, shorten_branch_time, stack_reg_time,
6928         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6929         all_time): Remove.
6930         (compile_file): Don't initialize time variables.  Call
6931         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6932         of many calls to print_time.
6933         (rest_of_compilation): Add timing for reload_cse_regs.
6934         (get_run_time): Removed to timevar.c.
6935         (print_time): Likewise.
6936         (get_run_time): Implement using TV_TOTAL time variable.
6937         (print_time): Get total run time from get_run_time.
6938         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6939         computing elapsed time explicitly.
6940         * ggc-simple.c (ggc_collect): Likewise.
6941         (gc_time): Remove declaration.
6942
6943 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6944
6945         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6946         (expand_call): Use it.
6947
6948 2000-04-27  Jan Hubicka  <jh@suse.cz>
6949
6950         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6951         fields.
6952
6953 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6954
6955         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6956         registers.
6957
6958 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6959
6960         * function.c (epilogue_done): Pass whole insn to record_insns.
6961
6962 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6963
6964         * cse.c (CSE_ADDRESS_COST): Remove.
6965         (find_best_addr): Add new parameter "MODE", use address_cost instead
6966         of CSE_ADDRESS_COST
6967         (address_cost): New.
6968         (fold_rtx): Update call of find_best_addr.
6969         * rtl.h (address_cost): Declare.
6970         * loop.c (general_induction_var): Add new parameter "MODE", use
6971         address_cost instead of ADDRESS_COST
6972         (init_loop): Use address_cost instead of ADDRESS_COST.
6973         (check_insn_for_givs): Update call of general_induction_var.
6974         (find_mem_givs): Likewise.
6975         (consec_sets_giv): Likewise.
6976         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6977         * i386.c (ix86_address_cost): New.
6978         * i386-protos.h (ix86_address_cost): Declare.
6979
6980 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6981
6982         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6983         registers.
6984
6985 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6986
6987         * expr.c (store_expr): Use clear_storage instead of direct memset
6988         libcall.
6989
6990 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6991
6992         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6993         ASHIFT, AND and LABEL_REF.
6994
6995 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6996
6997         * invoke.texi (-foptimize-sibling-calls): Fix.
6998
6999 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7000
7001         * loop.c (load_mems)  Don't use hard registers for the hoisting.
7002
7003         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
7004         calculation; rename const_equiv array in the preconditioning code
7005         from loop_unroll to loop_unroll_precondition
7006
7007 2000-04-27  Richard Henderson  <rth@cygnus.com>
7008
7009         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
7010         add new_set.
7011         (propagate_one_insn): Clear it.  Don't update reg_live here.
7012         (init_propagate_block_info): Update for pbi member changes.
7013         (free_propagate_block_info): Likewise.
7014         (mark_set_1): Know that zero_extract, sign_extract, and
7015         strict_low_part don't kill their argument.  Alter hard subregs.
7016         Update new_set for non-CLOBBER sets.  Update reg_live.
7017         (find_auto_inc): Update reg_live, not new_dead.
7018         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
7019         to determine if the reg in question was set this insn.  Only update
7020         reg info with PROP_REG_INFO.
7021
7022 2000-04-26  Richard Henderson  <rth@cygnus.com>
7023
7024         * flow.c (allocate_reg_life_data): Set max_regno here ...
7025         (life_analysis): ... not here.
7026
7027         * flow.c (calculate_global_regs_live): Force stack pointer
7028         live at end.
7029
7030 2000-04-26  Richard Henderson  <rth@cygnus.com>
7031
7032         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
7033         commit change group changes.
7034         (invert_exp_1): Similarly.
7035         (redirect_exp, invert_exp): Use them.
7036         (redirect_jump_1): New.
7037         (invert_jump_1): New.
7038         (jump_optimize_1): Remove code subsumed by condexec.c.
7039         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
7040
7041 2000-04-26  Richard Henderson  <rth@cygnus.com>
7042
7043         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
7044
7045         * genconfig.c (main): Set all HAVE_foo to 1.
7046
7047         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
7048
7049 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
7050
7051         * invoke.texi: Document -fssa flag.
7052
7053 2000-04-26  Richard Henderson  <rth@cygnus.com>
7054
7055         * flow.c (count_reg_sets_1): Remove.
7056         (count_reg_sets, count_reg_references): Remove.
7057         (recompute_reg_usage): Implement with update_life_info.
7058         Reallocate life data.
7059
7060 2000-04-26  Richard Henderson  <rth@cygnus.com>
7061
7062         * flow.c (update_life_info): Consider blocks null to mean the
7063         universal set.
7064         (calculate_global_regs_live): Likewise.
7065         (life_analysis): Do that instead of collecting all_blocks.
7066
7067 2000-04-26  Richard Henderson  <rth@cygnus.com>
7068
7069         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
7070         a still-valid conditional jump.
7071
7072 2000-04-26  Richard Henderson  <rth@cygnus.com>
7073
7074         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
7075
7076         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
7077         * flow.c (calculate_loop_depth): Remove.
7078         * output.h (calculate_loop_depth): Don't declare.
7079         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
7080         inline; run estimate_probability at the same time.
7081
7082 2000-04-26  Neil Booth  <NeilB@earthling.net>
7083
7084         * cpplib.h: "~=" is not a single pp-token.
7085         * cpplex.c: Correct commentary.
7086
7087 2000-04-26  Richard Henderson  <rth@cygnus.com>
7088
7089         * flow.c (mark_set_1): New arguments code and flags; update all
7090         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
7091         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
7092         loop_depth when optimizing for size.  Do new_dead update after
7093         emitting REG_UNUSED notes.  Merge mark_set_reg code.
7094         (mark_set_reg): Remove.
7095         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
7096         arrange to not emit REG_UNUSED notes.
7097
7098 2000-04-26  Richard Henderson  <rth@cygnus.com>
7099
7100         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
7101         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
7102
7103 2000-04-26  Richard Henderson  <rth@cygnus.com>
7104
7105         * flow.c (propagate_one_insn): Break out from propagate_block.
7106         (init_propagate_block_info): Likewise.
7107         (free_propagate_block_info): Likewise.
7108         (propagate_block): Use them.  Export.
7109         * basic-block.h: Declare them all.
7110
7111 2000-04-26  Richard Henderson  <rth@cygnus.com>
7112
7113         * basic-block.h (life_analysis): Declare here ...
7114         * output.h: ... not here.
7115         * flow.c (life_analysis): Remove nregs parameter; replace
7116         remove_dead_code with flags.  Remove ssa dead code check.
7117         Only init alias analysis if we'll use it.
7118         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
7119         * ssa.c (convert_to_ssa): Likewise.
7120         (convert_from_ssa): Likewise.
7121         * toplev.c (rest_of_compilation): Likewise.
7122
7123 2000-04-26  Richard Henderson  <rth@cygnus.com>
7124
7125         * flow.c (flow_delete_block): Rename from delete_block.  Export.
7126         * basic-block.h (flow_delete_block): Declare.
7127
7128 2000-04-26  David S. Miller  <davem@redhat.com>
7129
7130         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
7131         taking a PATTERN of it.
7132
7133 2000-04-26  <NeilB@earthling.net>
7134
7135         * cpplex.c (spell_other, spell_char): Remove.
7136         (SPELL_CHAR): New.
7137         (token_spelling, trigraph_map): Use unsigned chars.
7138         (_cpp_lex_line): Tidy up the switch statement.
7139         * cpplib.h: Implement spell_char with spell_string.
7140         (C): New.
7141
7142 2000-04-26  <RodneyBrown@pmsc.com>
7143
7144         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7145         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7146
7147 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7148
7149         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
7150         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
7151         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
7152         dwarf2out_return_save, dwarf2out_return_reg,
7153         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
7154         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
7155         gen_compile_unit_die, dwarf2out_init): Constify a char*.
7156
7157         * dwarf2out.h (dwarf2out_init): Likewise.
7158
7159         * dwarfout.c (filename_entry, primary_filename, last_filename,
7160         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
7161
7162         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
7163         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
7164         dwarf2out_return_reg): Likewise.
7165
7166 2000-04-26  Andreas Jaeger  <aj@suse.de>
7167
7168         * extend.texi (Function Attributes): Fix description of pure
7169         attribute.
7170
7171 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7172
7173         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
7174         before calling rest_of_compilation.
7175
7176 2000-04-26  Andreas Jaeger  <aj@suse.de>
7177
7178         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
7179         last patch.
7180
7181 2000-04-25  Richard Henderson  <rth@cygnus.com>
7182
7183         * cse.c (cse_insn): Emit barrier after unconditional jump.
7184
7185         * calls.c (expand_call): Disable tail call generation once
7186         rtx_equal_function_value_matters is false.
7187
7188         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
7189         like EDGE_EH edges.
7190
7191 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
7192
7193         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
7194
7195         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
7196
7197         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
7198         is the primary DIE for a member function.
7199         (gen_decl_die): Call set_decl_origin_self here.
7200         * dwarfout.c (output_decl): And here.
7201         * integrate.c (output_inline_function): Not here.
7202         Don't clear DECL_INLINE until after calling rest_of_compilation.
7203         (set_decl_origin_self): No longer static.
7204         * tree.h: Add prototype.
7205         * toplev.c (note_deferral_of_defined_inline_function): Only write
7206         out abstract instance for actual inlines.
7207
7208 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
7209
7210         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
7211         EXTENDED_REGS only if TARGET_AM33.
7212         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
7213         SP_REGS to register allocation and reloading unless absolutely
7214         necessary.
7215         (movsi3): Remove special-case of adding non-constants to SP.
7216
7217 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7218
7219         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
7220         INCLUDES to search and does not provide any of its own.  Also it
7221         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
7222         parameters.  Also it does not call AC_DEFINE.
7223         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
7224         AC_DEFINE and provides for automatic entries for autoheader.
7225         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
7226
7227         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
7228         so we can pass -I flags and include gansidecl.h/system.h in this
7229         test.
7230
7231         * acconfig.h: Delete all NEED_DECLARATION_* entries.
7232
7233 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7234
7235         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7236         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7237         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
7238
7239         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7240         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7241         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
7242         for these macros.  Clean up spacing and linewraps.
7243
7244 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7245
7246         * calls.c (expand_call): Use get_callee_fndecl.
7247
7248         * print-tree.c (print_node): Print the chain of an _EXPR.
7249
7250 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
7251                           Jim Wilson  <wilson@cygnus.com>
7252                           Andrew Haley  <aph@cygnus.com>
7253
7254         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
7255         and gp save/restore problems.
7256         * config/ia64/crtend.asm: Add IA-64 unwind support.
7257         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
7258         in fr_pad_size calculation.
7259         (save_restore_insns): Move PR save area.  Correct uses of
7260         RTX_FRAME_RELATED_P.
7261         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
7262         (ia64_expand_epilogue): Add eh_epilogue support.
7263         (ia64_function_prologue): Emit .prologue directive.
7264         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
7265         (ia64_override_options): Set init_machine_status and
7266         mark_machine_status.
7267         (rtx_needs_barrier): Handle bsp reads and writes.
7268         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
7269         New static variables.
7270         (process_set, process_for_unwind_directive): New functions.
7271         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
7272         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
7273         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
7274         macros.
7275         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
7276         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
7277         (struct machine_function): Define.
7278         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
7279
7280 2000-04-25  Bruce Korb  <bkorb@gnu.org>
7281
7282         * fixinc/Makefile.in: make the removal of old programs more
7283         robust
7284         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
7285         install-bin and install-sh
7286
7287 2000-04-25  Nick Clifton  <nickc@cygnus.com>
7288
7289         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
7290         defined, define to return zero.
7291         (function_cannot_inline_p): If a function has any target
7292         specific attributes, then use the macro
7293         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
7294         whether it can be inlined.  If it cannot, issue a suitable
7295         explanation.
7296
7297         * tm.texi: Add a new node 'Inlining' to document the new macro
7298         FUNCTION_ATTRIBUTE_INLINABLE_P.
7299
7300 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
7301
7302         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
7303         commentary.
7304
7305 2000-04-25  Neil Booth  <NeilB@earthling.net>
7306
7307         Restore previous patch, plus the following fixes:
7308
7309         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
7310         flags, not CPP_OPEN_PAREN.
7311         * cpplex.c (expand_token_space, init_token_list,
7312         cpp_free_token_list): Put the dummy token at list->tokens[-1].
7313         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
7314
7315 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7316
7317         * config/i386/freebsd.h (INT_ASM_OP): Define.
7318
7319 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7320
7321         * loop.c (strength_reduce): Fix typo in the last checkin.
7322
7323 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7324
7325         * stor-layout.c (finalize_record_size): Simplify to use existing
7326         functions.
7327         (compute_record_mode): No longer static.
7328         * tree.h (compute_record_mode): New declaration.
7329
7330 2000-04-25  Neil Booth  <NeilB@earthling.net>
7331
7332         * Revert my patch below until cause of build failures
7333         determined.
7334
7335 2000-04-25  Richard Henderson  <rth@cygnus.com>
7336
7337         * combine.c (combine_instructions): Add missing argument
7338         to try_combine.
7339
7340         * toplev.c (rest_of_compilation): Delay sibcall optimization
7341         until after emit_eh_context.
7342
7343 2000-04-24  Nick Clifton  <nickc@redhat.com>
7344
7345         * combine.c (combine_instructions): Do not try to combine a
7346         sequence of insns when the second insn has been replaced by a
7347         note.
7348
7349 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
7350
7351         * gcc.c (load_specs): New static function.
7352         (read_specs): Use it.
7353
7354         * gcc.c (lookup_compiler): Make multiple passes for case
7355         insensitive filesystems.
7356
7357 2000-04-24  Neil Booth  <NeilB@earthling.net>
7358
7359         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
7360         * cpphash.h (_cpp_check_directive): new.
7361         * cpplex.c (handle_newline, cpp_free_token_list,
7362         init_trigraph_map, trigraph_ok, trigraph_replace,
7363         backslash_start, skip_block_comment, skip_line_comment,
7364         skip_whitespace, parse_name, parse_number, parse_string,
7365         copy_comment, _cpp_lex_line, spell_char, spell_string,
7366         spell_comment, spell_name, spell_other, _cpp_lex_file,
7367         _cpp_output_list): new.
7368         (expand_name_space): take length argument.
7369         (init_token_list): add comment list initialisation.
7370         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
7371         instead of HSPACE_BEFORE.
7372
7373         * cpplib.c (_cpp_check_directive): new
7374         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
7375         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
7376         (HSPACE_BEFORE): delete.
7377         (TTYPE_TABLE): rearrange.
7378         (struct cpp_toklist): update.
7379
7380 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7381
7382         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
7383         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
7384         argument form of AC_DEFINE.
7385
7386         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
7387         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
7388         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
7389         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
7390         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
7391
7392         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
7393
7394 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7395
7396         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
7397         deduced.h): Use -isystem, not -I, for including system headers.
7398
7399 2000-04-24  Nick Clifton  <nickc@cygnus.com>
7400
7401         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
7402         the source register is the frame pointer or arg pointer.
7403         (addsi3_small_int): Disallow if source register is the frame
7404         pointer or arg pointer.
7405
7406 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7407
7408         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7409         call to AC_MSG_RESULT.
7410
7411 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7412
7413         * invoke.texi: Correct grammatical errors, document
7414         -fno-gnu-keywords as identical to -fno-asm for C++.
7415
7416 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7417
7418         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7419         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7420         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7421         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7422         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7423
7424         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7425         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7426         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7427         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7428         new macros names.
7429
7430 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7431
7432         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7433         (pop_alignment): Likewise.
7434         (handle_pragma_token): Likewise.
7435
7436 2000-04-24  Robert Lipe <robertlipe@usa.net>
7437
7438         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7439
7440 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7441
7442         * combine.c (try_combine): Update reg_nonzero_bits of
7443         newi2pat before newpat.
7444
7445 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7446
7447         * loop.c (strength_reduce): Simplify test to INSN_P.
7448         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7449         expressions instead of CONST_INT.
7450         (express_from_1): Likewise.
7451
7452 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7453
7454         * regs.h (reg_n_max): Don't declare.
7455         * flow.c (reg_n_max): Don't define.
7456         * regclass.c (renumber): Don't initialize to zero.
7457         (regno_allocated): Likewise.
7458         (reg_n_max): Define.
7459         (allocate_reg_info): Don't initialize unnecessarily.
7460
7461 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7462
7463         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7464         and blockage_p in the newly allocated attribute.
7465
7466 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7467
7468         * config/mn10300/mn10300.md (addsi): `inc4' on address
7469         registers does not modify cc, but `inc' on an extended
7470         register does.
7471
7472 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7473
7474         * reload.c (find_equiv_reg): Checks all valueno regs
7475         as a reload_reg_p regs.
7476
7477 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7478
7479         * cpphash.c (collect_objlike_expansion): Add sanity check.
7480         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7481         the buffer is the empty string, return.  Mark __DATE__ and
7482         __TIME__ as XCONST nodes, not MCONST.
7483         (_cpp_macroexpand): Avoid pushing an empty buffer.
7484         (funlike_macroexpand): Don't pop token_buffer here.
7485
7486 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7487
7488         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7489         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7490         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7491         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7492         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7493         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7494         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7495
7496 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7497
7498         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7499         constant MULT givs.
7500
7501 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7502
7503         * cpphash.h (struct definition): Move file, line, col members...
7504         (struct hashnode): ... here.  Also add 'disabled' flag.
7505         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7506         T_IDENTITY.  Remove T_DISABLED.
7507         Update prototypes.
7508
7509         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7510         (collect_expansion): Split into collect_objlike_expansion and
7511         collect_funlike_expansion.
7512         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7513         funlike_macroexpand.
7514         (_cpp_compare_defs): Rename compare_defs, make static.
7515         (_cpp_make_hashnode): Initialize hp->disabled.
7516         (macro_cleanup): Adjust for new token types.  Clear
7517         m->disabled.
7518         (_cpp_create_definition): Move code here to determine what
7519         sort of macro it is, and code to check for redefinitions, from
7520         do_define.  Implement a few simple cases without creating a
7521         full DEFINITION.
7522         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7523         Handle the simple cases.
7524         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7525         here.
7526
7527         * cppinit.c (builtin_array): Change MCONST to XCONST
7528         everywhere.
7529         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7530         fix check for disabled and function-like macros.
7531         * cpplib.c (do_define): Move most logic to
7532         _cpp_create_definition.
7533         (do_undef): Handle new special token types.
7534
7535 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7536
7537         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7538         of CONSTANT_P for mult_val; always use validate_change to update insn.
7539
7540 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7541
7542         * cpphash.c (trad_stringify, add_pat): New functions.
7543         (collect_expansion): Restore support for -traditional syntax.
7544         Use trad_stringify and add_pat.
7545         (_cpp_macroexpand): Restore support for -traditional semantics.
7546         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7547         get a COMMENT token.
7548         (_cpp_lex_token): Provide COMMENT tokens to caller if
7549         traditional and parsing_define_directive.
7550         (skip_comment): Warn about // comments if -Wtraditional.
7551         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7552         proper node type.
7553         (do_undef): Don't warn about undefining EMPTY nodes.
7554
7555 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7556
7557         * loop.c (strength_reduce): Fix biv removal code.
7558
7559 2000-04-22  Richard Henderson  <rth@cygnus.com>
7560
7561         * predict.c (estimate_probability): Examine both sides of
7562         a branch for no exits.  Use 90% not 50% for predict taken.
7563         Reorg for one copy of note generation code.
7564
7565 2000-04-22  Richard Henderson  <rth@cygnus.com>
7566
7567         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7568
7569 2000-04-22  Richard Henderson  <rth@cygnus.com>
7570
7571         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7572         (output_clear): Likewise.
7573         (output_printf): Use va_copy.
7574         (vline_wrapper_message_with_location): Likewise.
7575         (v_message_with_decl): Likewise.
7576         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7577         * system.h (va_copy): Provide default implementation.
7578
7579 2000-04-22  Richard Henderson  <rth@cygnus.com>
7580
7581         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7582         the collected condition is not a constant.
7583
7584 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7585
7586         * diagnostic.h: New file.
7587
7588         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7589
7590         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7591         various function prototypes.
7592         (diagnostic.h): #include.
7593         (struct output_buffer): Move into diagnostic.h.
7594         (get_output_prefix): Rename to output_get_prefix.  Export.
7595         (init_output_buffer): Export. Break out.  Ajust intialization.
7596         (output_space_left, output_append): Export.
7597         (output_newline): Rename to output_add_newline.  Export.
7598         (output_clear): Nullify additional output_buffer fields.
7599         (output_puts): Rename to output_add_string.  Export.
7600         (dump_output): Rename to output_flush_on.  Export.
7601         (build_location_prefix): Constify return-type.
7602         (emit_output_prefix): Rename to output_emit_prefix. Export.
7603         (set_real_maximum_length): New function.
7604         (output_set_maximum_length): Ditto
7605         (output_clear): Ditto.
7606         (output_add_character): Ditto.
7607         (output_add_integer): Ditto.
7608         (output_add_space): Ditto.
7609         (output_format): Ditto.
7610         (output_printf): Adjust buffer initialization.
7611         (vline_wrapper_message_with_location): Ditto.
7612         (v_message_with_decl): Ditto.  Adjust call to output_puts
7613         and get_output_prefix.
7614         (default_print_error_function): Adjust buffer intialization.
7615
7616 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7617
7618         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7619         of VOID_TYPE.
7620
7621 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7622
7623         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7624         of explicit 0.
7625
7626 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7627
7628         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7629         accurate data about SP moves.
7630
7631 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7632
7633         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7634         aliases to AM33 registers.
7635
7636 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7637
7638         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7639         to all EXTENDED bitmaps.
7640
7641 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7642
7643         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7644         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7645         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7646
7647 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7648
7649         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7650         the operand is not constant.
7651
7652 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7653
7654         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7655         as a call-clobbered regs.
7656
7657 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7658
7659         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7660         * rtl.h: Likewise.
7661         * rtl.def: Update comment.
7662         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7663         * integrate.c (expand_inline_function): Likewise.
7664         * profile.c (branch_prob): Likewise.
7665         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7666         * print-rtl.c (print_rtx): Likewise.
7667         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7668         (reemit_notes): Likewise; also use enum insn_note.
7669
7670         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7671         (place_field): Properly compute know and actual alignment.
7672
7673         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7674         in proper format.
7675
7676         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7677         note for REG1.
7678
7679 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7680
7681         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7682         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7683         (collect_expansion): Rewrite to scan over a token list.
7684         Remove -traditional support.
7685         (collect_formal_parameters): Rename to collect_params; rewrite
7686         to scan over a token list.
7687         (_cpp_create_definition): Adjust to scan a token list.
7688         (_cpp_macroexpand): Remove -traditional support.
7689         (_cpp_compare_defs): Whitespace is now canonicalized.
7690         (comp_def_part): Delete function.
7691
7692         * cpphash.h: Update prototypes.
7693         * cpplex.c (init_token_list): Don't set lineno if there is no
7694         buffer.
7695         (pedantic_whitespace): New function.
7696         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7697         consume a newline.  Use pedantic_whitespace.
7698         (_cpp_lex_token): Remove support for -traditional macros.
7699         (_cpp_get_define_token): Delete.
7700         (_cpp_get_directive_token): Do the real work here.  Use
7701         pedantic_whitespace.
7702         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7703
7704         * cpplib.c (get_macro_name): Delete.
7705         (do_define): Read the entire line into pfile->directbuf, then
7706         feed the token list to _cpp_create_definition.
7707         * cpplib.h (HSPACE_BEFORE): new define.
7708         (struct cpp_reader): Add a toklist member, "directbuf".
7709
7710         * predict.c (estimate_probability): New heuristic: if a jump
7711         branches around a block with no successors, predict it taken.
7712         Disentangle control flow.
7713
7714 2000-04-20  Richard Henderson  <rth@cygnus.com>
7715
7716         * loop.c (emit_iv_add_mult): Revert last change.
7717
7718 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7719
7720         * cpplib.h (enum cpp_ttype): Add token types for all
7721         punctuators.  Distinguish pp-numbers from valid C numbers.
7722         Give some tokens better names.  Initialize from macro.
7723         (struct cpp_name, cpp_token, cpp_toklist): New data
7724         structures.
7725         Update prototypes.
7726         * cpplex.c (bump_column, expand_name_space,
7727         expand_token_space, init_token_list, cpp_output_list,
7728         _cpp_scan_line):  New functions.
7729         (output_line_command): Add third argument, new line number.
7730         * cpphash.h: Update prototypes.
7731         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7732         token names.
7733
7734 2000-04-20  Richard Henderson  <rth@cygnus.com>
7735
7736         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7737
7738 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7739
7740         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7741         object pointed to.
7742
7743 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7744
7745         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7746         REG_EQUAL note explaining the calculated value.
7747
7748         * calls.c (expand_call): Avoid unnecesary precalculation
7749         and outgoing parameters space guarding for sibling calls.
7750         (store_one_arg): Likewise.
7751
7752 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7753
7754         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7755         (rest_of_compilation): Write sibling dump file and account
7756         for time as jump time.
7757         * invoke.texi: Update documentation on dump flags.
7758
7759 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7760
7761         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7762
7763 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7764
7765         * cpphash.c (special_symbol): Represent an empty macro with
7766         "\r \r " not just "\r ".
7767         (_cpp_macroexpand): Correct condition for the foo ( ) special
7768         case.
7769         (unsafe_chars): Handle EOF as second argument.
7770         (push_macro_expansion): Simplify test for removing escape at
7771         end.  Do not trim both escapes if there is no text in between.
7772
7773 2000-04-19  Jim Blandy  <jimb@redhat.com>
7774
7775         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7776         of PTR_SIZE, when appropriate.
7777
7778 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7779
7780         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7781         (USE_ENUM_BITFIELDS): Fix typo.
7782
7783 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7784
7785         * stor-layout.c (place_field): Set rli->offset_align properly.
7786
7787 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7788
7789         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7790         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7791         PARM_BOUNDARY): Remove unnecessary casts.
7792
7793 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7794
7795         * calls.c (precompute_arguments): Remove must_preallocate and
7796         args_size calls.
7797         (expand_call): Update call of precompute_arguments.
7798
7799         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7800         check_insn_for_givs): Break out from ...
7801         (strength_reduce) ... here; use for_every_insn_in_loop to call
7802         check_insn_for_givs.
7803         * loop.h (for_every_insn_in_loop): Declare.
7804         (loop_insn_callback): New type.
7805
7806 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7807
7808         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7809         not nul-terminated.
7810
7811 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7812
7813         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7814         flag_pic and RELOC.
7815
7816 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7817
7818         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7819
7820         * configure.in: Delete --disable-cpplib option and all
7821         references to cpp_main.
7822         * configure: Regenerate.
7823         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7824         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7825         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7826         cpp$(exeext).  Add --no-headers to makeinfo command line when
7827         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7828         cccp.1.
7829         * install.texi: Delete all references to cexp.y/cexp.c.
7830         Delete ancient instructions for compiling GCC on 3b1.
7831         * INSTALL: Regenerate.
7832
7833         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7834         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7835         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7836         cexp.c/cexp.y.
7837         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7838         which is no longer tested anywhere.
7839
7840         * cppinit.c (handle_option): Don't run error message through
7841         gettext twice.
7842
7843 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7844
7845         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7846         * cpperror.c (hashtab.h): Now include.
7847         * cppexp.c (hashtab.h): Likewise.
7848         * cpplex.c (hashtab.h): Likewise.
7849         * cppfiles.c (hashtab.h): Likewise.
7850         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7851         to htab_find_slot_with_hash.
7852         * cpphash.c (hashtab.h): Now include.
7853         (_cpp_lookup_slot): INSERT is now enum insert_option.
7854         * cpphash.h (_cpp_lookup_slot): Likewise.
7855         * cppinit.c (hashtab.h): Include earlier.
7856         (initialize_builtins): Pass enum to htab_find_slot.
7857         * cpplib.c (hashtab.h): Now include.
7858         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7859         (do_pragma_poison, do_assert): Likewise.
7860         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7861         htab_find_slot_with_hash.
7862         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7863         * tree.c (type_hash_add): Likewise.
7864         (build1): Minor cleanup.
7865
7866         * ggc-common.c: Add missing blanks.
7867         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7868         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7869
7870         * stmt.c (mark_case_node): New function.
7871         (mark_case_nesting): Call it.
7872
7873         * expmed.c (emit_store_flag): If comparing two-word integer
7874         with zero, can optimize NE, EQ, GE, and LT.
7875
7876         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7877         * conflict.c: Minor cleanups.
7878         * optabs.c: Add blank line
7879         * simplify-rtx.c: Minor cleanups.
7880
7881 2000-04-18  Stan Cox  <scox@cygnus.com>
7882
7883         * gengenrtl.c (genlegend): Fix misspelling.
7884
7885 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7886
7887         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7888         bitfields of the host compiler are not signed quantities.
7889         * config.in: Regenerate.
7890         * configure: Regenerate.
7891         * system.h (USE_ENUM_BITFIELDS): Added.
7892         (ENUM_BITFIELDS): Added.
7893         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7894         (SHORT_ENUM_BUG): Deleted.
7895         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7896         now ENUM_BITFIELD.
7897         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7898         (CODE_FIELD_BUG): Likewise.
7899         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7900         (OLD_CC): Likewise.
7901         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7902
7903 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7904
7905         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7906         mark is active.
7907
7908 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7909
7910         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7911         * cpplib.c (do_include, do_import, do_include_next,
7912         read_line_number, detect_if_not_defined): Likewise.
7913         * cpphash.c (collect_expansion): Likewise.
7914         (special_symbol, _cpp_macroexpand): Check return from
7915         cpp_file_buffer.
7916         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7917         macros.  Delete all uses.
7918
7919         * gcc.dg/cpp-mi.c: Add two more test cases.
7920         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7921
7922 2000-04-17  Richard Henderson  <rth@cygnus.com>
7923
7924         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7925         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7926
7927 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7928
7929         * function.c (expand_function_start): Use hard_function_value to
7930         compute the RTL to use for DECL_RESULT.
7931
7932 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7933
7934         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7935         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7936          x86_memory_mismatch_stall): New global variables.
7937         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7938         alloved; fix load penalties for Athlon.
7939         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7940         x86_memory_mismatch_stall): Declare.
7941         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7942          TARGET_MEMORY_MISMATCH_STALL): New.
7943         * i386.md (athlon scheduling parameters): Fix latencies according to
7944         Athlon Optimization Manual.
7945         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7946         vector.
7947         (fsqrt instruction patterns): Set athlon_decode to direct.
7948         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7949         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7950         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7951         and TARGET_PARTIAL_REGISTER_STALL machines.
7952         (pushdf_nointeger): New pattern.
7953         (pushdf_integer): Rename from pushdf.
7954         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7955         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7956
7957 2000-04-17  Richard Henderson  <rth@cygnus.com>
7958
7959         * loop.c (canonicalize_condition): Add WANT_REG argument.
7960         Stop the search if we match it.
7961         * expr.h (canonicalize_condition): Update decl.
7962         * predict.c (expected_value_to_br_prob): Use it.  Track last
7963         expected value note.
7964         (find_expected_value): Remove.
7965
7966         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7967
7968 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7969
7970         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7971         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7972         a plain file.
7973         * configure.in: Call AC_FUNC_MMAP_FILE.
7974         * configure: Regenerate.
7975         * config.in: Regenerate.
7976
7977         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7978         * fixinc/fixincl.c: Likewise.
7979
7980 2000-04-17  Richard Henderson  <rth@cygnus.com>
7981
7982         * builtins.c (expand_builtin_expect): New.
7983         (expand_builtin): Call it.
7984         * builtins.def (BUILT_IN_EXPECT): New.
7985         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7986         * extend.texi: Document it.
7987
7988         * predict.c (expected_value_to_br_prob): New.
7989         (find_expected_value): New.
7990         * basic-block.h (expected_value_to_br_prob): Declare.
7991         * toplev.c (rest_of_compilation): Invoke it.
7992
7993         * rtl.h (NOTE_EXPECTED_VALUE): New.
7994         (NOTE_INSN_EXPECTED_VALUE): New.
7995         * rtl.c (note_insn_name): Update.
7996         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7997         cases; handle NOTE_INSN_EXPECTED_VALUE.
7998
7999 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
8000
8001         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
8002         leaf sibcall delay slot if flag_pic.
8003         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
8004
8005 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8006
8007         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
8008
8009         * fixproto: If fix-header fails, exit with an error.
8010
8011 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8012
8013         * cse.c (struct check_depdendence_data): New.
8014         (check_dependence): New function.
8015         (invalidate): Use check_depdenence.
8016
8017 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8018
8019         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
8020         UNITS_PER_WORD is unsigned.
8021
8022         * tree.h (struct tree_common): Remove misleading comment.
8023
8024 2000-04-16  Dave Pitts  <dpitts@cozx.com>
8025
8026         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
8027         message in quotes. Otherwise, IBM's make program treats the '#' as the
8028         start of a comment and ignores the remainder of the line.
8029
8030         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
8031         upper case.
8032         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
8033         * cexp.y (initialize_random_junk): Likewise.
8034         * cppfiles.c (find_include_file): Cast alloca return value.
8035         * cppinit.c (initialize_standard_includes): Likewise.
8036         * cpplib.c (cpp_define, cpp_undef): Likewise.
8037         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
8038         * final.c (output_asm_insn): Allow for holes in EBCDIC.
8039         * fold-const.c (CHARMASK): New.
8040         (real_hex_to_f): Use it.
8041         * real.c (CHARMASK): New.
8042         (etoasc, asctoeg): Use it.
8043         (asctoeg): EBCDIC lower case characters preceed upper case.
8044
8045         * i370.c (mvs_add_label): Change spacing for coding conventions.
8046         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
8047         outputing case vectors.
8048         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
8049         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
8050         since vector in in the data CSECT.
8051         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
8052         * i370.md (Many patterns): Put the length in the XL directives.
8053         (movdi): Put back STM and MVC in definition.
8054         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
8055         pattern using the TCA.
8056         * oe.h (CPP_SPEC): Added to allow trigraphs.
8057         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
8058         not support the "long long" type.
8059
8060 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8061
8062         * config/mips/mips-protos.h (mips_legitimate_address_p): New
8063         function.
8064         (mips_reg_mode_ok_for_base_p): Likewise.
8065         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
8066         (REG_OK_FOR_INDEX_P): Define unconditionally.
8067         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
8068         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
8069         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
8070         that GET_MODE_SIZE is unsigned.
8071         (mips_reg_mode_ok_for_base_p): Define.
8072         (mips_legitimate_address_p): Likewise.  Adjust now
8073         that GET_MODE_SIZE is unsigned.
8074         (block_move_loop): Make the number of bytes unsigned.
8075         (expand_block_move): Likewise.
8076         (function_arg): Make the loop counter unsigned to match the
8077         boundary condition.
8078
8079 2000-04-16  Richard Henderson  <rth@cygnus.com>
8080
8081         * rtl.h (enum insn_note): New enumeration.  Subsume
8082         NOTE_INSN_DELETED and friends.
8083         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
8084         * rtl.c (note_insn_name): Tweak string order.
8085
8086 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
8087
8088         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
8089         to offset * 2.
8090
8091         * cpplex.c (output_line_command): Remove debugging prints.
8092         (cpp_output_tokens): Don't write out a zero-length buffer or
8093         try to see if it has a newline in it.
8094         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
8095         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
8096         the end of the loop.  Use memmove.  Don't read past the end of
8097         the buffer.  Remove trailing newlines from error messages.
8098
8099 2004-04-16  Neil Booth  <NeilB@earthling.net>
8100
8101         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
8102         * cpplib.c: Add new syntax flags to directive table, and
8103         supporting macros.
8104
8105 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
8106
8107         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
8108         using ret $N.
8109
8110 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
8111
8112         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
8113         * haifa-sched.c: Update -fsched-verbose comments to use "=".
8114
8115 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8116
8117         * Makefile.in (ggc-page.o): Now includes toplev.h.
8118         * ggc-page.c (toplev.h): Now included.
8119         (gc_time): Remove declaration.
8120         (ggc_collect): TIME now long.
8121         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
8122         others static.
8123         * toplev.h (gc_time, parse_time, gc_time): New declarations.
8124
8125         * toplev.c: Make *_time variable long to reduce chance of overflow.
8126         (TIMEVAR): Likewise for `otime'.
8127         (print_time): Arg is now long; compute percentage in FP and round.
8128         * toplev.h (print_time): Arg is long.
8129
8130         * tree.c: Minor whitespace changes.
8131
8132         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
8133         * configure: Rebuilt.
8134         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
8135         (__fixunsxfDI): Renamed from __fixunsxfdi.
8136         (__fixunsdfDI): Renamed from __fixunsdfdi.
8137         (__fixunssfDI): Renamed from __fixunssfdi.
8138         (__floatdisf): Use proper type in REP_BIT macro.
8139         (__fixunsxfSI): Renamed from __fixunsxfsi.
8140         (__fixunsdfSI): Renamed from __fixunsdfsi.
8141         (__fixunssfSI): Renamed from __fixunssfsi.
8142         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
8143         Change location of macros and upper-case some names as above.
8144         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
8145         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
8146
8147         * varasm.c (assemble_variable): Add cast to remove warning.
8148         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
8149
8150         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
8151         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
8152         region number to -1.
8153
8154 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
8155
8156         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
8157         call unshare_all_rtl.
8158
8159         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
8160
8161 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
8162
8163         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
8164         Use .s1 not .s0 for all FP instructions.
8165
8166 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
8167
8168         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
8169         interfaces.
8170         (safe_fwrite, output_line_command): New static functions.
8171         (cpp_expand_to_buffer): Now private to cpplib.
8172         (cpp_scan_buffer): Take a printer.
8173
8174         * cpphash.h: Update prototypes.
8175         * cpplib.h: Update prototypes.
8176         (cpp_printer): New.
8177         (cpp_buffer): Remove last_nominal_fname.
8178         (cpp_reader): Remove lineno.
8179
8180         * cppmain.c: Use a cpp_printer.
8181         * fix-header.c: No need to inhibit line commands.  Call
8182         cpp_start_read with no printer.
8183
8184         * cpperror.c (cpp_notice_from_errno): Provide default name.
8185         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
8186         (find_include_file, cpp_read_file): Use make_IHASH.
8187         (file_cleanup): Set control_macro and clear
8188         input_stack_listing_current here.
8189         (_cpp_execute_include): Don't output entering-file marker.
8190         * cpphash.c (special_symbol): Look for the line number in the
8191         buffer, not the reader.
8192         (_cpp_macroexpand): No need to disable line commands.
8193         (_cpp_dump_definition): No need to generate line commands.
8194         (dump_hash_helper): Remove excess newline from output.
8195         * cppinit.c (dump_special_to_buffer): No need to generate line
8196         commands.
8197         (cpp_printer_init): New.
8198         (cpp_start_read): Take a printer, and start it up if it's not
8199         NULL.  No need to generate line commands.
8200         (cpp_finish): Expect no buffers stacked at all.  Take a
8201         printer argument, and flush the output buffer if it's not
8202         NULL.
8203         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
8204         Don't put two hashes at the beginning of an assertion.
8205         (cpp_get_token): Don't increment pfile->lineno or emit line
8206         commands here.  Return EOF if there's no buffer when we get
8207         EOF.
8208         * cpplib.c (do_define, skip_if_group):
8209         No need to disable line commands.
8210         (_cpp_output_line_command): Delete function.
8211         (do_line): Don't emit line commands here, but set things up so
8212         they will be emitted if necessary.  Use _cpp_fake_ihash to
8213         make unique nominal_fnames if necessary.
8214         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
8215         with 0 for column, not -1.
8216         (_cpp_handle_eof): Don't set the control macro here.  Don't
8217         clear input_stack_listing_current here.  Don't emit line
8218         commands.
8219
8220 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
8221
8222         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
8223         always, use the default SVR4 start address.
8224
8225         * config/rs6000/linux.h (LINK_SPEC): Don't define.
8226         (LINK_SHLIB_SPEC): Define.
8227         (LINK_START_DEFAULT_SPEC): Define.
8228         (LINK_OS_DEFAULT_SPEC): Define.
8229
8230         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
8231
8232         * config/rs6000/eabi.asm (__eabi): Call __init rather than
8233         __do_global_ctors to handle constructors.
8234         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
8235         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
8236         (STARTFILE_MVME_SPEC): Likewise.
8237         (STARTFILE_SIM_SPEC): Likewise.
8238         (ENDFILE_ADS_SPEC): Use crtend.
8239         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
8240         (ENDFILE_MVME_SPEC): Likewise.
8241         (ENDFILE_SIM_SPEC): Likewise.
8242         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
8243         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
8244         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
8245         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
8246         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
8247         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
8248         (CRTSTUFF_T_CFLAGS_S): Define.
8249         * config/rs6000/eabi-ctors.c: Delete.
8250
8251         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
8252         boundary.
8253         (__fini): Likewise.
8254         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
8255         boundary.
8256         (__fini): Likewise.
8257
8258 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
8259
8260         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
8261         plus mask size is smaller or equal to the mode size.
8262
8263 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8264
8265         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
8266         not yet set.
8267
8268         * expr.c (reload.h): Now included.
8269         (emit_block_move): Set volatile_ok when checking for movstr.
8270         (emit_move_1): Check for replacements in addresses in multi-word case.
8271         * Makefile.in (expr.o): Now includes reload.h.
8272
8273         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
8274         Never have a LIBCALL end a basic block.
8275         (find_basic_blocks_1): Likewise.
8276         Reorganize CALL_INSN cases.
8277
8278         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
8279
8280 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
8281
8282         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
8283         completers from mov.ret instruction.
8284
8285 2000-04-14  Richard Henderson  <rth@cygnus.com>
8286
8287         * fold-const.c (extract_muldiv): Don't distribute and widen
8288         multiply across plus for non-sizetype unsigned types.
8289
8290 2000-04-14  Richard Henderson  <rth@cygnus.com>
8291
8292         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
8293         If the original source is dead in the incr insn, it's dead now.
8294
8295 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8296
8297         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
8298         see if DECL_BIT_FIELD needs to still be set.
8299
8300         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
8301
8302         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
8303         print_int_cst_octal with something that's not an INTEGER_CST.
8304
8305         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
8306         and not a SUBREG to a FLOAT rtl.
8307
8308 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
8309
8310         * emit-rtl.c (try_split): Avoid infinite loop if the split
8311         results in a sequence that contains the original insn.
8312
8313 2000-04-13  Andreas Jaeger  <aj@suse.de>
8314
8315         * config/mips/mips.c (expand_block_move): Pass alignment
8316         argument to move_by_pieces in bits, not bytes.
8317
8318         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
8319         __pic__ for little endian.
8320
8321 2000-04-13  Andreas Jaeger  <aj@suse.de>
8322
8323         * config/i386/i386-protos.h: Add prototype for
8324         uno_comparison_operator.
8325
8326 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8327
8328         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
8329         * calls.c (ECF_PURE): New flag.
8330         (emit_call_1): Handle ECF_PURE calls.
8331         (initialize_argument_information): Unset ECF_PURE flag too.
8332         (precompute_arguments): Precompute for ECF_PURE too.
8333         (expand_call): Handle ECF_PURE calls too.
8334         (emit_library_call_value_1): Rename no_queue argument to fn_type,
8335         accept value of 2 as pure function.
8336         (emit_library_call_value, emit_library_call): Rename no_queue argument
8337         to fn_type.
8338         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
8339
8340         * tree.h (DECL_IS_PURE): New macro.
8341         (struct tree_decl): Add pure_flag.
8342         * c-common.c (enum attrs): Add attribute "pure".
8343         (init_attributes): Initialize attribute "pure"
8344         (decl_attributes): Handle attribute "pure".
8345         * extend.texi (Attribute "pure"): Document.
8346         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
8347         in pure function.
8348         (flags_from_decl_or_type): Support attribute "pure".
8349
8350 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
8351
8352         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
8353         the token except for numbers and identifiers.
8354
8355 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
8356
8357         * i386.c (ix86_expand_binary_operator,
8358         ix86_expand_unary_operator): Check no_new_pseudos
8359         instead of reload_in_progress and reload_completed.
8360         (ix86_split_ashldi, ix86_split_ashrdi,
8361         ix86_split_lshrdi): Check no_new_pseudos instead
8362         of reload_completed.
8363
8364 2000-04-12  Jeffrey A Law  (law@cygnus.com)
8365
8366         * function.c (purge_addressof): Unshare any shared rtl created by
8367         purge_addressof and its children.
8368
8369 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
8370
8371         * function.c (aggregate_value_p): VOID_TYPE nodes are never
8372         aggregates.
8373
8374 2000-04-05  Andreas Jaeger  <aj@suse.de>
8375
8376         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
8377         not compiling PIC code, add flags for mabi=64.
8378         (SUBTARGET_CPP_SIZE_SPEC): New.
8379         (SUBTARGET_CPP_SPEC): New.
8380         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
8381         for MIPS/Linux and lots of code needs these defines.
8382
8383 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
8384
8385         * reorg.c (fill_slots_from_thread): Check side_effects_p when
8386         trying the "opposite arithmetic" approach.
8387
8388 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8389
8390         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
8391         (struct sh_args): Add new field force_mem.
8392         (INIT_CUMULATIVE_ARGS): Initialize it.
8393         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
8394
8395 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8396
8397         * calls.c (expand_call): Do not reverse args in "equal from" field.
8398         (emit_library_call_value_1): Emit_libcall_block for const and pure
8399         function.
8400
8401 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8402
8403         * reload1.c (reload_combine): Don't enable optimization for fixed
8404         registers when encountering a BARRIER.
8405
8406 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8407
8408         * builtins.c (expand_builtin_memcmp): Do expansion even with
8409         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8410
8411         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8412         stack is propertly aligned; add sanity checking for aligned
8413         stack pointer.
8414         (expand_library_call_value_1): Add sanity checking for aligned
8415         stack pointer.
8416
8417 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8418
8419         * calls.c (emit_library_call_value_1): Change 3rd arg to
8420         locate_and_pad_parm to disregard the setting of partial.
8421
8422 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8423
8424         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8425
8426         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8427         CALL_INSN from the normal case.
8428
8429 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8430
8431         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8432         New global variables.
8433         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8434         adjustment.
8435         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8436         Declare,
8437         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8438          TARGET_ADD_ESP_8): New macros.
8439         * i386.md: Add peep2s to convert esp adjustments to push and pop
8440         instructions.
8441         (pushsi_prologue, popsi_epilogue): New patterns.
8442
8443 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8444
8445         * real.c (toe64): Remove stale #endif from the last change.
8446
8447 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8448
8449         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8450         * real.c (toe64): Revert previous change.
8451
8452 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8453
8454         * objc/objc-act.c: Include ggc.h.
8455         (objc_tree_index, objc_global_trees): Convert most of the
8456         static tree variables into a static array with previous names
8457         as defines.
8458         (objc_ellipsis_node): New variable.
8459         (lang_init): Call objc_act_parse_init and c_parse_init.
8460         Create objc_ellipsis_node.
8461         (build_selector_translation_table): Use objc_ellipsis_node instead
8462         of (tree)1.
8463         (hack_method_prototype): Likewise.
8464         (get_arg_type_list): Likewise.
8465         (start_method_def): Likewise.
8466         (continue_method_def): Likewise.
8467         (gen_method_decl): Likewise.
8468         (ggc_mark_imp_list): New function.
8469         (ggc_mark_hash_table): New function.
8470         (objc_act_parse_init): New function.
8471         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8472         * c-parse.in (c_parse_init): For objc add roots of objc specific
8473         local tree variables.
8474         * objc/objc-parse.y: Rebuilt.
8475         * objc/objc-parse.c: Rebuilt.
8476         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8477
8478 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8479
8480         * cse.c (delete_trivially_dead_insns): Also delete insns
8481         that copy a register to itself where the destination is
8482         a strict_low_part.
8483
8484 2000-04-11  Richard Henderson  <rth@cygnus.com>
8485
8486         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8487         (propagate_block): Initialize them.  Use them in parallel instead
8488         of one tmp variable, ie revert much of the 0408 and 0407 functional
8489         changes, but keep the structural changes.
8490         (mark_set_regs): Take new_dead from propagate_block_info instead.
8491         (mark_set_1, mark_set_reg): Likewise.
8492         (mark_used_regs): Likewise with new_live.
8493         (mark_used_reg): Likewise.  Revert 0408 change.
8494
8495 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8496
8497         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8498         restriction.
8499         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8500
8501 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8502
8503         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8504         const section to output a CONSTRUCTOR based on the same conditions
8505         used for VAR_DECLs.
8506
8507 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8508
8509         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8510         * pa/pa-protos.h (output_call): Add additional argument indicating
8511         if the call is a sibling/tail call.
8512         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8513         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8514         (function_arg, function_arg_partial_nregs): Likewise
8515         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8516         (emit_move_sequence): Zero extend certain constants as needed
8517         for TARGET_64BIT.
8518         (compute_zdepdi_operands, output_64bit_and): New functions.
8519         (output_64bit_ior, function_arg): Likewise.
8520         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8521         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8522         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8523         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8524         (output_bvb): Likewise.
8525         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8526         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8527         as needed.
8528         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8529         (ouput_arg_descriptor): Do not emit argument descriptors for
8530         TARGET_64BIT.
8531         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8532         defined.
8533         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8534         (FUNCTION_OK_FOR_SIBALL): Define.
8535         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8536         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8537         (CPP_SPEC): Use new spec infrastructure.
8538         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8539         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8540         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8541         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8542         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8543         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8544         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8545         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8546         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8547         (FUNCTION_ARG); Call out to C code.
8548         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8549         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8550         (MIN_UNITS_PER_WORD): Likewise.
8551         * pa/pa.md (cmpdi): New expander.
8552         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8553         (64bit conditional arithmetic): New patterns.
8554         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8555         (movsicc): Not available if modes on all the operands to not match.
8556         (movdicc): New expander and associated patterns.
8557         (64bit branches): New patterns.
8558         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8559         (pre_ldd, post_std): New patterns.
8560         (64bit addil, load low part): New patterns.
8561         (special movsf constant): Not available for TARGET_64BIT.
8562         (movsf, movdf expanders): Force constants into memory.
8563         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8564         (64bit movdf/movdi patterns): New patterns.
8565         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8566         for TARGET_64BIT.
8567         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8568         (adddi3 expander): Allow "arith_operand" for second input.
8569         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8570         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8571         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8572         (muldi3): New expander for TARGET_64BIT.
8573         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8574         for TARGET_64BIT.
8575         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8576         patterns for TARGET_64BIT.
8577         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8578         patterns for TARGET_64BIT.
8579         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8580         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8581         (sibcall_epilogue): New expander.
8582         (casesi): Tweak for TARGET_64BIT.
8583         (call expanders): Set & use the outgoing argument pointer.  Use the
8584         64bit call patterns as needed. Add additional arg to output_call.
8585         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8586         (sibcall, sibcall_internal_symref): New expanders.
8587         (sibcall_value, sibcall_value_internal_symref
8588         (interspace_jump): Turn into an expander + matching patterns.
8589         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8590         * pa/pa64-regs.h: Eliminate trigraph sequences.
8591         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8592
8593 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8594
8595         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8596         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8597         cpp_token with cpp_ttype everywhere.
8598         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8599         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8600         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8601         long.
8602         * cpplex.c (cpp_buf_line_and_col): Delete.
8603         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8604         'long lineno' to 'unsigned int lineno'.
8605         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8606
8607 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8608
8609         * extend.texi: ISO C99 is not a draft anymore.
8610         * invoke.texi: ISO C++ is not a draft anymore.
8611         * cpp.texi: __cplusplus is required by the ISO standard.
8612
8613         * extend.texi (-fthis-is-variable): Undocument.
8614         * flags.h (warn_template_debugging): Remove declaration.
8615         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8616         -Wenum-clash, -Wtemplate-debugging): Undocument.
8617
8618 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8619
8620         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8621         integer.
8622         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8623         integer.
8624         (ARM_SIGN_EXTEND): Use HOST_UINT.
8625         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8626         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8627         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8628         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8629
8630         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8631         (arm_gen_constant): Use HOST_UINT.
8632         (arm_canonicalize_constant): Use HOST_UINT.
8633         (arm_reload_in_hi): Use HOST_UINT.
8634         (arm_reload_out_hi): Use HOST_UINT.
8635         (output_multi_immediate): Use HOST_UINT.
8636         (int_log2): Use HOST_UINT.
8637         (arm_poke_function_name): Use HOST_UINT.
8638         (arm_output_epilogue): Use arm_volatile_func().
8639         (output_thumb_prologue): Use arm_strip_name_encoding().
8640
8641 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8642
8643         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8644         of sequence point problems.
8645
8646 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8647
8648         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8649         Recomment.
8650         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8651
8652 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8653
8654         * sbitmap.h: Whitespace changes and use upper-case macro args.
8655         (struct simple_bitmap_def): All sizes now unsigned.
8656         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8657         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8658         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8659         (sbitmap_zero): Cast bzero arg to PTR.
8660         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8661         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8662         loop to make structure clearer.
8663         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8664         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8665         (sbitmap_a_and_b_or_c): Likewise.
8666         (sbitmap_intersection_of_succs): Minor cleanups.
8667         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8668         (sbitmap_union_of_preds): Likewise.
8669         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8670         (debug_sbitmap): New function.
8671
8672         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8673         * c-typeck.c (convert_for_assignment): Likewise.
8674
8675         * expmed.c (init_expmed): Don't free objects we make.
8676         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8677
8678         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8679         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8680
8681         * gcse.c (expr_hash_table_size): Now unsigned.
8682         (compute_ae_gen): Local variable `i' now unsigned.
8683         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8684         (compute_transout, hoist_code): Likewise.
8685         (compute_local_properties): Likewise, also hash_table_size.
8686         (alloc_expr_hash_table): N_INSNS now unsigned.
8687         (delete_null_pointer_checks): Mark arg F as unused.
8688
8689         * regrename.c: Minor cleanups, including chang some variables
8690         to unsigned int.
8691
8692 2000-04-10  Neil Booth  <NeilB@earthling.net>
8693
8694         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8695         than GETC ().
8696         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8697
8698 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8699
8700         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8701         __classof__, and __headof__ from the list of gnu keywords.
8702         (-ansi): Remove -foperator-names from list of implied options.
8703         Do not call it ANSI C++.
8704         (-foperator-names): Document as -fno-operator-names.
8705
8706 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8707
8708         * cpphash.c (timestamp): Delete.
8709         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8710         (special_symbol): Remove unnecessary braces.  Remove
8711         T_VERSION.  Treat T_STDC like T_CONST unless
8712         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8713         when one is encountered, then convert them into T_MCONST
8714         nodes.
8715         * cppinit.c (builtin_array): version_string is T_MCONST.
8716         __STDC__ has a "1" in its cpval.  Don't have a terminator
8717         entry.  Clean up which entries are dumped.
8718         (initialize_builtins): Only __STDC__ gets the special
8719         -traditional treatment.  Count the length of builtin_array.
8720         Render version_string here.
8721         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8722         * cpplib.h (struct cpp_reader): Remove timebuf.
8723
8724 2000-04-09  Richard Henderson  <rth@cygnus.com>
8725
8726         * genrecog.c (pred): Update comparison_operator for the unordered
8727         operators.
8728
8729         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8730         operators.
8731         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8732         (uno_comparison_operator): New.
8733         (put_condition_code): Handle UNORDERED/ORDERED.
8734         (unsigned_comparison): Likewise.
8735         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8736         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8737         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8738         update all callers.  Handle all 8 unordered operators.
8739         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8740         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8741         * config/i386/i386.h (PREDICATE_CODES): Update.
8742         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8743         (ix86_expand_branch, ix86_expand_setcc): Update.
8744         * config/i386/i386.md (sunordered, sordered): New.
8745         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8746         (bunordered, bordered): New.
8747         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8748         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8749         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8750
8751 2000-04-09  Philip Blundell  <philb@gnu.org>
8752
8753         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8754
8755 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8756
8757         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8758         fix_truncxfhi2): New patterns.
8759         * i386.c (output_fix_trunc): Handle converting to HImode.
8760
8761 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8762
8763         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8764         life_analysis.
8765         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8766         (for_each_successor_phi): Change parameter to basic_block.
8767         (coalesce_regs_in_successor_phi_nodes): Likewise.
8768         (coalesce_regs_in_copies): Likewise.
8769         (compute_coalesced_reg_partition): Use basic_block instead of index.
8770         * rtl.h (convert_to_ssa): Delete.
8771         (convert_from_ssa): Likewise.
8772         (successor_phi_fn): Likewise.
8773         (for_each_successor_phi): Likewise.
8774         (in_ssa_form): Likewise.
8775         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8776         (convert_from_ssa): Likewise.
8777         (successor_phi_fn): Likewise.
8778         (in_ssa_form): Likewise.
8779         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8780         * flow.c (calculate_global_regs_live): Pass a basic_block to
8781         for_each_successor_phi.
8782
8783 2000-04-08  Richard Henderson  <rth@cygnus.com>
8784
8785         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8786         was modified in the current insn.
8787
8788 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8789
8790         * arm/thumb.md: Delete.
8791         * arm/thumb-protos.h: Delete.
8792
8793 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8794
8795         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8796
8797         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8798
8799         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8800         into branch.
8801
8802         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8803         define_expand.
8804         (*arm_nop, *thumb_nop): Delete.
8805
8806         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8807         constants.  Use casts instead.
8808         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8809         output_multi_immediate, arm_poke_function_name): Likewise.
8810         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8811         MASK_RETURN_ADDDR): Likewise.
8812
8813         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8814
8815         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8816         into branch.
8817
8818         * arm.md (eh_epilogue): New function.
8819         * arm.h (struct machine_function): Move to here ...
8820         * arm.c: ... from here.
8821         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8822         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8823         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8824
8825         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8826
8827         * config/arm/semi.h (ASM_SPEC): Restore definition.
8828         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8829
8830         * config/arm/elf.h (ASM_SPEC): Restore definition.
8831         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8832
8833         * config/arm/arm.h (ASM_SPEC): Remove definition.
8834         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8835
8836         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8837
8838         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8839
8840         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8841
8842         Various formating tidyups, elimination of compile time
8843         warnings and synchronisation with internal sources:
8844
8845         * config/arm/arm-protos.h (assemble_align): Add prototype.
8846         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8847         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8848         (arm_return_addr_rtx): Rename to arm_return_addr.
8849
8850         * config/arm/arm.c: Include except.h.
8851         Define shorter typenames for strict minipool_node and struct
8852         minipool_fix.
8853         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8854         in memory.
8855         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8856         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8857
8858         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8859         already defined.
8860         (ASM_SPEC): Define if not already defined.
8861         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8862
8863         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8864         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8865         arm_gen_compare_reg.
8866         (indirect_jump):  Only accept register operands.
8867         (load_indirect_jump): Keep this pattern since combine can generate
8868         it.
8869
8870         * config/arm/coff.h: Include aout.h.
8871         (MULTILIB_DEFAULTS): Only define if not already defined.
8872
8873         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8874         into arm.h (so that COFF ports can support thumb based aliases).
8875         (ASM_SPEC): Move definition into arm.h
8876
8877         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8878         redundant apcs spec.
8879         (ASM_SPEC): Move definition to arm.h
8880
8881         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8882
8883         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8884         for entries in the .bss section
8885
8886         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8887
8888         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8889         to thumb_far_jump_used_p.
8890
8891         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8892         single integer parameter.
8893
8894         * config/arm/arm.c (struct machine_function): Add two new
8895         fields, 'far_jump_used' and 'arg_pointer_live'.
8896         (thumb_far_jump_used_p): Once the decision has been made that
8897         far jumps might be used, always return true.
8898         If being called from the initial elimination offset macro then
8899         do not bother to perform the test if the arg pointer is not
8900         being used.
8901         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8902         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8903
8904         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8905
8906         * arm.c (output_return_instruction): Handle more cases where we can
8907         return from a function with an ldr instruction.
8908         (arm_output_epilogue): Likewise.
8909
8910         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8911         if we need to push a large stack frame and there are no callee-saved
8912         registers.
8913
8914         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8915         in ARM code if the frame pointer has been eliminated.
8916
8917         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8918         unspec_volatile arguments to avoid duplicates.
8919         (consttable_1, consttable_2): Fixes for big-endian mode.
8920
8921         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8922         as appropriate.
8923
8924         Re-write constant pool code.
8925         * arm.c (minipool_node, minipool_fix): New types.
8926         (minifix): Delete type.
8927         (arm_add_minipool_constant): Delete.
8928         (arm_compute_minipool_offsets, arm_find_barrier,
8929         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8930         (get_jump_table_size): Now returns HOST_WIDE_INT.
8931         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8932         functions.
8933         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8934         (assign_minipool_offsets, arm_print_value): Likewise.
8935         (dump_minipool): Rewrite.
8936         (arm_barrier_cost): New function.
8937         (create_fix_barrier): New function.
8938         (push_minipool_barrier): New function.
8939         (push_minipool_fix): Record additional information about the fixup
8940         required.
8941         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8942         check the mode of what needs fixing.
8943         (arm_reorg): Rewrite.
8944
8945         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8946
8947         * config/arm/arm.md (indirect_jump): Force constant addresses into
8948         a register.
8949
8950         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8951
8952         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8953
8954         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8955
8956         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8957         adjust is word aligned.
8958         (thumb_expand_epilogue): Make sure that stack adjust is word
8959         aligned.
8960
8961         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8962
8963         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8964
8965         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8966         pointer relative addresses.
8967
8968         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8969
8970         * arm.c (find_barrier): Find the last barrier within the allowed
8971         range.
8972
8973         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8974
8975         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8976
8977         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8978
8979         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8980         ARM_FUNCTION_PROFILER.
8981
8982         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8983         ARM_FUNCTION_PROFILER.
8984
8985         * config/arm/linux-oldld.h: Imported from mainline sources.
8986
8987         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8988
8989         * config/arm/lib1funcs.asm: Merge in thumb functions from
8990         lib1thumb.asm.
8991
8992         * config/arm/lib1thumb.asm: Delete.
8993
8994         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8995
8996         * config/arm/arm.c: Sychronised with current Red hat local
8997         sources.
8998         * config/arm/arm.h: Ditto.
8999         * config/arm/arm-protos.h: Ditto.
9000
9001         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
9002
9003         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
9004
9005         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
9006         byte stores.
9007
9008         2000-02-02  Nick Clifton  <nickc@cygnus.com>
9009
9010         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
9011
9012         * config/arm/arm.md (epilogue): Fix rtl checking abort because
9013         (return) was emited using an emit_insn() call.
9014
9015         2000-01-31  Nick Clifton  <nickc@cygnus.com>
9016
9017         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
9018         thumb stack frame.
9019         (thumb_exit): Move frame pointer back into hard frame pointer
9020         register if backtracing is being used.
9021
9022         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
9023
9024         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
9025         into branch.
9026
9027         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
9028
9029         * config/arm/arm.md (neg_pool_offset): Provide default for new
9030         attribute.
9031         (arm_movsi_insn): Add neg_pool_offset attribute.
9032         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
9033         rtx for the insn that starts the scan and an unsigned long for its
9034         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
9035         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
9036         instructions in *PINSERTED.
9037         (struct minipool_fixup): Add MIN_ADDRESS elt.
9038         (sort_fixups): Compute it.
9039         (arm_reorg): Changes to support inserting pools before the insn to be
9040         fixed up.
9041
9042         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
9043
9044         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
9045         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
9046         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
9047
9048         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
9049
9050         * config/arm/semi.h (TARGET_VERSION): Do not define if already
9051         defined.
9052         (TARGET_DEFAULT): Do not define if already defined.
9053
9054         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
9055
9056         * config/arm/arm.md (anddi3): Allow disjoint source operands.
9057         (iordi3): Allow disjoint source operands.
9058         (xordi3): Allow disjoint source operands.
9059         (negdi2): Permit construction for ARM and Thumb.
9060         (arm_negdi2): Renamed version of old negdi2 pattern.
9061         (thumb_negdi2): New pattern: Only permit non-overlapping
9062         source and destination.
9063
9064         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
9065
9066         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
9067         scratch low register so that it will not be deleted.
9068
9069         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
9070
9071         * config/arm/pe.h (ARM_PE): Define.
9072
9073         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
9074         interfacearm attribute if this is a PE toolchain.
9075         (output_return_instruction): Do not emit anything if the function
9076         has the naked attribute set.
9077         (is_called_in_ARM_mode): If the function has the interfacearm
9078         attribute then return true.
9079         (thumb_expand_prologue): Do not generate a prologue for naked
9080         functions.
9081         (thumb_expand_epilogue): Do not generate an epilogie for a naked
9082         function.
9083         (output_thumb_prologue): Do not bother if the function is naked.
9084         Strip PE encoding from function name before emitting.
9085
9086         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
9087
9088         * arm.md (pic_load_addr): Fix constraints.
9089
9090         * arm.md (casesi_insn): Fix mis-applied patch.
9091
9092         * arm.md ("core" function unit): Add rules for single- and
9093         multi-cycle insns.
9094         (All TARGET_THUMB patterns): Add "type" attribute information
9095         where needed.
9096         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
9097         the following insn is a CALL.
9098
9099         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
9100         pointer.
9101         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
9102         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
9103         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
9104
9105         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
9106
9107         * config/arm/linux-gas.h: oops - this file was missed out when the
9108         branch was created...
9109
9110         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
9111
9112         * thumb.c: Deleted.  Move contents to ...
9113         * arm.c: ... here.
9114         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
9115         rule for thumb.o
9116         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
9117         * configure: Regen.
9118
9119         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
9120         declare a prototype for asm_output_align();
9121
9122         * arm.c (thumb_condition_code): Delete.
9123         (arm_print_operand): Always use arm_condition_code array.
9124
9125         * arm.c (thumb_return_addr_rtx): Delete.
9126         (arm_save_machine_status, arm_restore_machine_status): Delete.
9127         (arm_init_machine_status, arm_mark_machine_status): New functions.
9128         (arm_init_expanders): Update accordingly.
9129         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
9130         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
9131         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
9132
9133         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
9134
9135         * configure.in : Fix arm-*-aout target to use new t-arm-aout
9136         script.
9137         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
9138         targets.
9139
9140         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
9141
9142         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
9143         stack backtrace structure.
9144
9145         * config/arm/arm-protos.h: Add prototypes for functions defined in
9146         arm/pe.h.
9147
9148         * config/arm/arm.c (arm_override_options): Fix selection of
9149         attributes of default processor.
9150
9151         * config/arm/coff.h: Delete needless #include.
9152
9153         * config/arm/pe.c: Delete unused code.
9154
9155         * config/arm/pe.h (CPP_DEFINES): Delete
9156         (SUBTARGET_CPP_SPEC): Define.
9157         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
9158
9159         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
9160
9161         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
9162
9163         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
9164         updated.
9165         (CAN_DEBUG_WITHOUT_FP): Define.
9166         (FIXED_REGISTERS): Make r11 call-saved.
9167         (CALL_USED_REGISTERS): Likewise.
9168         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
9169         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
9170         frame-pointer is required.
9171         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
9172         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
9173         if the target normally needs a stack frame in non-leaf functions.
9174         (use_return_insn): Correct logic for determining when a return
9175         instruction can be used.
9176         (output_return_instruction): Handle the frame-pointer register as
9177         a normal register when not TARGET_APCS_FRAME.
9178         (arm_output_prologue): Likewise.
9179         (arm_output_epilogue): Likewise.
9180         (output_func_epilogue): Likewise.
9181         (arm_expand_prologue): Likewise.
9182         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
9183
9184         * arm.c (use_return_insn): No need to check floating point regs if
9185         TARGET_SOFT_FLOAT.
9186         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
9187         the code of value stored in the minipool array.
9188         (arm_add_minipool_constant): Likewise.
9189
9190 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9191
9192         * basic-block.h (conflict_graph_enum_fn): K&R fix.
9193
9194 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9195
9196         * tree.c (tree_expr_nonnegative_p): New function.
9197
9198         * tree.h (tree_expr_nonnegative_p): Declare.
9199
9200         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
9201         elide some sign_compare warnings.
9202         (build_conditional_expr): Likewise.
9203
9204 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
9205
9206         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
9207
9208         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
9209         * i386.c (print_operand): Use the proper suffix for a 387 HImode
9210         operand.  Abort if a 387 operand has an unsupported size.
9211
9212 2000-04-08  Neil Booth  <NeilB@earthling.net>
9213
9214         * cppexp.c (parse_charconst): Null does not end character
9215         constants.
9216         * cppinit.c (ISTABLE): Null character handled as whitespace.
9217         * cpplex.c (null_warning):  new function.
9218         (skip_string): Emit warning if nulls encountered.
9219         (_cpp_skip_hspace): Emit warning if nulls encountered.
9220         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
9221         them.
9222         * cpp.texi: Update.
9223
9224 2000-04-07  Richard Henderson  <rth@cygnus.com>
9225
9226         * flow.c (loop_depth): Remove.
9227         (reg_next_use, cc0_live, mem_set_list): Replace with ...
9228         (struct propagate_block_info): New.
9229         (life_analysis): Don't allocate reg_next_use.
9230         (propagate_block_delete_insn): Break out of propagate_block.
9231         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
9232         (propagate_block_delete_libcall): Likewise.
9233         (propagate_block): Create a propagate_block_info struct to pass
9234         to subroutines.  Allocate one not two temporary regsets.  Don't
9235         clobber memory for const calls.  Look for clobbers in
9236         CALL_INSN_FUNCTION_USAGE.
9237         (mark_set_regs): Recognize COND_EXEC.
9238         (mark_set_reg): Break out of mark_set_1.
9239         (mark_used_reg): Break out of mark_used_regs.
9240         (mark_used_regs): Recognize COND_EXEC.
9241         (insn_dead_p): Use propagate_block_info struct.
9242         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
9243         (find_auto_inc, try_pre_increment_1): Likewise.
9244         (print_rtl_with_bb): Dump regs live at end too.
9245         (count_reg_sets_1): Pass in loop_depth.
9246         (count_reg_sets, count_reg_references): Likewise.
9247         (recompute_reg_usage): Provide it.
9248
9249 2000-04-07  Richard Henderson  <rth@cygnus.com>
9250
9251         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
9252         not the raw files.
9253
9254 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
9255
9256         * cpplib.c (do_elif): Skip the rest of the line if we're
9257         not going to bother evaluating it.
9258         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
9259         to avoid pointless calls to the lexer.
9260
9261 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
9262
9263         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
9264
9265 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
9266
9267         * calls.c (expand_call): emit_queue if we're trying a sibcall.
9268
9269 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
9270
9271         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
9272
9273 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
9274
9275         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
9276         crtend so they can be multilibbed.
9277         (STAGESTUFF): Remove s-crt and s-crtS.
9278
9279 2000-04-07  Richard Henderson  <rth@cygnus.com>
9280
9281         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
9282         if we discover we need a pseudo and no_new_pseudos is true.
9283         * config/alpha/alpha.md (ne:DI insn): New.
9284         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
9285
9286 2000-04-07  Richard Henderson  <rth@cygnus.com>
9287
9288         * rtl.def (COND_EXEC): New.
9289         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
9290         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
9291
9292         * genconfig.c (have_cond_arith_flag): Remove.
9293         (have_cond_exec_flag): New.
9294         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
9295         (main): Print HAVE_conditional_execution.
9296
9297         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
9298         (sched_analyze_insn, print_pattern): Likewise.
9299         * reload.c (find_equiv_reg): Likewise.
9300         * rtlanal.c (reg_referenced_p): Likewise.
9301         (note_stores, dead_or_set_regno_p): Likewise.
9302         (reg_overlap_mentioned_p): Rewrite to use a switch.
9303
9304         * ggc.h (struct rtx_def): Forward declare.
9305
9306         * print-rtl.c (debug_rtx_range): New.
9307         * rtl.h (debug_rtx_range): Declare.
9308
9309         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
9310
9311         * gcse.c (gcse_main): Don't rebuild the CFG here.
9312         (delete_null_pointer_checks): Likewise.
9313         * ssa.c (convert_to_ssa): Likewise.
9314         * toplev.c (rest_of_compilation): Do it here instead.  Combine
9315         sequential calls to TIMEVAR.  Consistently use `insns' instead of
9316         `get_insns()'.  Always split insns after reload when optimizing.
9317
9318         * basic-block.h (merge_blocks_nomove): Declare.
9319         (tidy_fallthru_edge): Declare.
9320         * flow.c (merge_blocks_nomove): Document as merging into previous
9321         blocks.  Remove cruft from between blocks; remove all edges out of A.
9322         (tidy_fallthru_edge): Export.
9323
9324 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9325
9326         * ssa.c (compute_conservative_reg_partition): Declare with
9327         void arguments.
9328         * toplev.c (clean_dump_file): Remove previously-deleted function
9329         inadvertantly merged back in.
9330         * conflict.c (conflict_graph_add): Use a single call to
9331         htab_find_slot to look up and insert.
9332
9333 2000-04-06  Richard Henderson  <rth@cygnus.com>
9334
9335         * genrecog.c (*): Rename _last_insn to last_insn.
9336         (make_insn_sequence): Set the position of the peephole2 C test
9337         to be at the last insn.
9338
9339 2000-04-06  Richard Henderson  <rth@cygnus.com>
9340
9341         * flow.c (compute_flow_dominators): Free worklist.
9342
9343 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
9344
9345         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
9346
9347 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9348
9349         * rtl.h (INSN_P): New macro.
9350         (successor_phi_fn): New typedef.
9351         (for_each_successor_phi): New prototype.
9352         (in_ssa_form): New variable.
9353         (PHI_NODE_P): Likewise.
9354         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
9355         phi nodes in successors.
9356         (mark_used_regs): Add PHI case.
9357         (set_phi_alternative_reg): New function.
9358         (life_analysis): Assert that dead code elimination is not selected
9359         when in SSA form.
9360         * toplev.c (to_ssa_time): New variable.
9361         (from_ssa_time): Likewise.
9362         (compile_file): Zero to_ssa_time and from_ssa_time.
9363         Print time to convert to and from SSA.
9364         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
9365         (print_time): Compute percent fraction as integer.
9366         * ssa.c (PHI_NODE_P): Moved to rtl.h.
9367         (convert_to_ssa): Check if we're already in SSA.
9368         Don't eliminate dead code in life_analysis.
9369         Rerun flow and life analysis at bottom.
9370         (eliminate_phi): Use canonical regnos when adding nodes.
9371         (mark_reg_in_phi): New function.
9372         (mark_phi_and_copy_regs): Likewise.
9373         (convert_from_ssa): Rerun life analysis at top.
9374         Use coalesced partition.
9375         Check for removing a phi node at the end of the block.
9376         (compute_coalesced_reg_partition): New function.
9377         (coalesce_regs_in_copies): Likewise.
9378         (coalesce_reg_in_phi): Likewise.
9379         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
9380         (for_each_successor_phi): Likewise.
9381         (rename_context): New struct.
9382         (rename_block): Use a rename_context with rename_insn_1.  When
9383         renaming sets of a subreg, emit a copy of the entire reg first.
9384         (rename_insn_1): Treat data as a rename_context *.  Save current
9385         insn in set_data.
9386         (rename_set_data): Add field set_insn.
9387         * Makefile.in (HASHTAB_H): Move up in file.
9388         (OBSTACK_H): New macro.
9389         (collect2.o): Use OBSTACK_H in dependencies.
9390         (sdbout.o): Likewise.
9391         (emit-rtl.o): Likewise.
9392         (simplify-rtx.o): Likewise.
9393         (fix-header.o): Likewise.
9394         (OBJS): Add conflict.o.
9395         (conflict.o): New rule.
9396         * basic-block.h: Include partition.h.
9397         (conflict_graph): New typedef.
9398         (conflict_graph_enum_fn): Likewise.
9399         (conflict_graph_new): New prototype.
9400         (conflict_graph_delete): Likewise.
9401         (conflict_graph_add): Likewise.
9402         (conflict_graph_conflict_p): Likewise.
9403         (conflict_graph_enum): Likewise.
9404         (conflict_graph_merge_regs): Likewise.
9405         (conflict_graph_print): Likewise.
9406         (conflict_graph_compute): Likewise.
9407         * conflict.c: New file.
9408
9409 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9410
9411         * tlink.c (read_repo_files): Don't look for .rpo info for
9412         linker flags.
9413
9414 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9415
9416         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9417
9418 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9419
9420         * config/sh/lib1funcs.asm (___udivsi3_i4):
9421         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9422         only depends on FMOVD_WORKS.
9423
9424 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9425
9426         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9427         make double constant 8-byte aligned.
9428
9429 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9430
9431         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9432         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9433         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9434         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9435         Accept storing GENERAL_REGS into offsetable memory.
9436         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9437         building a TFmode constant other than 0.0L into GENERAL_REGS.
9438
9439 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9440
9441         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9442
9443 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9444
9445         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9446         (macro_cleanup): No need to cast pbuf->macro.
9447         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9448         it returns VSPACE.  Remove check for trailing space after
9449         CPP_COMMENT.
9450         (_cpp_create_definition): Don't diddle flags here.  Return
9451         directly on error.
9452         (unsafe_chars): Handle c1 being EOF.
9453         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9454         checks.  Don't push the buffer till after we're done with
9455         them.
9456         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9457         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9458         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9459         appropriately.
9460         (_cpp_parse_assertion): Don't NUL terminate.
9461         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9462         hspace before calling _cpp_parse_assertion.  Remove all sets
9463         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9464         special with '\n' here.
9465         (maybe_macroexpand): Handle T_EMPTY hash entries without
9466         pushing a buffer at all.
9467         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9468         incrementing the line number here.  Clear
9469         potential_control_macro as well as only_seen_white, if
9470         appropriate.
9471         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9472         (_cpp_get_define_token): New function, basically like
9473         _cpp_get_directive_token was but doesn't eat horizontal space.
9474         Don't do anything with only_seen_white here.
9475         (_cpp_get_directive_token): Just call _cpp_get_define_token
9476         repeatedly till it returns non-hspace.
9477
9478         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9479         (conditional_skip, skip_if_group): Return int.
9480         (DIRECTIVE_TABLE): Change origin of all conditional directives
9481         to "COND".
9482         (TRAD_DIRECT_P): New macro.
9483         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9484         an error for a bogus directive, unless -lang-asm.  Use
9485         TRAD_DIRECT_P. Loop calling handler functions till one returns
9486         zero.
9487         (get_macro_name): Don't diddle flags here.
9488         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9489         Create T_EMPTY nodes for #define macro /* nothing */.
9490         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9491         Use hp->name when calling pass_thru_directive.
9492         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9493         Return the result of conditional_skip and/or skip_if_group.
9494         Don't call _cpp_output_line_command.
9495         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9496         Issue -Wtraditional warnings as appropriate.  Don't complain
9497         about unrecognized directives.  If we are to stop skipping,
9498         return the number of the directive that ended the skip.
9499         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9500         expansion and line commands while skipping.  Return the result
9501         of consider_directive_while_skipping, if nonzero.
9502         (do_endif): Just set potential_control_macro here.
9503         (validate_else): Use _cpp_get_directive_token.
9504         (do_assert, do_unassert): Don't save pointers into the
9505         token_buffer across calls to the lexer.  Use
9506         _cpp_get_directive_token.
9507
9508         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9509         pointer, not an offset.  Replace 'data', which was a generic
9510         pointer, with 'macro', which points to a struct hashnode.
9511         (cpp_reader): Add 'potential_control_macro' pointer.
9512         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9513         (CPP_BUF_GET, CPP_FORWARD): Delete.
9514         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9515         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9516         ACTIVE_MARK_P): Update.
9517         (_cpp_get_define_token): New internal function.
9518         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9519
9520 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9521
9522         * configure.in: And here.
9523         * configure: Regenerate.
9524         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9525         --enable-libstdcxx-v3 is passed at configure time.
9526         * config.h.in: Regenerate.
9527
9528 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9529
9530         * final.c (final): Use xcalloc to allocate line_note_exists.
9531         * function.c (free_after_compilation): Free the temp_slots.
9532         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9533         (combine_temp_slot): Free temp_slots when they get combined.
9534         (purge_addressof): Fix typo in comment.
9535         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9536         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9537
9538         * ggc.h: Include varray.h.
9539         (ggc_pending_trees): Declare.
9540         (ggc_mark_tree_children): Remove declaration.
9541         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9542         * ggc-common.c (ggc_pending_trees): New variable.
9543         (ggc_mark_roots): Call ggc_mark_trees.
9544         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9545         the ggc_pending_trees.
9546         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9547         of ggc.h.
9548
9549 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9550
9551         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9552         GET_MODE_SIZE.
9553
9554 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9555
9556         * sh.c (sh_insn_length_adjustment): New function.
9557         * sh-protos.h (sh_insn_length_adjustment): Declare.
9558         * sh.h (ADJUST_INSN_LENGTH): Use it.
9559
9560 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9561
9562         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9563         from the insn where REG_RETVAL is added.
9564         (emit_no_conflict_block): Ditto.
9565
9566         * md.texi (Standard Names): Clarify when movX is needed.
9567
9568         * combine.c (simplify_comparison) [MINUS]: Do not replace
9569         all (op (minus A B) 0) with (op A B).
9570
9571 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9572                           J"orn Rennecke <amylaar@cygnus.co.uk>
9573
9574         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9575         (block_lump_real): Likewise.
9576
9577 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9578
9579         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9580         remaining non-zero debugging masks.
9581
9582 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9583
9584         * basic-block.h (verify_flow_info): Declare.
9585         (flow_loop_outside_edge_p): Declare.
9586         * flow.c (verify_flow_info): Remove declaration.
9587         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9588
9589 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9590
9591         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9592         not C++ comments.
9593
9594 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9595
9596         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9597         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9598         seqdi_zero_trunc+1): Allow splits only if registers are
9599         different.
9600
9601 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9602
9603         * acconfig.h: Add HAVE_GAS_HIDDEN.
9604         * config.in: Regenerated.
9605         * configure.in: Add test for .hidden pseudo-op in gas.
9606         * configure: Regenerated.
9607         * crtstuff.c: Include auto-host.h.
9608         Emit additional .hidden pseudo-op for __dso_handle if the
9609         assembler knows about it.
9610
9611 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9612
9613         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9614         before freeing argnames.
9615         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9616
9617 2000-04-05  Michael Meissner  <meissner@redhat.com>
9618
9619         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9620         Walton <jonboy@gordian.com> to make memory references with update
9621         work wtih -mregnames.
9622
9623 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9624
9625         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9626         (regrename_optimize): Rename variables `def_uses' and
9627         `ext_basic_blocks' to avoid conflicts with similarly named
9628         typedefs in traditional C.
9629
9630         * calls.c (initialize_argument_information): Fix typo in previous
9631         change.
9632
9633 2000-04-04  Richard Henderson  <rth@cygnus.com>
9634
9635         * regrename.c (consider_available): Test fixed_regs not
9636         PIC_OFFSET_TABLE_REGNUM.
9637
9638 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9639
9640         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9641         crtend.
9642         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9643         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9644         (ENDFILE_LINUX_SPEC): Always use crtend.
9645         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9646         (powerpc-*-linux-gnu): Likewise.
9647         * configure: Regenerate.
9648
9649         * config/rs6000/eabi.h: Don't include sysv4.h.
9650         (MULTILIB_DEFAULTS): Don't define.
9651         * config/rs6000/eabiaix.h: Don't include eabi.h.
9652         * config/rs6000/eabile.h: Delete.
9653         * config/rs6000/eabilesim.h: Delete.
9654         * config/rs6000/eabisim.h: Don't include eabi.h.
9655         * config/rs6000/linux.h: Don't include sysv4.h.
9656         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9657         (MULTILIB_DEFAULTS): Don't redefine.
9658         * config/rs6000/rtems.h: Don't include eabi.h.
9659         * config/rs6000/sol2.h: Don't include sysv4le.h.
9660         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9661         * config/rs6000/t-ppc: Delete.
9662         * config/rs6000/t-ppcgas: Correct comment.
9663         * config/rs6000/t-ppcos: Correct comment.  Don't build
9664         multilibs for -fPIC, rather use -fPIC -mstrict-align
9665         as default.
9666         * config/rs6000/t-ppc: Delete.
9667         * config/rs6000/vxppc.h: Don't include sysv4.h.
9668         * config/rs6000/vxppcle.h: Delete.
9669         * configure.in: Use multiple header files for p2pc ELF targets
9670         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9671         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9672         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9673         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9674         always available for these platforms.
9675
9676 2000-04-04  Richard Henderson  <rth@cygnus.com>
9677
9678         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9679
9680 2000-04-04  Stan Cox  <scox@cygnus.com>
9681
9682         * Makefile.in: Add rules for regrename.o
9683         * regrename.c: New file.
9684         * rtl.h (regrename_optimize): Add prototype.
9685         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9686         (compile_file, decode_d_option): Add support for -frename-registers.
9687         (rest_of_compilation): Call regrename_optimize.
9688         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9689         New macros.
9690
9691 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9692
9693         * Makefile (gccbug): New target.
9694         (doc): Depend on it.
9695         * gcc.texi (Bugs): Link subnodes.
9696         (gccbug): New node.
9697         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9698         Document severities, priorities, and classes in bug form.
9699
9700 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9701
9702         * cpplex.c (trigraph_map, speccase): Combine into single
9703         table, chartab.
9704         (NORMAL, NONTRI): New macros.
9705         (_cpp_read_and_prescan): Change to use unified table.  Use
9706         is_hspace to test for whitespace.
9707
9708         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9709         definition that doesn't provoke the "empty body in an
9710         if-statement" warning.
9711
9712 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9713
9714         * builtins.c (expand_builtin_strlen): Force the source to
9715         be a memory address.
9716
9717 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9718
9719         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9720
9721 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9722
9723         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9724          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9725         (ECF_IS_CONST): Rename to ECF_CONST.
9726         (special_function_p): Make static, change interface.
9727         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9728         (expand_call) ... here; convert number of variables to flags.
9729         (emit_library_call_vlue_1): Likewise.
9730         (setjmp_call_p): New function.
9731         (initialize_argument_information): Accepts flags as argument;
9732         return flags.
9733         (precompute_arguments): Likewise.
9734         * tree.h (special_function_p): Remove.
9735         (setjmp_call_p): Add prototype.
9736
9737 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9738
9739         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9740         so that addresses are offsetable by up to 16 bytes.
9741         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9742         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9743         offsetable.
9744
9745         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9746         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9747         (movsf): Don't force any constant to memory if target is integer
9748         hard register.
9749         Move fp_zero_operand check below the const0_rtx check.
9750         (movtf): Likewise. Also allow fp_zero_operand for stores into
9751         memory.
9752         (movdf): Likewise. Also allow fp_zero_operand for stores into
9753         memory and into integer hard registers.
9754         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9755         movdf_const_intreg_sp64): Remove.
9756         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9757         conditions.
9758         (movdf_no_e_insn_v9_sp32): New pattern.
9759         (movdf_insn_v9only): Remove.
9760         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9761         (movdf_insn_sp64): Remove.
9762         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9763         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9764         (following splits): Rewrite conditions. Add two new splits
9765         for storing 0.0 into memory and registers.
9766         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9767         (movtf_insn_sp32): Redo constraints and conditions.
9768         (movtf_insn_vis_sp32): New pattern.
9769         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9770         (movtf_insn_hq_sp64): Likewise.
9771         (movtf_insn_hq_vis_sp64): New pattern.
9772         (movtf_insn_sp64): Redo constraints and conditions.
9773         (movtf_insn_vis_sp64): New pattern.
9774         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9775         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9776         or memory.
9777         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9778         -mvis or -m64 to take down the number of various reload patterns.
9779
9780 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9781
9782         * pa/pa-64.h: New file.
9783         * pa/pa64-regs.h: New file.
9784         * pa/pa64-start.h: New file.
9785         * pa/t-pa64: New file.
9786         * pa/xm-pa64hpux.h: New file.
9787
9788 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9789
9790         * sparc.c (output_restore_regs): Prototype.
9791         (sparc_emit_float_lib_cmp): Constification.
9792
9793         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9794
9795         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9796         Prototype.
9797
9798         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9799         (get_value_hash, hash_rtx): Likewise.
9800
9801         * ssa.c (compute_conservative_reg_partition): Prototype.
9802
9803         * tree.c (mark_hash_entry): Prototype.
9804
9805 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9806
9807         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9808         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9809         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9810
9811         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9812         * objc/lang-specs.h: Likewise.
9813
9814 2000-04-03  Neil Booth  <NeilB@earthling.net>
9815
9816         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9817         and SYNTAX_ERROR2. Replace `' in messages with ''.
9818         (op_to_str): Make re-entrant.
9819         (_cpp_parse_expr): Implement new error macros. Use | rather
9820         than || to logically or 2 boolean integers.  Simply expression
9821         checking we have a left operand iff needed.
9822
9823 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9824
9825         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9826
9827 2000-04-03  Philip Blundell  <philb@gnu.org>
9828
9829         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9830
9831 2000-04-03  Felix Lee  <flee@cygnus.com>
9832
9833         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9834         (run_shell): Use it.
9835
9836 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9837
9838         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9839         (stmp-fixproto): ...rather than here.
9840
9841 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9842
9843         * pa.c (print_operand): Compute 'base' only inside the code paths
9844         that use it.
9845
9846 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9847
9848         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9849         CEIL_DIV_EXPR.
9850
9851 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9852
9853         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9854
9855 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9856
9857         * Makefile.in (alias.o): Depend on $(TREE_H).
9858
9859 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9860
9861         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9862         processing C++.
9863         * cpplib.c (_cpp_handle_directive): Improve warnings for
9864         traditional C and indented directives.
9865
9866         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9867         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9868         fixinc/inclhack.def: Indent the # of #include_next one space.
9869         * cp/rtti.c: Un-indent #if and #endif.
9870
9871         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9872         syntax error, but an error has already been printed.
9873         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9874         message when called with nothing remaining on the line.
9875         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9876         OTHER token, not an ASSERTION.
9877         * cpplib.c (do_assert): When we create a 'base' node, clear
9878         its aschain pointer.
9879
9880 2000-04-02  Neil Booth <NeilB@earthling.net>
9881
9882         * cppexp.c:  New typedef op_t.  struct operation and struct
9883         token updated to use it.
9884         (op_to_str): New function.
9885         (_cpp_parse_expr): Error messages modified to use op_to_str.
9886
9887 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9888
9889         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9890         before checking MUST_PASS_IN_STACK.
9891
9892 2000-04-02  Neil Booth <NeilB@earthling.net>
9893
9894         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9895         flags and initial priority into a single constant.  New
9896         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9897         (_parse_cpp_expr): Implement new constants.  Take left operand
9898         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9899         parse indicated by reducing FINISHED token.  Remove new lines
9900         from cpp_error messages.
9901
9902 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9903
9904         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9905         permanent obstack.
9906
9907 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9908
9909         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9910         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9911         the strings and function names on the fly.  Take the #sccs
9912         entry out of the table if SCCS_DIRECTIVE is not defined.
9913         (_cpp_handle_directive): Decide if the # was at the beginning
9914         of the line here.  Issue -pedantic warnings for extended
9915         directives here.  Warn about K+R directives with the #
9916         indented, and C89/extended directives with the # not indented,
9917         here.
9918         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9919         do_assert, do_unassert): Don't issue pedantic warning here.
9920
9921         * cpphash.h: Add CPP_WTRADITIONAL macro.
9922         * cpplib.h (struct cpp_options): Rename warn_stringify to
9923         warn_traditional; update comments.
9924         * cppinit.c (handle_option): Set warn_traditional not
9925         warn_stringify.
9926         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9927         CPP_WTRADITIONAL (pfile).
9928         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9929         be ignored in -traditional mode here.
9930
9931         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9932         to initialize speccase[] and trigraph_map[].  Delete all
9933         references to pfile->input_speccase.  Always treat '?' as a
9934         special character.  Remove table-initialization code from
9935         _cpp_init_input_buffer.
9936
9937         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9938         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9939
9940 2000-04-01  Richard Henderson  <rth@cygnus.com>
9941
9942         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9943         (mostlyclean): Likewise.
9944
9945         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9946         (struct dump_file_info, enum dump_file_index, dump_file): New.
9947         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9948         not a string.  Clean out file if we havn't yet done so.  Do nothing
9949         if the dump isn't enabled.
9950         (close_dump_file): Do nothing if the dump isn't open.  Dump
9951         graph data if requested.
9952         (dump_rtl, clean_dump_file): Remove.
9953         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9954         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9955         .combine dump if optimizing.  Iterate over dump_file to finalize the
9956         graph dumps.
9957         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9958         Convert all uses of dump_rtl.
9959         (decode_d_option): Iterate over dump_file to implement 'a' and to
9960         locate pass-specific dumps.
9961
9962 2000-04-01  Neil Booth <NeilB@earthling.net>
9963
9964         * cppexp.c: Redefine priority constants.
9965         (_cpp_parse_expr): Replace left and right priority scheme with
9966         single priority logic.  Move LOGICAL to same place as COMPARE.
9967         Remove bogus check for multiple unary +/- operators.
9968
9969 2000-04-01  Neil Booth <NeilB@earthling.net>
9970
9971         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9972         within the switch statement.  Binary operations break out of
9973         the switch naturally.  '(' tokens handled by forcing
9974         immediate shift.  ')' handled by forcing immediate reduce to
9975         the previous '('.  New error messages.
9976
9977 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9978
9979         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9980         part', it's already in use.  Use %K instead.  Add a return at the
9981         end of what is now %K.
9982         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9983
9984 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9985
9986         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9987         allocate_dynamic_stack_space.
9988         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9989         update stack_pointer_delta; do not update arg_size_so_far.
9990         (compute_argument_block_size): Use stack_delta instead of
9991         stack_pointer_pending and arg_size_so_far.
9992         (expand_call): Add sanity checking for stack_pointer_delta;
9993         save and restore stack_pointer_delta for SIB, use
9994         stack_pointer_delta for alignment; do not update arg_space_so_far.
9995         (emit_library_call_value): Use stack_pointer_delta for alignment.
9996         (store_one_arg): Do not update arg_space_so_far.
9997         * explow.c (adjust_stack, anti_adjust_stack): Update
9998         stack_pointer_delta.
9999         (allocate_dynamic_stack_space): Add sanity checking for
10000         stack_pointer_delta.
10001         * expr.c (init_expr, clear_pending_stack_adjust): Clear
10002         stack_pointer_delta.
10003         (emit_push_insn): Update stack_pointer_delta.
10004         * function.h (struct expr_status): Add x_stack_pointer_delta;
10005         remove x_arg_space_so_far.
10006         (arg_space_so_far): Remove.
10007         (stack_pointer_delta): New macro.
10008
10009 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
10010
10011         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
10012         Reorder struct cpp_options and struct cpp_reader for better
10013         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
10014         takes two args.  Change all 'char' flags to 'unsigned char'.
10015         Move show_column flag into struct cpp_options.  Don't
10016         prototype cpp_options_init.
10017         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
10018         cppinit.c, cpplex.c, cpplib.c:
10019         Replace CPP_OPTIONS (pfile)->whatever with
10020         CPP_OPTION (pfile, whatever), and likewise for
10021         opts = CPP_OPTIONS (pfile); ... opts->whatever;
10022
10023         * cppinit.c (merge_include_chains): Take a cpp_reader *.
10024         Extract CPP_OPTION (pfile, pending) and work with that
10025         directly.
10026         (cpp_options_init): Delete.
10027         (cpp_reader_init): Turn on on-by-default options here.
10028         Allocate the pending structure here.
10029         (cl_options, enum opt_code): Define these from the same table,
10030         kept in a large macro.  Add -fshow-column and -fno-show-column
10031         options.
10032
10033         * cpperror.c (v_message): If show_column is off, don't print
10034         the column number.
10035
10036         * cppmain.c: Update for new interface.
10037         * fix-header.c: Likewise.
10038
10039 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
10040
10041         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
10042         definition.
10043         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
10044         are passed to any invocation of AR_FOR_TARGET.
10045         (AR_CREATE_FOR_TARGET): New macro.
10046         (AR_EXTRACT_FOR_TARGET): New macro.
10047         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
10048         AR_EXTRACT_FOR_TARGET.
10049         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
10050         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
10051         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
10052         AR_EXTRACT_FOR_TARGET to sub-makes.
10053
10054 2000-03-31  Neil Booth <NeilB@earthling.net>
10055
10056         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
10057         PAREN_INNER_PRIO.
10058         (_cpp_parse_expr): Check for multiple unary +/- operators.
10059         Correct priorities of ':' and '?'.  Treat ')' as having a
10060         value.  Ensure conditional expression is not void.
10061
10062 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
10063
10064         * alias.c (canon_rtx): Make it global.
10065         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
10066         equality.
10067         * cse.c (struct table_elt): Add canon_exp.
10068         (insert): Clear it.
10069         (invalidate): Canonicalize expressions only once.
10070         * rtl.h (canon_rtx): Declare.
10071
10072 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
10073
10074         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
10075         * alias.c (reg_known_value): Add comments.
10076         (init_alias_analysis): Likewise.
10077         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
10078         address.
10079         (cse_basic_block): Fix typo in comment.
10080         * emit-rtl.c: Include hashtab.h.
10081         (const_int_htab): New variable.
10082         (const_int_htab_hash): New function.
10083         (const_int_htab_eq): Likewise.
10084         (rtx_htab_mark_1): Likewise.
10085         (rtx_htab_mark): Likewise.
10086         (gen_rtx_CONST_INT): Cache all CONST_INTs.
10087         (unshare_all_rtx): Fix formatting.
10088         (init_emit_once): Initialize const_int_htab.
10089         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
10090         address.
10091         * rtl.texi: Document the fact that all CONST_INTs with the same
10092         value are shared.
10093
10094 2000-03-30  Richard Henderson  <rth@cygnus.com>
10095
10096         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
10097
10098 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
10099
10100         * configure.in: Comment out --enable-c-cpplib stanza.
10101         * configure: Regenerate.
10102
10103 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10104
10105         * expr.c (store_constructor): Properly compute displacement and
10106         alignment when offset is variable.
10107
10108         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
10109         cases of alignment in bytes.
10110
10111 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
10112
10113         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
10114         since it is used to generate c-parse.y.
10115         * objc-parse.c, objc-parse.y: Regenerated.
10116
10117         * function.c (expand_function_end): Pass alignment argument to
10118         emit_block_move in bits, not bytes.
10119
10120 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10121
10122         * expr.c (move_by_pieces_ninsns): Fix one more missing align
10123         correction.
10124
10125         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
10126
10127         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
10128         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
10129         * function.c (assign_parms): Likewise.
10130         * integrate.c (expand_inline_function): Likewise.
10131         * stmt.c (expand_decl): Likewise.
10132         (copy_rtx_and_substitute): Likewise.
10133         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
10134         (clear_by_pieces): Fix error in last change.
10135         * emit-rtl.c (init_emit): Set known registers alignment in bits.
10136         * function.h (regno_pointer_align): Now unsigned.
10137         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
10138         is in bits.
10139         * config/i386/i386.c (aligned_operand): Likewise.
10140         * config/sparc/sparc.c (mem_min_alignment): Likewise.
10141         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
10142         (unaligned_memory_operand): Likewise.
10143         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
10144         Also make alignments and sizes unsigned and some whitespace cleanup.
10145         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
10146
10147         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
10148         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
10149         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
10150         (expand_builtin_memset): Likewise, but to clear_storage.
10151         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
10152         (restore_fixed_argument_area): Likewise.
10153         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
10154         (load_register_parameters): Likewise, to emit_group_load.
10155         (expand_call): Likewise, to emit_group_store and emit_block_move.
10156         (emit_library_call_value_1): Likewise, to emit_block_move.
10157         (store_one_arg): Likewise, and to emit_push_insn.
10158         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
10159         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
10160         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
10161         (emit_block_move, emit_group_load, emit_group_store): Likewise.
10162         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
10163         (expand_assigment, store_expr, store_constructor_field): Likewise.
10164         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
10165         (store_constructor, store_field, get_inner_reference): Likewise.
10166         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
10167         (expand_expr, case COMPONENT_REF): Likewise.
10168         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
10169         and positions; reindent code.
10170         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
10171         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
10172         (assign_parms): Likewise to emit_group_store.
10173         * optabs.c (prepare_cmp_insn): Alignment is in bits.
10174         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
10175         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
10176         (expand_return): Likewise to {extract,store}_bit_field.
10177         * stor-layout.c (get_mode_alignment): Minor cleanup.
10178         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
10179         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
10180
10181 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10182
10183         * config/arm/arm.h: Undo effects of previous delta:
10184         (ASM_SPEC): Do not define.
10185         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
10186
10187         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
10188         typo.
10189
10190 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10191
10192         * cppinit.c (cpp_start_read): Call initialize_dependency_output
10193         only after reading in the primary source file.
10194
10195 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
10196
10197         * c-common.c (c_common_nodes_and_builtins): The first parameter to
10198         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
10199         or a reference to a va_list.
10200         * builtins.c (stabilize_va_list): Simplify now we don't have to
10201         work around C array address decay.
10202         * c-typeck.c (convert_for_assignment): Handle assignment to
10203         a reference parameter by taking the address of the RHS.
10204         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
10205         (va_copy): Likewise.
10206         (__va_copy): Likewise.
10207         * ginclude/varargs.h (va_start): Likewise.
10208         (__va_copy): Likewise.
10209
10210 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
10211
10212         * i386/djgpp.h: Remove extraneous "+".
10213
10214         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
10215
10216         * calls.c (expand_call): Fix typo in last change.
10217
10218 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
10219
10220         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
10221         been expanded.
10222
10223 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10224
10225         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
10226         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
10227         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
10228         * tree.c (bit_position, byte_position): Likewise.
10229         * tree.h: Declare new functions.
10230
10231 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10232
10233         * config/arm/arm.c: Minor formatting changes/
10234         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
10235         already defined.
10236         (ASM_SPEC): Define if not already defined.
10237
10238 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10239
10240         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
10241         _cpp_calc_hash.
10242
10243 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
10244
10245         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
10246         value, don't output it as unsigned.
10247
10248 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
10249
10250         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
10251
10252 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10253
10254         * c-common.c (c_common_nodes_and_builtins): Don't special case
10255         cplus_mode when declaring builtin bzero/bcmp, always avoid
10256         prototype arguments.
10257
10258 2000-03-29  Bruce Korb  <bkorb@gnu.org>
10259
10260         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
10261         to a non-file
10262
10263 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10264
10265         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
10266         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
10267         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
10268         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
10269         (save_fixed_argument_area, restore_fixed_argument_area):
10270         conditionize by #ifdef REG_PARM_STACK_SPACE only.
10271         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
10272         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
10273         (precompute_register_parameters): Avoid #ifdefs on
10274         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
10275         (stire_one_args): Likewise.
10276         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
10277         (emit_library_call_value_1): Likewise.
10278         (compute_argument_block_size): Align to STACK_BOUNDARY only for
10279         ACCUMULATE_OUTGOING_ARGS.
10280         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
10281         value.
10282         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
10283         (use_crosses_set_p): Likewise.
10284         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
10285         #define ACCUMULATE_OUTGOING_ARGS 1.
10286         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
10287         frames.
10288         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
10289         constants.
10290         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
10291         (TARGET_SWITCHES): Add push-args, no-push-args,
10292         accumulate-outgoing-args and no-accumulate-outgoing-args.
10293         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
10294         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
10295         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
10296         and PUSH_ROUNDING.
10297         (emit_push_insn): Likewise.
10298         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10299         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
10300         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10301         (STACK_DYNAMIC_OFFSET): Define correctly for both
10302         ACCUMULATE_OUTGOING_ARGS and normal mode.
10303         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
10304         * tm.texi (PUSH_ARGS): Document.
10305         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
10306
10307 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10308
10309         * flags.h (flag_optimize_sibling_calls): Declare.
10310         * calls.c (expand_call): Fail sibcall when
10311         !flag_optimize_sibling_calls
10312         * invoke.texi (flag_optimize_sibling_calls): Document.
10313         * toplev.c (flag_optimize_sibling_calls): New global variable.
10314         (f_options): Add flag_optimize_sibling_calls.
10315         (rest_of_compilation): Conditionize
10316         optimize_sibling_and_tail_recursive_calls by
10317         flag_optimize_sibling_calls.
10318         (main): Set flag_optimize_sibling_calls for -O2.
10319         * stmt.c (expand_return): Conditionize tail recursion by
10320         flag_optimize_sibling_calls.
10321
10322 2000-03-29  Richard Henderson  <rth@cygnus.com>
10323
10324         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
10325         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
10326
10327 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
10328
10329         * except.c (add_eh_table_entry): Mark type_info's as referenced.
10330
10331 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10332
10333         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
10334         is given.
10335         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
10336         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
10337         * config/rs6000/aix.h: then modified likewise.
10338
10339 2000-03-28  Richard Henderson  <rth@cygnus.com>
10340
10341         * rtl.h: Redistribute enum reg_note documentation.
10342         Kill trailing whitespace.
10343         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
10344         Kill trailing whitespace.
10345
10346 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
10347
10348         * cppfiles.c (hash_IHASH): Just return i->hash.
10349         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
10350         htab_find_with_hash.
10351         (cpp_read_file): Likewise.
10352         (find_include_file): Likewise.  Properly initialize
10353         ih->nshort.  Share ih->name and ih->nshort if possible.
10354         * cpphash.c (_cpp_calc_hash): New function.
10355         (hash_HASHNODE): Just return h->hash.
10356         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
10357         htab_find_with_hash.
10358         * cpphash.h: Prototype _cpp_calc_hash.
10359         * cppinit.c (initialize_builtins): Provide a valid hash
10360         to _cpp_make_hashnode, using _cpp_calc_hash.
10361
10362         * cpphash.c (collect_expansion): # is not a special character
10363         in object-like macros.  In -traditional mode, /**/ is not
10364         token paste at the beginning or end of the line.
10365         * cpplib.c (do_include, do_import, do_include_next): If
10366         parse_include fails, return immediately.
10367
10368 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10369
10370         * config/arm/arm.md (return peepholes): Update to reflect the new
10371         call insn patterns.
10372         * config/arm/arm.c (arm_volatile_func): Also check
10373         current_function_nothrow.
10374         (output_return_instruction, output_func_prologue): Use it.
10375         (arm_output_epilogue, arm_expand_prologue): Likewise.
10376
10377 2000-03-27  Tom Tromey  <tromey@cygnus.com>
10378
10379         * gcc.c (handle_braces): In {x*...} case, break out of loop if
10380         switch is found.
10381
10382 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10383
10384         * expr.c (store_constructor): SIZE now signed.
10385         For EXPR_SIZE, don't evaluate size; just needed if constant.
10386         * fold-const.c (fold): Fix a number of cases when folded tree is
10387         wrong type.
10388         * function.c (flush_addressof): Reenable.
10389         * tree.h (flush_addressof): Likewise.
10390         * toplev.c (independent_decode_option): Look at strings_processed.
10391         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
10392
10393 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
10394
10395         * sibcall.c (indentify_call_return_value): Find last call in the chain;
10396         Allow stack adjustment after function call.
10397
10398         * regmove.c (struct csa_memlist): Make mem field rtx *.
10399         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
10400         (try_apply_stack_adjustment): Replace whole MEM rtx.
10401         (combine_stack_adjustments_for_block): Update calls
10402         to record_one_stack_ref.
10403
10404 2000-03-28  Neil Booth  <NeilB@earthling.net>
10405
10406         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10407         '\\' rather than a null character, so nulls are not special.  Fix
10408         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10409         speed trigraph conversion.
10410         (_cpp_init_input_buffer): Initialize trigraph map.
10411
10412 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10413
10414         * config/i386/i386.c (output_387_binary_op): Correct intel
10415         mode assembly output, and add spaces after commas in AT&T
10416         output.  Correct Unixware assembler comment.  Document input
10417         constraints.  Comment fp operations.  Reduce profligate buffer
10418         size.  Remove extraneous abort.  Localize temp var.
10419         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10420         (output_fix_trunc): Add spaces after commas in assembly output.
10421
10422 2000-03-27  Richard Henderson  <rth@cygnus.com>
10423
10424         * i386-protos.h (ix86_match_ccmode): Declare.
10425         * i386.c (ix86_match_ccmode): New.
10426         (ix86_expand_fp_compare): Update for pattern renames.
10427         (ix86_expand_strlensi_unroll_1): Likewise.
10428         * i386.h (EXTRA_CC_MODES): Add CCZ.
10429         (SELECT_CC_MODE): Use it for EQ/NE zero.
10430         * i386.md (cmpsi_ccz_1): New.
10431         (cmpqi_ccz_1): New.
10432         (*testsi_ccz_1): New.
10433         (testqi_ccz_1): New.
10434         (cmpsi_ccno_1): Rename from cmpsi_0.
10435         (testsi_ccno_1): Rename from testsi_1.
10436         (testqi_ccno_1): Rename from testqi_1.
10437         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10438         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10439         (*cmphi_0): Use ix86_match_ccmode.
10440         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10441         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10442         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10443         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10444         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10445         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10446         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10447         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10448         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10449         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10450         (appropriate peepholes): Likewise.
10451         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10452         (*subsi_3, *subhi_3, *subqi_3): Remove.
10453         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10454         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10455         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10456         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10457         (x86_shift_adj_1): Use CCZ.
10458         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10459
10460 2000-03-27  Stan Cox  <scox@cygnus.com>
10461
10462         * resource.h (mark_resource_type): New.
10463         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10464         find_free_register): Use mark_resource_type.
10465         (mark_set_resources): Change include_delayed_effects
10466         to mark_resource_type.
10467         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10468         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10469         Use mark_resource_type.
10470
10471 2000-03-27  Richard Henderson  <rth@cygnus.com>
10472
10473         * i386.md (call_pop_0, call_value_pop_0): New.
10474         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10475         (call_value_pop_1): Likewise.
10476         (call_0, call_value_0): New.
10477         (call_1, call_value_1): Remove constraint from unused arg.
10478
10479 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10480
10481         * invoke.texi (Spec Files): Document new spec % command created by
10482         Tom Tromey's recent patch.
10483
10484 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10485
10486         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10487         if not defined.
10488
10489 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10490
10491         * expr.c (expand_assignment): Fix typo in last change.
10492
10493         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10494
10495 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10496
10497         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10498         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10499         and DECL_INLINE if FUNCTION_DECL.
10500         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10501         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10502         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10503         (combine_parm_decls): Likewise.
10504         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10505         * print-tree.c (print_node): Likewise.
10506         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10507         DECL_TRANSPARENT_UNION on proper decl types.
10508         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10509         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10510         DECL_BIT_FIELD of FIELD_DECL.
10511         * tree.h (DECL_RESULT_FLD): New macro.
10512
10513         * expr.c (expand_assignment): Add code to handle variable-sized
10514         BLKmode case.
10515
10516 2000-03-26  Richard Henderson  <rth@cygnus.com>
10517
10518         * calls.c (expand_call): Pass parms not original exp to
10519         optimize_tail_recursion.  Mind return value instead of looking
10520         for a barrier.
10521         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10522         call_expr.  Move checks for call_expr and current_function_decl ...
10523         (expand_return): ... here.
10524
10525 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10526
10527         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10528         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10529         defines.
10530         (process_command): Use them.
10531         (check_live_switch): Likewise.
10532         (give_switch): Skip ignored switches.
10533
10534 2000-03-26  Jan Hubicka  <jh@suse.cz>
10535
10536         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10537         for minimal jump pass test.
10538
10539 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10540
10541         * integrate.c (function_cannot_inline_p): Do inline functions that
10542         return `void'.
10543
10544 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10545
10546         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10547         now a list of TREE_LIST entries, not types.
10548         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10549
10550         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10551         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10552         int_bit_position.
10553         * config/mips/mips.c (function_arg): Likewise; also remove cast
10554         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10555         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10556         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10557         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10558         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10559         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10560         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10561         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10562         num_adjusts now unsigned.
10563         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10564         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10565         NREGS now unsigned.
10566         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10567         as is BITPOS variable; use host_integerp and int_bit_position.
10568         (function_arg_record_value_2): Likewise.
10569         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10570         Variable REGNO now unsigned.
10571         (function_arg_record_value): NREGS now unsigned.
10572
10573 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10574
10575         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10576
10577 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10578
10579         * Rework fields used to describe positions of bitfields and
10580         modify sizes to be unsigned and use HOST_WIDE_INT.
10581         * alias.c (reg_known_value_size): Now unsigned.
10582         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10583         (really_start_incremental_init): Use bitsize_zero_node.
10584         (push_init_level, pop_init_level, output_init_element): Likewise.
10585         Use bitsize_unit_node and bitsize_one_node.
10586         (output_pending_init_elements, process_init_element): Likewise.
10587         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10588         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10589         HOST_WIDE_INT, respectively.
10590         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10591         (num_sign_bit_copies): Returns unsigned.
10592         BITWIDTH now unsigned; rework arithmetic.
10593         Remove recursive call from arg to MAX.
10594         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10595         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10596         REGNO now unsigned.
10597         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10598         (find_split_point, expand_compound_operation, make_extraction): LEN
10599         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10600         (make_field_assignment): Likewise.
10601         (combine_simplify_rtx): Add cast.
10602         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10603         (force_to_mode): WIDTH now unsigned; add cast.
10604         (if_then_else_cond): SIZE now unsigned.
10605         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10606         (extended_count): Now returns unsigned.
10607         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10608         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10609         (simplify_comparison): MODE_WIDTH now unsigned.
10610         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10611         (mark_used_regs_combine): Likewise; rework arithmetic.
10612         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10613         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10614         (record_promoted_value): REGNO now unsigned.
10615         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10616         (get_last_value): REGNO now unsigned.
10617         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10618         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10619         (remove_death): Arg REGNO now unsigned.
10620         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10621         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10622         now unsigned.
10623         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10624         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10625         (struct cse_reg_info): REGNO now unsigned.
10626         (cached_regno): Now unsigned.
10627         (REGNO_QTY_VALID_P): Add cast.
10628         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10629         (remove_invalid_regs): Likewise.
10630         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10631         as are variables END and I.
10632         (get_cse_reg_info, insert): Likewise.
10633         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10634         (canon_hash): Likewise.
10635         (insert_regs, lookup_for_remove): REGNO now unsigned.
10636         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10637         New variable RN.
10638         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10639         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10640         * emit-rtl.c (subreg_realpart_p): Add cast.
10641         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10642         (operand_subword_force): Arg I is now unsigned.
10643         * except.c (eh_regs): Variable I is now unsigned.
10644         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10645         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10646         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10647         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10648         (extract_split_bit_field, store_bit_field, extract_bit_field):
10649         Likewise.
10650         * expr.c (store_constructor_fields, store_constructor, store_field):
10651         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10652         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10653         (do_jump): Likewise.
10654         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10655         MAX_SIZE is now unsigned.
10656         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10657         (emit_group_store): Likewise.
10658         (emit_move_insn): I now unsigned.
10659         (store_constructor): Use host_integerp, tree_low_cst, and
10660         bitsize_unit_node.
10661         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10662         Rework all calculations to use trees and new fields.
10663         * expr.h (promoted_input_arg): Regno now unsigned.
10664         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10665         (mark_seen_cases): Arg is HOST_WIDE_INT.
10666         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10667         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10668         precisions and alignments are unsigned.
10669         (optimize_bit_field_compare, fold_truthop): Likewise.
10670         (int_const_binop): Adjust threshold for size_int_type_wide call.
10671         (fold_convert): Likewise.
10672         (size_int_type_wide): Make table larger and fix thinko that only
10673         had half of table used.
10674         (all_ones_mask_p, fold): Precisions are unsigned.
10675         * function.c (put_reg_info_stack): REGNO is unsigned.
10676         (instantiate_decl): Size is HOST_WIDE_INT.
10677         (instantiate_virtual_regs): I is unsigned.
10678         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10679         (promoted_input_arg): REGNO is unsigned.
10680         * function.h (struct function): x_max_parm_reg is now unsigned.
10681         * gcse.c (max_gcse_regno): Now unsigned.
10682         (struct null_pointer_info): min_reg and max_reg now unsigned.
10683         (lookup_set, next_set): REGNO arg now unsigned.
10684         (compute_hash_table): REGNO and I now unsigned.
10685         (handle_avail_expr): regnum_for_replacing now unsigned.
10686         (cprop_insn): REGNO now unsigned.
10687         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10688         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10689         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10690         * hard-reg-set.h (reg_class_size): Now unsigned.
10691         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10692         * jump.c (mark_modified_reg): I now unsigned; add cast.
10693         (rtx_equal_for_thread_p): Add cast.
10694         * loop.c (max_reg_before_loop): Now unsigned.
10695         (struct_movable): REGNO now unsigned.
10696         (try_copy_prop): REGNO arg unsigned.
10697         (regs_match_p): XN and YN now unsigned.
10698         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10699         (strength_reduce): Likewise; NREGS also unsigned.
10700         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10701         * loop.h (struct iv_class): REGNO now unsigned.
10702         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10703         Now unsigned.
10704         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10705         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10706         * optabs.c (expand_binop): I and NWORDS now unsigned.
10707         (expand_unop): I now unsigned.
10708         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10709         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10710         * real.c (significand_size): Now returns unsigned.
10711         * real.h (significand_size): Likewise.
10712         * regclass.c (reg_class_size): Now unsigned.
10713         (choose_hard_reg_mode): Both operands now unsigned.
10714         (record_reg_classes): REGNO and NR now unsigned.
10715         (reg_scan): NREGS now unsigned.
10716         (reg_scan_update): old_max_regno now unsigned.
10717         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10718         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10719         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10720         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10721         Likewise for variable R.
10722         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10723         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10724         (find_equiv_reg): Add casts.
10725         (regno_clobbered_p): Arg REGNO now unsigned.
10726         * reload.h (struct reload): NREGS now unsigned.
10727         (refers_to_regno_for_reload_p): Regno args are unsigned.
10728         (regno_clobbered_p): Likewise.
10729         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10730         (compute_use_by_pseudos): REGNO now unsigned.
10731         (find_reg): I and J now unsigned, new variable K, and change loop
10732         variables accordingly; THIS_NREGS now unsigned.
10733         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10734         (spill_hard_reg): REGNO arg now unsigned; add casts.
10735         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10736         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10737         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10738         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10739         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10740         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10741         (emit_reload_insns): REGNO now unsigned.
10742         (reload_cse_move2add): Add cast.
10743         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10744         and rework loop.
10745         * resource.c (mark_referenced_resources, mark_set_resources): New
10746         variable R; REGNO and LAST_REGNO now unsigned.
10747         (mark_target_live_regs): J and REGNO now unsigned.
10748         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10749         * rtl.h (union rtunion_def): New field rtuint.
10750         (XCUINT): New macro.
10751         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10752         (operand_subword, operand_subword_force): Word number is unsigned.
10753         (choose_hard_reg_mode): Operands are unsigned.
10754         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10755         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10756         (regno_use_in, combine_instructions, remove_death): Likewise.
10757         (reg_scan, reg_scan_update): Likewise.
10758         (extended_count): Return is unsigned.
10759         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10760         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10761         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10762         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10763         (reg_reg_last_1): FIRS and LAST now unsigned.
10764         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10765         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10766         now unsigned.
10767         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10768         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10769         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10770         (replace_regs): Arg NREGS now unsigned.
10771         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10772         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10773         (simplify_binary_operation): Likewise.
10774         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10775         THIS_LAST now unsigned.
10776         (cselib_record_set): Add cast.
10777         * ssa.c (ssa_max_reg_num): Now unsigned.
10778         (rename_block): REGNO now unsigned.
10779         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10780         sizes now unsigned.
10781         (all_cases_count): Just return -1 not -2.
10782         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10783         Rework tests to use trees whenever possible.
10784         Use host_integerp and tree_low_cst.
10785         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10786         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10787         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10788         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10789         (smallest_mode_for_size): Likewise.
10790         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10791         KNOWN_ALIGN is now an alignment, so simplify code.
10792         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10793         (start_record_layout): Renamed from new_record_layout_info.
10794         Update to new fields.
10795         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10796         New functions.
10797         (place_union_field): Renamed from layout_union_field.
10798         Update to use new fields in rli.
10799         (place_field): Renamed from layout_field.
10800         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10801         (finalize_record_size): Rework to use new fields in rli and handle
10802         union.
10803         (compute_record_mode): Rework to simplify and to use new DECL fields.
10804         (finalize_type_size): Make rounding more consistent.
10805         (finish_union_layout): Deleted.
10806         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10807         (layout_type, case RECORD_TYPE): Call new function names.
10808         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10809         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10810         (get_best_mode): UNIT is now unsigned; remove casts.
10811         * tree.c (bit_position): Compute from new fields.
10812         (byte_position, int_byte_position): New functions.
10813         (print_type_hash_statistics): Cast to remove warning.
10814         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10815         (build_index_type): Likewise; make subtype of sizetype.
10816         (build_index_2_type): Pass sizetype to build_range_type.
10817         (build_common_tree_nodes): Use size_int and bitsize_int to
10818         initialize nodes; add bitsize_{zero,one,unit}_node.
10819         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10820         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10821         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10822         (DECL_FIELD_BITPOS): Deleted.
10823         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10824         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10825         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10826         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10827         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10828         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10829         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10830         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10831         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10832         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10833         (DECL_ALIGN): Adjust to new field in union.
10834         (DECL_OFFSET_ALIGN): New field.
10835         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10836         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10837         (union tree_decl): Add struct for both aligns.
10838         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10839         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10840         (struct record_layout_info): Rework fields to have offset
10841         alignment and byte and bit position.
10842         (start_record_layout, place_field): Renamed from old names.
10843         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10844         (byte_position, int_byte_position): Likewise.
10845         (get_inner_reference): Change types of position and length.
10846         * unroll.c (unroll_loop): New variable R; use for some loops.
10847         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10848         (calculate_giv_inc): Arg REGNO now unsigned.
10849         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10850         * varasm.c (assemble_variable): Clean up handling of size using
10851         host_integerp and tree_low_cst.
10852         (decode_addr_const): Use byte, not bit, position.
10853         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10854         use tree_low_cst and int_bit_position.
10855         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10856
10857 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10858
10859         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10860         (reorder_block_def): New members eff_head and eff_end.
10861         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10862         (verify_insn_chain): New function.
10863         (skip_insns_between_block): Add code to skip deleted insns.
10864         Check for note before using.
10865         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10866         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10867         Check for note before using.
10868         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10869         (fixup_reorder_chain): Restructure, clean up, defect removal.
10870         (reorder_basic_blocks): Remove last_insn and references to it.
10871         Moved insn chain verification code into a new function (see above).
10872         Delete defective code that sets last insn.
10873         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10874         all blocks.
10875
10876 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10877
10878         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10879
10880 2000-03-24  Richard Henderson  <rth@cygnus.com>
10881
10882         * tree.c (lang_safe_for_unsave): Remove.
10883         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10884         allowing for two levels of unsafeness.  Remove lang hook.
10885         * tree.h: Update declarations.
10886         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10887         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10888         Always fail sibcalls when there are pending cleanups.
10889
10890 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10891
10892         * flow.c (propagate_block): When we delete an ADDR_VEC,
10893         also delete the BARRIER following it if there is one.
10894
10895 2000-03-24  Richard Henderson  <rth@cygnus.com>
10896
10897         * builtins.c (expand_builtin_bzero): Convert `length' argument
10898         to sizetype.
10899
10900 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10901
10902         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10903         comparison if regno's are equal.
10904         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10905         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10906         (expand_call): Update caller.
10907         Avoid making a sibling call if argument size of the callee is larger
10908         than argument size of the caller.
10909         Call hard_function_value with outgoing set if in sibcall pass.
10910         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10911
10912         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10913         Change LEAF_REGISTERS from an array initializer to actual array
10914         identifier. Move static global variable into the function.
10915         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10916         sequences for leaf functions.
10917         * global.c (global_alloc): Likewise.
10918         * tm.texi (LEAF_REGISTERS): Update documentation.
10919
10920         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10921         TARGET_FLAT leaf disabling hack.
10922         (LEAF_REGISTERS): Changed from an array initializer to actual array
10923         identifier to avoid duplication and remove the above hack.
10924         (FUNCTION_OK_FOR_SIBCALL): Define.
10925         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10926         always like call attribute.
10927         (eligible_for_sibcall_delay): New attribute.
10928         (sibcall): New delay type.
10929         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10930         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10931         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10932         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10933         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10934         New functions.
10935         (output_function_epilogue): Move part of the code into
10936         output_restore_regs.
10937         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10938         TYPE_SIBCALL.
10939         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10940         prototypes.
10941
10942         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10943         until infrastructure is finished.
10944
10945 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10946
10947         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10948         (save_parm_insns): Not here.
10949
10950 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10951
10952         * builtins.c (expand_builtin_bzero): New function.
10953         (expand_builtin): Handle bzero.
10954
10955         * builtins.def: Add BUILT_IN_BZERO.
10956
10957         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10958         prototype & function for bzero.
10959
10960 2000-03-23  Michael Meissner  <meissner@redhat.com>
10961
10962         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10963         change adding TARGET_FP to the TF floating point insns, except for
10964         trunctfsf2, which generates direct calls to truncdfsf2.
10965
10966 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10967
10968         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10969         try to protect against middle-end changes that break binary
10970         compatibility.
10971         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10972
10973 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10974
10975         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10976
10977 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10978
10979         * calls.c (expand_call): If TARGET is passed by reference and
10980         is readonly, write a CLOBBER.
10981
10982 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10983
10984         * builtins.c (expand_builtin): Handle bcmp.
10985
10986         * builtins.def: Add BUILT_IN_BCMP.
10987
10988         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10989         prototype & function for bcmp.
10990
10991 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10992
10993         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10994         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10995         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10996
10997 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10998
10999         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
11000         alternative when using -fp64 -gp32.
11001
11002 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11003
11004         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
11005         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
11006         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
11007
11008         * frame.h (frame_state): Revert last change.
11009         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
11010         * libgcc2.c (throw_helper): Revert last change.
11011
11012 2000-03-22  Richard Henderson  <rth@cygnus.com>
11013
11014         * stmt.c (expand_asm_operands): Don't promote the temporary.
11015
11016 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11017
11018         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
11019         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
11020           c_get_alias_set): Likewise.
11021         * c-decl.c (duplicate_decls): Likewise.
11022         * c-typeck.c (default_conversion,build_unary_op): Likewise.
11023         * calls.c (initialize_argument_information): Likewise.
11024         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
11025         Likewise.
11026         * dwarfout.c (decl_class_context,output_type): Likewise.
11027         * expr.c (get_inner_reference): Likewise.
11028         * fold-const.c (simple_operand_p,fold): Likewise.
11029         * function.c (aggregate_value_p): Likewise.
11030         * stmt.c (expand_asm_operands): Likewise.
11031         * varasm.c (named_section): Likewise.
11032
11033 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11034
11035         Implement dwarf2 exception handling for the ARM.
11036         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
11037         (DWARF_FRAME_RETURN_COLUMN): Define.
11038         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
11039         REG_FRAME_RELATED_EXPR note.
11040         (emit_sfm): Likewise.
11041         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
11042         * dwarf2out.c (reg_save): Handle saving a register to itself.
11043         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
11044         * except.c (eh_regs): Don't use the static chain reg if it's
11045         callee-saved.
11046         * frame.h (frame_state): Add cfa_saved field.
11047         * frame.c (execute_cfa_insn): Set it.
11048         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
11049         the epilogue.
11050         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
11051         Now takes a parm.
11052         (instantiate_virtual_regs): Adjust.
11053         * tm.texi: Adjust.
11054         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11055         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11056         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
11057
11058         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
11059         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
11060
11061 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11062
11063         * builtins.def: New file.
11064
11065         * Makefile.in (TREE_H): Depend on builtins.def.
11066
11067         * builtins.c (built_in_names): Use builtins.def.
11068
11069         * tree.h (built_in_function): Likewise.
11070
11071 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
11072
11073         * tree.c (size_in_bytes): Return size_zero_node, not
11074         integer_zero_node.
11075
11076 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
11077
11078         * config/fp-bit.c (pack_d): Correct the case when a denormal
11079         is rounded up and stops being denormal.
11080
11081 2000-03-21  Richard Henderson  <rth@cygnus.com>
11082
11083         * config/alpha/alpha.c (function_arg): Check for void_type_node
11084         before using MUST_PASS_IN_STACK.
11085
11086 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
11087
11088         * regmove.c (combine_stack_adjustments_for_block): Check that
11089         the stack pointer is a valid memory address.
11090
11091 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
11092
11093         * calls.c: re-install Mar 16 emit_library_call merge.
11094
11095 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
11096
11097         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
11098         we cannot be sure that if reload_completed base register will
11099         be properly aligned.
11100
11101 2000-03-21  Richard Henderson  <rth@cygnus.com>
11102
11103         * flow.c (delete_block): Fix typo last change.
11104
11105 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
11106
11107         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
11108         not COMPLETE_TYPE_P, to check the type of the expression.
11109
11110 2000-03-21  Michael Meissner  <meissner@redhat.com>
11111
11112         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
11113         all floating point insns that just tested the macro
11114         TARGET_HAS_XFLOATING_LIBS.
11115         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
11116         used to only use the gprs.
11117
11118 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
11119
11120         * tree.h (COMPLETE_TYPE_P): New macro.
11121         (COMPLETE_OR_VOID_TYPE_P): New macro.
11122         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
11123         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
11124         * c-aux-info.c (gen_type): Use them.
11125         * c-common.c (c_expand_expr_stmt): Likewise.
11126         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
11127         grokdeclarator, grokparms, finish_struct, start_function,
11128         store_parm_decls, combine_parm_decls): Likewise.
11129         * c-parse.y (cast_expr): Likewise.
11130         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
11131         c_size_in_bytes, c_alignof, build_component_ref,
11132         build_indirect_ref, build_array_ref, convert_arguments,
11133         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
11134         * calls.c (initialize_argument_information): Likewise.
11135         * convert.c (convert_to_integer): Likewise.
11136         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
11137         * dwarfout.c (location_or_const_value_attribute,
11138         output_enumeration_type_die, output_structure_type_die,
11139         output_union_type_die, output_type): Likewise.
11140         * expr.c (safe_from_p, expand_expr): Likewise.
11141         * function.c (assign_parms): Likewise.
11142         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
11143         * tree.c (build_array_type, build_function_type,
11144         build_method_type, build_offset_type, build_complex_type): Likewise.
11145         * c-parse.c, c-parse.h: Regenerated.
11146
11147 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11148
11149         * config/c4x/rtems.h: Include config/rtems.h.
11150
11151 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
11152
11153         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
11154         decl is a FUNCTION_DECL
11155
11156 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
11157
11158         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
11159         function uses output registers.  Don't save RP for leaf functions.
11160         Do save RP even if no epilogue.
11161         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
11162         (CALL_USED_REGISTERS): Unmark in registers.
11163         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
11164         to near the middle.
11165
11166 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11167
11168         * config/rs6000/rs6000.md (bunordered): New expander.
11169         (bordered): New expander.
11170         (buneq): New expander.
11171         (bunge): New expander.
11172         (bungt): New expander.
11173         (bunle): New expander.
11174         (bunlt): New expander.
11175         (bltgt): New expander.
11176
11177         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
11178         (ccr_bit_negated_p): New function.
11179         (print_operand): For %C, generate appropriate cror for UNEQ,
11180         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
11181
11182 2000-03-20  Andreas Jaeger  <aj@suse.de>
11183
11184         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
11185         warning.
11186
11187         * tree.h (safe_for_unsave): Prototype.
11188
11189 2000-03-20  Richard Henderson  <rth@cygnus.com>
11190
11191         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
11192         (combine_stack_adjustments_for_block): Don't allow sp references
11193         in the side of a set we're not fixing up.
11194         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
11195         after life_analysis.
11196
11197 2000-03-20  Richard Henderson  <rth@cygnus.com>
11198
11199         * calls.c (expand_call): Don't bother generating tail call
11200         sequences if there are pending cleanups.  Use
11201         expand_start_target_temps/expand_end_target_temps to elide
11202         cleanups created during sibcall expansion.
11203
11204 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11205
11206         * configure.in: Set $IFS to a value if it doesn't already have one
11207         in the --enable-checking handling.
11208         * configure: Regenerate.
11209
11210 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11211
11212         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
11213         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11214         Regenerated.
11215
11216 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
11217
11218         * jump.c (delete_noop_moves): Remove code attempting to
11219         combine stack adjustments.
11220
11221 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11222
11223         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
11224         * except.c (emit_cleanup_handler): Use them.
11225         (expand_end_all_catch): Likewise.
11226         * function.c (fixup_var_refs): Likewise.
11227         (expand_function_end): Clear catch_clauses_last.
11228         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
11229         * except.h (struct eh_status): New field x_catch_clauses_last.
11230         (catch_clauses_last): New define.
11231
11232         * Makefile.in (tree.o): Depend on HASHTAB_H.
11233         * tree.c: Include hashtab.h.
11234         (struct type_hash): Remove next field.
11235         (TYPE_HASH_SIZE): Remove.
11236         (TYPE_HASH_INITIAL_SIZE): New define.
11237         (type_hash_table): Change type to htab_t.
11238         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
11239         mark_hash_entry): New functions.
11240         (init_obstacks): Allocate type hash.
11241         (type_hash_lookup): Use htab functions.
11242         (type_hash_add, mark_type_hash): Likewise.
11243         (dump_tree_statistics): Call print_type_hash_statistics.
11244
11245 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11246
11247         * rs6000/t-aix41: New file.
11248
11249         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
11250
11251 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
11252
11253         * tm.texi (Driver): Fix typos and tweak entry for
11254         INCLUDE_DEFAULTS.
11255         Move misplaced STRUCT_FORCE_BLK entry ...
11256         (Storage Layout): ... to here.
11257         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
11258
11259 2000-03-19  Richard Henderson  <rth@cygnus.com>
11260
11261         * flow.c (delete_block): Delete the addr_vec along with the block.
11262         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
11263         reference labels.
11264
11265         * fold-const.c (extract_muldiv): Apply type check for defined
11266         overflow to multiply as well as divide.
11267
11268         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
11269
11270 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11271
11272         * emit-rtl.c (remove_unncessary_notes): Check that all
11273         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
11274         associated NOTE_BLOCK.
11275         * function.h (identify_blocks): Update comments.
11276         (reorder_blocks): Declare.
11277         * function.c (identify_blocks): Don't take paramters.
11278         (reorder_blocks): Don't take parameters.
11279         * loop.h (find_loop_tree_blocks): Remove.
11280         (unroll_block_trees): Likewise.
11281         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
11282         reorder_blocks instead of unroll_block_trees.h
11283         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
11284         * stmt.c (find_loop_tree_blocks): Remove.
11285         (unroll_block_trees): Likewise.
11286         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
11287         in whole-function mode.
11288         * tree.h (reorder_blocks): Remove declaration.
11289
11290         * expr.c: Include intl.h.
11291         * Makefile.in (expr.o): Depend on intl.h.
11292
11293 2000-03-18  Richard Henderson  <rth@cygnus.com>
11294
11295         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
11296
11297 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11298
11299         * tree.h (tree_index): Remove enumerals for integer types.
11300         (integer_type_kind): New type.
11301         (integer_types): New variable.
11302         (char_type_node): Adjust.
11303         (signed_char_type_node): Likewise.
11304         (unsigned_char_type_node): Likewise.
11305         (short_integer_type_node): Likewise.
11306         (short_unsigned_type_node): Likewise.
11307         (integer_type_node): Likewise.
11308         (unsigned_type_node): Likewise.
11309         (long_integer_type_node): Likewise.
11310         (long_unsigned_type_node): Likewise.
11311         (long_long_integer_type_node): Likewise.
11312         (long_long_unsigned_type_node): Likewise.
11313         * tree.c (integer_types): New variable.
11314         (init_obstacks): Register it as a root.
11315
11316 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
11317
11318         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
11319         NEXT_INSN. Update last insn in chain.
11320
11321 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
11322
11323         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
11324         with TYPE_DECL_SUPPRESS_DEBUG set.
11325
11326 2000-03-18  Richard Henderson  <rth@cygnus.com>
11327
11328         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
11329
11330 2000-03-18  Richard Henderson  <rth@cygnus.com>
11331
11332         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
11333         care for HALF_PIC_P.
11334         (expander_call_insn_operand): Remove.
11335         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
11336         * i386.h (PREDICATE_CODES): Update.
11337         * i386.md (all call expanders): Remove predicates, remove special
11338         handling for half-pic.
11339         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
11340         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
11341         (sibcall_epilogue): New.
11342
11343 2000-03-17  Richard Henderson  <rth@cygnus.com>
11344
11345         * rtlanal.c (single_set): Reject if the parallel has anything
11346         except SET or USE or CLOBBER.
11347
11348 2000-03-17  Jeff Law  <law@cygnus.com>
11349             Richard Henderson  <rth@cygnus.com>
11350
11351         * Makefile.in (OBJS): Add sibcall.o.
11352         (sibcall.o): New.
11353         * sibcall.c: New file.
11354         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
11355         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
11356         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
11357         Emit sibcall patterns when requested.  Update all callers.
11358         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
11359         elimination seems feasable.
11360         * final.c (leaf_function_p): Sibling calls don't discount being
11361         a leaf function.
11362         * flow.c (HAVE_sibcall_epilogue): Provide default.
11363         (find_basic_blocks_1): Sibling calls don't throw.
11364         (make_edges): Make edge from sibling call to EXIT.
11365         (propagate_block): Don't remove sibcall_epilogue insns.
11366         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
11367         (sibcall_epilogue): New.
11368         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
11369         (identify_blocks_1): Likewise.  Break out from ...
11370         (identify_blocks): ... here.
11371         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
11372         (reorder_blocks): ... here.
11373         (init_function_for_compilation): Zap prologue/epilogue as varrays.
11374         (record_insns): Extend a varray instead of mallocing new memory.
11375         (contains): Read a varray not array of ints.
11376         (sibcall_epilogue_contains): New.
11377         (thread_prologue_and_epilogue_insns): Emit and record
11378         sibcall_epilogue patterns.
11379         (init_function_once): Allocate prologue/epilogue varrays.
11380         * genflags.c (gen_insn): Treat sibcall patterns as calls.
11381         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
11382         Broken out from ...
11383         (save_for_inline_nocopy): ... here.
11384         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
11385         Broken out from ...
11386         (expand_inline_function): ... here.
11387         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
11388         (subst_constants): Handle 'n' formats.
11389         * jump.c (jump_optimize_minimal): New.
11390         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
11391         optimizations if it's set.
11392         * rtl.c (copy_rtx): Do copy jump & call for insns.
11393         * rtl.h (struct rtx_def): Document use of jump and call for insns.
11394         (SIBLING_CALL_P): New.
11395         (sibcall_use_t): New.
11396         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
11397         Invoke optimize_sibling_and_tail_recursive_calls.
11398         * tree.c (lang_safe_for_unsave): New.
11399         (safe_for_unsave): New.
11400         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
11401
11402         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
11403         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
11404         (*sibcall_osf_1, *sibcall_value_osf_1): New.
11405
11406 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11407
11408         * objc/objc-act.c (encode_method_prototype): Pass types, not
11409         PARM_DECLs, to int_size_in_bytes.
11410
11411 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11412
11413         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11414
11415         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11416         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11417
11418 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11419
11420         * Clean up usages of TREE_INT_CST_LOW.
11421         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11422         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11423         Regenerated.
11424         * c-tree.h (min_precision): Move declaration to here.
11425         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11426         (build_unary_op, add_pending_init): Use bit_position.
11427         (pending_init_member, process_init_element): Likewise.
11428         (really_start_incremental_init, push_init_level, pop_init_level):
11429         Don't make copies of nodes or modify them in place, use consistent
11430         types when tracking positions, and use tree routines computations.
11431         (set_init_index, output_init_element): Likewise.
11432         (output_pending_init_elements, process_init_element): Likewise.
11433         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11434         tree_low_cst and int_bit_position; also minor cleanup.
11435         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11436         (print_cst_octal): Precision is unsigned.
11437         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11438         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11439         (simple_type_align_in_bits): Result is unsigned int.
11440         Use tree_int_low_cst and host_integerp.
11441         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11442         (field_byte_offset): Result is HOST_WIDE_INT.
11443         Change types of internal variables so alignments are unsigned int,
11444         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11445         Use host_integerp, tree_low_cst, and int_bit_position.
11446         (add_bit_offset_attribute): Likewise.
11447         (add_data_member_location_attribute): Use tree_cst_low.
11448         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11449         (add_bit_size_attribute): Use tree_low_cst.
11450         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11451         * dwarfout.c: Similar changes to dwarf2out.c.
11452         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11453         * genoutput.c (n_occurences): Return -1 for null string.
11454         (strip_whitespace): Accept null string and make into function.
11455         (scan_operands): Reflect above changes.
11456         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11457         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11458         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11459         * tree.c (int_size_in_bytes): Check for too big to represent.
11460         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11461         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11462         New declarations.
11463         (min_precision): Delete from here.
11464         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11465         and int_bit_position.
11466         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11467         (encode_method_def): Likewise.
11468         (build_ivar_list_initializer): Use int_bit_position.
11469         (generate_shared_structures): Convert size.
11470         (encode_type, encode_complete_bitfield): Use integer_zerop.
11471         (encode_bitfield): Use tree_low_cst and int_bit_position.
11472
11473 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11474
11475         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11476
11477 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11478
11479         * call.c (special_function_p): It is only malloc if it returns
11480         Pmode.
11481
11482 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11483
11484         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11485         (C33_FLAG, TARGET_C3X): Add macros.
11486         (TARGET_SWITCHES): Add -m33 option.
11487         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11488
11489 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11490
11491         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11492         (PARALLEL_PACK_FLAG): Delete.
11493         (TARGET_SWITCHES): Update.
11494         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11495
11496 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11497
11498         * fold-const.c (fold): Fix a few cases when the returned result
11499         is not of the same type as the input.
11500
11501 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11502
11503         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11504         warning.
11505
11506 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11507
11508         * libgcc2.h: Move prototypes above macros with the same name.
11509         Wrap some function prototypes in the conditional which indicates
11510         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11511
11512 2000-03-16  Richard Henderson  <rth@cygnus.com>
11513
11514         * calls.c: Revert last two changes.
11515
11516 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11517
11518         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11519         has exponent 0 is a zero.
11520
11521         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11522         HASH may already be nonzero.  Add code/mode into hash value
11523         immediately after repeat label.
11524         (cselib_lookup): Don't leave the hash table in an inconsistent
11525         state before a hash lookup operation.
11526
11527 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11528
11529         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11530         by TARGET_[HQ]IMODE_MATH.
11531         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11532         x86_promote_qi_regs): Declare.
11533         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11534         TARGET_PROMOTE_QI_REGS): New macros.
11535         (PROMOTE_MODE): New macro.
11536         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11537         x86_promote_qi_regs): New global variables.
11538
11539 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11540
11541         * calls.c (emit_library_call_value_1): Break out from ...; handle
11542         VOIDmode function calls too.
11543         (emit_library_call_value): ... here.
11544         (emit_library_call): Implement by calling emit_library_call_value_1.
11545
11546 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11547
11548         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11549         Update arg_space_so_far on stack adjustments.
11550         (emit_library_call, emit_library_call_value): Likewise; take into
11551         account arg_space_so_far and pending_stack_adjust when calculcating
11552         the boundary.
11553
11554 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11555
11556         * flow.c: Move all basic block reordering code into its own file.
11557         (create_basic_block): Externalize.
11558         * bb-reorder.c: New file. Copy all basic block reordering code from
11559         flow.c to this file.
11560         (reorder_basic_blocks): Fix fencepost error in for-loop.
11561         (reorder_basic_blocks): Remove braces from single statement for-loops.
11562         * basic-block.h: Add declaration for create_basic_block.
11563         * Makefile.in: Add rules for bb-reorder.o.
11564
11565 2000-03-16  Neil Booth  <NeilB@earthling.net>
11566
11567         * cppinit.c (handle_option):  Implement #unassert directive
11568         as -A- command line option.
11569         (print_help):  Update.
11570         * cpptexi.c:  Update.
11571
11572 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11573
11574         * md.texi (Standard Names): Document `jump'.
11575
11576 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11577
11578         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11579         gotos.
11580
11581 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11582
11583         Merge changes from newppc-branch onto trunk.
11584
11585         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11586
11587         * rs6000.c (toc_hash_table): Update for new hash table functions.
11588         (toc_hash_function): Likewise.
11589         (toc_hash_eq): Likewise.
11590         (toc_hash_mark_entry): Likewise.
11591         (toc_hash_mark_table): Likewise.
11592         (output_toc): Likewise.
11593         (rs6000_add_gc_roots): Likewise.
11594
11595         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11596
11597         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11598         (AR_FLAGS_FOR_TARGET): here.  New macro.
11599
11600         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11601
11602         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11603         fpmem_operand) Delete.
11604         (xer_operand) New.
11605         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11606         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11607         (rs6000_save_machine_status, rs6000_restore_machine_status,
11608         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11609         references to above variables.
11610         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11611         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11612         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11613         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11614         (XER_REGNO_P, XER_REGNO): New.
11615         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11616         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11617         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11618         XER_REGNO_P.
11619         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11620         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11621         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11622
11623         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11624
11625         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11626         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11627         * rs6000.h: from here.
11628
11629         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11630         (rs6000_select_rtx_section): Likewise.
11631         (rs6000_encode_section_info): Likewise.
11632         (sdata_section): Likewise.
11633         (sdata2_section): Likewise.
11634         (sbss_section): Likewise.
11635         * sysv4.h (rs6000_select_section): Delete prototype.
11636         (rs6000_select_rtx_section): Likewise.
11637         (rs6000_encode_section_info): Likewise.
11638         (sdata_section): Likewise.
11639         (sdata2_section): Likewise.
11640         (sbss_section): Likewise.
11641         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11642
11643         * sysv4.h: Delete various unnecessary #undef's and put a comment
11644         on the remaining ones.
11645         Change various comments according to coding standard.
11646
11647         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11648
11649         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11650         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11651         (CR0_REGNO_P) Remove.
11652         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11653         setup_incoming_varargs, mtcrf_operation, print_operand,
11654         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11655         Use the above macros.
11656
11657         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11658
11659         * config/rs6000/rs6000.md: Added a new alternative for each
11660         pattern that had a 'x' alternative but no 'y' alternative.
11661         Added a new split for each of the above patterns.
11662
11663         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11664
11665         * aix41.h (ASM_CPU_SPEC): Delete.
11666         (CPP_CPU_SPEC): Delete.
11667
11668         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11669         (ASM_OUTPUT_LABEL): Define.
11670         (ASM_GLOBALIZE_LABEL): Define.
11671         (STRIP_NAME_ENCODING): Define.
11672         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11673         (STRIP_NAME_ENCODING): Don't define.
11674         (ASM_OUTPUT_LABEL): Don't define.
11675         (ASM_GLOBALIZE_LABEL): Don't define.
11676         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11677         names, and ASM_OUTPUT_LABEL to output labels, rather than
11678         asm_fprintf.
11679         (ASM_OUTPUT_LABEL): Define.
11680         (ASM_OUTPUT_INT): Use assemble_name.
11681         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11682         (STRIP_NAME_ENCODING): Don't undefine first.
11683         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11684         ELF.
11685         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11686         specified with 'asm' even with -fleading-underscore.
11687         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11688         (output_epilog): Likewise.
11689         (output_toc): Likewise.
11690         * tramp.asm: Handle -fleading-underscore correctly.
11691
11692         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11693         -mminimal-toc.
11694         (nonlocal_goto_receiver): Delete.
11695         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11696
11697         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11698         (SET_ASM_OP): Define.
11699         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11700
11701         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11702         (ASM_LONG): Define.
11703
11704         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11705         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11706
11707         * rs6000.h: Add 'u' to more constants.
11708
11709         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11710
11711         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11712
11713         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11714
11715         * rs6000.c (reg_or_u_cint_operand): New function.
11716         (logical_operand): Handle 64-bit hosts.
11717         (logical_u_operand): New function.
11718         (non_logical_cint_operand): Handle 64-bit hosts.
11719         (non_logical_u_cint_operand): New function.
11720         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11721         (PREDICATE_CODES): Define new functions.
11722         * rs6000-protos.h: Declare new functions.
11723         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11724         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11725         CONST_DOUBLE for 32-bit values.
11726         (scc insns): Generate DImode compares.
11727         (mfcr insns): Create DImode versions.
11728         (sge matchers): New patterns.
11729
11730         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11731
11732         * rs6000.md: Correct instructions length attributes and
11733         constraints on unsigned compare instructions.
11734         (*ne0): Disable for PowerPC64.
11735
11736         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11737
11738         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11739         quantity, fix profile1.C test failure under -fPIC.
11740
11741         * rs6000.c: Add 'u' to many constants to suppress warnings.
11742         (constant_pool_expr_1): Make static.
11743         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11744         * rs6000.h: Add 'u' to many constants to suppress warnings.
11745
11746         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11747         for the start of the TOC, instead of LCTOC..0.
11748         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11749         of the TOC.
11750         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11751         (load_toc_aix_di): Use LCTOC..1.
11752
11753         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11754         * rs6000.c (rs6000_legitimize_address): New function from
11755         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11756         symbols in the constant pool that really are TOC references.
11757         (print_operand_address): For ELF, write TOC offsets under
11758         -fPIC as subtractions in the insn.
11759         (output_toc): For ELF, define symbols in TOC as normal labels,
11760         to match RTL.
11761         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11762         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11763         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11764         * rs6000.md (movsi): Only use create_TOC_reference on
11765         symbols in the constant pool that really are TOC references.
11766
11767         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11768         * rs6000.c (rs6000_reorg): Delete.
11769         * rs6000-protos.h (rs6000_reorg): Delete.
11770
11771         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11772
11773         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11774
11775         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11776         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11777         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11778         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11779         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11780         rs6000_aix_emit_builtin_unwind_init.
11781         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11782         rs6000_emit_eh_toc_restore on AIX.
11783         (return_eh_si): Use r2.
11784         (return_eh_di): Use r2.
11785
11786         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11787         since we're breaking binary compatibility anyway.
11788
11789         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11790
11791         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11792         constant_pool_expr_p): Declare them.
11793         (constant_pool_expr_p): Declare it.
11794         * config/rs6000/rs6000.c (toc_label_name): Define.
11795         (rs6000_override_options): Set toc_label_name.
11796         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11797         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11798         uses_TOC): New functions.
11799         (print_operand): Delete old '*' case.
11800         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11801         and strip off rtl for TOC before calling output_addr_const.
11802         (rs6000_emit_load_toc_table): Use toc_label_name.
11803         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11804         the default.
11805         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11806         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11807         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11808         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11809         into explicit TOC_REGISTER offsets.
11810         (TOC_REGISTER): New macro.
11811         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11812         TARGET_TOC to reference TOC_REGISTER.
11813         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11814         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11815         uses_TOC before emitting label references.
11816
11817         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11818
11819         * rs6000.md (stack_tie): Fix warning.
11820
11821         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11822         to handle -fleading-underscore.
11823         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11824         (USER_LABEL_PREFIX): New macro.
11825         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11826         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11827         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11828         call-linux can use the same multilibs.
11829         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11830         and call-linux multilibs.  Do multilib with -fleading-underscore.
11831         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11832         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11833         to call-aix.
11834
11835         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11836         have MASK_SOFT_FLOAT set.
11837         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11838         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11839         CPP_FLOAT_DEFAULT_SPEC.
11840
11841         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11842         * rs6000.md: Whitespace change.
11843         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11844         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11845
11846         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11847
11848         * rs6000.md (eh_epilogue): New expander.
11849         (eh_reg_restore): New expand/split/insn combination.
11850         (return_eh_si): New insn.
11851         (return_eh_di): New insn.
11852
11853         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11854         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11855         * eabi-ctors.c (__do_global_ctors): Register this object's
11856         frame.  Clean up.  Call atexit() after the constructors.
11857         (__do_global_dtors): Deregister this object's frame.  Clean up.
11858         Allow for recursive calls to exit().
11859         * rs6000.c (fixuplabelno): New variable.
11860         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11861         TARGET_RELOCATABLE, it slows down exec() under linux.
11862         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11863
11864         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11865         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11866         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11867         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11868         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11869         (ASM_OUTPUT_DWARF_ADDR): New macro.
11870         (ASM_OUTPUT_DWARF_DATA4): New macro.
11871         (ASM_OUTPUT_DWARF_DATA2): New macro.
11872         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11873         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11874         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11875
11876         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11877
11878         * rs6000.c (rs6000_sr_alias_set): New variable.
11879         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11880         (rs6000_emit_stack_tie): New function.
11881         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11882         in a way that dwarf2out can understand.
11883         (rs6000_frame_related): New function.
11884         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11885         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11886         Use rs6000_emit_stack_tie when needed.
11887         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11888         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11889         * rs6000.md (stack_tie): New insn.
11890         (return_internal_si): Allow return value to be in the count
11891         register.
11892         (return_internal_di): Likewise.
11893
11894         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11895
11896         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11897
11898         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11899
11900         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11901
11902         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11903
11904         * rs6000.md (stmw): Use the right POWER opcode.
11905         (lmw): Likewise.
11906
11907         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11908
11909         * rs6000-protos.h: New file.
11910
11911         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11912
11913         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11914         warnings.
11915
11916         * sysv4.h: Likewise.
11917
11918         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11919
11920         * ../../configure.in: Delete powerpcle-*-winnt*
11921         and powerpcle-*-pe|powerpcle-*-cygwin*.
11922         * ../../configure: Regenerated.
11923         * cygwin.h: Delete.
11924         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11925         (TARGET_WINDOWS_NT): Delete.
11926         (ABI_NT): Delete.
11927         (CALL_NT_DLLIMPORT): Delete.
11928         Delete NT-specific code.
11929         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11930         * win-nt.h: Delete.
11931         * t-winnt: Delete.
11932         * nt-ci.asm: Delete.
11933         * nt-cn.asm: Delete.
11934         * ntstack.asm: Delete.
11935
11936         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11937
11938         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11939         (ASM_FILE_START): Likewise.
11940         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11941         (ASM_OUTPUT_LABELREF): Likewise.
11942         (ASM_OUTPUT_SKIP): Likewise.
11943         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11944         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11945         (ASM_OUTPUT_CASE_LABEL): Likewise.
11946         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11947         (ASM_OUTPUT_ASCII): Likewise.
11948
11949         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11950
11951         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11952         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11953         increment rs6000_pic_labelno here.
11954         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11955         and increment rs6000_pic_labelno here.
11956
11957         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11958
11959         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11960         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11961         allocation knows (reg) is dead before the insn.
11962
11963         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11964
11965         * rs6000.md (movsi_to_cr): Correct typo in output template.
11966
11967         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11968
11969         * rs6000.c (rs6000_pic_labelno): Always define.
11970         (rs6000_pic_func_labelno): Delete.
11971         (lmw_operation): Check for a zero base register,
11972         which doesn't mean what we want.
11973         (stmw_operation): New function.
11974         (print_operand): Define new 'l' modifier.
11975         (rs6000_stack_info): We must save all 64 bits of the registers
11976         if TARGET_POWERPC64.
11977         (rs6000_output_load_toc_table): Delete.
11978         (rs6000_emit_load_toc_table): New function.
11979         (rs6000_allocate_stack_space): Delete.
11980         (rs6000_emit_allocate_stack): New function.
11981         (rs6000_emit_prologue): New function.
11982         (output_prolog): Use rs6000_emit_prologue.
11983         (rs6000_emit_epilogue): Change a few variable names to be
11984         more accurate.  Restore all 64 bits of the registers if
11985         TARGET_POWERPC64.  Only restore the FP registers which were used
11986         if they are being saved/restored one-at-a-time.
11987         (output_mi_thunk): Delete inefficient code generation.
11988         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11989         * rs6000.h: Declare rs6000_emit_load_toc_table,
11990         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11991         rs6000_output_load_toc_table.
11992         * rs6000.md (elf_high): Allow register 0, but discourage it
11993         heavily.
11994         (elf_low): Support loading into register 0.
11995         (load_toc_aix_si): New pattern.
11996         (load_toc_aix_di): New pattern.
11997         (load_toc_v4_pic_si): New pattern.
11998         (load_toc_v4_pic_di): New pattern.
11999         (load_toc_v4_PIC_1): New pattern.
12000         (load_toc_v4_PIC_1b): New pattern.
12001         (load_toc_v4_PIC_2): New pattern.
12002         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
12003         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
12004         (prologue): New expander.
12005         (movesi_from_cr): New pattern.
12006         (stmw): New pattern.
12007         (save_fpregs_si): New pattern.
12008         (save_fpregs_di): New pattern.
12009
12010         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12011
12012         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
12013         (movdi): Likewise.
12014         (movhi): Likewise.
12015         (movqi): Likewise.
12016
12017         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12018
12019         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
12020         at present.
12021         (movsi_got_internal): Likewise.
12022         (movsi_got_internal+1): Likewise.
12023         (set_sp): 'unspec 7' does a SImode clobber.
12024
12025         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12026
12027         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
12028         allocate a stack temporary.
12029         (floatsidf2_internal): Likewise.
12030         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
12031         with unspec.
12032         (floatunssidf2): Don't use the fpmem "register", just
12033         allocate a stack temporary.
12034         (floatunssidf2_internal): Likewise.
12035         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
12036         with unspec.
12037         (floatsidf2_loadaddr): Delete.
12038         (floatsidf2_store1): Delete.
12039         (floatsidf2_store2): Delete.
12040         (floatsidf2_load): Delete.
12041         (fix_truncdfsi2): Don't use the fpmem "register", just
12042         allocate a stack temporary.
12043         (fix_truncdfsi2_internal_si): Delete.
12044         (fix_truncdfsi2_internal_di): Delete.
12045         (fix_truncdfsi2_internal): New insn.
12046         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
12047         (fix_truncdfsi2_store): Delete.
12048         (fix_truncdfsi2_load): Delete.
12049         (fctiwz): Produce gen_fctiwz.
12050
12051         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
12052
12053         * eabi.h (INVOKE__main): Define.
12054         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
12055         specially.
12056         (rs6000_emit_prologue): Likewise.
12057         * rs6000.h (struct rs6000_stack): Don't keep track of whether
12058         this is the main program.
12059
12060         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12061
12062         * rs6000.c (rs6000_va_arg): Delete some unused variables.
12063
12064         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12065
12066         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
12067         goes after the argument.
12068
12069         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12070
12071         * rs6000.md: Document 'unspec' values used.
12072         (epilogue): New expander.
12073         (movesi_to_cr_one): New expander.
12074         (movesi_to_cr and following): New pattern.
12075         (lmw): New pattern.
12076         (return_internal_si): New pattern.
12077         (return_internal_di): New pattern.
12078         (return_and_restore_fpregs_si): New pattern.
12079         (return_and_restore_fpregs_di): New pattern.
12080         * rs6000.h: Declare new functions.
12081         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
12082         rather than rs6000_calls_p.
12083         (rs6000_makes_calls): Delete.
12084         (lmw_operation): New function.
12085         (mtcrf_operation): New function.
12086         (rs6000_emit_epilogue): New function.
12087         (output_epilog): Call rs6000_emit_epilogue and final if
12088         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
12089
12090         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12091
12092         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
12093         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
12094         * aix.h (SUBTARGET_SWITCHES): Document switches.
12095         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
12096         sched-prolog and sched-epilog the same.  Document all the
12097         switches.
12098         (TARGET_OPTIONS): No longer allow -mdebug-.
12099
12100         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12101
12102         * rs6000.h (ASM_FILE_END): Move to aix.h.
12103         (EXTRA_SECTIONS): Move to aix.h.
12104         (READONLY_DATA_SECTION): Move to aix.h.
12105         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
12106         (SELECT_SECTION): Move to aix.h.
12107         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
12108         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
12109         (LINK_REGISTER_REGNUM): New definition.
12110         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
12111         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
12112         AIX and SVR4.
12113         * sysv4.h: Delete the code between the inclusion of rs6000.h
12114         and svr4.h.
12115         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
12116         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
12117         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
12118         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
12119         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
12120         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
12121         (fix_truncdfsi2_internal_di): New pattern.
12122         (fix_truncdfsi2_store): The second arg here is Pmode too.
12123         (fix_truncdfsi2_load): The second arg here is Pmode too.
12124         (tablejumpdi): Now that switch tables hold only SImode values,
12125         gcc needs to know how to add them to the pc which is DImode.
12126         * rs6000.c (rs6000_stack_info): Use symbolic name for
12127         LINK_REGISTER_REGNUM.
12128         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
12129         (output_toc): Delete unused variables s1 and s2.
12130         (output_ascii): Use fputs not fprintf on a variable string.
12131
12132         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
12133
12134         * rs6000.c (processor_target_table): Add power3 as alias for 630.
12135         * aix43.h: Revert Aug 2 change.
12136         (HAS_INIT_SECTION): Define, not visible yet.
12137         (LD_INIT_SWITCH): Define, not visible yet.
12138         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
12139
12140         2000-01-04  Joel Sherrill (joel@OARcorp.com>
12141
12142         * config/rs6000/rtems.h: Include config/rtems.h.
12143
12144         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
12145
12146         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
12147         (SLOW_UNALIGNED_ACCESS): Define.
12148         (CASE_VECTOR_MODE): Always use 32-bit offsets.
12149         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
12150         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
12151         (toc_section): Likewise and .toc pseudo-op.
12152         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
12153         64-bit mode.
12154         (TEXT_SECTION_ASM_OP): Likewise.
12155         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
12156         32-bit offsets.
12157
12158         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
12159
12160         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
12161         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
12162         compiling libgcc2.
12163
12164         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12165
12166         * rs6000.h: Move more stuff from here...
12167         * aix.h: to here.
12168         * sysv4.h: Cleanup accordingly.
12169         * netware.h: Likewise
12170
12171         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12172
12173         * rs6000.h: Continue cleanup.
12174         * aix.h: Likewise.
12175         * lynx.h: Likewise.
12176         * netware.h: Likewise.
12177         * sol2.h: Likewise.
12178         * sysv4.h: Likewise.
12179         * win-nt.h: Likewise.
12180
12181         * rs6000.h (TARGET_SWITCHES): Add descriptions.
12182         (TARGET_OPTIONS): Likewise.
12183
12184         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
12185         (SUBTARGET_OPTIONS): Likewise.
12186
12187         * rs6000.md: Fix compile time warnings.
12188
12189         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12190
12191         vxworks patches from the Cygnus tree originally by
12192         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
12193         <vmakarov@cygnus.com>.
12194         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
12195         (ENDFILE_SPEC): Likewise.
12196         (LIB_VXWORKS_SPEC): New macro.
12197         (STARTFILE_VXWORKS_SPEC): New macro.
12198         (ENDFILE_VXWORKS_SPEC): New macro.
12199         (LINK_START_VXWORKS_SPEC): New macro.
12200         (LINK_OS_VXWORKS_SPEC): New macro.
12201         (CPP_OS_VXWORKS_SPEC): New macro.
12202         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
12203         * vxppc.h: Rewrite to use proper configuration method.
12204         * vxppcle.h: New file.
12205         * ../../configure.in: Add powerpcle-wrs-vxworks*.
12206         * ../../configure: Rebuilt.
12207
12208         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12209
12210         Lots of changes to rs6000.h, sysv4.h, aix.h,
12211         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
12212         with the aim that rs6000.h is the first header
12213         included and the others override it.
12214         * aix.h: New file.
12215
12216         * x-aix41-gld: Remove.
12217         * x-aix43: Remove.
12218         * x-aix41: Remove target-specific switches, and don't specify
12219         -Wl,-bbigtoc as we don't need it any more.
12220         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
12221         Use t-aix43 for AIX 4.3 and above.
12222         * ../../configure: Regenerated.
12223
12224         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
12225         options, that don't do anything yet.
12226         (MASK_SCHED_PROLOG): New macro.
12227         (MASK_SCHED_EPILOG): New macro.
12228         (TARGET_SCHED_PROLOG): New macro.
12229         (TARGET_SCHED_EPILOG): New macro.
12230
12231         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12232
12233         * rs6000.c: Correct comment, the `minimal' TOCs are actually
12234         one per translation unit, not one per function.
12235         (output_toc): Also do duplicate constant elimination
12236         for per-translation-unit TOCs.
12237
12238         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
12239         a comment explaining _exactly_ when this pattern gets used.
12240         (builtin_setjmp_receiver): New pattern for better clarity.
12241         (init_v4_pic): Move it into a section dealing with TOC registers.
12242
12243         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
12244
12245         * rs6000.c (toc_hash_table): New variable.
12246         (rs6000_hash_constant): New function.
12247         (toc_hash_function): New function.
12248         (toc_hash_eq): New function.
12249         (toc_hash_mark_entry): New function.
12250         (toc_hash_mark_table): New function.
12251         (output_toc): Don't output duplicate TOC entries in
12252         a single file.
12253         (rs6000_add_gc_roots): Add the hash table as a GC root.
12254         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
12255         where they clearly shouldn't be.  This may need to be fixed
12256         later when there is a GNU ar for AIX.
12257         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
12258         Don't define BOOT_LDFLAGS as it is now not necessary.
12259
12260         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
12261
12262         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
12263         for va_list on AIX.  Use unsigned_char_type_node rather than
12264         constructing our own version on svr4.
12265
12266         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
12267
12268         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
12269         since patently it's not.
12270
12271         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
12272
12273         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
12274         define_expand/define_insn pair, and handle restore of the
12275         SVR4 -fpic register.
12276
12277 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
12278
12279         * acconfig.h (HAVE_GAS_WEAK): New define.
12280         * configure.in (assembler weak support): Check for .weak support.
12281         * config.in, configure: Rebuilt.
12282         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
12283         HAVE_GAS_WEAK is defined.
12284
12285 2000-03-15  Nick Clifton  <nickc@cygnus.com>
12286
12287         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
12288         asm_fprintf().
12289
12290 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
12291
12292         * cppfiles.c (open_include_file): New function.
12293         (find_include_file, cpp_read_file): Use it.
12294
12295 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
12296
12297         * cpphash.c (dump_hash_helper): Take the slot, not the element.
12298
12299 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
12300
12301         * flow.c (verify_flow_info): Check for unconditional return.
12302
12303 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
12304
12305         * config/ia64/ia64.md (restore_stack_nonlocal): New.
12306         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
12307         (__ia64_restore_stack_nonlocal): New.
12308         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
12309
12310 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12311
12312         * cpphash.c (collect_formal_parameters): Do not complain about
12313         parameter names that just start with `__VA_ARGS__'.
12314
12315 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
12316
12317         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
12318         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
12319         * i386.c (pentiumpro_cost): Set mul cost to 4.
12320         (x86_use_movx): Set for PPro.
12321
12322 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
12323
12324         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
12325         STACK_BOUNDARY for empty frames now.
12326
12327 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
12328
12329         * stor-layout.c (layout_union): Remove.
12330         (layout_union_field): New function, split out from layout_union.
12331         (finish_union_layout): Likewise.
12332         (layout_field): Handle unions by calling layout_union_field.
12333         (finish_record_layout): Handle unions.
12334         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
12335         QUAL_UNION_TYPE handling.
12336
12337 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
12338
12339         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
12340         end of basic block is jump_insn, not barrier; use create_basic_block
12341         instead of creating basic block by hand.
12342
12343 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
12344
12345         * flow.c (reorder_basic_blocks): Account for barriers when writing
12346         over NEXT_INSN (last_bb->end).
12347         (verify_flow_info): Add check for missing barriers.
12348
12349 2000-03-14  Greg McGary  <gkm@gnu.org>
12350
12351         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
12352         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
12353         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
12354         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
12355         __unbounded, __unbounded__): New keywords.
12356         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
12357         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
12358         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
12359
12360 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12361
12362         * cselib.h: New file.
12363         * alias.c: Include "cselib.h".
12364         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
12365         MEMs as two new arguments.
12366         (get_addr): New static function.
12367         (find_base_term): Handle VALUEs.
12368         (memrefs_conflict_p): Likewise.
12369         (true_dependence): Call get_addr on the addresses.
12370         Call fixed_scalar_and_varying_struct_p with addresses that have been
12371         passed through get_addr and canon_rtx.
12372         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
12373         with true_dependence.
12374         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
12375         * loop.c: Include "cselib.h".
12376         (load_mems): Process extended basic block that enters the loop with
12377         cselib.  Use that information to change initialization of the shadow
12378         register so that a constant equivalence is seen by later passes.
12379         * reload1.c: Include "cselib.h".
12380         (reload_cse_invalidate_regno): Delete function.
12381         (reload_cse_mem_conflict_p): Likewise.
12382         (reload_cse_invalidate_mem): Likewise.
12383         (reload_cse_invalidate_rtx): Likewise.
12384         (reload_cse_regno_equal_p): Likewise.
12385         (reload_cse_check_clobber): Likewise.
12386         (reload_cse_record_set): Likewise.
12387         (reg_values): Delete static variable.
12388         (invalidate_regno_rtx): Likewise.
12389         (reload_cse_delete_noop_set): New static function.
12390         (reload_cse_simplify): New static function, broken out of
12391         reload_cse_regs_1.
12392         (reload_cse_noop_set_p): Delete unused argument INSN.
12393         Just call rtx_equal_for_cselib_p on set source and destination.
12394         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
12395         reload_cse_delete_noop_set.  Delete code to keep track of values; use
12396         cselib functions instead.  Delete code to push/pop obstacks.
12397         (reload_cse_simplify_set): Use cselib to find equivalent values.
12398         Delete code to push/pop obstacks.
12399         (reload_cse_simplify_operands): Likewise.
12400         * rtl.def (VALUE): New rtx code.
12401         * rtl.h (union rtunion_def): New elt rt_cselib.
12402         (X0CSELIB, CSELIB_VAL_PTR): New macros.
12403         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
12404         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
12405         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
12406         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12407         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12408         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12409         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12410         cselib_record_set, cselib_record_sets): New static functions.
12411         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12412         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12413         references_value_p): New functions.
12414         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12415         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12416         n_useless_values, reg_values, callmem, cselib_obstack,
12417         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12418         New static variables.
12419         * varray.h (union varray_data_tag): New elt te.
12420         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12421         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12422         dependencies.
12423
12424 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12425
12426         * gcc.c (do_spec_1): Catch the case where %* is used in a
12427         substitution pattern, but it has not been initialised.
12428         Issue a meaningful error message if an unrecognised operator
12429         is encountered in a spec string.
12430
12431 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12432
12433         * function.c (prepare_function_start): Correctly initialize
12434         cfun->stack_alignment_needed.
12435
12436 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12437
12438         * cppfiles.c (find_include_file): Don't assume nshort is a
12439         substring of name.
12440
12441 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12442
12443         * configure.in (hppa configurations): Add pa32-regs.h to the
12444         list of tm files as appropriate.
12445         * configure: Rebuilt.
12446         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12447         register numbering.
12448         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12449         (fmpyaddoperands, fmpysuboperands): Likewise.
12450         * pa.h: Remove various definitions which depend on knowing
12451         how registers are numbered.
12452         * pa32-regs.h: New file with PA32 register numbering specific
12453         definitions.
12454
12455 2000-03-14  Richard Henderson  <rth@cygnus.com>
12456
12457         * regmove.c (combine_stack_adjustments): New.
12458         (stack_memref_p, single_set_for_csa): New.
12459         (free_csa_memlist, record_one_stack_memref): New.
12460         (try_apply_stack_adjustment): New.
12461         (combine_stack_adjustments_for_block): New.
12462         * rtl.h (combine_stack_adjustments): Declare.
12463         * toplev.c (rest_of_compilation): Call it.
12464
12465         * i386.md: Revert 2000-01-16 change.
12466
12467 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12468
12469         * gccbug.in: Add web category, gcc specific classes.
12470
12471 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12472
12473         * stor-layout.c (finalize_record_size): Fix typo.
12474
12475 2000-03-14  Stan Shebs  <shebs@apple.com>
12476
12477         * c-typeck.c (c_alignof): Error on incomplete types.
12478         * extend.texi (Alignment): Document this.
12479
12480 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12481
12482         * cppfiles.c: Include mkdeps.h.
12483         (find_include_file, read_include_file): Remove _cpp_ prefix
12484         from name, make static.
12485         (_cpp_execute_include): New function, broken out of
12486         do_include.
12487
12488         * cpplib.c: Don't include mkdeps.h.
12489         (struct directive): Remove type field. Reorder entries.  The
12490         function takes only one argument.
12491         (struct if_stack): Make type field an int.
12492         (directive_table): Rename to dtable.  Generate it, the
12493         prototypes of the directive handlers, and the enum for the
12494         directive numbers, from a template macro.
12495         (do_ifndef, do_include_next, do_import): New functions.
12496         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12497         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12498         do_ident, do_assert, do_unassert, do_sccs): Take only one
12499         argument.
12500         (do_sccs): Define always, but alter behavior based on
12501         SCCS_DIRECTIVE.
12502         (_cpp_handle_directive, consider_directive_while_skipping):
12503         Restructure for new directive table layout.
12504
12505         (pass_thru_directive): Take a directive number, not a pointer
12506         to a struct directive.
12507         (parse_include): New function, broken out of do_include.
12508         (do_include, do_import, do_include_next): Use parse_include
12509         and _cpp_execute_include.
12510         (do_elif, do_else): Test for T_ELSE specifically when checking
12511         for #elif/#else after #else.
12512         (parse_ifdef): New function, broken out of do_ifdef.
12513         (validate_else): Expect a name arg without a leading #.
12514         (if_directive_name): Delete.
12515         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12516         directive handlers with only one argument.
12517
12518         * cpphash.h: Update prototypes.
12519         (enum node_type): Remove entries for directives.
12520         * Makefile.in: Update dependencies.
12521
12522         * cpphash.c (dump_hash_helper): Only dump nodes of type
12523         T_MACRO.  Emit a newline after each definition.
12524
12525 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12526
12527         * gccbug.in: New file.
12528         * configure.in (all_outputs): Add gccbug.
12529         * Makefile.in (install-common): Install gccbug.
12530         (GCCBUG_INSTALL_NAME): New variable.
12531         * configure: Rebuilt.
12532
12533 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12534
12535         * function.c (put_var_into_stack): Use type_for_mode to calculate
12536         part_type.  Use MEM_SET_IN_STRUCT_P.
12537         * expr.c (store_field): Handle CONCAT.
12538         (store_constructor): Use fields_length.
12539         * tree.c (fields_length): New fn.
12540         * tree.h: Declare it.
12541
12542 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12543
12544         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12545         (cpplex.o): New target.
12546         * po/POTFILES.in: Add cpplex.c.
12547
12548         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12549         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12550         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12551         skip_block_comment, skip_line_comment, skip_comment,
12552         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12553         _cpp_parse_name, skip_string, parse_string,
12554         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12555         _cpp_get_directive_token, find_position,
12556         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12557         (maybe_macroexpand, _cpp_lex_token): New functions.
12558
12559         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12560         parse_goto_mark): Delete.
12561         (_cpp_handle_eof): New function.
12562         (_cpp_handle_directive): Rename from handle_directive.
12563         (_cpp_output_line_command): Rename from output_line_command.
12564         (do_if, do_elif): Call _cpp_parse_expr directly.
12565         * cppfiles.c (_cpp_read_include_file): Don't call
12566         init_input_buffer here.
12567         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12568         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12569         here; pop the token_buffer and skip the rest of the line here.
12570         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12571         here.
12572
12573         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12574         Define here.
12575         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12576         CPP_GOTO_MARK): New macros.
12577         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12578         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12579         _cpp_read_and_prescan, _cpp_init_input_buffer,
12580         _cpp_grow_token_buffer, _cpp_get_directive_token,
12581         _cpp_handle_directive, _cpp_handle_eof,
12582         _cpp_output_line_command): Prototype them here.
12583         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12584         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12585         quote_string, output_line_command): Remove.
12586
12587 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12588
12589         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12590         whether it is too large we must also verify that it isn't negative.
12591
12592 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12593
12594         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12595         (movsi_zero_liveg0): Remove.
12596         (movsf_insn_novis_liveg0): Remove.
12597         (negsi2): Remove.
12598         (negsi2_not_liveg0): Rename to negsi2.
12599         (one_cmplsi2): Remove.
12600         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12601         (one_cmplsi2_liveg0): Remove.
12602         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12603         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12604         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12605         (PREDICATE_CODES): Remove zero_operand.
12606         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12607         TARGET_BROKEN_SAVERESTORE.
12608         (zero_operand): Remove.
12609         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12610         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12611         options.
12612         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12613         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12614         TARGET_BROKEN_SAVERESTORE): Remove.
12615         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12616         Remove.
12617         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12618         Remove.
12619         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12620         Remove.
12621
12622         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12623
12624 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12625
12626         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12627         truncating a string.  Don't assume tokens are nul terminated.
12628         Problem noted by Andreas Jaeger <aj@suse.de>
12629
12630 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12631
12632         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12633         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12634         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12635
12636 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12637
12638         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12639         STRUCTURE_SIZE_BOUNDARY.
12640
12641 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12642
12643         * tree.h (record_layout_info_s): New structure.
12644         (record_layout_info): New type.
12645         (new_record_layout_info): New function.
12646         (layout_field): Likewise.
12647         (finish_record_layout): Likewise.
12648         * stor-layout.c (layout_record): Remove.
12649         (new_record_layout_info): New function.
12650         (layout_field): New function, broken out from layout_record.
12651         (finalize_record_size): Likewise.
12652         (compute_record_mode): Likewise.
12653         (finalize_type_size): New function, broken out from layout_type.
12654         (finish_record_layout): Likewise.
12655         (layout_type): Use them.
12656
12657 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12658
12659         * cpphash.c: Don't include version.h.
12660         (special_symbol) [case T_VERSION]: Look for the string in
12661         hp->value.cpval; don't use version_string.
12662         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12663         __VERSION__ to version_string.
12664         * Makefile.in (cpphash.o): Update deps.
12665
12666 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12667
12668         Convert cpplib to use libiberty/hashtab.c.
12669
12670         * cpplib.h (struct cpp_reader): Make hashtab and
12671         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12672         and ALL_INCLUDE_HASHSIZE macros.
12673
12674         * cpphash.h: Update prototypes.
12675         (struct hashnode): Remove next, prev, and bucket_hdr members.
12676         Make length a size_t.  Add hash member.
12677         (struct ihash): Remove next member.  Add hash member.  Make
12678         name a flexible array member.
12679
12680         * cppfiles.c: Include hashtab.h.
12681         (include_hash): Delete.
12682         (IHASHSIZE): New macro.
12683         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12684         (cpp_included): Do the hash lookup here.
12685         (_cpp_find_include_file): Rewrite.
12686         (cpp_read_file): Put the "fake" hash entry into the hash
12687         table.  Honor the control_macro, if it turns out we've seen
12688         the file before.  Don't push the buffer here.
12689         (_cpp_read_include_file): Push the buffer here.
12690         (OMODES): New macro.  Use it whenever we call open(2).
12691
12692         * cpphash.c: Include hashtab.h.
12693         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12694         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12695         _cpp_lookup_slot): New functions.
12696         (HASHSIZE): new macro.
12697         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12698         (_cpp_lookup): Use hashtab.h routines.
12699
12700         * cppinit.c: Include hashtab.h.
12701         (cpp_reader_init): Call _cpp_init_macro_hash and
12702         _cpp_init_include_hash.  Don't allocate hashtab directly.
12703         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12704         pfile->all_include_files.
12705         (initialize_builtins): Use _cpp_make_hashnode and
12706         htab_find_slot to add hash entries.
12707         (cpp_finish): Just call _cpp_dump_macro_hash.
12708         * cpplib.c: Include hashtab.h.
12709         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12710         create hash entries.
12711         (do_pragma_poison, do_assert): Likewise.
12712         (do_include): Don't push the buffer here.  Don't increment
12713         system_include_depth unless _cpp_read_include_file succeeds.
12714         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12715         or htab_remove_elt.
12716         (do_pragma_implementation): Use alloca to create copy.
12717
12718         * Makefile.in: Update dependencies.
12719
12720 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12721
12722         * cppinit.c (cl_directive_handler): More K&R fixing.
12723
12724 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12725
12726         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12727         STACK_BOUNDARY.
12728         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12729
12730 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12731
12732         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12733         Change from char[] to macros.
12734
12735 2000-03-12  Neil Booth  <NeilB@earthling.net>
12736
12737         * cppinit.c (cpp_start_read): Update indirect function
12738         call to K&R C.
12739
12740 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12741
12742         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12743         entry.
12744
12745         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12746         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12747
12748 2000-03-11  Neil Booth  <NeilB@earthling.net>
12749
12750         * cppinit.c (struct pending option): Replace undef with a
12751         pointer to a directive handling routine.
12752         (struct cpp_pending): Replace separate assert_ and define_
12753         lists with one directive_ list.
12754         (new_pending_define): Rename new_pending_directive. Extra
12755         argument is the directive's handling routine.
12756         (handle_option): Update to use new_pending_directive.
12757
12758 2000-03-11  Neil Booth  <NeilB@earthling.net>
12759
12760         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12761         remap_filename, _cpp_read_include_file, actual_directory,
12762         hack_vms_include_specification): Replace bcopy(), index() etc
12763         calls.  Add casts to some allocations.  Make some variables
12764         pointers to const [unsigned] char.
12765         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12766         collect_formal_parameters): Similarly.
12767         * cppinit.c (struct pending_option, append_include_chain,
12768         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12769         cpp_start_read, new_pending_define, handle_option): Similarly.
12770         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12771         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12772         do_pragma_implementation, detect_if_not_defined,
12773         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12774         do_assert, do_unassert): Similarly.
12775         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12776         function prototypes.
12777         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12778
12779 2000-03-10  Richard Henderson  <rth@cygnus.com>
12780
12781         * builtins.c (expand_builtin_strlen): Revert last change.
12782         Use emit_insn_before if we're at the beginning of a sequence.
12783
12784 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12785
12786         * builtins.c (expand_builtin_strlen): Make sure that we have something
12787         at the beginning of the sequence.
12788
12789         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12790         deferred inlines.
12791
12792         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12793
12794 2000-03-10  Richard Henderson  <rth@cygnus.com>
12795
12796         * except.c (can_throw): Use INTVAL on a CONST_INT.
12797         (reachable_handlers): Likewise.
12798         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12799
12800 2000-03-10  Andreas Jaeger  <aj@suse.de>
12801
12802         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12803         MD_STARTFILE_PREFIX since those are not needed on linux.
12804         (ASM_FILE_START): New, from mips/gnu.h.
12805
12806 2000-03-09  Richard Henderson  <rth@cygnus.com>
12807             Alex Samuel  <samuel@codesourcery.com> and others
12808
12809         * Makefile.in (ssa.o): New rule.
12810         (OBJS): Add ssa.o.
12811         (STAGESTUFF): Add *.ssa and *.ussa.
12812         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12813         * rtl.def (PHI): New RTL expression.
12814         * rtl.h (clear_log_links): New declaration.
12815         (convert_to_ssa): Likewise.
12816         (convert_from_ssa): Likewise.
12817         * flow.c (split_edge): If the entry node falls through to the
12818         split edge's source block, split the entry edge.
12819         (clear_log_links): New function.
12820         * toplev.c (ssa_dump): New variable.
12821         (flag_ssa): Likewise.
12822         (f_options): Add "ssa".
12823         (compile_file): Create SSA dump files.
12824         (rest_of_compilation): Go to and from SSA if enabled.
12825         (decide_d_option): Handle -de for SSA dump files.
12826         * ssa.c: New file.
12827
12828 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12829
12830         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12831         same as VAR_DECL.
12832
12833 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12834
12835         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12836
12837 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12838
12839         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12840         (MD_STARTFILE_PREFIX_1): New macro.
12841
12842 2000-03-09  Robert Lipe  <robertl@sco.com>
12843
12844         * config/ia64/ia64.c: Include system.h.
12845
12846 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12847
12848         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12849         (init_eh_nesting_info): Likewise.
12850
12851         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12852         (TREE_NOTHROW): Rename from TREE_RAISES.
12853         * toplev.c (rest_of_compilation): Set it.
12854         * print-tree.c (print_node): Adjust.
12855         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12856         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12857         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12858         REG_EH_REGION note as appropriate.
12859         (libfunc_nothrow): New fn.
12860         (emit_library_call, emit_library_call_value): Use it.
12861         (expand_call): Check TREE_NOTHROW.
12862
12863         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12864         DECL_ASSEMBLER_NAME.
12865
12866 2000-03-09  Andreas Jaeger  <aj@suse.de>
12867
12868         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12869         (TARGET_MEM_FUNCTIONS): Define.
12870
12871 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12872
12873         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12874
12875         * except.c (can_throw): See through a SEQUENCE.
12876         (nothrow_function_p): New fn.
12877         * except.h: Declare it.
12878         * function.c (current_function_nothrow): New var.
12879         (prepare_function_start): Initialize it.
12880         * output.h: Declare it.
12881         * toplev.c (rest_of_compilation): Set it.
12882         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12883
12884 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12885
12886         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12887         match.  (cpp_compare_defs): Count the nul separator when
12888         advancing over argument names.
12889
12890 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12891
12892         * recog.c (preprocess_constraints): Matching constraints affect
12893         same alternative/different operand, not same operand/different
12894         alternative.
12895
12896         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12897         register and a constant specially.
12898
12899 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12900
12901         * libgcc2.h: New file.
12902         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12903
12904 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12905
12906         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12907         * configure: Regenerate.
12908         * config/ia64: New.
12909
12910 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12911
12912         * Makefile.in (LIBCPP_DEPS): New macro.
12913         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12914         it to declare deps.
12915         * cpperror.c: Include cpphash.h.
12916         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12917         dingleberry.
12918         (lex): Don't use CPP_WARN_UNDEF.
12919         (_cpp_parse_expr): Return an int, the truth value.
12920         * cppfiles.c: Include cpphash.h.
12921         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12922         * cppinit.c (include_defaults_array): Disentangle.
12923         (cpp_cleanup): Don't free the if stack here.
12924         (cpp_finish): Pop off all buffers, not just one.
12925         * cpplib.c (eval_if_expr): Return int.
12926         (do_xifdef): Rename do_ifdef.
12927         (handle_directive): Don't use CPP_PREPROCESSED.
12928         (cpp_get_token): Don't use CPP_C89.
12929         * fix-header.c: Don't use CPP_OPTIONS.
12930
12931         * cpplib.h: Move U_CHAR, enum node_type, struct
12932         file_name_list, struct ihash, is_idchar, is_idstart,
12933         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12934         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12935         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12936         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12937         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12938         of _cpp_simplify_pathname, _cpp_find_include_file,
12939         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12940         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12941         cppinit.c.
12942         Change all uses of U_CHAR to be unsigned char instead.
12943         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12944
12945 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12946
12947         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12948         (dwarf2out_begin_prologue): Set it.
12949         (output_call_frame_info): Don't emit EH unwind info for leaves.
12950
12951         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12952         can occur outside of an EH region.
12953         * except.c: Correct comments about rethrow behavior.
12954         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12955
12956 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12957
12958         * flow.c (make_edges): Always call make_eh_edge for calls.
12959
12960 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12961
12962         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12963         (struct cpp_buffer): Remove fname and underflow fields.
12964         (struct cpp_reader): Remove get_token field.
12965         (struct include_hash): Rename to struct ihash.  Add typedef to
12966         IHASH.
12967         (struct if_stack): Remove fname field.
12968         (IF_STACK_FRAME): Rename to IF_STACK.
12969
12970         * cpperror.c (print_containing_files): Trust that there are no
12971         macro buffers below the top file buffer.
12972         * cppfiles.c: Replace all references to 'struct include_hash'
12973         with 'IHASH'.  Rename initialize_input_buffer to
12974         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12975         use buffer->ihash->name instead.
12976         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12977         not CPP_NULL_BUFFER.
12978         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12979         IF_STACK_FRAME, IHASH not struct include_hash.
12980         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12981         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12982         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12983         references to cpp_buffer->fname (delete entirely, or use
12984         ->ihash->name instead) and IF_STACK->fname.
12985         (cpp_push_buffer): Don't set new->underflow.
12986         (do_include): Use cpp_file_buffer.
12987
12988         * cpphash.c (collect_formal_parameters): Remove duplicate
12989         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12990         used as a macro argument name.  Don't append "..." to namebuf
12991         for varargs macros.  After we're done scanning, go through
12992         namebuf and make it NUL separated, not comma separated.
12993         (_cpp_compare_defs): Remove register tag from variables.
12994         Expect defn->argnames to be NUL separated.
12995         (_cpp_dump_definition): Expect defn->argnames to be NUL
12996         separated and in forward order.
12997         * cpphash.h: Update documentation of argnames field.
12998
12999 2000-03-08  Richard Henderson  <rth@cygnus.com>
13000
13001         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
13002         to fail.  Don't pre-expand the source operand.
13003
13004         * i386.md (strlensi): Initialize eoschar and align before use.
13005
13006 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
13007
13008         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
13009         CONSTRUCTOR element.
13010
13011 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
13012
13013         * mips.c (mips_expand_prologue): If the last
13014         named argument is the vararg marker "va_list", treat it as
13015         an unnamed argument.
13016
13017 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
13018
13019         * dbxout.c (dbxout_parms): When correcting for promoted
13020         big-endian parameters, use the mode of the DECL_RTL rather
13021         than UNITS_PER_WORD.
13022
13023 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
13024
13025         * c-common.h (make_fname_decl): Declare.
13026         * c-common.c (make_fname_decl): Define.
13027         (declare_hidden_char_array): Remove.
13028         (declare_function_name): Use make_fname_decl.
13029         * c-decl.c (c_make_fname_decl): New function.
13030         (init_decl_processing): Set make_fname_decl.
13031
13032 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
13033
13034         * cccp.c (handle_directive): Initialize backslash_newlines_p.
13035
13036 2000-03-07  Philipp Thomas  <pthomas@suse.de>
13037
13038         * po/POTFILES.in: Remove cppalloc.c from file list.
13039
13040 2000-03-07  Steve Chamberlain  <sac@pobox.com>
13041
13042         * pj.c (pj_expand_prologue): current_function->args_info is
13043         now current_function_args_info.
13044
13045         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
13046         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
13047         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
13048
13049 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13050
13051         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
13052         output as hexadecimal rather than the default octal.
13053
13054 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13055
13056         * cpphash.c (special_symbol): Fix thinko in previous commit.
13057
13058 2000-03-07  Neil Booth  <NeilB@earthling.net>
13059
13060         * cppexp.c (struct operation, left_shift, right_shift,
13061         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
13062         "int"s to "unsigned int"s.
13063         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
13064         Similarly.
13065         * cpplib.h: Update for above.
13066         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
13067         returned from allocations.
13068
13069         * cppinit.c (opt_comp, parse_options): New functions.
13070         (handle_option): Use parse_option to parse a single command
13071         line option, that possibly takes an argument.
13072         (cpp_handle_options): Sort the array of command line options on
13073         first invocation (non-ASCII hosts only).
13074         (print_help): Update.
13075
13076 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13077
13078         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
13079         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
13080
13081         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
13082         initialized.
13083         * cppinit.c (cpp_cleanup): Free imp->nshort also.
13084
13085         * cpperror.c (cpp_print_containing_files,
13086         cpp_print_file_and_line, v_cpp_message): Rename to
13087         print_containing_files, print_file_and_line, and v_message.
13088         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
13089         to _cpp_parse_expr, parse_escape, and lex.
13090         (parse_charconst): Remove broken multibyte support.
13091         * cppfiles.c (include_hash): Make static.
13092         (cpp_included): New function.
13093         (merge_include_chains, find_include_file, finclude,
13094         simplify_pathname): Rename to _cpp_merge_include_chains,
13095         _cpp_find_include_file, _cpp_read_include_file, and
13096         _cpp_simplify_pathname.
13097         * cpphash.c (cpp_lookup, free_definition, delete_macro,
13098         cpp_install, create_definition, macroexpand, compare_defs,
13099         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
13100         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
13101         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
13102         * cppinit.c (cpp_handle_option): Rename to handle_option, make
13103         static.
13104         * cpplib.c: Remove extern prototype of cpp_parse_expr.
13105
13106         * cpphash.h: Update prototypes.
13107         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
13108
13109 2000-03-07  Andrew Haley  <aph@cygnus.com>
13110
13111         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
13112         PTRDIFF_TYPE should be based solely on Pmode.
13113         (SIZE_TYPE): ditto.
13114
13115 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13116
13117         * rtl.h (rtunion_def): Constify member `rtstr'.
13118         (emit_line_note_after, emit_line_note, emit_line_note_force,
13119         emit_note, decode_asm_operands): Constify.
13120
13121         * cse.c (canon_hash): Likewise.
13122
13123         * dbxout.c (dbxout_block): Likewise.
13124
13125         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
13126         v_warning_for_asm): Likewise.
13127
13128         * dwarfout.c (function_start_label): Likewise.
13129
13130         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
13131         emit_line_note_force): Likewise.
13132
13133         * final.c (last_filename, asm_insn_count, final_scan_insn,
13134         output_source_line): Likewise.
13135
13136         * function.h (struct emit_status): Likewise.
13137
13138         * gcse.c (hash_expr_1): Likewise.
13139
13140         * genattr.c (gen_attr, main): Likewise.
13141
13142         * genattrtab.c (struct function_unit, current_alternative_string,
13143         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
13144         attr_numeral, check_attr_test, check_attr_value,
13145         convert_set_attr_alternative, convert_set_attr,
13146         compute_alternative_mask, simplify_by_exploding, gen_attr,
13147         gen_unit): Likewise.
13148
13149         * genflags.c (gen_insn): Likewise.
13150
13151         * gengenrtl.c (type_from_format): Likewise.
13152
13153         * genopinit.c (gen_insn): Likewise.
13154
13155         * genoutput.c (n_occurrences, process_template, process_template):
13156         Likewise.
13157
13158         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13159         Likewise.
13160
13161         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13162         Likewise.
13163
13164         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
13165         ggc_set_mark, ggc_get_size): Likewise.
13166
13167         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
13168
13169         * optabs.c (init_one_libfunc): Likewise.
13170
13171         * output.h (assemble_start_function): Likewise.
13172
13173         * recog.c (decode_asm_operands): Likewise.
13174
13175         * toplev.c (rest_of_compilation): Likewise.
13176
13177         * tree.h (emit_line_note_after, emit_line_note,
13178         emit_line_note_force): Likewise.
13179
13180         * varasm.c (asm_output_bss, asm_output_aligned_bss,
13181         asm_emit_uninitialised, assemble_start_function,
13182         assemble_variable, const_hash, compare_constant_1,
13183         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
13184
13185         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
13186
13187         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
13188
13189         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
13190
13191         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
13192
13193         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
13194         arm_dllimport_name_p): Likewise.
13195
13196         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
13197         Likewise.
13198
13199         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
13200
13201         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13202
13203         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
13204         arm_mark_dllexport, arm_mark_dllimport,
13205         arm_pe_encode_section_info): Likewise.
13206
13207         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
13208         ASM_FINISH_DECLARE_OBJECT): Likewise.
13209
13210         * arm/thumb.c (thumb_function_prologue): Likewise.
13211
13212         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
13213
13214         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13215
13216         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
13217
13218         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
13219
13220         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
13221
13222         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13223
13224         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
13225         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
13226
13227         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
13228
13229         * i386/i386.c (asm_output_function_prefix): Likewise.
13230
13231         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
13232
13233         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13234
13235         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
13236
13237         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
13238         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
13239         ASM_OUTPUT_SECTION_NAME): Likewise.
13240
13241         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
13242
13243         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
13244
13245         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
13246
13247         * m32r/m32r.c (m32r_encode_section_info): Likewise.
13248
13249         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13250
13251         * mcore/mcore.c (mcore_encode_section_info): Likewise.
13252
13253         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13254
13255         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13256
13257         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13258
13259         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
13260
13261         * mips/mips.md (movdi, movsi): Likewise.
13262
13263         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13264
13265         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13266
13267         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13268
13269         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
13270         ASM_OUTPUT_ASCII): Likewise.
13271
13272         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
13273         output_mi_thunk, output_toc): Likewise.
13274
13275         * rs6000/rs6000.md (movsi): Likewise.
13276
13277         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
13278
13279         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
13280
13281         * v850/v850.c (print_operand, print_operand_address,
13282         v850_encode_data_area): Likewise.
13283
13284 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
13285
13286         * config/mips/mips.md (zero_extendsidi2): Always force operand
13287         one to memory for mips16.
13288
13289 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13290
13291         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
13292         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
13293         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
13294         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
13295         (min_precision): Result is unsigned.
13296         (add_double, neg_double, mul_double): Low word is unsigned.
13297         (lshift_double, rshift_double, lrotate_double): Likewise.
13298         (rrotate_double, div_and_round_double): Likewise.
13299         (tree_floor_log2, compare_tree_int): New functions.
13300         (preserve_rtl_expr_temps): New declaration.
13301         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
13302         (decl_attributes): Use tree_log2 to find alignment.
13303         Check for TREE_INT_CST_HIGH for format args.
13304         (min_precision): Now unsigned.
13305         Use tree_floor_log2.
13306         (truthvalue_conversion): Delete long-disabled code.
13307         * c-decl.c (finish_struct): Clean up tests on field width.
13308         (finish_function): Use compare_tree_int.
13309         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
13310         * c-typeck.c (comptypes): Use tree_int_cst_equal.
13311         (default_conversion, digest_init): Use compare_tree_int.
13312         (build_binary_op): Use integer_all_onesp and compare_tree_int.
13313         Fix type errors in forming masks.
13314         * calls.c (initialize_argument_information): Use compare_tree_int.
13315         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13316         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
13317         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
13318         (store_field): Use compare_tree_int.
13319         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
13320         (expand_expr, case ARRAY_REF): Use compare_tree_int.
13321         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
13322         (do_store_flag): Use compare_tree_int.
13323         * fold-const.c (encode, decode): Low part is always unsigned.
13324         (force_fit_type, add_double, neg_double, mul_double): Likewise.
13325         (lshift_double, rshift_double, lrotate_double): Likewise.
13326         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
13327         (fold_convert): Use compare_tree_int.
13328         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
13329         (invert_truthvalue, case INTEGER_CST): Likewise.
13330         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
13331         * mkdeps.c (deps_dummy_targets): Make I unsigned.
13332         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
13333         (lshift_double, rshift_double, lrotate_double, rrotate_double):
13334         Likewise.
13335         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
13336         (expand_end_case): Use compare_tree_int.
13337         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13338         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
13339         (layout_decl): Likewise.
13340         (layout_record, layout_union): Make sizes unsigned.
13341         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
13342         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
13343         * tree.c (struct type_hash): hashcode is unsigned.
13344         (build_type_attribute_variant, type_hash_list): Likewise.
13345         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
13346         (attribute_hash_list, build_array_type, build_method_type): Likewise.
13347         (build_complex_type): Likewise.
13348         (real_value_from_int_cst): Remove unneeded casts.
13349         (integer_all_onesp): Add casts.
13350         (tree_floor_log2, compare_tree_int): New functions.
13351         (build_index_type): Use tree_int_cst_sgn.
13352         * varasm.c (assemble_variable): Use compare_tree_int.
13353
13354 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
13355
13356         * cpphash.c (collect_expansion): Also catch ## at start of macro.
13357
13358         * varasm.c (make_decl_rtl): Don't add a number to members of
13359         local classes.
13360         (make_function_rtl): Likewise.
13361
13362 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13363
13364         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
13365         patch from 2000-01-28.
13366
13367 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
13368
13369         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
13370         filled with an insn from the jump target.
13371
13372 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13373
13374         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
13375         (c4x_external_ref): Likewise.
13376         * config/c4x/c4x.c (struct name_list): Likewise.
13377
13378 1999-12-16  Ben Collins  <bcollins@debian.org>
13379
13380         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
13381         argument to genmultilib.
13382         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
13383         the contents into the multilib.h header.
13384         * gcc.c: Declare multilib_exclusions for the specs file.
13385         (set_multilib_dir): Use it.
13386         (print_multilib_info): Likewise.
13387         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
13388         to pass to genmultilib.
13389
13390 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13391
13392         * builtins.c (built_in_class_names, built_in_names): Constify a
13393         char*.
13394
13395         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
13396         int.
13397         (_mcleanup): Ensure value matches format specifier in sprintf.
13398
13399         * cpphash.c (special_symbol): Don't needlessly cast away
13400         const-ness.
13401
13402         * cppinit.c (base_name): Delete unused prototype.
13403
13404         * mkdeps.c (deps_init): Make definition K&R safe.
13405
13406         * tree.h (built_in_class_names, built_in_names): Constify a
13407         char*.
13408
13409 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13410
13411         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13412         floating point instructions for epilogue delay.
13413
13414         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13415         to gas if it supports .register pseudo.
13416
13417         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13418         LONG_DOUBLE_TYPE_SIZE if not defined.
13419         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13420         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13421         * real.c: Likewise.
13422         * gengenrtl.c: Likewise.
13423         * print-rtl.c: Likewise.
13424         * rtl.c: Likewise.
13425         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13426         MASK_LONG_DOUBLE_128.
13427         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13428         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13429         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13430         (SUBTARGET_SWITCHES): Define.
13431         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13432         with -mlong-double-128.
13433         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13434         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13435         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13436         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13437         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13438         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13439         with -mlong-double-128.
13440         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13441         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13442         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13443         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13444         TARGET_LONG_DOUBLE_128): Define.
13445         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13446         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13447         long double on TARGET_ARCH64.
13448
13449 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13450
13451         * function.c (free_temps_for_rtl_expr): Don't free slots
13452         that have been pushed into a higher level.
13453
13454         Revert this patch:
13455         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13456
13457 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13458
13459         * basic-block.h (ALLOCA_REG_SET): Remove.
13460         (INITIALIZE_REG_SET): New macro.
13461         * flow.c (update_life_info): Use it.
13462         (calculate_global_regs_live): Likewise.
13463         (propagate_block): Likewise.
13464         * global.c (build_insn_chain): Likewise.
13465         * haifa-sched.c (schedule_region): Likewise.
13466
13467 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13468
13469         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13470         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13471         (DWARF_ARANGES_PAD_SIZE): New define.
13472         (output_aranges): Use it to pad the address range header.
13473         (DWARF_ROUND): Fix for non power of 2 rounding.
13474
13475 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13476
13477         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13478
13479 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13480
13481         * tree.def (RTL_EXPR): Update documentation.
13482         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13483         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13484         * function.c (preserve_rtl_expr_temp): New function.
13485         (preserve_rtl_expr_temps): Likewise.
13486         (preserve_rtl_expr_result): Use it.
13487
13488         Revert this patch:
13489         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13490
13491 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13492
13493         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13494         for unchanging destination.
13495
13496 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13497
13498         * function.h (struct sequence_stack): Remove rtl_expr.
13499         (struct emit_staus): Likewise.
13500         (seq_rtl_expr): Remove.
13501         * tree.h (free_temps_for_rtl_expr): Don't declare.
13502         (start_sequence_for_rtl_expr): Likewise.
13503         * rtl.h (preserve_rtl_expr_result): Likewise.
13504         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13505         (start_sequence_for_rtl_expr): Remove.
13506         (push_topmost_sequence): Don't save sequence_rtl_expr.
13507         (pop_topmost_sequence): Remove comment about not restoring it.
13508         (end_sequence): Don't set seq_rtl_expr.
13509         (init_emit): Don't initialize it.
13510         (mark_sequence_stack): Don't mark it.
13511         (mark_emit_status): Likewise.
13512         * except.c (protect_with_terminate): Use
13513         start_sequence_for_rtl_expr, not start_sequence.
13514         * expr.c (expand_expr, case RTL_EXPR): Don't call
13515         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13516         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13517         (preserve_rtl_expr_result): Remove.
13518         (free_temps_for_rtl_expr): Likewise.
13519         (pop_temp_slots): Likewise.
13520         (mark_temp_slot): Don't mark the rtl_expr.
13521         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13522         start_sequence_for_rtl_expr.
13523
13524 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13525
13526         * mkdeps.c, mkdeps.h: New files.
13527         * po/POTFILES.in: Add them.
13528         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13529         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13530         (mkdeps.o): New target.
13531
13532         * cppfiles.c: Delete deps_output.
13533         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13534         OBJECT_SUFFIX, and base_name.
13535         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13536         the include hash.
13537         (initialize_dependency_output): Use deps_init,
13538         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13539         all the unnecessary string bashing.
13540         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13541         level.
13542         * cpplib.c (do_include): Use deps_add_dep.
13543         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13544         deps_allocated_size, deps_size, deps_column members with
13545         single pointer to a struct deps.  Delete prototype of
13546         deps_output.
13547
13548         * cppinit.c: Fix thinko in previous patch.
13549
13550 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13551
13552         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13553         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13554         (mode_for_size_tree): New function.
13555         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13556         * tree.h (mode_for_size_tree): New declaration.
13557
13558         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13559
13560 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13561
13562         * stmt.c (is_body_block): Move...
13563         * dwarfout.c, dwarf2out.c: ...from here.
13564         * tree.h: Declare it.
13565         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13566         * final.c (final_start_function): Do call remove_unnecessary_notes
13567         when scheduling.
13568
13569 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13570
13571         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13572
13573         * cpplib.h (_dollar_ok): New macro.
13574         (is_idchar, is_idstart): Use it.
13575         (IStable): Rename to _cpp_IStable.  Declare it const if
13576         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13577         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13578         is_space): Update for renamed IStable.
13579
13580         * cppinit.c: Delete all references to FAKE_CONST and CAT
13581         macros. Define init_IStable as empty macro if gcc >=2.7 or
13582         C99. Change TABLE() to ISTABLE and hardcode name of table.
13583         (cpp_start_read): Don't change the IStable based on
13584         dollars_in_ident.
13585
13586         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13587         changed.  Handle '$' for char1 correctly.
13588         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13589
13590         * cppexp.c (tokentab2): Make const.
13591         (cpp_lex): Make toktab const.
13592         * cppinit.c (include_defaults_array): Make const.
13593         (initialize_standard_includes): Make default_include const.
13594
13595 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13596
13597         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13598         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13599         (gen_decl_die): Likewise.
13600         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13601         (output_decl): Likewise.
13602
13603         * varasm.c (make_function_rtl): If we change the name used in the
13604         rtl, update DECL_ASSEMBLER_NAME accordingly.
13605         (make_decl_rtl): Likewise.
13606
13607         * toplev.c (rest_of_compilation): Tweak formatting.
13608
13609         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13610         remove_unnecessary_notes.
13611         (debug_ignore_block): New fn.
13612         * toplev.h: Declare it.
13613         * emit-rtl.c (remove_unncessary_notes): Call it.
13614         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13615         * dwarf2out.h: Declare it.
13616         * final.c (final_start_function): Don't call remove_unnecessary_notes
13617         if we did insn scheduling.
13618
13619 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13620
13621         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13622         * cpplib.h: Delete SET_CPP_PEDANTIC.
13623
13624 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13625
13626         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13627         result is a RECORD_TYPE.
13628
13629 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13630
13631         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13632
13633 2000-03-03  Richard Henderson  <rth@cygnus.com>
13634
13635         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13636         addition over compliments over shifts.
13637
13638 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13639
13640         * reload1.c (reload_combine_note_use): Handle return register USEs.
13641         REG case: Handle multi-hard-register hard regs.
13642
13643 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13644
13645         * md.texi: Document use of '*' in insn pattern name.
13646
13647 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13648
13649         * calls.c (special_function_p): operator new may not be malloc-like.
13650
13651         * gcse.c (dump_hash_table): Really fix error in last change.
13652
13653 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13654
13655         * avr.c (print_operand): Use print_operand_address instead of
13656         output_addr_const.
13657         * avr/libgcc.S: Cleanup code.
13658
13659 2000-03-02  Richard Henderson  <rth@cygnus.com>
13660
13661         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13662
13663 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13664
13665         * tree.h (TYPE_ALIGN_UNIT): New macro.
13666
13667 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13668
13669         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13670
13671 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13672
13673         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13674         for the buffer.
13675         (SET_CPP_PEDANTIC): New macro.
13676         * cpplib.c (do_include): Don't bother checking system_header_p.
13677         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13678         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13679
13680         * function.h (struct expr_status): Add x_arg_space_so_far.
13681         (arg_space_so_far): New macro.
13682         * expr.c (init_expr): Initialize it.
13683         * calls.c (emit_call_1): Reset it.
13684         (compute_argument_block_size, expand_call): Use it.
13685         (expand_call, store_one_arg): Increment it.
13686
13687 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13688
13689         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13690         a UNION_TYPE.
13691
13692 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13693
13694         * cppfiles.c (cpp_read_file): New function.
13695
13696         * cpphash.c (collect_expansion): Make sure to reset last_token
13697         to NORM when we hit a string.  Handle trailing whitespace
13698         properly when the expansion is empty.
13699         (create_definition): Disable line commands while parsing the
13700         directive line.
13701         (dump_definition): If pfile->lineno == 0, output a line
13702         command ahead of the dump, and add a trailing newline.
13703
13704         * cppinit.c (append_include_chain): Add fifth argument, which
13705         indicates whether or not system headers are C++ aware.
13706         (initialize_standard_includes): New function,
13707         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13708         the include_defaults_array on to append_include_chain.
13709         (dump_special_to_buffer): Const-ify char array.
13710         (builtin_array): Don't dump __BASE_FILE__.
13711         (cpp_start_read): Use cpp_read_file.  Reorder code for
13712         clarity.  Don't output line commands here for -D/-A/-U
13713         switches.  Don't call deps_output for files included with
13714         -include or -imacros.
13715
13716         * cpplib.c (do_define): Don't pay any attention to the second
13717         argument.
13718         (cpp_expand_to_buffer): Disable line commands while scanning.
13719         (output_line_command): Work in the file buffer.
13720         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13721         Fix formatting of comments.  Prototype cpp_read_file.
13722
13723 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13724
13725         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13726         reference the language-equivalent of sizetype.
13727         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13728         * fold-const.c (size_binop, size_diffop): Put back checks.
13729         * gcse.c (dump_hash_table): Fix minor error in last change.
13730         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13731         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13732         all sizetypes.
13733
13734 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13735
13736         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13737         with inhibit_defer_pop set.
13738
13739 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13740
13741         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13742         the DECL_SIZE for a FIELD_DECL.
13743
13744 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13745
13746         * fixinc/inclhack.tpl: remove unused symlinks
13747         * fixinc/README: GCC Maintainer info
13748         * fixinc/inclhack.sh: regen
13749         * fixinc/fixincl.sh: regen
13750
13751 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13752
13753         * cpphash.c (collect_expansion): Trim trailing white space
13754         from macro definitions, but don't go past the last insertion
13755         point.
13756
13757 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13758
13759         * i386.md (mulqi3): New pattern.
13760
13761 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13762
13763         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13764         token types.
13765         (struct cpp_reader): Add parsing_if_directive and
13766         parsing_define_directive flags.
13767         (struct cpp_options): Remove output_conditionals flag.
13768         (check_macro_name): Delete prototype.
13769
13770         * cpphash.h (struct macrodef): Delete.
13771         (struct reflist): Separate from struct definition.
13772         (struct definition): Remove unused fields.  Add column number.
13773         (create_definition): Returns a DEFINITION *.  Takes a
13774         cpp_reader * and an int.
13775
13776         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13777         (PEEKC): Copy defn from cpplib.c.
13778         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13779         (struct arg): New.
13780         (struct arglist): Simplify.
13781         (collect_expansion): Rewrite.  Get tokens by calling
13782         cpp_get_token.  Add more error checking.
13783         (collect_formal_parameters): New function, broken out of
13784         create_definition and reworked to use get_directive_token.
13785         (create_definition): All real work is now in collect_expansion
13786         and collect_formal_parameters.  do_define handles finding the
13787         macro name.  Return a DEFINITION, not a MACRODEF.
13788         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13789         character-at-a-time copy loop with memcpy and pointer increments.
13790         (compare-defs): d1->argnames / d2->argnames might be null.
13791
13792         * cpplib.c (copy_rest_of_line): Delete function.
13793         (skip_rest_of_line): Do all the work ourselves.
13794         (skip_string): New function.
13795         (parse_string): Use skip_string.
13796         (get_macro_name): New function.
13797         (check_macro_name): Delete.
13798         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13799         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13800         (handle_directive): ICE if we're called on a macro buffer.
13801         (do_define): Determine macro name and type (funlike/objlike)
13802         here.  Expunge all uses of MACRODEF.
13803         (cpp_push_buffer): Set line_base to NULL.
13804         (do_undef, read_line_number): Don't worry about getting a POP token.
13805         (eval_if_expression): Set/reset parsing_if_directive around
13806         cpp_parse_expr. Don't clear only_seen_white.
13807         (skip_if_group): Remove output_conditionals logic.  Use
13808         skip_rest_of_line.
13809         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13810         tokens under appropriate conditions.
13811         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13812
13813         * cppexp.c (parse_defined): New function, break out of
13814         cpp_lex.
13815         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13816         ourselves, with cpp_defined.
13817         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13818
13819         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13820         * gcc.dg/strpaste-2.c: New.
13821
13822 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13823
13824         * fold-const.c (size_binop): Don't asert inputs are the same and
13825         have TYPE_IS_SIZETYPE set.
13826         (size_diffop): Likewise.
13827
13828 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13829
13830         * dwarfout.c (output_block): Output abstract blocks even if they
13831         don't have TREE_ASM_WRITTEN set.
13832
13833         * calls.c (emit_library_call): Check for null REG.
13834
13835 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13836
13837         * c-decl.c (current_function_decl): Move to toplev.c.
13838         (init_decl_processing): Don't add current_function_decl as a ggc
13839         root here.
13840         * dbxout.c (dbxout_symbol): Change return type to int.
13841         (dbxout_symbol_location, dbxout_syms): Likewise.
13842         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13843         any locals. Use current_function_func_begin_label if set.
13844         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13845         * dwarf2out.c (dwarf2out_begin_prologue): Set
13846         current_function_func_begin_label.
13847         * final.c (final_start_function): Reset it.
13848         * toplev.c (current_function_decl): Define it here.
13849         (current_function_func_begin_label): New variable.
13850         (main): Add both as ggc roots.
13851         * tree.h (current_function_func_begin_label): Declare.
13852
13853 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13854
13855         * gcse.c: Cleanups throughout: mostly white-space, but also
13856         some minor rearrangement of code.
13857
13858 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13859
13860         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13861         returns a PARALLEL.  Use emit_group_load and use_group_regs
13862         as needed.
13863         (emit_library_call_value): Similarly.
13864
13865         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13866         * pa/quadlib.asm: Remove.
13867         * pa/quadlib.c: New file.
13868
13869         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13870         * configure: Rebuilt.
13871
13872 2000-02-29  Philip Blundell  <pb@futuretv.com>
13873
13874         * config/arm/conix-elf.h: New file.
13875         * configure.in (arm*-*-conix*): New configuration.
13876         * configure: Regenerate.
13877
13878 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13879
13880         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13881         don't have TREE_ASM_WRITTEN set.
13882
13883 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13884
13885         * Eliminate DECL_FIELD_SIZE.
13886         * builtins.c (built_in_class_names, built_in_names): New variables.
13887         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13888         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13889         DECL_SIZE, not DECL_FIELD_SIZE.
13890         * print-tree.c (print_node): Remove code that prints extra blank
13891         lines in some cases.
13892         Properly handle inline and builtin function cases.
13893         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13894         * tree.h (built_in_class_named, built_in_names): New declarations.
13895         (union tree_decl): Rename internal unions to u1 and u2 and change
13896         some of their components.
13897         Add new field built_in_class.
13898         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13899         Reflect above changes.
13900         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13901         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13902         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13903         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13904
13905 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13906
13907         * extend.texi: Document ARM's support for long/short calls.
13908
13909         * invoke.texi: Document ARM's -mlong-calls command line switch.
13910
13911         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13912         (arm_encode_call_attribute): Add prototype.
13913         (arm_set_default_type_attribute): Add prototype.
13914         (arm_strip_name_encoding): Add prototype.
13915
13916         * config/arm/arm.c (arm_init_cumulative_args): replace
13917         initialisation og 'long_calls' field with initialisation of
13918         'call_cookie' field.
13919         (enum arm_pragma_enum): New enum.
13920         (arm_pragma_long_calls): New static variable.
13921         (arm_process_pragma): Also process "#pragma long_calls_off".
13922         (arm_valid_type_attribute_p): Accept short_call attribute.
13923         (arm_comp_type_attributes): Check long/short call attributes.
13924         (arm_encode_call_attribute):  New function:  Encode long_call
13925         or short_call attribute in function name.
13926         (arm_set_default_type_attributes): New function: Assign
13927         default attributes to newly defined type.
13928         (current_file_function_operand): New function: Return true if
13929         the symbol is a function which has already been compiled.
13930         (arm_is_longcall_p): New function: Return true if the
13931         indicated function should be called via a long call.
13932         (arm_get_strip_length): New function.  Returns number of
13933         prefix characters to be stripped from a function's name.
13934         (arm_strip_name_encoding): New function.  Strip prefix characters
13935         from a function's name.
13936
13937         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13938         with 'call_cookie'.
13939         (SHORT_CALL_FAG_CHAR): Define.
13940         (LONG_CALL_FAG_CHAR): Define.
13941         (ENCODED_SHORT_CALL_ATTR_P): Define.
13942         (ENCODED_LONG_CALL_ATTR_P): Define.
13943         (ARM_NAME_ENCODING_LENGTHS): Define.
13944         (STRIP_NAME_ENCODING): Define.
13945         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13946         (ARM_ENCODE_CALL_TYPE): Define.
13947         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13948         (ARM_DECLARE_FUNCTION_SIZE): Define.
13949         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13950
13951         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13952         if a long call is needed.
13953         (call_value): Ditto.
13954         (call_symbol): Ditto.
13955
13956         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13957         ARM_DECLARE_FUNCTION_SIZE.
13958
13959         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13960         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13961         (ARM_STRIP_NAME_ENCODING): Undefine.
13962         (STRIP_NAME_ENCODING): Undefine.
13963         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13964         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13965         (ASM_OUTPUT_COMMON): Ditto.
13966         (ASM_DECLARE_OBJECT_NAME): Ditto.
13967
13968         * config/arm/pe.c (arm_dllexport_name_p): Check for
13969         ARM_PE_FLAG_CHAR.
13970         (arm_dllimport_name_p): Ditto.
13971         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13972         (arm_mark_dllimport): Ditto.
13973
13974 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13975
13976         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13977
13978 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13979
13980         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13981
13982 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13983
13984         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13985         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13986         NO_BUILTIN_WCHAR_TYPE is not defined.
13987         (CPP_WCHAR_TYPE): Delete.
13988         * cccp.c (main): Don't change wchar_type if cplusplus.
13989         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13990
13991 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13992
13993         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13994
13995 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13996
13997         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13998         (ASM_WEAKEN_LABEL): Define.
13999
14000 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
14001
14002         * expr.c (store_constructor): Do not emit USE.
14003         * rtl.h (stupid_life_analysis): Remove.
14004
14005 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14006
14007         * function.c (number_blocks): Reset next_block_index based on
14008         what debugging format is used, not what is defined.
14009
14010         * lcm.c: Minor reformatting throughout.
14011         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
14012
14013         * toplev.c (rest_of_compilation): Account for time in
14014         optimize_mode_switching.
14015
14016         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
14017         if only marking labels.
14018
14019 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
14020
14021         * calls.c (expand_call): Attempt to combine stack adjustments with
14022         pending stack adjustments.
14023
14024 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14025
14026         * loop.c (reg_in_basic_block_p): Don't abort when falling through
14027         to the end of the function.
14028
14029 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
14030
14031         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
14032         blocks.
14033         * final.c (next_block_index): Remove.
14034         (max_block_depth): Likewise.
14035         (pending_blocks): Likewise.
14036         (init_final): Don't initialize them.
14037         (final_start_function): Don't set next_block_index.  Set up
14038         BLOCK_NUMBER.
14039         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
14040         * function.h (number_blocks): New function.
14041         * function.c (get_block_vector): New function.
14042         (identify_blocks): Use it.
14043         (reorder_blocks): Set NOTE_BLOCK.
14044         (number_blocks): New function.
14045         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
14046         * tree.h (BLOCK_NUMBER): New macro.
14047         (tree_block): Add block_num field.
14048         * dbxout.c (next_block_number): Remove.
14049         (dbxout_init): Don't set it.
14050         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
14051         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
14052         block numbers.
14053         * toplev.c (rest_of_compilation): Always call
14054         find_loop_tree_blocks.  Fix indentation.
14055         * dwarf2out.c (next_block_number): Remove.
14056         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14057         to determine block numbers.
14058         (gen_inlined_subroutine_die): Likewise.
14059         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
14060         (decls_for_scope): Don't increment next_block_number.
14061         * dwarfout.c (next_block_number): Remove.
14062         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14063         to determine block numbers.
14064         (output_inlined_subroutine_die): Likewise.
14065         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
14066         (output_decls_for_scope): Don't increment next_block_number.
14067         * sdbout.c (next_block_number): Remove.
14068         (sdbout_block): Use BLOCK_NUMBER.
14069         (sdbout_begin_block): Simplify.
14070         * xcoffout.c (next_block_number): Remove.
14071         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
14072         (xcoffout_begin_block): Don't set next_block_number.
14073         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
14074         next_block_number.
14075
14076 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14077
14078         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
14079         (expand_builtin_strcpy): Pass correct type to size_binop.
14080         (expand_builtin_strcmp): Likewise.
14081         Clean up conditional structure.
14082         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
14083         (complete_array_type): Don't use size_binop for MAXINDEX.
14084         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
14085         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
14086         (c_alignof): Use size_one_node.
14087         (build_unary_op): Pass arg of proper type to size_binop.
14088         (really_start_incremental_init, push_init_level): Use sizetype for
14089         constructor{,_bit,_unfilled}_index.
14090         (pop_init_label, output_init_element): Likewise.
14091         (output_pending_init_elements, process_init_element): Likewise.
14092         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
14093         * expr.c (store_expr): Use size_int.
14094         (store_constructor): Use proper types for size_binop args.
14095         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
14096         (expand_expr_unaligned): Likewise.
14097         (string_contant): Return object of sizetype.
14098         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
14099         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
14100         (ARGS_SIZE_TREE): Pass proper types to size_binop.
14101         * fold-const.c (int_const_binop): Refine when size_int is called.
14102         (fold_convert): Likewise.
14103         (size_int_wide): Rework to take KIND as arg, only take low order
14104         bits, handle new sizetype_tab datatype, and chain entries in
14105         size_table.
14106         (size_int_type_wide): New function.
14107         (size_binop): Validate types of arguments.
14108         (ssize_binop): Deleted.
14109         (size_diffop): New function.
14110         (extract_muldiv): Only fold division into multiplication for sizetypes.
14111         * function.c (assign_parms): Use size_diffop and make sure
14112         VAR field is of ssizetype; also pass proper type to size_binop.
14113         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
14114         (round_down): Deleted from here.
14115         * store-layout.c (sizetype_tab): Now an array.
14116         (sizetype_set, early_root_list): New variables.
14117         (variable_size): Use size_one_node.
14118         (round_up): Pass proper type to size_binop.
14119         (round_down): Moved to here and corrected as above.
14120         (layout_record): Pass proper arg types to size_binop.
14121         (layout_type): Likewise.
14122         If sizetype_set is zero, record the type just laid out.
14123         (make_unsigned_type): Don't call set_sizetype;
14124         (make_signed_type): Likewise; also, call fixup_signed_type.
14125         (initialize_sizetypes): New function.
14126         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
14127         set name of bitsizetype to "bit_size_type".
14128         Fix up type of sizes of all types made before call.
14129         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
14130         * tree.c (fix_sizetype): Deleted.
14131         (build_common_tree_nodes): Call initialize_sizetypes.
14132         (build_common_tree_nodes_2): Don't call fix_sizetype.
14133         * tree.h (TYPE_IS_SIZETYPE): New macro.
14134         (initialize_sizetype): New declaration.
14135         (enum size_type_kind): New type.
14136         (struct sizetype_tab): Deleted.
14137         (sizetype_tab): Now array; adjust sizetype macros.
14138         (size_diffop, size_int_type_wide): New functions.
14139         (size_int_wide): Change number of args and type; access macros changed.
14140         (ssize_int, sbitsize_int): New macros.
14141         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
14142         (ROUND_TYPE_SIZE_UNIT): New macro.
14143
14144 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
14145
14146         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
14147
14148 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14149
14150         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
14151         Mark as possibly unused.
14152
14153         * cse.c (cse_insn): Delete dead code involving tablejump.
14154         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
14155
14156         * Makefile.in (libcpp.a): Start by deleting it.
14157
14158 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14159
14160         * cpplib.h (enum file_change_code): Added rename_file.
14161         * cpplib.c (do_line): If a filename is given, set file_change to
14162         rename_file.
14163         (output_line_command): If file_change is rename_file, always
14164         output a # directive with the file name.
14165
14166         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
14167
14168 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
14169
14170         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
14171         when copying a PARM_DECL or RESULT_DECL.
14172
14173 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14174
14175         * fix-header.c (recognized_function): Also fix prototypes for
14176         functions taking "void".
14177
14178 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14179
14180         * reload1.c (do_output_reload): Check reg_reloaded_valid before
14181         looking at reg_reloaded_contents.
14182
14183 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
14184
14185         * Makefile.in (STMP_FIXINC): New toggle.
14186         (LIBGCC2_DEPS): Delete all references.
14187         (stmp-headers): Delete target.  All references either deleted
14188         or changed to stmp-int-headers.
14189         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
14190         (LIBCPP_OBJS): Take out cppalloc.o.
14191         (cppalloc.o): Delete target.
14192         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
14193         (gen-protos, fix-header): Link with libiberty.a.
14194         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
14195         to empty.
14196
14197         * configure.in: Remove refs to strerror.
14198         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
14199         * system.h: Take out strerror stanza.
14200
14201         * cpperror.c (my_strerror): Delete function.
14202         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
14203         * cppmain.c (main): Call xmalloc_set_program_name first thing.
14204         * cppalloc.c: Delete file.
14205         * gen-protos.c: Don't provide xrealloc.
14206
14207         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
14208         xstrerror throughout.
14209
14210 2000-02-26  Bruce Korb  <bkorb@gnu.org>
14211
14212         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
14213         match for DOS headers, too.
14214         * fixinc/inclhack.sh,fixincl.x: Regenerate.
14215
14216 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14217
14218         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
14219         is right for most ELF targets.
14220         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
14221         Let the default file use %U properly.
14222         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
14223         default.
14224
14225         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
14226         numbers.
14227
14228 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14229
14230         * toplev.c (documented_lang_options): Correct spelling error.
14231         (decode_d_option, decode_f_option, main): Likewise.
14232
14233         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
14234
14235         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
14236         to tell assembler it is permitted to expand large constants.
14237
14238 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
14239
14240         * protoize.c: (AUX_INFO_SUFFIX): New macro.
14241         (aux_info_suffix): Use.
14242         (SAVE_SUFFIX): New macro.
14243         (save_suffix): Use.
14244         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
14245         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
14246         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
14247
14248         * invoke.texi (Running Protoize): Update documentation.
14249
14250 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
14251
14252         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
14253
14254 2000-02-25  John Wehle  (john@feith.com)
14255
14256         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
14257
14258 2000-02-25  Anthony Green  <green@cygnus.com>
14259
14260         * toplev.c (rest_of_compilation): Rebuild jump labels if
14261         combine_instructions has created a new direct jump.
14262         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
14263         when appropriate.
14264         (combine_instructions): Call try_combine with new argument.
14265         Return non-null value when new direct jump instruction is created.
14266         * rtl.h: combine_instructions returns an int.
14267
14268 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
14269
14270         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
14271         jump when changing a computed jump into a jump to a known
14272         target.
14273
14274 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
14275
14276         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
14277         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
14278
14279         * i386.md (define_expand "clrstrsi"): Fix typo.
14280
14281 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
14282
14283         * rtl.texi: Fix typo.
14284
14285 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14286
14287         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
14288         UNITS_PER_WORD.  Change caller initial_elimination_offset.
14289         (rounded_frame_size): Take into account that argument pushed has
14290         changed.  Fix TARGET_ALIGN_DOUBLE problem.
14291
14292 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
14293
14294         * haifa-sched.c (schedule_block): Explain the real reason
14295         we delete REG_SAVE_NOTEs on the first insn of a block.
14296         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
14297
14298 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
14299
14300         * input.h (push_srcloc): New function.
14301         (pop_srcloc): Likewise.
14302         * toplev.c (push_srcloc): Define it.
14303         (pop_srcloc): Likewise.
14304
14305 2000-02-24  Richard Henderson  <rth@cygnus.com>
14306
14307         * flow.c (life_analysis): When collecting reg info, clear
14308         regs_ever_live.
14309
14310 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14311
14312         Fix bug exposed by reload.c no longer rounding the frame
14313         size to BIGGEST_ALIGNMENT:
14314         * sh.c (rounded_frame_size): New function.
14315         (sh_expand_prologue, sh_expand_epilogue): Use it.
14316         (initial_elimination_offset): Likewise.
14317
14318 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14319
14320         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
14321         * sh-protos.h (sh_need_epilogue): Declare.
14322         * sh.c (sh_need_epilogue_known): New static variable.
14323         (sh_need_epilogue): New function.
14324         (function_epilogue): Clear need_epilogue_known.
14325         * sh.md (return): Split into expander / insn pattern.
14326         Make the expander conditional on ! sh_need_epilogue ().
14327
14328 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
14329
14330         * machmode.h (get_mode_alignment): Declare.
14331         (GET_MODE_ALIGNMENT): Call it.
14332         * stor-layout.c (get_mode_alignment): New function. Make
14333         sure alignment is always power of 2.
14334
14335 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14336
14337         * i386.h: Remove useless definition of "I386" and misleading
14338         comment above it.
14339
14340 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14341
14342         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
14343         under which TREE_PERMANENT will be set.
14344         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
14345         build1): Use TREE_SET_PERMANENT.
14346         * print-tree.c (print_node): Don't report value of
14347         TREE_PERMANENT if ggc_p is true.
14348
14349         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
14350         decide whether to give a type a new alias set.
14351         * objc/objc-act.c (build_objc_string_object): Never copy the string.
14352         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
14353         of value of 'obstack'.
14354
14355
14356 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14357
14358         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
14359
14360 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14361
14362         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
14363         * cpplib.c (cpp_get_token): Produce them.
14364         * cppexp.c (cpp_lex): Handle them.
14365
14366 2000-02-23  Nick Clifton  <nickc@cygnus.com>
14367
14368         * config/arm/arm.c (arm_comp_type_attributes): Simply and
14369         comment tests on type attributes.
14370
14371 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14372
14373         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
14374         conform to documentation.
14375         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
14376         to check for special cases.
14377         * sh-protos.h (sh_loop_align): Declare.
14378         * sh.c (sh_loop_align): Define.
14379
14380 2000-02-22  Andrew Haley  <aph@cygnus.com>
14381
14382         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
14383         (SIZE_TYPE): Is 32 bits when using -mgp32.
14384         (PTRDIFF_TYPE): Ditto.
14385
14386 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14387
14388         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
14389
14390 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14391
14392         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
14393         BIGGEST_FIELD_ALIGNMENT a constant.
14394
14395 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
14396
14397         * dwarf2out.c (output_line_info): Put the marker for the end of
14398         the line number info at the actual end.
14399         (gen_struct_or_union_type_die): Use decl_function_context
14400         to check for local classes.
14401         * dwarfout.c (output_type): Likewise.
14402
14403 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
14404
14405         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
14406         for arguments with a mode, but no type.
14407         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14408         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14409         * pa/long_double.h: New file.
14410         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14411         both have 128bit wide long doubles.
14412         * configure: Rebuilt.
14413
14414 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14415
14416         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14417
14418         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14419         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14420         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14421
14422         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14423
14424         * integrate.c (compare_blocks, find_block): Likewise.
14425
14426         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14427
14428         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14429
14430         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14431         expand_asm_operands): Likewise.
14432
14433 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14434
14435         * predict.c (estimate_probability): Added the pointer heuristic to
14436         the collection of static branch predictors.
14437
14438 2000-02-21  Catherine Moore  <clm@cygnus.com>
14439
14440         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14441         * invoke.texi (-mfix7000): Document.
14442
14443 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14444
14445         * diagnostic.c (init_output_buffer): Make it possible to output at
14446         least 32 characters if we're given a too long prefix.
14447
14448 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14449
14450         * varasm.c (initializer_constant_valid_p): Call
14451         lang_expand_constant to simplify the constant.
14452
14453 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14454
14455         * fixinc/inclhack.def(stdio_va_list):
14456         typedef needs to be disabled.
14457         * fixinc/inclhack.sh: regen
14458         * fixinc/fixincl.x: regen
14459
14460 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14461
14462         * print-rtl.c (print_rtx): Don't print addresses when
14463         flag_dump_unnumbered.
14464
14465 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14466
14467         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14468         ATTRIBUTE_UNUSED.
14469         (sparc_va_arg, sparc_flat_output_function_prologue,
14470         sparc_flat_output_function_epilogue): Cast value to unsigned in
14471         comparison.
14472         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14473
14474         * sparc.md: Add default case in switch.
14475
14476 2000-02-19  Richard Henderson  <rth@cygnus.com>
14477
14478         * c-typeck.c (add_pending_init): Don't abort for multiple
14479         fields at the same offset.
14480         (pending_init_member): Test the correct member.
14481
14482 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14483
14484         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14485         instead of SImode.
14486         (start_catch_handler) : Same.
14487
14488 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14489
14490         * Makefile.in: Have flow.o depend on $(EXPR_H)
14491
14492 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14493
14494         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14495         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14496         (finish_decl): Remove -Wlarger-than code from here.
14497         * flags.h (id_clash_len): Now int.
14498         (larger_than_size): Now HOST_WIDE_INT.
14499         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14500         Clean up checking to see if in table.
14501         (make_bit_field_ref): Remove extra parm to bitsize_int.
14502         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14503         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14504         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14505         and for computing size of decl.
14506         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14507         Move -Wlarger-than code to here.
14508         (layout_record): Remove extra arg to bitsize_int.
14509         Set TYPE_BINFO_SIZE_UNIT.
14510         (layout_union): Remove extra arg to bitsize_int.
14511         Use proper type for size of QUAL_UNION.
14512         (layout_type): Remove extra arg to bitsize_int.
14513         * toplev.c (id_clash_len): Now int.
14514         (larger_than_size): Now HOST_WIDE_INT.
14515         (decode_W_option): Clean up id-clash and larger-than- cases.
14516         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14517         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14518         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14519         (struct tree_decl): New field size_unit.
14520         (size_int_wide): No HIGH operand; NUMBER is now signed.
14521         (size_int_2): Deleted.
14522         (size_int, bitsize_int): Don't use it and rework args.
14523         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14524
14525 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14526
14527         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14528
14529 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14530
14531         * invoke.texi (Warning Options): Add an explanation of why
14532         you might want the -Wfloat-equal flag.
14533
14534 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14535
14536         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14537         * cppinit.c (new_pending_define): Add cast to avoid warning.
14538         * expmed.c (extract_bit_field): Likewise.
14539         * flow.c (enum reorder_skip_type): New type.
14540         (skip_insns_between_blcok): New it.
14541         Rework to avoid warning about possibly undefined variable.
14542         * function.c (assign_parms): Make thisparm_boundary unsigned.
14543         * genrecog.c (write_switch): Cast XWINT result to int.
14544         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14545         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14546         one for MIPS and one for Alpha.
14547         (get_tag, copy_object): Add casts to avoid warnings.
14548         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14549         * reload.c (find_reloads): Make TYPE enum reload_type.
14550         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14551         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14552         * varasm.c (compare_constant_1): Add cast to avoid warning.
14553         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14554         to (char *).
14555         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14556         Cast switch operand of size to int.
14557         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14558         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14559         in unhandled case.
14560
14561 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14562
14563         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14564         anything for an alignment of zero.
14565
14566         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14567         anything for an alignment of zero.
14568
14569 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14570
14571         * gcc.texi (Bug Reporting): Refer to bugs.html.
14572         (Bug Lists): Likewise.
14573         * system.h (GCCBUGURL): New preprocessor define.
14574         * rtl.c (fancy_abort): Use it.
14575         * gcc.c (main): Likewise.
14576
14577 2000-02-18  Richard Henderson  <rth@cygnus.com>
14578
14579         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14580         (life_analysis_1): Subsume into ...
14581         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14582         Use update_life_info for the relaxation.
14583         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14584         entry and regs_live_at_setjmp.
14585         (set_noop_p): Simplify.
14586         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14587         (record_volatile_insns): Split into ...
14588         (delete_noop_moves): ... here,
14589         (notice_stack_pointer_modification): ... here,
14590         (insn_dead_p): ... and here.
14591         (propagate_block): Don't query INSN_VOLATILE.
14592         (mark_used_regs): Mind !PROP_REG_INFO.
14593         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14594         not in life_analysis.
14595
14596 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14597
14598         * loop.c (canonicalize_condition): New function,
14599         broken out of get_condition.
14600         (get_condition): Use it.
14601         * expr.h (canonicalize_condition): Prototype it.
14602
14603         * tree.h (tree_int_cst_msb): Declare.
14604         * tree.c (tree_int_cst_msb): New function.
14605
14606 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14607
14608         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14609         isn't set.
14610
14611         * invoke.texi (-fmessage-length=n): Document.
14612
14613 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14614
14615         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14616
14617 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14618
14619         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14620         after the prologue.
14621
14622 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14623
14624         * config/arm/thumb.c: Replace includes of system headers with
14625         #include "system.h".
14626
14627 2000-02-16  Richard Henderson  <rth@cygnus.com>
14628
14629         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14630         Add crtbeginS.o and crtendS.o.
14631         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14632         (ENDFILE_SPEC): Use crtendS.o.
14633         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14634
14635         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14636         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14637         shared and present.
14638         (__dso_handle): New variable.
14639         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14640         bias to __CTOR_END__.
14641
14642 2000-02-16  Richard Henderson  <rth@cygnus.com>
14643
14644         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14645
14646 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14647
14648         * longlong.h (__clz_tab): Declare as static to match definition.
14649
14650 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14651
14652         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14653         (XREF_FILE_NAME): Define.
14654
14655         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14656         (EH_FRAME_SECTION_ASM_OP): Define.
14657         (IDENT_ASM_OP): Define.
14658         (TEXT_SECTION_ASM_OP): Define.
14659         (CPP_SPEC): Define.
14660         (CTORS_SECTION_ASM_OP): Define.
14661         (CTOR_SECTION_FUNCTION): Use it.
14662         (DTORS_SECTION_ASM_OP): Define.
14663         (DTOR_SECTION_FUNCTION): Use it.
14664
14665 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14666
14667         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14668         NOTE_BASIC_BLOCK.
14669
14670         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14671         debug_bb_n): New functions.
14672         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14673         * basic-block.h: Prototype new functions.
14674
14675 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14676
14677         * configure.in: Add support for avr target.
14678         * configure: Rebuilt.
14679
14680         * invoke.texi: Add AVR invocation docs.
14681         * install.texi: Add information about AVR.
14682         * md.texi: Add AVR constraint letters description.
14683         * extend.texi: Add description for AVR specific attributes.
14684
14685 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14686
14687         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14688
14689 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14690
14691         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14692         (make_insn_raw): Move RTL check here.
14693
14694 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14695
14696         * version.c: Include gansidecl.h and version.h.
14697
14698         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14699
14700         * configure.in (gcc_version): When setting, narrow search to
14701         lines containing `version_string'.
14702
14703         * Makefile.in (mainversion): Likewise.
14704         (GCC_H): New variable.
14705         (gcc.h): Delete target.
14706         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14707         (version.o): Depend on version.h.
14708         (dbxout.o): Don't depend on gcc.h.
14709
14710 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14711                           Michael Meissner  <meissner@cygnus.com>
14712
14713         * md.texi (Simple Constraints): Add item about whitespace.
14714         * genoutput.c (strip_whitespace): New.
14715         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14716         strip_whitespace for constraints.
14717         Test pointer using NULL, not 0.
14718
14719 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14720
14721         * cpplib.c (do_line): Pedwarn for #line > 32767.
14722
14723         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14724
14725 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14726
14727         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14728         to default cpp spec.
14729         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14730         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14731         * cpp.1: Likewise.
14732
14733         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14734         default spec.
14735
14736 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14737
14738         * configure.in: Add support for avr target.
14739
14740 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14741
14742         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14743         (sh_addr_diff_vec_mode): Don't declare.
14744         * sh.c (sh_addr_diff_vec_mode): Delete.
14745
14746 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14747
14748         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14749
14750 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14751
14752         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14753         (smulsi3_highpart_i): Name.
14754         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14755         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14756         (smulsi3_highpart, umulsi3_highpart): Likewise.
14757
14758         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14759         correctly independent of endianness.
14760         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14761         confuse the optimizers.
14762         (mulsidi3+1, umulsidi3+1): New define_split.
14763
14764 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14765
14766         * config/sh/sh.md: Guard insn splits against illegal registers.
14767         * config/sh/sh.h: Correct comment about macros.
14768
14769 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14770                           Andrew MacLeod  <amacleod@cygnus.com>
14771
14772         * Makefile.in (lcm.o): Depend on insn-attr.h.
14773         * basic-block.h (optimize_mode_switching): Declare.
14774         * lcm.c (tm_p.h, insn-attr.h): #include.
14775         (seginfo, bb_info): New structs.
14776         (antic, transp, comp, delete, insert) : New file-scope static variables.
14777         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14778         (reg_becomes_live, optimize_mode_switching): Likewise.
14779         * tm.texi: Add description of mode switching macros.
14780         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14781
14782         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14783         (fldi_ok, fpscr_set_from_mem): New prototypes.
14784         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14785         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14786         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14787         (sh_flag_remove_dead_before_cse): Remove declaration.
14788         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14789         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14790         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14791         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14792         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14793         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14794         (fldi_ok): New function.
14795         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14796         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14797         (emit_df_insn): Likewise.
14798         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14799         (sh_flag_remove_dead_before_cse): Delete.
14800         (get_free_reg, fpscr_set_from_mem): New functions.
14801         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14802         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14803
14804 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14805
14806         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14807
14808 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14809
14810         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14811         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14812
14813         * cccp.c: Include version.h and/or don't declare `version_string'.
14814         * collect2.c: Likewise.
14815         * alpha.c: Likewise.
14816         * arm/aof.h: Likewise.
14817         * arm/coff.h: Likewise.
14818         * arm/elf.h: Likewise.
14819         * arm/pe.h: Likewise.
14820         * arm/tcoff.h: Likewise.
14821         * arm/telf.h: Likewise.
14822         * arm/tpe.h: Likewise.
14823         * arm/vxarm.h: Likewise.
14824         * convex/convex.c: Likewise.
14825         * i386/dgux.c: Likewise.
14826         * i386/sun386.h: Likewise.
14827         * m88k/m88k.c: Likewise.
14828         * mcore/mcore-pe.h: Likewise.
14829         * mips/mips.h: Likewise.
14830         * romp/romp.h: Likewise.
14831         * sh/sh.c: Likewise.
14832         * cpphash.c: Likewise.
14833         * cppinit.c: Likewise.
14834         * dwarf2out.c: Likewise.
14835         * dwarfout.c: Likewise.
14836         * gcc.c: Likewise.
14837         * gcc.h: Likewise.
14838         * mips-tfile.c: Likewise.
14839         * protoize.c: Likewise.
14840         * toplev.c: Likewise.
14841         * tree.h: Likewise.
14842
14843         * version.c (version_string): Constify a char*.
14844
14845         * version.h: New file.
14846
14847 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14848
14849         * configure.in: Add mcore-elf and mcore-pe targets.
14850         * configure: Regenerate.
14851
14852         * NEWS: Add note that MCore port has been contributed.
14853
14854         * invoke.texi: Document command line switches for MCore port.
14855         * install.texi: Add MCore to list of supported targets.
14856
14857 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14858
14859         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14860         then we will need to import the frame handling functions.
14861         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14862         to import the frames themselves.
14863
14864 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14865                           Jason Eckhardt  <jle@cygnus.com>
14866
14867         * basic_block.h: Added prototype for reorder_basic_blocks.
14868         * toplev.c: Changes to add -freorder-blocks and graph dump after
14869         block reordering is done.
14870         * flow.c (reorder_block_def): New structure for use during block
14871         reordering.
14872         (REORDER_BLOCK_*): New macros to access members of above structure.
14873         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14874         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14875         functions for block reordering.
14876
14877 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14878
14879         * gcc.texi (Passes): Fix typo.
14880         * md.texi (Standard Names): Ditto.
14881         * tm.texi (Storage Layout): Ditto.
14882
14883 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14884
14885         * cpplib.c (do_define): Only free the old definition if it
14886         actually had one.
14887
14888 2000-02-13   Neil Booth  <NeilB@earthling.net>
14889
14890         * cppfiles.c (read_and_prescan): When emitting deferred
14891         newlines, test speccase[] again instead of checking each
14892         possible whitespace character in turn.  When we encounter \r,
14893         look behind for \n first, then ahead.
14894
14895 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14896
14897         * cse.c (cse_altered): New internal flag.
14898         (cse_insn): Set it if we changed an insn.
14899         (cse_main): Clear cse_altered before each basic block.
14900         Only garbage collect if cse_altered is true afterward.
14901
14902 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14903
14904         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14905
14906 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14907
14908         * combine.c (simplify_comparison): Fix typo.
14909
14910 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14911
14912         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14913         consistently.
14914
14915 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14916
14917         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14918         previously inserted node instead of root node.  Caller changed.
14919
14920 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14921
14922         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14923
14924 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14925
14926         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14927         __dereg_frame_dtor): Add prototype argument.
14928
14929         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14930
14931         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14932
14933         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14934
14935         * gthr-vxworks.h (__gthread_once): Likewise.
14936
14937         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14938
14939 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14940
14941         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14942         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14943         stack pointer in functions w/o saved registers, output LEAVE more often
14944         on TARGET_USE_LEAVE machines.
14945
14946 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14947
14948         * config/arm/arm.c (arm_init_cumulative_args); New function:
14949         Initlaise the CUMULATIE_ARGS strcuture for a function
14950         defintion.
14951         (arm_function_arg): New function: Determine where to place a
14952         function's argument.  Also handles deciding the function's
14953         call cookie.
14954         (current_file_function_operand): New function: Return true if
14955         the symbol is a function which has already been compiled.
14956         (arm_is_long_call_p): New function: Return true if the
14957         indicated function should be called via a long call.
14958         (arm_valid_type_attribute_p): New function: Return true if the
14959         attribute is a valid, arm specific, attribute.
14960         (arm_comp_type_attribute): New function: Return true if the
14961         two types have compatable, arm specific, attributes.
14962
14963         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14964         structure.
14965         (FUNCTION_ARG): Redefine to call arm_function_arg.
14966         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14967         structure field.
14968         (INIT_CUMULATIVE_ARGS): Redefine to call
14969         arm_init_cumulative_args.
14970         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14971         field.
14972         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14973         field.
14974         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14975         functions.
14976         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14977         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14978         (COMP_TYPE_ATTRIBUTES): Define.
14979
14980         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14981         if a long call is needed.
14982         (call_value): Call arm_is_long_call_p to decide if a long call
14983         is needed.
14984         (call_symbol): Call arm_is_long_call_p to decide if a long call
14985         is needed.
14986
14987         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14988
14989 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14990
14991         * README.AVR: New file with information about the avr ports.
14992         * config/avr: New directory with avr port files.
14993
14994 2000-02-11  Andreas Jaeger  <aj@suse.de>
14995
14996         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14997
14998 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14999
15000         * cpphash.c: Fix formatting, update commentary.
15001         (dump_definition): Take three separate arguments instead of a
15002         MACRODEF structure argument.
15003         * cpphash.h: Update prototype of dump_definition.
15004         * cppinit.c (cpp_finish): Update call of dump_definition.
15005
15006         * cpplib.c (do_define): Always create new hash entry with
15007         T_MACRO type.  Remove redundant check for redefinition of
15008         poisoned identifier.  Update call of dump_definition.
15009         (do_undef): Don't call check_macro_name.  Rename sym_length to
15010         len.
15011         (do_error, do_warning): Don't use copy_rest_of_line or
15012         SKIP_WHITE_SPACE.
15013         (do_warning): Don't use pedwarn for the actual warning,
15014         only the notice about its not being in the standard.  (Fixes
15015         bug with #warning in system headers.)
15016         (do_ident): Stricter argument checking - accept only a single
15017         string after #ident.  Also, macro-expand the line.
15018         (do_xifdef): Use cpp_defined.  De-obfuscate.
15019
15020         (do_pragma): Split out specific pragma handling to separate
15021         functions.  Use get_directive_token.  Update commentary.  Do
15022         not pass on #pragma once or #pragma poison to the front end.
15023         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
15024         do_pragma_default): New.
15025
15026 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
15027
15028         * jump.c (jump_optimize_1): The first operand in a relational
15029         can be a CONST_INT.
15030         * optabs.c (emit_conditional_move): Handle relationals which
15031         have a known true/false result.
15032
15033 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15034
15035         * function.c (thread_prologue_and_epilogue_insns): Don't insert
15036         a RETURN insn into a block which already ends with a jump.
15037
15038 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15039
15040         * haifa-sched.c (BUF_LEN): Increase a lot.
15041
15042 2000-02-11  Nick Clifton  <nickc@cygnus.com>
15043
15044         * configure.in: Add tm_p_file specification for thumb targets.
15045         * configure: Regenerate.
15046
15047         * config/arm/thumb-protos.h: New file: Prototypes for exported
15048         functions defined in thumb.c.
15049
15050 2000-02-11  Robert Lipe  <robertl@sco.com>
15051
15052         * Makefile.in (bootstrap-lean): Remove additional files.
15053         (bootstrap2-lean): Likewise.
15054         (VOL_FILES): List of files for above.
15055
15056 2000-02-11  Nathan Sidwell  <nathan@acm.org>
15057
15058         * cpphash.c (special_symbol): Remove spurious argument to
15059         cpp_lookup.
15060
15061 2000-02-11  Joel Sherrill (joel@OARcorp.com>
15062
15063         * configure.in: (i*86-*-rtems*): Swapped elf and coff
15064         stanzas.
15065         * configure: Rebuilt.
15066
15067 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
15068
15069         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
15070
15071 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
15072
15073         * pa.c, pa.h: Remove trigraph sequences within comments.
15074
15075 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
15076
15077         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
15078
15079 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
15080
15081         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
15082
15083 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15084
15085         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
15086
15087 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15088
15089         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
15090         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
15091         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15092         (ASM_FILE_END): Use c4x_file_end.
15093         * config/c4x/c4x.c (c4x_global_label): New function.
15094         (c4x_external_ref, c4x_file_end): Likewise.
15095
15096         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
15097         (c4x_external_ref, c4x_end_file): Likewise.
15098
15099 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
15100
15101         * cppexp.c: Don't include cpphash.h.
15102         (parse_charconst, cpp_lex): Use cpp_defined.
15103         (cpp_lex): Use get_directive_token throughout.  Remove
15104         unnecessary cases from switch.  Move assertion-handling code
15105         down to OTHER case.
15106         (cpp_parse_expr): If we see '+' or '-', check the context to
15107         determine if they are unary or binary operators.  Streamline
15108         the jumps a bit.  Do not call skip_rest_of_line.
15109
15110         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
15111         static.  Export get_directive_token.  Update commentary.
15112         (cpp_defined): New function.
15113         (do_define): Remove reference to T_PCSTRING.  Call
15114         free_definition to release memory for old definition, when
15115         redefining a macro.
15116         (eval_if_expression): Set only_seen_white to 0 before calling
15117         cpp_parse_expr.  Call skip_rest_of_line after it returns.
15118         (cpp_read_check_assertion): Don't preserve a pointer into the
15119         token buffer across a call to cpp_get_token.
15120
15121         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
15122         * cppfiles.c (redundant_include_p): Use cpp_defined.
15123         * cpphash.c (free_definition): New function.
15124         (delete_macro): Use it.  Update commentary.
15125         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
15126         free_definition.
15127         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
15128         from enum node_type.  Prototype cpp_defined and get_directive_token.
15129         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
15130
15131         * fix-header.c (check_macro_names): Use cpp_defined.
15132         (read_scan_file): Set inhibit_warnings and inhibit_errors in
15133         the options structure.
15134
15135 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15136
15137         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
15138
15139 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
15140
15141         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
15142         rather than die->die_tag.
15143
15144 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15145
15146         * combine.c (make_extraction, force_to_mode): Avoid warning on
15147         mixed-signedness conditionals.
15148         (make_field_assignment, nonzero_bits): Likewise.
15149         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
15150         (store_split_bit_field, extract_split_bit_field): Likewise.
15151         (extract_fixed_bit_field, store_bit_field,
15152         * expr.c: Change alignment to be unsigned everywhere.
15153         (move_by_pieces, store_constructor_field, store_constructor):
15154         Alignment parm is unsigned.
15155         (emit_block_move, emit_group_load, emit_group_store): Likewise.
15156         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15157         (do_compare_rtx_and_jump): Likewise.
15158         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
15159         Compare align with GET_MODE_ALIGNMENT.
15160         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
15161         (get_inner_reference): Likewise.
15162         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
15163         (expand_assignment): Local vars for alignment now unsigned.
15164         (store_constructor, store_field, expand_expr, do_jump): Likewise.
15165         (do_compare_and_jump): Likewise.
15166         (store_field): Call new function expr_align.
15167         * expr.h (emit_block_move, emit_group_load, emit_group_store):
15168         Alignment arg now unsigned.
15169         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15170         (do_compare_rtx_and_jump, store_bit_field): Likewise.
15171         (extract_bit_field): Likewise.
15172         * fold-const.c (add_double): Add cast to eliminate signedness warning.
15173         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
15174         (get_best_mode): Alignment arg is unsigned.
15175         * rtl.h (move_by_pieces): Likewise.
15176         * store-layout.c (maximum_field_alignment, set_alignment):
15177         Now unsigned.
15178         (layout_decl): Alignment arg is now unsigned.
15179         Remove unneeded casts.
15180         (layout_record, layout_union, layout_type): Remove unneeded casts.
15181         Local alignment variables now unsigned.
15182         (get_best_mode): Alignment arg now unsigned.
15183         * tree.c (expr_align): New function.
15184         * tree.h (expr_align): Likewise.
15185         (maximum_field_alignment, set_alignment): Now unsigned.
15186         (get_inner_reference): Alignment argument is now pointer to unsigned.
15187         * varasm.c (assemble_variable): Add cast to eliminate warning.
15188
15189 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
15190
15191         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
15192         then store directly into op0.
15193
15194         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
15195         the CALL_INSN, and emit the note immediately after it.
15196
15197 2000-02-10  Nick Clifton  <nickc@cygnus.com>
15198
15199         * config/arm/thumb.md (epilogue): Include a (return) in the
15200         generated insn, and emit it using emit_jump_insn not
15201         emit_insn.
15202
15203 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
15204
15205         * function.c (assign_temp): Change zero-sized arrays to size 1.
15206         * integrate.c (expand_inline_function): Do not update
15207         stack_alignment_needed
15208         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
15209         add some sanity checking, remove optimization for function with
15210         zero frame size.
15211
15212 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15213
15214         * flow.c (mark_regs_live_at_end): Delete unused variables.
15215
15216         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
15217
15218         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
15219         in macro FRAME_GROWS_DOWNWARD.
15220
15221         * stmt.c (expand_end_bindings): Delete unused variable.
15222
15223         * unroll.c (iteration_info): Mark parameter `loop' with
15224         ATTRIBUTE_UNUSED.
15225
15226 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15227
15228         * fixinc/server.c (load_data): Return NULL if the marker line is
15229         not found.
15230         (run_shell): If load_data returns NULL, retry the command once, in
15231         a new shell.
15232
15233         * configure: Rebuilt.
15234
15235 2000-02-09  Bruce Korb  <bkorb@gnu.org>
15236
15237         * gcc/fixincludes:  ** DELETED **
15238         * gcc/fixcpp:  ** DELETED **
15239         * gcc/fixinc-nt.sed:  ** DELETED **
15240         * gcc/just-fixinc:  ** DELETED **
15241         * gcc/Makefile.in:  Removed out-dated commentary
15242         * gcc/configure.in: Removed fast-fixincludes disablement.
15243         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
15244
15245 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15246         * function.c (thread_prologue_and_epilogue_insns): Uncomment
15247         last change.
15248
15249 2000-02-09  Richard Henderson  <rth@cygnus.com>
15250
15251         * jump.c (delete_insn): Don't delete user labels at -O0.
15252
15253 2000-02-09  Robert Lipe  <robertl@sco.com>
15254
15255         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
15256         Don't link with HOST_LIBS.
15257
15258 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15259
15260         * configure.in: Correct --help text for --with-dwarf2.
15261         Put tm-dwarf2.h after other tm files, if it's requested.
15262         * configure: Regenerate.
15263         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
15264         defining it.
15265
15266 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15267
15268         * cpplib.h: Provide HASHNODE typedef and forward decl of
15269         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
15270         DEFINITION, struct hashnode, struct macrodef, struct
15271         definition, scan_decls prototype, default defn of
15272         INCLUDE_LEN_FUDGE moved elsewhere.
15273
15274         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
15275         definition, and struct hashnode moved here. Remove the unused
15276         'predefined' field from struct definition.  Replace the 'args'
15277         union with its sole member.  All users updated (cpphash.c).
15278         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
15279         multiple include guard.
15280
15281         * cpphash.c (hashf): Make static; use better algorithm; drop
15282         HASHSIZE parameter; return an unsigned int.
15283         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
15284         used. Calculate HASHSIZE modulus here.
15285         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
15286         here.
15287         (create_definition): Drop PREDEFINITION parameter.
15288         * cpplib.c (do_define): Don't calculate a hash value here.
15289         Don't pass (keyword == NULL) to create_definition.
15290
15291         * scan.h: Prototype scan_decls here.
15292         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
15293         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
15294         callers of cpp_lookup and cpp_install updated.
15295
15296         * cpphash.c (macarg): Hoist all the flag diddling out of the
15297         function...
15298         (macroexpand): ... and out of the loop that calls macarg.
15299         Skip over the initial paren before macro arguments with
15300         cpp_get_non_space_token; point may be some distance before
15301         that paren.  Abort if it's not there.
15302
15303         * cpplib.c (parse_clear_mark): Delete function.
15304         (parse_set_mark, parse_goto_mark): Make static.
15305         (ACTIVE_MARK_P): New macro.
15306         (skip_block_comment, skip_line_comment): Do not bump the line
15307         if ACTIVE_MARK_P is true.
15308         (cpp_pop_buffer): The buffer to be popped may not have an
15309         active mark.
15310         (cpp_get_token): When looking for the initial paren before
15311         macro arguments, only set a mark in a file buffer, Always
15312         return to that mark before proceeding to call macroexpand or
15313         return a NAME token.
15314
15315         * cpplib.h: Remove prototypes of parse_set_mark,
15316         parse_clear_mark, parse_goto_mark.
15317         (struct cpp_options): Rename 'put_out_comments' to
15318         'discard_comments' and invert its sense.
15319         * cppinit.c, cpphash.c, cpplib.c: All users of
15320         put_out_comments changed to use discard_comments, with
15321         opposite sense.
15322
15323 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15324
15325         * function.c (thread_prologue_and_epilogue_insns): Don't delete
15326         the edge from a block that both jumps and falls through to the
15327         fallthru block.
15328
15329 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
15330
15331         * config/arm/arm.md (movsi): In PIC mode, make sure that a
15332         constant source address is legitimate.
15333
15334 2000-02-09  Philip Blundell  <pb@futuretv.com>
15335
15336         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
15337         correctly.
15338
15339         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
15340         generating PIC.
15341         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
15342
15343 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15344
15345         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
15346         ends with a newline and a NUL.  Don't be so clever manipulating
15347         strings.
15348
15349 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
15350
15351         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
15352         not to BIGGEST_ALIGNMENT.
15353
15354 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
15355
15356         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
15357         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
15358         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
15359         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
15360         * frame.c (execute_cfa_insn): Handle
15361         DW_CFA_GNU_negative_offset_extended.
15362
15363 2000-02-08  Richard Henderson  <rth@cygnus.com>
15364
15365         * flow.c (tidy_fallthru_edges): Split out from ...
15366         (delete_unreachable_blocks): ... here.
15367         (find_basic_blocks): Use it.
15368
15369 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15370
15371         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
15372
15373 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
15374
15375         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
15376         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
15377         (fix-header.o): Don't depend on cpphash.h.
15378
15379         * scan.c (hashstr): New function.
15380         * scan.h: Prototype it.
15381         * fix-header.c: Don't include cpphash.h.  Use hashstr.
15382         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
15383         hashstr.  Report hash table statistics.  Add private
15384         definition of xrealloc.
15385
15386 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15387
15388         * i386.h (TARGET_SWITCHES): Fix typo in option name.
15389
15390 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
15391
15392         * function.c (thread_prologue_and_epilogue_insns): Don't replace
15393         jumps with returns unless they are jumps to the fallthru block.
15394
15395 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
15396
15397         * i386.md (addqi3_cc): Fix contraints.
15398
15399 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15400
15401         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
15402
15403 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
15404
15405         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
15406         carriage return after a macro name.
15407
15408 2000-02-07  Fred Fish  <fnf@be.com>
15409
15410         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15411         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15412
15413 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15414
15415         * cppfiles.c (deps_output): Count spacers in deps_column.
15416
15417 2000-02-07  Neil Booth  <NeilB@earthling.net>
15418
15419         * cppinit.c (initialize_dependency_output): If there is no
15420         suffix, don't try to look for known suffixes.  Use strrchr.
15421         (cpp_start_read): Remove duplicate initialization.
15422
15423 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15424
15425         * calls.c (compute_argument_block_size): New argument
15426         preferred_stack_boundary.
15427         (expand_call): update cfun->preferred_stack_boundary, update call of
15428         compute_argument_block_size
15429         (emit_library_call): Increate cfun->preferred_stack_boundary
15430         to PREFERRED_STACK_BOUNDARY
15431         (emit_library_call_value): Likewise.
15432         * explow.c (allocate_dynamic_stack_spave): Likewise.
15433         * function.c (prepare_function_start): Set
15434         cfun->preferred_stack_boundary
15435         * function.h (struct function): Add preferred_stack_boundary field.
15436         * integrate.c (expand_inline_function): Update
15437         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15438         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15439         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15440
15441 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15442
15443         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15444         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15445         cpp_pedwarn, cpp_pedwarn_with_line,
15446         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15447         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15448         v_cpp_error_with_line, v_cpp_warning_with_line,
15449         cpp_message_from_errno, cpp_perror_with_name): Delete.
15450
15451         * cpperror.c (cpp_print_containing_files): Take starting
15452         buffer as argument.
15453         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15454         (v_cpp_message): Now called directly by all entry points.
15455         Remove -1 case.
15456         (cpp_pfatal_with_name, cpp_message): Delete.
15457         (cpp_notice_from_errno, cpp_ice): New functions.
15458         (cpp_notice): Is now for reporting error conditions, just
15459         without an associated file.
15460         (cpp_error, cpp_error_with_line): Don't do anything if
15461         opts->inhibit_errors is on.
15462         (cpp_pedwarn_with_file_and_line): Take column argument also.
15463
15464         * cpplib.h: Update prototypes of exported functions.
15465         (struct cpp_options): Add inhibit_errors.
15466
15467         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15468         non-error messages.  Include intl.h.
15469
15470         * cppinit.c, cppmain.c: Likewise.  Also, use
15471         cpp_notice_from_errno instead of cpp_perror_with_name or
15472         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15473
15474         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15475         report internal errors.
15476
15477         * cpplib.c (do_define): Switch bcopy to memcpy.
15478         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15479
15480         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15481         bail out early if we hit a line comment.
15482
15483 2000-02-06  Richard Henderson  <rth@cygnus.com>
15484
15485         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15486         * basic-block.h: Declare them.
15487         * emit-rtl.h (active_insn_p): New.
15488         (next_active_insn, prev_active_insn): Use it.
15489         * rtl.h: Declare it.
15490         * function.c (emit_return_into_block): New.
15491         (thread_prologue_and_epilogue_insns): Insert return insns instead
15492         of epilogues when possible.
15493         * jump.c (jump_optimize_1): Remove code to insert a return insn
15494         on the fallthru to the exit block.
15495
15496         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15497         and for non-empty stack frames.
15498         * i386.md (return): Expand to return-pop as needed.
15499
15500 2000-02-06  Richard Henderson  <rth@cygnus.com>
15501
15502         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15503         constant to op1 for testing.
15504
15505 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15506
15507         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15508         (fixuns_truncqfqi2): Use it.
15509
15510 2000-02-06  Richard Henderson  <rth@cygnus.com>
15511
15512         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15513         as a TYPE_LEA insn.
15514
15515         * i386.md (widening and peepholes): Mask the constant instead of
15516         using gen_lowpart.
15517
15518 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15519
15520         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15521         input pointer before possibly branching off to the backslash
15522         code.
15523         * cpphash.c (macroexpand): Correctly delete \r escapes when
15524         stringifying parameters.
15525         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15526         if we can; bail out early if we hit a line comment.
15527         (handle_directive): Treat '# 123' in an .S file just like
15528         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15529         Return 1 for '# not_a_directive'.
15530         (get_directive_token): Pop macro buffers here, so that
15531         cpp_get_token can't sneakily move past a newline.
15532         Add sanity checks.
15533         (cpp_get_token): goto randomchar if handle_directive returns 0.
15534
15535         * cppalloc.c: Update copyright.
15536         * cpplib.c: Merge all the static function prototypes into one
15537         block.
15538         * cpplib.h: Remove #if 0 block.
15539
15540         * cpperror.c: Remove #ifdef EMACS block.
15541         * cppmain.c: Likewise.
15542         * cpphash.c: Remove #if 0 blocks.
15543         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15544         * cpplib.c: Remove #if 0 blocks and code referencing
15545         pcp_inside_if or for_lint.  Remove duplicate error message.
15546         Fix error messages for #else after #else or #elif.  Reformat.
15547         Remove archaic TODO list.
15548         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15549
15550 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15551
15552         * i386/osf1elf.h: Add missing backslash to multiline string.
15553
15554 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15555
15556         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15557
15558 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15559
15560         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15561
15562         * c-common.c: Include expr.h.
15563
15564         * c-pragma.c (mark_align_stack): Add prototype.
15565
15566         * caller-save.c (add_stored_regs): Likewise.
15567
15568         * combine.c (record_promoted_value): Likewise.
15569
15570         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15571         Likewise.
15572
15573         * cppinit.c (new_pending_define): Likewise.
15574
15575         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15576
15577         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15578         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15579         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15580         class_scope_p): Likewise.
15581
15582         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15583         dwarf2out_add_library_unit_info): Likewise.
15584
15585         * ggc.h (ggc_page_print_statistics): Likewise.
15586
15587         * haifa-sched.c (propagate_deps): Likewise.
15588
15589         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15590
15591         * rtl.h (set_stack_check_libfunc): Likewise.
15592
15593         * toplev.h (set_fatal_function): Likewise.
15594
15595         * toplev.c (set_fatal_function): Delete prototype.
15596
15597         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15598
15599 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15600
15601         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15602         (FUNC_END): Likewise.
15603
15604 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15605
15606         * caller-save.c: Include tm_p.h.
15607
15608 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15609
15610         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15611
15612 2000-02-04  Neil Booth  <NeilB@earthling.net>
15613
15614         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15615         it to strcmp.
15616
15617 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15618
15619         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15620         * genflags.c: Use the max_operand_1 logic from genemit.c to
15621         calculate how many arguments gen_insn prototypes have.  Remove
15622         NO_MD_PROTOTYPES ifdefs from the generated file.
15623         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15624         file.  Cast gen_insn initializers to insn_gen_fn.
15625         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15626         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15627
15628 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15629
15630         * fixinc/Makefile.in (HDR): Add machname.h.
15631         (clean): Likewise.
15632
15633 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15634
15635         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15636         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15637         (c4x_cpu_version): Ditto.
15638         * config/c4x/c4x-protos.h: ... here.
15639
15640 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15641
15642         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15643         gen_abstract_function on our context if we're a nested function.
15644
15645 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15646
15647         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15648         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15649
15650 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15651
15652         * fixinc/genfixes(machname.h):
15653         Move the functionality from gen-machine.h into this file.
15654         UNdef MN_NAME_PAT if there are no names to change.
15655         Also, be a little kinder when AutoGen is not present.
15656
15657         * fixinc/Makefile.in(machname.h):
15658         Change the generation rule to use genfixes.
15659
15660         * fixinc/fixfixes.c(machine_name):
15661         machine_name_fix's functionality now dependent upon whether
15662         MN_NAME_PAT is defined.
15663
15664         * fixinc/fixtests.c(machine_name):
15665         ditto.
15666
15667         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15668         of MN_NAME_PAT.
15669
15670         * fixinc/fixlib.h(mn_get_regexps):
15671         ditto
15672
15673         * fixinc/gen-machine.h: DELETED
15674
15675 2000-02-04  Jan Hubicka  <jh@suse.cz>
15676             Richard Henderson  <rth@cygnus.com>
15677
15678         * i386.c (SAVE_REGS_FIRST): Remove.
15679         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15680         (ix86_compute_frame_size): Likewise.
15681         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15682         (ix86_emit_restore_regs): Remove.
15683         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15684         when a frame pointer is in use.
15685         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15686         instead of pop to restore a register when profitable; emit leave
15687         when profitable.
15688         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15689         as a TYPE_LEA insn.
15690         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15691         * i386.md (prologue_allocate_stack): Remove.
15692         (epilogue_deallocate_stack): Remove.
15693         (pro_epilogue_adjust_stack): New.
15694
15695 2000-02-04  Richard Henderson  <rth@cygnus.com>
15696
15697         * function.c (diddle_return_value): Rework to use a callback function.
15698         Use current_function_return_rtx if it's been set up.
15699         (do_clobber_return_reg, clobber_return_register): New.
15700         (do_use_return_reg, use_return_register): New.
15701         (expand_function_end): Use them.
15702         * stmt.c (expand_null_return): Likewise.
15703         * function.h: Declare them.
15704         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15705         (mark_reg): Change arguments as appropriate for callback.
15706         * integrate.c (expand_inline_function): Revert 19 Jan change.
15707
15708 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15709
15710         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15711         (Misc): Say the scheduler, not the Haifa scheduler.
15712
15713 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15714
15715         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15716         when in_mem is set.  Update all callers.
15717
15718 2000-02-04  Richard Henderson  <rth@cygnus.com>
15719
15720         * i386/openbsd.h (INT_ASM_OP): Define.
15721
15722 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15723
15724         * tm.texi: Fix various typos.
15725
15726 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15727
15728         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15729         (MD_STARTFILE_PREFIX_1): New macro.
15730
15731 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15732
15733         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15734         destination when needed.
15735         (strmovsi, strsetsi): New expander.
15736         (strmovsi_1, strsetsi_1): New pattern.
15737         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15738         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15739         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15740         * invoke.texi (align-stringops, inline-all-stringops): Document.
15741
15742 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15743
15744         * i386/netbsd.h (INT_ASM_OP): Define.
15745
15746 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15747
15748         * cpplib.h (cpp_reader): Add new flag, no_directives.
15749         * cpphash.c (macarg): Set it.
15750         * cpplib.c (handle_directive): If no_directives is on and we
15751         find a directive, issue an error and discard the line.
15752
15753 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15754
15755         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15756         FP constants.  Add ! TARGET_FPU check for FP constants.
15757
15758 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15759
15760         * flow.c (find_basic_blocks): Don't kill label_value_list
15761         here.
15762         (cleanup_cfg): Kill it here.
15763
15764 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15765
15766         * expr.c (store_field): Ensure ALIGN is no stricter than the
15767         alignment of EXP.
15768
15769 2000-02-02  Richard Henderson  <rth@cygnus.com>
15770
15771         * jump.c (delete_insn): Partially revert 19 Jan change;
15772         don't convert unused code labels to notes at -O0.
15773
15774 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15775
15776         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15777         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15778
15779 2000-02-01  Richard Henderson  <rth@cygnus.com>
15780
15781         * i386.c (general_no_elim_operand): New.
15782         (nonmemory_no_elim_operand): New.
15783         (ix86_expand_move): Copy eliminable operands before a push.
15784         * i386-protos.h: Declare new functions.
15785         * i386.h (CAN_ELIMINATE): Simplify.
15786         (PREDICATE_CODES): Update.
15787         * i386.md (push insns): Don't allow eliminable register operands.
15788
15789 2000-02-01  Richard Henderson  <rth@cygnus.com>
15790
15791         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15792         replace BLKmode with DECL_RTL's mode.
15793
15794 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15795
15796         * frame.c (find_fde): Convert for loop to do-while so compiler
15797         sees it's always executed at least once.
15798         * libgcc2.c (BBINBUFSIZE): Kill.
15799         (__bb_init_prg): Use fgets.
15800         (__bb_exit_trace_func): Don't paste strings.
15801         * unroll.c (unroll_loop): Initialize unroll_type, not
15802         unroll_number, and tweak logic to match.
15803
15804         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15805         all failure paths.
15806         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15807         (ix86_sched_reorder): Break guts out to
15808         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15809         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15810         any possible use.
15811
15812         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15813         use string concatenation.  Don't save and restore esi.
15814
15815         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15816         (machname.h): Remove script to separate file.  Use two-step
15817         sequence so target is not created if script fails.
15818         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15819         identifiers are defined.
15820         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15821         an empty string, machine_name doesn't need to do anything at
15822         all.
15823         (is_cxx_header): Add more cases to regexp.
15824         * fixinc/fixlib.h: Update prototype.
15825         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15826         mn_get_regexps.
15827         * fixinc/fixincl.c: Define NO_BOGOSITY.
15828
15829         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15830         (hp_sysfile): Add missing comma.
15831         (math_exception): Put the wrapper ifdefs at the beginning and
15832         the end of the file.
15833         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15834
15835 2000-02-01  Richard Henderson  <rth@cygnus.com>
15836
15837         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15838         Use CONST0_RTX.  Update all callers.
15839         * sparc.h, sparc-protos.h: Update accordingly.
15840         * sparc.md (fp mov insns): Use fp_zero_operand directly
15841         where applicable.
15842
15843 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15844
15845         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15846         example.
15847
15848 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15849
15850         * Makefile.in (specs.ready): New target.
15851         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15852
15853 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15854
15855         * fixinc.irix: Use unique filenames for writing into /tmp,
15856         * fixinc.ptx: Likewise.
15857         * fixinc.sco: Likewise.
15858         * fixinc.svr4: Likewise.
15859         * fixinc.winnt: Likewise.
15860
15861 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15862
15863         * tsystem.h: New file.
15864
15865         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15866         s-crtS): Depend on tsystem.h.
15867
15868         * crtstuff.c: Include tsystem.h.
15869         * frame.c: Likewise.
15870         * libgcc2.c: Likewise.
15871
15872 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15873
15874         * builtins.c (expand_builtin_memset): Expand for variable sized
15875         lengths too.
15876
15877 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15878
15879         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15880         on ABI.
15881
15882 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15883
15884         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15885
15886         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15887
15888 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15889
15890         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15891         case 3->2 combining (combining with splitting) in which 2 is CC0
15892         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15893         checked at the begining of the function with the aid of calling
15894         function 'can_combine_p'.
15895
15896 2000-01-31  Dave Brolley  <brolley@redhat.com>
15897
15898         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15899
15900 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15901
15902         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15903         new label.
15904
15905 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15906
15907         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15908
15909         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15910         PROTO -> PARAMS.
15911
15912 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15913
15914         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15915         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15916         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15917         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15918         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15919         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15920         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15921         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15922         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15923         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15924
15925         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15926         Add %(cpp_cpu) to CPP_SPEC.
15927
15928         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15929         Add %(cc1_cpu) to CC1_SPEC.
15930
15931 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15932
15933         * c-decl.c (c_decode_option): Accept optional numeric argument to
15934         -Wformat and set warn_format.
15935         * c-common.c: Don't emit warning about non-constant printf format
15936         string unless warn_format > 1.
15937
15938 2000-01-30  Richard Henderson  <rth@cygnus.com>
15939
15940         * alpha.md (return_internal): Allow after reload only.
15941
15942 2000-01-30  Richard Henderson  <rth@cygnus.com>
15943
15944         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15945         local frame size is zero.
15946
15947 2000-01-30  Richard Henderson  <rth@cygnus.com>
15948
15949         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15950         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15951         * alpha.md (return): Turn into an expander.
15952         (return_internal): Don't use $26.
15953         (epilogue): Emit the return insn.
15954
15955 2000-01-30  Richard Henderson  <rth@cygnus.com>
15956
15957         * alpha.md (negtf2, abstf2): Fix word order thinko.
15958         (extendsftf2): New.
15959         (trunctfsf2): Avoid intermediate rounding errors.
15960
15961 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15962
15963         * cppfiles.c (find_position): Drop 'colp' argument, return the
15964         new line base.
15965         (read_and_prescan): Adjust to match.  Don't ever manipulate
15966         line or line_base except via find_position.
15967
15968 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15969
15970         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15971         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15972         Regenerate.
15973
15974 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15975
15976         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15977         just print "<command line>".  If 'filename' is null or an
15978         empty string, print "<stdin>" for the filename.
15979         * cpplib.c (do_define): Don't print the 'location of the
15980         previous definition' message if we're still parsing the
15981         command line.
15982         (cpp_pedwarn_with_file_and_line): Always call
15983         cpp_file_line_for_message.
15984
15985 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15986
15987         * flow.c (mark_regs_live_at_end): Fix typo.
15988
15989 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15990
15991         * c-common.c: Adjust variable names, comments, help strings to c99.
15992         * c-lex.c: Likewise.
15993         * c-parse.y: Likewise.
15994         * c-tree.h: Likewise.
15995         * cccp.c: Likewise.
15996         * cpplib.h: Likewise.
15997         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15998         * cppinit.c: Likewise.
15999
16000 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16001
16002         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
16003         * c4x.c: Define the optab rtx values.
16004         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
16005         (c4x_emit_libcall): Use new optab rtx values.
16006         (c4x_emit_libcall3): Likewise.
16007         (c4x_emit_libcall_mulhi): Likewise.
16008         * c4x-protos.h: Add prototypes for optab rtx values and change
16009         prototypes for above c4x_emit_libcall functions.
16010
16011 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16012
16013         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
16014         syntax is used.
16015         (c4x_function_prologue): Use regnames intead of float_reg_names when
16016         TI syntax is used.
16017         (c4x_function_epilogue): Likewise.
16018         (c4x_print_operand): Likewise.
16019         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
16020         * c4x.md (set_high): Disable for TARGET_TI.
16021
16022 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16023
16024         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
16025         of framepointer + constant to ADDR_REGS class.
16026         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
16027         * c4x.c (std_or_reg_operand): New function.
16028         * c4x-protos.h (std_or_reg_operand): Prototype it.
16029
16030 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16031
16032         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
16033                 object names as libgcc2.c.
16034         * libgcc.S: Use newly defined names.
16035
16036 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
16037         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
16038         function.
16039         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
16040         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
16041         (FLOW_LOOP_LAST_BLOCK): Likewise.
16042
16043 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16044
16045         * basic-block.h (struct loop): New fields 'first' and 'last'.
16046         * flow.c (flow_loops_find): Compute loop->first and loop->last.
16047         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
16048         and loop->last to check for NOTE_INSN_LOOP_END.
16049
16050 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
16051
16052         * predict.c (estimate_probability): Use the new FIRST and LAST fields
16053         of the loop descriptor rather than HEADER and LATCH. Also added
16054         missing break statements as well making some coding style modifications
16055         as suggested by Michael Hayes.
16056
16057 2000-01-28  Richard Henderson  <rth@cygnus.com>
16058
16059         * flow.c (find_basic_blocks): Remove do_cleanup argument.
16060         Break out that code ...
16061         (cleanup_cfg): ... here.
16062         (commit_one_edge_insertion): Detect a return instruction being
16063         emitted to an edge.  Emit a barrier following; clear fallthru.
16064         (commit_edge_insertions): Verify CFG consistency.
16065         * function.c (expand_function_start): Kill unused variable.
16066         (expand_function_end): Likewise.
16067         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
16068         to insert the epilogue.
16069
16070         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
16071         (delete_null_pointer_checks): Likewise.
16072         * output.h: Likewise.
16073         * reg-stack.c (reg_to_stack): Likewise.
16074         * toplev.c (rest_of_compilation): Likewise.  Run
16075         thread_prologue_and_epilogue_insns after rebuilding the CFG.
16076
16077 2000-01-28  Richard Henderson  <rth@cygnus.com>
16078
16079         * Makefile.in (flow.o): Revert 24 Jan change.
16080         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
16081         FUNCTION_VALUE result to DECL_RESULT's mode.
16082
16083         * haifa-sched.c (schedule_insns): Don't recompute reg info
16084         after reload.
16085
16086 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
16087
16088         * configure.in: Make --enable-cpplib the default.
16089         * configure: Regenerate.
16090         * gcc.dg/990119-1.c: No longer expected to fail.
16091
16092 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
16093
16094         * jump.c (jump_optimize_1): Delete an optimization that is also done
16095         by merge_blocks in flow.
16096
16097 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16098
16099         * diagnostic.c (build_message_string, output_printf,
16100         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
16101         (build_location_prefix): Fix non-literal format string.
16102
16103 2000-01-27  Richard Henderson  <rth@cygnus.com>
16104
16105         * alpha.md (trunctfsf2): New.
16106
16107 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
16108
16109         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
16110
16111 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16112
16113         * cppinit.c (cpp_handle_option): Recognize C++ comments under
16114         -std=gnu89.
16115         * cpplib.c (skip_block_comment, skip_line_comment): Split code
16116         out of...
16117         (skip_comment) ... here.  Permit C++ comments in system
16118         headers always.  Warn about C++ comments in user code under
16119         -std=gnu89 -pedantic.
16120         (copy_comment): Use skip_comment.
16121         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
16122         return EOF.
16123         (consider_directive_while_skipping, do_else, do_endif): Call
16124         validate_else unconditionally.
16125         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
16126         text after the conditional in a system header.
16127         * cpplib.h (struct cpp_buffer): Add flag
16128         warned_cplusplus_comments.
16129
16130 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16131
16132         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
16133         Use unshare_all_rtl_1.
16134         (unshare_all_rtl_again): New function.
16135         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
16136
16137         * function.c (purge_addressof_1): Use unshare_all_rtl_again
16138         rather than resetting the 'used' flags ourself.
16139
16140         * toplev.c (rest_of_compilation): Add current_function_decl
16141         to the unshare_all_rtl call.
16142         * tree.h: Prototype unshare_all_rtl.
16143         * rtl.h: Prototype unshare_all_rtl_again here.
16144
16145 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16146
16147         * genoutput.c (output_prologue): Include ggc.h in generated
16148         files.
16149         * Makefile.in (insn-output.o): Depends on ggc.h.
16150
16151 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
16152             Hans-Peter Nilsson  <hp@bitrange.com>
16153
16154         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
16155         Remove redundant include of xm-ns32k.h.
16156         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
16157         Remove redundant include of xm-ns32k.h.
16158         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
16159         Remove redundant include of xm-ns32k.h.
16160         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
16161
16162         * ns32k/ns32k.h: Update comment on multiply-add instructions.
16163         (TARGET_SWITCHES): Add documentation strings.
16164         (DWARF_FRAME_REGNUM): Override default definition.
16165         (REG_CLASS_CONTENTS): Add comments.
16166         (SUBSET_P): Format to reduce line length.
16167         (SMALL_REGISTER_CLASSES): Make a run time option.
16168         (GO_IF_NONINDEXED_ADDRESS): Reformat.
16169         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
16170         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
16171         (regclass_map): fix typo in comment.
16172         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
16173         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
16174         (trace, reg_or_mem_operand): Delete, unused function.
16175         (calc_address_cost): Small offsets are cheaper than large ones.
16176         (expand_block_move): Generate more efficient code when bytes is a
16177         known at compile time.
16178         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
16179         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
16180         instead of reg_or_mem_operand.
16181
16182         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
16183         not general_operand.  Similarly use "=rm" or stricter, not "=g".
16184         For input operands, use stricter constraints than "g" if not
16185         general_operand.  Similarly use stricter predicate than
16186         "general_operand" when stricter constraints than "g" are present,
16187         except for matching constraints.
16188         (movstrsi): Use "memory_operand" for operands 0 and 1.
16189         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
16190         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
16191         not reg_or_mem_operand.
16192         (udivmoddisi4): Ditto.
16193         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
16194         Use nonimmediate_operand for operand 3, not register_operand.
16195         (udivmoddiqi4_internal): Use register_operand for operand 1, not
16196         reg_or_mem_operand.
16197
16198 2000-01-27  Fred Fish  <fnf@be.com>
16199
16200         * gthr-posix.h: Fix typo; compatibily -> compatibility.
16201         * gthr-single.h: Likewise.
16202         * gthr-solaris.h: Likewise.
16203         * gthr-vxworks.h: Likewise.
16204         * gthr-win32.h: Likewise.
16205         * gthr.h: Likewise.
16206
16207 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16208
16209         * cppinit.c: Add " (cpplib)" to end of string printed by
16210         -v / --version.
16211
16212 2000-01-27  Richard Henderson  <rth@cygnus.com>
16213
16214         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
16215         testing for a signed comparison.
16216         (alpha_emit_floatuns): New.
16217         * alpha-protos.h: Declare it.
16218         * alpha.md (floatunsdisf2, floatunsdidf2): New.
16219         (extendsfdf2): Tidy.
16220
16221 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
16222
16223         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
16224         no -g option specifying debugging format, default to -gstabs+.
16225
16226 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
16227
16228         * calls.c (special_function_p): New argument fork_or_exec.
16229         (expand_call): When profile_arc_flag is set and the function
16230         is in the fork_or_exec group, call __bb_fork_func first.
16231         * libgcc2.c, _bb module (__bb_fork_func): New function.
16232         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
16233         output file.
16234         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
16235         * tree.h (special_function_p): Update prototype.
16236
16237 2000-01-26  Richard Henderson  <rth@cygnus.com>
16238
16239         * alpha.c (alpha_split_tfmode_pair): New.
16240         * alpha-protos.h: Declare it.
16241         * alpha.md (abstf2, negtf2): New.
16242         (movtf insn): Add input G constraint.
16243         (movtf splitter): Use alpha_split_tfmode_pair.
16244
16245 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16246
16247         * i386/cygwin.h: PROTO -> PARAMS.
16248
16249 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
16250
16251         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
16252         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
16253         using _Qp_cmp/_Q_cmp and testing the return value.
16254         (print_operand): Call reverse_condition_maybe_unordered if
16255         we are handling CCFPmode or CCFPEmode.
16256         Handle ORDERED, UN* and LTGT comparisons.
16257         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
16258         if not TARGET_HARD_QUAD.
16259         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
16260         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
16261         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
16262         Adjust gen_b* calls so that they reflect return comparison of
16263         sparc_emit_float_lib_cmp.
16264
16265 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16266
16267         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
16268         incoming operands array is large enough for one more operand.
16269         (alpha_emit_xfloating_arith): Likewise.
16270
16271 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16272
16273         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
16274         file with one line and no trailing newline.
16275         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
16276         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
16277         checking if the match is on the line.
16278         * fixinc/gnu-regex.c: Provide regerror not __regerror.
16279
16280 2000-01-25  Richard Henderson  <rth@cygnus.com>
16281
16282         * sparc.c (output_cbranch): Fix accidental squashing of the
16283         fp branch pre-delay nop.
16284
16285 2000-01-25  Richard Henderson  <rth@cygnus.com>
16286
16287         * tree.def (UNNE_EXPR): Remove.
16288         * c-typeck.c (build_binary_op): Don't handle it.
16289         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
16290
16291         * rtl.def (UNNE): Remove.
16292         (LTGT): Add.
16293         * jump.c (reverse_condition): Update accordingly.
16294         (swap_condition): Likewise.
16295         (comparison_dominates_p): Handle unordered comparisons.
16296         (reverse_condition_maybe_unordered): New.
16297         * rtl.h (reverse_condition_maybe_unordered): Declare.
16298
16299         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
16300         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
16301         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
16302         * sparc.md (bltgt): New.
16303
16304 2000-01-25  Nick Clifton  <nickc@redhat.com>
16305
16306         * emit-rtl.c (emit_insn): Only check machine class insns for
16307         improper emission of a RETURN.
16308
16309 2000-01-25  Richard Henderson  <rth@cygnus.com>
16310
16311         * Makefile.in (flow.o): Depend on $(EXPR_H).
16312         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
16313         duplicate the structure of diddle_return_value for keeping regs live.
16314
16315 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16316
16317         * loop.c (current_loop_info): Delete.
16318         (consec_sets_invariant_p): Add loop argument, update callers.
16319         (get_condition_for_loop): Likewise.
16320         (count_nonfixed_reads, update_giv_derive): Likewise.
16321         (simplify_giv_expr, general_induction_var): Likewise.
16322         (consec_sets_giv, recombine_givs): Likewise.
16323         (move_movables): Delete loop_start and loop_end arguments,
16324         add loop argument, and update callers.
16325         (find_mem_givs, check_final_value): Likewise.
16326         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
16327         (loop_invariant_p): Rename from invariant_p, add loop argument, and
16328         update callers.
16329         (basic_induction_var): Add loop argument, delete loop_level argument,
16330         and update callers.
16331         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
16332         add loop argument, and update callers.
16333         (find_splittable_regs, find_splittable_givs): Likewise.
16334         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
16335         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
16336         (biv_total_increment): Delete loop_start and loop_end arguments;
16337         update callers.
16338         (precondition_loop_p): Delete loop_start and loop_info arguments;
16339         update callers.
16340         * loop.h (get_condition_for_loop): Add loop argument.
16341         (biv_total_increment): Delete loop_start and loop_end arguments.
16342         (precondition_loop_p): Delete loop_start and loop_info arguments;
16343         add loop argument.
16344         (final_biv_value): Delete loop_start and loop_end arguments;
16345         add loop argument.
16346         (final_giv_value, back_branch_in_range_p): Likewise.
16347
16348 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16349
16350         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
16351
16352 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16353
16354         * Makefile.in (c-gperf.h) : Change the "See" pointer to
16355         point to the new "generated_files" doc.
16356
16357 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16358
16359         * config/fp-bit.c (_unord_f2): Fix typo.
16360
16361 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16362
16363         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
16364         c-typeck.c, objc/objc-act.c: Remove all references to obstack
16365         functions obsoleted by GC, such as push_obstacks_nochange,
16366         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
16367         and code which existed only to decide whether or not to call
16368         them.  Remove now-unused NESTED argument from start_function;
16369         all callers changed.  Do not change behavior based on ggc_p.
16370         The use of the ixp_obstack in c-iterate.c and the util_obstack
16371         in objc/objc-act.c remain; these are not obsoleted by garbage
16372         collection.
16373         * c-tree.h: Update prototype for start_function.
16374
16375         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
16376
16377 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16378
16379         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
16380         mips16.
16381
16382 2000-01-25  Richard Henderson  <rth@cygnus.com>
16383
16384         * sparc-protos.h (select_cc_mode): Declare.
16385         * sparc.c (select_cc_mode): New.  Handle unordered compares.
16386         (output_cbranch): Always reverse via code change.  Handle
16387         unordered compares.  Factor tests and string updates.
16388         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
16389         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
16390         * sparc.md (bunordered, bordered): New.
16391         (bungt, bunlt, buneq, bunge, bunle): New.
16392
16393 2000-01-25  Richard Henderson  <rth@cygnus.com>
16394
16395         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
16396         * ggc-common.c (ggc_add_rtx_varray_root): New.
16397         (ggc_mark_rtx_varray): New.
16398         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
16399         functions down below ggc_mark_foo.
16400         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
16401
16402 2000-01-25  Richard Henderson  <rth@cygnus.com>
16403
16404         * alpha.c (secondary_reload_class): Don't allocate a secondary
16405         for integral mode memories into FLOAT_REGS.  Rearrange the more
16406         complicated memory expression inward.
16407
16408 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16409
16410         * inclhack.def: Fixes to play nicer with FreeBSD, and
16411         corrections to comments.
16412         (cxx_unready): Add select expression.
16413         (irix_sockaddr): Add bypass expression.
16414         (machine_ansi_h_va_list): New fix.
16415         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16416         Split out addition of "#include <stdarg.h>" to...
16417         (stdio_stdarg_h): ... here.
16418         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16419         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16420         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16421         size_t.
16422         (ultrix_ifdef): Tighten up select expression.
16423
16424         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16425         re_ct and max_mach to avoid use of shell.  Make printed names
16426         match names in inclhack.def.  Use static copyright date.
16427         Don't count c_test and test expressions as requiring regex_t
16428         slots.  Add some commentary.
16429         * inclhack.tpl: Do not include the 'This script contains N
16430         fixup scripts' line if PROGRAM is defined.  Use static
16431         copyright date.
16432
16433 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16434
16435         * dwarf2out.c: include "varray.h", not dyn-string.h.
16436         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16437         (addr_const_to_string, addr_to_string): Lose.
16438         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16439         (struct dw_val_struct): val_addr is now an rtx.
16440         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16441         (used_rtx_varray): New varray.
16442         (dwarf2out_init): Initialize it.
16443         (save_rtx): New fn.
16444         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16445         addr_to_string.
16446         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16447         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16448         * Makefile.in (dwarf2out.o): Update dependencies.
16449
16450 2000-01-24  Richard Henderson  <rth@cygnus.com>
16451
16452         * i386.c (i386_dwarf_output_addr_const): New.
16453         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16454
16455         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16456         if defined.
16457         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16458         * i386.c (i386_simplify_dwarf_addr): New.
16459         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16460
16461 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16462
16463         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16464         TYPE_STUB_DECL is NULL.
16465
16466 2000-01-24  Richard Henderson  <rth@cygnus.com>
16467
16468         * builtins.c (expand_tree_builtin): Move ...
16469         * c-common.c (expand_tree_builtin): ... here.
16470
16471 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16472
16473         * loop.h (LOOP_INFO): New accessor macro.
16474         * basic-block.h (struct loop): Rename field `info' to `aux'.
16475         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16476         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16477         * unroll.c (loop_iterations, unroll_loop): Likewise.
16478
16479 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16480
16481         * config/i386/t-cygwin: Accomodate new winsup directory layout
16482         when searching for include files.
16483
16484 2000-01-24  Richard Henderson  <rth@cygnus.com>
16485
16486         * rtl.def: Add unordered fp comparisions.
16487         * tree.def: Likewise.
16488         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16489
16490         * builtins.c (expand_tree_builtin): New function.
16491         * c-typeck.c (build_function_call): Use it.
16492         (build_binary_op): Support unordered compares.
16493         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16494
16495         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16496         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16497         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16498         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16499         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16500         return UNKNOWN.
16501         (swap_condition): Handle unordered compares.
16502         (thread_jumps): Check can_reverse before reversing.
16503         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16504         reversed for FP.
16505
16506         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16507         setcc is present before acking for cmp_optab.  Update all callers.
16508         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16509         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16510         * expr.c (expand_expr): Likewise.  Support unordered compares.
16511         (do_jump, do_store_flag): Likewise.
16512         * expr.h (enum libfunc_index): Add unordered compares.
16513
16514         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16515         (DPBIT_FUNCS): Add _unord_df.
16516         * config/fp-bit.c (_unord_f2): New.
16517         * fp-test.c (main): Try unordered compare builtins.
16518
16519         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16520         * alpha.c (alpha_comparison_operator): Check mode properly.
16521         (alpha_swapped_comparison_operator): Likewise.
16522         (signed_comparison_operator): Likewise.
16523         (alpha_fp_comparison_operator): New.
16524         (alpha_emit_conditional_branch): Handle unordered compares.
16525         * alpha.h (PREDICATE_CODES): Update.
16526         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16527         (bunordered, bordered): New.
16528
16529 2000-01-24  Richard Henderson  <rth@cygnus.com>
16530
16531         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16532         * alpha.md (movtf): New expander, insn, and splitter.
16533
16534 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16535
16536         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16537         dead registers.
16538
16539 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16540
16541         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16542         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16543          REG_ALLOC_ORDER): Add frame pointer
16544         (FRAME_POINTER_REGNUM): Set to 20
16545         (HARD_FRAME_POINTER_REGNUM): New macro.
16546         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16547         to HARD_FRAME_POINTER.
16548         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16549         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16550         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16551         (HI_REGISTER_NAMES): Add "frame".
16552         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16553         (debug_reg): Handle FRAME_POINTER_REGNUM.
16554         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16555         GENERAL_REGS and INDEX_REGS.
16556         * i386.c (SAVED_REGS_FIRST): new macro.
16557         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16558         (ix86_decompose_address, memory_address_length): Likewise.
16559         (regclass_map): Add frame pointer.
16560         (call_insn_operand): Handle frame_pointer_rtx.
16561         (reg_no_sp_operand): Likewise.
16562         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16563         (print_operand, legitimize_pic_address): Fix formating.
16564         (ix86_compute_frame_size): Make static, update prototype, new
16565         parameters padding1, padding2, use ix86_nsaved_regs, use
16566         stack_alignment_needed.
16567         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16568         to HARD_FRAME_POINTER_REGNUM conversions.
16569         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16570         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16571         (print_reg): Abort on FRAME_POINTER_REGNUM
16572
16573 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16574
16575         * i386.h (PREDICATE_CODES): Add aligned_operand.
16576         * i386.c (aligned_operand): New function.
16577         (ix86_aligned_p): Kill.
16578         * i386.md (movhi_1): Emit mov for aligned operands.
16579         (promoting peep2s): Use aligned_operand.
16580
16581 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16582
16583         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16584         expression to allow underscores in macro names.
16585         (fix_char_macro_defines): Increment scanning pointer.
16586
16587 2000-01-23  Richard Henderson  <rth@cygnus.com>
16588
16589         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16590         * alpha/osf5.h: New file.
16591         * configure.in (alpha-*-osf5): Add it to tm_file.
16592
16593         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16594
16595         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16596         (alpha_emit_xfloating_cvt, function_arg): Declare.
16597         * alpha.c (alpha_emit_conditional_branch): Call
16598         alpha_emit_xfloating_compare for TFmode compares.
16599         (alpha_lookup_xfloating_lib_func): New.
16600         (alpha_compute_xfloating_mode_arg): New.
16601         (alpha_emit_xfloating_libcall): New.
16602         (alpha_emit_xfloating_arith): New.
16603         (alpha_emit_xfloating_compare): New.
16604         (alpha_emit_xfloating_cvt): New.
16605         (print_operand): Add default abort case.
16606         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16607         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16608         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16609         (RETURN_IN_MEMORY): True for TF/TCmode.
16610         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16611         (FUNCTION_ARG): Move to function_arg.
16612         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16613         (ASM_OUTPUT_LONG_DOUBLE): New.
16614         (ASM_OUTPUT_DOUBLE): Always output bits.
16615         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16616         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16617         (extenddftf2, trunctfdf2): New.
16618
16619 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16620
16621         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16622         * config/sparc/sol2.h: ... here.
16623
16624 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16625
16626         * basic-block.h (struct loops): New field `levels'.
16627         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16628         (flow_loop_level_compute): Initialise level to 1.
16629         (flow_loops_find): Set loops->levels.
16630         (flow_loops_dump): Print loops->levels.
16631
16632 2000-01-23  Richard Henderson  <rth@cygnus.com>
16633
16634         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16635         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16636
16637 2000-01-23  Richard Henderson  <rth@cygnus.com>
16638
16639         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16640         * i386.h (DBX_REGISTER_NUMBER): Use them.
16641         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16642         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16643         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16644         * i386/sequent.h: Kill incorrect comment.
16645
16646 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16647
16648         * ggc-page.c (struct page_entry): Make `context_depth' an
16649         `unsigned short'.
16650         (struct globals): Likewise.
16651
16652 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16653
16654         * loop.c (check_dbra_loop): When checking a loop for
16655         reversability, check the source of any stores to ensure
16656         they don't depend on an initial value.
16657
16658 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16659
16660         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16661
16662 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16663
16664         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16665         'pz_scan' into scope of entire function.  Only affects
16666         compiles with -DDEBUG.
16667
16668 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16669
16670         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16671         section naming to that prior to 2000-01-07 patch.
16672         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16673         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16674         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16675         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16676         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16677
16678 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16679
16680         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16681         constant.
16682
16683 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16684
16685         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16686         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16687
16688 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16689
16690         * cpphash.c (change_newlines): Delete function.
16691         (struct argdata): Delete 'newlines' and 'use_count' fields.
16692         (macroexpand): Remove code referencing those fields.
16693
16694 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16695
16696         * loop.c (loops_info): New variable.
16697         (loop_optimize): Allocate loops->array and free it on exit.
16698         Allocate memory for loops_info and assign to each loop,
16699         replacing alloca.
16700         (find_and_verify_loops): Do not allocate loops->array.
16701
16702 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16703
16704         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16705
16706 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16707
16708         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16709         pseudos if expanded after first flow.
16710         (movdi_pic_label_ref): Likewise.
16711
16712 2000-01-20  Richard Henderson  <rth@cygnus.com>
16713
16714         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16715
16716 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16717
16718         * Makefile.in (fixinc.sh): Depend on specs.
16719         * fixinc/Makefile.in: Add rule to create machname.h.
16720         (fixlib.o): Depend on machname.h.
16721         * fixinc/fixtests.c (machine_name): New test.
16722         * fixinc/fixfixes.c (machine_name): New fix.
16723         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16724         the machine_name test and fix.
16725         * fixinc/fixlib.h: Prototype it.
16726         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16727         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16728
16729         * gcc.c (do_spec_1) [case P]: Take care not to create
16730         identifiers with three leading or trailing underscores.
16731
16732         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16733         (fixincl): Don't specify libraries twice on link line.
16734         (gnu-regex.o): Remove special rule.
16735         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16736         defined by config.h.  Do not define _REGEX_RE_COMP.
16737         (regcomp): Allocate and initialize a fastmap.
16738         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16739
16740 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16741
16742         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16743
16744 2000-01-19  Richard Henderson  <rth@cygnus.com>
16745
16746         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16747         arguments with BB.  Update all callers.  Tidy line wrapping.
16748
16749 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16750
16751         * emit-rtl.c (try_split): Return last_insn if we split the
16752         last_insn.
16753
16754 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16755
16756         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16757         (ix86_initial_elimination_offset): Declare.
16758         * i386.c (ix86_nsaved_regs): Break out from ...
16759         (ix86_can_use_return_insn_p): ... here.
16760         (ix86_emit_save_regs): Break out from ...
16761         (ix86_expand_prologue): ... here.
16762         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16763         out from ...
16764         (ix86_expand_epilogue): ... here.
16765         (ix86_compute_frame_size): Make static, add prototype.
16766         (ix86_initial_elimination_offset): Break out from ...
16767         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16768
16769 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16770
16771         * recog.h (OUT_FCN): Delete.
16772
16773         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16774
16775 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16776
16777         * cppalloc.c: PROTO -> PARAMS.
16778         * cpperror.c: Likewise.
16779         * cppfiles.c: Likewise.
16780         * cpplib.c: Likewise.
16781         * cpplib.h: Likewise.
16782
16783         * config/arm/arm-protos.h: PROTO -> PARAMS.
16784         * config/arm/arm.c: Likewise.
16785         * config/c4x/c4x.c: Likewise.
16786         * config/fr30/fr30-protos.h: Likewise.
16787         * config/nextstep.c: Likewise.
16788         * config/pa/pa.c: Likewise.
16789         * config/pj/pj.c: Likewise.
16790         * config/rs6000/rs6000.c: Likewise.
16791         * config/v850/v850-protos.h: Likewise.
16792         * config/v850/v850.c: Likewise.
16793
16794 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16795
16796         * i370-protos.h: New file.
16797
16798         * i370.c: Include tm_p.h.  Fix compile time warnings.
16799
16800         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16801         warnings.
16802
16803         * i370.md: Likewise.
16804
16805 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16806
16807         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16808         (target_isinf, target_isnan, eisnan): Mark parameter with
16809         ATTRIBUTE_UNUSED.
16810         (eiisinf): Wrap in INFINITY.
16811         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16812         (ibmtoe): Remove unused variable `rndsav'.
16813
16814 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16815
16816         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16817         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16818
16819 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16820
16821         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16822         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16823         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16824
16825         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16826         Recognize Emacs mode markers also.
16827         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16828         C++ comments in C++ headers.  Call is_cxx_header only if
16829         necessary.
16830
16831         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16832         bypass for ncurses.
16833         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16834         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16835         ... these, which use the new C fixes.
16836         (math_exception): Escape literal '+' in bypass expression.
16837
16838         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16839         Regenerate.
16840
16841 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16842
16843         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16844         inside the MEM.
16845
16846 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16847
16848         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16849         prior to calling scan_loop.
16850
16851 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16852
16853         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16854         (split_branches, calc_live_regs): Likewise.
16855
16856 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16857
16858         * sh.md (fpu_single, fp_mode): New attributes.
16859
16860 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16861
16862         * loop.c (current_loop_info): Renamed from loop_info_data
16863         and changed to a pointer.
16864         (loop_optimize): Allocate loop_info structure for each loop
16865         and initialise to zero.
16866         (scan_loop): Set current_loop_info.
16867
16868         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16869         on iteration_var.
16870
16871 2000-01-19  Richard Henderson  <rth@cygnus.com>
16872
16873         * stupid.c: Die die die.
16874         * Makefile.in (OBJS): Remove stupid.o.
16875         (stupid.o): Likewise.
16876
16877         * except.c (emit_eh_context): Don't emit USEs for stupid.
16878         * explow.c (probe_stack_range): Likewise.
16879         * flags.h (obey_regdecls): Remove.
16880         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16881         when not optimizing.
16882         (life_analysis): Limit data collection when not optimizing.
16883         (mark_regs_live_at_end): Always mark the return value registers.
16884         (mark_used_regs): Remove dummy RETURN case.
16885         (print_rtl_with_bb): Don't consult obey_regdecls.
16886         * function.c (use_variable, use_variable_after): Remove.
16887         (assign_parms): Consult optimize not obey_regdecls.
16888         (expand_function_start): Don't emit USEs for stupid.
16889         (expand_function_end): Likewise.
16890         * global.c (build_insn_chain): Export.
16891         * integrate.c (expand_inline_function): Kill return-value USE
16892         handling code.
16893         * jump.c (jump_optimize_1): Do simple jump optimizations and
16894         dead code elimination.
16895         (calculate_can_reach_end): Remove check_deleted argument.
16896         (delete_insn): Patch out insns even when not optimizing.
16897         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16898         * rtl.h (use_variable, use_variable_after): Remove declarations.
16899         (build_insn_chain): Declare.
16900         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16901         (expand_end_bindings): Likewise.
16902         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16903         * toplev.c (obey_regdecls): Remove.
16904         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16905         flow1, local-alloc, and reload.
16906         (main): Don't set obey_regdecls.
16907
16908         * config/nextstep.c (handle_pragma): Likewise.
16909
16910         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16911
16912         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16913
16914 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16915
16916         * alpha-protos.h: PROTO -> PARAMS.
16917         * alpha.c: Likewise.
16918         * elf.h: Likewise.
16919         * h8300.c: Likewise.
16920         * i386-protos.h: Likewise.
16921         * i386.c: Likewise.
16922         * m32r-protos.h: Likewise.
16923         * m32r.c: Likewise.
16924         * mips.c: Likewise.
16925         * mips.md: Likewise.
16926         * gmon-sol2.c: Likewise.
16927         * sparc.c: Likewise.
16928
16929 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16930
16931         * ns32k-protos.h: New file.
16932
16933         * ns32k.c: Fix compile time warnings.
16934
16935         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16936         warnings.
16937
16938         * ns32k.md: Likewise.
16939
16940 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16941
16942         * vax-protos.h: New file.
16943
16944         * vax.c: Fix compile time warnings.
16945
16946         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16947         warnings.
16948
16949         * vax.md: Likewise.
16950
16951         * vaxv.md: Likewise.
16952
16953 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16954
16955         * romp-protos.h: New file.
16956
16957         * romp.c: Fix compile time warnings.
16958
16959         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16960         warnings.
16961
16962         * romp.md: Likewise.
16963
16964 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16965
16966         * we32k-protos.h: New file.
16967
16968         * we32k.c: Fix compile time warnings.
16969
16970         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16971         warnings.
16972
16973 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16974
16975         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16976
16977         * except.c (eh_regs): Likewise.
16978
16979         * final.c (output_operand): Likewise.
16980
16981         * fold-const.c (target_isinf, target_isnan): Likewise.
16982
16983 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16984
16985         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16986         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16987
16988         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16989         when optimize_size.
16990         (clrstrsi): Rewrite.
16991         (strsethi, strsetqi): New expanders.
16992         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16993         (cmpstrsi): Emit compare insn before cmpstrsi_1
16994         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16995         (strlensi_1): Likewise.
16996         (cmpstrsi_1): Likewise; do not output compare.
16997         (strlen expander): Do not unroll when optimizing for size.
16998         (*subsi3_carry): Rename to subsi3_carry
16999         (addqi3_cc): New pattern.
17000         * i386.h (processor_costs): Add move_ratio field.
17001         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
17002         * i386.c (*_cost): Set move_ratio.
17003         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
17004         (x86_expand_strlensi_1): Rewrite the main loop.
17005
17006 2000-01-17  Richard Henderson  <rth@cygnus.com>
17007
17008         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
17009         * cse.c (find_comparison_args, fold_rtx): Likewise.
17010         * integrate.c (subst_constants): Likewise.
17011         * loop.c (get_condition): Likewise.
17012
17013         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
17014
17015         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
17016
17017 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17018
17019         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
17020         (RESTORE_WARN_FLAGS): Unpack it.
17021         Change semantic type of extension to ttype.
17022         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
17023         * c-parse.y, c-parse.c, objc/objc-parse.y,
17024         objc/objc-parse.c: Regenerate.
17025
17026 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
17027
17028         * fixinc/fixlib.c: Add copyright notice.
17029         (compile_re): New function.
17030         * fixinc/fixlib.h: Prototype compile_re.
17031
17032         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
17033         Use compile_re to compile regular expressions.
17034
17035         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
17036         where the pattern matched.
17037
17038         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
17039         use 'replace'.
17040         (ultrix_ansi_compat): Likewise.
17041         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
17042         add egrep test.
17043         (interactv_add2, interactv_add3): Delete.
17044         (x11_sprintf): Don't use filename glob.
17045         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
17046         Regenerate.
17047
17048 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17049
17050         * print-rtl.c: PROTO -> PARAMS.
17051         * real.c: Likewise.
17052         * reg-stack.c: Likewise.
17053         * resource.c: Likewise.
17054         * sdbout.h: Likewise.
17055         * simplify-rtx.c: Likewise.
17056         * stor-layout.c: Likewise.
17057         * stupid.c: Likewise.
17058         * xcoffout.c: Likewise.
17059         * xcoffout.h: Likewise.
17060
17061 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17062
17063         * toplev.c: PROTO -> PARAMS.
17064         * toplev.h: Likewise.
17065         * tree.c: Likewise.
17066         * tree.h: Likewise.
17067         * unroll.c: Likewise.
17068         * varasm.c: Likewise.
17069         * varray.c: Likewise.
17070         * varray.h: Likewise.
17071
17072 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17073
17074         * reload.c: PROTO -> PARAMS.
17075         * reload.h: Likewise.
17076         * reload1.c: Likewise.
17077         * reorg.c: Likewise.
17078         * resource.h: Likewise.
17079         * rtl.c: Likewise.
17080         * rtl.h: Likewise.
17081         * rtlanal.c: Likewise.
17082         * sbitmap.h: Likewise.
17083         * sdbout.c: Likewise.
17084         * stack.h: Likewise.
17085         * stmt.c: Likewise.
17086         * system.h: Likewise.
17087
17088 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17089
17090         * machmode.h: PROTO -> PARAMS.
17091         * mbchar.h: Likewise.
17092         * mips-tdump.c: Likewise.
17093         * mips-tfile.c: Likewise.
17094         * optabs.c: Likewise.
17095         * output.h: Likewise.
17096         * prefix.c: Likewise.
17097         * profile.c: Likewise.
17098         * protoize.c: Likewise.
17099         * real.h: Likewise.
17100         * recog.c: Likewise.
17101         * recog.h: Likewise.
17102         * regclass.c: Likewise.
17103         * regmove.c: Likewise.
17104         * regs.h: Likewise.
17105
17106 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17107
17108         * ggc-common.c: PROTO -> PARAMS.
17109         * ggc-page.c: Likewise.
17110         * ggc-simple.c: Likewise.
17111         * ggc.h: Likewise.
17112         * global.c: Likewise.
17113         * graph.c: Likewise.
17114         * gthr-win32.h: Likewise.
17115         * haifa-sched.c: Likewise.
17116         * halfpic.h: Likewise.
17117         * integrate.c: Likewise.
17118         * integrate.h: Likewise.
17119         * jump.c: Likewise.
17120         * lcm.c: Likewise.
17121         * local-alloc.c: Likewise.
17122         * loop.c: Likewise.
17123         * loop.h: Likewise.
17124
17125 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17126
17127         * genattr.c: PROTO -> PARAMS.
17128         * genattrtab.c: Likewise.
17129         * gencheck.c: Likewise.
17130         * gencodes.c: Likewise.
17131         * genconfig.c: Likewise.
17132         * genemit.c: Likewise.
17133         * genextract.c: Likewise.
17134         * genflags.c: Likewise.
17135         * gengenrtl.c: Likewise.
17136         * genopinit.c: Likewise.
17137         * genoutput.c: Likewise.
17138         * genpeep.c: Likewise.
17139         * genrecog.c: Likewise.
17140
17141 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
17142
17143         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
17144
17145 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17146
17147         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
17148         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
17149         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
17150         * configure, config.in: Rebuilt.
17151
17152 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
17153
17154         * config/i386/i386.md: Add peephole to merge successive stack
17155         adjusts.
17156
17157 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
17158
17159         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
17160         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
17161         when walking backwards to find all the parameter loads when
17162         the basic block ends in a call.
17163
17164 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17165
17166         * loop.c (this_loop_info): Delete.
17167         (uid_loop): Add in place of uid_loop_num.  All uses updated.
17168         (loop_number_exit_count): Delete and replace with entry in loop
17169         structure.  All uses updated.
17170         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17171         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17172         (loop_outer_loop): Likewise.
17173         (loop_invalid, loop_number_exit_labels): Likewise.
17174         (loop_used_count_register): Delete and replace with entry in
17175         loop_info structure.
17176         (find_and_verify_loops): Add loops argument.
17177         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
17178         loop_end, etc. arguments with loop structure pointer.  All callers
17179         changed.
17180         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
17181         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
17182         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
17183         (insert_bct): Likewise.
17184         (basic_induction_var): New argument level.
17185         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
17186         vtop, and cont.  Add used_count_register.
17187         (uid_loop): Delete declaration.
17188         (loop_number_exit_count): Likewise.
17189         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17190         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17191         (loop_outer_loop, loop_used_count_register): Likewise.
17192         (loop_invalid, loop_number_exit_labels): Likewise.
17193         (unroll_loop): Replace loop_start and loop_end arguments
17194         with loop structure pointer.
17195         (loop_precondition_p, loop_iterations): Likewise.
17196         Include basic-block.h.
17197         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
17198         with loop structure pointer.
17199         (loop_precondition_p, loop_iterations): Likewise.
17200         * basic-block.h (struct loop): New entries vtop, cont,
17201         cont_dominator, start, end, top, scan_start, exit_labels,
17202         exit_count.
17203         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
17204
17205 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17206
17207         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
17208
17209 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
17210
17211         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
17212
17213 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17214
17215         * pdp11-protos.h: New file.
17216
17217         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
17218         time warnings.
17219
17220         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
17221         warnings.
17222
17223         * pdp11.md: Likewise.
17224
17225         * 2bsd.h: Likewise.
17226
17227 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17228
17229         * mn10300-protos.h: New file.
17230
17231         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17232         time warnings.
17233
17234         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
17235         warnings.
17236
17237         * mn10300.md: Likewise.
17238
17239 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17240
17241         * mn10200-protos.h: New file.
17242
17243         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
17244         time warnings.
17245
17246         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
17247         warnings.
17248
17249         * mn10200.md: Likewise.
17250
17251 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17252
17253         * h8300-protos.h: New file.
17254
17255         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17256         time warnings.
17257
17258         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
17259         warnings.
17260
17261         * h8300.md: Likewise.
17262
17263 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17264
17265         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
17266         (asm_emit_uninitialised): Likewise.
17267
17268 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
17269
17270         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
17271         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
17272
17273 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17274
17275         * config/mips/mips.c (override_options): Don't turn on extra
17276         alignment for mips16.
17277
17278 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17279
17280         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
17281         eabi, and make sure queued POSTINCREMENT rtl is emitted at
17282         the right point.
17283
17284 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17285
17286         * builtins.c (PAD_VARARGS_DOWN): Define.
17287         (std_expand_builtin_va_arg): Use the above macro.
17288         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
17289         * tm.texi (Register Arguments): Document the above macro.
17290
17291 2000-01-14  Nick Clifton  <nickc@cygnus.com>
17292
17293         * emit-rtl.c (emit_insn): If checking is enabled, make sure
17294         that this function has not been used to emit a jump
17295         instruction.
17296
17297         * jump.c (return_jump_1): Cope with being passed a null rtx.
17298
17299 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17300
17301         * eh-common.h: PROTO -> PARAMS.
17302         * emit-rtl.c: Likewise.
17303         * errors.c: Likewise.
17304         * errors.h: Likewise.
17305         * except.c: Likewise.
17306         * except.h: Likewise.
17307         * explow.c: Likewise.
17308         * expmed.c: Likewise.
17309         * expr.c: Likewise.
17310         * expr.h: Likewise.
17311         * final.c: Likewise.
17312         * fix-header.c: Likewise.
17313         * flow.c: Likewise.
17314         * fold-const.c: Likewise.
17315         * function.c: Likewise.
17316         * function.h: Likewise.
17317         * gcc.c: Likewise.
17318         * gcov-io.h: Likewise.
17319         * gcov.c: Likewise.
17320         * gcse.c: Likewise.
17321
17322 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17323
17324         * sh-protos.h: New file.
17325
17326         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
17327         Add static prototypes.  Fix compile time warnings.
17328
17329         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
17330         * sh.md: Likewise.
17331         * elf.h: Likewise.
17332
17333 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17334
17335         * arc-protos.h: New file.
17336
17337         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
17338         time warnings.
17339
17340         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
17341         warnings.
17342
17343         * arc.md: Likewise.
17344
17345 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17346
17347         * dsp16xx-protos.h: New file.
17348
17349         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
17350         time warnings.
17351
17352         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
17353         warnings.
17354
17355         * dsp16xx.md: Likewise.
17356
17357 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17358
17359         * convex-protos.h: New file.
17360
17361         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
17362         time warnings.
17363
17364         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
17365         warnings.
17366
17367 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17368
17369         * elxsi-protos.h: New file.
17370
17371         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
17372         time warnings.
17373
17374         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
17375         warnings.
17376
17377         * elxsi.md: Likewise.
17378
17379 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17380
17381         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
17382         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
17383         match the comment for MIPS16.
17384
17385 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
17386
17387         * flow.c (split_edge): Do not call set_block_for_insn if we
17388         do not have a basic_block_for_insn structure.
17389
17390         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
17391         and destination functions are 32bit aligned within the trampoline.
17392         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
17393         (TRAMPOLINE_ALIGNMENT): Define.
17394
17395         * cse.c (cse_insn): When changing (set (pc) (reg)) to
17396         (set (pc) (label_ref)), verify the change creates a valid insn.
17397
17398         * fr30.c (call_operand): Tighten and rework to match rules for
17399         call RTL expressions.
17400         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
17401         * fr30.md (call patterns): Improve constraints.
17402
17403 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
17404
17405         * fr30.c (fr30_expand_epilogue): Revert last change.
17406         Use emit_jump_insn for the return insn.
17407
17408 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17409                           Stan Cox  <scox@cygnus.com>
17410
17411         * predict.c: New file. Preliminary infrastructure work for static
17412         branch prediction and basic block reordering.
17413         * basic-block.h: Add prototype for estimate_probability.
17414         * Makefile.in: Add rules for predict.o.
17415
17416 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17417
17418         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17419         * fixinc/*: Likewise.
17420
17421 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17422
17423         * cccp.c: PROTO -> PARAMS.
17424         * cexp.y: Likewise.
17425         * collect2.c: Likewise.
17426         * combine.c: Likewise.
17427         * convert.h: Likewise.
17428         * cse.c: Likewise.
17429         * dbxout.c: Likewise.
17430         * dbxout.h: Likewise.
17431         * diagnostic.c: Likewise.
17432         * doprint.c: Likewise.
17433         * dwarf2out.c: Likewise.
17434         * dwarf2out.h: Likewise.
17435         * dwarfout.c: Likewise.
17436         * dwarfout.h: Likewise.
17437         * dyn-string.h: Likewise.
17438
17439 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17440
17441         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17442         macro conditionals guarding use.
17443
17444         * dwarf2out.c: Include "tm_p.h".
17445
17446         * function.c (locate_and_pad_parm): Mark parameter with
17447         ATTRIBUTE_UNUSED.
17448         (expand_function_end): Likewise for variable `context'.
17449
17450         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17451
17452 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17453
17454         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17455         register to prevent compile time warnings.
17456
17457 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17458
17459         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17460         to avoid -Wtraditional warning.
17461
17462 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17463
17464         * 1750a-protos.h: New file.
17465
17466         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17467         time warnings.
17468
17469         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17470         warnings.
17471
17472         * 1750a.md: Likewise.
17473
17474 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17475
17476         * a29k-protos.h: New file.
17477
17478         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17479         time warnings.
17480
17481         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17482         warnings.
17483
17484 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17485
17486         * clipper-protos.h: New file.
17487
17488         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17489         time warnings.
17490
17491         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17492         warnings.
17493
17494 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17495
17496         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17497
17498 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17499
17500         * configure.in (--enable-new-gxx-abi): New option.
17501         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17502         * Makefile.in (GXX_ABI_FLAG): New variable.
17503         * configure: Regenerate.
17504
17505 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17506
17507         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17508         * tm.texi (FORCE_STRUCT_BLK): Document.
17509         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17510
17511 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17512
17513         * config/ns32k/ns32k.md: Revert Jan 9 change.
17514
17515         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17516         to a mode-test, if the predicate is address_operand.
17517
17518 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17519
17520         * combine.c (if_then_else_cond): Be careful about what kinds
17521         of RTL expressions are passed to operand_subword.
17522
17523         * flow.c (split_edge): If we have to insert a new jump, make
17524         sure to associate it with a basic block.
17525
17526         * flow.c (commit_one_edge_insertion): A block with one successor
17527         can end in a JUMP_INSN that is not a simplejump.
17528
17529 2000-01-12  Robert Lipe  <robertl@sco.com>
17530
17531         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17532         (BUILD_VA_LIST_TYPE): Define.
17533         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17534         with crtstuff.c.
17535
17536 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17537
17538         * cccp.c (do_pragma): Add cast to (char *).
17539
17540 2000-01-12  Richard Henderson  <rth@cygnus.com>
17541             Fred Fish  <fnf@be.com>
17542             Jason Merrill  <jason@cygnus.com>
17543
17544         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17545         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17546         * i386/beos-elf.h, i386/beos-pe.h: New files.
17547
17548         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17549         * cross-make (SYSTEM_HEADER_DIR): Define using
17550         CROSS_SYSTEM_HEADER_DIR.
17551
17552         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17553         (process_command): Use it.
17554         (main): Likewise.  Kill trailing = from env vars.
17555         (build_search_list): Put it back.
17556         * collect2.c (main): Use LIBRARY_PATH_ENV.
17557
17558         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17559         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17560
17561         * tm.texi (Frame Layout): Document SMALL_STACK.
17562         * c-common.c (c_common_nodes_and_builtins): Check it.
17563
17564         * system.h: Undef alloca after including glibc's <stdlib.h>,
17565         if USE_C_ALLOCA is defined.
17566
17567         * gcc.c (set_input): New fn.
17568         (main): After all input files are compiled, reset the input file
17569         info to the first.
17570
17571         * aclocal.m4 (rindex, index): If already defined, don't attempt
17572         to redefine.
17573
17574         * ginclude/varargs.h: (__va_list__): Define ifndef.
17575         * ginclude/stdarg.h: Likewise.
17576
17577         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17578         instead of unsigned char.
17579
17580         * hash.h (true, false, boolean): Undef before enum.
17581
17582         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17583         proper type of "HOST_WIDE_INT *", rather than their natural type of
17584         "unsigned HOST_WIDE_INT *".
17585
17586 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17587
17588         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17589
17590         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17591
17592         * regclass.c (choose_hard_reg_mode): Likewise.
17593
17594         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17595
17596         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17597
17598 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17599
17600         * c-common.c: PROTO -> PARAMS.
17601         * c-common.h: Likewise.
17602         * c-decl.c: Likewise.
17603         * c-iterate.c: Likewise.
17604         * c-lang.c: Likewise.
17605         * c-lex.c: Likewise.
17606         * c-lex.h: Likewise.
17607         * c-parse.in: Likewise.
17608         * c-pragma.c: Likewise.
17609         * c-pragma.h: Likewise.
17610         * c-tree.h: Likewise.
17611         * c-typeck.c: Likewise.
17612         * objc/objc-act.c: Likewise.
17613         * objc/objc-act.h: Likewise.
17614
17615 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17616
17617         * m88k-protos.h: New file.
17618
17619         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17620         time warnings.
17621
17622         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17623
17624         * m88k.md: Likewise.
17625
17626         * tekXD88.h: Likewise.
17627
17628 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17629
17630         * m68k-protos.h: New file.
17631
17632         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17633         time warnings.
17634
17635         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17636
17637         * mot3300.h: Likewise.
17638
17639 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17640
17641         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17642         extract_bitlst.
17643         (extract_bitlist): Declare bitlen.
17644
17645 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17646
17647         * cccp.c: Accept and ignore -lang-fortran.
17648
17649         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17650         qualifiers don't match at any level of pointerness.
17651
17652 2000-01-12  Robert Lipe  <robertl@sco.com>
17653
17654         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17655
17656 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17657
17658         * reload1.c (reload_reg_unavailable): New static variable.
17659         (reload_reg_free_p): Test it.
17660         (reload_reg_free_for_value_p): Test it instead of
17661         reload_reg_used.
17662         (choose_reload_regs_init): Compute it.
17663
17664 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17665
17666         * reorg.c (fill_slots_from_thread): Check modified_in_p
17667         before replacing.
17668
17669 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17670
17671         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17672         these nodes even if INTERNALS is not set.
17673
17674 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17675
17676         * gcse.c (delete_null_pointer_checks_1): Cope when
17677         get_condition cannot determine the condition.
17678
17679 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17680
17681         * toplev.h (set_message_length): Declare.
17682
17683         * diagnostic.c (obstack_chunk_alloc): Define macro.
17684         (obstack_chunk_free): Likewise.
17685         (struct output_buffer): New data structure.
17686         (vmessage): Remove.
17687         (output_maximum_width): New variable.
17688         (doing_line_wrapping, set_message_length, init_output_buffer,
17689         get_output_prefix, output_space_left, emit_output_prefix,
17690         output_newline, output_append, output_puts, dump_output,
17691         vbuild_message_string, build_message_string, build_location_prefix,
17692         voutput_notice, output_printf, line_wrapper_printf,
17693         vline_wrapper_message_with_location):  New functions. Implement
17694         automatic line wrapping.
17695         (v_message_with_decl): Make it handle automatic line wrapping.
17696         (v_error_with_file_and_line): Likewise.
17697         (v_warning_with_file_and_line): Likewise.
17698         (announce_function): Likewise.
17699         (default_print_error_function): Likewise.
17700
17701 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17702
17703         * cpplib.h (struct cpp_options): Change lang_asm to char.
17704         Add lang_fortran.
17705         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17706         done in cpp_handle_option now.
17707         (initialize_builtins): Take out special case code used only by
17708         __STDC_VERSION__.
17709         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17710         if -traditional.  Recognize -lang-fortran and set
17711         lang_fortran, also turn off cplusplus_comments.
17712         (print_help): Document -lang-fortran.
17713         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17714         lang_asm. Ignore all directives other than `# 123 "file"' if
17715         CPP_PREPROCESSED.
17716         (cpp_get_token): If -traditional, don't recognize directives
17717         unless the # is in column 1.
17718         (parse_string): If lang_fortran or lang_asm, silently
17719         terminate strings ('' or "") at end of line.
17720         Remove unnecessary braces.
17721
17722 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17723             Richard Henderson  <rth@cygnus.com>
17724
17725         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17726         as used.
17727         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17728         strict_low_part when possible.
17729
17730 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17731
17732         * alias.c: PROTO -> PARAMS.
17733         * basic-block.h: Likewise.
17734         * bitmap.c: Likewise.
17735         * bitmap.h: Likewise.
17736         * builtins.c: Likewise.
17737         * c-aux-info.c: Likewise.
17738         * caller-save.c: Likewise.
17739         * calls.c: Likewise.
17740
17741 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17742
17743         * Makefile.in (toplev.o): Depend on regs.h.
17744
17745         * output.h (tdesc_section): Prototype.
17746
17747         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17748
17749         * sdbout.c: Include "tm_p.h".
17750
17751         * toplev.c: Include "regs.h".
17752
17753 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17754
17755         * unroll.c (unroll_loop): Add EH support.
17756
17757 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17758
17759         * pa-protos.h: New file.
17760
17761         * pa.c: Include recog.h and tm_p.h.
17762         (compute_zdepwi_operands, compute_movstrsi_length,
17763         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17764         find_addr_reg, import_milli): Add static prototypes.
17765         (pa_cpu_string, pa_arch_string): Constify a char*.
17766         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17767         (read_only_operand): Add argument `mode'.
17768         (singlemove_string, output_move_double, output_fp_move_double,
17769         output_block_move, output_and, output_ior, output_ascii,
17770         remove_useless_addtr_insns, milli_names, output_mul_insn,
17771         output_div_insn, output_mod_insn, output_arg_descriptor,
17772         output_cbranch, output_bb, output_bvb, output_dbra, ,
17773         output_millicode_call, output_call, hppa_encode_label,
17774         output_parallel_movb, output_parallel_addb): Constify a char*.
17775         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17776         (output_parallel_addb): Remove extra arg to `constrain_operands'
17777
17778         * pa.h:  Move all prototypes to pa-protos.h.
17779         (pa_cpu_string, pa_arch_string): Constify a char*.
17780         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17781
17782         * pa.md: Call `function_label_operand' with mode argument.
17783         Likewise for `read_only_operand'.
17784         Fix nesting of parens in call to `symbolic_operand'.
17785
17786 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17787
17788         * i860-protos.h: New file.
17789
17790         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17791         time warnings.
17792
17793         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17794
17795         * i860.md: Likewise.
17796
17797 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17798
17799         * i386.md (movstrsi expander): Rewrite.
17800         (movstrsi_1 insn): Deleted.
17801         (strmovhi, strmovqi expander): New expanders.
17802         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17803         * i386.c (x86_single_stringop): New global variable.
17804         * i386.h (x86_single_stringop): Declare.
17805         (TARGET_SINGLE_STRINGOP): New macro.
17806
17807 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17808
17809         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17810         integer vararg POSTINCREMENT before the destination of the jump
17811         for the hard fp case.
17812         (function_arg_pass_by_reference): Pass a copy of CUM to
17813         FUNCTION_ARG.
17814
17815         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17816         for CONSTANT_ADDRESS_P above while loop for subreg.
17817
17818 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17819
17820         * flow.c (propagate_block): When a prologue/epilogue insn
17821         is marked dead, unconditionally clear libcall_is_dead and
17822         insn_is_dead, and only dump rtl if warnings aren't being
17823         suppressed.
17824
17825 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17826
17827         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17828         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17829         (FIXED_REGISTERS): Set dirflag as fixed.
17830         (CALL_USED_REGISTERS): Set dirflag as used.
17831         (REG_ALLOC_ORDER): Set dirflag as last one.
17832         (DIRFLAG_REG): New macro.
17833         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17834         (HI_REGISTER_NAMES): Add dirflag.
17835         (DEBUF_PRINT_REG): Handle dirflag.
17836         * i386.md (type attribute): New cld and str types.
17837         (length_opcode attribute): Set cld and str to 1.
17838         (memory attribute): Set str to unknown - it is not clear from the
17839         patterns.
17840         (pent_np function unit): Prefixed string operations takes 12 cycles
17841         minimally; cld takes 2 cycles.
17842         (ppro_uops attribute): Str is "many" and cld is "few".
17843         (ppro_p0 unit): Handle cld here.
17844         (k6_alux unit): Handle cld and str types.
17845         (k6_load unit): It is ocupied by str opcodes.
17846         (k6_store unit): It is ocupied by str opcodes.
17847         (athlon_decode): Str is vector decoded.
17848         (athlon_ieu): Handle str and cld.
17849         (cld pattern): New.
17850         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17851         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17852         cmpstrsi_nz_1 insn): Do not output cld instruction
17853
17854 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17855
17856         * gcc.texi (G++ and GCC): Add Java and Chill.
17857         (Bug Critera): Don't list languages.
17858
17859         * gcc.texi (Incompatibilities): No longer claim most C compilers
17860         are K&R.
17861
17862         * gcc.texi (G++ and GCC): Update other front-ends list.
17863
17864 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17865
17866         * i386.c (ix86_expand_setcc): Fix typo.
17867         (ix86_expand_movcc): Similarly.
17868
17869         * Band-aid until haifa's bitset implementation is nuked.
17870         * haifa-sched.c (extract_bitlst): New parameter for size of the
17871         bitset in bits.  All callers changed.  Avoid looking at undefined
17872         bits in the bitset.
17873         (edgeset_bitsize): New variable.
17874         (schedule_region): Initialize edgeset_bitsize.
17875
17876 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17877
17878         * Makefile.in (optabs.o): Depend on real.h
17879         (resource.o): Depend on insn-attr.h
17880
17881         * builtins.c (result_vector): Wrap prototype in macro conditions
17882         governing definition and use.
17883
17884         * c-common.c: Include tm_p.h.
17885
17886         * c-lex.c: Likewise.
17887
17888         * elfos.h: Constify a char*.
17889
17890         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17891         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17892         parameter with ATTRIBUTE_UNUSED.
17893
17894         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17895         CHECK_FLOAT_VALUE.
17896
17897         * haifa-sched.c (schedule_insns): Mark parameter with
17898         ATTRIBUTE_UNUSED.
17899
17900         * optabs.c: Include real.h.
17901
17902         * real.h (ereal_atof): Add prototype arguments.
17903
17904         * resource.c: Include insn-attr.h.
17905
17906         * sdbout.c (sdbout_queue_anonymous_type,
17907         sdbout_dequeue_anonymous_types): Wrap in macro
17908         SDB_ALLOW_FORWARD_REFERENCES.
17909         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17910         ATTRIBUTE_UNUSED.
17911
17912         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17913
17914         * stupid.c: Include tm_p.h.
17915
17916         * tree.c (real_value_from_int_cst): Mark parameter with
17917         ATTRIBUTE_UNUSED.
17918
17919 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17920
17921         * i960-protos.h: New file.
17922
17923         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17924         time warnings.
17925
17926         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17927
17928 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17929
17930         * combine.c (expand_field_assignment): Do not discard SUBREGs
17931         while computing nonzero_bits.
17932
17933 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17934
17935         * config/arm/arm.c: Fix compile time warnings about signed vs
17936         unsigned constants.
17937         * config/arm/arm.h: Fix compile time warnings about signed vs
17938         unsigned constants.
17939
17940 2000-01-09  Philip Blundell  <philb@gnu.org>
17941
17942         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17943         than `ldm' with only one register.
17944         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17945         only one register.
17946
17947         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17948         clobbered.
17949
17950 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17951
17952         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17953         must have SImode.
17954
17955 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17956
17957         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17958         assignment used as truth value.
17959
17960         * function.c (assign_temp): Mark parameter `dont_promote' with
17961         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17962         PROMOTE_FOR_CALL_ONLY.
17963
17964         * genrecog.c (write_subroutine): Mark variable `operands' with
17965         ATTRIBUTE_UNUSED.
17966
17967         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17968         ATTRIBUTE_UNUSED.
17969
17970         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17971         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17972
17973         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17974         for `decl'.
17975
17976 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17977
17978         * config/c4x.h: Tidy up comments.
17979         * config/c4x.c: Likewise.
17980
17981 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17982
17983         * fold-const.c (lshift_double, rshift_double): Handle
17984         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17985
17986 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17987
17988         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17989         in prepare_function_start().
17990
17991 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17992
17993         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17994         longer allocate extra stack for function calls.
17995
17996 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17997
17998         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17999
18000 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18001
18002         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
18003
18004 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
18005
18006         * rs6000.c (processor_target_table): Add power3 as alias for 630.
18007         * aix43.h: Revert Aug 2 change.
18008         (HAS_INIT_SECTION): Define, not visible yet.
18009         (LD_INIT_SWITCH): Define, not visible yet.
18010         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
18011
18012         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
18013
18014         * collect2.c (main): Expand ld2 size further.
18015         (export_object_lst): Cast assignment to avoid warning.
18016         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
18017         (scan_prog_file, COFF): Do not collect initialization or
18018         finalization functions generated for entire shared object if
18019         init/fini support present.
18020
18021 2000-01-07  Nick Clifton  <nickc@cygnus.com>
18022
18023         * config/elfos.h: Tidy up formatting of marcos.  Make sure
18024         that .section directives are always prefixed by a tab.
18025
18026         * config/svr4.h: Add #include "elfos.h" and remove duplicate
18027         definitions.
18028
18029 2000-01-07  Matt Austern  <austern@sgi.com>
18030
18031         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
18032         expon.
18033
18034 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
18035
18036         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
18037         crtstuff.c.
18038         (crtbegin.o, s-crtS): Likewise.
18039
18040 2000-01-06  Richard Henderson  <rth@cygnus.com>
18041
18042         * alpha.md (adddi_2+1): Limit offset such that it will be
18043         loadable with a single ldah+lda pair.
18044         (adddi_2+2): Explicitly fail split if we can't make it work.
18045
18046 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
18047
18048         * protoize.c: Conditionally include unistd.h.
18049         (IS_SAME_PATH_CHAR): New macro.
18050         (IS_SAME_PATH): New macro.
18051         (CPLUS_FILE_SUFFIX): New macro.
18052         (cplus_suffix): New static variable.
18053         (is_abspath): New static function.
18054         (in_system_include_dir): Handle DOS style pathnames.
18055         (file_could_be_converted): Likewise.
18056         (file_normally_convertible): Likewise.
18057         (directory_specified_p): Likewise.
18058         (file_excluded_p): Likewise.
18059         (abspath): Likewise.
18060         (shortpath): Likewise.
18061         (referenced_file_is_newer): Likewise.
18062         (save_def_or_dec): Likewise.
18063         (do_processing): Likewise.
18064         (main): Likewise.
18065         (edit_file): Likewise. Use rename instead of link.
18066         (rename_c_file): Likewise. Don't rename syscalls file.
18067         (munge_compile_params): Define null device for DOS based systems.
18068         (process_aux_info_file): Use binary mode if appliable.
18069         (edit_file): Likewise.
18070         * invoke.texi (Running Protoize): Document C++ suffixes used.
18071
18072         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
18073         IS_DIR_SEPARATOR macros.
18074         * collect2.c: Likewise.
18075         * cppinit.c: Likewise.
18076         * dwarf2out.c: Likewise.
18077         * gcc.c: Likewise.
18078         * gcov.c: Likewise.
18079         * prefix.c: Likewise.
18080         * rtl.c: Likewise.
18081         * toplev.c: Likewise.
18082         * system.h: And move to here.
18083
18084         * prefix.c (update_path): Fix typo in variable name.
18085
18086 2000-01-06  Richard Henderson  <rth@cygnus.com>
18087
18088         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
18089         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
18090         (count_reg_sets_1, count_reg_references): Likewise.
18091         (flow_loops_level_compute): Start counting actual loop depth at 1.
18092         (flow_loops_find): Likewise.
18093         * local-alloc.c (update_equiv_regs): Likewise.
18094         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
18095
18096 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
18097
18098         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
18099         FIRST_PSEUDO_REGISTER
18100         * dwarf2out.c: Don't include frame.h
18101         * dwarfout.c: Likewise
18102         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
18103         frame.h
18104
18105 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
18106
18107         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
18108         dead registers.
18109
18110         * i386.c (movsf splitter): Fix typo in my last checkin.
18111
18112 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18113
18114         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
18115         own definition of this macro.
18116         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
18117         flag_data_sections or UNIQUE_SECTION_P are true.
18118
18119         * tm.texi (UNIQUE_SECTION): Document that it can be called for
18120         unitialised data decls.
18121
18122         * config/i386/winnt.c (i386_pe_unique_section): Cope with
18123         being called for uninitialised data.
18124
18125         * config/i386/interix.c (i386_pe_unique_section): Cope with
18126         being called for uninitialised data.
18127
18128         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
18129         for uninitialised data.
18130
18131         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
18132         for uninitialised data.
18133
18134         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
18135         for uninitialised data.
18136
18137         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
18138         (UNIQUE_SECTION_P): Always generate a unique section if
18139         flag_data_sections is true.
18140         (UNIQUE_SECTION): Also generate unique sections for
18141         uninitialised data.
18142         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
18143         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
18144         named_section().
18145
18146 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18147
18148         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
18149         SI, or DI.
18150
18151 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18152
18153         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
18154         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
18155         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
18156         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
18157         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
18158
18159         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
18160
18161 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
18162
18163         * c-decl.c (finish_enum): Simplify code to determine minimum and
18164         maximum values of the enum, and calculate the type.  Remove check
18165         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
18166         the DECL_INITIAL of each enumeration constant with a copy converted
18167         to the enumeration type.  When updating variant types, don't bother
18168         updating the type itself.
18169
18170         * c-typeck.c (build_binary_op): Simplify conditional expressions
18171         when weeding out spurious signed-unsigned warnings.  Add new
18172         spurious warning category: if the unsigned quantity is an enum
18173         and its maximum value fits in signed_type(result_type).  Update
18174         commentary.
18175         (build_conditional_expr): Warn here if one alternative is signed
18176         and the other is unsigned.
18177
18178 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18179
18180         * config/fr30/fr30.h: Remove extraneous comments.
18181
18182 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
18183
18184         * reload1.c (choose_reload_regs): When disabling a reload, also
18185         set reload_spill_index to -1.
18186
18187 2000-01-04  Joel Sherrill (joel@OARcorp.com>
18188
18189         * configure.in (m68*-*-rtemscoff*): New target, formal name for
18190         old m68*-*-rtems*.
18191         (m68*-*-rtemself*): New target.
18192         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
18193         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
18194         (sparc*-*-rtemself*): New target.
18195         (sparc*-*-rtems*): Now elf not a.out.
18196         * config/i386/rtems.h: Include config/rtems.h.
18197         * config/i386/rtemself.h: Include config/rtems.h.
18198         * config/i960/rtems.h: Include config/rtems.h.
18199         * config/m68k/rtems.h: Include config/rtems.h.
18200         * config/m68k/rtemself.h: Include config/rtems.h.
18201         * config/mips/rtems64.h: Include config/rtems.h.
18202         * config/pa/rtems.h: Include config/rtems.h.
18203         * config/rs6000/rtems.h: Include config/rtems.h.
18204         * config/sh/rtems.h: Include config/rtems.h.
18205         * config/sh/rtemself.h: Include config/rtems.h.
18206         * config/sparc/rtems.h: Include config/rtems.h.
18207         * config/sparc/rtemself.h: Include config/rtems.h
18208
18209 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
18210
18211         * final.c (shorten_branches): Correctly compute length of
18212         asms without operands.
18213
18214 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
18215
18216         * configure.in: Add pj target.
18217         * configure: Regenerate.
18218         * config/pj: New directory.
18219         * config/pj/lib1funcs.S: New file.
18220         * config/pj/linux.h: New file.
18221         * config/pj/pj.c: New file.
18222         * config/pj/pj.md: New file.
18223         * config/pj/pjl.h: New file.
18224         * config/pj/t-pj: New file.
18225         * config/pj/xm-pj.h: New file
18226
18227 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
18228
18229         * toplev.c (rest_of_compilation): Run shorten-branches before
18230         reg-stack for now.
18231
18232 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18233
18234         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
18235         macros so that they're consistent with their names.
18236         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18237         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18238
18239 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18240
18241         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
18242         modified inadvertently.
18243
18244 2000-01-04  Joel Sherrill <joel@OARcorp.com>
18245
18246         * configure.in (v850*-*-rtems*): New target.
18247         * configure: Regenerate.
18248         * config/v850/rtems.h: New file.
18249
18250 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
18251
18252         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
18253         (__gthread_key_create): Likewise.
18254         (__gthread_key_dtor):  Likewise.
18255         (__gthread_once): Fix logic.
18256         (__gthread_key_delete): Cast away constness.
18257
18258         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
18259         * invoke.texi: Document.
18260         * i386/mingw32.h (CPP_SPEC): Use.
18261         (LIBGCC_SPEC): Likewise.
18262         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
18263
18264 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18265
18266         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
18267         (HANDLE_PRAGMA_PACK): Undefine.
18268         (SLOW_UNALIGNED_ACCESS): Define.
18269
18270 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18271
18272         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18273         to default definition.
18274         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
18275         (store_fixed_bit_field): Call macro with word_mode and alignment.
18276         (extract_bit_field): Call macro with relevant mode and alignment.
18277         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18278         to default definition.
18279         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
18280         and alignment.
18281         (move_by_pieces_ninsns): Likewise.
18282         (clear_by_pieces): Likewise.
18283         (emit_push_insn): Likewise.
18284         (store_field): Call macro with relevant mode and alignment.
18285         (expand_expr): Likewise.
18286         (expand_expr_unaligned): Likewise.
18287
18288         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
18289         (SLOW_UNALIGNED_ACCESS): Define.
18290         (CASE_VECTOR_MODE): Always use 32-bit offsets.
18291         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
18292         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
18293         (toc_section): Likewise and .toc pseudo-op.
18294         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
18295         64-bit mode.
18296         (TEXT_SECTION_ASM_OP): Likewise.
18297         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
18298         32-bit offsets.
18299
18300         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
18301         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
18302         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
18303         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
18304         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
18305
18306 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
18307
18308         * regclass.c: Revert my Jan 4 change to loop cost computation.
18309
18310 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18311
18312         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
18313         compilation.
18314
18315 2000-01-04  Stan Cox  <scox@cygnus.com>
18316
18317         * haifa-sched.c (build_control_flow): Change unreachable simple
18318         loop test to check if current block has only one predecessor.
18319         (find_rgns): Initialize degree.  Use dest as degree index, not src.
18320
18321 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18322
18323         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
18324
18325         * calls.c (expand_call): Likewise for
18326         `old_stack_arg_under_construction'.
18327
18328         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
18329
18330         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
18331         `save_constant'.
18332
18333         * gcc.c (execute): Likewise for `ut' and `st'.
18334
18335         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
18336
18337         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
18338
18339         * jump.c (jump_optimize_1): Likewise for `temp2'.
18340
18341         * local-alloc.c (block_alloc): Likewise for `r1'.
18342
18343         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
18344
18345         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
18346         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
18347
18348         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
18349         and `set2'.
18350
18351         * reload.c (find_reloads): Likewise for `goal_alternative_number'
18352         and `goal_earlyclobber'.
18353
18354         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
18355
18356         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
18357
18358         * stupid.c (stupid_life_analysis): Likewise for `chain'.
18359
18360         * unroll.c (copy_loop_body): Likewise for `copy'.
18361
18362         * varasm.c (output_constructor): Likewise for `byte'.
18363
18364 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18365
18366         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
18367         all FP constants for constant->reg moves.
18368         (ix86_split_to_parts): Try to convert memory address into immediate
18369         when available in the constant pool.
18370         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
18371         moves.
18372         (LEGITIMATE_CONSTANT_P): Return 1.
18373         * i386.md (pushsf): New splitter to convert constant pool memory
18374         reference to immediate.
18375         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
18376         reload.
18377
18378 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
18379
18380         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
18381         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
18382         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
18383         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
18384         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
18385
18386 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
18387
18388         * ginclude/stdbool.h:  Support compilation as C++.
18389
18390 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
18391
18392         * fold-const.c (make_range): Don't try to reverse an unbounded range.
18393
18394 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
18395
18396         * regclass.c (regclass): Properly compute loop_cost.  Adjust
18397         comments.
18398
18399         * regclass.c: Fix minor whitespace problems.
18400
18401 2000-01-03  Anthony Green  <green@cygnus.com>
18402
18403         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
18404         Restore the pic register if required.
18405
18406 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18407
18408         * c-common.c (format_char_info): Update comment.
18409         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18410         was recognized.  Emit warning for formats new in ISO C99 only
18411         if flag_isoc9x is not set.
18412
18413 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18414
18415         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18416
18417 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18418
18419         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18420         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18421         (make_compound_operation): Choose cheaper alternative between
18422         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18423
18424         * regclass.c (op_costs): Remove global variable.
18425         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18426         (record_operand_costs): Break out from ...
18427         (scan_one_insn): ... here.
18428         (dump_regclass): Make dumps nicer.
18429         (regclass): Dump preferrences choosed and changes done during passes.
18430
18431 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18432
18433         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18434
18435 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18436
18437         * config/sparc/sparc.c (gen_df_reg): New function.
18438         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18439         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18440         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18441         movtf_cc_reg_sp64+1): Use it.
18442
18443 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18444
18445         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18446         copied LABEL_DECLs.
18447
18448 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18449
18450         * config/i386/i386.c (ix86_expand_unary_operator): Function
18451         definition made void.
18452         (ix86_expand_binary_operator): Update outdated preceding comment.
18453         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18454         prototype.
18455
18456         * config/i386/i386.c (override_options): Fix option-name typo.
18457
18458 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18459
18460         * system.h (CEIL): Define.
18461         * builtins.c (CEIL): Remove.
18462         * expmed.c (CEIL): Likewise.
18463         * expr.c (CEIL): Likewise.
18464         * stor-layout.c (CEIL): Likewise.
18465
18466 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18467
18468         * expr.c (store_constructor_field): Fix typo introduced with last
18469         gcc2 merge.
18470
18471 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18472
18473         * tree.h (BINFO_N_BASETYPES): New macro.
18474
18475 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18476
18477         * expmed.c (emit_store_flag): Prevent losing a pending stack
18478         adjust the same way we prevent losing queued increments.
18479
18480 See ChangeLog.2 for earlier changes.