OSDN Git Service

* rs6000.h (SIZE_TYPE): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
2
3         * rs6000.h (SIZE_TYPE): Define.
4
5 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
6
7         * ssa.c (rename_insn_1): Don't rename registers that are
8         CLOBBERed.
9
10 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
11
12         * diagnostic.c (trim_filename, fancy_abort): Moved here from
13         rtl.c.
14         (fatal_function, set_fatal_function): Removed.
15         (fatal): Don't prepare for or call the fatal_function.
16         (diagnostic_lock, error_recursion): New.
17         (diagnostic_for_decl, report_diagnostic): Guard against
18         re-entering the error reporting routines.
19         (fancy_abort): Assume function is not NULL.
20
21         * errors.c (fancy_abort): New.  Assume function is not NULL.
22         * tradcpp.c (fancy_abort): Assume function is not NULL.
23
24         * system.h: Provide default definition of __FUNCTION__.
25         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
26         Always use __FUNCTION__ in definition of abort.
27         * tree.h: Likewise.
28         * varray.h: Likewise.
29         * toplev.h: Likewise.  Don't prototype set_fatal_function.
30
31 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
32
33         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
34         in 64-bit mode.
35         * glimits.h: Don't do #if defined for ARCH_PPC.
36
37         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
38         constants of size no larger than a pointer should go in the TOC.
39         Add 'MODE' parameter.
40         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
41         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
42         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
43         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
44         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
45         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
46         (rs6000_legitimize_address): Likewise.
47         (rs6000_emit_move): Likewise.
48         (rs6000_select_rtx_section): Likewise.
49         (output_toc): Deal properly with outputting small constants like
50         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
51         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
52         MODE parameter.  Put small constants in the TOC.
53
54         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
55         easy in SImode.
56         (rs6000_emit_move): When reload calls us with an illegitimate
57         address, exit early.  Move the change_address calls to one place
58         at the end of the routine.  Merge the SImode and DImode expanders.
59         When called by reload to put an integer into a FP register, force
60         it to memory.
61
62         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
63         field.
64         (rs6000_hash_constant): Hash mode too.
65         (toc_hash_function): Allow for key_mode.
66         (toc_hash_eq): Structures are different if key_mode differs.
67         (output_toc): Add 'mode' parameter.  Save key_mode.
68         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
69         Pass 'mode' parameter.
70         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
71
72         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
73         for vtable references.
74
75         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
76         choice, don't put integer values in FP regs.
77
78 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
79
80         * flow.c (verify_flow_info): Revamp code to verify that the
81         head and end of each basic block are in the insn chain.
82
83 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
84
85         * gcse.c (record_one_set): Prepend instead of append onto
86         reg_set_table, making it O(n) instead O(n^2).
87         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
88         Use a queue instead of a stack as worklist.
89
90 2000-07-20  Kazu Hirata  <kazu@hxi.com>
91
92         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
93         * h8300.h (OK_FOR_T): New.
94         (EXTRA_CONSTRAINT): Support OK_FOR_T.
95         * h8300.md: Use inc/dec.[wl] for increment/decrement
96         by 1 and 2 in HI and SI modes.
97
98 2000-07-20  Jim Wilson  <wilson@cygnus.com>
99
100         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
101         larger than 14 bits.
102
103 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
104
105         * cppmacro.c (CAN_PASTE_AFTER): New macro.
106         (count_params): Don't set GNU_REST_ARGS on anything.
107         (save_expansion): Set PASTE_LEFT only on tokens for which
108         CAN_PASTE_AFTER is true, or which are named operators.
109
110         * cpplex.c (parse_args): Distinguish between a rest argument
111         given one empty argument, and a rest argument given zero arguments.
112         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
113         deletion of previous token based on that.
114         (get_raw_token): Flatten some control structure.
115
116         * cpplib.h (CPP_LAST_EQ): Correct.
117         (VOID_REST): New token flag.
118         (GNU_REST_ARGS): Delete.
119
120         * tradcpp.c (main): Don't munge -D options.
121         (make_definition): Bring -D handling in line with cpplib.
122         (do_define): Strip all leading whitespace from macro definitions.
123
124 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
125
126         * Makefile.in (tradcpp): Depend on intl.o and version.o.
127
128 2000-07-20  Bruce Korb  <bkorb@gnu.org>
129
130         * fixincl/check.tpl: strip the platform specific types before testing
131         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
132         * fixincl/fixincl.tpl: use platform specific types
133         * fixincl/fixlib.h: include the platform specific types
134         * fixincl/inclhack.def(gnu_types): don't supply the types
135         * fixincl/fixincl.x: regen
136
137 2000-07-19  Jim Wilson  <wilson@cygnus.com>
138
139         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
140         GR_REGS.
141
142 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
143
144         * tradcpp.c (rescan): Do not recognize directives when the #
145         is indented.
146
147 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
148
149         Implement C++ named operators.
150
151         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
152         of operators allowed in #if and having an _EQ variant.  Add
153         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
154         (cpp_token flags): Add NAMED_OP.
155         (enum node_type): Add T_OPERATOR.
156         (struct cpp_hashnode): Add code slot to value union.
157         * cpphash.h (spec_nodes): Remove n_defined.
158
159         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
160         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
161         (is_macro_disabled): Tweak error messages.
162
163         * cpplib.c (get_define_node): Disallow all named operators as
164         macro names.  Tweak error messages.
165         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
166
167         * cppinit.c (builtin_array): Add entries for the named operators.
168         * cppexp.c (lex): Check for CPP_DEFINED token.
169         (priority table): Add entries for CPP_MIN and CPP_MAX.
170         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
171
172 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
173
174         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
175         larger than the array of cuids.
176         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
177         cuids.
178
179 2000-07-19  Bruce Korb  <bkorb@gnu.org>
180
181         * fixinc/fixincl.c:  Convert to using a table of environment variables
182         and activate the auto-edit marker on the fixed output files.
183         * fixinc/fixlib.h:  Define the environment table
184         * fixinc/fixincl.sh: export the ${INPUT} dir
185         * fixinc/check.tpl: likewise
186
187 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
188
189         * gcc.c (.h spec): Fix typo.
190
191 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
192
193         * Makefile.in: Fix tradcif.c path.
194
195 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
196
197         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
198           macros, not five.
199
200         * cpphash.h (TOKEN_NAME): New macro.
201         (_cpp_spell_operator): Deleted.
202         (token_spellings): Now _cpp_token_spellings.
203
204         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
205         * cpplex.c: Use OP and TK macros when expanding the
206         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
207         store the stringification of the enumeration name (CPP_CHAR,
208         etc.) in the name slot of token_spellings.
209         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
210         token_spellings directly.
211         * cpplib.c: Use TOKEN_SPELL.
212
213         * cpplex.c (_cpp_push_token): If the token being pushed back
214         is the previous token in this context, just subtract one from
215         context->posn.
216         * cppmacro.c (save_expansion): Clear aux field when storing a
217         placemarker.
218
219 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
220
221         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
222         buffer, provided it is not NULL.
223
224 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
225
226         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
227         case of invalid volatile re-declaration.
228
229 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
230
231         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
232         (expand_call): Adjust caller.
233
234 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
235
236         * diagnostic.h (report_diagnostic): Change prototype.
237
238         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
239         diagnostic_for_decl):  Change prototype.
240         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
241         error, warning, error_with_file_and_line,
242         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
243         Adjust call to report_diagnostic, diagnostic_for_decl.
244         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
245         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
246
247         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
248         varaible argument list.
249
250 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
251
252         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
253         moved to cppmacro.c.
254         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
255         dump_hash_helper): Delete.
256         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
257         cpp_forall_identifiers): New. Implement specialized version of
258         Vlad's expandable hash table.
259         (cpp_lookup): Use new functions.
260         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
261         implementation.
262         * cppmacro.c: New file.
263         * cppinit.c (dump_macros_helper): New.
264         (cpp_finish): Iterate over the identifier table directly.
265         * cpplex.c (parse_name): Calculate the hash of the identifier
266         while we scan it.  Use _cpp_lookup_with_hash when we can.
267
268         * cpphash.h: Update prototypes.
269         (xcnewvec, HASHSTEP): New helper macros.
270         * cpplib.h: Update prototypes.
271         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
272         (cppmacro.o): New rule.
273         (cpphash.o): Update deps.
274
275         * cppmain.c: Do not set pfile->printer if no_output is on.
276
277 2000-07-15  Neil Booth  <neilb@earthling.net>
278
279         * cpplib.c: Change all directive-handler functions to return
280         void, not int.
281         * cpphash.h: Update typedefs.
282
283 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
284
285         * configure: Regenerate.
286
287         * extend.texi (Extended Asm): Mention that a memory clobber
288         does not count as a side-effect.
289
290         * unroll.c (copy_loop_body): Fix one instance of using host
291         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
292         cross-compile.
293
294         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
295
296 2000-07-17  Richard Henderson  <rth@cygnus.com>
297
298         * config/ia64/ia64.md (movdi): Split out load address code.
299         New post-reload splitter for symbolic operands.
300         (movdi_internal): Abort if we didn't split symbolic operands
301         when we should have.
302         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
303         (ia64_reorg): Split insns when not optimizing.
304         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
305
306 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
307
308         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
309         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
310
311 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
312
313         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
314
315 2000-07-17  Jason Merrill  <jason@redhat.com>
316
317         * Makefile.in (clean): Remove libgcc directory.
318
319         * configure.in (-Wno-long-long check): Use higher-level macros.
320
321 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
322
323         * simplify-rtx.c (simplify_binary_operation): Recognize
324            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
325         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
326            a CONST_INT, it will always be zero.
327
328 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
329
330         * loop.c (check_dbra_loop) : Return if more than one condition is
331         present to control the loop.
332
333 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
334
335         * mips.c (mips_expand_prologue): Don't calculate the last argument
336         register unless we need it.  When we are calculating this, make
337         sure FUNCTION_ARG is giving us a REG.
338
339 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
340
341         * flow.c (libcall_dead_p): Use single_set to verify the insn
342         has only one set and get for analysis.
343         (propagate_one_insn): Don't pass the PATTERN of the insn.
344
345 2000-07-17  Mark Klein <mklein@dis.com>
346
347          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
348
349 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
350
351         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
352         * configure.in (TARGET_GETGROUPS_T): Evaluate.
353         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
354         of second argument of getgroups.
355         * configure, config.in: Rebuilt.
356
357 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
358
359         * simplify-rtx.c (simplify_relational_operation): Two signed
360         values with equal high words are less/greater than each other if
361         their low words are less/greater when considered as unsigned.
362
363 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
364
365         * configure.in (vax-*-openbsd):  Change to new style configuration,
366         add collect2/float_format information.
367         * configure:  Rebuilt.
368         * config/vax/openbsd1.h:  New.
369         * config/vax/openbsd.h:  New.
370         * config/vax/t-openbsd:  New.
371
372 2000-07-17  Chip Salzenberg  <chip@valinux.com>
373
374         * c-common.c (shorten_compare): Quiet warnings about unsigned
375         comparisons with zero when they occur in a system header.
376
377 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
378
379         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
380         update to describe current practice.
381
382         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
383
384         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
385         references to C9X.  Change references to -fstd and -flang-isoc9x
386         to refer to -std.
387
388         * c-common.c (scan_char_table): Allow "z" length modifiers on
389         diouxXn formats.
390         (check_format_info): Use TYPE_DOMAIN on the type matched against
391         for "z" formats, to retrieve the language size_t rather than the
392         internal one.
393
394         * c-common.c (check_format_info): Do not make a pedantic objection
395         to the 'L' length modifier if used with a floating point type
396         character.
397
398         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
399         constants in C99 mode.
400
401 2000-07-17  Kazu Hirata  <kazu@hxi.com>
402
403         * h8300.md: Fix the format of mac.
404         (movsi_h8300hs): Output a tab after stmac instead of a space.
405
406         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
407         profitable adds/subs sequences.
408
409         * fold-const.c: Fix comment typos.
410
411 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
412
413         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
414
415 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
416
417         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
418
419 2000-07-16  Neil Booth  <NeilB@earthling.net>
420
421         * cpplex.c: Update comments.
422         * README.Portability: Small update.
423
424 2000-07-16  Neil Booth  <NeilB@earthling.net>
425
426         * README.Portability:  Small update.
427
428 2000-07-15  Richard Henderson  <rth@cygnus.com>
429
430         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
431         * config/ia64/ia64.c (ia64_move_ok): New function.
432         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
433         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
434
435 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
436
437         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
438         immediately following a paste operator.
439         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
440         (cpp_reader_init): Call it, if HOST_EBCDIC.
441         (cpp_handle_options): Do not sort option list here.
442         (handle_option): Rename to cpp_handle_option and export.
443         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
444         _cpp_get_token directly.
445         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
446         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
447         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
448         cpp_scan_line.
449
450 2000-07-15  Richard Henderson  <rth@cygnus.com>
451
452         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
453         cast around an expression.  Tidy other unsigned tests.
454
455 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
456
457         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
458         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
459         (v_message_with_decl): Rename to ...
460         (format_with_decl): ... this. Tweak
461         (diagnostic_for_decl): New function.
462         (fatal_io_error): Use verbatim in lieu of notice.
463         (announce_function): Use verbatim.
464         (default_print_error_function): Likewise.
465         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
466         infratructure.
467
468 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
469
470         * mips.c (function_arg_pass_by_reference): Don't do automatic
471         aggregate initialization.
472         (machine_dependent_reorg): Initialize variable `mode'.
473
474         * mips.md (absdi2): Change variable `regno1' to unsigned int.
475         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
476         conflicts with sys/param.h macro of the same name.
477         (reload_outdi): Likewise.
478
479 2000-07-15  Michael Meissner  <meissner@redhat.com>
480
481         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
482         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
483         create a new node instead.
484
485 2000-07-15  Neil Booth  <NeilB@earthling.net>
486
487         * README.Portability: Correct example about calling a function
488         through a pointer to function.  Format wide paragraphs.
489
490 2000-07-15  Michael Meissner  <meissner@redhat.com>
491
492         * README.Portability: Update integer suffixes and function
493         prototype sections.
494
495 2000-07-15  Neil Booth  <NeilB@earthling.net>
496
497         * README.Portability: Small update.
498
499 2000-07-15  Neil Booth  <NeilB@earthling.net>
500
501         * README.Portability: New file.
502
503 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
504
505         * INSTALL: Give special instructions for building GCC on Irix 6.
506         * config/mips/x-iris6 (CC): Don't set it.
507         (OLDCC): Likewise.
508
509 2000-07-14  Jason Merrill  <jason@redhat.com>
510
511         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
512         register in the stack and later in another register, use the new
513         register.
514
515 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
516
517         * config/mips/mips.md: (absdi2): Handle sign_extend for
518         second operand.
519
520 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
521
522         * cpplib.c (do_pragma_dependency): Tidy warning messages.
523
524 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
525
526         * .cvsignore: Correct typo.
527
528 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
529
530         * .cvsignore: Add generated YACC files.
531         * objc/.cvsignore: New file.
532
533 2000-07-14  Neil Booth  <NeilB@earthling.net>
534
535         * cpplex.c (adjust_column): New funcion.
536         (skip_whitespace): Use it.
537         (skip_block_comment): Use it, and warn about /*/* with
538         -Wcomments.
539
540 2000-07-14  Neil Booth  <NeilB@earthling.net>
541
542         * cpphash.c (struct macro_info): Add new members.
543         (_cpp_free_definition): Delete the macro directly.
544         (count_params): Return void, with first token of
545         expansion in struct macro_info on success.
546         (parse_define): Return int.  Hoist syntax checking from
547         save_macro_expansion.  Leave call to save_expansion to
548         _cpp_create_definition.
549         (alloc_macro): Needs just 2 arguments.
550         (free_macro): Delete.
551         (save_expansion): Don't perform syntax check.
552         (_cpp_create_definition): Call save_expansion.
553
554 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
555
556         * genrecog.c (write_header): Split long string.
557
558         * cpphash.c (macro_info): Don't use the `signed' keyword.
559
560         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
561
562 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
563
564         * calls.c (stored_args_map): New variable.
565         (check_sibcall_argument_overlap_1): New.
566         (check_sibcall_argument_overlap): New.
567         (expand_call): Initialize stored_args_map.
568         Call check_sibcall_argument_overlap.
569
570 2000-07-13  Bruce Korb  <bkorb@gnu.org>
571
572         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
573         (emit_gnu_type): utility procedure for gnu_type_fix
574         (gnu_type_fix): implement various pre-processor guards around
575         standard types so these types can be defined over and over
576         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
577         types alluded to above will have GNU-compliant base types
578         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
579         * fixinc/inclhack.def: add test_text entries and utilize the new
580         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
581         * fixinc/fixincl.x: regenerate
582
583 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
584
585         * diagnostic.c (vline_wrapper_message_with_location,
586         v_message_with_file_and_line, v_error_with_file_and_file,
587         v_error_for_asm, v_warning_for_asm, vfatal,
588         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
589         vsorry, verror, vwarning, vpedwarn): Remove.
590         (diagnostic_for_asm): New function.
591         (pedwarn, error, warning, pedwarn_with_file_and_line,
592         error_with_file_and_line, warning_with_file_and_line, sorry,
593         error_for_asm, warning_for_asm, fatal): Reimplement.
594         (finish_diagnostic): Clear diagnostic info as well.
595
596 2000-07-13  Neil Booth  <NeilB@earthling.net>
597
598         * c-common.h (flag_digraphs): New.
599         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
600         * c-lex.c (yylex): Use flag_digraphs to decide whether to
601         honour digraphs.
602
603 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
604
605         * gcc.c (do_spec_1): Add new %B operator.
606         (set_input): Prepare for %B.
607
608         (link_command_spec): Move up with the other tm.h-
609         overrideable specs.  Factor out the portion conditional on
610         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
611         (struct compiler): Just have a single spec string.  All users
612         updated.
613         (default_compilers): Remove unnecessary braces.
614         (static_specs): Update.
615
616         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
617         named specs.
618         (C and assembly specs): Use the new named specs, as appropriate.
619
620         * objc/lang-specs.h: Use the new named specs.
621         Remove unnecessary braces.
622
623 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
624
625         * gcc.c (execute): If a subprocess gets a fatal signal, report
626         strsignal() of the signal number, and ask for a bug report.
627         Do not do this for SIGPIPE if there's already been an error.
628
629         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
630         Delete pipe_closed.
631
632         * tradcif.c: Remove.
633
634 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
635
636         * final.c (profile_function): Do not emit profile counters in
637         the data section, if NO_PROFILE_COUNTERS is defined.
638         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
639         FUNCTION_PROFILER.
640
641         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
642         (FUNCTION_PROFILER): Just emit a call to mcount.
643
644 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
645
646         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
647
648         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
649         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
650         traditional, lang_chill, or lang_fortran.
651
652         * cppfiles.c: #undef strcmp to suppress warning about macros
653         used without arguments.
654         (_cpp_execute_include): Use f, not fname, in "No include path"
655         error.
656         (_cpp_pop_file_buffer): New function.
657         * cpplib.c: Don't include <sys/mman.h>.
658         (cpp_push_buffer): Set line_base and lineno in new buffer.
659         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
660
661         * cpplex.c: Move all prototypes and structure declarations to the
662         top of the file.  Properly parenthesise some macro arguments.
663         (cpp_scan_line): New function.
664         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
665         don't need to walk up the stack counting.
666
667 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
668
669         * c-common.c (combine_strings): Emit a pedantic warning when a
670         string length is greater than the minimum ANSI C is required
671         to support.
672
673 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
674
675         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
676         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
677
678 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
679
680         * c-decl.c (define_label): Warn about identifier conflicts with
681         labels in traditional C.
682
683         * c-parse.in (unop +): Warn about the unary plus operator for
684         traditional C.
685
686         * c-typeck.c (store_init_value): Warn about automatic aggregate
687         initialization for traditional C.
688
689         * invoke.texi (-Wtraditional): Document new warnings.
690
691 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
692
693         * Makefile.in (c-errors.o): Fix thinko in dependency.
694
695 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
696
697         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
698         -traditional, -ftraditional, or -traditional-cpp was given.
699         Do not pass -traditional to the preprocessor.
700         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
701         preprocessor does it automatically.
702         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
703
704         * ch/lang-specs.h: Always use tradcpp.  Do not pass
705         -traditional, -trigraphs, or -pedantic to the preprocessor.
706         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
707         _LANGUAGE_FORTRAN.
708
709 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
710
711         * cppexp.c (LOGICAL): Delete macro.
712         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
713         and && directly.
714
715         * cpphash.c (HASHSIZE): Increase to 4096.
716         (struct hashdummy): Add hash field.
717         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
718         the string values using memcmp.
719         (cpp_lookup): Set dummy.hash.
720
721 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
722
723         * configure.in (m88k-openbsd): Express configuration using new fragment
724         style.
725         * configure: Rebuilt.
726         * m88k/aout-dbx.h: New.
727         * m88k/openbsd.h: New.
728         * m88k/xm-openbsd.h: New.
729
730 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
731
732         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
733
734 2000-07-12  Richard Henderson  <rth@cygnus.com>
735
736         * reload.c (push_secondary_reload): Make sure to add the new
737         reload at the end, after acquiring secondary memory.
738
739 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
740
741         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
742
743         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
744         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
745
746         * c-parse.in (stmt): Delete unused variables.
747
748         * convert.c (convert_to_vector): Likewise.
749
750         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
751
752         * tree.c (finish_vector_type): Prototype.
753
754 2000-07-12  Bruce Korb  <bkorb@gnu.org>
755
756         * fixinc/fixfixes.c: use xmalloc
757         * fixinc/fixincl.c(initialize): set program name for xmalloc
758         * fixinc/fixlib.c(must_malloc): obsolete
759         (is_cxx_header): no longer used - disabled
760         (skip_quote): inserted and disabled for future use
761         * fixinc/fixlib.h: reflects above
762         * fixinc/fixtests.c: removed dinkleberries
763
764 2000-07-12  Neil Booth  <NeilB@earthling.net>
765
766         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
767         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
768
769         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
770         struct toklist_dummy): New.
771         (cpp_free_definition): Free macros with free_macro.
772         (count_params): Don't save paramter spellings.  Save macro
773         information in a struct macro_info.
774         (parse_define): Don't allocate a token list.
775         (save_expansion): Allocate the macro's token list, and
776         save parameter spellings if necessary.  Use TOKEN_SPELL.
777         (cpp_create_definition): Make list const.
778
779 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
780
781         * c-typeck.c (pedwarn_c99): Move to
782         * c-errors.c: ... Here.
783         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
784         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
785         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
786         (c-errors.o): List dependency.
787
788 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
789
790         * c-parse.c: Remove.
791         * c-parse.h: Likewise.
792         * c-parse.y: Likewise.
793         * objc/objc-parse.c: Likewise.
794         * objc/objc-pasre.y: Likewise.
795
796 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
797
798         * gcc.texi: Fix minor typos
799         * extend.texi: Fix minor typos
800
801 2000-07-11  Marc Espie <espie@openbsd.org>
802
803         * collect2.c (main): Recognize .lo as object files.
804
805 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
806
807         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
808         true.
809
810         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
811         with MAP_ANONYMOUS and MAP_ANON.
812         * configure, config.in: Rebuilt.
813
814 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
815
816         * diagnostic.c (save_output_state): Remove.
817         (restore_output_state): Likewise.
818         (clear_text_info): New function.
819         (clear_diagnostic_info): Likewise.
820         (output_text_length, is_starting_newline, output_prefix,
821         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
822         prefixing_policy, output_buffer_ptr_to_format_args): New macros
823         (set_real_maximum_length, output_set_maximum_length,
824         output_set_prefix, output_get_prefix, output_set_maximum_length,
825         output_destroy_prefix, init_output_buffer,
826         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
827         output_add_newline, output_add_character, output_add_space,
828         output_append_r, output_append, wrap_text, output_format,
829         output_do_printf, output_printf, output_do_verbatim,
830         output_verbatim, verbatim): Use them.
831         (output_clear): Split into cleat_text_info and
832         clear_diagnostic_info.
833         (struct output_state): Move to...
834
835         * diagnostic.h: ...Here
836         (struct output_buffer): Adjust.
837
838 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
839
840         * cpplex.c (parse_name): No longer inline (premature optimization).
841         (do_pop_context): Fold into pop_context.
842         (pop_context): Returns int.
843         (lex_next): Hoist test for end of directive into pop_context.
844         (push_macro_context): Returns int; takes just reader and token.
845         Hoist test for excessive nesting to caller.
846         (push_arg_context): Returns void; takes just reader and token.
847         Do not call stringify_arg or get_raw_token.
848         (get_raw_token): Convert tail recursion through push_arg_context
849         to a loop at this level.  Call stringify_arg here if appropriate.
850         (maybe_paste_with_next): Convert tail recursion to a while loop.
851         Hoist test of paste_level to caller.
852
853         (stringify_arg): Push arg context at beginning.
854         (cpp_get_token): Split out core into _cpp_get_token.  Call
855         process_directive here.  Throw away CPP_PLACEMARKER tokens.
856         (_cpp_get_token): Convert tail recursion through
857         push_macro_context to a loop at this level.
858         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
859         _cpp_get_raw_token): Use _cpp_get_token.
860         (_cpp_skip_rest_of_line): Drop the context stack directly; do
861         not call pop_context.
862         (_cpp_run_directive): Call lex_next directly.
863
864         * cpphash.h: Prototype _cpp_get_token.
865         * cppexp.c (lex): Use it.
866         * cpphash.c (parse_define): Use it.
867         * cpplib.c (get_define_node, do_undef, parse_include,
868         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
869         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
870         parse_ifdef, validate_else): Use it.
871         (cpp_push_buffer): Tweak error message; abort if anyone tries
872         to push a buffer while macro expansions are stacked.
873
874 2000-07-11  Donn Terry  <donnte@microsoft.com>
875
876         * cpplex.c (free_macro_args, save_token): Cast arg of free
877         and/or xrealloc to PTR.
878         (_cpp_init_input_buffer): Clear all fields of the base context.
879
880 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
881
882         * gensupport.c (process_rtx): Make rtl checking stop
883         complaining about the define_insn while it is being
884         converted from a define_insn_and_split.
885
886 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
887
888         * config/mips/mips.c (simple_memory_operand): Access the
889         INTVAL of the address, not it's containing MEM.
890
891 2000-07-11  Bruce Korb  <bkorb@gnu.org>
892
893         * fixinc/fixtests.c(double_slash): obsolete
894         (else_endif_label): likewise
895         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
896         (libc1_ifdefd_memx): correct initial comment
897         and omit the #if/#endif pair from the memxxx declarations
898         * fixinc/fixincl.x: regen
899
900 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
901
902         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
903
904 2000-07-11  Neil Booth  <NeilB@earthling.net>
905
906         * cpp.texi: Update.
907
908 2000-07-11  Neil Booth  <NeilB@earthling.net>
909
910         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
911         (handle_option): Set digraphs according to standard.
912         Merge OPT_lang_c89 handler with OPT_std_c89.
913
914         * cpplex.c: (lex_line, can_paste): Honour digraphs in
915         accordance with the digraphs flag.
916
917         * cpplib.h: (struct cpp_options): New option digraphs.
918
919 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
920             Bruce Korb  <bkorb@gnu.org>
921
922         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
923         * fixinc/fixincl.x: Regenerate.
924         * fixinc/tests/base/testing.h: Add testcase.
925
926 2000-07-10  Richard Henderson  <rth@cygnus.com>
927
928         * config/ia64/ia64.c (got_symbolic_operand): New.
929         (symbolic_operand, move_operand): Revert 0701 change.
930         * config/ia64/ia64.h (PREDICATE_CODES): Update.
931         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
932         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
933         split the offset into a 14-bit low part instead of a 13-bit low part.
934         (load_fptr): Mark the mem as unchanging.
935         (load_symptr): Use got_symbolic_operand.
936
937 2000-07-10  Nick Clifton  <nickc@cygnus.com>
938
939         * libgcc2.c (next_stack_level): Cast result of computation to
940         (void **) so that the assignment does not generate a warning.
941
942 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
943
944         * flags.h : Add new variable flag_single_precision_constant.
945         * toplev.c (display_help) : Add -fsingle-precision-constant option.
946         (flag_single_precision_constant): New.
947         * c-lex.c (yylex): Convert floating point constant to single
948         precision constant.
949         * invoke.texi : Add documentation for this new option.
950
951 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
952
953         * diagnostic.c (output_octal): Second parameter is unsigned.
954         (output_long_octal): Likewise.
955         (output_hexadecimal): Likewise.
956         (output_long_hexadecimal): Likewise.
957         (output_format): Adjust arguments extraction. Tweak.
958         (output_verbatim, verbatim): End variable argument list.
959         (report_diagnostic): Improve documentation.
960
961 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
962
963         * c-common.h (build_stmt): Declare.
964         (build_continue_stmt): Likewise.
965         (build_break_stmt): Likewise.
966         (build_return_stmt): Likewise.
967
968         * c-decl.c (do_case): Rewrite to do what previously done in
969         c-parse.in.
970
971         * c-semantics.c (build_stmt): Define.
972         (build_return_stmt): Likewise.
973         (build_break_stmt): Likewise.
974         (build_continue_stmt): Likewise.
975         (build_case_label): Likewise.
976
977         * c-parse.in (BREAK): Change to build tree, then generate RTL.
978         (CONTINUE): Likewise.
979         (RETURN): Likewise.
980         (CASE): Likewise.
981         (DEFAULT): Likewise.
982
983         * c-parse.y: Regenerate.
984         * c-pasre.c: Likewise.
985
986 2000-07-09  Jason Merrill  <jason@redhat.com>
987
988         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
989
990         * tree.h (STRIP_NOPS): Check for error_mark_node.
991         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
992         (dwarf2out_*): Remove duplicate declarations.
993
994         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
995         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
996
997 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
998
999         * diagnostic.c (wrap_text): New function.
1000         (maybe_wrap_text): Likewise.
1001         (output_add_string): Use it.
1002         (output_format): Likewise.
1003         (count_error): Use verbatim instead of notice.
1004         (report_error_function): Likewise. Don't use plain fprintf.
1005         (finish_diagnostic): New function.
1006         (output_do_verbatim): Tweak.  Commonalize functionalities in
1007         output_verbatim and verbatim.
1008         (output_verbatim): Adjust.
1009         (verbatim): Likewise.
1010         (report_diagnostic): Define.
1011
1012         * diagnostic.h (report_diagnostic): Prototype.
1013
1014 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
1015
1016         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
1017
1018 2000-07-09  Neil Booth  <NeilB@earthling.net>
1019
1020         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
1021         IShspace, ISspace: Update.
1022
1023         * cppinit.c: ISTABLE: Update.
1024         V: New.
1025
1026         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
1027         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
1028         (skip_block_comment, skip_line_comment, parse_string,
1029         lex_line): Use is_vspace rather than IS_NEWLINE.
1030         (skip_whitespace, lex_line): Clean up to use is_nvspace.
1031         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
1032         gets a BOL flag.
1033         (lex_next): Unconditionally stop if within a directive.
1034         Treat directives within macro invocations as directives
1035         (after parse_args emits error), not as the argument.
1036
1037 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
1038
1039         * diagnostic.c (diagnostic_args): New macro.
1040         (diagnostic_msg): Likewise.
1041         (output_formatted_integer): Likewise.
1042         (output_state): New data type.
1043         (digit_buffer): Make global.
1044         (output_add_integer): Rename to output_decimal. Squeeze
1045         digit_buffer.
1046         (output_long_decimal, output_unsigned_decimal,
1047         output_long_unsigned_decimal, output_octal, output_long_octal,
1048         output_hexadecimal, output_long_hexadecimal): New functions.
1049         (output_append_r): New function.
1050         (output_append): Tweak.
1051         (output_flush_on): Rename to output_to_stream.
1052         (output_format): Change prototype.  Improve documentation. Handle
1053         more format specifiers.
1054         (build_location_prefix): Rename to context_as_prefix.
1055         (output_notice): Rename to output_do_printf.
1056         (output_printf): Tweak.
1057         (line_wrapper_printf): Likewise.
1058         (vline_wrapper_message_with_location): Adjust call to renamed
1059         functions.
1060         (v_message_with_decl): Likewise.
1061         (default_print_error_function): Likewise.
1062         (save_output_state): New function.
1063         (restore_output_state): Likewise.
1064         (output_do_verbatim): Likewise.
1065         (output_verbatim): Define.
1066         (verbatim): Likewise.
1067
1068         * diagnostic.h (printer_fn): Change return type from void to int.
1069         Improve documentation.
1070         (output_add_integer): Rename to output_decimal.
1071         (output_flush_on, output_format): Don't export.
1072         (output_verbatim, verbatim): Declare.
1073
1074 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
1075
1076         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
1077         Check whether c divides op1 exactly if operation is not
1078         multiplication.
1079
1080 2000-07-08  Richard Henderson  <rth@cygnus.com>
1081
1082         * final.c (final): Do not abort when reg-stack introduces
1083         a new insn.
1084
1085 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
1086
1087         * cpplib.h (struct cpp_name): Now struct cpp_string.
1088         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
1089         CPP_HEADER_NAME): Change to type S.
1090         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
1091         field, a cpp_hashnode *.  All references to val.name updated
1092         to use val.str or val.node as appropriate.
1093         (struct cpp_reader): Add spec_nodes field.
1094         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
1095
1096         * cpphash.h (struct spec_nodes): New.
1097         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
1098         val.str.  All references to 'spelling > SPELL_NONE' updated to
1099         match.
1100
1101         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
1102         pfile->buffer->inc are not NULL before dereferencing them.
1103
1104         * cpplex.c (parse_name): Take a pointer to the current token,
1105         plus current position and limit as args; return the new
1106         position; don't copy the text of a name into the string
1107         buffer, instead call cpp_lookup and store the node pointer.
1108         If extending a token, copy out the text of the old into a
1109         scratch buffer, append the new, look that up and store the new
1110         node pointer.  Inline.
1111         (maybe_paste_with_next): If the result of paste is a NAME,
1112         then look up the pasted text and store its node pointer.
1113         (lex_line): Adjust for new parse_name interface.
1114         Check for L"str", L'str' using spec_nodes->n_L.
1115         (spell_token): SPELL_IDENT tokens have their spelling in
1116         val.node->name.  Handle SPELL_STRING tokens that don't have
1117         string delimiters.
1118         (_cpp_expand_name_space,
1119         (can_paste): Check for L ## "str" using spec_nodes->n_L.
1120         (cpp_get_token, special_symbol): No need to call cpp_lookup.
1121         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
1122         return 1=equal 0=not, not a tristate.
1123
1124         * cpphash.c (var_args_str): Delete.
1125         (find_param): Compare node fields directly.
1126         (is__va_args__): Use CPP_PEDANTIC.  Just compare
1127         token->val.node with spec_nodes->n__VA_ARGS__.
1128         (dump_funlike_macro): Don't use var_args_str.
1129
1130         * cpplib.c (_cpp_check_directive): Just walk through
1131         spec_nodes->dirs comparing pointers.
1132         (get_define_node, do_pragma_poison, detect_if_not_defined,
1133         parse_ifdef): The identifier has already been looked up.
1134         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
1135         node.
1136         (do_if): Only call detect_if_not_defined at beginning of file.
1137         (_cpp_parse_assertion): Only copy string pointers for
1138         SPELL_STRING tokens.
1139         (pragma_dispatch): Take a node pointer and examine its name
1140         field.
1141         (_cpp_init_stacks): Also initialize the spec_nodes structure.
1142
1143         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
1144         _cpp_init_macros.
1145         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
1146         reverse order from the corresponding _cpp_init_* routines.
1147
1148         * cppexp.c (parse_number, parse_charconst, parse_defined,
1149         lex): Check val.node->type instead of calling cpp_defined.
1150         Use spec_nodes entries where appropriate.
1151
1152         * fix-header.c, scan-decls.c: Update for interface changes.
1153
1154 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
1155
1156         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
1157         emitting aux_truncdfsf2.
1158
1159 2000-07-03  Donn Terry  (donnte@microsoft.com)
1160
1161         * cppinit.c (print_help): split overlong line into ISO C89
1162         maximum chunks.
1163
1164 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1165
1166         * cppexp.c: Update all code for new lexer interface.
1167         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
1168         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
1169         * cpplex.c (token_names): Trim leading CPP_ from names; make
1170         the strings unsigned.
1171         (_cpp_spell_operator): New.
1172         (is_macro_disabled): Disable all macros if rescanning
1173         preprocessed text.
1174         (_cpp_get_directive_token): Remove.
1175
1176         * cppinit.c: Don't set no_macro_expand.
1177         * cpplib.c (read_line_number, do_line): Check only for EOF,
1178         not VSPACE.
1179         * cpphash.h: Update prototypes.
1180         * cpplib.h (CPP_VSPACE): Remove.
1181         (struct cpp_reader): Remove no_macro_expand.
1182
1183 2000-07-08  Neil Booth  <NeilB@earthling.net>
1184
1185         * cpphash.c (is__va_args__): New function.
1186         (count_params): Fix line reported in error messages.  Use
1187         is__va_args__.  Don't return ')' on error.  Flag GNU style
1188         rest args macro definitions.
1189         (parse_define): Check macro name is not __VA_ARGS__.
1190         (save_expansion): Check identifier in non-varargs-macro is
1191         not __VA_ARGS__.  Don't flag GNU_VARARGS.
1192         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
1193         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
1194          than per-token GNU_VARARGS.
1195         * cpplib.h (GNU_VARARGS): Remove.
1196         (GNU_REST_ARGS): New.
1197
1198 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1199
1200         * i386.md (call_pop, call, call_value_pop): Do not set
1201         current_function_uses_pic_offset_table for calls to static
1202         functions or indirect calls.
1203
1204 2000-07-07  Jim Wilson  <wilson@cygnus.com>
1205
1206         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
1207         is_predicate_reg, then take max write_count of register pair.
1208
1209 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1210
1211         * tradcpp.c (main): Rename label `include' to `add_include' to
1212         avoid conflicts with variable `include' in traditional C.
1213
1214 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1215
1216         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
1217
1218 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1219
1220         * sibcall.c (uses_addressof): Add INMEM argument, check for
1221         current_function_internal_arg_pointer outside of MEM rtxs in addition
1222         to ADDRESSOFs.
1223         (sequence_uses_addressof): Update caller.
1224
1225 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1226
1227         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
1228         and friends.
1229
1230 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1231
1232         * system.h (UNION_INIT_ZERO): New macro for initializing union
1233         members in structs.
1234
1235         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
1236
1237 2000-07-07  Neil Booth  <NeilB@earthling.net>
1238
1239         * cpp.texi: Update.
1240
1241 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
1242
1243         * final.c (final): Detect out of bounds array access to
1244         the insn_lengths array.
1245
1246 2000-07-07  Kazu Hirata  <kazu@hxi.com>
1247
1248         * fold-const.c (fold): Fix a comment typo.
1249
1250 2000-07-07  Neil Booth  <NeilB@earthling.net>
1251
1252         * cpp.texi: Update to new lexer.
1253
1254 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1255
1256         * tradcpp.c: New file.
1257         * tradcif.y: New file.
1258         * tradcif.c: New generated file.
1259
1260         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
1261         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
1262         dependencies of C.  Install tradcpp from install-common, in
1263         $(libsubdir).
1264
1265 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1266
1267         * cppinit.c: Include cppdefault.h.  Refer to
1268         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
1269         to GCC_INCLUDE_DIR and its length.
1270         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1271         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
1272         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
1273         cppdefault.h.
1274         (include_defaults_array): Move to cppdefault.c.
1275
1276         * cppdefault.h: New file.
1277         * cppdefault.c: New file.
1278
1279         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
1280         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
1281         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
1282         this file.
1283
1284 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1285
1286         * reload.c (push_reload): When seeing if can reuse a register,
1287         check extra registers against widest of INMODE and OUTMODE.
1288
1289 2000-07-06  Neil Booth  <NeilB@earthling.net>
1290
1291         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
1292         based on full length of predicate.
1293
1294 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
1295
1296         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
1297         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
1298
1299 2000-07-05  Kazu Hirata  <kazu@hxi.com>
1300
1301         * h8300-proto.h: Fix formatting.
1302         * h8300.c: Likewise.
1303         * h8300.h: Likewise.
1304
1305 2000-07-05  Jim Wilson  <wilson@cygnus.com>
1306
1307         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
1308         CCmode.
1309
1310 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
1311
1312         * invoke.texi: Fix minor typos
1313         * md.texi: Fix minor typos
1314
1315 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
1316
1317         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
1318
1319 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1320
1321         * cpplex.c: Don't include sys/mman.h.
1322         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
1323
1324         * cpplib.c: Include sys/mman.h and obstack.h.
1325         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
1326         obstack.
1327         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
1328         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
1329         bother freeing if stack entries (they will be freed with their buffer).
1330         (do_endif): Free if stack entries from the buffer obstack.
1331         (push_conditional): Allocate if stack entries from the buffer obstack.
1332
1333         (find_answer): Rename to _cpp_find_answer.
1334         (do_assert, do_unassert): Update.
1335
1336         * cpphash.h: Update prototypes.
1337         (xobnew): New convenience macro.
1338         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
1339         Update comments.
1340         (struct cpp_hashnode): Remove disabled field.
1341
1342         * cppinit.c: Don't include hashtab.h or splay-tree.h.
1343         (report_missing_guard): Moved to cppfiles.c.
1344         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
1345         cpp_init_includes.
1346         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
1347         cpp_cleanup_includes.  Don't destroy hashtab or
1348         all_include_files here.
1349         (cpp_finish): Use _cpp_report_missing_guards.
1350
1351         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
1352         (_cpp_init_include_table): Rename _cpp_init_includes.
1353         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
1354
1355         * cppexp.c (parse_assertion): Update for new name of
1356         find_answer.
1357
1358         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
1359
1360 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1361
1362         * cpplib.c (do_ident): s/VSPACE/EOF/
1363
1364 2000-07-05  Neil Booth  <NeilB@earthling.net>
1365
1366         * cpplex.c: Fix trigraph replacement within strings.
1367
1368 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1369
1370         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
1371
1372         * xcoffout.c (assign_type_number): Constify.
1373         (xcoffout_source_file): Add static prototype.  Don't needlessly
1374         cast away const-ness.
1375
1376 2000-07-04  Jason Merrill  <jason@redhat.com>
1377
1378         * frame.h (frame_state): Move base_offset to end.
1379
1380 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1381
1382         * calls.c (emit_library_call_value_1): Revert previous change.
1383
1384 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1385
1386         * fix-header.c (struct partial_proto): Remove unnecessary fields.
1387         (recognized_extern, recognized_function, read_scan_file):
1388         Update for new scheme.
1389         (check_protection): It's still a multiple include guard even
1390         if it doesn't always trigger.
1391         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
1392         new scheme.
1393         * scan.h: Declare struct cpp_token.  Update prototypes.
1394
1395 2000-07-03  Neil Booth  <neilb@earthling.net>
1396             Zack Weinberg  <zack@wolery.cumb.org>
1397
1398         Complete overhaul of the lexer and macro expander.
1399
1400         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
1401         arg, arglist, argdata, reflist, collect_objlike_expansion,
1402         collect_funlike_expansion, collect_params,
1403         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
1404         unsafe_chars, macarg, compare_defs, special_symbol,
1405         scan_arguments, stringify, funlike_macroexpand,
1406         _cpp_quote_string, monthnames): Delete.
1407         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
1408         _cpp_create_definition, _cpp_dump_definition,
1409         dump_hash_helper): Adjust.
1410         (find_param, count_params, parse_define, var_args_str,
1411         check_macro_redefinition, save_expansion): New.
1412
1413         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
1414         parse_string, output_line_command, trigraph_replace,
1415         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
1416         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
1417         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
1418         _cpp_skip_rest_of_line): Modify.
1419
1420         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
1421         find_position, null_warning, bump_column, expand_name_space,
1422         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
1423         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
1424         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
1425         _cpp_prescan): Delete.
1426
1427         (dump_param_spelling, process_directive, lex_next,
1428         is_macro_disabled, stringify_arg, expand_context_stack,
1429         output_token, make_string_token, alloc_number_token,
1430         special_symbol, duplicate_token, maybe_paste_with_next,
1431         can_paste, prevent_macro_expansion, restore_macro_expansion,
1432         get_temp_token, release_temp_tokens, quote_string,
1433         token_names, token_spellings, _cpp_expand_name_space,
1434         _cpp_glue_header_name, _cpp_reserve_name_space,
1435         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
1436         placemarker_token, eof_token, cpp_context, macro_args,
1437         get_raw_token, parse_arg, parse_args, save_token,
1438         push_arg_context, push_macro_context, pop_context,
1439         do_pop_context, free_macro_args, _cpp_get_line,
1440         _cpp_run_directive): New.
1441
1442         * cpplib.c (validate_else, parse_include, push_conditional,
1443         pass_thru_directive, read_line_number, parse_ifdef,
1444         detect_if_not_defined, _cpp_check_directive, do_define,
1445         do_undef, do_include, do_import, do_include_next, do_error,
1446         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
1447         top_pragmas, do_pragma_gcc, do_pragma_implementation,
1448         do_pragma_poison, do_pragma_system_header,
1449         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
1450         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
1451         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
1452         cpp_defined): Update for new scheme.
1453         (strtoul_for_line, get_define_node, dump_macro_name,
1454         _cpp_check_linemarker, _cpp_parse_assertion): New.
1455         (_cpp_handle_directive, do_pragma_default): Delete.
1456
1457         * cpphash.h (struct predicate): Now struct answer.
1458         (enum spell_type, struct token_spelling, struct directive,
1459         directive_handler): New.
1460         Update prototypes.  Remove unused macros.
1461         * cpplib.h: Update prototypes.  Remove unused macros,
1462         structure definitions, and fields.
1463
1464         * cpperror.c (print_containing_files, v_message): Adjust.
1465         * cppexp.c (parse_assertion, lex, parse_escape,
1466         _cpp_parse_expr): Adjust.
1467         * cppfiles.c (open_include_file, _cpp_execute_include,
1468         _cpp_compare_file_date, cpp_read_file, read_include_file):
1469         Adjust.
1470         * cppinit.c (dump_special_to_buffer): Delete.
1471         (append_include_chain, merge_include_chains, cpp_reader_init,
1472         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1473         cpp_finish, handle_option, print_help): Adjust.
1474         * cppmain.c (main): Adjust.
1475
1476 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1477
1478         * cppspec.c (lang_specific_driver): Use double quotes in error
1479         message.
1480
1481 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1482
1483         * calls.c (emit_library_call_value_1): Use valreg instead
1484         of hard_libcall_value.
1485
1486 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1487
1488         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1489         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1490         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1491         (movhi): Likewise.
1492         (movqi): Likewise.
1493         (movdf): Likewise.
1494         (movsf): Likewise.
1495         (movdi): Likewise.
1496         (movti): Likewise.
1497
1498         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1499         mode instead of wider_mode is being used.
1500
1501 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1502
1503         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1504         of 'r'. Use q_regs_operand.
1505         (andsi_1+2): Use q_regs_operand.
1506
1507 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1508
1509         * builtins.c (get_memory_rtx): Always put into alias set 0.
1510
1511 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1512
1513         * config/arm/arm.md: Fix post increment and pre increment
1514         peepholes so that they do not generate UNPREDICATBLE opcodes.
1515         (ie ones where the increment clobbers the source/destination).
1516
1517 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1518
1519         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1520         change too big for -mtiny-stack" a warning, if larger than 63.
1521         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1522         always safe to use on possible future devices.
1523         (function_prologue): Write SPH before SPL, for consistency.
1524         If interrupt_func_p true, we know we have enabled interrupts.
1525         (avr_num_arg_regs): New function.  Round up to even number of
1526         bytes if no -mpack-args or if calling a libgcc function.
1527         (function_arg, function_arg_advance): Use it.
1528         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1529         Output "movw" if available.
1530         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1531         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1532         (asm_output_section_name): Add blanks for consistent output.
1533         (encode_section_info): Set TREE_READONLY for progmem data to
1534         avoid gas warnings about changed section attributes.
1535         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1536         even numbered registers on devices with "movw".
1537         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1538         (TARGET_SWITCHES): Mark help strings for translation.
1539         Add new -mpack-args and -menhanced switches.
1540         (TARGET_OPTIONS): Mark help strings for translation.
1541         (progmem_section): Add section attributes.
1542         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1543         Output "movw" if available.
1544         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1545         New patterns.
1546         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1547         call convention (arguments aligned on even registers).
1548         (_cleanup, _exit): Make weak symbols libc can override.
1549
1550 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1551
1552         * fp-bit.h: New file.
1553
1554         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1555         Comment #endif statements.
1556         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1557
1558 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1559
1560         * gcse.c (compute_pre_data): Compute ae_kill using other local
1561         properties instead of calling compute_ae_kill.
1562
1563         * alias.c (init_alias_analysis): Do not call
1564         prologue_epilogue_contains until after reload has completed.
1565
1566 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1567
1568         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1569         (genrtl_finish_compound_stmt): Likewise.
1570         (genrtl_compound_stmt): Change to return void.
1571
1572         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1573         move code from here to ...
1574         (genrtl_compound_stmt): ... here.
1575         (genrtl_finish_compound_stmt): Remove.
1576         (expand_stmt): Add comment.
1577
1578 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1579
1580         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1581         and VOID_TYPE_P.
1582
1583 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1584
1585         * cpplib.h (struct cpp_reader): New field include_depth.
1586         (struct cpp_printer): Rename last_bsd to last_id.
1587         * cppfiles.c (read_include_file): Bump include_depth.
1588         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1589         (output_line_command): Output correct #line if a header
1590         is including itself and is not protected against multiple inclusion.
1591         Use include_depth instead of buffer_stack_depth, last_id instead of
1592         last_bsd.
1593         * cppinit.c (cpp_start_read): Initialize last_id instead of
1594         last_bsd.
1595
1596 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1597
1598         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1599         (c-semantics.o): New target.
1600
1601         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1602         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1603         (genrtl_clear_out_block): Likewise.
1604         (genrtl_goto_stmt): Likewise.
1605         (genrtl_expr_stmt): Likewise.
1606         (genrtl_decl_stmt): Likewise.
1607         (genrtl_if_stmt): Likewise.
1608         (genrtl_while_stmt): Likewise.
1609         (genrtl_do_stmt): Likewise.
1610         (genrtl_return_stmt): Likewise.
1611         (genrtl_for_stmt): Likewise.
1612         (genrtl_break_stmt): Likewise.
1613         (genrtl_continue_stmt): Likewise.
1614         (genrtl_scope_stmt): Likewise.
1615         (genrtl_switch_stmt): Likewise.
1616         (genrtl_case_label): Likewise.
1617         (genrtl_begin_compound_stmt): Likewise.
1618         (gerntl_finish_compound_stmt): Likewise.
1619         (genrtl_compound_stmt): Likewise.
1620         (genrtl_asm_stmt): Likewise.
1621         (genrtl_decl_cleanup): Likewise.
1622         (DECL_ANON_UNION_ELEMS): Likewise.
1623         (emit_local_var): Likewise.
1624         (make_rtl_for_local_static): Likewise.
1625         (expand_cond): Likewise.
1626         (expand_stmt): Likewise.
1627         (c_expand_return): Likewise.
1628         (c_expand_start_case): Likewise.
1629         (do_case): Likewise.
1630         (COMPOUND_STMT_NO_SCOPE): Likewise.
1631         (c_expand_asm_operands): Likewise.
1632         (NEW_FOR_SCOPE_P): New macro.
1633         (expand_expr_stmt_fn): New type.
1634
1635         (set_current_function_name_declared): Likewise.
1636         (current_function_name_declared): Likewise.
1637         (lang_expand_stmt): Likewise.
1638         (stmts_are_full_exprs_p): Likewise.
1639         (anon_aggr_type_p): Likewise.
1640         (lang_expand_expr_stmt): Likewise.
1641         (build_case_label): Likewise.
1642
1643         * c-decl.c (lang_expand_expr_stmt): Initialize.
1644         (stmts_are_full_exprs_p): Define.
1645         (current_function_name_declared): Likewise.
1646         (do_case): Likewise.
1647         (lang_expand_stmt): Likewise.
1648         (set_current_function_name_declared): Likewise.
1649         (anon_aggr_type_p): Likewise.
1650
1651         * c-semantics.c: New file.
1652         (expand_cond): Moved from cp/semantics.c.
1653         (genrtl_do_pushlevel): Likewise.
1654         (genrtl_clear_out_block): Likewise.
1655         (genrtl_goto_stmt): Likewise.
1656         (genrtl_expr_stmt): Likewise.
1657         (genrtl_decl_stmt): Likewise.
1658         (genrtl_if_stmt): Likewise.
1659         (genrtl_while_stmt): Likewise.
1660         (genrtl_do_stmt): Likewise.
1661         (genrtl_return_stmt): Likewise.
1662         (genrtl_for_stmt): Likewise.
1663         (genrtl_break_stmt): Likewise.
1664         (genrtl_continue_stmt): Likewise.
1665         (genrtl_scope_stmt): Likewise.
1666         (genrtl_switch_stmt): Likewise.
1667         (genrtl_case_label): Likewise.
1668         (genrtl_begin_compound_stmt): Likewise.
1669         (genrtl_finish_compound_stmt): Likewise.
1670         (genrtl_compound_stmt): Likewise.
1671         (genrtl_asm_stmt): Likewise.
1672         (genrtl_decl_cleanup): Likewise.
1673         (make_rtl_for_local_static): Moved from cp/decl.c.
1674         (emit_local_var): Likewise.
1675         (expand_stmt): Define.
1676
1677         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1678         (c_expand_return): Likewise.
1679         (c_expand_start_case): Likewise.
1680
1681 2000-07-01  Richard Henderson  <rth@cygnus.com>
1682
1683         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1684         with the low 13 bits set.
1685         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1686         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1687         of the low 13 bits into a CONST plus an adddi3.
1688         (load_symptr): Set RTX_UNCHANGING_P.
1689
1690 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1691
1692         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1693         * c-common.c (ridpointers): Declare.
1694         * c-common.h (enum rid): Declare.
1695         (NORID): Likewise.
1696         (ridpointers): Likewise.
1697         * c-lex.c (ridpointers): Don't declare.
1698         (init_lex): Initialize ridpointers.
1699         * c-lex.h (enum rid): Don't declare.
1700         (NORID): Likewise.
1701         (RID_FIRST_MODIFIER): Likewise.
1702         (ridpointers): Likewise.
1703
1704 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1705
1706         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1707         have global scope.
1708
1709 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1710
1711         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1712         always an error.
1713
1714 2000-06-30  Catherine Moore  <clm@cygnus.com>
1715
1716         * c-common.c (decl_attributes):  Differentiate between
1717         types and type decls for alignment.
1718
1719 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1720
1721         * cpp.texi: Document #pragma GCC dependency
1722         * cppfiles.c (open_include_file): Set date to unknown.
1723         (_cpp_compare_file_date): New function.
1724         (read_include_file): Set file date.
1725         * cpphash.h (struct include_file): Add date member.
1726         (_cpp_compare_file_date): Prototype.
1727         * cpplib.c (parse_include): Add trail parameter. Adjust.
1728         (do_include): Adjust parse_include call.
1729         (do_import): Likewise.
1730         (do_include_next): Likewise.
1731         (gcc_pragmas): Add dependency pragma.
1732         (do_pragma_dependancy): New pragma.
1733
1734 2000-06-29  Jason Merrill  <jason@redhat.com>
1735
1736         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1737         no operands.
1738
1739 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1740
1741         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1742         a volatile mem and FR_REGS.
1743
1744 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1745
1746         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1747         * c-common.h (flag_const_strings): Declare.
1748         (warn_format): Likewise.
1749         (flag_traditional): Likewise.
1750         (flag_isoc99): Likewise.
1751         (warn_parentheses): Likewise.
1752         (warn_conversion): Likewise.
1753         (C_TYPE_OBJECT_P): Likewise.
1754         (C_TYPE_INCOMPLETE_P): Likewise.
1755         (C_TYPE_FUNCTION_P): Likewise.
1756         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1757         (C_EXP_ORIGINAL_CODE): Likewise.
1758         (build_unary_op): Likewise.
1759         (build_binary_op): Likewise.
1760         (lvalue_p): Likewise.
1761         (default_conversion): Likewise.
1762         (common_type): Likewise.
1763         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1764         (C_TYPE_INCOMPLETE_P): Likewise.
1765         (C_TYPE_FUNCTION_P): Likewise.
1766         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1767         (C_EXP_ORIGINAL_CODE): Likewise.
1768         (common_type): Likewise.
1769         (default_conversion): Likewise.
1770         (build_binary_op): Likewise.
1771         (build_unary_op): Likewise.
1772         (lvalue_p): Likewise.
1773         (flag_const_strings): Likewise.
1774         (warn_format): Likewise.
1775         (warn_conversion): Likewise.
1776         (flag_traditional): Likewise.
1777         (flag_isoc99): Likewise.
1778         (warn_parentheses): Likewise.
1779
1780 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1781
1782         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1783
1784         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1785         same.  Only tie XFmode with XFmode.
1786
1787 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1788
1789         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1790         * Makefile.in: Update deps.
1791
1792 2000-06-29  Andrew Haley  <aph@cygnus.com>
1793
1794         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1795         to true.
1796
1797 2000-06-29  Andrew Haley  <aph@cygnus.com>
1798
1799         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1800         bytes: remove the multiply by 8.
1801
1802 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1803
1804         * rtl.c : Revert NLS changes.
1805         * gcc.c : Fix bug in display_help introced by my last changes.
1806
1807 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1808
1809         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1810         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1811
1812 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1813
1814         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1815
1816 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1817
1818         * c-decl.c : Mark strings for translation.
1819         (parmlist_tags_warning): Use distinct messages instead
1820         of conditional expressions.
1821         * diagnostic.c (v_message_with_decl): Mark string for translation.
1822         * gcc.c: Mark messages for translation.
1823         (display_help): Combine messages into one string where necessary.
1824         * mips-tfile: Add intl.h. Mark messages for translation.
1825         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1826         messages for translation.
1827         * timevar.c: Mark messages for translation.
1828         * tlink.c: Likewise.
1829         * toplev.c: Likewise.
1830
1831 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1832
1833         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1834
1835         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1836         use -isystem instead of -idirafter.
1837         * i386/i386-interix.h: Likewise.
1838
1839 2000-06-28  Jason Merrill  <jason@redhat.com>
1840
1841         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1842         unless DWARF2_DEBUGGING_INFO is defined.
1843         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1844
1845 2000-06-28  Richard Henderson  <rth@cygnus.com>
1846
1847         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1848
1849 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1850
1851         * cpplex.c (output_line_command): Output correct #line if a header
1852         is including itself and is not protected against multiple inclusion.
1853
1854 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1855
1856         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1857         ENFILE, close all cached file descriptors and try again.
1858         (_cpp_execute_include): Keep a count of the number of times
1859         each header is included.
1860         (close_cached_fd): New function.
1861         * cpphash.h (struct include_file): Rename before to
1862         include_count; all users updated.  Make include_count and sysp
1863         unsigned short.
1864         * cppinit.c (cpp_finish): If -H, report headers that could use
1865         reinclude guards.
1866         (report_missing_guard): New function.
1867
1868 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1869
1870         * i386.md (prologue_set_got): Set length_immediate field.
1871         (testqi_ccno_1):  Add missing '@' character.
1872
1873 2000-06-27  Jason Merrill  <jason@redhat.com>
1874
1875         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1876         DWARF_FRAME_REGNUM.
1877
1878 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1879
1880         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1881         unsigned macros available.
1882
1883 2000-06-27  Richard Henderson  <rth@cygnus.com>
1884
1885         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1886         epilogue_deallocate_stack.
1887
1888         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1889         completers for UNORDERED and ORDERED as well.
1890         * config/ia64/ia64.md (bunordered, bordered): New.
1891         (sunordered, sordered): New.
1892
1893 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1894
1895         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1896         * i386.c (ix86_attr_length_default): Kill.
1897         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1898         New.
1899         * i386-protos.h (ix86_attr_length_default): Kill
1900         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1901         Add prototype
1902         * i386.md (attribute type): Add "test".
1903         (attribute length_prefix): Kill.
1904         (attribute length_opcode): Kill.
1905         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1906         prefix_rep, prefix_0f, modrm): New.
1907         (attribute length): Compute using the new attributes.
1908         (attribute pent_prefix): New.
1909         (attribute pent_pair): Compute using pent_prefix.
1910         (all insn patterns): Set mode,modrm and immediate_length attributes where
1911         needed.
1912         (cmpsi patterns): Compute sizes propertly for test instruction.
1913         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1914         (movstricthi_xor, movstrictqi_xor): New patterns.
1915         (andsi/andhi): Use splitters to generate xor instructions.
1916         (xorqi_ext_1): New pattern.
1917         (movstricthi->movstricthi_xor peep2): New.
1918
1919 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1920
1921         * i386.md (addqi_low_1): Remove.
1922
1923 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1924
1925         * 1750a.h: Mark help strings for options/switches for translation.
1926         * a29k.h: Likewise.
1927         * alpha.h: Likewise.
1928         * arm.h: Likewise.
1929         * pe.h: Likewise.
1930         * riscix.h: Likewise.
1931         * c4x.h: Likewise.
1932         * clipper.h: Likewise.
1933         * convex.h: Likewise.
1934         * elxsi.h: Likewise.
1935         * fr30.h: Likewise.
1936         * fx80.h: Likewise.
1937         * h8300.h: Likewise.
1938         * i370.h: Likewise.
1939         * cygwin.h: Likewise.
1940         * dgux.h: Likewise.
1941         * djgpp.h: Likewise.
1942         * i386.h: Likewise.
1943         * osf1elf.h: Likewise.
1944         * osfrose.h: Likewise.
1945         * sco5.h: Likewise.
1946         * win32.h: Likewise.
1947         * i860.h: Likewise.
1948         * paragon.h: Likewise.
1949         * i960.h: Likewise.
1950         * ia64.h: Likewise.
1951         * m32r.h: Likewise.
1952         * mcore.h: Likewise.
1953         * mips.h: Likewise.
1954         * mn10300.h: Likewise.
1955         * ns32k.h: Likewise.
1956         * pdp11.h: Likewise.
1957         * pj.h: Likewise.
1958         * aix.h: Likewise.
1959         * aix41.h: Likewise.
1960         * aix43.h: Likewise.
1961         * beos.h: Likewise.
1962         * rs6000.h: Likewise.
1963         * sysv4.h: Likewise.
1964         * linux.h: Likewise.
1965         * linux64.h: Likewise.
1966         * sp64-elf.h: Likewise.
1967         * sparc.h: Likewise.
1968         * splet.h: Likewise.
1969         * v850.h: Likewise.
1970         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1971         for translation.
1972         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1973         Properly document option and mark for translation.
1974         * sp86x-elf.h: Likewise.
1975
1976 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1977
1978         Add MMX and SSE registers to i386 machine description.
1979         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1980         ix86_local_alignment): Declare.
1981
1982         * i386.h (TARGET_MMX, TARGET_SSE): New.
1983         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1984         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1985         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1986         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1987         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1988         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1989         (RETURN_IN_MEMORY): Handle MMX/SSE.
1990         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1991         also get stack space.
1992         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1993         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1994         (MMX_REGISTER_NAMES): New.
1995         (ALIGN_MODE_128): New macro.
1996         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1997         (DATA_ALIGNMENT): Likewise.
1998         (LOCAL_ALIGNMENT): Likewise.
1999         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
2000         TARGET_MMX/TARGET_SSE.
2001         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
2002         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
2003         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
2004         SSE/MMX regs and something else.
2005         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
2006         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
2007         3 if moving between MMX regs and something else.
2008
2009         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
2010         (regclass_map): Add MMX/SSE registers.
2011         (print_operand): Add code to print XMMWORD as appropriate.
2012         (ix86_split_movdi): Abort for MMX regs.
2013         (init_cumulative_args): Also allow SSE_REGS
2014         (function_arg_advance, function_arg): Likewise
2015         (print_reg): Support 'm'.  Add case for TImode.
2016         (override_options): TARGET_SSE implies TARGET_MMX.
2017         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
2018         New functions.
2019
2020         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
2021         FIRST_SSE_REG.
2022         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
2023         memory.
2024         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
2025         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
2026
2027 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
2028
2029         * ssa.c (struct rename_set_data): Change the name of field
2030         'set_dest' to 'old_reg'.  Add comments.
2031         (struct rename_context): Change the name of 'set_data' to
2032         'new_renames'.  Add new field 'done_renames'.
2033         (create_delayed_rename): New function.
2034         (apply_delayed_renames): New function.
2035         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
2036         SUBREGs and similar by emitting a move.
2037         (new_registers_for_updates): Delete, functionality moved to
2038         apply_delayed_renames.
2039         (rename_block): Handle moves emitted by rename_insn_1 by putting
2040         them into a SEQUENCE with the original insn.  Add sanity checks
2041         and comments.
2042         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
2043         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
2044
2045 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
2046             Jason Merrill <jason@redhat.com>
2047
2048         * dwarf2.h (enum dwarf_call_frame_info): Add
2049         DW_CFA_def_cfa_expression.
2050         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
2051         dw_loc_descr_struct entry.
2052         (struct cfa_loc): New structure to track a CFA location.
2053         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
2054         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
2055         offset, plus handle DW_CFA_def_cfa_expression.
2056         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
2057         cfa_loc record.
2058         (dwarf2out_def_cfa): Entry point maintained for compatability.
2059         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
2060         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
2061         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
2062         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
2063         cfa_reg.
2064         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
2065         sequences for the new DW_CFA_def_cfa_expression record.
2066         (dwarf2out_frame_debug): Use new variables/fields.A
2067         (output_cfi): Handle DW_CFA_def_cfa_expression.
2068         (output_cfa_loc): New function to generate a CFI record for
2069         DW_CFA_def_cfa_expression.
2070         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
2071         a dw_loc_descr sequeunce.
2072         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
2073         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
2074         size_of_locs, output_loc_operands, output_loc_sequence): Move into
2075         unwind info section.
2076         * frame.h (frame_state): Add base_offset and indirect fields.
2077         * frame-dwarf2.c (decode_stack_op): New function to interpret a
2078         dw_loc_descr operation.
2079         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
2080         (struct frame_state): Add base offset and indirect fields.
2081         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
2082
2083 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2084
2085         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
2086         Make warnings about implicit int be pedwarns in C99.  Don't warn
2087         about duplicate type qualifiers in C99.
2088         (start_function): Make warning about implict int return type be a
2089         pedwarn in C99.
2090         * c-lex.c (yylex): Don't warn about `long long' in C99.
2091         * c-typeck.c (c_expand_return): In C99, always pedwarn about
2092         `return' with no value in function returning non-void.
2093
2094 2000-06-26  Richard Henderson  <rth@cygnus.com>
2095
2096         * c-typeck.c (pedwarn_c99): New.
2097         * diagnostic.c (verror, vwarning, vpedwarn): Export.
2098         * toplev.h: Prototype them.
2099
2100 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2101
2102         * c-typeck.c (digest_init): Return error_mark_node node when
2103         TREE_TYPE (init)  == error_mark_node.
2104
2105 2000-06-26  Philipp Thomas  <pthomas@suse.de>
2106
2107         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
2108         test for msgfmt without path instead.
2109         * configure: Rebuilt.
2110
2111 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2112
2113         * gengenrtl.c (special_rtx): Fix typo in comment.
2114
2115 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2116
2117         * mklibgcc.in (LIB2FUNCS): Add missing space.
2118
2119 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2120
2121         * tree.h (enum tree_index): Add vector type nodes.
2122         Add accessor macros for them.
2123         (TYPE_REPRESENATION_TYPE): New macro.
2124         * tree.c (build_common_tree_nodes_2): Build these nodes.
2125         (finish_vector_type): New function.
2126         * c-common.c (type_for_mode): Handle vector modes.
2127         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
2128
2129         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
2130         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
2131         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
2132         (gen_type_die): Likewise.
2133         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
2134         (fundamental_type_code): Likewise.
2135         (type_is_fundamental): VECTOR_TYPEs aren't.
2136         (output_type): Handle VECTOR_TYPEs.
2137
2138 2000-06-25  Kazu Hirata  <kazu@hxi.com>
2139
2140         * config/arm.c: Fix a comment typo.
2141         * config/arm.h: Likewise.
2142
2143 2000-06-25  Philipp Thomas  <pthomas@suse.de>
2144
2145         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
2146         compiler found.
2147         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
2148         * configure: Rebuilt.
2149
2150 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
2151
2152         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
2153
2154 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2155
2156         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
2157         libgcc.a.
2158
2159 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
2160
2161         * collect2.c (resolve_lib_name): Move '/' check out of loop.
2162
2163 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
2164
2165         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
2166
2167 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
2168
2169         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
2170         last_unconditional_cleanup.
2171
2172 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2173
2174         * tree.def (VECTOR_TYPE): New node type.
2175         * tree.h: Adjust some comments to reflect addition of vector types.
2176         (TYPE_VECTOR_SUBPARTS): New macro.
2177         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
2178         * c-convert.c (convert): Likewise.
2179         * convert.c (convert_to_integer): Handle vector modes.
2180         (convert_to_vector): New function.
2181         * convert.h (convert_to_vector): Declare.
2182         * expr.c (convert_move): Handle vector modes.
2183         * expmed.c (extract_bit_field): Don't abort for vector modes.
2184
2185 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
2186
2187         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
2188         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
2189         New functions, common code moved from function_{prologue,epilogue}
2190         and extended to support the -mtiny-stack option.
2191         (function_prologue, function_epilogue): Use them.
2192         Use lo8/hi8 consistently for asm output readability.
2193         (avr_hard_regno_mode_ok): New function.
2194         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
2195         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
2196         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
2197         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
2198         Write SPH before SPL.
2199         (*movqi): No need to disable interrupts for just one "out"
2200         in alternative 5.  Change length attribute from 4 to 1.
2201         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
2202         Write SPH before SPL.
2203
2204 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2205
2206         * rtl.texi (Vector Operations): New node.
2207         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
2208         (Conversions): Add ss_truncate, us_truncate.
2209         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
2210         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
2211         US_TRUNCATE): New rtx codes.
2212         * machmode.def: Add vector modes.
2213         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
2214         MODE_VECTOR_FLOAT.
2215         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
2216         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
2217         (VECTOR_MODE_P): New.
2218
2219 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
2220
2221         * cpp.texi: Clarify #pragma GCC namespace.
2222
2223 2000-06-24  Philipp Thomas  <pthomas@suse.de>
2224
2225         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
2226         all catalogs specified in ALL_LINGUAS.
2227         * configure: Rebuilt.
2228
2229 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2230
2231         * config/sparc/sparc.md (reload_outdi+1): Handle
2232         HOST_BITS_PER_WIDE_INT == 64 case correctly.
2233         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
2234
2235 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
2236
2237         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
2238         struct vs. scalar-ness when -fno-strict-aliasing.
2239
2240 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
2241
2242         * cpplib.c (struct pragma_entry): New structure.
2243         (pragma_dispatch): Pragma dispatcher.
2244         (top_pragmas, gcc_pragmas): New static variables.
2245         (do_pragma): Use pragma_dispatch.
2246         (do_pragma_gcc): New pragma handler.
2247         * cpp.texi: Update.
2248
2249 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2250
2251         * calls.c (compute_argument_addresses): Force stack slots into
2252         alias set 0.
2253         * expr.c (emit_push_insn): Force pushes into alias set 0.
2254
2255 2000-06-23  Richard Henderson  <rth@cygnus.com>
2256
2257         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
2258         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
2259
2260 2000-06-22  Jason Merrill  <jason@redhat.com>
2261
2262         * toplev.c (compile_file): Always call timevar_print.
2263         * Makefile.in (calls.o): Depend on TIMEVAR_H.
2264
2265 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2266
2267         * varasm.c (constant_descriptor): Make contents unsigned char.
2268         (mark_const_hash_entry): Adjust.
2269         (const_hash): Just hash the code of unknown nodes.
2270         (compare_constant_1): Adjust for unsigned char.
2271         Use language specific expander on unknown nodes.
2272         (record_constant_1): Likewise.
2273
2274 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2275
2276         * cppfiles.c (cpp_make_system_header): New function.
2277         * cpplib.h: Prototype it.
2278         * cpplib.c (do_line, do_pragma_system_header): Use it.
2279         * fix-header.c (read_scan_file): Use it.
2280
2281         * fix-header.c (check_macro_names): Cast second arg of
2282         cpp_defined to const unsigned char *.
2283         (read_scan_file): Make getchar_call const unsigned char.
2284
2285 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2286
2287         * cppfiles.c: Include splay-tree.h, not hashtab.h.
2288         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
2289         (destroy_include_file_node): New.
2290         (_cpp_init_include_hash): Rename _cpp_init_include_table.
2291         Create a splay tree, not a hash table.
2292         (open_include_file): Look up the path in the include table,
2293         do the multiple include optimization here, etc.
2294         (cpp_included): Walk the path.
2295         (find_include_file): Just walk the path calling
2296         open_include_file, or call it directly for an absolute path.
2297         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
2298         scheme.
2299         (read_include_file): Update for new scheme.  Don't close the
2300         file unless reading fails.
2301         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
2302
2303         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
2304         (struct include_file): New.
2305         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
2306         macros.
2307         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
2308         Update prototypes.
2309
2310         * cppinit.c: Include splay-tree.h.
2311         (cpp_reader_init, cpp_cleanup): Update.
2312
2313         * cpplib.h (struct cpp_buffer): Change ihash field to
2314         'struct include_file *inc'.  Remove system_header_p.
2315         (struct cpp_reader): Change all_include_files to a
2316         struct splay_tree_s *.
2317
2318         * cpplex.c: Update all references to cpp_buffer->ihash and/or
2319         cpp_buffer->system_header_p.
2320         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
2321
2322         * Makefile.in (SPLAY_TREE_H): New macro.
2323         (cppfiles.o, cppinit.o): Update dependencies.
2324
2325 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
2326
2327         * invoke.texi (g++): "g++" is not a script anymore.
2328
2329 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2330
2331         * function.c (round_down): Delete obsolete prototype.
2332
2333         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
2334
2335 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
2336
2337         * configure.in: Use 'test a = b' not 'test a == b'.
2338         * configure: Regen.
2339
2340         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
2341
2342         * Makefile.in: Remove all references to HOST_INTLLIBS.
2343
2344         * cpplex.c (parse_name): Don't warn about $ in identifiers if
2345         skipping.
2346
2347 2000-06-20  Philipp Thomas  <pthomas@suse.de>
2348
2349         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
2350         for PA 2.0.
2351
2352 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2353
2354         * Take REG_INC notes into account.
2355
2356 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
2357
2358         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
2359         (primary: IDENTIFIER): Just call build_external_ref.
2360         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2361         Regenerate.
2362         * c-lex.c (lastiddecl): Remove.
2363         (yylex): Replace all instances of lastiddecl with local
2364         variables.
2365
2366         * c-typeck.c (build_external_ref): New function.  Treat decls
2367         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
2368         Look up the decl from the id here.  Call lookup_objc_ivar.
2369         * c-lang.c (lookup_objc_ivar): Stub.
2370         * objc/objc-act.c (lookup_objc_ivar): New function.
2371
2372         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
2373         * c-lex.h: Don't declare lastiddecl.
2374
2375 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
2376
2377         * c-common.h (IF_COND): Added documentation.
2378         (THEN_CLAUSE): Likewise.
2379         (ELSE_CLAUSE): Likewise.
2380         (WHILE_COND): Likewise.
2381         (WHILE_BODY): Likewise.
2382         (DO_COND): Likewise.
2383         (DO_BODY): Likewise.
2384         (RETURN_EXPR): Likewise.
2385         (EXPR_STMT_EXPR): Likewise.
2386         (FOR_INIT_STMT): Likewise.
2387         (FOR_COND): Likewise.
2388         (FOR_EXPR): Likewise.
2389         (FOR_BODY): Likewise.
2390         (SWITCH_COND): Likewise.
2391         (SWITCH_BODY): Likewise.
2392         (CASE_LOW): Likewise.
2393         (CASE_HIGH): Likewise.
2394         (GOTO_DESTINATION): Likewise.
2395         (COMPOUND_BODY): Likewise.
2396         (ASM_CV_QUAL): Likewise.
2397         (ASM_STRING): Likewise.
2398         (ASM_OUTPUTS): Likewise.
2399         (ASM_INPUTS): Likewise.
2400         (ASM_CLOBBERS): Likewise.
2401         (DECL_STMT_DECL): Likewise.
2402         (STMT_EXPR_STMT): Likewise.
2403         (LABEL_STMT_LABEL): Likewise.
2404
2405         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
2406         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
2407         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
2408         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2409
2410 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2411
2412         * configure.in (--enable-checking): Update --help doc to reflect
2413         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
2414
2415 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2416
2417         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
2418
2419         * function.c (put_var_into_stack): Don't reference DECL_ fields
2420         if input is a SAVE_EXPR.
2421         Use set_mem_attributes in COMPLEX case.
2422
2423 2000-06-18  Richard Henderson  <rth@cygnus.com>
2424
2425         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
2426         (ia64_file_start): Declare.
2427         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
2428         (GR_REGNO_P): Likewise.
2429         * config/ia64/ia64.c: Many prototypes.
2430         (ia64_reg_numbers): Constify.
2431         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
2432         (ia64_section_threshold): Make unsigned.
2433         (ia64_print_operand): Constify.
2434         (fix_range): Constify.
2435         (ia64_init_builtins): Don't compare signed vs unsigned.
2436         (ia64_expand_builtin): Likewise.
2437
2438         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
2439         (CONSTRAINT_OK_FOR_Q): New.
2440         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
2441         (movsf_internal, movdf_internal): Likewise.
2442         (cmovdi_internal): Rewrite so that constraints and predicates match;
2443         simplify splitters.
2444         (cmovsi_internal): Likewise.
2445
2446         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
2447         (ASM_FILE_START): New.
2448         * config/ia64/ia64.c (ia64_file_start): New.
2449         (rtx_needs_barrier): Handle pred.rel.mutex.
2450         (emit_predicate_relation_info): New.
2451         * config/ia64/ia64.md (pred_rel_mutex): New.
2452         * config/ia64/linux.h (ASM_SPEC): Define.
2453         * config/ia64/sysv4.h (ASM_FILE_START): Define.
2454
2455         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
2456         filtering global register variables.
2457
2458 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2459
2460         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
2461
2462 2000-06-17  Michael Meissner  <meissner@redhat.com>
2463
2464         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
2465         not present and there is a field after a '-'.
2466
2467 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2468
2469         * fixinc/check.tpl:  finish the implementation of multiple tests
2470         for a single fix
2471         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2472         (io_quotes_def): add a second test
2473         (various): reorder `files' so that "limits.h" is never first
2474         * fixinc/tests/base/*: update the testing output
2475
2476 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2477
2478         * gcc.texi: Remove reference to stupid.c.
2479
2480 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2481
2482         * c-common.c (c_tree_code_type): New array.
2483         (c_tree_code_length): Likewise.
2484         (c_tree_code_name): Likewise.
2485         (add_c_tree_codes): New function.
2486
2487         * c-common.h (add_c_tree_codes): Declare.
2488         (enum c_tree_code): New enum.
2489
2490         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2491
2492 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2493
2494         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2495         select pattern to also match macro defs with only one argument.
2496
2497 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2498
2499         * i386.md: Create new [right,left] rotate and right shift
2500         patterns to optimize shift by 1 bit for certain ia32 processors.
2501         Update patterns which perform left shifts to optimize shift by
2502         1 bit for certain ia32 processors.
2503         * i386.c (const_int_1_operand): New predicate.
2504         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2505         * i386-protos.h (const_int_1_operand): Prototype.
2506
2507 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2508
2509         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2510
2511 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2512
2513         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2514         LABEL_REFs.
2515
2516 2000-06-14  Richard Henderson  <rth@cygnus.com>
2517
2518         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2519
2520         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2521         auto-inc code.
2522
2523         * print-rtl.c (print_rtx): Emit space before mem alias set.
2524
2525 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2526
2527         * rs6000.c (expand_block_move): Fix typo in earlier change.
2528         (print_operand): Remove unused variables neg and op.
2529         (toc_hash_mark_entry): Fix prototype.
2530
2531 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2532
2533         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2534         (THEN_CLAUSE): Likewise.
2535         (ELSE_CLAUSE): Likewise.
2536         (WHILE_COND): Likewise.
2537         (WHILE_BODY): Likewise.
2538         (DO_COND): Likewise.
2539         (DO_BODY): Likewise.
2540         (RETURN_EXPR): Likewise.
2541         (EXPR_STMT_EXPR): Likewise.
2542         (FOR_INIT_STMT): Likewise.
2543         (FOR_COND): Likewise.
2544         (FOR_EXPR): Likewise.
2545         (FOR_BODY): Likewise.
2546         (SWITCH_COND): Likewise.
2547         (SWITCH_BODY): Likewise.
2548         (CASE_LOW): Likewise.
2549         (CASE_HIGH): Likewise.
2550         (GOTO_DESTINATION): Likewise.
2551         (COMPOUND_BODY): Likewise.
2552         (ASM_CV_QUAL): Likewise.
2553         (ASM_STRING): Likewise.
2554         (ASM_OUTPUTS): Likewise.
2555         (ASM_INPUTS): Likewise.
2556         (ASM_CLOBBERS): Likewise.
2557         (DECL_STMT_DECL): Likewise.
2558         (STMT_EXPR_STMT): Likewise.
2559         (LABEL_STMT_LABEL): Likewise.
2560         (SCOPE_BEGIN_P): Likewise.
2561         (SCOPE_END_P): Likewise.
2562         (SCOPE_STMT_BLOCK): Likewise.
2563         (SCOPE_NULLIFIED_P): Likewise.
2564         (SCOPE_NO_CLEANUPS_P): Likewise.
2565         (SCOPE_PARTIAL_P): Likewise.
2566         (ASM_VOLATILE_P): Likewise.
2567         (STMT_LINENO): Likewise.
2568         (STMT_LINENO_FOR_FN_P): Likewise.
2569
2570         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2571         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2572         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2573         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2574         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2575
2576         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2577
2578 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2579
2580         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2581         writable in parts of the GCC code.
2582
2583         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2584         specification match cast.
2585
2586 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2587
2588         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2589         * configure, config.in: Rebuilt.
2590         * sys-protos.h: Similarly.
2591
2592 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2593
2594         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2595         * basic-block.h (EDGE_COMPLEX): ... here.
2596
2597         * loop.c (check_dbra_loop): Specify the register when
2598         generating REG_NONNEG notes and don't generate duplicates.
2599
2600 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2601
2602         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2603         (struct tree_type, struct tree_decl): Add user_align member.
2604         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2605         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2606         and DECL_USER_ALIGN 0, cap alignment to this value.
2607         (place_field): Likewise.
2608         (finalize_type_size): Set TYPE_USER_ALIGN.
2609         (layout_type): Likewise.
2610         (initialize_sizetypes): Likewise.
2611         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2612         DECL_USER_ALIGN to 1.
2613         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2614         (xfer_tag): Set TYPE_USER_ALIGN.
2615         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2616         (finish_enum): Likewise.
2617         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2618         (expand_anon_union_decl): Likewise.
2619         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2620         (build_index_type): Set TYPE_USER_ALIGN.
2621         (build_range_type): Likewise.
2622         (build_common_tree_nodes_2): Likewise.
2623         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2624
2625 2000-06-13  Andreas Jaeger  <aj@suse.de>
2626
2627         * configure.in: Use --enable-checking=misc,tree,gc by default if
2628         no --enable-checking option is given and for
2629         --enable-checking=yes.
2630         * configure: Rebuilt.
2631
2632 2000-06-13  Richard Henderson  <rth@cygnus.com>
2633
2634         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2635         (__throw): Don't pass the address of a label.
2636
2637         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2638         current_function_is_leaf.
2639         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2640         instead of reg_names[RETURN_ADDRESS_REGNUM].
2641         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2642         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2643         from RETURN_ADDRESS_REGNUM.  Update all uses.
2644         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2645         zero instead of null on failure.
2646         (ELIMINABLE_REGS): Add ra->b0 elimination.
2647         (CAN_ELIMINATE): Update accordingly.
2648         (INITIAL_ELIMINATION_OFFSET): Likewise.
2649         (REGISTER_NAMES): Use an illegal assembler name for
2650         RETURN_ADDRESS_POINTER_REGNUM.
2651
2652 2000-06-13  Richard Henderson  <rth@cygnus.com>
2653
2654         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2655         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2656         (REG_CLASS_NAMES): Likewise.
2657         (REG_CLASS_CONTENTS): Likewise.
2658         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2659         (HARD_REGNO_MODE_OK): Remove references to them.
2660         (REGNO_REG_CLASS): Likewise.
2661         (REG_CLASS_FROM_LETTER): Likewise.
2662         (CLASS_MAX_NREGS): Likewise.
2663         (REGISTER_MOVE_COST): Likewise.
2664         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2665         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2666         (movqi_internal): Special case moves from zero.
2667         (movhi_internal, movsi_internal): Likewise.
2668         (movdi_internal): Likewise.  Fill out "f" constraints.
2669         (movsf_internal): Fill out "r" constraints.
2670         (movdf_internal): Likewise.
2671
2672 2000-06-13  Richard Henderson  <rth@cygnus.com>
2673
2674         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2675         alive before reload.
2676
2677         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2678         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2679         (remove_dependence): Always define.
2680         (set_sched_group_p): New.
2681         (sched_analyze_2): Use it.
2682         (sched_analyze_insn): Don't special-case naked uses.  Look for
2683         and extend in_post_call_group_p.
2684         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2685         (init_deps): Clear in_post_call_group_p.
2686
2687 2000-06-13  Richard Henderson  <rth@cygnus.com>
2688
2689         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2690         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2691         and hard-coded tests.
2692         (simplify_set): Likewise.
2693         (gen_lowpart_for_combine): Likewise.
2694         * emit-rtl.c (gen_lowpart_common): Likewise.
2695         * global.c (find_reg): Likewise.
2696         * local-alloc.c (find_free_reg): Likewise.
2697         * recog.c (register_operand): Likewise.
2698         * regclass.c (init_reg_sets_1): Likewise.
2699         (record_operand_costs, regclass): Likewise.
2700         * reload.c (push_reload): Likewise.
2701         * reload1.c (choose_reload_regs): Likewise.
2702         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2703         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2704         Update all references.
2705         * regs.h (struct reg_info_def): Likewise.
2706         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2707         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2708         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2709
2710         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2711         (CLASS_CANNOT_CHANGE_MODE_P): New.
2712         * config/mips/mips.h: Likewise.
2713         * config/pa/pa32-regs.h: Likewise.
2714         * config/pa/pa64-regs.h: Likewise.
2715         * config/rs6000/rs6000.h: Likewise.
2716         * config/sh/sh.h: Likewise.
2717         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2718         (CLASS_CANNOT_CHANGE_MODE_P): New.
2719         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2720         * config/d30v/d30v.h: Likewise.
2721
2722 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2723
2724         * configure.in: Add AC_TYPE_GETGROUPS test.
2725         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2726         * configure: Rebuilt.
2727         * config.in: Rebuilt.
2728
2729 2000-06-13  Richard Henderson  <rth@cygnus.com>
2730
2731         * explow.c (set_mem_attributes): Do nothing for NULL type.
2732
2733 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2734
2735         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2736         correctly.
2737
2738 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2739
2740         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2741
2742 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2743
2744         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2745
2746 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2747
2748         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2749         * configure: Rebuilt.
2750
2751 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2752
2753         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2754         We now default to ELF for the i386, and a.out is the special case.
2755         * configure:  Rebuilt.
2756
2757 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2758
2759         * final.c (final_scan_insn): Delete notes between cc0 setter and
2760         user when restarting from setter.
2761
2762 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2763
2764         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2765         cast to squelch signed/unsigned warnings.
2766
2767 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2768
2769         * cpplib.c (handle_directive): Print non-NUL-terminated string
2770         with %.*s.
2771
2772 2000-06-12  Michael Meissner  <meissner@redhat.com>
2773
2774         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2775         path if the machine needs extra support to do conditional
2776         execution.
2777
2778 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2779
2780         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2781         to print the alias set.
2782         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2783
2784 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2785
2786         * config/float-vax.h: Add GFLOAT defines.
2787
2788 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2789
2790         * configure.in: Update tm dependencies for MPE.
2791         * configure: Rebuilt.
2792
2793 2000-06-12  H.J. Lu  <hjl@gnu.org>
2794
2795         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2796
2797 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2798
2799         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2800         (CPP_SPEC): Change mthreads to pthread.
2801         (LIB_SPEC): Likewise.
2802         (STARTFILE_SPEC): Likewise.
2803         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2804         (CPP_SPEC): Change mthreads to pthread.
2805         (LIB_SPEC): Likewise.
2806         (STARTFILE_SPEC): Likewise.
2807         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2808         * rs6000.c (reg_or_arith_cint_operand): New.
2809         (num_insns_constant_wide): Decorate unsigned constant.
2810         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2811         * rs6000.md (addsi3): Use new predicate.
2812         (subsi3, adddi3, subdi3): Likewise.
2813
2814 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2815
2816         * c-common.c (lang_get_alias_set): Fix typo.
2817
2818 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2819
2820         * flow.c (mark_used_regs): Revert last change.
2821         (life_analysis): Remove PROP_AUTOINC if running after reload.
2822         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2823
2824 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2825
2826         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2827         has run.
2828
2829 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2830
2831         * bb-reorder.c (build_scope_forest): Initialize variable
2832         `curr_scope'.
2833
2834         * calls.c (expand_call): Likewise for variables
2835         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2836
2837         * i386.c (function_arg_advance, function_arg): Cast to avoid
2838         signed/unsigned warnings.
2839
2840         * i386.h (MEMORY_MOVE_COST): Likewise.
2841
2842         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2843         `else_start' and `else_end'.
2844
2845         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2846
2847         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2848
2849 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2850
2851         * Makefile.in (libintl.a): Depend on intl.all.
2852
2853 2000-06-09  H.J. Lu  (hjl@gnu.org)
2854
2855         * Makefile.in (c-parse.o): Also depend on output.h.
2856
2857 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2858
2859         * mcore-protos.h: discards const warning removal.
2860         * mcore.c: discards const warning removal.
2861
2862 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2863
2864         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2865         the beginning of the file.
2866
2867 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2868
2869         * real.h:  Add prototype for ldexp.
2870
2871 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2872
2873         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2874         it ggc_alloc, drop second argument, never clear returned memory.
2875         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2876         (ggc_alloc_cleared): New.
2877         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2878         ggc_alloc_obj.  Remove ggc_alloc macro.
2879         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2880
2881         * rtl.c (rtvec_alloc): Clear the vector always.
2882         (rtx_alloc): Clear the first word always.  Remove dirty
2883         obstack tricks (this routine is no longer a bottleneck).
2884         * tree.c (make_node): Clear the new node always.
2885         (make_tree_vec): Likewise.
2886         (tree_cons): Clear the common structure always.
2887         (build1): Likewise; also, clear TREE_COMPLEXITY.
2888         * gengenrtl.c: Use puts wherever possible.  Remove extra
2889         newlines.
2890         (gendef): Clear the first word of an RTX in the generator
2891         function, irrespective of ggc_p.  Initialize '0' slots to
2892         NULL.
2893         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2894         thin wrapper macro around obstack_alloc.
2895
2896         * stmt.c (expand_fixup): Use ggc_alloc.
2897         * c-typeck.c (add_pending_init): Use ggc_alloc.
2898         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2899         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2900         const0_rtx when it is created.
2901         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2902         we are not in a function.
2903
2904         * tree.c (tree_class_check_failed): Make second arg an int.
2905         * tree.h: Update prototype.
2906
2907 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2908
2909         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2910         of an error_mark_node.
2911
2912 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2913
2914         * config/avr/avr.c (asm_output_section_name): bugfix.
2915
2916 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2917
2918         * timevar.def: Add TV_EXPAND.
2919         * timevar.c (timevar_print): Update timing information.
2920         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2921
2922         * stmt.c (expand_return): Check for error_mark_node.
2923
2924 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2925
2926         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2927
2928         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2929         variable against filename expansion when it contains "char *".
2930
2931         * system.h (SSIZE_MAX): Delete backup definition.
2932
2933         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2934         instead of SSIZE_MAX.
2935
2936 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2937
2938         * configure.in: Check whether gas supports -relax.
2939         * configure, config.in: Rebuilt.
2940         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2941         (EXTRA_SPECS): Add asm_relax.
2942         (ASM_SPEC): Add %(asm_relax).
2943         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2944         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2945         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2946         (ASM_SPEC): Add %(asm_relax).
2947         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2948         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2949         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2950         instead of mov, so that gas can further optimize it.
2951
2952 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2953
2954         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2955         size_of_sleb128.
2956         (value_format, case dw_val_class_const): Use sdata format.
2957         (output_die): Call output_sleb128.
2958
2959 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2960
2961         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2962         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2963         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2964         (output_die, case dw_val_class_unsigned_const): Correct call to
2965         ASM_OUTPUT_DWARF_DATA8.
2966         (output_die, case dw_val_class_long_long): Use
2967         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2968         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2969         pos is zero.
2970
2971         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2972         (output_function_prologue): Fix mispelling.
2973         (output_function_prologue, output_function_epilogue): Reorder to
2974         match ia64.c definition order.
2975         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2976         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2977         Use r3 instead of r2 for large stack restores.
2978         (ia64_output_end_prologue): New function.
2979         (process_set): Emit ".restore sp" for epilogue stack restores.
2980         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2981
2982 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2983
2984         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2985         incomplete types.
2986
2987 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2988
2989         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2990
2991 2000-06-08  Denis Perchine <dyp@perchine.com>
2992
2993         * frame.c (start_fde_sort): Don't malloc (0).
2994
2995 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2996
2997         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2998         error_mark_node.
2999         * print-tree.c (print_node): The transparent_union_flag means
3000         different things for unions and arrays.  Do not inspect it
3001         with TYPE_TRANSPARENT_UNION.
3002
3003 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
3004
3005         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
3006         returned NULL.
3007
3008 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
3009
3010         * config/avr/avr.c (asm_output_section_name): output section
3011         attributes.
3012         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
3013
3014 2000-06-06  James E. Wilson  <wilson@cygnus.com>
3015
3016         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
3017         fields into header field.
3018         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
3019         macros to access length, flags, and version info from header field.
3020         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
3021         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
3022         (__do_global_ctors_aux): Fix caller.
3023         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
3024         prologue_flag to header.  Pass to read_P_record.
3025         (read_P_record): New argument header.  Implement P4 format.
3026         Multiply P7_T_SIZE by 16.
3027         (execute_one_ia64_descriptor): New static local region_header.  Pass to
3028         get_unwind_record.  Copy r to region_header if r is a header record.
3029         (print_all_records): Likewise.
3030         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
3031         (__get_personality, __get_except_table): Likewise.
3032         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
3033
3034 2000-06-06  Philipp Thomas  <pthomas@suse.de>
3035
3036         * configure.in (AC_C_INLINE): Added.
3037         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
3038         * configure: Regenerate.
3039
3040 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
3041
3042         * c-common.h (c_language_kind): New type.
3043         (c_language): New variab.e
3044         * c-common.c (lang_get_alias_set): Don't put structures in
3045         non-zero alias sets in C++.
3046         * c-decl.c (c_language): Define it.
3047         * c-lex.c (doing_objc_thang): Remove.
3048         * c-tree.h (doing_objc_thang): Make it a macro.
3049         * objc/objc-act.c (lang_decode_option): Set c_language, not
3050         doing_objc_thang.
3051
3052 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3053
3054         * diagnostic.c (output_maximum_width): Remove.
3055         (doing_line_wrapping): Tweak.
3056         (diagnostic_buffer): New object.
3057         (global_output_buffer): New object.
3058         (output_destroy_prefix): New function.
3059         (default_initialize_buffer): Likewise.
3060         (reshape_diagnostic_buffer): Likewise.
3061         (initialize_diagnostics): Likewise.
3062         (output_clear): Tweak.
3063         (line_wrapper_printf): Adjust call to init_output_buffer.
3064         (vline_wrapper_message_with_location): Likewise.  Use
3065         output_destroy_prefix.
3066         (v_message_with_decl): Likewise.
3067
3068         * diagnostic.h (struct output_buffer): Constify prefix.
3069         (init_output_buffer, output_get_prefix): Constify.
3070         (diagnostic_message_length_per_line): Likewise.
3071         (reshape_diagnostic_buffer): Declare.
3072         (default_initialize_buffer): Declare.
3073         (initialize_diagnostics): Declare.
3074         (diagnostic_buffer): Declare new obbject.
3075
3076         * toplev.c: #include diagnostic.h
3077         (display_help): Document diagnostic formatting options.
3078         (decode_f_option): Handle diagnostic formatting options.
3079         (main): Setup initialization for diagnostic messages outputter.
3080
3081         * toplev.h (set_message_length): Remove.
3082
3083         * Makefile.in (toplev.o): Depends upon diagnostic.h
3084
3085         * invoke.texi : Document diagnostics formatting options.
3086
3087 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
3088
3089         * configure.in (Make the links): Typo fix : the file that must be
3090         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
3091         * configure: File rebuilt.
3092
3093 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
3094
3095         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
3096         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
3097         space.
3098         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
3099         emergency eh_context buffer, if malloc fails.
3100         (__eh_free): Moved from cp/exception.cc. Release to emergency
3101         eh_context buffer, if appropriate.
3102
3103 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
3104
3105         * expr.c (store_expr): Fix typo.
3106
3107 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3108
3109         * m68k.c (legitimize_pic_address): Move prototype ...
3110
3111         * m68k-protos.h (legitimize_pic_address): ... here.
3112
3113         * m68k.md (legitimize_pic_address): Delete prototypes.
3114         (untyped_call): Invoke GEN_CALL(), not gen_call().
3115
3116         * nextstep.c: Include system.h and toplev.h.
3117         (get_directive_line): Don't prototype.
3118         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
3119
3120         * nextstep.h (handle_pragma): Prototype.
3121         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
3122         objc_section_init ...
3123         (EXTRA_SECTION_FUNCTIONS): ... here.
3124
3125 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3126
3127         * sdbout.c (struct sdb_file): NAME now const.
3128         (sdbout_init): input_file_name now const.
3129         (sdbout_start_new_source_file): FILENAME now const.
3130         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
3131
3132 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3133
3134         * c-typeck.c (build_conditional_expr): Handle complex data types.
3135
3136 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3137
3138         * explow.c (maybe_set_unchanging): New function, broken out from...
3139         (set_mem_attributes): Here.
3140         * expr.h: Declare it.
3141         * stmt.c (expand_decl): Call it.
3142
3143 2000-06-05  Richard Henderson  <rth@cygnus.com>
3144
3145         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
3146         while looking for a register to inherit from.
3147
3148 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3149
3150         * Makefile.in (libgcc.ready): Lose.
3151         (libgcc.mk): Just use mv, not move-if-change.
3152         (LIBGCC_DEPS): New macro.
3153         (libgcc.a): Use it.
3154         (stmp-multilib): Likewise.
3155         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
3156         it rather than the directories themselves.
3157         (LIB2ADD): Depend on the list file rather than 'force'.
3158
3159         * fold-const.c (fold, case COND_EXPR): Elide conversion between
3160         cv-qualified versions of types.
3161
3162 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3163
3164         * config/sparc/sparc.c (short_branch): Correct error in range
3165         computation.
3166
3167 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3168
3169         * fixinc/inclhack.def: New include hacks for ultrix.
3170         * (nested_ultrix): Replaced by ultrix_nested_svc.
3171         * (ultrix_atof_param): test_text string added.
3172         * (ultrix_ifdef): Modified select string.
3173
3174 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
3175
3176         * objc/objc-act.c (generate_method_descriptors): Register
3177         objc_method_prototype_template as a GC root.
3178         (comp_method_with_proto): Register function_type as a GC root.
3179         (comp_proto_with_proto): Replace function_type1 and
3180         function_type2 with a two-element array; register it as a GC root.
3181
3182         (generate_protocols, build_protocol_initializer,
3183         generate_protocol_list, build_category_initializer,
3184         build_shared_structure_initializer): Do not cache cast_type
3185         and/or cast_type2.
3186
3187 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3188
3189         * function.c (assign_parms): Add missing argument to set_mem_attributes
3190         call.
3191
3192 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3193
3194         * tree.h (VOID_TYPE_P): New macro.
3195         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
3196         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
3197         (get_parm_info): Likewise.
3198         (store_parm_decls): Likewise.
3199         (combine_parm_decls): Likewise.
3200         (finish_function): Likewise.
3201         * c-typeck.c (build_function_call): Likewise.
3202         (build_binary_op): Likewise.
3203         (build_conditional_expr): Likewise.
3204         (internal_build_compound_expr): Likewise.
3205         (convert_for_assignment): Likewise.
3206         * stmt.c (expend_expr_stmt): Likewise.
3207         (warn_if_unused_value): Likewise.
3208         (expand_return): Likewise.
3209         * c-parse.in (primary): Likewise.
3210         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
3211         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
3212
3213 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3214
3215         * alias.c (get_alias_set): If compnent is addressable, use alias
3216         set of component.
3217         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
3218         (grokdeclarator): Likewise.
3219         * c-typeck.c (common_type): Likewise.
3220
3221 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
3222
3223         * Makefile.in (OBJS): Remove dyn_string.o
3224         (dyn-string.o): Delete rule.
3225         * dyn-string.c: Delete file
3226         * dyn-string.h: Likewise.
3227
3228 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3229
3230         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
3231         subdir.
3232
3233 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
3234
3235         * alias.c (record_component_aliases): Don't inspect
3236         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
3237
3238 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
3239
3240         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
3241         it with the pattern to do machine dependent work.
3242         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
3243         use it to modify the true/false tests used in conditional
3244         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
3245         defined, invoke them if the conversion to conditional execution
3246         was successful or not.
3247
3248         * tm.texi (IFCVT_MODIFY_TESTS): Document.
3249         (IFCVT_MODIFY_INSN): Ditto.
3250         (IFCVT_MODIFY_FINAL): Ditto.
3251         (IFCVT_MODIFY_CANCEL): Ditto.
3252
3253 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
3254
3255         * toplev.c (main): Fix misspellings of possibility and language.
3256
3257 2000-06-03  Richard Henderson  <rth@cygnus.com>
3258
3259         * alias.c (record_alias_subset): Initialize has_zero_child in the
3260         superset.
3261
3262 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
3263
3264         * arm.md (untyped_call): Use GEN_CALL macro.
3265
3266 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
3267
3268         * Makefile.in: Use $(MAKE) not "make"
3269
3270 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3271
3272         * alias.c (struct alias_set_entry): New field has_zero_child.
3273         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
3274         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
3275         do nothing.
3276         Call record_component_aliases for aggregate types.
3277         (record_alias_subset): Set has_zero_child.
3278         (record_component_aliases, case ARRAY_TYPE): Do nothing if
3279         TYPE_NONALIASES_COMPONENT.
3280         (record_component_aliases, case RECORD_TYPE): Test
3281         DECL_NONADDRESSABLE_P.
3282         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
3283         of TREE_ADDRESSABLE.
3284         * calls.c (initialize_argument_information): Only test
3285         TYPE_TRANSPARENT_UNION for UNION_TYPE.
3286         * function.c (assign_parms): Likewise.
3287         * integrate.c (function_cannot_inline_p): Likewise.
3288         * stor-layout.c (finish_record_layout): Don't call
3289         record_component_aliases.
3290         * tree.h (struct tree_int_cst): Use struct tree_common.
3291         (struct tree_real_cst, struct tree_string): Likewise.
3292         (struct tree_complex, struct tree_identifier): Likewise.
3293         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
3294         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
3295         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
3296         (TYPE_NONALIASES_COMPONENT): New macro.
3297         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
3298         (DECL_NONADDRESSABLE_P): New macro.
3299         (struct tree_decl): Reorder bits for clarity of how many left;
3300         add non_adressable.
3301
3302 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
3303
3304         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
3305         * mklibgcc.in (force): New target.
3306         Make LIB2ADD stuff depend on it.
3307
3308 2000-06-02  Richard Henderson  <rth@cygnus.com>
3309
3310         * alias.c (lang_get_alias_set): Remove.
3311         (get_alias_set): Call it directly, not indirectly.
3312         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
3313         * c-common.h (c_get_alias_set): Don't declare.
3314         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
3315         * expr.h (lang_get_alias_set): Declare as function, not pointer.
3316
3317 2000-06-02  Bruce Korb  <bkorb@gnu.org>
3318
3319         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
3320         (server_setup):  define the server's master pid
3321         (close_server):  actually do the deed IFF we are the server's master
3322
3323 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
3324
3325         * c-common.c (c_get_alias_set): Check whether signed_type did not
3326         return its argument before calling get_alias_set on the result.
3327
3328 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
3329
3330         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
3331
3332 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3333
3334         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
3335         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
3336         for TARGET_NOMACSAVE.
3337         (NOMACSAVE_BIT): Define.
3338         (TARGET_NOMACSAVE): Define.
3339         (TARGET_SWITCHES): Add "nomacsave".
3340
3341 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
3342
3343         * sh.md (untyped_call): Remove excess parameters
3344
3345 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
3346
3347         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
3348         match that used before the conversion to c_fix style.
3349         * fixinc/fixincl.x: regenerate
3350
3351 2000-06-01  Stan Cox  <scox@cygnus.com>
3352
3353         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
3354         macro argument typo.
3355
3356 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
3357
3358         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
3359         error message.
3360         * cpplib.c (parse_include): Remove support for VAX-C
3361         "#include starlet" misfeature.
3362
3363 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
3364
3365         * cppfiles.c: conditionally define O_BINARY.
3366         (open_include_file): pass O_BINARY to open().
3367
3368 2000-06-01  Richard Henderson  <rth@cygnus.com>
3369
3370         * i960.c (i960_br_predict_opcode): Remove.
3371         (i960_print_operand) [+]: Emit branch prediction hints.
3372         (i960_function_arg): Return early for VOIDmode.
3373         (i960_round_align): Return early for incomplete types.
3374         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3375         * i960.md (all conditional branches): Add "%+".
3376
3377 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3378
3379         * alias.c (get_alias_set): Don't call language-specific routine more
3380         than is needed and clean up code a bit.
3381         * c-common.c (c_get_alias_set): All references whose type
3382         is char get alias set 0, but character types need not.
3383         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
3384         (make_decl_rtl): Don't call it for FUNCTION_DECL.
3385
3386 2000-06-01  Bruce Korb  <bkorb@gnu.org>
3387
3388         * fixinc/tests/base/...: new base result files
3389
3390 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
3391
3392         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
3393         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
3394         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
3395         will use FCOMI.
3396
3397 2000-06-01  Richard Henderson  <rth@cygnus.com>
3398
3399         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
3400
3401         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
3402
3403 2000-05-31  Richard Henderson  <rth@cygnus.com>
3404
3405         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
3406         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
3407         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
3408
3409 2000-05-31  Richard Henderson  <rth@cygnus.com>
3410
3411         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
3412         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
3413         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
3414         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3415         * config/ia64/ia64.md (all branch/call patterns): Use %+.
3416
3417 2000-05-31  Richard Henderson  <rth@cygnus.com>
3418
3419         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
3420
3421 2000-05-31  Richard Henderson  <rth@cygnus.com>
3422
3423         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
3424         remaining edges.
3425         (find_if_block): Allow THEN with no outgoing edges.
3426         * flow.c (merge_blocks_nomove): Remove a barrier not following
3427         a jump as well.
3428
3429 2000-05-31  Richard Henderson  <rth@cygnus.com>
3430
3431         * flow.c (propagate_block): Move initialization of mem_set_list ...
3432         (init_propagate_block_info): ... here.  Also track blocks with
3433         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
3434
3435 2000-05-31  Richard Henderson  <rth@cygnus.com>
3436
3437         * jump.c (jump_optimize_1): Revert 05-18 change.
3438
3439 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
3440
3441         * invoke.texi: Remove documentation for -fguiding-decls.
3442
3443 2000-05-31  Richard Henderson  <rth@cygnus.com>
3444
3445         * configure.in: Fix typo last change.
3446
3447 2000-05-31  Philipp Thomas  <pthomas@suse.de>
3448
3449         * configure.in (enable-nls): Enable if build == host, i.e. when
3450         not building a canadian cross compiler.
3451         (enable-maintainer-mode): Added for use with i18n.
3452         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
3453         cross section of ALL_LINGUAS and LINGUAS.
3454         * configure: Rebuild.
3455
3456 2000-05-31  Bruce Korb  <bkorb@gnu.org>
3457
3458         * fixinc/check.tpl: rework to use test result tree
3459         * fixinc/Makefile.in: change invocation of check script
3460         * fixinc/check.diff: No longer needed
3461         * fixinc/fixincl.x: regenerate
3462         * fixinc/inclhack.def:  add new tests
3463         * fixinc/tests/base/arch/i960/archI960.h:  New test result
3464         * fixinc/tests/base/curses.h: modified test result
3465         * fixinc/tests/base/stdio.h: ditto
3466         * fixinc/tests/base/time.h: ditto
3467         * fixinc/tests/base/sys/asm.h: ditto
3468         * fixinc/tests/base/sys/stat.h: ditto
3469         * fixinc/tests/base/sys/wait.h: ditto
3470
3471 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3472
3473         * except.c (clear_function_eh_region): Do not free NULL.
3474
3475 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3476
3477         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3478         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3479         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3480         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3481         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3482         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3483         (get_alias_set): Likewise.
3484         Major rework to do more things and allow language-specific code
3485         to just handle special-cases.
3486         (record_alias_subset): Args are HOST_WIDE_INT.
3487         (record_component_alias): Local vars are HOST_WIDE_INT.
3488         Don't handle COMPLEX_EXPR.
3489         (get_varargs_alias_set): Moved from builtins.c.
3490         (get_frame_alias_set): New function.
3491         * builtins.c (expand_builtin_return_address): Use frame alias set.
3492         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3493         for setjmp buffer.
3494         (get_memory_rtx): Rework to use set_mem_attributes.
3495         (get_varargs_alias_set): Deleted from here.
3496         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3497         (c_find_base_decl): Deleted from here.
3498         (c_get_alias_set): Remove many cases and rework to just handle
3499         C-specific cases.
3500         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3501         * c-decl.c (rtl.h, expr.h): Now included.
3502         (init_decl_processing): Call record_component_aliases on array types.
3503         (grokdeclarator): Likewise.
3504         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3505         * c-typeck.c (common_type): Call record_component_aliases for array.
3506         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3507         Set all save areas to the frame alias set.
3508         * calls.c (initialie_argument_information): Call set_mem_attributes.
3509         (compute_argument_addresses, expand_call): Likewise.
3510         * explow.c (set_mem_attributes): New function.
3511         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3512         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3513         LEN and OFFSET now HOST_WIDE_INT.
3514         (clear_by_pieces): Similar changes.
3515         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3516         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3517         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3518         (clear_by_pieces_1): Likewise.
3519         (emit_push_insn): Call set_mem_attributes.
3520         (expand_expr, case INDIRECT_REF): Likewise.
3521         (expand_expr, case VAR_DECL): Call change_address.
3522         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3523         tree_low_cst.
3524         (get_varargs_alias_set, get_frame_alias_set): New decls.
3525         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3526         (new_alias_set, set_mem_attributes): Likewse.
3527         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3528         (assign_stack_temp_for_type): Likewise.
3529         Can split slot even if alias set since can copy.
3530         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3531         (assign_temp): Use host_integerp and tree_low_cst.
3532         (put_var_into_stack): Properly handle SAVE_EXPR.
3533         (put_addressof_into_stack): Likewise.
3534         (assign_parms): Call set_mem_attributes.
3535         Delete #if 0 code.
3536         (fix_lexical_address): Put reference to chain into frame alias set.
3537         (expand_function_start): Call set_mem_attributes.
3538         * integrate.c (expand_inline_function): Likewise.
3539         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3540         * regmove.c (try_apply_stack_adjustment): Likewise.
3541         * reload.c (push_reload, make_memloc): Likewise.
3542         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3543         * rtl.def (MEM): Update comment.
3544         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3545         (move_by_pieces): Change length to HOST_WIDE_INT.
3546         (record_base_value, record_alias_subset): Delete from here.
3547         * stmt.c (expand_decl): Call set_mem_attributes.
3548         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3549         * toplev.c (compile_file): Call init_alias_once earlier.
3550         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3551         from here: now in alias.c.
3552         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3553         (struct tree_decl): Likewise.
3554         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3555         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3556         (output_constant_def, force_const_mem): Likewise.
3557
3558         * flow.c (propagate_block): If block has no successors, stores to
3559         frame are dead if not used.
3560
3561 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3562
3563         * stmt (expand_end_case): Reorder conversion sequence for jump
3564         table to avoid extra truncations.
3565
3566 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3567
3568         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3569         in the block is more than just a simple conditional branch.
3570         (noce_process_if_block): Similarly.
3571
3572 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3573
3574         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3575         queue.
3576
3577 2000-05-30  Michael Meissner  <meissner@redhat.com>
3578
3579         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3580         instructions.  Treat LO_SUM operations as loading the full integer
3581         constant.
3582
3583 2000-05-30  Richard Henderson  <rth@cygnus.com>
3584
3585         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3586
3587 2000-05-30  Richard Henderson  <rth@cygnus.com>
3588
3589         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3590
3591 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3592
3593         * fixinc/tests/*:  Added expected result files for fixinc's make check
3594         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3595
3596 2000-05-30  Richard Henderson  <rth@cygnus.com>
3597
3598         * config/alpha/alpha.md (*setne_internal): Use match_operator
3599         instead of working down from insn.
3600
3601 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3602
3603         * invoke.texi (-Wtraditional): Update WRT function macros.
3604
3605 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3606
3607         * except.c (free_exception_table): Do not free NULL.
3608
3609 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3610
3611         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3612         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3613         and skipping here.
3614
3615 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3616
3617         * flow.c (mark_used_reg): If a register is unconditionally live,
3618         remove any conditional death information.
3619
3620 2000-05-29  Richard Henderson  <rth@cygnus.com>
3621
3622         * final.c (current_output_insn): New.
3623         (final_scan_insn): Set it.
3624         * output.h: Declare it.
3625
3626 2000-05-29  Richard Henderson  <rth@cygnus.com>
3627
3628         * stor-layout.c (finalize_record_size): Fix typo.
3629
3630         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3631         if nlabel is null.
3632
3633 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3634
3635         * cpplib.h (cpp_reader): Remove if_stack.  Change
3636         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3637         * cpphash.h (struct ihash): Change control_macro to a
3638         cpp_hashnode * and shorten name to cmacro.
3639         Add NEVER_REINCLUDE constant.
3640
3641         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3642         Examine the cmacro node directly, no need to call cpp_defined.
3643         (_cpp_execute_include, read_include_file): Set cmacro to
3644         NEVER_REINCLUDE, not U"".
3645         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3646         (cpp_get_token): If pfile->skipping is true, discard text and
3647         keep scanning until we hit a directive; don't expand macros.
3648
3649         * cpplib.c (struct if_stack): Remove if_succeeded, add
3650         was_skipping. Change control_macro to a cpp_hashnode * and
3651         shorten name to cmacro.  Remove typedef IF_STACK.
3652         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3653         (conditional_skip, skip_if_group,
3654         consider_directive_while_skipping): Delete.
3655         (push_conditional): New.
3656         (_cpp_handle_directive): Don't process directives other than
3657         conditionals if we are skipping.
3658
3659         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3660         Update to new scheme.
3661         (validate_else): Skip rest of line here, unconditionally.
3662         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3663         pfile->skipping off.
3664
3665         (all): Remove `scare quotes' from error messages.
3666
3667 2000-05-29  Richard Henderson  <rth@cygnus.com>
3668
3669         * function.c (emit_return_into_block): New line_note arg; emit it.
3670         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3671         for the close brace to accompany HAVE_return.  Move all line notes
3672         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3673
3674 2000-05-29  Richard Henderson  <rth@cygnus.com>
3675
3676         * longlong.h [__alpha] (count_leading_zeros): New.
3677         (count_trailing_zeros): New.
3678         (COUNT_LEADING_ZEROS_0): New.
3679
3680         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3681         (alpha_split_conditional_move): New.
3682         * config/alpha/alpha-protos.h: Prototype them.
3683         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3684         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3685         * config/alpha/alpha.md: Update ffs cix commentary.
3686         (*ze_and_ne): New.
3687         (*nabssf2, *nabsdf2): New.
3688         (*mov[qhsd]icc_internal): Use add_operand.
3689         (if_then_else constant splitters): New.
3690         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3691         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3692
3693 2000-05-29  Richard Henderson  <rth@cygnus.com>
3694
3695         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3696         a constant to NEG or NOT when conditions allow.
3697
3698         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3699         unless both args are general_operand.  Don't canonicalize plus
3700         to ior unless it helps.
3701
3702         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3703         instead track register_life_up_to_date.  Toggle no_new_pseudos
3704         around if_convert.
3705
3706 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3707
3708         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3709         so output_operand doesn't see them.
3710
3711 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3712
3713         * lcm.c (make_preds_opaque): Fix comment.
3714         (optimize_mode_switching): Use NORMAL_MODE instead of
3715         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3716         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3717         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3718         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3719         (MODE_USES_IN_EXIT_BLOCK): Delete.
3720         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3721         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3722         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3723         (MODE_NEEDED): Don't look for USE.
3724         (EPILOGUE_USES): Define.
3725
3726 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3727
3728         * mklibgcc.in (all): Variable initialised to `libgcc'.
3729
3730 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3731
3732         * toplev.h (skip_leading_substring): New macro.
3733         * toplev.c (decode_f_option): Use skip_leading_substring instead
3734         of strncmp.
3735         (decode_W_option): Likewise.
3736
3737 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3738
3739         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3740         modify reg_names.
3741
3742 2000-05-28  Richard Henderson  <rth@cygnus.com>
3743
3744         * regclass.c (record_operand_costs): Protect reg_changes_size
3745         with CLASS_CANNOT_CHANGE_SIZE.
3746
3747         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3748
3749 2000-05-28  Richard Henderson  <rth@cygnus.com>
3750
3751         * function.c (diddle_return_value): A pcc-style struct return
3752         returns a pointer.
3753
3754 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3755
3756         * cppfiles.c: Read files in, using mmap if possible, then
3757         prescan them separately.
3758         (read_file, read_with_read): New functions.
3759         * cpplex.c: Don't define UCHAR_MAX.
3760         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3761         the file here.
3762
3763         * cppinit.c (handle_option): Automatically define __cplusplus,
3764         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3765         the respective -lang switch.
3766
3767         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3768         prototype): Move to...
3769         * cpplib.h: ... here.  Rename struct hashnode to struct
3770         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3771         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3772
3773 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3774
3775         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3776
3777         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3778         (class_can_change_size): New variable.
3779         (reg_changes_size): New variable.
3780         (init_reg_sets_1): Initialise class_can_change_size.
3781         (record_operand_costs): Remove subreg_changes_size.
3782         Don't pass it around.  Instead update reg_changes_size.
3783         (regclass): Initialise and free reg_changes_size.  If a register
3784         changes size, don't preference it to a class that contains
3785         registers that can't change size.
3786         (record_reg_classes): Don't look at subreg_changes_size.
3787
3788 2000-05-27  Richard Henderson  <rth@cygnus.com>
3789
3790         * print-rtl.c (reg_names): Remove const.
3791         * regclass.c (reg_names): Likewise.
3792         * regs.h (reg_names): Likewise.
3793         * hard-reg-set.h (reg_names): Likewise.
3794
3795 2000-05-27  Richard Henderson  <rth@cygnus.com>
3796
3797         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3798
3799 2000-05-27  Richard Henderson  <rth@cygnus.com>
3800
3801         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3802         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3803         (alpha_expand_prologue): Emit prologue_mcount if needed.
3804         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3805         * config/alpha/alpha.md (prologue_mcount): New.
3806         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3807         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3808         * config/alpha/netbsd.h: Likewise.
3809
3810 2000-05-27  Richard Henderson  <rth@cygnus.com>
3811
3812         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3813         change to config/elfos.h.
3814
3815 2000-05-27  Richard Henderson  <rth@cygnus.com>
3816
3817         * Makefile.in (resource.o): Depend on except.h.
3818         * except.h (output_exception_table_data): Prototype.
3819         * genconfig.c (gen_peephole2): Prototype.
3820         * genemit.c (main): Include ggc.h.
3821         * genoutput.c: Revert parts of last change: include errors.h
3822         (main): Set progname.
3823         * recog.c: Include hard-reg-set.h before recog.h.
3824         * resource.c: Include except.h.
3825
3826         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3827         with RTX_CODE.
3828         (alpha_write_linkage): Protect with BUFSIZ.
3829         (alpha_need_linkage): Update prototype.
3830         * config/alpha/alpha.c (function_arg): Move VMS code here.
3831         (alpha_links_base): Remove.
3832         (alpha_links): New.
3833         (mark_alpha_links_node, mark_alpha_links): New.
3834         (alpha_write_one_linkage): New.
3835         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3836         (alpha_write_linkage): Use splay_tree_foreach.
3837         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3838         to get the linkage symbol.
3839         (call_value_vms): Likewise.
3840         * config/alpha/elf.h (output_file_directive): Remove decl.
3841         (ctors_section, dtors_section): Prototype.
3842         (sbss_section, sdata_section): Prototype.
3843         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3844         (readonly_section, link_section, literals_section): Prototype.
3845         (ctors_section, dtors_section): Prototype.
3846         (vms_valid_decl_attribute_p): Remove decl.
3847         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3848
3849 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3850
3851         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3852
3853         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3854         substituting the REG in a (subreg:X (reg:Y ...)).
3855
3856 2000-05-28  Neil Booth  <NeilB@earthling.net>
3857
3858         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3859         first token of a line BOL.  Update EOF code for this.
3860         Remove illegal directive check - it appears in the (not
3861         yet committed) caller.
3862         * cpplib.h (BOL): New flag.
3863
3864 2000-05-28  Neil Booth  <NeilB@earthling.net>
3865
3866         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3867         (_cpp_free_toklist): No comment space to free.
3868         (expand_comment_space): Remove.
3869         (save_comment_space): Place the comment in the current token and
3870         not in a separate comment space.
3871         (_cpp_lex_line): Save comments during plain code and #define
3872         directives only.
3873         * cpplib.h (struct _cpp_toklist): Remove comment space.
3874
3875 2000-05-28  Neil Booth  <NeilB@earthling.net>
3876
3877         * cppexp.c (parse_assertion): Supply extra argument to
3878         _cpp_init_toklist.
3879         * cpplib.c (do_assert, do_unassert): Similarly.
3880         * cpphash.h (_cpp_init_toklist) Update.
3881         (_cpp_expand_token_space): New.
3882         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3883         * cpplex.c (_cpp_init_toklist): New argument.
3884         (parse_string2): New argument multiline_ok.
3885         (spell_token): Take a const cpp_token *.
3886         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3887         (SPELL_ macros): Replace with enum.
3888         (expand_token_space): Replace with _cpp_expand_token_space.
3889         Take COUNT argument.
3890         (IS_DIRECTIVE): Update.
3891         (_cpp_lex_line): Update token structure before parsing number.
3892         Don't assume start at beginning of token list.
3893         (save_comment): Use INIT_TOKEN_NAME.
3894
3895 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3896
3897         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3898         -Wmissing-prototypes.
3899         * configure: Regenerate.
3900         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3901
3902         * builtins.c, calls.c: Change all instances of gen_call_* or
3903         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3904         * calls.c (struct_value_size_rtx): Separate definition from
3905         initialization to avoid unused variable warning.
3906
3907         * genflags.c (gen_macro): New function.
3908         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3909         (gen_nonproto): Delete.
3910         (gen_insn): Put all insns on the same obstack.
3911         (main): Generate prototypes for everything unconditionally.
3912
3913         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3914         out check for wchar_t.
3915         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3916         * system.h: Add infrastructure for defining missing
3917         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3918         definitions of UCHAR_MAX and SSIZE_MAX.
3919         * configure: Regenerate.
3920         * config.in: Regenerate.
3921
3922         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3923         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3924         headers.
3925         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3926         libgcc2.a, or libgcc1.null.
3927
3928 2000-05-27  Richard Henderson  <rth@cygnus.com>
3929
3930         * Makefile.in (recog.o): Don't depend on resource.h.
3931         * recog.c: Don't include resource.h.
3932         (recog_last_allowed_insn): Remove.
3933         (recog_next_insn): Remove.
3934         (struct peep2_insn_data): New.
3935         (peep2_insn_data, peep2_current): New.
3936         (peep2_next_insn): New.
3937         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3938         (peep2_find_free_register): New.
3939         (peephole2_optimize): Track life information by insn as we go.
3940         * recog.h: Update declarations.
3941         * resource.c (find_free_register, reg_dead_p): Remove.
3942         * resource.h: Remove their declarations.
3943         * toplev.c: Include hard-reg-set.h before recog.h.
3944
3945         * genconfig.c (max_insns_per_peep2): New.
3946         (gen_peephole2): New.
3947         (main): Call it.
3948         * genemit.c (output_peephole2_scratches): Generate calls to
3949         peep2_find_free_register; adjust surrounding code.
3950         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3951         * genrecog.c (change_state): Don't track last_insn.
3952         (write_action): Write into *_pmatch_len before accepting.
3953         (write_tree): Adjust peephole2_insns and subroutines to match.
3954
3955         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3956
3957         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3958         (hard_int_register_operand): New.
3959         * config/alpha/alpha-protos.h: Declare it.
3960         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3961         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3962         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3963
3964 2000-05-27  Richard Henderson  <rth@cygnus.com>
3965
3966         * function.c (thread_prologue_epilogue_insns): Don't move the
3967         line note at the head of the chain.  Only force a lineno note
3968         before the end of block 0.
3969
3970 2000-05-27  Richard Henderson  <rth@cygnus.com>
3971
3972         * gensupport.c (collect_insn_data): Record the maximum number
3973         of alternatives, not the last seen.
3974
3975         * genoutput.c: Don't include errors.h.
3976         (struct data): Add lineno member.
3977         (have_error): New.
3978         (scan_operands): Use message_with_line instead of error.
3979         (validate_insn_alternatives): Likewise.
3980         (gen_insn): Accept and store the pattern's line number.
3981         (gen_peephole, gen_expand, gen_split): Likewise.
3982         (main): Don't set progname.  Pass line_no to gen_foo.
3983
3984 2000-05-27  Richard Henderson  <rth@cygnus.com>
3985
3986         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3987         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3988         * config/d30v/d30v.md (attr predicable): New.
3989         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3990         (andsi3*): Unify into one pattern.
3991         (iorsi3*, xorsi3*): Likewise.
3992         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3993         conditional return.
3994         (old cond_exec patterns): Remove.
3995         (define_cond_exec): New.
3996
3997 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3998
3999         * tree.h (TREE_CODE_LENGTH): New macro.
4000         * c-common.c (c_find_base_decl): Use it.
4001         * expr.c (safe_from_p): Likewise.
4002         * print-tree.c (print_node): Likewise.
4003         * tree.c (make_node, copy_node, get_identifier): Likewie.
4004         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
4005         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
4006         * fold-const.c (make_range): Likewise.
4007         (fold): Likewise; also use first_rtl_op.
4008         * c-iterate.c (collect_iterators): Use first_rtl_op.
4009         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
4010         Use IS_EXPR_CODE_CLASS.
4011         (preexpand_calls): Likewise.
4012         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
4013         and TREE_CODE_LENGTH.
4014         * stmt.c (warn_if_unused_value): If no operands, no unused value.
4015
4016 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
4017
4018         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
4019         than '%1(%*)'.
4020         (movdi_internal64): Likewise.
4021
4022         * config/rs6000/rs6000.md: Correct order of operands for DImode
4023         boolean patterns.
4024
4025         * config/rs6000/rs6000.c (boolean_or_operator): New function.
4026         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
4027         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
4028         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
4029         boolean_operator for the boolean patterns without NOTs.
4030
4031         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
4032         from reg_or_u_cint_operand.  Change comment and behaviour.
4033         (logical_operand): Clean up, add assertion.
4034         (non_logical_cint_operand): Also check for
4035         reg_or_logical_cint_operand.
4036         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
4037         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
4038         in the expander.
4039         (xorsi3): Likewise.
4040         (iordi3): Likewise.
4041         (xordi3): Likewise.
4042
4043 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
4044
4045         * tree.h (struct record_layout_info): Rename to (struct
4046         record_layout_info_s).
4047         * stor-layout.c (start_record_layout): Replace
4048         `record_layout_info' with `record_layout_info_s'.
4049
4050 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
4051
4052         * flow.c (find_label_refs): New function.
4053         (find_basic_blocks_1): Call it for each alternative of a call
4054         placeholder.
4055
4056 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
4057
4058         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
4059         of get_pc.
4060
4061 2000-05-25  Richard Henderson  <rth@cygnus.com>
4062
4063         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
4064         so strict about DImode.
4065         (alpha_swapped_comparison_operator): Likewise.
4066         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
4067         any integer output mode.
4068         (*setcc_internal): Likewise.
4069         (*setcc_swapped_internal): Likewise.
4070         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
4071         (*mov[qhs]icc_internal): New.
4072         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
4073
4074 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4075
4076         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
4077
4078 2000-05-25  Richard Henderson  <rth@cygnus.com>
4079
4080         * bb-reorder.c (reorder_block_def): Reorder elements for size.
4081         Remove add_jump; add next; replace flags with visited.
4082         (rbd_init): Remove.
4083         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
4084         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
4085         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
4086         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
4087         (RBI): New.
4088         (reorder_index, reorder_last_visited): Remove.
4089         (skip_insns_after_block): Rewrite to use a switch.
4090         (get_common_dest): Remove.
4091         (chain_reorder_blocks): Remove.
4092         (record_effective_endpoints): Split out from reorder_basic_blocks.
4093         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
4094         (make_reorder_chain_1): Renamed from old make_reorder_chain.
4095         Only construct the reorder chain, do not move insns.  Try harder
4096         to tail recurse.
4097         (label_for_bb, emit_jump_to_block_after): New.
4098         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
4099         and adjust the jump insns appropriately.  Fixup basic_block_info.
4100         (verify_insn_chain): Always define.
4101         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
4102         in allocation size.
4103         (make_new_scope): Don't write zeros to calloc'd space.
4104         (build_scope_forest): Rely on xrealloc to DTRT.
4105         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
4106         profile_arc_flag.  Streamline EH test.
4107
4108         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
4109         * basic-block.h: Declare them.
4110
4111 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
4112
4113         * emit-rtl.c (reset_used_decls): New function.
4114         (unshare_all_rtl_again): Call it.
4115
4116 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
4117
4118         * cpplex.c (maybe_macroexpand): Warn about function-like
4119         macros used in non-function context, if -Wtraditional.
4120
4121 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4122
4123         * recog.c (peephole2_optimize): Use INSN_P.
4124
4125 2000-05-25  Richard Henderson  <rth@cygnus.com>
4126
4127         * ifcvt.c (seq_contains_jump): New.
4128         (noce_try_store_flag_constants): Use it to fail conversion.
4129         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
4130
4131 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4132
4133         * except.h (can_throw): Declare it.
4134         * except.c (can_throw): Give it external linkage.
4135         * resource.c (find_dead_or_set_registers): Use can_throw.
4136
4137 2000-05-25  Richard Henderson  <rth@cygnus.com>
4138
4139         * flow.c (mark_set_1): Don't record conditionally dead memory.
4140
4141 2000-05-25  Jan Hubicka  <jh@suse.cz>
4142
4143         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
4144         and pc_set at the place of simplejump_p and condjump_p.
4145         * cse.c (record_jump_equiv): Likewise.
4146         * emit-rtl.c (emit): Likewise.
4147         * explow.c (find_next_ref): Likewise.
4148         * flow.c (tidy_fallthru_edge): Likewise.
4149         (init_propagate_block_info): Likewise.
4150         * gcse.c (delete_null_pointer_checks): Likewise.
4151         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
4152         dead_or_predicable): Likewise.
4153         * integrate.c (copy_insn_list): Likewise.
4154         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
4155         for_each_insn_in_loop, check_dbra_loop, get_condition,
4156         insert_bct, load_mems): Likewise.
4157         * resource.c (find_dead_or_set_registers): Likewise.
4158         * sibcalls.c (simplejump_p): Likewise.
4159         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
4160
4161 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
4162
4163         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
4164         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
4165         when unaligned.
4166         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
4167         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
4168         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
4169         * rs6000.md: Name various internal patterns.
4170
4171 2000-05-25  Jan Hubicka  <jh@suse.cz>
4172
4173         * jump.c (invert_exp_1): Remove first argument, use pc_set
4174         to get the expression.
4175         (redirect_exp): Make static; redirect only the pc_set expression,
4176         remove first argument.
4177         (invert_exp): Remove first argument, make static.
4178         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
4179         any_onlyjump at most places where we originaly did condjump_p
4180         and simplejump_p.
4181         (jump_back_p, follow_jumps, thread_jumps): Likewise.
4182         (delete_barrier_succesors): Use pc_set.
4183         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
4184         calls of invert_exp and redirect_exp.
4185         * rtl.h (redirect_exp, invert_exp): Remove.
4186         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
4187
4188 2000-05-25  Richard Henderson  <rth@cygnus.com>
4189
4190         * stmt.c (expand_end_bindings): Fix thinko last change.
4191
4192 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
4193             Andrew Haley  <aph@cygnus.com>
4194
4195         * except.c  (func_eh_entry): Add emitted field.
4196         (new_eh_region_entry): Set emitted field to 0;
4197         (output_exception_table_entry): Only emit previously un-emitted data,
4198         and send it to the eh_data section.
4199         (output_exception_table): Break out common parts. Output
4200         exception table for entire compilation unit to eh_data section.
4201         (output_exception_table_data): Common parts of output_exception_table.
4202         Send output to eh_data section.
4203         (output_function_exception_table): Output exception table data for
4204         a single function to eh_data section.
4205         (free_exception_table): New external to free the table.
4206         * except.h (free_exception_table): Add prototype.
4207         (output_function_exception_table): Add prototype.
4208         * final.c (final_end_function): Output function exception table
4209         for IA64_UNWIND_INFO.
4210         (final_scan_insn): Emit any unwind directives for an insn.
4211
4212         * frame-dwarf2.c: New file containing all DWARF 2 specific code
4213         from frame.c.
4214         * frame.c: Remove all DWARF 2 specific code.
4215         * config/ia64/frame-ia64.c: New file.
4216         (gthread_stuff): Make all gthread available with
4217         IA64_UNWIND_INFO.
4218         (dwarf_fde): Define an IA64 struct for dwarf_fde.
4219         (__register_frame_info, __register_frame): Move to common area of file.
4220         (__register_frame_info_table, __register_frame_table): Move to common i
4221         area.
4222         (__deregister_frame_info, __deregister_frame): Move to common area.
4223         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
4224         (read_uleb128): New version for ia64.
4225         (get_unwind_record): Read the next IA-64 unwind record.
4226         (read_R_record): Read a region header record.
4227         (process_a_b_reg_code): X record helper.
4228         (read_X_record): Read an X format record.
4229         (read_B_record): Read a B format record.
4230         (P3_record_types): List of record types matching the P3 format.
4231         (P7_record_types): List of record types matching the P7 format.
4232         (P8_record_types): List of record types matching the P8 format.
4233         (read_P_record): Read a P format record.
4234         (init_ia64_reg_loc): Set default fields for a register.
4235         (init_ia64_unwind_frame): Set defaults for all register records.
4236         (execute_one_ia64_descriptor): Execute one descriptor record.
4237         (rse_address_add): Calculate the position of a local reg in memory.
4238         (normalize_reg_loc): Turn a location descriptor into a memory address.
4239         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
4240         within a specified PC offset range.
4241         (get_real_reg_value): Given a register location, retrieve its value.
4242         (set_real_reg_value): Change the value of a register location.
4243         (copy_reg_value): Copy reg values, if needed.
4244         (copy_saved_reg_state): Copy all registers that need to be copied.
4245         (process_state_between): Normalize all frame register records that
4246         fall within the specified PC range.
4247         (frame_translate): Take a processed frame description, and turn
4248         everything into addresses.
4249         (build_ia64_frame_state ): Find and create frame state record for a PC.
4250         (get_personality): Get the personality routine for a given frame.
4251         (get_except_table): Get the exception table for a given frame.
4252         (record_name): Unwind record names for debugging.
4253         (print_record): Print and unwind record.
4254         (print_all_records): Print an entire unwind image.
4255         (__ia64_backtrace): Print a backtrace.
4256         (ia64_backtrace_helper): New function.
4257         (__register_frame_info_aux): New function.
4258         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
4259
4260         * frame.h (enum unw_record_type): New unwind record types.
4261         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
4262         (struct unw_r_record, unwind_record): New unwind record structs.
4263         (struct unwind_info_ptr): Unwind information layout.
4264         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
4265         descriptors.
4266         (struct ia64_reg_loc): Register location description.
4267         (struct ia64_frame_state): Location of all registers in a frame.
4268         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
4269         * libgcc2.c (__ia64_personality_v1): Personality routine.
4270         (__calc_caller_bsp): Calculate the bsp register for the caller's
4271         frame.
4272         (ia64_throw_helper): Figure out who to return to and set up the
4273         registers.
4274         (__throw): Throw routine.
4275
4276         * output.h (assemble_eh_align, assemble_eh_label): New functions
4277         to generate EH info where we want it.
4278         (assemble_eh_integer): New function.
4279         * toplev.c (compile_file): Output module level exception table for
4280         non-ia64 targets.
4281         (main): Set exceptions_via_longjump and flag_new_exceptions based
4282         on IA64_UNWIND_INFO too.
4283
4284         * varasm.c (assemble_eh_label): Generate a label via
4285         ASM_OUTPUT_EH_LABEL if it has been specified.
4286         (assemble_eh_align): Generate an alignment directive via
4287         ASM_OUTPUT_EH_ALIGN if it has been specified.
4288         (assemble_eh_label): Generate an integer value via
4289         ASM_OUTPUT_EH_type if they have been specified.
4290         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
4291         (ia64_init_builtins): Add __builtin_ia64_bsp
4292         and __builtin_ia64_flushrs.
4293         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
4294         IA64_BUILTIN_FLUSHRS.
4295         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
4296         IA64_BUILTIN_FLUSHRS.
4297
4298         * config/ia64/ia64.md (flushrs): New insn to flush the register
4299         stack.  Add to unspec list.
4300
4301         * config/ia64/crtbegin.asm (frame_object): Change size.
4302         (__do_frame_setup_aux): New function.
4303         * config/ia64/crtend.asm: call __do_frame_setup_aux.
4304         * config/ia64/t-ia64 (LIB2ADDEH): Add.
4305         * Makefile.in (LIB2ADDEH): Add.
4306         (LIB2ADD): Use LIB2ADDEH.
4307
4308 2000-05-24  Richard Henderson  <rth@cygnus.com>
4309
4310         * recog.c (offsettable_address_p): If mode size is zero, assume
4311         BIGGEST_ALIGNMENT.
4312
4313 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
4314
4315         * configure.in: Check for -Wno-long-long option support and improve
4316         handling of warning CFLAGS for stages 1 and 2.
4317         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
4318         * configure: Regenerate.
4319
4320 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
4321
4322         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
4323         * contrib.texi: New file.
4324
4325 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4326
4327         * loop.c (basic_induction_var): Avoid double recording of an increment.
4328
4329 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4330
4331         * Back out this patch:
4332         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
4333           * loop.h (struct induction): Add multi_insn_incr.
4334           * loop.c (basic_induction_var): New multi_insn_incr argument.
4335           Set it if we search back through previous insns for the biv.
4336           (record_biv): New multi_insn_incr argument; fill in struct induction.
4337           (strength_reduce): Discard an iv with multiple bivs, any of
4338           which require multiple insns to increment.
4339
4340         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
4341
4342 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4343
4344         * rtl.h (loc_mentioned_in_p): Declare.
4345         * reload.c (loc_mentioned_in_p): Moved from here...
4346         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
4347         Fix loop increment for 'E' handling.
4348         * loop.c (strength_reduce): When doing biv->giv conversion,
4349         take multi-insn biv increments into account.
4350
4351 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
4352
4353         * stmt.c (expand_end_bindings): Look through NOTEs to find a
4354         BARRIER.
4355
4356 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
4357
4358         * calls.c (expand_call): Handle cleanups in tail-recursion
4359         arguments analagously to cleanups in sibling calls.
4360
4361 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4362
4363         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
4364         All callers changed.
4365
4366 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4367
4368         * expr.c (expand_assignment, store_expr, expand_expr,
4369         expand_expr_unaligned): Set in_check_memory_usage while emitting
4370         chkr_check_addr libcall.
4371
4372 2000-05-24  Nick Clifton  <nickc@cygnus.com>
4373
4374         * fold-const.c (extract_muldiv): When constructing a
4375         multiplier/divisor, do not expect const_binop to correctly
4376         determine if overflow has occured, so check explicitly.
4377
4378 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4379
4380         * c-decl.c (build_enumerator): Don't modify the value's type,
4381         convert it.
4382
4383 2000-05-24  Andreas Jaeger  <aj@suse.de>
4384
4385         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
4386
4387 2000-05-24  Eric Christopher <echristo@cygnus.com>
4388
4389         * configure.in: Redefine inhibit_libc conditions.
4390         * libgcc2.c: Remove inhibit_libc conditional define.
4391         * configure: Regenerate.
4392
4393 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
4394
4395         * configure.in:  For --enable-languages=LIST, check for empty LIST.
4396         * configure:  Regenerate.
4397
4398 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
4399
4400         * pdp11.h (STACK_BOUNDARY): Define.
4401
4402 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
4403
4404         * ifcvt.c (if_convert): Update life info globally.
4405
4406 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4407
4408         * emit-rtl.c (unshare_all_decls): New function.
4409         (unshare_all_rtl): Call it.
4410
4411 2000-05-23  Nick Clifton  <nickc@cygnus.com>
4412
4413         * configure.in: Treat 'strongarm' as if it were 'arm' when
4414         determining cpu type.
4415
4416         * configure: Regenerate.
4417
4418         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
4419         where constant strings are involved.
4420
4421         * config/arm/arm.h (arm_condition_codes): Change type to 'const
4422         char *'.
4423
4424         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
4425         cases where constant strings are involved.
4426
4427 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
4428
4429         * config/sh/sh.c (gen_far_branch, split_branches): Update
4430         to reflect new prototypes for redirect_jump and invert_jump.
4431         (sh_insn_length_adjustment): Get rid of const warnings.
4432
4433 2000-05-23  Kazu Hirata  <kazu@hxi.com>
4434
4435         * invoke.texi (Options for Debugging Your Program or GCC): Update
4436         the names of dump files.
4437
4438 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
4439
4440         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
4441         * configure: Regenerated.
4442
4443 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4444
4445         * simplify-rtx.c (SIGN_EXTEND): New macro.
4446         (simplify_unary_operation, simplify_binary_operation,
4447         simplify_relational_operation): Use SIGN_EXTEND.  Make low
4448         halves of (low, high) pairs unsigned if they weren't already.
4449         (simplify_ternary_operation): Cast INTVAL to unsigned before
4450         comparing to a MODE_BITSIZE.
4451
4452 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4453
4454         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
4455         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
4456
4457         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
4458         gcc_AC_NEED_DECLARATIONS.
4459
4460         * dwarfout.c: Don't prototype time().
4461
4462         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
4463
4464         * system.h: Likewise.
4465
4466         * toplev.c: Likewise.
4467
4468 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4469
4470         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4471
4472 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4473
4474         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4475
4476 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4477
4478         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4479
4480 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4481
4482         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4483         (alpha_start_function): Never write ..ng label if VMS or NT.
4484         (alpha_align_insns): Remove GP_IN_USE arg.
4485         Alignment now unsigned.
4486         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4487         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4488         and two define_insn's.
4489
4490 2000-05-22  Richard Henderson  <rth@cygnus.com>
4491
4492         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4493
4494 2000-05-22  Richard Henderson  <rth@cygnus.com>
4495
4496         * stor-layout.c (place_field): Change rli->size to rli->offset.
4497
4498 2000-05-22  Richard Henderson  <rth@cygnus.com>
4499
4500         * function.c (thread_prologue_and_epilogue_insns): Make sure
4501         existing line number notes appear after the prologue.
4502
4503 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4504
4505         * config/alpha/alpha.c (alpha_fnname): New static variable.
4506         (print_operand, case '~'): New case.
4507         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4508         (alpha_start_function): Set alpha_fnname.
4509         Write "ng" label if no ldgp; don't write ldgp insn.
4510         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4511         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4512
4513 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4514
4515         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4516         on deleted labels.
4517
4518 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4519
4520         * varasm.c (eh_frame_section): Revert change to argument list.
4521
4522 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4523
4524         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4525         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4526
4527         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4528         dangling "else" that causes "break" to be conditional.
4529         Also remove unneeded code at start.
4530
4531 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4532
4533         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4534         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4535         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4536
4537 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4538
4539         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4540         just one argument.
4541
4542 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4543
4544         * alias.c (record_component_aliases): New function.
4545         * tree.h: Clean up some declarations and comments.
4546         (record_component_aliases): New declaration.
4547         * tree.c (get_alias_set): If type and has alias set, use it.
4548
4549 2000-05-22  Richard Henderson  <rth@cygnus.com>
4550
4551         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4552         IF_THEN_ELSE to a setcc form.
4553         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4554
4555 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4556
4557         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4558         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4559
4560 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4561
4562         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4563         not a PARALLEL.
4564
4565 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4566
4567         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4568         * config/mn10300/mn10300.c (print_operand): Likewise.
4569
4570         * final.c (split_double): Right shift of negative values is not
4571         portable.
4572
4573         * ifcvt.c (if_convert): Scan and kill dead code.
4574
4575         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4576
4577 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4578
4579         * diagnostic.c: Eliminate implicit int.
4580         * except.c, gcc.c: Add static prototypes.
4581         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4582         * gensupport.c (process_rtx): Use XVEC to initialize vector
4583         slot of 'split'.
4584
4585         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4586         debug_reg_names instead of static reg_names.  If not, define
4587         global reg_names.
4588         * regclass.c: Don't define global reg_names unless
4589         DEBUG_REGISTER_NAMES is defined.
4590
4591         * reload1.c (order_regs_for_reload): Remove unused variable.
4592         * varasm.c: Include output.h after defaults.h.  Define
4593         eh_frame_section as function of no args, not of unspecified args.
4594
4595         * gcc.c: Constify argbuf; arguments to store_arg,
4596         process_command, main; elements of struct command and struct
4597         switchstr; local variables in execute, process_command, main.
4598
4599 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4600
4601         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4602         * fixinc/check.diff:  regenerated
4603         * fixinc/fixincl.x:  regenerated
4604
4605 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4606
4607         * alias.c: Clarify some comments.
4608         (record_base_value): REGNO is unsigned.
4609         * rtl.h (record_base_value): Likewise.
4610
4611         * alias.c (aliases_everything_p): Don't special-case QImode here.
4612         * c-common.c (c_get_alias_set): Do it here.
4613         Handle BIT_FIELD_REF by getting alias info for arg.
4614         Use POINTER_TYPE_P.
4615
4616 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4617
4618         * mklibgcc.in: Restore rule to create ${dir}.
4619
4620 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4621
4622         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4623         GCC_FOR_TARGET used by MULTILIBS.
4624         * mklibgcc.in: Make sure each .o file depends on the
4625         directory it will be in.
4626         Make the multilib directory depends libgcc.
4627
4628 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4629
4630         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4631
4632 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4633
4634         * fold-const.c (make_range): Handle degenerated intervals.
4635         Fixes c-torture/execute/991221-1.c
4636
4637 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4638
4639         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4640         * reload.c (find_equiv_reg): Likewise.
4641         * alias.c (init_alias_analysis): Likewise.
4642         Only call prologue_epilogue_contains on insns.
4643         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4644         * bb-reorder.c (hard-reg-set.h): Include earlier.
4645         * haifa-sched.c (hard-reg-set.h): Likewise.
4646         * ifcvt.c (hard-reg-set.h): Likewise.
4647         * local-alloc.c (hard-reg-set.h): Likewise.
4648         * loop.c (hard-reg-set.h): Likewise.
4649         * predict.c (hard-reg-set.h): Likewise.
4650         * regrename.c (hard-reg-set.h): Likewise.
4651         * flow.c (hard-reg-set.h): Likewise.
4652         (reg_set_to_hard_reg_set): New function.
4653         * bitmap.c (regs.h, basic-block.h): No longer include.
4654         (bitmap.h): Now include.
4655         * conflict.c (hard-reg-set.h): Include.
4656         * profile.c (hard-reg-set.h): Likewise.
4657         * print-rtl.c (hard-reg-set.h): Likewise.
4658         * sbitmap.c (hard-reg-set.h): Likewise.
4659         * toplev.c (hard-reg-set.h): Likewise.
4660         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4661         * hard-reg-set.h (reg_names): Now constant.
4662         * regs.h (reg_names): Likewise.
4663         * regclass.c (reg_names): Likewise.
4664         * loop.h (basic-block.h): No longer include.
4665         (bitmap.h): Now include.
4666         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4667         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4668         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4669
4670 2000-05-19  Jan Hubicka  <jh@suse.cz>
4671             Richard Henderson  <rth@cygnus.com>
4672
4673         * basic-block.h (struct edge_def): New field "count".
4674         (struct basic_block_def): Likewise.
4675         * flow.c (entry_exit_blocks): Add count fileds.
4676         (split_edge): Keep count information up-to-date.
4677         (dump_edge_info, dump_flow_info): Dump count fields.
4678
4679         * final.c (count_instrumented_edges): Rename to edge from arc.
4680         (end_final): Update users.
4681         * profile.c: Include expr.h, basic-block.h.
4682         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4683         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4684         (ignore_next_note, return_label_execution_count): Kill.
4685         (bbg_file_name, da_file_name): Kill.
4686         (edge_info, bb_info): New structures.
4687         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4688         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4689         (total_num_edges_instrumented): Likewise.
4690         (init_arc, expand_spanning_tree): Kill.
4691         (fill_spanning_tree, tablejump_entry_p): Kill.
4692         (instrument_edges):  Rewrite from instrument_arcs to use
4693         commit_edge_insertions infrastructure.
4694         (compute_branch_probabilities): Remove arguments; rewrite for
4695         CFG infrastructure; use rtl_dump_file directly.
4696         (branch_prob, find_spanning_tree): Likewise.
4697         (union_groups, find_group): New.
4698         (init_branch_prob): Make bbg_file_name and da_file_name local.
4699         (end_branch_prob): Use rtl_dump_file directly.
4700         (init_edge_profiler): Rename to edge from arc.
4701         (output_arc_profiler): Kill.
4702         (gen_edge_profiler): New.
4703         (output_func_start_profiler): Turn off profiling.  Make the
4704         constructor static when we can.
4705         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4706
4707         * toplev.c (DFI_flow): Remove.
4708         (DFI_cfg, DFI_life): New.
4709         (dump_file): Update accordingly.
4710         (compile_file): Call end_branch_prob if profile_arc_flag too.
4711         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4712         profiling after the CFG is built.  Move flow1 life analysis to
4713         DFI_life.  Always estimate remaining probabilities.
4714
4715 2000-05-19  Richard Henderson  <rth@cygnus.com>
4716
4717         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4718
4719         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4720
4721 2000-05-19  Richard Henderson  <rth@cygnus.com>
4722
4723         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4724         remove labels and code following when LABEL_NUSES goes to zero.
4725         (invert_jump): Likewise.
4726         (jump_optimize_1): Fix redirect/invert arguments.
4727         (do_cross_jump, thread_jumps): Likewise.
4728         * flow.c (split_edge): Likewise.
4729         * reorg.c (optimize_skip): Likewise.
4730         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4731         * profile.c (instrument_arcs): Likewise.
4732         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4733         * rtl.h: Update prototypes.
4734
4735 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4736
4737         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4738         notes.
4739         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4740         critical edges.
4741
4742 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4743
4744         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4745         past l1 when deleting whitespace and markers.
4746
4747         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4748         * cpplib.c (do_unassert): Put the list to compare against on
4749         the stack.
4750
4751 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4752
4753         * fixinc/README:  cleaned up old documentation
4754         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4755         * fixinc/check.tpl: compute the list of needed directories
4756         emit "#if defined(name)" because of conflict
4757         omit machine name differences from output differences
4758         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4759         (machine_name): change test text to use `sed' markers
4760         * fixinc/fixincl.x: regen
4761
4762 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4763
4764         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4765         a CONSTRUCTOR.
4766
4767 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4768
4769         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4770         it to match the current practice.
4771
4772 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4773
4774         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4775
4776 2000-05-18  Richard Henderson  <rth@cygnus.com>
4777
4778         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4779         * rtl.h (insn_dependant_p): Declare it.
4780         * loop.c (strength_reduce): Use it.
4781
4782 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4783
4784         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4785         16-bit and 64-bit clean-up.
4786
4787 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4788
4789         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4790         * configure: Rebuilt.
4791
4792 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4793
4794         * genopinit.c: Use $ for escape sequences in optab patterns.
4795         Remove backslashes from optab patterns.  Change $A, $B, $C to
4796         expand to (int) whatever instead of just whatever; remove
4797         explicit (int) from all optab patterns.
4798
4799         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4800         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4801         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4802         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4803         xstrdup.
4804
4805 2000-05-18  Richard Henderson  <rth@cygnus.com>
4806
4807         * jump.c (jump_optimize_1): Base minimum insn count during
4808         find_cross_jump on BRANCH_COST.
4809
4810 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4811
4812         * print-rtl.c (print_rtx): Only print note line number as string
4813         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4814         * final.c (final_scan_insn): Do nothing for note line number 0.
4815
4816 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4817
4818         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4819         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4820         NOTE_INSN_DELETED_LABEL.
4821
4822 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4823
4824         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4825         uninitialised data in .rodata not .bss, and do not interpret an
4826         error in the initialisation value as meaning that the variable
4827         should be placed in the .bss section.
4828
4829 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4830
4831         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4832         not `$ac_cv_prog_cc_cc_c_o'.
4833         * configure: Regenerated.
4834
4835 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4836             Richard Henderson  <rth@cygnus.com>
4837
4838         * c-common.h (enum c_tree_index): Add g77 type entries.
4839         (g77_integer_type_node, g77_uinteger_type_node): New.
4840         (g77_longint_type_node, g77_ulongint_type_node): New.
4841         * c-decl.c (init_decl_processing): Initialize them.
4842
4843 2000-05-18  Richard Henderson  <rth@cygnus.com>
4844
4845         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4846
4847         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4848         (small_power_of_two): Likewise; use exact_log2.
4849         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4850         (output_adds_subs): Remove.
4851         (two_insn_adds_subs_operand): New.
4852         (split_adds_subs): New.
4853         * config/h8300/h8300-protos.h: Update.
4854         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4855         (CONST_OK_FOR_L): Match strict adds operands.
4856         (CONST_OK_FOR_N): Match struct subs operands.
4857         * config/h8300/h8300.md (adds_subs insns): Remove.
4858         (addhi patterns): Output adds/subs directly.
4859         (addsi_h8300h): Likewise.
4860         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4861
4862 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4863
4864         * cppexp.c (parse_assertion): New.
4865         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4866         (_cpp_parse_expr): Remove case '#'.  Don't set
4867         parsing_if_directive.
4868         * cpphash.c (collect_objlike_expansion,
4869         collect_funlike_expansion, collect_params,
4870         _cpp_create_definition): The list no longer has a trailing
4871         VSPACE token.
4872         * cpphash.h (enum node_type): Add T_ASSERTION.
4873         (struct hashnode): Remove aschain, add pred.
4874         (struct predicate): New.
4875         Update prototypes.
4876
4877         * cpplex.c (expand_token_space): Handle both offset and
4878         nonoffset lists.
4879         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4880         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4881         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4882         _cpp_equiv_toklists): New.
4883         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4884         stop at any single-character token, not just newline.
4885         (_cpp_lex_token): Remove special cases for #define and #if.
4886         (cpp_get_token): Expect # as a separate token type.  Remove
4887         DIRECTIVE case.
4888         (_cpp_get_directive_token): Remove DIRECTIVE case.
4889         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4890
4891         * cpplib.c (_cpp_check_directive): Set dirno and
4892         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4893         (_cpp_handle_directive): Run # <number> through the same logic
4894         as normal directives.
4895         (do_define): Don't set parsing_define_directive.  Use
4896         _cpp_scan_until.  The list does not have a VSPACE at the end.
4897         (do_if): Save, clear, and restore only_seen_white around
4898         _cpp_parse_expr.
4899         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4900         (do_assert, do_unassert): Rewrite.
4901
4902         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4903         (LIST_OFFSET): New flag.
4904         (struct cpp_toklist): Replace dir_handler and dir_flags with
4905         dirno and flags.
4906         (struct cpp_reader): Remove parsing_if_directive and
4907         parsing_define_directive.
4908
4909 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4910
4911         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4912         following the cabs decl which terminate on the following line.
4913         Add the corresponding test_text case.
4914
4915 2000-05-18  Neil Booth  <NeilB@earthling.net>
4916
4917         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4918         default tab stop size.
4919         (no_num, OPT_ftabstop): New.
4920         (handle_option): Handle "ftabstop=" command-line option.
4921         (print_help): Document it.
4922         * cpplex.c (COLUMN): Remove.
4923         (handle_newline): Reset col_adjust.
4924         (skip_whitespace): Update col_adjust as tabs encountered.
4925         (_cpp_lex_line): Update to use col_adjust.  Call
4926         skip_whitespace for all whitespace.
4927         * cpplib.h (struct cpp_options): New member tabstop.
4928         (struct cpp_reader): New member col_adjust.
4929         (CPP_BUF_COL): Update.
4930         (CPP_BUF_COLUMN): New.
4931         * cpp.texi: Document "-ftabstop=" command line option.
4932
4933 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4934
4935         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4936         files.
4937         * configure: Rebuilt.
4938
4939 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4940
4941         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4942
4943         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4944         HOST_BITS_PER_WIDE_INT is >= 64.
4945
4946 2000-05-17  Richard Henderson  <rth@cygnus.com>
4947
4948         * jump.c (jump_optimize_1): Remove inactive but real insns
4949         in jump-to-next-insn optimization.
4950
4951 2000-05-17  Richard Henderson  <rth@cygnus.com>
4952
4953         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4954         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4955         Don't call recompute_reg_usage if no_new_pseudos is true.
4956         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4957         Return true if we did work; update global life information.
4958         * basic-block.h (optimize_mode_switching): Update decl.
4959
4960 2000-05-17  Neil Booth  <neilb@earthling.net>
4961
4962         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4963
4964 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4965
4966         * cpplib.c: New feature, #pragma system_header.
4967         * cpp.texi: Document special treatment of system headers, and
4968         the various mechanisms to get a header that special treatment.
4969
4970 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4971
4972         * system.h (offsetof): Define at the very end, to ensure we prefer
4973         the platform's definition if available.
4974
4975 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4976
4977         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4978         * fixinc/server.c: likewise
4979         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4980         + #ifdef debugging code + use #def constant for
4981         sub-pattern count
4982         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4983         on C++ math namespace
4984
4985 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4986
4987         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4988         Don't check the return value of sprintf.  Use asprintf to avoid
4989         buffer overflows.
4990
4991 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4992
4993         * flags.h (warn_unused_function, warn_unused_label,
4994         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4995         Replace ``warn_unused''.
4996         (set_Wunused): Add declaration.
4997         * toplev.c (set_Wunused): New function.
4998         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4999         warn_unused_variable, warn_unused_value): New variables.
5000         (W_options): Add -Wunused-function, -Wunused-function,
5001         -Wunused-label, -Wunused-parameter, -Wunused-variable and
5002         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
5003
5004         * toplev.c (decode_W_option): Update -Wunused flags by calling
5005         set_Wunused.
5006         * c-decl.c (c_decode_option): Ditto for -Wall.
5007
5008         * stmt.c (expand_expr_stmt, expand_expr_stmt,
5009         warn_about_unused_variables): Replace warn_unused with more
5010         explicit warn_unused_value et.al.
5011         * function.c (expand_function_end): Ditto.
5012         * c-typeck.c (internal_build_compound_expr,
5013         internal_build_compound_expr): Ditto.
5014         * c-decl.c (poplevel, pop_label_level): Ditto.
5015         * toplev.c (check_global_declarations): Replace warn_unused with
5016         check for either warn_unused_function or warn_unused_variable.
5017
5018         * gcc.1, invoke.texi (Warning Options): Document
5019         -Wunused-function, -Wunused-function, -Wunused-label,
5020         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
5021
5022 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
5023
5024         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
5025         $(srcdir), not in the current directory.
5026
5027 2000-05-16  Richard Henderson  <rth@cygnus.com>
5028
5029         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
5030         assembler supports it.
5031         (.fini, .init): Use a gp-relative indirect call.
5032         (__do_global_dtors_aux): Preserve the gp; rebundle.
5033         (__do_frame_setup): Likewise.
5034         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
5035         (.init): Use a gp-relative indirect call.
5036         (__do_global_ctors_aux): Preserve the gp.
5037
5038 2000-05-16  Richard Henderson  <rth@cygnus.com>
5039
5040         * flow.c (commit_one_edge_insertion): Be prepared for a return
5041         insn to be inserted on the edge with a normal jump.
5042         * jump.c (jump_optimize_1): Don't look to create return isns.
5043
5044         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
5045         * jump.c (jump_optimize_1): Likewise.
5046         (returnjump_p): Verify the argument is a JUMP_INSN.
5047         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
5048
5049 2000-05-16  Nick Clifton  <nickc@cygnus.com>
5050
5051         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
5052         GET_RTX_CLASS (GET_CODE ()) == 'i'.
5053         (large_insn_p): Ditto.
5054         (m32r_is_insn): New function: Return true if the insn contains
5055         an executable instruction.
5056         (m32r_adjust_insn): Use m32r_is_insn.
5057         (m32r_sched_reorder): Use m32r_is_insn.
5058         (m32r_sched_variable_issue): Use m32r_is_insn.
5059
5060 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5061
5062         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
5063         VAR_DECL.
5064
5065         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
5066
5067         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
5068         according to given options.
5069
5070 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
5071
5072         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
5073         if X has VOIDmode either.
5074         (LIMIT_RELOAD_CLASS): Similarly.
5075
5076         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
5077         not "general_operand" to match the processor's capabilities.
5078
5079 2000-05-16  Bruce Korb  <bkorb@gnu.org>
5080
5081         * fixinc/README:  corrected return address
5082         * fixinc/check.diff:  regenerate, now that test works
5083         * fixinc/fixfixes.c(format_fix,format_write): reformatted
5084         (char_macro_def_fix,char_macro_use_fix): corrected and
5085         rewrote to use regex to parse the text
5086         * fixinc/inclhack.def: more testing
5087         * fixinc/fixincl.x:  regenerated
5088
5089         * fixinc/inclhack.def: added several "test_text" attributes
5090         changed several fixes to use `c_fix = format'
5091         re-alphabetized the fixes
5092
5093         * fixinc/check.diff: regenerate
5094         * fixinc/fixincl.x: regenerate
5095         * fixinc/check.tpl: added `sparc' and `netinet' to the list
5096         of created dirs
5097
5098
5099 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
5100
5101         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
5102
5103 2000-05-15  Richard Henderson  <rth@cygnus.com>
5104
5105         * toplev.c (rest_of_compilation): Run full jump pass before
5106         find_basic_blocks of flow2.
5107
5108 2000-05-15  Richard Henderson  <rth@cygnus.com>
5109
5110         * jump.c: Fix typos and clarify commentary from last change.
5111         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
5112         (safe_to_remove_jump_p): Remove.
5113         (condjump_label): Use pc_set.
5114
5115 2000-05-15  Richard Henderson  <rth@cygnus.com>
5116
5117         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
5118         that get in the way after reload.
5119         (cond_exec_process_if_block): Skip a label heading THEN block.
5120
5121 2000-05-15  Richard Henderson  <rth@cygnus.com>
5122
5123         * varasm.c (output_constant_pool): Abort instead of converting
5124         (improperly) deleted labels to zero.
5125
5126 2000-05-16  Neil Booth  <NeilB@earthling.net>
5127
5128         * cpplex.c (parse_string2): Update comment.
5129         (cpp_lex_line): No special assertion treatment for '('.
5130         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
5131         * cpplib.h (SYNTAX_ASSERT): Remove.
5132
5133 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5134
5135         * jump.c (condjump_p):  Mark as depreached.
5136         (any_condump_p): New.
5137         (any_uncondump_p): New.
5138         (pc_set): New.
5139         (safe_to_remove_jump_p): New.
5140         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
5141         safe_to_remove_jump_p): Declare.
5142
5143 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5144
5145         * calls.c: Re-install both patches reverted by last patch.
5146         (struct arg_data): New field tail_call_reg.
5147         (initialize_argument_information): Initialize tail_call_reg
5148         (load_register_parameters): New argument flags, use
5149         tail_call_reg when emiting tail call sequence.
5150         (expand_call): Update call of load_register_parameters;
5151         copy unadjusted_args_size to adjusted_args_size.
5152
5153 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5154
5155         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
5156         and bct_p parameters to flags.
5157         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
5158         * rtl.h (loop_optimize): Update prototype.
5159         * toplev.c (rest_of_compilation): Update call of loop_optimize.
5160
5161 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
5162
5163         * calls.c (expand_call): Move expand_start_target_temps call after
5164         start_sequence().
5165
5166 2000-05-15  Neil Booth  <NeilB@earthling.net>
5167
5168         * cpphash.c (trad_stringify, warn_trad_stringify,
5169         collect_params): Make some pointers pointers to const.
5170         * cpplex.c (auto_expand_name_space) Guaranteed to always
5171         expand by at least one character.
5172         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
5173         (struct token_spelling): Use const U_CHAR * rather than PTR.
5174         (expand_name_space): Fix up token pointers if name space
5175         is moved when expanding.
5176         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
5177         parse_string2, save_comment, spell_token, cpp_output_list):
5178         Update so the routines handle tokens with a direct pointer to
5179         their text, rather than an offset into the token's list's namebuf.
5180         (_cpp_lex_line): Rearrange for clarity.
5181
5182         * cpplib.c (_cpp_check_directive): Similarly.
5183         (do_define): Make SYM a pointer to const.
5184         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
5185         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
5186         (TOK_OFFSET): Delete.
5187         (TOK_NAME): Update.
5188
5189 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
5190
5191         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
5192         64-bit ABI.
5193
5194         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
5195         into account.
5196         (logical_u_operand): Delete.
5197         (non_logical_cint_operand): Rewrite to take MODE into account.
5198         (non_logical_u_cint_operand): Delete.
5199         (boolean_operator): New function.
5200         (print_operand): Add new %q operand.
5201         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
5202         remove logical_u_operand and non_logical_u_cint_operand,
5203         update logical_operand and non_logical_cint_operand.
5204         * config/rs6000/rs6000.md: Rewrite the patterns for performing
5205         logical operations to use %q.
5206
5207         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
5208         (movdi): Make similar to movsi.
5209         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
5210         is no such thing as a DImode CONST_DOUBLE.
5211         * config/rs6000/rs6000.c (output_toc): Likewise.
5212
5213         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
5214         codes when old mnemonics are in use.  Print register names
5215         for cc registers when requested.
5216
5217         * optabs.c (expand_float): Don't allow mode widening that causes
5218         double rounding.
5219
5220         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
5221         flags to their current names -maix64 and -maix32.
5222
5223 2000-05-14  Bruce Korb  <bkorb@gnu.org>
5224
5225         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
5226         and/or after current text of file
5227         * fixinc/fixlib.c(must_malloc):
5228         * fixinc/fixlib.h(must_malloc): + reformatting
5229         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
5230         with usages of ``c_fix = wrap;''
5231         Add several tests and use the ``c_fix = format'' fixer more.
5232         * fixinc/fixincl.x: regen
5233         * fixinc/check.diff: regen
5234         * fixinc/check.tpl: emit the associated header with the missing
5235         test message
5236
5237 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
5238
5239         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
5240         variables $src and $dst.
5241
5242 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
5243
5244         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
5245         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
5246         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
5247         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
5248         fields.
5249         (set_message_prefixing_rule): Declare.
5250
5251         * diagnostic.c: (current_prefixing_rule): New variable.
5252         (set_message_prefixing_rule): Define.
5253         (output_set_prefix): Adjust buffer->emitted_prefix_p.
5254         (init_output_buffer): Adjust Initialization.
5255         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
5256
5257 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
5258
5259         * ifcvt.c (if_convert): Do not free NULL.
5260
5261 2000-05-12  H.J. Lu  (hjl@gnu.org)
5262
5263         * gthr-dce.h: Add support for libobjc.
5264         * gthr-posix.h: Likewise.
5265         * gthr-solaris.h: Likewise.
5266         * gthr-vxworks.h: Likewise.
5267         * gthr-single.h: Likewise.
5268         * gthr-win32.h: Likewise.
5269
5270 2000-05-12  Nick Clifton  <nickc@cygnus.com>
5271
5272         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
5273         to move a double word value.
5274         (di_operand): New function: Return true if the operand is suitbale
5275         for a double word move operation.
5276         (nonimmediate_di_operand): New function: Return true if the
5277         operand is a DImode register or MEM.
5278
5279         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
5280         nonimmediate_di_operand.
5281
5282         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
5283         nonimmediate_di_operand.
5284
5285         * config/fr30/fr30.md (movdi): New pattern.  Required because
5286         other patterns generate DImode results.
5287         (movdi_insn): New pattern.
5288
5289 2000-05-12  Richard Henderson  <rth@cygnus.com>
5290
5291         * config/alpha/alpha.c (struct shadow_summary): Define
5292         bitfields as type unsigned int.
5293
5294 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
5295
5296         * config/avr/t-avr: Added definition of FLOAT while generates
5297         fp-bit.c
5298
5299         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
5300         peepholes for tst+jump = sbrs/sbrc optimization.
5301
5302 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
5303
5304         * expr.c (emit_push_insn): Do not adjust stack pointer when
5305         preallocating.
5306
5307 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
5308
5309         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
5310         * system.h (offsetof): ... to here.
5311
5312 2000-05-12  Richard Henderson  <rth@cygnus.com>
5313
5314         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
5315         * final.c (final_end_function): Use app_disable.  Rearrange note
5316         handling into a switch.  Emit deleted labels.
5317         (output_asm_label): Generate label strings for deleted labels.
5318         * flow.c (tail_recursion_label_list): New.
5319         (find_basic_blocks_1): Set label_value_list directly.  Collect list
5320         of tail recursion labels from call_placeholders.  Don't add deleted
5321         labels to the label value list.
5322         (cleanup_cfg): Use free_EXPR_LIST_list.
5323         (flow_delete_insn_chain): Turn non-removable labels into notes.
5324         (flow_delete_block): Don't disable deleting the block because of
5325         a non-removable label.
5326         (tail_recursion_label_p): New.
5327         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
5328         because of a label.
5329         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
5330         jump table.
5331         (merge_blocks): Disable a merge because of tail recursion labels.
5332         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
5333         Use a more accurate measure of not merging the join block.
5334         (find_if_block): Don't disable conversion because of a label.
5335         (find_if_case_1, find_if_case_2): Likewise.
5336         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
5337         element when copying.
5338         (squeeze_notes): Also leave EH notes.
5339         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
5340         REG_LABEL notes.
5341         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
5342         deleting a label.
5343         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
5344         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
5345         referring to a deleted label.  Convert tail handling to a switch.
5346         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
5347         for NOTE_INSN_DELETED_LABEL.
5348         (NOTE): Fix commentary.
5349         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
5350         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
5351         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
5352         (LABEL_NUSES, LABEL_REFS): Likewise.
5353         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
5354
5355 2000-05-12  Bruce Korb  <bkorb@gnu.org>
5356
5357         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
5358         * fixinc/check.diff: updated
5359         * fixinc/inclhack.def: corrected & added some test_text-s
5360         * fixinc/genfixes: removed unneeded options to autogen invocation
5361         * fixinc/fixincl.tpl: Specified the output file
5362         * fixinc/fixfixes.c: visual appearance
5363         * fixinc/fixincl.x: regenerate
5364
5365 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
5366
5367         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
5368         CTRL_defn_fix): Delete.
5369         (fix_char_macro_defines, fix_char_macro_uses): Rename to
5370         char_macro_def_fix and char_macro_use_fix, respectively.  Put
5371         them into the FIXUP_TABLE.  Get the string to search for from
5372         a c_fix_arg.
5373
5374         (format_write): New function.
5375         (format_fix): Use it.
5376
5377         (FIX_PROC_HEAD): Constify text parameter.
5378         (machine_name_fix): Constify all char *s.
5379         * fixtests.c (skip_quote): Remove double static.
5380
5381         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
5382         ctrl_use_quotes): Update for new scheme.
5383         * fixincl.x: Regenerate.
5384
5385 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
5386
5387         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
5388         DWARF2_DEBUG.
5389         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
5390         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
5391
5392 2000-05-11  Robert Lipe <robertlipe@usa.net>
5393
5394         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
5395         * fixincl.x: Regenerate.
5396
5397 2000-05-11  Richard Henderson  <rth@cygnus.com>
5398
5399         * calls.c: Revert both 05-09 patches.
5400
5401 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
5402
5403         * config/mn10300/mn10300.c (print_operand): Print FP constants in
5404         hexadecimal.
5405         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
5406         for FP values.
5407
5408         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
5409         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
5410
5411 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
5412
5413         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
5414
5415 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5416
5417         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
5418
5419 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
5420
5421         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
5422         * config/avr/avr.c (jump_over_one_insn_p): New function.
5423         * config/avr/avr.md: New peepholes added. Output test and
5424         conditional jump to "sbrc" or "sbrs" command.
5425
5426 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
5427
5428         * cppmain.c (main): Use IS_DIR_SEPARATOR.
5429
5430 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
5431
5432         * except.c (find_exception_handler_labels_1): New function.
5433         (find_exception_handler_labels): Split into two functions, dive
5434         into CALL_PLACEHOLDERs when looking for exception handler labels.
5435
5436 2000-05-11 Stan Cox <scox@cygnus.com>
5437
5438         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
5439         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
5440         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
5441
5442 2000-05-11  Bruce Korb  <bkorb@gnu.org>
5443
5444         * fixinc/fixfixes.c (double_slash_fix):  obsolete
5445         (else_endif_label_fix): obsolete
5446         (format_fix):  new, unused as yet
5447         (main): obsolete
5448         * fixinc/fixlib.h: added fix description struct for use by format_fix
5449         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
5450         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
5451         modules.  Removed the vestiges of the script version.
5452         Added support for "make check".
5453         * fixinc/check.diff: base diff file (needs work!!)
5454         * fixinc/check.tpl: quiet the fixup output
5455         * fixinc/fixtests.c (main): obsolete
5456         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
5457         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
5458
5459 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
5460
5461         * toplev.c (rest_of_compilation): Remove dead code after
5462         combine.
5463
5464 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5465
5466         * cpphash.c (collect_funlike_expansion): Make "# is not
5467         followed by a macro argument name" a pedwarn, not an error.
5468         Preserve the # in the output.  Suppress the warning if lang_asm.
5469
5470 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
5471
5472         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
5473         * configure: Rebuilt.
5474
5475 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5476
5477         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5478
5479 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5480
5481         * combine.c (try_combine): Fix a typo.
5482
5483 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5484
5485         * config/ia64/ia64.md (insv): Add comment.
5486
5487 2000-05-10  Richard Henderson  <rth@cygnus.com>
5488
5489         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5490         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5491         dependancies on FPBIT and DPBIT.
5492
5493 2000-05-10  Nick Clifton  <nickc@redhat.com>
5494
5495         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5496         when optimising for size.
5497         (mark_used_regs:) Ditto.
5498         (try_pre_increment_1): Ditto.
5499
5500 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5501
5502         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5503         Make error message friendlier.
5504
5505         * cpphash.h (struct hashnode): Use struct hack for name
5506         member.
5507         * cpphash.c (struct hashdummy): New.
5508         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5509         (make_HASHNODE): No need to set ->name pointer.  Correct
5510         setting of p.
5511         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5512
5513 2000-05-10  Richard Henderson  <rth@cygnus.com>
5514
5515         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5516         after completion.
5517
5518 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5519
5520         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5521
5522 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5523
5524         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5525         after we enter .debug.
5526
5527 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5528
5529         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5530         abstract instance of a nested inline function.
5531
5532         * stor-layout.c (finish_record_layout): finalize_type_size
5533         before laying out the pending_statics.
5534
5535 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5536
5537         * cpplex.c (spell_token): New function.
5538         (spell_string, spell_comment, spell_name): fold into
5539         spell_token.
5540         (I, S): Add macros.
5541         (E, H): Remove macros.
5542         (save_comment): Save comment opening characters too.
5543         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5544         handling.
5545         * cpplib.h (I, S): Add macros.
5546         (E, H): Remove macros.
5547         (TTYPE_TABLE): Update entries for new speller.
5548         (SYNTAX_ASSERT): Remove.
5549
5550 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5551
5552         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5553         when removing escaped newlines.  Reverse sense of test for
5554         escaped newline.
5555
5556 2000-05-09  Richard Henderson  <rth@cygnus.com>
5557
5558         * flow.c (find_basic_blocks_1): Do not delete the first
5559         bb_note we run across.
5560         (create_basic_block): Use reorder_insns to move an existing
5561         bb_note to the correct place.
5562
5563 2000-05-09  Richard Henderson  <rth@cygnus.com>
5564
5565         * calls.c (expand_call): Increment currently_expanding_call
5566         before calling optimize_tail_recursion.
5567
5568 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5569
5570         * reload1.c (reload_combine): Fix errors in last change.
5571
5572 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5573
5574         * gcc.c (used_arg): Skip over a semicolon at the end of the
5575         split-up loop; don't break out of it.
5576
5577         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5578         (tree.o): Depend on output.h.
5579
5580         * c-decl.c (pending_invalid_xref_file,
5581         current_function_prototype_file): Constify.
5582         (pushdecl): Constify a local char *.
5583         (define_label): Constify filename parameter.
5584         * c-lex.c (init_parse): Constify parameter and return value.
5585         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5586         * c-tree.h: Update prototypes.
5587         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5588         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5589         objc/objc-parse.c: Regenerate.
5590
5591         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5592         * dwarfout.h: Update prototypes.
5593         * expr.c (expand_expr): Constify a local char *.
5594         * flags.h: Constify main_input_filename.
5595         * function.c (expand_function_end): Constify filename parameter.
5596         * genrecog.c (make_insn_sequence): Use a character array for
5597         c_test_pos.
5598         (main): Remove unused variables.
5599         * input.h: Constify input_filename, main_input_filename, and
5600         file_stack.name.  Update prototypes.
5601         * output.h: Declare first_global_object_name and
5602         weak_global_object_name here, as const char *.
5603         * stmt.c (expand_asm_operands): Constify filename parameter.
5604         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5605         Constify filename parameter.
5606         (input_filename, main_input_filename): Constify.
5607         * toplev.h: Update prototypes.
5608         * tree.c: Include output.h.  Don't declare
5609         first_global_object_name or weak_global_object_name.  Clean up string
5610         bashing in get_file_function_name_long.
5611         * tree.h (struct tree_decl): Constify filename member.
5612         (input_filename): Constify.
5613         Update prototypes.
5614         * varasm.c (first_global_object_name, weak_global_object_name):
5615         Constify.
5616         (assemble_start_function, assemble_variable): Clean up string bashing.
5617
5618         * gcc.c: Constify all spec-related strings initialized,
5619         transitively, from string constants.  Constify all strings
5620         and string variables related to multilibs.
5621         (set_spec, read_specs): Cast argument to free to PTR.
5622         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5623         length comparison to compare multilib switches.
5624         * genmultilib: Constify everything declared in multilib.h.
5625
5626 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5627
5628         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5629         as deleted.
5630
5631 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5632
5633         * config/avr/avr-protos.h (extra_constraint): change a type of
5634         second argument from char to int to avoid warnings.
5635         (asm_output_byte): Likewise.
5636
5637         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5638         (initial_elimination_offset): Handle elimination from
5639         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5640         (legitimate_address_p): Use MAX_LD_OFFSET.
5641         (legitimize_address): Likewise.
5642         (out_movqi_r_mr): Likewise.
5643         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5644         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5645         (out_movsi_mr_r): Likewise.
5646         (out_movqi_mr_r): Likewise.
5647         (out_movhi_mr_r): Likewise.
5648         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5649         count as CONST_INT != 6.
5650         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5651         shift count is a CONSTANT_P, but not a CONST_INT.
5652         (ashlhi3_out): Coding style modifications.
5653         (ashlsi3_out): Likewise.
5654         (ashrhi3_out): Likewise.
5655         (ashrsi3_out): Likewise.
5656         (lshrhi3_out): Likewise.
5657         (lshrsi3_out): Likewise.
5658         (ashrqi3_out): Generate shift for any known constant count without
5659         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5660         but not a CONST_INT.
5661         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5662         shift count is a CONSTANT_P, but not a CONST_INT.
5663         (extra_constraint): change a type of
5664         second argument from char to int to avoid warnings.
5665         (asm_output_byte): Likewise.
5666         (asm_file_end): Output size generated commands count as a hex
5667         number too.
5668
5669         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5670
5671         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5672         removed.
5673         (ashlqi3): Values of "length" attribute changed. Shift count
5674         uses constraints 'n' instead of 'i'.
5675         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5676         shifts without clobber register.
5677         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5678         (call_insn): Correct test for which_alternative == 1 (was 0).
5679         (call_value_insn): Likewise.
5680
5681         * config/avr/t-avr: Remove definition of FLOAT while generates
5682         fp-bit.c
5683
5684 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5685
5686         * fixinc/check.tpl:  Template for checking fixes
5687         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5688         disable hpux8_bogus_inlines on SCO
5689         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5690
5691 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5692
5693         * calls.c (expand_call): Reorganize somewhat in order
5694         to avoid unnecesary recalculation inside loop and make
5695         tail call failure code cleaner.
5696
5697 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5698
5699         * alias.c (nonlocal_reference_p): Minor reformatting.
5700         * reload.c (find_equiv_reg): Simplify logic for
5701         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5702         some some reformatting.
5703         * reload1.c (reload_combine): Don't assume everything in
5704         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5705
5706 2000-05-08  Richard Henderson  <rth@cygnus.com>
5707
5708         * final.c (current_insn_predicate): New.
5709         (final_scan_insn): Set it.
5710         * output.h (current_insn_predicate): Declare.
5711
5712         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5713         Attach it to call insns.
5714         (cond_exec_process_if_block): Track probability for true and
5715         false branches.
5716         (dead_or_predicable): Likewise.
5717
5718         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5719         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5720         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5721         (estimate_probability, expected_value_to_br_prob): Use them.
5722
5723         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5724         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5725         (ia64_expand_prediction): New.
5726         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5727         as needed after calls.
5728         (ia64_epilogue_uses): Mark b0 used.
5729         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5730         (bne_true, bne_false): Remove.
5731         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5732         (br_true, br_false): New.  Use predicate_operator and
5733         ia64_expand_prediction.
5734         (return_true, return_false): Likewise.
5735         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5736         (call_internal1, call_value_internal): Likewise.
5737         (call_value_internal1, call_multiple_values_internal1): Likewise.
5738
5739         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5740
5741         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5742
5743 2000-05-08  Richard Henderson  <rth@cygnus.com>
5744
5745         * rtlanal.c (may_trap_p): Consider old-style and volatile
5746         asms to trap.
5747
5748 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5749
5750         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5751
5752 2000-05-08  Richard Henderson  <rth@cygnus.com>
5753
5754         * config/ia64/ia64.h (predicate_operator): Declare.
5755
5756         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5757         of existance.
5758
5759         * gensupport.c (process_rtx): Copy and post-process each member
5760         of the define_insn rtvec individually.
5761
5762 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5763
5764         * cpplex.c (spell_token): New function.
5765         (TOKEN_LEN): Add 1 for whitespace.
5766         (_cpp_lex_file): Update to use spell_token.
5767         * cpplib.h (E): Remove.
5768         (TTYPE_TABLE): Update CPP_VSPACE entry.
5769
5770 2000-05-08  Richard Henderson  <rth@cygnus.com>
5771
5772         * flow.c (init_propagate_block_info): Watch out for conditional
5773         branch to next instruction, and thus one outgoing edge.
5774
5775         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5776         for global register variables; don't special case __[CD]TOR_LIST__;
5777         mind ggc_p for string allocation.
5778
5779 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5780
5781         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5782
5783 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5784
5785         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5786         i?86-*-msdosdjgpp* no longer uses fixincludes
5787         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5788         * fixinc/inclhack.sh:  deleted
5789         * fixinc/hackshell.tpl:  deleted
5790         * fixinc/inclhack.tpl:  deleted
5791         * fixinc/Makefile.in:  Remove dependencies on above
5792         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5793
5794 2000-05-08  Andreas Jaeger  <aj@suse.de>
5795
5796         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5797         support.
5798
5799 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5800
5801         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5802         substitutions.
5803
5804 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5805
5806         * cpplex.c: Move new lexer definitions and prototypes
5807         to top.  Conditional include these and the code if
5808         NEW_LEXER is defined.  Rename functions whose names
5809         clash if this code included.
5810
5811 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5812
5813         * rtl.def (COND_EXEC): Clarify.
5814
5815         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5816         same fashion as zero_extendsidi2.
5817
5818 2000-05-06  Richard Henderson  <rth@cygnus.com>
5819
5820         * config/ia64/ia64.c (predicate_operator): New.
5821         (ia64_print_operand): Handle 'J'.
5822         (rtx_needs_barrier): Handle COND_EXEC.
5823         * config/ia64/ia64.h (BRANCH_COST): Define.
5824         (PREDICATE_CODES): Update.
5825         * config/ia64/ia64.md: Docuement used unspec values.
5826         (attr predicable): New.
5827         (movxf, movxf_internal): New.
5828         (extendsfdf2): Don't comment out nop.
5829         (floatdidf2): Remove.
5830         (truncxfsf2, truncxfdf2, floatdixf2): New.
5831         (abssi2, absdi2): Put the neg in the "true" slot.
5832         (conditional branch instructions): Mark not predicable.
5833         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5834         (abs*_internal): Likewise.
5835         (alloc, set_bsp): Mark not predicable.
5836         (barrier, insn_group_barrier, flush_cache): Likewise.
5837         (define_cond_exec): New.
5838
5839 2000-05-06  Richard Henderson  <rth@cygnus.com>
5840
5841         * c-decl.c: Include "tm_p.h".
5842
5843         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5844         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5845         (ia64_expand_op_and_fetch): Declare.
5846         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5847         (setjmp_operand): Constify variables for XSTR.
5848         (ia64_encode_section_info): Likewise.
5849         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5850         values to int.
5851         (ia64_asm_output_external): Constify name.
5852         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5853         (process_for_unwind_directive): Provide switch default.
5854         (ia64_expand_compare_and_swap): Remove unused variables.
5855         (ia64_expand_builtin): Likewise.
5856         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5857         for printing.
5858
5859         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5860         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5861         (shift_count_operand, shift_32bit_count_operand): Likewise.
5862         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5863         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5864         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5865         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5866         (ia64_expand_builtin): Likewise.
5867         (call_multiple_values_operation): Make dest_regno unsigned.
5868
5869 2000-05-06  Richard Henderson  <rth@cygnus.com>
5870
5871         * rtl.def (DEFINE_COND_EXEC): New.
5872         * md.texi: Document it.
5873
5874         * gensupport.c (input_file): Remove.
5875         (struct queue_elem): Add lineno.
5876         (rtx_ready_queue): Remove.
5877         (errors): New.
5878         (predicable_default): New.
5879         (predicable_true, predicable_false): New.
5880         (define_attr_queue, define_attr_tail): New.
5881         (define_insn_queue, define_insn_tail): New.
5882         (define_cond_exec_queue, define_cond_exec_tail): New.
5883         (other_queue, other_tail): New.
5884         (queue_pattern): New.
5885         (process_rtx): Add patterns to the appropriate queues.
5886         (is_predicable, identify_predicable_attribute): New.
5887         (n_alternatives, collect_insn_data): New.
5888         (alter_predicate_for_insn, alter_test_for_insn): New.
5889         (shift_output_template, alter_output_for_insn): New.
5890         (process_one_cond_exec, process_define_cond_exec): New.
5891         (init_md_reader): Read the entire file.  Process define_cond_exec.
5892         (read_md_rtx): Return elements from the queues.
5893
5894 2000-05-06  Richard Henderson  <rth@cygnus.com>
5895
5896         * flow.c (mark_set_1): Don't update conditional life info
5897         if the register is not_dead.
5898
5899 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5900
5901         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5902         (mostlyclean): Also delete fixincl, fixinc.sh, and
5903         specs.ready, and make clean in the fixinc subdir.
5904
5905 2000-05-06  Richard Henderson  <rth@cygnus.com>
5906
5907         * Makefile.in (gensupport.o): Compile for the host.
5908         (host-prefix gensuuprt.o): Remove.
5909         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5910         (genattrtab.o): Likewise.
5911         (gencodes.o): Depend on gensupport.h.
5912         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5913         (genpeep.o, genattr.o, genoutput.o): Likewise.
5914
5915         * gensupport.c (obstack, rtl_obstack): New.
5916         (init_md_reader): Initialize rtl_obstack.
5917         * gensupport.h (rtl_obstack): Declare.
5918         (message_with_line): Declare.
5919
5920         * genattr.c: Remove all traces of obstack manipulation.
5921         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5922         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5923
5924         * genattrtab.c (obstack, rtl_obstack): Remove.
5925         (main): Don't init rtl_obstack.
5926         * genflags.c: Likewise.
5927
5928         * genrecog.c (message_with_line): Move ...
5929         * gensupport.c: ... here.
5930
5931 2000-05-06  Richard Henderson  <rth@cygnus.com>
5932
5933         * c-typeck.c (build_c_cast): Remove dead code.
5934
5935 2000-05-06  Richard Henderson  <rth@cygnus.com>
5936
5937         * flow.c (split_edge): Don't allocate global_live_at_start for
5938         the new block unless the old blocks had them as well.
5939
5940         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5941
5942         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5943         test_bb if a or b uses x.
5944
5945 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5946
5947         * cpphash.h: Remove conditional #define of __extension__.
5948         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5949         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5950         (ENABLE_RTL_CHECKING only).
5951         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5952         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5953         (ENABLE_TREE_CHECKING only).
5954         * varray.h: Add __extension__ to VARRAY_CHECK macro
5955         (ENABLE_CHECKING only).
5956
5957 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5958
5959         Use new tail-calling mechanism on ARM.
5960         * arm.md (sibcall, sibcall_value): New expands.
5961         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5962         (tailcalling peepholes): Delete.
5963         (push_multi): Simplify.
5964         * arm.c (lr_save_eliminated): Delete definition.
5965         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5966         (output_return_instruction): Remove checks on lr_save_eliminated.
5967         (output_arm_prologue): Remove old tail-calling code.
5968         (arm_output_epilogue): New parameter, really_return.  All callers
5969         changed.  Handle tail-calling epilogues.
5970         * arm.h (lr_save_eliminated): Delete declaration.
5971         (frame_pointer_needed): Delete declaration.
5972         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5973
5974         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5975         TARGET_ARM.
5976         * arm.c (thumb_code): Define it.
5977         (arm_override_options): Set it.
5978         * arm.h (thumb_code): Declare it.
5979
5980 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5981
5982         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5983
5984 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5985
5986         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5987         bogus clobber to insns.
5988         (load_multiple_operation, store_mulitple_operation): Don't check
5989         for it.
5990         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5991
5992         * arm.md (and_scc, ior_scc): Add missing mode.
5993
5994         * arm.md (call_value_symbol): Remove predicate from op2.
5995
5996         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5997
5998 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5999
6000         * expr.c (get_subtarget): New function.
6001         (force_operand, expand_expr, do_store_flag): Use it.
6002
6003         * toplev.c (compile_file): Don't take strlen of NAME if null.
6004
6005 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
6006
6007         * xcoffout.c (xcoff_current_include_file,
6008         xcoff_current_function_file, xcoff_lastfile): Constify char *.
6009         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
6010         char *'.
6011         (xcoffout_declare_function): Make name 'const char *'.
6012         (xcoffout_end_epilogue): Make fname 'const char *'
6013         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
6014         xcoffout_declare_function, xcoffout_source_line): Match above.
6015
6016         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
6017         -maix64 is error.
6018         * rs6000.c (print_operand): Fix lossage typo.
6019         (output_cbranch): Remove "cr" decoration for now.
6020         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
6021
6022 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
6023
6024         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
6025         constant count.
6026
6027 2000-05-05  Bruce Korb  <bkorb@gnu.org>
6028
6029         * fixinc/genfixes: Improve the matching for make target names
6030
6031 2000-05-05  Catherine Moore  <clm@cygnus.com>
6032
6033         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
6034         attribute to the decl.
6035         * c-decl.c (pushdecl): Propagate the USED attribute to the
6036         type copy.
6037
6038 2000-05-05  Richard Henderson  <rth@cygnus.com>
6039
6040         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
6041         same way emit_group_load does.
6042
6043 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
6044
6045         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
6046
6047         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
6048         (main): Likewise.
6049
6050 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
6051
6052         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
6053
6054 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
6055
6056         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
6057         to support -shared, on platforms with dynamic libraries.
6058
6059 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
6060
6061         * system.h (S_ISBLK): Provide fallback definition.
6062
6063 2000-05-05  Geoff Berry  <geoffb@bops.com>
6064
6065         * extend.texi (Extended Asm): Document inability to give asm
6066         statements access to condition codes.
6067
6068 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
6069
6070         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
6071         as arg 2 of UNIQUE_SECTION.
6072
6073 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
6074
6075         * predict.c: Remove May 4 change.
6076         * bb-reorder.c (make_reorder_chain): Do not perform block movement
6077         if we have predicted the branch at 50-50 probability.
6078
6079 2000-05-05  Richard Henderson  <rth@cygnus.com>
6080
6081         * flow.c (init_propagate_block_info): Fix merge error
6082         in HAVE_conditional_execution code.
6083
6084 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
6085
6086         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
6087         shift cycle for unknown shift count. Also generates dec + brpl.
6088         (ashlqi3_out): Don't generate dec + brpl which now generates by
6089         `out_shift_with_cnt'.
6090         (ashlhi3_out): Likewise.
6091         (ashlsi3_out): Likewise.
6092         (ashrqi3_out): Likewise.
6093         (ashrhi3_out): Likewise.
6094         (ashrsi3_out): Likewise.
6095         (lshrqi3_out): Likewise.
6096         (lshrhi3_out): Likewise.
6097         (lshrsi3_out): Likewise.
6098
6099 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
6100
6101         * gcc.c (free_split_directories): Correct typo in explanation
6102         of make_relative_prefix.
6103
6104 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6105
6106         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
6107         comparison codes to branch_comparison_operator.
6108
6109 2000-05-04  Richard Henderson  <rth@cygnus.com>
6110
6111         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
6112
6113 2000-05-04  Richard Henderson  <rth@cygnus.com>
6114
6115         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
6116         (DPBIT_FUNCS): Remove _sf_to_usi.
6117         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
6118
6119         * ifcvt.c (noce_process_if_block): Fail if A or B modified
6120         between condition and jump.
6121
6122         * libgcc2.c (near eh_context_specific): Comment #endif string.
6123         * longlong.h: Don't use strings with embedded newlines.
6124
6125 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6126
6127         * config/rs6000/rs6000-protos.h: Add output_cbranch.
6128         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
6129         (print_operand): Delete %t and %T codes.
6130         (output_cbranch): New function.  Support branch prediction.
6131         * config/rs6000/rs6000.md: Use output_cbranch for
6132         conditional branches and returns.
6133
6134 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
6135
6136         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
6137         * stor-layout.c (place_field): Likewise.
6138         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
6139         * expr.c (store_expr): Make align unsigned.
6140         * explow.c (plus_constant_wide): Make low words unsigned.
6141         * expmed.c (choose_multiplier): Likewise.
6142         * fold-const.c (fold):  Likewise.
6143         * tree.h (build_int_2): Likewise.
6144         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
6145         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
6146         (init_emit): Change cast to unsigned char*.
6147         * varasm.c (compare_constant_1): Add cast to char*.
6148         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
6149         * reload1.c (reload): Likewise.
6150
6151         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
6152
6153 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
6154
6155         * predict.c (estimate_probability): If no prediction was found, then
6156         predict the successor that is the next physical block (if such a
6157         successor exists).
6158
6159 2000-05-04  Richard Henderson  <rth@cygnus.com>
6160
6161         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
6162
6163 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6164
6165         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
6166
6167 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
6168
6169         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
6170         attribute macros from here ...
6171         (CPP_SPEC): to here.
6172         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
6173         (CPP_SPEC): Likewise.
6174         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
6175
6176         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
6177         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
6178
6179 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180
6181         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
6182
6183         * diagnostic (vbuild_message_string, build_message_string,
6184         build_location_prefix, output_get_prefix, init_output_buffer,
6185         output_notice, vline_wrapper_message_with_location,
6186         v_message_with_decl, default_print_error_function): De-constify.
6187         (set_real_maximum_length): Prototype.
6188
6189         * diagnostic.h (struct output_buffer, init_output_buffer,
6190         output_get_prefix, output_set_prefix): De-constify.
6191
6192         * function.c (init_function_start): Constify.
6193
6194         * gensupport.c (remove_constraints, process_rtx): Prototype.
6195
6196         * gthr-posix.h: Indent uses of #pragma.
6197
6198         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
6199         Prototype.
6200
6201         * predict.c (find_expected_value): Delete prototype.
6202         (expected_value_to_br_prob): Initialize variable `ev_reg'.
6203
6204         * sbitmap.h (debug_sbitmap): Prototype.
6205
6206         * ssa.c (compute_coalesced_reg_partition): Prototype.
6207
6208         * stor-layout.c (debug_rli): Prototype.
6209
6210         * tree.h (round_down): Prototype.
6211         (init_function_start): Constify.
6212
6213 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
6214
6215         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
6216         (overly conservative).  Change extern inline wrappers to
6217         static inline, define them always, use PARAMS properly.
6218         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
6219         whitespace warnings for \f and \v at the beginning of a line.
6220
6221 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
6222
6223         * haifa-sched.c (schedule_insns): Free the flow edge list when it
6224         is no longer needed
6225
6226 2000-05-04  Bruce Korb  <bkorb@gnu.org>
6227
6228         * fixincl/inclhack.def: added broken_cabs -
6229         Remove `extern double cabs' declarations from math.h
6230         * fixincl/inclhack.sh: regen
6231         * fixincl/fixincl.x: regen
6232         * fixincl/fixincl.c: Remove BOGOSITY code
6233         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
6234
6235 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6236
6237         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
6238         MEM_ALIAS_SET.
6239         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
6240         when calling MEM_COPY_ATTRIBUTES.
6241         * emit-rtl.c (operand_subword, change_address): Likewise.
6242         * explow.c (stabilize): Likewise.
6243         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
6244         * integrate.c (copy_rtx_and_substitute): Likewise.
6245         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
6246         when calling MEM_COPY_ATTRIBUTES.
6247         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
6248         Likewise.
6249         * cse.c (gen_lowpart_if_possible): Likewise.
6250         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
6251         * optabs.c (gen_move_insn): Likewise.
6252         * recog.c (validate_replace_rtx_1): Likewise.
6253         * simplify-rtx.c (add_mem_for_addr): Likewise.
6254         * stmt.c (expand_anon_union_decl): Likewise.
6255         * config/arm/arm.md: Likewise.
6256         * config/h8300/h7300.c (fix_bit_operand): Likewise.
6257         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
6258         (block_move_no_loop, block_move_sequence): Likewise.
6259         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
6260         * config/alpha/alpha.c (get_aligned_mem): Likewise.
6261         Clear MEM_ALIAS_SET.
6262         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
6263         MEM_COPY_ATTRIBUTES.
6264
6265 2000-05-03  Robert Lipe <robertlipe@usa.net>
6266
6267         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
6268         to suppress libgcc1.
6269         (i[34567]86-*-sco3.2v5*) Likewise.
6270         (i[34567]86-*-sco3.2v4*) Likewise.
6271         (i[34567]86-*-sco) Likewise.
6272         (i[34567]86-*-solaris2) Likewise.
6273         (i[34567]86-*-sysv5*) Likewise.
6274         (i[34567]86-*-sysv4*) Likewise.
6275         (i[34567]86-*-udk*) Likewise.
6276         (i[34567]86-*-sysv*) Likewise.
6277
6278 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6279
6280         * cpphash.h (U): New define, to correct type of string constants.
6281         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
6282         routines, to do casts when passing unsigned strings to libc.
6283         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
6284
6285         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
6286         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
6287         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
6288         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
6289         second argument an U_CHAR *.
6290
6291         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
6292         length field, clean up initializer.
6293         (ISTABLE): Add __extension__ to designated-
6294         initializers version.
6295         * cpplex.c (CHARTAB): Likewise.
6296
6297         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
6298         case so the file won't be empty.
6299
6300 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
6301
6302         * bb-reorder.c (struct reorder_block_def): Member succ removed.
6303         (REORDER_BLOCK_SUCC): Removed.
6304         (enum reorder_skip_type): Removed.
6305         (skip_insns_between_block): Renamed to skip_insns_after_block.
6306         Removed second argument. Removed dead code and cleaned up.
6307         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
6308         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
6309         second parameter to skip_insns_after_block.
6310
6311 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6312
6313         * tree.c (staticp, case LABEL_DECL): New case.
6314
6315 2000-05-03  Richard Henderson  <rth@cygnus.com>
6316
6317         * Makefile.in (start.encap): Do not depend on LIBGCC1.
6318
6319         * mklibgcc1.in: Fix typo last change.
6320
6321 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6322
6323         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
6324         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
6325         (GCC_CFLAGS): Use it.
6326         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
6327         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
6328         objc/Make-lang.in: Use it.
6329
6330 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
6331
6332         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
6333
6334 2000-05-03  Richard Henderson  <rth@cygnus.com>
6335
6336         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
6337         LIBGCC1 empty with libgcc1.null.
6338
6339 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
6340
6341         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
6342         change.
6343
6344 2000-05-03  Greg McGary  <gkm@gnu.org>
6345
6346         * tree.h (tree_common): Add bounded_flag member.  Remove
6347         inaccurate comment about number of remaining bits.
6348         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
6349         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
6350         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
6351         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
6352         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
6353         (TYPE_QUAL_BOUNDED): New constant.
6354         (TYPE_QUALS): Handle bounded qualifier.
6355         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
6356         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
6357         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
6358         TYPE_AMBIENT_BOUNDEDNESS): New macros.
6359         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
6360         (tree_type): Add pointer_depth member.  Remove
6361         inaccurate comment about number of remaining bits.
6362         (DECL_POINTER_DEPTH): Add macro.
6363         (tree_decl): Add pointer_depth member.
6364
6365 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
6366
6367         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
6368         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
6369         (lshrhi3_out): Likewise.
6370         (ashrsi3_out): bugfix in shift by 8.
6371         (test_hard_reg_class): New function.
6372         * config/avr/avr.md: Bugfix inside conditions in peepholes.
6373         (ashlhi3): removed define_expand of this pattern.
6374         (*ashlhi3_insn): renamed to ashlhi3.
6375         (ashlsi3): removed define_expand of this pattern.
6376         (*ashlsi3_insn): renamed to ashlsi3.
6377         (ashrqi3): removed define_expand of this pattern.
6378         (*ashrqi3_insn): renamed to ashrqi3.
6379         (ashrhi3): removed define_expand of this pattern.
6380         (*ashrhi3_insn): renamed to ashrhi3.
6381         (ashrsi3): removed define_expand of this pattern.
6382         (*ashrsi3_insn): renamed to ashrsi3.
6383         (lshrhi3): removed define_expand of this pattern.
6384         (*lshrhi3_insn): renamed to lshrhi3.
6385         (lshrsi3): removed define_expand of this pattern.
6386         (*lshrsi3_insn): renamed to lshrsi3.
6387
6388 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
6389
6390         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
6391         inclusion of "system.h".
6392
6393 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
6394
6395         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
6396         TREE_ASM_WRITTEN.
6397
6398 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
6399
6400         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
6401         if -mauto-pic is on.
6402         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
6403         -mconstant-gp is in effect and function-descriptors are being used
6404         to make indirect calls.
6405         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
6406         (MASK_AUTO_PIC): Ditto.
6407         (TARGET_CONST_GP): Ditto.
6408         (TARGET_AUTO_PIC): Ditto.
6409         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
6410         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
6411         -mno-pic is in effect.
6412         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
6413         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
6414         -mauto-pic is in effect.
6415         (gprel64_offset): New pattern.
6416         (load_gprel64): Ditto.
6417         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
6418         -mconstant-gp is in effect, no need to preserve gp around direct
6419         calls.
6420         (call_value): Ditto.
6421         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
6422         (FUNCTION_PROFILER): Define.
6423         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
6424         @fptr() directive when -mno-pic or -mauto-pic is in effect.
6425         (ASM_OUTPUT_DESTRUCTOR): Ditto.
6426
6427 2000-05-03  Richard Henderson  <rth@cygnus.com>
6428
6429         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
6430         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
6431         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
6432         (mklibgcc, libgcc.mk): New targets.
6433         (libgcc.a): Use libgcc.mk.
6434         (stmp-multilib): Likewise.
6435         (stmp-multilib-sub): Remove.
6436         (mostlyclean): Don't delete libgcc2 temp files.
6437         * configure.in (AC_PROG_CC_C_O): Add.
6438         (NO_MINUS_C_MINUS_O): Substitute it.
6439         (all_outputs): Add mklibgcc.
6440         * mklibgcc.in: New file.
6441
6442 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6443
6444         * cppexp.c (op_t): Make an int.
6445
6446         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
6447
6448         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
6449
6450         * gensupport.c (process_rtx): Fix macros used.
6451
6452 2000-05-03  Richard Henderson  <rth@cygnus.com>
6453
6454         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
6455         call-clobbered registers of a call.
6456
6457 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6458
6459         * gensupport.c: New file.
6460         * gensupport.h: New file.
6461         * Makefile.in (HOST_RTL): Depend on gensupport.
6462         (gensupport.o) New rule.
6463         * genattr.c: Use gensupport for reading .md files.
6464         * genattrtab.c: Ditto.
6465         * gencodes.c: Ditto.
6466         * genconfig.c: Ditto.
6467         * genemit.c: Ditto.
6468         * genextract.c: Ditto.
6469         * genflags.c: Ditto.
6470         * genopinit.c: Ditto.
6471         * genoutput.c: Ditto.
6472         * genpeep.c: Ditto.
6473         * genrecog.c: Ditto.
6474         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
6475         * md.texi (Insn Splitting): Document define_insn_and_split.
6476
6477 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6478
6479         * flow.c (verify_flow_info): Added two more sanity checks. The
6480         first checks that the blocks are numbered consecutively. The second
6481         checks that n_basic_blocks is actually equal to the number of
6482         basic blocks in the insn chain.
6483
6484 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6485
6486         * cpplib.h: Add accessor macros for token lists.
6487         * cpplib.c, cpphash.c, cpplex.c: Use them.
6488
6489 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6490
6491         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6492         memory usage if not in a function.
6493         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6494         return address if static.
6495
6496 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6497
6498         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6499         whether address may trap.
6500
6501 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6502
6503         * bb-reorder (chain_reorder_blocks): Changed code to test for
6504         EDGE_FALLTHRU rather than making erroneous assumption that the
6505         first outgoing edge is the fall-through edge.
6506
6507 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6508
6509         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6510         ABI for varargs, across all MIPS. This is incompatible because the
6511         va_list (__builtin_va_list) structure is different, so a compilation
6512         unit passing a va_list and a compilation unit being passed one, should
6513         both be compiled with the same ABI. (The old structure had two
6514         pointers, now it has three.)
6515
6516 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6517
6518         * bb-reorder.c (struct reorder_block_def): Remove members end,
6519         block_begin, and block_end.
6520         (REORDER_BLOCK_OLD_END): Delete.
6521         (REORDER_BLOCK_BEGIN): Delete.
6522         (REORDER_BLOCK_END): Delete.
6523         (chain_reorder_blocks): Remove dead code.
6524
6525 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6526
6527         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6528         notes as the end of a basic block before deleting.
6529
6530 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6531
6532         * final.c (final_start_function): Fix spelling of "necessary".
6533
6534 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6535
6536         * toplev.c (debug_ignore_block): Return int.
6537         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6538         * toplev.h, dwarf2out.h: Adjust.
6539         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6540
6541         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6542         * toplev.c, final.c, rtl.h: Adjust.
6543
6544 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6545
6546         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6547         * configure.in: Look for makeinfo in the unified tree, then
6548         for a system makeinfo which is sufficiently new.
6549         * Makefile.in: If configure says makeinfo is too old, don't
6550         build or install Info documentation.
6551
6552 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6553
6554         * cpphash.c (collect_params): Fix off-by-one error.
6555         (dump_hash_helper): Dump all four macro nodetypes.
6556
6557 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6558
6559         * cpphash.c (trad_stringify): Adjust p after stringification as
6560         well.
6561
6562 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6563
6564         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6565         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6566
6567         * cppfiles.c (file_cleanup): Delete.
6568         * cpphash.c (macro_cleanup): Delete.
6569         (collect_objlike_expansion, collect_funlike_expansion,
6570         macarg, scan_arguments): Remove CPP_POP case.
6571
6572         * cpplex.c (null_cleanup): Delete.
6573         (cpp_pop_buffer): Do the work that was done in the cleanups
6574         here.  Call _cpp_unwind_if_stack from here.
6575         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6576         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6577         stack is the buffer _below_ the one we stacked.
6578         (cpp_get_token): Always pop an exhausted buffer.  Return
6579         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6580         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6581         increment the line number.
6582         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6583
6584         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6585         we see CPP_EOF and the top of stack is the buffer _below_ the
6586         one we stacked.
6587         * scan-decls.c: Likewise.
6588
6589 2000-05-02  Andrew Haley  <aph@cygnus.com>
6590
6591         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6592         where this function is called for the second time on a decl that
6593         has had its section info changed in such a way as to move it out
6594         of small data/bss.
6595         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6596
6597 2000-05-01  Richard Henderson  <rth@cygnus.com>
6598
6599         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6600         the sequence we're moving, not to merge_bb->head.
6601
6602 2000-05-01  Richard Henderson  <rth@cygnus.com>
6603
6604         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6605         reference to alpha/t-linux.
6606         (alpha*-*-linux-gnu*): Likewise.
6607         * configure: Rebuild.
6608
6609         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6610
6611         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6612         if not in SSA form.
6613
6614         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6615
6616 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6617
6618         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6619         TREE_THIS_VOLATILE.
6620
6621 2000-05-01  Richard Henderson  <rth@cygnus.com>
6622
6623         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6624         emit_conditional_move.
6625
6626 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6627
6628         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6629         as the dynamic linker.
6630
6631 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6632
6633         * cppfiles.c (open_include_file): Open file in blocking mode.
6634         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6635         Only exclude block devices and directories.
6636
6637         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6638         static.  Allocate the hashnode and its string in the same
6639         block of memory.
6640         (del_HASHNODE): Don't free h->name.
6641         (_cpp_lookup): If there is no entry for this string, create
6642         one, of type T_VOID.
6643         (_cpp_lookup_slot): Delete.
6644         * cpphash.h: Update prototypes.
6645
6646         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6647         not hp == NULL.
6648         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6649         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6650         node here, just fill in the value field properly.  "Delete"
6651         entries by setting the value field to T_VOID.  Check for
6652         hp->type == T_VOID, not hp == NULL.
6653
6654         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6655         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6656         hashtab.h.
6657
6658 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6659
6660         * config/mn10300/mn10300.c (print_operand_address): Do not add
6661         zero to SP.
6662
6663         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6664         adjusted by less than 256 bytes, use ret regardless of having any
6665         callee-saved register to restore.
6666
6667 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6668
6669         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6670
6671 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6672
6673         * config/i386/djgpp.h (INT_ASM_OP): Define.
6674         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6675         (ASM_WEAKEN_LABEL): Define.
6676         (MASK_BNU210): Define.
6677         (SUBTARGET_SWITCHES): Define.
6678         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6679         (MAKE_DECL_ONE_ONLY): Define.
6680         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6681
6682 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6683
6684         * i386/cygwin.h (INT_ASM_OP): Define.
6685
6686 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6687
6688         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6689         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6690
6691 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6692
6693         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6694         __tmp_reg__ and __zero_reg__ initialization.
6695
6696 2000-04-30  Richard Henderson  <rth@cygnus.com>
6697
6698         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6699
6700         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6701         referenced bewteen the condition and the jump.  Don't delete
6702         anything but the jump.
6703
6704 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6705
6706         * bb-reorder.c (scope_def): New struct.
6707         (scope_forest_info): New struct.
6708         (struct reorder_block_def): New member "scope".
6709         (REORDER_BLOCK_SCOPE): New macro.
6710         (relate_bbs_with_scopes): New function and prototype.
6711         (make_new_scope): Likewise.
6712         (build_scope_forest): Likewise.
6713         (remove_scope_notes): Likewise.
6714         (insert_intra_1): Likewise.
6715         (insert_intra_bb_scope_notes): Likewise.
6716         (insert_inter_bb_scope_notes): Likewise.
6717         (rebuild_scope_notes): Likewise.
6718         (free_scope_forest_1): Likewise.
6719         (free_scope_forest): Likewise.
6720         (dump_scope_forest): Likewise.
6721         (dump_scope_forest_1): Likewise.
6722         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6723         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6724         block.
6725         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6726         and remove_scope_notes before reordering is done. Added calls to
6727         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6728         after reordering is done.
6729
6730 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6731
6732         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6733         removed two stale entries (defined away with OLD_CPP).
6734         * fixinc/inclhack.sh: regen
6735         * fixinc/fixincl.x: regen
6736
6737 2000-04-30  Richard Henderson  <rth@cygnus.com>
6738
6739         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6740         from the last insn in the sequence.
6741
6742 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6743
6744         * cpplex.c (cpp_idcmp): New function.
6745         * cpplib.h: Prototype it.
6746         * scan_decls.c (scan_decls): Use it to inspect token names.
6747         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6748         the file being run through the preprocessor.
6749         (check_macro_names): Provide length of token to cpp_defined.
6750
6751         * Makefile.in: Remove stale warning message.
6752
6753         * cppfiles.c (redundant_include_p): Provide length of token to
6754         cpp_defined.
6755         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6756         values are unsigned int.
6757         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6758         (_cpp_lookup_slot): Do not calculate the hash, either.
6759         * cpphash.h: Update prototypes.
6760         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6761         Hashes are unsigned int.  Calculate hash here, pass by value
6762         to _cpp_lookup_slot.
6763
6764 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6765
6766         * simplify-rtx.c (check_value_useless): Delete function.
6767         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6768         by hand.
6769         (cselib_invalidate_regno): Likewise.
6770         (cselib_invalidate_mem_1): Likewise.
6771         (references_value_p): Recognize useless values by the fact that they
6772         have no locations.
6773         (discard_useless_values): Likewise.
6774         (cselib_record_set): This may turn a useless value
6775         into a useful one.
6776
6777 2000-04-30  Richard Henderson  <rth@cygnus.com>
6778
6779         * config/d30v: New port.
6780
6781         * configure.in (d30v-*): Set fp format.
6782         * configure: Rebuild.
6783
6784 2000-04-30  Richard Henderson  <rth@cygnus.com>
6785
6786         * ifcvt.c: New file.
6787         * Makefile.in (OBJS): Add it.
6788         (ifcvt.o): New target.
6789         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6790         and conditional arithmetic.
6791         (find_insert_position): Remove.
6792         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6793         * toplev.c (DFI_ce, DFI_ce2): New.
6794         (dump_file): Add ce and ce2 dumps.
6795         (rest_of_compilation): Run if_convert a couple o times.  Set
6796         cse_not_expected after cse2.  Don't set no_new_pseudos until
6797         after sched1 or recompute_reg_usage.
6798
6799 2000-04-30  Richard Henderson  <rth@cygnus.com>
6800
6801         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6802         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6803
6804 2000-04-30  Richard Henderson  <rth@cygnus.com>
6805
6806         * flow.c (struct reg_cond_life_info): New.
6807         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6808         (init_propagate_block_info): Initialize them.
6809         (free_propagate_block_info): Destruct them.
6810         (mark_set_1): Consider conditional life before killing a register.
6811         (mark_regno_cond_dead): New.
6812         (free_reg_cond_life_info): New.
6813         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6814         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6815         (mark_used_reg): Record conditional life.
6816
6817         * haifa-sched.c (schedule_insns): Disable death counting
6818         sanity check for HAVE_conditional_execution.
6819
6820 2000-04-30  Richard Henderson  <rth@cygnus.com>
6821
6822         * Makefile.in (TIMEVAR_H): New.
6823         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6824         (timevar.h): Remove rule.
6825
6826 2000-04-29  Richard Henderson  <rth@cygnus.com>
6827
6828         * config/alpha/crtend.asm: Use C comments instead of #.
6829         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6830
6831         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6832
6833 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6834
6835         * cpphash.h (enum node_type: Take out T_MCONST.
6836         (union hashval): Move into struct hashnode.
6837         (struct hashnode): Pack tighter.  Remove file, line, col
6838         members.
6839         * cpphash.c: Constify most of the macro-definition structures.
6840         (struct definition): Replace by struct object_defn
6841         and struct funct_defn.  Put file, line, column information
6842         here.  All users updated to match.
6843         (_cpp_create_definition, _cpp_macroexpand): Remove special
6844         case for #define WORD OTHERWORD.
6845         * cpplib.c (do_undef): Remove T_MCONST case.
6846
6847         * cpphash.h: Move struct reflist, struct definition, and the
6848         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6849         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6850         * cpphash.c (_cpp_free_definition): Free data pointed to by
6851         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6852         (_cpp_create_definition, del_HASHNODE): Just call
6853         _cpp_free_definition to clear out a hashnode.
6854         * cpplib.c (do_pragma_poison): Likewise.
6855
6856 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6857
6858         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6859         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6860         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6861         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6862         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6863         REGNO_AM33_P): Redefine in terms of the new macros.
6864         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6865         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6866         STRUCT_VALUE): Likewise.
6867         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6868         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6869
6870 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6871
6872         * regmove.c (struct record_stack_memrefs_data): New.
6873         (record_stack_memrefs): New function.
6874         (combine_stack_adjustments_for_block): Use it.
6875
6876 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6877
6878         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6879         use special_function_p to detect alloca.
6880
6881 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6882
6883         * gcc.texi: Fixes for makeinfo 4.0 --html.
6884
6885 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6886
6887         * pcp.h: Delete file.
6888
6889 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6890
6891         * h8300.c (function_epilogue): Clean up flags when the last insn
6892         in a function is a barrier.
6893
6894 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6895
6896         * configure.in (sparc-hal-solaris2*): protect [] glob from
6897         my expansion.
6898         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6899         rather than hard-coded constants in target_cpu_default2.
6900         * configure: Regenerate.
6901
6902 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6903
6904         * tree.c (get_callee_fndecl): Extract the initial value from
6905         a readonly decl.
6906
6907 2000-04-28  Richard Henderson  <rth@cygnus.com>
6908
6909         * varasm.c (record_constant_1): Record the CODE_LABEL when
6910         taking the address of a LABEL_REF.
6911
6912 2000-04-28  Richard Henderson  <rth@cygnus.com>
6913             Jan Hubicka  <jh@suse.cz>
6914
6915         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6916         adjustment; don't do the stack adjust.
6917         (expand_call): Call compute_argument_block_size right before
6918         allocating the block; update comment; don't do alignment sanity
6919         checking for sibling call; use args_size instead of
6920         unadjusted_args_size before args_size is adjusted.  Use
6921         combine_pending_stack_adjustment_and_call to compute stack adjust
6922         for must_preallocate case.
6923
6924         * expr.c (push_block): Remove shadow `temp' in inner scope.
6925
6926 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6927
6928         * toplev.c (rest_of_compilation): Call
6929         note_deferral_of_defined_inline_function even if the function
6930         can't be inlined.
6931
6932 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6933
6934         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6935
6936 2000-04-28  Richard Henderson  <rth@cygnus.com>
6937
6938         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6939
6940 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6941
6942         * timevar.c (init_timevar): DeANSIfy function definition.
6943
6944 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6945
6946         * Makefile.in (timevar.o): Depend on flags.h.
6947         * timevar.c (unused_stack_instances): New variable.
6948         (timevar_push): Take a timevar_stack_def from
6949         unused_stack_instances if available.
6950         (timevar_pop): Push the popped timevar_stack_def onto
6951         unused_stack_instances.
6952         (TIMEVAR_ENABLE): New macro.
6953         (timevar_def): Make standalone a 1-bit field.  Add field used.
6954         (get_time): Rename parameter to now.  Return after clearing it if
6955         not TIMEVAR_ENABLE.
6956         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6957         (timevar_pop): Likewise.
6958         (timevar_stop): Likewise.
6959         (timevar_push): Likewise.  Mark the timing variable as used.
6960         (timevar_start): Likewise.
6961         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6962         timevars that were never used.
6963
6964 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6965
6966         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6967         always TREE_READONLY.
6968
6969 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6970
6971         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6972         for call instruction with mode QImode.
6973
6974 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6975
6976         * Makefile.in (OBJS): Add timevar.o.
6977         (toplev.o): Depend on timevar.h.
6978         (ggc-simple.o): Likewise.
6979         (ggc-page.o): Likewise.
6980         (timevar.o): New rule.
6981         (timevar.h): New rule.
6982
6983         * timevar.h: New file.
6984         * timevar.c: Likewise.
6985         * timevar.def: Likewise.
6986
6987         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6988         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6989         throughout.
6990         (TIMEVAR): Remove macro.
6991         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6992         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6993         flow_time, combine_time, regmove_time, sched_time,
6994         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6995         sched2_time, dbr_sched_time, reorder_blocks_time,
6996         rename_registers_time, shorten_branch_time, stack_reg_time,
6997         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6998         all_time): Remove.
6999         (compile_file): Don't initialize time variables.  Call
7000         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
7001         of many calls to print_time.
7002         (rest_of_compilation): Add timing for reload_cse_regs.
7003         (get_run_time): Removed to timevar.c.
7004         (print_time): Likewise.
7005         (get_run_time): Implement using TV_TOTAL time variable.
7006         (print_time): Get total run time from get_run_time.
7007         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
7008         computing elapsed time explicitly.
7009         * ggc-simple.c (ggc_collect): Likewise.
7010         (gc_time): Remove declaration.
7011
7012 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
7013
7014         * calls.c (combine_pending_stack_adjustment_and_call): New function.
7015         (expand_call): Use it.
7016
7017 2000-04-27  Jan Hubicka  <jh@suse.cz>
7018
7019         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
7020         fields.
7021
7022 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7023
7024         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
7025         registers.
7026
7027 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7028
7029         * function.c (epilogue_done): Pass whole insn to record_insns.
7030
7031 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7032
7033         * cse.c (CSE_ADDRESS_COST): Remove.
7034         (find_best_addr): Add new parameter "MODE", use address_cost instead
7035         of CSE_ADDRESS_COST
7036         (address_cost): New.
7037         (fold_rtx): Update call of find_best_addr.
7038         * rtl.h (address_cost): Declare.
7039         * loop.c (general_induction_var): Add new parameter "MODE", use
7040         address_cost instead of ADDRESS_COST
7041         (init_loop): Use address_cost instead of ADDRESS_COST.
7042         (check_insn_for_givs): Update call of general_induction_var.
7043         (find_mem_givs): Likewise.
7044         (consec_sets_giv): Likewise.
7045         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
7046         * i386.c (ix86_address_cost): New.
7047         * i386-protos.h (ix86_address_cost): Declare.
7048
7049 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
7050
7051         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
7052         registers.
7053
7054 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7055
7056         * expr.c (store_expr): Use clear_storage instead of direct memset
7057         libcall.
7058
7059 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
7060
7061         * config/mn10300/mn10300.c (mn10300_address_cost): Test
7062         ASHIFT, AND and LABEL_REF.
7063
7064 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7065
7066         * invoke.texi (-foptimize-sibling-calls): Fix.
7067
7068 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7069
7070         * loop.c (load_mems)  Don't use hard registers for the hoisting.
7071
7072         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
7073         calculation; rename const_equiv array in the preconditioning code
7074         from loop_unroll to loop_unroll_precondition
7075
7076 2000-04-27  Richard Henderson  <rth@cygnus.com>
7077
7078         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
7079         add new_set.
7080         (propagate_one_insn): Clear it.  Don't update reg_live here.
7081         (init_propagate_block_info): Update for pbi member changes.
7082         (free_propagate_block_info): Likewise.
7083         (mark_set_1): Know that zero_extract, sign_extract, and
7084         strict_low_part don't kill their argument.  Alter hard subregs.
7085         Update new_set for non-CLOBBER sets.  Update reg_live.
7086         (find_auto_inc): Update reg_live, not new_dead.
7087         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
7088         to determine if the reg in question was set this insn.  Only update
7089         reg info with PROP_REG_INFO.
7090
7091 2000-04-26  Richard Henderson  <rth@cygnus.com>
7092
7093         * flow.c (allocate_reg_life_data): Set max_regno here ...
7094         (life_analysis): ... not here.
7095
7096         * flow.c (calculate_global_regs_live): Force stack pointer
7097         live at end.
7098
7099 2000-04-26  Richard Henderson  <rth@cygnus.com>
7100
7101         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
7102         commit change group changes.
7103         (invert_exp_1): Similarly.
7104         (redirect_exp, invert_exp): Use them.
7105         (redirect_jump_1): New.
7106         (invert_jump_1): New.
7107         (jump_optimize_1): Remove code subsumed by condexec.c.
7108         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
7109
7110 2000-04-26  Richard Henderson  <rth@cygnus.com>
7111
7112         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
7113
7114         * genconfig.c (main): Set all HAVE_foo to 1.
7115
7116         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
7117
7118 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
7119
7120         * invoke.texi: Document -fssa flag.
7121
7122 2000-04-26  Richard Henderson  <rth@cygnus.com>
7123
7124         * flow.c (count_reg_sets_1): Remove.
7125         (count_reg_sets, count_reg_references): Remove.
7126         (recompute_reg_usage): Implement with update_life_info.
7127         Reallocate life data.
7128
7129 2000-04-26  Richard Henderson  <rth@cygnus.com>
7130
7131         * flow.c (update_life_info): Consider blocks null to mean the
7132         universal set.
7133         (calculate_global_regs_live): Likewise.
7134         (life_analysis): Do that instead of collecting all_blocks.
7135
7136 2000-04-26  Richard Henderson  <rth@cygnus.com>
7137
7138         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
7139         a still-valid conditional jump.
7140
7141 2000-04-26  Richard Henderson  <rth@cygnus.com>
7142
7143         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
7144
7145         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
7146         * flow.c (calculate_loop_depth): Remove.
7147         * output.h (calculate_loop_depth): Don't declare.
7148         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
7149         inline; run estimate_probability at the same time.
7150
7151 2000-04-26  Neil Booth  <NeilB@earthling.net>
7152
7153         * cpplib.h: "~=" is not a single pp-token.
7154         * cpplex.c: Correct commentary.
7155
7156 2000-04-26  Richard Henderson  <rth@cygnus.com>
7157
7158         * flow.c (mark_set_1): New arguments code and flags; update all
7159         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
7160         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
7161         loop_depth when optimizing for size.  Do new_dead update after
7162         emitting REG_UNUSED notes.  Merge mark_set_reg code.
7163         (mark_set_reg): Remove.
7164         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
7165         arrange to not emit REG_UNUSED notes.
7166
7167 2000-04-26  Richard Henderson  <rth@cygnus.com>
7168
7169         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
7170         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
7171
7172 2000-04-26  Richard Henderson  <rth@cygnus.com>
7173
7174         * flow.c (propagate_one_insn): Break out from propagate_block.
7175         (init_propagate_block_info): Likewise.
7176         (free_propagate_block_info): Likewise.
7177         (propagate_block): Use them.  Export.
7178         * basic-block.h: Declare them all.
7179
7180 2000-04-26  Richard Henderson  <rth@cygnus.com>
7181
7182         * basic-block.h (life_analysis): Declare here ...
7183         * output.h: ... not here.
7184         * flow.c (life_analysis): Remove nregs parameter; replace
7185         remove_dead_code with flags.  Remove ssa dead code check.
7186         Only init alias analysis if we'll use it.
7187         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
7188         * ssa.c (convert_to_ssa): Likewise.
7189         (convert_from_ssa): Likewise.
7190         * toplev.c (rest_of_compilation): Likewise.
7191
7192 2000-04-26  Richard Henderson  <rth@cygnus.com>
7193
7194         * flow.c (flow_delete_block): Rename from delete_block.  Export.
7195         * basic-block.h (flow_delete_block): Declare.
7196
7197 2000-04-26  David S. Miller  <davem@redhat.com>
7198
7199         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
7200         taking a PATTERN of it.
7201
7202 2000-04-26  <NeilB@earthling.net>
7203
7204         * cpplex.c (spell_other, spell_char): Remove.
7205         (SPELL_CHAR): New.
7206         (token_spelling, trigraph_map): Use unsigned chars.
7207         (_cpp_lex_line): Tidy up the switch statement.
7208         * cpplib.h: Implement spell_char with spell_string.
7209         (C): New.
7210
7211 2000-04-26  <RodneyBrown@pmsc.com>
7212
7213         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7214         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7215
7216 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7217
7218         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
7219         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
7220         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
7221         dwarf2out_return_save, dwarf2out_return_reg,
7222         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
7223         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
7224         gen_compile_unit_die, dwarf2out_init): Constify a char*.
7225
7226         * dwarf2out.h (dwarf2out_init): Likewise.
7227
7228         * dwarfout.c (filename_entry, primary_filename, last_filename,
7229         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
7230
7231         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
7232         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
7233         dwarf2out_return_reg): Likewise.
7234
7235 2000-04-26  Andreas Jaeger  <aj@suse.de>
7236
7237         * extend.texi (Function Attributes): Fix description of pure
7238         attribute.
7239
7240 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7241
7242         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
7243         before calling rest_of_compilation.
7244
7245 2000-04-26  Andreas Jaeger  <aj@suse.de>
7246
7247         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
7248         last patch.
7249
7250 2000-04-25  Richard Henderson  <rth@cygnus.com>
7251
7252         * cse.c (cse_insn): Emit barrier after unconditional jump.
7253
7254         * calls.c (expand_call): Disable tail call generation once
7255         rtx_equal_function_value_matters is false.
7256
7257         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
7258         like EDGE_EH edges.
7259
7260 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
7261
7262         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
7263
7264         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
7265
7266         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
7267         is the primary DIE for a member function.
7268         (gen_decl_die): Call set_decl_origin_self here.
7269         * dwarfout.c (output_decl): And here.
7270         * integrate.c (output_inline_function): Not here.
7271         Don't clear DECL_INLINE until after calling rest_of_compilation.
7272         (set_decl_origin_self): No longer static.
7273         * tree.h: Add prototype.
7274         * toplev.c (note_deferral_of_defined_inline_function): Only write
7275         out abstract instance for actual inlines.
7276
7277 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
7278
7279         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
7280         EXTENDED_REGS only if TARGET_AM33.
7281         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
7282         SP_REGS to register allocation and reloading unless absolutely
7283         necessary.
7284         (movsi3): Remove special-case of adding non-constants to SP.
7285
7286 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7287
7288         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
7289         INCLUDES to search and does not provide any of its own.  Also it
7290         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
7291         parameters.  Also it does not call AC_DEFINE.
7292         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
7293         AC_DEFINE and provides for automatic entries for autoheader.
7294         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
7295
7296         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
7297         so we can pass -I flags and include gansidecl.h/system.h in this
7298         test.
7299
7300         * acconfig.h: Delete all NEED_DECLARATION_* entries.
7301
7302 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7303
7304         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7305         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7306         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
7307
7308         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7309         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7310         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
7311         for these macros.  Clean up spacing and linewraps.
7312
7313 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7314
7315         * calls.c (expand_call): Use get_callee_fndecl.
7316
7317         * print-tree.c (print_node): Print the chain of an _EXPR.
7318
7319 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
7320                           Jim Wilson  <wilson@cygnus.com>
7321                           Andrew Haley  <aph@cygnus.com>
7322
7323         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
7324         and gp save/restore problems.
7325         * config/ia64/crtend.asm: Add IA-64 unwind support.
7326         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
7327         in fr_pad_size calculation.
7328         (save_restore_insns): Move PR save area.  Correct uses of
7329         RTX_FRAME_RELATED_P.
7330         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
7331         (ia64_expand_epilogue): Add eh_epilogue support.
7332         (ia64_function_prologue): Emit .prologue directive.
7333         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
7334         (ia64_override_options): Set init_machine_status and
7335         mark_machine_status.
7336         (rtx_needs_barrier): Handle bsp reads and writes.
7337         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
7338         New static variables.
7339         (process_set, process_for_unwind_directive): New functions.
7340         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
7341         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
7342         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
7343         macros.
7344         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
7345         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
7346         (struct machine_function): Define.
7347         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
7348
7349 2000-04-25  Bruce Korb  <bkorb@gnu.org>
7350
7351         * fixinc/Makefile.in: make the removal of old programs more
7352         robust
7353         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
7354         install-bin and install-sh
7355
7356 2000-04-25  Nick Clifton  <nickc@cygnus.com>
7357
7358         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
7359         defined, define to return zero.
7360         (function_cannot_inline_p): If a function has any target
7361         specific attributes, then use the macro
7362         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
7363         whether it can be inlined.  If it cannot, issue a suitable
7364         explanation.
7365
7366         * tm.texi: Add a new node 'Inlining' to document the new macro
7367         FUNCTION_ATTRIBUTE_INLINABLE_P.
7368
7369 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
7370
7371         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
7372         commentary.
7373
7374 2000-04-25  Neil Booth  <NeilB@earthling.net>
7375
7376         Restore previous patch, plus the following fixes:
7377
7378         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
7379         flags, not CPP_OPEN_PAREN.
7380         * cpplex.c (expand_token_space, init_token_list,
7381         cpp_free_token_list): Put the dummy token at list->tokens[-1].
7382         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
7383
7384 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7385
7386         * config/i386/freebsd.h (INT_ASM_OP): Define.
7387
7388 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7389
7390         * loop.c (strength_reduce): Fix typo in the last checkin.
7391
7392 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7393
7394         * stor-layout.c (finalize_record_size): Simplify to use existing
7395         functions.
7396         (compute_record_mode): No longer static.
7397         * tree.h (compute_record_mode): New declaration.
7398
7399 2000-04-25  Neil Booth  <NeilB@earthling.net>
7400
7401         * Revert my patch below until cause of build failures
7402         determined.
7403
7404 2000-04-25  Richard Henderson  <rth@cygnus.com>
7405
7406         * combine.c (combine_instructions): Add missing argument
7407         to try_combine.
7408
7409         * toplev.c (rest_of_compilation): Delay sibcall optimization
7410         until after emit_eh_context.
7411
7412 2000-04-24  Nick Clifton  <nickc@redhat.com>
7413
7414         * combine.c (combine_instructions): Do not try to combine a
7415         sequence of insns when the second insn has been replaced by a
7416         note.
7417
7418 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
7419
7420         * gcc.c (load_specs): New static function.
7421         (read_specs): Use it.
7422
7423         * gcc.c (lookup_compiler): Make multiple passes for case
7424         insensitive filesystems.
7425
7426 2000-04-24  Neil Booth  <NeilB@earthling.net>
7427
7428         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
7429         * cpphash.h (_cpp_check_directive): new.
7430         * cpplex.c (handle_newline, cpp_free_token_list,
7431         init_trigraph_map, trigraph_ok, trigraph_replace,
7432         backslash_start, skip_block_comment, skip_line_comment,
7433         skip_whitespace, parse_name, parse_number, parse_string,
7434         copy_comment, _cpp_lex_line, spell_char, spell_string,
7435         spell_comment, spell_name, spell_other, _cpp_lex_file,
7436         _cpp_output_list): new.
7437         (expand_name_space): take length argument.
7438         (init_token_list): add comment list initialisation.
7439         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
7440         instead of HSPACE_BEFORE.
7441
7442         * cpplib.c (_cpp_check_directive): new
7443         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
7444         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
7445         (HSPACE_BEFORE): delete.
7446         (TTYPE_TABLE): rearrange.
7447         (struct cpp_toklist): update.
7448
7449 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7450
7451         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
7452         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
7453         argument form of AC_DEFINE.
7454
7455         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
7456         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
7457         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
7458         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
7459         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
7460
7461         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
7462
7463 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7464
7465         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
7466         deduced.h): Use -isystem, not -I, for including system headers.
7467
7468 2000-04-24  Nick Clifton  <nickc@cygnus.com>
7469
7470         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
7471         the source register is the frame pointer or arg pointer.
7472         (addsi3_small_int): Disallow if source register is the frame
7473         pointer or arg pointer.
7474
7475 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7476
7477         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7478         call to AC_MSG_RESULT.
7479
7480 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7481
7482         * invoke.texi: Correct grammatical errors, document
7483         -fno-gnu-keywords as identical to -fno-asm for C++.
7484
7485 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7486
7487         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7488         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7489         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7490         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7491         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7492
7493         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7494         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7495         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7496         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7497         new macros names.
7498
7499 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7500
7501         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7502         (pop_alignment): Likewise.
7503         (handle_pragma_token): Likewise.
7504
7505 2000-04-24  Robert Lipe <robertlipe@usa.net>
7506
7507         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7508
7509 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7510
7511         * combine.c (try_combine): Update reg_nonzero_bits of
7512         newi2pat before newpat.
7513
7514 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7515
7516         * loop.c (strength_reduce): Simplify test to INSN_P.
7517         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7518         expressions instead of CONST_INT.
7519         (express_from_1): Likewise.
7520
7521 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7522
7523         * regs.h (reg_n_max): Don't declare.
7524         * flow.c (reg_n_max): Don't define.
7525         * regclass.c (renumber): Don't initialize to zero.
7526         (regno_allocated): Likewise.
7527         (reg_n_max): Define.
7528         (allocate_reg_info): Don't initialize unnecessarily.
7529
7530 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7531
7532         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7533         and blockage_p in the newly allocated attribute.
7534
7535 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7536
7537         * config/mn10300/mn10300.md (addsi): `inc4' on address
7538         registers does not modify cc, but `inc' on an extended
7539         register does.
7540
7541 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7542
7543         * reload.c (find_equiv_reg): Checks all valueno regs
7544         as a reload_reg_p regs.
7545
7546 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7547
7548         * cpphash.c (collect_objlike_expansion): Add sanity check.
7549         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7550         the buffer is the empty string, return.  Mark __DATE__ and
7551         __TIME__ as XCONST nodes, not MCONST.
7552         (_cpp_macroexpand): Avoid pushing an empty buffer.
7553         (funlike_macroexpand): Don't pop token_buffer here.
7554
7555 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7556
7557         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7558         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7559         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7560         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7561         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7562         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7563         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7564
7565 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7566
7567         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7568         constant MULT givs.
7569
7570 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7571
7572         * cpphash.h (struct definition): Move file, line, col members...
7573         (struct hashnode): ... here.  Also add 'disabled' flag.
7574         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7575         T_IDENTITY.  Remove T_DISABLED.
7576         Update prototypes.
7577
7578         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7579         (collect_expansion): Split into collect_objlike_expansion and
7580         collect_funlike_expansion.
7581         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7582         funlike_macroexpand.
7583         (_cpp_compare_defs): Rename compare_defs, make static.
7584         (_cpp_make_hashnode): Initialize hp->disabled.
7585         (macro_cleanup): Adjust for new token types.  Clear
7586         m->disabled.
7587         (_cpp_create_definition): Move code here to determine what
7588         sort of macro it is, and code to check for redefinitions, from
7589         do_define.  Implement a few simple cases without creating a
7590         full DEFINITION.
7591         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7592         Handle the simple cases.
7593         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7594         here.
7595
7596         * cppinit.c (builtin_array): Change MCONST to XCONST
7597         everywhere.
7598         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7599         fix check for disabled and function-like macros.
7600         * cpplib.c (do_define): Move most logic to
7601         _cpp_create_definition.
7602         (do_undef): Handle new special token types.
7603
7604 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7605
7606         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7607         of CONSTANT_P for mult_val; always use validate_change to update insn.
7608
7609 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7610
7611         * cpphash.c (trad_stringify, add_pat): New functions.
7612         (collect_expansion): Restore support for -traditional syntax.
7613         Use trad_stringify and add_pat.
7614         (_cpp_macroexpand): Restore support for -traditional semantics.
7615         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7616         get a COMMENT token.
7617         (_cpp_lex_token): Provide COMMENT tokens to caller if
7618         traditional and parsing_define_directive.
7619         (skip_comment): Warn about // comments if -Wtraditional.
7620         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7621         proper node type.
7622         (do_undef): Don't warn about undefining EMPTY nodes.
7623
7624 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7625
7626         * loop.c (strength_reduce): Fix biv removal code.
7627
7628 2000-04-22  Richard Henderson  <rth@cygnus.com>
7629
7630         * predict.c (estimate_probability): Examine both sides of
7631         a branch for no exits.  Use 90% not 50% for predict taken.
7632         Reorg for one copy of note generation code.
7633
7634 2000-04-22  Richard Henderson  <rth@cygnus.com>
7635
7636         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7637
7638 2000-04-22  Richard Henderson  <rth@cygnus.com>
7639
7640         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7641         (output_clear): Likewise.
7642         (output_printf): Use va_copy.
7643         (vline_wrapper_message_with_location): Likewise.
7644         (v_message_with_decl): Likewise.
7645         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7646         * system.h (va_copy): Provide default implementation.
7647
7648 2000-04-22  Richard Henderson  <rth@cygnus.com>
7649
7650         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7651         the collected condition is not a constant.
7652
7653 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7654
7655         * diagnostic.h: New file.
7656
7657         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7658
7659         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7660         various function prototypes.
7661         (diagnostic.h): #include.
7662         (struct output_buffer): Move into diagnostic.h.
7663         (get_output_prefix): Rename to output_get_prefix.  Export.
7664         (init_output_buffer): Export. Break out.  Ajust intialization.
7665         (output_space_left, output_append): Export.
7666         (output_newline): Rename to output_add_newline.  Export.
7667         (output_clear): Nullify additional output_buffer fields.
7668         (output_puts): Rename to output_add_string.  Export.
7669         (dump_output): Rename to output_flush_on.  Export.
7670         (build_location_prefix): Constify return-type.
7671         (emit_output_prefix): Rename to output_emit_prefix. Export.
7672         (set_real_maximum_length): New function.
7673         (output_set_maximum_length): Ditto
7674         (output_clear): Ditto.
7675         (output_add_character): Ditto.
7676         (output_add_integer): Ditto.
7677         (output_add_space): Ditto.
7678         (output_format): Ditto.
7679         (output_printf): Adjust buffer initialization.
7680         (vline_wrapper_message_with_location): Ditto.
7681         (v_message_with_decl): Ditto.  Adjust call to output_puts
7682         and get_output_prefix.
7683         (default_print_error_function): Adjust buffer intialization.
7684
7685 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7686
7687         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7688         of VOID_TYPE.
7689
7690 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7691
7692         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7693         of explicit 0.
7694
7695 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7696
7697         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7698         accurate data about SP moves.
7699
7700 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7701
7702         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7703         aliases to AM33 registers.
7704
7705 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7706
7707         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7708         to all EXTENDED bitmaps.
7709
7710 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7711
7712         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7713         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7714         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7715
7716 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7717
7718         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7719         the operand is not constant.
7720
7721 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7722
7723         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7724         as a call-clobbered regs.
7725
7726 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7727
7728         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7729         * rtl.h: Likewise.
7730         * rtl.def: Update comment.
7731         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7732         * integrate.c (expand_inline_function): Likewise.
7733         * profile.c (branch_prob): Likewise.
7734         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7735         * print-rtl.c (print_rtx): Likewise.
7736         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7737         (reemit_notes): Likewise; also use enum insn_note.
7738
7739         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7740         (place_field): Properly compute know and actual alignment.
7741
7742         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7743         in proper format.
7744
7745         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7746         note for REG1.
7747
7748 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7749
7750         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7751         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7752         (collect_expansion): Rewrite to scan over a token list.
7753         Remove -traditional support.
7754         (collect_formal_parameters): Rename to collect_params; rewrite
7755         to scan over a token list.
7756         (_cpp_create_definition): Adjust to scan a token list.
7757         (_cpp_macroexpand): Remove -traditional support.
7758         (_cpp_compare_defs): Whitespace is now canonicalized.
7759         (comp_def_part): Delete function.
7760
7761         * cpphash.h: Update prototypes.
7762         * cpplex.c (init_token_list): Don't set lineno if there is no
7763         buffer.
7764         (pedantic_whitespace): New function.
7765         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7766         consume a newline.  Use pedantic_whitespace.
7767         (_cpp_lex_token): Remove support for -traditional macros.
7768         (_cpp_get_define_token): Delete.
7769         (_cpp_get_directive_token): Do the real work here.  Use
7770         pedantic_whitespace.
7771         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7772
7773         * cpplib.c (get_macro_name): Delete.
7774         (do_define): Read the entire line into pfile->directbuf, then
7775         feed the token list to _cpp_create_definition.
7776         * cpplib.h (HSPACE_BEFORE): new define.
7777         (struct cpp_reader): Add a toklist member, "directbuf".
7778
7779         * predict.c (estimate_probability): New heuristic: if a jump
7780         branches around a block with no successors, predict it taken.
7781         Disentangle control flow.
7782
7783 2000-04-20  Richard Henderson  <rth@cygnus.com>
7784
7785         * loop.c (emit_iv_add_mult): Revert last change.
7786
7787 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7788
7789         * cpplib.h (enum cpp_ttype): Add token types for all
7790         punctuators.  Distinguish pp-numbers from valid C numbers.
7791         Give some tokens better names.  Initialize from macro.
7792         (struct cpp_name, cpp_token, cpp_toklist): New data
7793         structures.
7794         Update prototypes.
7795         * cpplex.c (bump_column, expand_name_space,
7796         expand_token_space, init_token_list, cpp_output_list,
7797         _cpp_scan_line):  New functions.
7798         (output_line_command): Add third argument, new line number.
7799         * cpphash.h: Update prototypes.
7800         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7801         token names.
7802
7803 2000-04-20  Richard Henderson  <rth@cygnus.com>
7804
7805         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7806
7807 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7808
7809         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7810         object pointed to.
7811
7812 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7813
7814         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7815         REG_EQUAL note explaining the calculated value.
7816
7817         * calls.c (expand_call): Avoid unnecesary precalculation
7818         and outgoing parameters space guarding for sibling calls.
7819         (store_one_arg): Likewise.
7820
7821 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7822
7823         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7824         (rest_of_compilation): Write sibling dump file and account
7825         for time as jump time.
7826         * invoke.texi: Update documentation on dump flags.
7827
7828 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7829
7830         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7831
7832 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7833
7834         * cpphash.c (special_symbol): Represent an empty macro with
7835         "\r \r " not just "\r ".
7836         (_cpp_macroexpand): Correct condition for the foo ( ) special
7837         case.
7838         (unsafe_chars): Handle EOF as second argument.
7839         (push_macro_expansion): Simplify test for removing escape at
7840         end.  Do not trim both escapes if there is no text in between.
7841
7842 2000-04-19  Jim Blandy  <jimb@redhat.com>
7843
7844         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7845         of PTR_SIZE, when appropriate.
7846
7847 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7848
7849         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7850         (USE_ENUM_BITFIELDS): Fix typo.
7851
7852 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7853
7854         * stor-layout.c (place_field): Set rli->offset_align properly.
7855
7856 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7857
7858         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7859         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7860         PARM_BOUNDARY): Remove unnecessary casts.
7861
7862 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7863
7864         * calls.c (precompute_arguments): Remove must_preallocate and
7865         args_size calls.
7866         (expand_call): Update call of precompute_arguments.
7867
7868         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7869         check_insn_for_givs): Break out from ...
7870         (strength_reduce) ... here; use for_every_insn_in_loop to call
7871         check_insn_for_givs.
7872         * loop.h (for_every_insn_in_loop): Declare.
7873         (loop_insn_callback): New type.
7874
7875 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7876
7877         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7878         not nul-terminated.
7879
7880 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7881
7882         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7883         flag_pic and RELOC.
7884
7885 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7886
7887         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7888
7889         * configure.in: Delete --disable-cpplib option and all
7890         references to cpp_main.
7891         * configure: Regenerate.
7892         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7893         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7894         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7895         cpp$(exeext).  Add --no-headers to makeinfo command line when
7896         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7897         cccp.1.
7898         * install.texi: Delete all references to cexp.y/cexp.c.
7899         Delete ancient instructions for compiling GCC on 3b1.
7900         * INSTALL: Regenerate.
7901
7902         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7903         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7904         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7905         cexp.c/cexp.y.
7906         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7907         which is no longer tested anywhere.
7908
7909         * cppinit.c (handle_option): Don't run error message through
7910         gettext twice.
7911
7912 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7913
7914         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7915         * cpperror.c (hashtab.h): Now include.
7916         * cppexp.c (hashtab.h): Likewise.
7917         * cpplex.c (hashtab.h): Likewise.
7918         * cppfiles.c (hashtab.h): Likewise.
7919         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7920         to htab_find_slot_with_hash.
7921         * cpphash.c (hashtab.h): Now include.
7922         (_cpp_lookup_slot): INSERT is now enum insert_option.
7923         * cpphash.h (_cpp_lookup_slot): Likewise.
7924         * cppinit.c (hashtab.h): Include earlier.
7925         (initialize_builtins): Pass enum to htab_find_slot.
7926         * cpplib.c (hashtab.h): Now include.
7927         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7928         (do_pragma_poison, do_assert): Likewise.
7929         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7930         htab_find_slot_with_hash.
7931         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7932         * tree.c (type_hash_add): Likewise.
7933         (build1): Minor cleanup.
7934
7935         * ggc-common.c: Add missing blanks.
7936         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7937         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7938
7939         * stmt.c (mark_case_node): New function.
7940         (mark_case_nesting): Call it.
7941
7942         * expmed.c (emit_store_flag): If comparing two-word integer
7943         with zero, can optimize NE, EQ, GE, and LT.
7944
7945         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7946         * conflict.c: Minor cleanups.
7947         * optabs.c: Add blank line
7948         * simplify-rtx.c: Minor cleanups.
7949
7950 2000-04-18  Stan Cox  <scox@cygnus.com>
7951
7952         * gengenrtl.c (genlegend): Fix misspelling.
7953
7954 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7955
7956         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7957         bitfields of the host compiler are not signed quantities.
7958         * config.in: Regenerate.
7959         * configure: Regenerate.
7960         * system.h (USE_ENUM_BITFIELDS): Added.
7961         (ENUM_BITFIELDS): Added.
7962         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7963         (SHORT_ENUM_BUG): Deleted.
7964         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7965         now ENUM_BITFIELD.
7966         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7967         (CODE_FIELD_BUG): Likewise.
7968         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7969         (OLD_CC): Likewise.
7970         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7971
7972 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7973
7974         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7975         mark is active.
7976
7977 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7978
7979         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7980         * cpplib.c (do_include, do_import, do_include_next,
7981         read_line_number, detect_if_not_defined): Likewise.
7982         * cpphash.c (collect_expansion): Likewise.
7983         (special_symbol, _cpp_macroexpand): Check return from
7984         cpp_file_buffer.
7985         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7986         macros.  Delete all uses.
7987
7988         * gcc.dg/cpp-mi.c: Add two more test cases.
7989         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7990
7991 2000-04-17  Richard Henderson  <rth@cygnus.com>
7992
7993         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7994         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7995
7996 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7997
7998         * function.c (expand_function_start): Use hard_function_value to
7999         compute the RTL to use for DECL_RESULT.
8000
8001 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8002
8003         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
8004         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
8005          x86_memory_mismatch_stall): New global variables.
8006         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
8007         alloved; fix load penalties for Athlon.
8008         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
8009         x86_memory_mismatch_stall): Declare.
8010         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
8011          TARGET_MEMORY_MISMATCH_STALL): New.
8012         * i386.md (athlon scheduling parameters): Fix latencies according to
8013         Athlon Optimization Manual.
8014         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
8015         vector.
8016         (fsqrt instruction patterns): Set athlon_decode to direct.
8017         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
8018         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
8019         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
8020         and TARGET_PARTIAL_REGISTER_STALL machines.
8021         (pushdf_nointeger): New pattern.
8022         (pushdf_integer): Rename from pushdf.
8023         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
8024         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
8025
8026 2000-04-17  Richard Henderson  <rth@cygnus.com>
8027
8028         * loop.c (canonicalize_condition): Add WANT_REG argument.
8029         Stop the search if we match it.
8030         * expr.h (canonicalize_condition): Update decl.
8031         * predict.c (expected_value_to_br_prob): Use it.  Track last
8032         expected value note.
8033         (find_expected_value): Remove.
8034
8035         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
8036
8037 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
8038
8039         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
8040         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
8041         a plain file.
8042         * configure.in: Call AC_FUNC_MMAP_FILE.
8043         * configure: Regenerate.
8044         * config.in: Regenerate.
8045
8046         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
8047         * fixinc/fixincl.c: Likewise.
8048
8049 2000-04-17  Richard Henderson  <rth@cygnus.com>
8050
8051         * builtins.c (expand_builtin_expect): New.
8052         (expand_builtin): Call it.
8053         * builtins.def (BUILT_IN_EXPECT): New.
8054         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
8055         * extend.texi: Document it.
8056
8057         * predict.c (expected_value_to_br_prob): New.
8058         (find_expected_value): New.
8059         * basic-block.h (expected_value_to_br_prob): Declare.
8060         * toplev.c (rest_of_compilation): Invoke it.
8061
8062         * rtl.h (NOTE_EXPECTED_VALUE): New.
8063         (NOTE_INSN_EXPECTED_VALUE): New.
8064         * rtl.c (note_insn_name): Update.
8065         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
8066         cases; handle NOTE_INSN_EXPECTED_VALUE.
8067
8068 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
8069
8070         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
8071         leaf sibcall delay slot if flag_pic.
8072         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
8073
8074 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8075
8076         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
8077
8078         * fixproto: If fix-header fails, exit with an error.
8079
8080 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8081
8082         * cse.c (struct check_depdendence_data): New.
8083         (check_dependence): New function.
8084         (invalidate): Use check_depdenence.
8085
8086 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8087
8088         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
8089         UNITS_PER_WORD is unsigned.
8090
8091         * tree.h (struct tree_common): Remove misleading comment.
8092
8093 2000-04-16  Dave Pitts  <dpitts@cozx.com>
8094
8095         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
8096         message in quotes. Otherwise, IBM's make program treats the '#' as the
8097         start of a comment and ignores the remainder of the line.
8098
8099         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
8100         upper case.
8101         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
8102         * cexp.y (initialize_random_junk): Likewise.
8103         * cppfiles.c (find_include_file): Cast alloca return value.
8104         * cppinit.c (initialize_standard_includes): Likewise.
8105         * cpplib.c (cpp_define, cpp_undef): Likewise.
8106         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
8107         * final.c (output_asm_insn): Allow for holes in EBCDIC.
8108         * fold-const.c (CHARMASK): New.
8109         (real_hex_to_f): Use it.
8110         * real.c (CHARMASK): New.
8111         (etoasc, asctoeg): Use it.
8112         (asctoeg): EBCDIC lower case characters preceed upper case.
8113
8114         * i370.c (mvs_add_label): Change spacing for coding conventions.
8115         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
8116         outputing case vectors.
8117         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
8118         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
8119         since vector in in the data CSECT.
8120         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
8121         * i370.md (Many patterns): Put the length in the XL directives.
8122         (movdi): Put back STM and MVC in definition.
8123         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
8124         pattern using the TCA.
8125         * oe.h (CPP_SPEC): Added to allow trigraphs.
8126         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
8127         not support the "long long" type.
8128
8129 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8130
8131         * config/mips/mips-protos.h (mips_legitimate_address_p): New
8132         function.
8133         (mips_reg_mode_ok_for_base_p): Likewise.
8134         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
8135         (REG_OK_FOR_INDEX_P): Define unconditionally.
8136         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
8137         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
8138         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
8139         that GET_MODE_SIZE is unsigned.
8140         (mips_reg_mode_ok_for_base_p): Define.
8141         (mips_legitimate_address_p): Likewise.  Adjust now
8142         that GET_MODE_SIZE is unsigned.
8143         (block_move_loop): Make the number of bytes unsigned.
8144         (expand_block_move): Likewise.
8145         (function_arg): Make the loop counter unsigned to match the
8146         boundary condition.
8147
8148 2000-04-16  Richard Henderson  <rth@cygnus.com>
8149
8150         * rtl.h (enum insn_note): New enumeration.  Subsume
8151         NOTE_INSN_DELETED and friends.
8152         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
8153         * rtl.c (note_insn_name): Tweak string order.
8154
8155 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
8156
8157         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
8158         to offset * 2.
8159
8160         * cpplex.c (output_line_command): Remove debugging prints.
8161         (cpp_output_tokens): Don't write out a zero-length buffer or
8162         try to see if it has a newline in it.
8163         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
8164         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
8165         the end of the loop.  Use memmove.  Don't read past the end of
8166         the buffer.  Remove trailing newlines from error messages.
8167
8168 2004-04-16  Neil Booth  <NeilB@earthling.net>
8169
8170         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
8171         * cpplib.c: Add new syntax flags to directive table, and
8172         supporting macros.
8173
8174 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
8175
8176         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
8177         using ret $N.
8178
8179 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
8180
8181         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
8182         * haifa-sched.c: Update -fsched-verbose comments to use "=".
8183
8184 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8185
8186         * Makefile.in (ggc-page.o): Now includes toplev.h.
8187         * ggc-page.c (toplev.h): Now included.
8188         (gc_time): Remove declaration.
8189         (ggc_collect): TIME now long.
8190         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
8191         others static.
8192         * toplev.h (gc_time, parse_time, gc_time): New declarations.
8193
8194         * toplev.c: Make *_time variable long to reduce chance of overflow.
8195         (TIMEVAR): Likewise for `otime'.
8196         (print_time): Arg is now long; compute percentage in FP and round.
8197         * toplev.h (print_time): Arg is long.
8198
8199         * tree.c: Minor whitespace changes.
8200
8201         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
8202         * configure: Rebuilt.
8203         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
8204         (__fixunsxfDI): Renamed from __fixunsxfdi.
8205         (__fixunsdfDI): Renamed from __fixunsdfdi.
8206         (__fixunssfDI): Renamed from __fixunssfdi.
8207         (__floatdisf): Use proper type in REP_BIT macro.
8208         (__fixunsxfSI): Renamed from __fixunsxfsi.
8209         (__fixunsdfSI): Renamed from __fixunsdfsi.
8210         (__fixunssfSI): Renamed from __fixunssfsi.
8211         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
8212         Change location of macros and upper-case some names as above.
8213         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
8214         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
8215
8216         * varasm.c (assemble_variable): Add cast to remove warning.
8217         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
8218
8219         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
8220         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
8221         region number to -1.
8222
8223 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
8224
8225         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
8226         call unshare_all_rtl.
8227
8228         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
8229
8230 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
8231
8232         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
8233         Use .s1 not .s0 for all FP instructions.
8234
8235 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
8236
8237         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
8238         interfaces.
8239         (safe_fwrite, output_line_command): New static functions.
8240         (cpp_expand_to_buffer): Now private to cpplib.
8241         (cpp_scan_buffer): Take a printer.
8242
8243         * cpphash.h: Update prototypes.
8244         * cpplib.h: Update prototypes.
8245         (cpp_printer): New.
8246         (cpp_buffer): Remove last_nominal_fname.
8247         (cpp_reader): Remove lineno.
8248
8249         * cppmain.c: Use a cpp_printer.
8250         * fix-header.c: No need to inhibit line commands.  Call
8251         cpp_start_read with no printer.
8252
8253         * cpperror.c (cpp_notice_from_errno): Provide default name.
8254         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
8255         (find_include_file, cpp_read_file): Use make_IHASH.
8256         (file_cleanup): Set control_macro and clear
8257         input_stack_listing_current here.
8258         (_cpp_execute_include): Don't output entering-file marker.
8259         * cpphash.c (special_symbol): Look for the line number in the
8260         buffer, not the reader.
8261         (_cpp_macroexpand): No need to disable line commands.
8262         (_cpp_dump_definition): No need to generate line commands.
8263         (dump_hash_helper): Remove excess newline from output.
8264         * cppinit.c (dump_special_to_buffer): No need to generate line
8265         commands.
8266         (cpp_printer_init): New.
8267         (cpp_start_read): Take a printer, and start it up if it's not
8268         NULL.  No need to generate line commands.
8269         (cpp_finish): Expect no buffers stacked at all.  Take a
8270         printer argument, and flush the output buffer if it's not
8271         NULL.
8272         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
8273         Don't put two hashes at the beginning of an assertion.
8274         (cpp_get_token): Don't increment pfile->lineno or emit line
8275         commands here.  Return EOF if there's no buffer when we get
8276         EOF.
8277         * cpplib.c (do_define, skip_if_group):
8278         No need to disable line commands.
8279         (_cpp_output_line_command): Delete function.
8280         (do_line): Don't emit line commands here, but set things up so
8281         they will be emitted if necessary.  Use _cpp_fake_ihash to
8282         make unique nominal_fnames if necessary.
8283         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
8284         with 0 for column, not -1.
8285         (_cpp_handle_eof): Don't set the control macro here.  Don't
8286         clear input_stack_listing_current here.  Don't emit line
8287         commands.
8288
8289 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
8290
8291         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
8292         always, use the default SVR4 start address.
8293
8294         * config/rs6000/linux.h (LINK_SPEC): Don't define.
8295         (LINK_SHLIB_SPEC): Define.
8296         (LINK_START_DEFAULT_SPEC): Define.
8297         (LINK_OS_DEFAULT_SPEC): Define.
8298
8299         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
8300
8301         * config/rs6000/eabi.asm (__eabi): Call __init rather than
8302         __do_global_ctors to handle constructors.
8303         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
8304         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
8305         (STARTFILE_MVME_SPEC): Likewise.
8306         (STARTFILE_SIM_SPEC): Likewise.
8307         (ENDFILE_ADS_SPEC): Use crtend.
8308         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
8309         (ENDFILE_MVME_SPEC): Likewise.
8310         (ENDFILE_SIM_SPEC): Likewise.
8311         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
8312         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
8313         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
8314         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
8315         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
8316         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
8317         (CRTSTUFF_T_CFLAGS_S): Define.
8318         * config/rs6000/eabi-ctors.c: Delete.
8319
8320         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
8321         boundary.
8322         (__fini): Likewise.
8323         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
8324         boundary.
8325         (__fini): Likewise.
8326
8327 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
8328
8329         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
8330         plus mask size is smaller or equal to the mode size.
8331
8332 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8333
8334         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
8335         not yet set.
8336
8337         * expr.c (reload.h): Now included.
8338         (emit_block_move): Set volatile_ok when checking for movstr.
8339         (emit_move_1): Check for replacements in addresses in multi-word case.
8340         * Makefile.in (expr.o): Now includes reload.h.
8341
8342         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
8343         Never have a LIBCALL end a basic block.
8344         (find_basic_blocks_1): Likewise.
8345         Reorganize CALL_INSN cases.
8346
8347         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
8348
8349 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
8350
8351         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
8352         completers from mov.ret instruction.
8353
8354 2000-04-14  Richard Henderson  <rth@cygnus.com>
8355
8356         * fold-const.c (extract_muldiv): Don't distribute and widen
8357         multiply across plus for non-sizetype unsigned types.
8358
8359 2000-04-14  Richard Henderson  <rth@cygnus.com>
8360
8361         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
8362         If the original source is dead in the incr insn, it's dead now.
8363
8364 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8365
8366         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
8367         see if DECL_BIT_FIELD needs to still be set.
8368
8369         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
8370
8371         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
8372         print_int_cst_octal with something that's not an INTEGER_CST.
8373
8374         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
8375         and not a SUBREG to a FLOAT rtl.
8376
8377 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
8378
8379         * emit-rtl.c (try_split): Avoid infinite loop if the split
8380         results in a sequence that contains the original insn.
8381
8382 2000-04-13  Andreas Jaeger  <aj@suse.de>
8383
8384         * config/mips/mips.c (expand_block_move): Pass alignment
8385         argument to move_by_pieces in bits, not bytes.
8386
8387         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
8388         __pic__ for little endian.
8389
8390 2000-04-13  Andreas Jaeger  <aj@suse.de>
8391
8392         * config/i386/i386-protos.h: Add prototype for
8393         uno_comparison_operator.
8394
8395 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8396
8397         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
8398         * calls.c (ECF_PURE): New flag.
8399         (emit_call_1): Handle ECF_PURE calls.
8400         (initialize_argument_information): Unset ECF_PURE flag too.
8401         (precompute_arguments): Precompute for ECF_PURE too.
8402         (expand_call): Handle ECF_PURE calls too.
8403         (emit_library_call_value_1): Rename no_queue argument to fn_type,
8404         accept value of 2 as pure function.
8405         (emit_library_call_value, emit_library_call): Rename no_queue argument
8406         to fn_type.
8407         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
8408
8409         * tree.h (DECL_IS_PURE): New macro.
8410         (struct tree_decl): Add pure_flag.
8411         * c-common.c (enum attrs): Add attribute "pure".
8412         (init_attributes): Initialize attribute "pure"
8413         (decl_attributes): Handle attribute "pure".
8414         * extend.texi (Attribute "pure"): Document.
8415         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
8416         in pure function.
8417         (flags_from_decl_or_type): Support attribute "pure".
8418
8419 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
8420
8421         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
8422         the token except for numbers and identifiers.
8423
8424 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
8425
8426         * i386.c (ix86_expand_binary_operator,
8427         ix86_expand_unary_operator): Check no_new_pseudos
8428         instead of reload_in_progress and reload_completed.
8429         (ix86_split_ashldi, ix86_split_ashrdi,
8430         ix86_split_lshrdi): Check no_new_pseudos instead
8431         of reload_completed.
8432
8433 2000-04-12  Jeffrey A Law  (law@cygnus.com)
8434
8435         * function.c (purge_addressof): Unshare any shared rtl created by
8436         purge_addressof and its children.
8437
8438 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
8439
8440         * function.c (aggregate_value_p): VOID_TYPE nodes are never
8441         aggregates.
8442
8443 2000-04-05  Andreas Jaeger  <aj@suse.de>
8444
8445         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
8446         not compiling PIC code, add flags for mabi=64.
8447         (SUBTARGET_CPP_SIZE_SPEC): New.
8448         (SUBTARGET_CPP_SPEC): New.
8449         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
8450         for MIPS/Linux and lots of code needs these defines.
8451
8452 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
8453
8454         * reorg.c (fill_slots_from_thread): Check side_effects_p when
8455         trying the "opposite arithmetic" approach.
8456
8457 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8458
8459         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
8460         (struct sh_args): Add new field force_mem.
8461         (INIT_CUMULATIVE_ARGS): Initialize it.
8462         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
8463
8464 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8465
8466         * calls.c (expand_call): Do not reverse args in "equal from" field.
8467         (emit_library_call_value_1): Emit_libcall_block for const and pure
8468         function.
8469
8470 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8471
8472         * reload1.c (reload_combine): Don't enable optimization for fixed
8473         registers when encountering a BARRIER.
8474
8475 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8476
8477         * builtins.c (expand_builtin_memcmp): Do expansion even with
8478         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8479
8480         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8481         stack is propertly aligned; add sanity checking for aligned
8482         stack pointer.
8483         (expand_library_call_value_1): Add sanity checking for aligned
8484         stack pointer.
8485
8486 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8487
8488         * calls.c (emit_library_call_value_1): Change 3rd arg to
8489         locate_and_pad_parm to disregard the setting of partial.
8490
8491 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8492
8493         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8494
8495         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8496         CALL_INSN from the normal case.
8497
8498 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8499
8500         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8501         New global variables.
8502         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8503         adjustment.
8504         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8505         Declare,
8506         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8507          TARGET_ADD_ESP_8): New macros.
8508         * i386.md: Add peep2s to convert esp adjustments to push and pop
8509         instructions.
8510         (pushsi_prologue, popsi_epilogue): New patterns.
8511
8512 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8513
8514         * real.c (toe64): Remove stale #endif from the last change.
8515
8516 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8517
8518         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8519         * real.c (toe64): Revert previous change.
8520
8521 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8522
8523         * objc/objc-act.c: Include ggc.h.
8524         (objc_tree_index, objc_global_trees): Convert most of the
8525         static tree variables into a static array with previous names
8526         as defines.
8527         (objc_ellipsis_node): New variable.
8528         (lang_init): Call objc_act_parse_init and c_parse_init.
8529         Create objc_ellipsis_node.
8530         (build_selector_translation_table): Use objc_ellipsis_node instead
8531         of (tree)1.
8532         (hack_method_prototype): Likewise.
8533         (get_arg_type_list): Likewise.
8534         (start_method_def): Likewise.
8535         (continue_method_def): Likewise.
8536         (gen_method_decl): Likewise.
8537         (ggc_mark_imp_list): New function.
8538         (ggc_mark_hash_table): New function.
8539         (objc_act_parse_init): New function.
8540         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8541         * c-parse.in (c_parse_init): For objc add roots of objc specific
8542         local tree variables.
8543         * objc/objc-parse.y: Rebuilt.
8544         * objc/objc-parse.c: Rebuilt.
8545         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8546
8547 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8548
8549         * cse.c (delete_trivially_dead_insns): Also delete insns
8550         that copy a register to itself where the destination is
8551         a strict_low_part.
8552
8553 2000-04-11  Richard Henderson  <rth@cygnus.com>
8554
8555         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8556         (propagate_block): Initialize them.  Use them in parallel instead
8557         of one tmp variable, ie revert much of the 0408 and 0407 functional
8558         changes, but keep the structural changes.
8559         (mark_set_regs): Take new_dead from propagate_block_info instead.
8560         (mark_set_1, mark_set_reg): Likewise.
8561         (mark_used_regs): Likewise with new_live.
8562         (mark_used_reg): Likewise.  Revert 0408 change.
8563
8564 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8565
8566         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8567         restriction.
8568         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8569
8570 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8571
8572         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8573         const section to output a CONSTRUCTOR based on the same conditions
8574         used for VAR_DECLs.
8575
8576 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8577
8578         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8579         * pa/pa-protos.h (output_call): Add additional argument indicating
8580         if the call is a sibling/tail call.
8581         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8582         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8583         (function_arg, function_arg_partial_nregs): Likewise
8584         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8585         (emit_move_sequence): Zero extend certain constants as needed
8586         for TARGET_64BIT.
8587         (compute_zdepdi_operands, output_64bit_and): New functions.
8588         (output_64bit_ior, function_arg): Likewise.
8589         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8590         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8591         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8592         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8593         (output_bvb): Likewise.
8594         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8595         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8596         as needed.
8597         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8598         (ouput_arg_descriptor): Do not emit argument descriptors for
8599         TARGET_64BIT.
8600         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8601         defined.
8602         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8603         (FUNCTION_OK_FOR_SIBALL): Define.
8604         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8605         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8606         (CPP_SPEC): Use new spec infrastructure.
8607         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8608         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8609         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8610         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8611         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8612         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8613         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8614         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8615         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8616         (FUNCTION_ARG); Call out to C code.
8617         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8618         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8619         (MIN_UNITS_PER_WORD): Likewise.
8620         * pa/pa.md (cmpdi): New expander.
8621         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8622         (64bit conditional arithmetic): New patterns.
8623         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8624         (movsicc): Not available if modes on all the operands to not match.
8625         (movdicc): New expander and associated patterns.
8626         (64bit branches): New patterns.
8627         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8628         (pre_ldd, post_std): New patterns.
8629         (64bit addil, load low part): New patterns.
8630         (special movsf constant): Not available for TARGET_64BIT.
8631         (movsf, movdf expanders): Force constants into memory.
8632         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8633         (64bit movdf/movdi patterns): New patterns.
8634         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8635         for TARGET_64BIT.
8636         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8637         (adddi3 expander): Allow "arith_operand" for second input.
8638         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8639         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8640         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8641         (muldi3): New expander for TARGET_64BIT.
8642         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8643         for TARGET_64BIT.
8644         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8645         patterns for TARGET_64BIT.
8646         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8647         patterns for TARGET_64BIT.
8648         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8649         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8650         (sibcall_epilogue): New expander.
8651         (casesi): Tweak for TARGET_64BIT.
8652         (call expanders): Set & use the outgoing argument pointer.  Use the
8653         64bit call patterns as needed. Add additional arg to output_call.
8654         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8655         (sibcall, sibcall_internal_symref): New expanders.
8656         (sibcall_value, sibcall_value_internal_symref
8657         (interspace_jump): Turn into an expander + matching patterns.
8658         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8659         * pa/pa64-regs.h: Eliminate trigraph sequences.
8660         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8661
8662 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8663
8664         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8665         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8666         cpp_token with cpp_ttype everywhere.
8667         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8668         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8669         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8670         long.
8671         * cpplex.c (cpp_buf_line_and_col): Delete.
8672         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8673         'long lineno' to 'unsigned int lineno'.
8674         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8675
8676 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8677
8678         * extend.texi: ISO C99 is not a draft anymore.
8679         * invoke.texi: ISO C++ is not a draft anymore.
8680         * cpp.texi: __cplusplus is required by the ISO standard.
8681
8682         * extend.texi (-fthis-is-variable): Undocument.
8683         * flags.h (warn_template_debugging): Remove declaration.
8684         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8685         -Wenum-clash, -Wtemplate-debugging): Undocument.
8686
8687 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8688
8689         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8690         integer.
8691         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8692         integer.
8693         (ARM_SIGN_EXTEND): Use HOST_UINT.
8694         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8695         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8696         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8697         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8698
8699         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8700         (arm_gen_constant): Use HOST_UINT.
8701         (arm_canonicalize_constant): Use HOST_UINT.
8702         (arm_reload_in_hi): Use HOST_UINT.
8703         (arm_reload_out_hi): Use HOST_UINT.
8704         (output_multi_immediate): Use HOST_UINT.
8705         (int_log2): Use HOST_UINT.
8706         (arm_poke_function_name): Use HOST_UINT.
8707         (arm_output_epilogue): Use arm_volatile_func().
8708         (output_thumb_prologue): Use arm_strip_name_encoding().
8709
8710 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8711
8712         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8713         of sequence point problems.
8714
8715 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8716
8717         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8718         Recomment.
8719         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8720
8721 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8722
8723         * sbitmap.h: Whitespace changes and use upper-case macro args.
8724         (struct simple_bitmap_def): All sizes now unsigned.
8725         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8726         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8727         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8728         (sbitmap_zero): Cast bzero arg to PTR.
8729         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8730         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8731         loop to make structure clearer.
8732         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8733         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8734         (sbitmap_a_and_b_or_c): Likewise.
8735         (sbitmap_intersection_of_succs): Minor cleanups.
8736         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8737         (sbitmap_union_of_preds): Likewise.
8738         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8739         (debug_sbitmap): New function.
8740
8741         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8742         * c-typeck.c (convert_for_assignment): Likewise.
8743
8744         * expmed.c (init_expmed): Don't free objects we make.
8745         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8746
8747         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8748         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8749
8750         * gcse.c (expr_hash_table_size): Now unsigned.
8751         (compute_ae_gen): Local variable `i' now unsigned.
8752         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8753         (compute_transout, hoist_code): Likewise.
8754         (compute_local_properties): Likewise, also hash_table_size.
8755         (alloc_expr_hash_table): N_INSNS now unsigned.
8756         (delete_null_pointer_checks): Mark arg F as unused.
8757
8758         * regrename.c: Minor cleanups, including chang some variables
8759         to unsigned int.
8760
8761 2000-04-10  Neil Booth  <NeilB@earthling.net>
8762
8763         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8764         than GETC ().
8765         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8766
8767 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8768
8769         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8770         __classof__, and __headof__ from the list of gnu keywords.
8771         (-ansi): Remove -foperator-names from list of implied options.
8772         Do not call it ANSI C++.
8773         (-foperator-names): Document as -fno-operator-names.
8774
8775 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8776
8777         * cpphash.c (timestamp): Delete.
8778         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8779         (special_symbol): Remove unnecessary braces.  Remove
8780         T_VERSION.  Treat T_STDC like T_CONST unless
8781         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8782         when one is encountered, then convert them into T_MCONST
8783         nodes.
8784         * cppinit.c (builtin_array): version_string is T_MCONST.
8785         __STDC__ has a "1" in its cpval.  Don't have a terminator
8786         entry.  Clean up which entries are dumped.
8787         (initialize_builtins): Only __STDC__ gets the special
8788         -traditional treatment.  Count the length of builtin_array.
8789         Render version_string here.
8790         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8791         * cpplib.h (struct cpp_reader): Remove timebuf.
8792
8793 2000-04-09  Richard Henderson  <rth@cygnus.com>
8794
8795         * genrecog.c (pred): Update comparison_operator for the unordered
8796         operators.
8797
8798         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8799         operators.
8800         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8801         (uno_comparison_operator): New.
8802         (put_condition_code): Handle UNORDERED/ORDERED.
8803         (unsigned_comparison): Likewise.
8804         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8805         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8806         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8807         update all callers.  Handle all 8 unordered operators.
8808         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8809         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8810         * config/i386/i386.h (PREDICATE_CODES): Update.
8811         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8812         (ix86_expand_branch, ix86_expand_setcc): Update.
8813         * config/i386/i386.md (sunordered, sordered): New.
8814         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8815         (bunordered, bordered): New.
8816         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8817         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8818         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8819
8820 2000-04-09  Philip Blundell  <philb@gnu.org>
8821
8822         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8823
8824 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8825
8826         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8827         fix_truncxfhi2): New patterns.
8828         * i386.c (output_fix_trunc): Handle converting to HImode.
8829
8830 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8831
8832         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8833         life_analysis.
8834         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8835         (for_each_successor_phi): Change parameter to basic_block.
8836         (coalesce_regs_in_successor_phi_nodes): Likewise.
8837         (coalesce_regs_in_copies): Likewise.
8838         (compute_coalesced_reg_partition): Use basic_block instead of index.
8839         * rtl.h (convert_to_ssa): Delete.
8840         (convert_from_ssa): Likewise.
8841         (successor_phi_fn): Likewise.
8842         (for_each_successor_phi): Likewise.
8843         (in_ssa_form): Likewise.
8844         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8845         (convert_from_ssa): Likewise.
8846         (successor_phi_fn): Likewise.
8847         (in_ssa_form): Likewise.
8848         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8849         * flow.c (calculate_global_regs_live): Pass a basic_block to
8850         for_each_successor_phi.
8851
8852 2000-04-08  Richard Henderson  <rth@cygnus.com>
8853
8854         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8855         was modified in the current insn.
8856
8857 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8858
8859         * arm/thumb.md: Delete.
8860         * arm/thumb-protos.h: Delete.
8861
8862 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8863
8864         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8865
8866         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8867
8868         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8869         into branch.
8870
8871         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8872         define_expand.
8873         (*arm_nop, *thumb_nop): Delete.
8874
8875         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8876         constants.  Use casts instead.
8877         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8878         output_multi_immediate, arm_poke_function_name): Likewise.
8879         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8880         MASK_RETURN_ADDDR): Likewise.
8881
8882         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8883
8884         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8885         into branch.
8886
8887         * arm.md (eh_epilogue): New function.
8888         * arm.h (struct machine_function): Move to here ...
8889         * arm.c: ... from here.
8890         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8891         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8892         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8893
8894         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8895
8896         * config/arm/semi.h (ASM_SPEC): Restore definition.
8897         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8898
8899         * config/arm/elf.h (ASM_SPEC): Restore definition.
8900         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8901
8902         * config/arm/arm.h (ASM_SPEC): Remove definition.
8903         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8904
8905         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8906
8907         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8908
8909         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8910
8911         Various formating tidyups, elimination of compile time
8912         warnings and synchronisation with internal sources:
8913
8914         * config/arm/arm-protos.h (assemble_align): Add prototype.
8915         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8916         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8917         (arm_return_addr_rtx): Rename to arm_return_addr.
8918
8919         * config/arm/arm.c: Include except.h.
8920         Define shorter typenames for strict minipool_node and struct
8921         minipool_fix.
8922         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8923         in memory.
8924         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8925         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8926
8927         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8928         already defined.
8929         (ASM_SPEC): Define if not already defined.
8930         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8931
8932         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8933         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8934         arm_gen_compare_reg.
8935         (indirect_jump):  Only accept register operands.
8936         (load_indirect_jump): Keep this pattern since combine can generate
8937         it.
8938
8939         * config/arm/coff.h: Include aout.h.
8940         (MULTILIB_DEFAULTS): Only define if not already defined.
8941
8942         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8943         into arm.h (so that COFF ports can support thumb based aliases).
8944         (ASM_SPEC): Move definition into arm.h
8945
8946         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8947         redundant apcs spec.
8948         (ASM_SPEC): Move definition to arm.h
8949
8950         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8951
8952         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8953         for entries in the .bss section
8954
8955         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8956
8957         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8958         to thumb_far_jump_used_p.
8959
8960         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8961         single integer parameter.
8962
8963         * config/arm/arm.c (struct machine_function): Add two new
8964         fields, 'far_jump_used' and 'arg_pointer_live'.
8965         (thumb_far_jump_used_p): Once the decision has been made that
8966         far jumps might be used, always return true.
8967         If being called from the initial elimination offset macro then
8968         do not bother to perform the test if the arg pointer is not
8969         being used.
8970         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8971         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8972
8973         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8974
8975         * arm.c (output_return_instruction): Handle more cases where we can
8976         return from a function with an ldr instruction.
8977         (arm_output_epilogue): Likewise.
8978
8979         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8980         if we need to push a large stack frame and there are no callee-saved
8981         registers.
8982
8983         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8984         in ARM code if the frame pointer has been eliminated.
8985
8986         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8987         unspec_volatile arguments to avoid duplicates.
8988         (consttable_1, consttable_2): Fixes for big-endian mode.
8989
8990         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8991         as appropriate.
8992
8993         Re-write constant pool code.
8994         * arm.c (minipool_node, minipool_fix): New types.
8995         (minifix): Delete type.
8996         (arm_add_minipool_constant): Delete.
8997         (arm_compute_minipool_offsets, arm_find_barrier,
8998         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8999         (get_jump_table_size): Now returns HOST_WIDE_INT.
9000         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
9001         functions.
9002         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
9003         (assign_minipool_offsets, arm_print_value): Likewise.
9004         (dump_minipool): Rewrite.
9005         (arm_barrier_cost): New function.
9006         (create_fix_barrier): New function.
9007         (push_minipool_barrier): New function.
9008         (push_minipool_fix): Record additional information about the fixup
9009         required.
9010         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
9011         check the mode of what needs fixing.
9012         (arm_reorg): Rewrite.
9013
9014         2000-03-08  Nick Clifton  <nickc@cygnus.com>
9015
9016         * config/arm/arm.md (indirect_jump): Force constant addresses into
9017         a register.
9018
9019         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
9020
9021         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
9022
9023         2000-02-24  Nick Clifton  <nickc@cygnus.com>
9024
9025         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
9026         adjust is word aligned.
9027         (thumb_expand_epilogue): Make sure that stack adjust is word
9028         aligned.
9029
9030         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
9031
9032         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
9033
9034         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
9035         pointer relative addresses.
9036
9037         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
9038
9039         * arm.c (find_barrier): Find the last barrier within the allowed
9040         range.
9041
9042         2000-02-09  Nick Clifton  <nickc@cygnus.com>
9043
9044         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
9045
9046         2000-02-09  Nick Clifton  <nickc@cygnus.com>
9047
9048         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
9049         ARM_FUNCTION_PROFILER.
9050
9051         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
9052         ARM_FUNCTION_PROFILER.
9053
9054         * config/arm/linux-oldld.h: Imported from mainline sources.
9055
9056         2000-02-07  Nick Clifton  <nickc@cygnus.com>
9057
9058         * config/arm/lib1funcs.asm: Merge in thumb functions from
9059         lib1thumb.asm.
9060
9061         * config/arm/lib1thumb.asm: Delete.
9062
9063         2000-02-04  Nick Clifton  <nickc@cygnus.com>
9064
9065         * config/arm/arm.c: Sychronised with current Red hat local
9066         sources.
9067         * config/arm/arm.h: Ditto.
9068         * config/arm/arm-protos.h: Ditto.
9069
9070         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
9071
9072         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
9073
9074         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
9075         byte stores.
9076
9077         2000-02-02  Nick Clifton  <nickc@cygnus.com>
9078
9079         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
9080
9081         * config/arm/arm.md (epilogue): Fix rtl checking abort because
9082         (return) was emited using an emit_insn() call.
9083
9084         2000-01-31  Nick Clifton  <nickc@cygnus.com>
9085
9086         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
9087         thumb stack frame.
9088         (thumb_exit): Move frame pointer back into hard frame pointer
9089         register if backtracing is being used.
9090
9091         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
9092
9093         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
9094         into branch.
9095
9096         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
9097
9098         * config/arm/arm.md (neg_pool_offset): Provide default for new
9099         attribute.
9100         (arm_movsi_insn): Add neg_pool_offset attribute.
9101         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
9102         rtx for the insn that starts the scan and an unsigned long for its
9103         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
9104         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
9105         instructions in *PINSERTED.
9106         (struct minipool_fixup): Add MIN_ADDRESS elt.
9107         (sort_fixups): Compute it.
9108         (arm_reorg): Changes to support inserting pools before the insn to be
9109         fixed up.
9110
9111         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
9112
9113         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
9114         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
9115         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
9116
9117         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
9118
9119         * config/arm/semi.h (TARGET_VERSION): Do not define if already
9120         defined.
9121         (TARGET_DEFAULT): Do not define if already defined.
9122
9123         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
9124
9125         * config/arm/arm.md (anddi3): Allow disjoint source operands.
9126         (iordi3): Allow disjoint source operands.
9127         (xordi3): Allow disjoint source operands.
9128         (negdi2): Permit construction for ARM and Thumb.
9129         (arm_negdi2): Renamed version of old negdi2 pattern.
9130         (thumb_negdi2): New pattern: Only permit non-overlapping
9131         source and destination.
9132
9133         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
9134
9135         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
9136         scratch low register so that it will not be deleted.
9137
9138         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
9139
9140         * config/arm/pe.h (ARM_PE): Define.
9141
9142         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
9143         interfacearm attribute if this is a PE toolchain.
9144         (output_return_instruction): Do not emit anything if the function
9145         has the naked attribute set.
9146         (is_called_in_ARM_mode): If the function has the interfacearm
9147         attribute then return true.
9148         (thumb_expand_prologue): Do not generate a prologue for naked
9149         functions.
9150         (thumb_expand_epilogue): Do not generate an epilogie for a naked
9151         function.
9152         (output_thumb_prologue): Do not bother if the function is naked.
9153         Strip PE encoding from function name before emitting.
9154
9155         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
9156
9157         * arm.md (pic_load_addr): Fix constraints.
9158
9159         * arm.md (casesi_insn): Fix mis-applied patch.
9160
9161         * arm.md ("core" function unit): Add rules for single- and
9162         multi-cycle insns.
9163         (All TARGET_THUMB patterns): Add "type" attribute information
9164         where needed.
9165         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
9166         the following insn is a CALL.
9167
9168         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
9169         pointer.
9170         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
9171         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
9172         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
9173
9174         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
9175
9176         * config/arm/linux-gas.h: oops - this file was missed out when the
9177         branch was created...
9178
9179         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
9180
9181         * thumb.c: Deleted.  Move contents to ...
9182         * arm.c: ... here.
9183         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
9184         rule for thumb.o
9185         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
9186         * configure: Regen.
9187
9188         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
9189         declare a prototype for asm_output_align();
9190
9191         * arm.c (thumb_condition_code): Delete.
9192         (arm_print_operand): Always use arm_condition_code array.
9193
9194         * arm.c (thumb_return_addr_rtx): Delete.
9195         (arm_save_machine_status, arm_restore_machine_status): Delete.
9196         (arm_init_machine_status, arm_mark_machine_status): New functions.
9197         (arm_init_expanders): Update accordingly.
9198         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
9199         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
9200         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
9201
9202         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
9203
9204         * configure.in : Fix arm-*-aout target to use new t-arm-aout
9205         script.
9206         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
9207         targets.
9208
9209         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
9210
9211         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
9212         stack backtrace structure.
9213
9214         * config/arm/arm-protos.h: Add prototypes for functions defined in
9215         arm/pe.h.
9216
9217         * config/arm/arm.c (arm_override_options): Fix selection of
9218         attributes of default processor.
9219
9220         * config/arm/coff.h: Delete needless #include.
9221
9222         * config/arm/pe.c: Delete unused code.
9223
9224         * config/arm/pe.h (CPP_DEFINES): Delete
9225         (SUBTARGET_CPP_SPEC): Define.
9226         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
9227
9228         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
9229
9230         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
9231
9232         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
9233         updated.
9234         (CAN_DEBUG_WITHOUT_FP): Define.
9235         (FIXED_REGISTERS): Make r11 call-saved.
9236         (CALL_USED_REGISTERS): Likewise.
9237         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
9238         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
9239         frame-pointer is required.
9240         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
9241         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
9242         if the target normally needs a stack frame in non-leaf functions.
9243         (use_return_insn): Correct logic for determining when a return
9244         instruction can be used.
9245         (output_return_instruction): Handle the frame-pointer register as
9246         a normal register when not TARGET_APCS_FRAME.
9247         (arm_output_prologue): Likewise.
9248         (arm_output_epilogue): Likewise.
9249         (output_func_epilogue): Likewise.
9250         (arm_expand_prologue): Likewise.
9251         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
9252
9253         * arm.c (use_return_insn): No need to check floating point regs if
9254         TARGET_SOFT_FLOAT.
9255         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
9256         the code of value stored in the minipool array.
9257         (arm_add_minipool_constant): Likewise.
9258
9259 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9260
9261         * basic-block.h (conflict_graph_enum_fn): K&R fix.
9262
9263 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9264
9265         * tree.c (tree_expr_nonnegative_p): New function.
9266
9267         * tree.h (tree_expr_nonnegative_p): Declare.
9268
9269         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
9270         elide some sign_compare warnings.
9271         (build_conditional_expr): Likewise.
9272
9273 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
9274
9275         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
9276
9277         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
9278         * i386.c (print_operand): Use the proper suffix for a 387 HImode
9279         operand.  Abort if a 387 operand has an unsupported size.
9280
9281 2000-04-08  Neil Booth  <NeilB@earthling.net>
9282
9283         * cppexp.c (parse_charconst): Null does not end character
9284         constants.
9285         * cppinit.c (ISTABLE): Null character handled as whitespace.
9286         * cpplex.c (null_warning):  new function.
9287         (skip_string): Emit warning if nulls encountered.
9288         (_cpp_skip_hspace): Emit warning if nulls encountered.
9289         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
9290         them.
9291         * cpp.texi: Update.
9292
9293 2000-04-07  Richard Henderson  <rth@cygnus.com>
9294
9295         * flow.c (loop_depth): Remove.
9296         (reg_next_use, cc0_live, mem_set_list): Replace with ...
9297         (struct propagate_block_info): New.
9298         (life_analysis): Don't allocate reg_next_use.
9299         (propagate_block_delete_insn): Break out of propagate_block.
9300         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
9301         (propagate_block_delete_libcall): Likewise.
9302         (propagate_block): Create a propagate_block_info struct to pass
9303         to subroutines.  Allocate one not two temporary regsets.  Don't
9304         clobber memory for const calls.  Look for clobbers in
9305         CALL_INSN_FUNCTION_USAGE.
9306         (mark_set_regs): Recognize COND_EXEC.
9307         (mark_set_reg): Break out of mark_set_1.
9308         (mark_used_reg): Break out of mark_used_regs.
9309         (mark_used_regs): Recognize COND_EXEC.
9310         (insn_dead_p): Use propagate_block_info struct.
9311         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
9312         (find_auto_inc, try_pre_increment_1): Likewise.
9313         (print_rtl_with_bb): Dump regs live at end too.
9314         (count_reg_sets_1): Pass in loop_depth.
9315         (count_reg_sets, count_reg_references): Likewise.
9316         (recompute_reg_usage): Provide it.
9317
9318 2000-04-07  Richard Henderson  <rth@cygnus.com>
9319
9320         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
9321         not the raw files.
9322
9323 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
9324
9325         * cpplib.c (do_elif): Skip the rest of the line if we're
9326         not going to bother evaluating it.
9327         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
9328         to avoid pointless calls to the lexer.
9329
9330 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
9331
9332         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
9333
9334 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
9335
9336         * calls.c (expand_call): emit_queue if we're trying a sibcall.
9337
9338 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
9339
9340         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
9341
9342 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
9343
9344         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
9345         crtend so they can be multilibbed.
9346         (STAGESTUFF): Remove s-crt and s-crtS.
9347
9348 2000-04-07  Richard Henderson  <rth@cygnus.com>
9349
9350         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
9351         if we discover we need a pseudo and no_new_pseudos is true.
9352         * config/alpha/alpha.md (ne:DI insn): New.
9353         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
9354
9355 2000-04-07  Richard Henderson  <rth@cygnus.com>
9356
9357         * rtl.def (COND_EXEC): New.
9358         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
9359         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
9360
9361         * genconfig.c (have_cond_arith_flag): Remove.
9362         (have_cond_exec_flag): New.
9363         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
9364         (main): Print HAVE_conditional_execution.
9365
9366         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
9367         (sched_analyze_insn, print_pattern): Likewise.
9368         * reload.c (find_equiv_reg): Likewise.
9369         * rtlanal.c (reg_referenced_p): Likewise.
9370         (note_stores, dead_or_set_regno_p): Likewise.
9371         (reg_overlap_mentioned_p): Rewrite to use a switch.
9372
9373         * ggc.h (struct rtx_def): Forward declare.
9374
9375         * print-rtl.c (debug_rtx_range): New.
9376         * rtl.h (debug_rtx_range): Declare.
9377
9378         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
9379
9380         * gcse.c (gcse_main): Don't rebuild the CFG here.
9381         (delete_null_pointer_checks): Likewise.
9382         * ssa.c (convert_to_ssa): Likewise.
9383         * toplev.c (rest_of_compilation): Do it here instead.  Combine
9384         sequential calls to TIMEVAR.  Consistently use `insns' instead of
9385         `get_insns()'.  Always split insns after reload when optimizing.
9386
9387         * basic-block.h (merge_blocks_nomove): Declare.
9388         (tidy_fallthru_edge): Declare.
9389         * flow.c (merge_blocks_nomove): Document as merging into previous
9390         blocks.  Remove cruft from between blocks; remove all edges out of A.
9391         (tidy_fallthru_edge): Export.
9392
9393 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9394
9395         * ssa.c (compute_conservative_reg_partition): Declare with
9396         void arguments.
9397         * toplev.c (clean_dump_file): Remove previously-deleted function
9398         inadvertantly merged back in.
9399         * conflict.c (conflict_graph_add): Use a single call to
9400         htab_find_slot to look up and insert.
9401
9402 2000-04-06  Richard Henderson  <rth@cygnus.com>
9403
9404         * genrecog.c (*): Rename _last_insn to last_insn.
9405         (make_insn_sequence): Set the position of the peephole2 C test
9406         to be at the last insn.
9407
9408 2000-04-06  Richard Henderson  <rth@cygnus.com>
9409
9410         * flow.c (compute_flow_dominators): Free worklist.
9411
9412 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
9413
9414         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
9415
9416 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9417
9418         * rtl.h (INSN_P): New macro.
9419         (successor_phi_fn): New typedef.
9420         (for_each_successor_phi): New prototype.
9421         (in_ssa_form): New variable.
9422         (PHI_NODE_P): Likewise.
9423         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
9424         phi nodes in successors.
9425         (mark_used_regs): Add PHI case.
9426         (set_phi_alternative_reg): New function.
9427         (life_analysis): Assert that dead code elimination is not selected
9428         when in SSA form.
9429         * toplev.c (to_ssa_time): New variable.
9430         (from_ssa_time): Likewise.
9431         (compile_file): Zero to_ssa_time and from_ssa_time.
9432         Print time to convert to and from SSA.
9433         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
9434         (print_time): Compute percent fraction as integer.
9435         * ssa.c (PHI_NODE_P): Moved to rtl.h.
9436         (convert_to_ssa): Check if we're already in SSA.
9437         Don't eliminate dead code in life_analysis.
9438         Rerun flow and life analysis at bottom.
9439         (eliminate_phi): Use canonical regnos when adding nodes.
9440         (mark_reg_in_phi): New function.
9441         (mark_phi_and_copy_regs): Likewise.
9442         (convert_from_ssa): Rerun life analysis at top.
9443         Use coalesced partition.
9444         Check for removing a phi node at the end of the block.
9445         (compute_coalesced_reg_partition): New function.
9446         (coalesce_regs_in_copies): Likewise.
9447         (coalesce_reg_in_phi): Likewise.
9448         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
9449         (for_each_successor_phi): Likewise.
9450         (rename_context): New struct.
9451         (rename_block): Use a rename_context with rename_insn_1.  When
9452         renaming sets of a subreg, emit a copy of the entire reg first.
9453         (rename_insn_1): Treat data as a rename_context *.  Save current
9454         insn in set_data.
9455         (rename_set_data): Add field set_insn.
9456         * Makefile.in (HASHTAB_H): Move up in file.
9457         (OBSTACK_H): New macro.
9458         (collect2.o): Use OBSTACK_H in dependencies.
9459         (sdbout.o): Likewise.
9460         (emit-rtl.o): Likewise.
9461         (simplify-rtx.o): Likewise.
9462         (fix-header.o): Likewise.
9463         (OBJS): Add conflict.o.
9464         (conflict.o): New rule.
9465         * basic-block.h: Include partition.h.
9466         (conflict_graph): New typedef.
9467         (conflict_graph_enum_fn): Likewise.
9468         (conflict_graph_new): New prototype.
9469         (conflict_graph_delete): Likewise.
9470         (conflict_graph_add): Likewise.
9471         (conflict_graph_conflict_p): Likewise.
9472         (conflict_graph_enum): Likewise.
9473         (conflict_graph_merge_regs): Likewise.
9474         (conflict_graph_print): Likewise.
9475         (conflict_graph_compute): Likewise.
9476         * conflict.c: New file.
9477
9478 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9479
9480         * tlink.c (read_repo_files): Don't look for .rpo info for
9481         linker flags.
9482
9483 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9484
9485         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9486
9487 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9488
9489         * config/sh/lib1funcs.asm (___udivsi3_i4):
9490         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9491         only depends on FMOVD_WORKS.
9492
9493 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9494
9495         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9496         make double constant 8-byte aligned.
9497
9498 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9499
9500         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9501         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9502         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9503         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9504         Accept storing GENERAL_REGS into offsetable memory.
9505         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9506         building a TFmode constant other than 0.0L into GENERAL_REGS.
9507
9508 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9509
9510         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9511
9512 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9513
9514         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9515         (macro_cleanup): No need to cast pbuf->macro.
9516         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9517         it returns VSPACE.  Remove check for trailing space after
9518         CPP_COMMENT.
9519         (_cpp_create_definition): Don't diddle flags here.  Return
9520         directly on error.
9521         (unsafe_chars): Handle c1 being EOF.
9522         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9523         checks.  Don't push the buffer till after we're done with
9524         them.
9525         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9526         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9527         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9528         appropriately.
9529         (_cpp_parse_assertion): Don't NUL terminate.
9530         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9531         hspace before calling _cpp_parse_assertion.  Remove all sets
9532         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9533         special with '\n' here.
9534         (maybe_macroexpand): Handle T_EMPTY hash entries without
9535         pushing a buffer at all.
9536         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9537         incrementing the line number here.  Clear
9538         potential_control_macro as well as only_seen_white, if
9539         appropriate.
9540         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9541         (_cpp_get_define_token): New function, basically like
9542         _cpp_get_directive_token was but doesn't eat horizontal space.
9543         Don't do anything with only_seen_white here.
9544         (_cpp_get_directive_token): Just call _cpp_get_define_token
9545         repeatedly till it returns non-hspace.
9546
9547         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9548         (conditional_skip, skip_if_group): Return int.
9549         (DIRECTIVE_TABLE): Change origin of all conditional directives
9550         to "COND".
9551         (TRAD_DIRECT_P): New macro.
9552         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9553         an error for a bogus directive, unless -lang-asm.  Use
9554         TRAD_DIRECT_P. Loop calling handler functions till one returns
9555         zero.
9556         (get_macro_name): Don't diddle flags here.
9557         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9558         Create T_EMPTY nodes for #define macro /* nothing */.
9559         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9560         Use hp->name when calling pass_thru_directive.
9561         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9562         Return the result of conditional_skip and/or skip_if_group.
9563         Don't call _cpp_output_line_command.
9564         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9565         Issue -Wtraditional warnings as appropriate.  Don't complain
9566         about unrecognized directives.  If we are to stop skipping,
9567         return the number of the directive that ended the skip.
9568         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9569         expansion and line commands while skipping.  Return the result
9570         of consider_directive_while_skipping, if nonzero.
9571         (do_endif): Just set potential_control_macro here.
9572         (validate_else): Use _cpp_get_directive_token.
9573         (do_assert, do_unassert): Don't save pointers into the
9574         token_buffer across calls to the lexer.  Use
9575         _cpp_get_directive_token.
9576
9577         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9578         pointer, not an offset.  Replace 'data', which was a generic
9579         pointer, with 'macro', which points to a struct hashnode.
9580         (cpp_reader): Add 'potential_control_macro' pointer.
9581         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9582         (CPP_BUF_GET, CPP_FORWARD): Delete.
9583         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9584         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9585         ACTIVE_MARK_P): Update.
9586         (_cpp_get_define_token): New internal function.
9587         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9588
9589 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9590
9591         * configure.in: And here.
9592         * configure: Regenerate.
9593         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9594         --enable-libstdcxx-v3 is passed at configure time.
9595         * config.h.in: Regenerate.
9596
9597 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9598
9599         * final.c (final): Use xcalloc to allocate line_note_exists.
9600         * function.c (free_after_compilation): Free the temp_slots.
9601         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9602         (combine_temp_slot): Free temp_slots when they get combined.
9603         (purge_addressof): Fix typo in comment.
9604         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9605         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9606
9607         * ggc.h: Include varray.h.
9608         (ggc_pending_trees): Declare.
9609         (ggc_mark_tree_children): Remove declaration.
9610         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9611         * ggc-common.c (ggc_pending_trees): New variable.
9612         (ggc_mark_roots): Call ggc_mark_trees.
9613         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9614         the ggc_pending_trees.
9615         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9616         of ggc.h.
9617
9618 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9619
9620         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9621         GET_MODE_SIZE.
9622
9623 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9624
9625         * sh.c (sh_insn_length_adjustment): New function.
9626         * sh-protos.h (sh_insn_length_adjustment): Declare.
9627         * sh.h (ADJUST_INSN_LENGTH): Use it.
9628
9629 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9630
9631         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9632         from the insn where REG_RETVAL is added.
9633         (emit_no_conflict_block): Ditto.
9634
9635         * md.texi (Standard Names): Clarify when movX is needed.
9636
9637         * combine.c (simplify_comparison) [MINUS]: Do not replace
9638         all (op (minus A B) 0) with (op A B).
9639
9640 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9641                           J"orn Rennecke <amylaar@cygnus.co.uk>
9642
9643         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9644         (block_lump_real): Likewise.
9645
9646 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9647
9648         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9649         remaining non-zero debugging masks.
9650
9651 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9652
9653         * basic-block.h (verify_flow_info): Declare.
9654         (flow_loop_outside_edge_p): Declare.
9655         * flow.c (verify_flow_info): Remove declaration.
9656         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9657
9658 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9659
9660         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9661         not C++ comments.
9662
9663 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9664
9665         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9666         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9667         seqdi_zero_trunc+1): Allow splits only if registers are
9668         different.
9669
9670 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9671
9672         * acconfig.h: Add HAVE_GAS_HIDDEN.
9673         * config.in: Regenerated.
9674         * configure.in: Add test for .hidden pseudo-op in gas.
9675         * configure: Regenerated.
9676         * crtstuff.c: Include auto-host.h.
9677         Emit additional .hidden pseudo-op for __dso_handle if the
9678         assembler knows about it.
9679
9680 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9681
9682         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9683         before freeing argnames.
9684         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9685
9686 2000-04-05  Michael Meissner  <meissner@redhat.com>
9687
9688         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9689         Walton <jonboy@gordian.com> to make memory references with update
9690         work wtih -mregnames.
9691
9692 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9693
9694         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9695         (regrename_optimize): Rename variables `def_uses' and
9696         `ext_basic_blocks' to avoid conflicts with similarly named
9697         typedefs in traditional C.
9698
9699         * calls.c (initialize_argument_information): Fix typo in previous
9700         change.
9701
9702 2000-04-04  Richard Henderson  <rth@cygnus.com>
9703
9704         * regrename.c (consider_available): Test fixed_regs not
9705         PIC_OFFSET_TABLE_REGNUM.
9706
9707 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9708
9709         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9710         crtend.
9711         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9712         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9713         (ENDFILE_LINUX_SPEC): Always use crtend.
9714         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9715         (powerpc-*-linux-gnu): Likewise.
9716         * configure: Regenerate.
9717
9718         * config/rs6000/eabi.h: Don't include sysv4.h.
9719         (MULTILIB_DEFAULTS): Don't define.
9720         * config/rs6000/eabiaix.h: Don't include eabi.h.
9721         * config/rs6000/eabile.h: Delete.
9722         * config/rs6000/eabilesim.h: Delete.
9723         * config/rs6000/eabisim.h: Don't include eabi.h.
9724         * config/rs6000/linux.h: Don't include sysv4.h.
9725         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9726         (MULTILIB_DEFAULTS): Don't redefine.
9727         * config/rs6000/rtems.h: Don't include eabi.h.
9728         * config/rs6000/sol2.h: Don't include sysv4le.h.
9729         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9730         * config/rs6000/t-ppc: Delete.
9731         * config/rs6000/t-ppcgas: Correct comment.
9732         * config/rs6000/t-ppcos: Correct comment.  Don't build
9733         multilibs for -fPIC, rather use -fPIC -mstrict-align
9734         as default.
9735         * config/rs6000/t-ppc: Delete.
9736         * config/rs6000/vxppc.h: Don't include sysv4.h.
9737         * config/rs6000/vxppcle.h: Delete.
9738         * configure.in: Use multiple header files for p2pc ELF targets
9739         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9740         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9741         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9742         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9743         always available for these platforms.
9744
9745 2000-04-04  Richard Henderson  <rth@cygnus.com>
9746
9747         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9748
9749 2000-04-04  Stan Cox  <scox@cygnus.com>
9750
9751         * Makefile.in: Add rules for regrename.o
9752         * regrename.c: New file.
9753         * rtl.h (regrename_optimize): Add prototype.
9754         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9755         (compile_file, decode_d_option): Add support for -frename-registers.
9756         (rest_of_compilation): Call regrename_optimize.
9757         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9758         New macros.
9759
9760 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9761
9762         * Makefile (gccbug): New target.
9763         (doc): Depend on it.
9764         * gcc.texi (Bugs): Link subnodes.
9765         (gccbug): New node.
9766         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9767         Document severities, priorities, and classes in bug form.
9768
9769 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9770
9771         * cpplex.c (trigraph_map, speccase): Combine into single
9772         table, chartab.
9773         (NORMAL, NONTRI): New macros.
9774         (_cpp_read_and_prescan): Change to use unified table.  Use
9775         is_hspace to test for whitespace.
9776
9777         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9778         definition that doesn't provoke the "empty body in an
9779         if-statement" warning.
9780
9781 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9782
9783         * builtins.c (expand_builtin_strlen): Force the source to
9784         be a memory address.
9785
9786 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9787
9788         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9789
9790 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9791
9792         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9793          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9794         (ECF_IS_CONST): Rename to ECF_CONST.
9795         (special_function_p): Make static, change interface.
9796         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9797         (expand_call) ... here; convert number of variables to flags.
9798         (emit_library_call_vlue_1): Likewise.
9799         (setjmp_call_p): New function.
9800         (initialize_argument_information): Accepts flags as argument;
9801         return flags.
9802         (precompute_arguments): Likewise.
9803         * tree.h (special_function_p): Remove.
9804         (setjmp_call_p): Add prototype.
9805
9806 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9807
9808         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9809         so that addresses are offsetable by up to 16 bytes.
9810         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9811         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9812         offsetable.
9813
9814         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9815         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9816         (movsf): Don't force any constant to memory if target is integer
9817         hard register.
9818         Move fp_zero_operand check below the const0_rtx check.
9819         (movtf): Likewise. Also allow fp_zero_operand for stores into
9820         memory.
9821         (movdf): Likewise. Also allow fp_zero_operand for stores into
9822         memory and into integer hard registers.
9823         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9824         movdf_const_intreg_sp64): Remove.
9825         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9826         conditions.
9827         (movdf_no_e_insn_v9_sp32): New pattern.
9828         (movdf_insn_v9only): Remove.
9829         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9830         (movdf_insn_sp64): Remove.
9831         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9832         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9833         (following splits): Rewrite conditions. Add two new splits
9834         for storing 0.0 into memory and registers.
9835         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9836         (movtf_insn_sp32): Redo constraints and conditions.
9837         (movtf_insn_vis_sp32): New pattern.
9838         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9839         (movtf_insn_hq_sp64): Likewise.
9840         (movtf_insn_hq_vis_sp64): New pattern.
9841         (movtf_insn_sp64): Redo constraints and conditions.
9842         (movtf_insn_vis_sp64): New pattern.
9843         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9844         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9845         or memory.
9846         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9847         -mvis or -m64 to take down the number of various reload patterns.
9848
9849 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9850
9851         * pa/pa-64.h: New file.
9852         * pa/pa64-regs.h: New file.
9853         * pa/pa64-start.h: New file.
9854         * pa/t-pa64: New file.
9855         * pa/xm-pa64hpux.h: New file.
9856
9857 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9858
9859         * sparc.c (output_restore_regs): Prototype.
9860         (sparc_emit_float_lib_cmp): Constification.
9861
9862         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9863
9864         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9865         Prototype.
9866
9867         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9868         (get_value_hash, hash_rtx): Likewise.
9869
9870         * ssa.c (compute_conservative_reg_partition): Prototype.
9871
9872         * tree.c (mark_hash_entry): Prototype.
9873
9874 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9875
9876         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9877         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9878         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9879
9880         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9881         * objc/lang-specs.h: Likewise.
9882
9883 2000-04-03  Neil Booth  <NeilB@earthling.net>
9884
9885         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9886         and SYNTAX_ERROR2. Replace `' in messages with ''.
9887         (op_to_str): Make re-entrant.
9888         (_cpp_parse_expr): Implement new error macros. Use | rather
9889         than || to logically or 2 boolean integers.  Simply expression
9890         checking we have a left operand iff needed.
9891
9892 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9893
9894         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9895
9896 2000-04-03  Philip Blundell  <philb@gnu.org>
9897
9898         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9899
9900 2000-04-03  Felix Lee  <flee@cygnus.com>
9901
9902         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9903         (run_shell): Use it.
9904
9905 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9906
9907         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9908         (stmp-fixproto): ...rather than here.
9909
9910 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9911
9912         * pa.c (print_operand): Compute 'base' only inside the code paths
9913         that use it.
9914
9915 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9916
9917         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9918         CEIL_DIV_EXPR.
9919
9920 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9921
9922         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9923
9924 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9925
9926         * Makefile.in (alias.o): Depend on $(TREE_H).
9927
9928 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9929
9930         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9931         processing C++.
9932         * cpplib.c (_cpp_handle_directive): Improve warnings for
9933         traditional C and indented directives.
9934
9935         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9936         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9937         fixinc/inclhack.def: Indent the # of #include_next one space.
9938         * cp/rtti.c: Un-indent #if and #endif.
9939
9940         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9941         syntax error, but an error has already been printed.
9942         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9943         message when called with nothing remaining on the line.
9944         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9945         OTHER token, not an ASSERTION.
9946         * cpplib.c (do_assert): When we create a 'base' node, clear
9947         its aschain pointer.
9948
9949 2000-04-02  Neil Booth <NeilB@earthling.net>
9950
9951         * cppexp.c:  New typedef op_t.  struct operation and struct
9952         token updated to use it.
9953         (op_to_str): New function.
9954         (_cpp_parse_expr): Error messages modified to use op_to_str.
9955
9956 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9957
9958         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9959         before checking MUST_PASS_IN_STACK.
9960
9961 2000-04-02  Neil Booth <NeilB@earthling.net>
9962
9963         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9964         flags and initial priority into a single constant.  New
9965         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9966         (_parse_cpp_expr): Implement new constants.  Take left operand
9967         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9968         parse indicated by reducing FINISHED token.  Remove new lines
9969         from cpp_error messages.
9970
9971 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9972
9973         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9974         permanent obstack.
9975
9976 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9977
9978         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9979         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9980         the strings and function names on the fly.  Take the #sccs
9981         entry out of the table if SCCS_DIRECTIVE is not defined.
9982         (_cpp_handle_directive): Decide if the # was at the beginning
9983         of the line here.  Issue -pedantic warnings for extended
9984         directives here.  Warn about K+R directives with the #
9985         indented, and C89/extended directives with the # not indented,
9986         here.
9987         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9988         do_assert, do_unassert): Don't issue pedantic warning here.
9989
9990         * cpphash.h: Add CPP_WTRADITIONAL macro.
9991         * cpplib.h (struct cpp_options): Rename warn_stringify to
9992         warn_traditional; update comments.
9993         * cppinit.c (handle_option): Set warn_traditional not
9994         warn_stringify.
9995         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9996         CPP_WTRADITIONAL (pfile).
9997         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9998         be ignored in -traditional mode here.
9999
10000         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
10001         to initialize speccase[] and trigraph_map[].  Delete all
10002         references to pfile->input_speccase.  Always treat '?' as a
10003         special character.  Remove table-initialization code from
10004         _cpp_init_input_buffer.
10005
10006         * cpplib.h (struct cpp_reader): Remove input_speccase field.
10007         * cppinit.c (cpp_cleanup): Don't free input_speccase.
10008
10009 2000-04-01  Richard Henderson  <rth@cygnus.com>
10010
10011         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
10012         (mostlyclean): Likewise.
10013
10014         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
10015         (struct dump_file_info, enum dump_file_index, dump_file): New.
10016         (open_dump_file): Take a dump_file_index not a suffix, and a decl
10017         not a string.  Clean out file if we havn't yet done so.  Do nothing
10018         if the dump isn't enabled.
10019         (close_dump_file): Do nothing if the dump isn't open.  Dump
10020         graph data if requested.
10021         (dump_rtl, clean_dump_file): Remove.
10022         (compile_file): Don't clean the dump files.  Only finalize .bp dump
10023         if flag_test_coverage or flag_branch_probabilities.  Only finalize
10024         .combine dump if optimizing.  Iterate over dump_file to finalize the
10025         graph dumps.
10026         (rest_of_compilation): Update for open_dump_file/close_dump_file.
10027         Convert all uses of dump_rtl.
10028         (decode_d_option): Iterate over dump_file to implement 'a' and to
10029         locate pass-specific dumps.
10030
10031 2000-04-01  Neil Booth <NeilB@earthling.net>
10032
10033         * cppexp.c: Redefine priority constants.
10034         (_cpp_parse_expr): Replace left and right priority scheme with
10035         single priority logic.  Move LOGICAL to same place as COMPARE.
10036         Remove bogus check for multiple unary +/- operators.
10037
10038 2000-04-01  Neil Booth <NeilB@earthling.net>
10039
10040         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
10041         within the switch statement.  Binary operations break out of
10042         the switch naturally.  '(' tokens handled by forcing
10043         immediate shift.  ')' handled by forcing immediate reduce to
10044         the previous '('.  New error messages.
10045
10046 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
10047
10048         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
10049         part', it's already in use.  Use %K instead.  Add a return at the
10050         end of what is now %K.
10051         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
10052
10053 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10054
10055         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
10056         allocate_dynamic_stack_space.
10057         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
10058         update stack_pointer_delta; do not update arg_size_so_far.
10059         (compute_argument_block_size): Use stack_delta instead of
10060         stack_pointer_pending and arg_size_so_far.
10061         (expand_call): Add sanity checking for stack_pointer_delta;
10062         save and restore stack_pointer_delta for SIB, use
10063         stack_pointer_delta for alignment; do not update arg_space_so_far.
10064         (emit_library_call_value): Use stack_pointer_delta for alignment.
10065         (store_one_arg): Do not update arg_space_so_far.
10066         * explow.c (adjust_stack, anti_adjust_stack): Update
10067         stack_pointer_delta.
10068         (allocate_dynamic_stack_space): Add sanity checking for
10069         stack_pointer_delta.
10070         * expr.c (init_expr, clear_pending_stack_adjust): Clear
10071         stack_pointer_delta.
10072         (emit_push_insn): Update stack_pointer_delta.
10073         * function.h (struct expr_status): Add x_stack_pointer_delta;
10074         remove x_arg_space_so_far.
10075         (arg_space_so_far): Remove.
10076         (stack_pointer_delta): New macro.
10077
10078 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
10079
10080         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
10081         Reorder struct cpp_options and struct cpp_reader for better
10082         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
10083         takes two args.  Change all 'char' flags to 'unsigned char'.
10084         Move show_column flag into struct cpp_options.  Don't
10085         prototype cpp_options_init.
10086         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
10087         cppinit.c, cpplex.c, cpplib.c:
10088         Replace CPP_OPTIONS (pfile)->whatever with
10089         CPP_OPTION (pfile, whatever), and likewise for
10090         opts = CPP_OPTIONS (pfile); ... opts->whatever;
10091
10092         * cppinit.c (merge_include_chains): Take a cpp_reader *.
10093         Extract CPP_OPTION (pfile, pending) and work with that
10094         directly.
10095         (cpp_options_init): Delete.
10096         (cpp_reader_init): Turn on on-by-default options here.
10097         Allocate the pending structure here.
10098         (cl_options, enum opt_code): Define these from the same table,
10099         kept in a large macro.  Add -fshow-column and -fno-show-column
10100         options.
10101
10102         * cpperror.c (v_message): If show_column is off, don't print
10103         the column number.
10104
10105         * cppmain.c: Update for new interface.
10106         * fix-header.c: Likewise.
10107
10108 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
10109
10110         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
10111         definition.
10112         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
10113         are passed to any invocation of AR_FOR_TARGET.
10114         (AR_CREATE_FOR_TARGET): New macro.
10115         (AR_EXTRACT_FOR_TARGET): New macro.
10116         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
10117         AR_EXTRACT_FOR_TARGET.
10118         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
10119         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
10120         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
10121         AR_EXTRACT_FOR_TARGET to sub-makes.
10122
10123 2000-03-31  Neil Booth <NeilB@earthling.net>
10124
10125         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
10126         PAREN_INNER_PRIO.
10127         (_cpp_parse_expr): Check for multiple unary +/- operators.
10128         Correct priorities of ':' and '?'.  Treat ')' as having a
10129         value.  Ensure conditional expression is not void.
10130
10131 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
10132
10133         * alias.c (canon_rtx): Make it global.
10134         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
10135         equality.
10136         * cse.c (struct table_elt): Add canon_exp.
10137         (insert): Clear it.
10138         (invalidate): Canonicalize expressions only once.
10139         * rtl.h (canon_rtx): Declare.
10140
10141 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
10142
10143         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
10144         * alias.c (reg_known_value): Add comments.
10145         (init_alias_analysis): Likewise.
10146         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
10147         address.
10148         (cse_basic_block): Fix typo in comment.
10149         * emit-rtl.c: Include hashtab.h.
10150         (const_int_htab): New variable.
10151         (const_int_htab_hash): New function.
10152         (const_int_htab_eq): Likewise.
10153         (rtx_htab_mark_1): Likewise.
10154         (rtx_htab_mark): Likewise.
10155         (gen_rtx_CONST_INT): Cache all CONST_INTs.
10156         (unshare_all_rtx): Fix formatting.
10157         (init_emit_once): Initialize const_int_htab.
10158         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
10159         address.
10160         * rtl.texi: Document the fact that all CONST_INTs with the same
10161         value are shared.
10162
10163 2000-03-30  Richard Henderson  <rth@cygnus.com>
10164
10165         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
10166
10167 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
10168
10169         * configure.in: Comment out --enable-c-cpplib stanza.
10170         * configure: Regenerate.
10171
10172 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10173
10174         * expr.c (store_constructor): Properly compute displacement and
10175         alignment when offset is variable.
10176
10177         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
10178         cases of alignment in bytes.
10179
10180 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
10181
10182         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
10183         since it is used to generate c-parse.y.
10184         * objc-parse.c, objc-parse.y: Regenerated.
10185
10186         * function.c (expand_function_end): Pass alignment argument to
10187         emit_block_move in bits, not bytes.
10188
10189 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10190
10191         * expr.c (move_by_pieces_ninsns): Fix one more missing align
10192         correction.
10193
10194         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
10195
10196         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
10197         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
10198         * function.c (assign_parms): Likewise.
10199         * integrate.c (expand_inline_function): Likewise.
10200         * stmt.c (expand_decl): Likewise.
10201         (copy_rtx_and_substitute): Likewise.
10202         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
10203         (clear_by_pieces): Fix error in last change.
10204         * emit-rtl.c (init_emit): Set known registers alignment in bits.
10205         * function.h (regno_pointer_align): Now unsigned.
10206         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
10207         is in bits.
10208         * config/i386/i386.c (aligned_operand): Likewise.
10209         * config/sparc/sparc.c (mem_min_alignment): Likewise.
10210         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
10211         (unaligned_memory_operand): Likewise.
10212         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
10213         Also make alignments and sizes unsigned and some whitespace cleanup.
10214         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
10215
10216         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
10217         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
10218         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
10219         (expand_builtin_memset): Likewise, but to clear_storage.
10220         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
10221         (restore_fixed_argument_area): Likewise.
10222         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
10223         (load_register_parameters): Likewise, to emit_group_load.
10224         (expand_call): Likewise, to emit_group_store and emit_block_move.
10225         (emit_library_call_value_1): Likewise, to emit_block_move.
10226         (store_one_arg): Likewise, and to emit_push_insn.
10227         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
10228         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
10229         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
10230         (emit_block_move, emit_group_load, emit_group_store): Likewise.
10231         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
10232         (expand_assigment, store_expr, store_constructor_field): Likewise.
10233         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
10234         (store_constructor, store_field, get_inner_reference): Likewise.
10235         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
10236         (expand_expr, case COMPONENT_REF): Likewise.
10237         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
10238         and positions; reindent code.
10239         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
10240         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
10241         (assign_parms): Likewise to emit_group_store.
10242         * optabs.c (prepare_cmp_insn): Alignment is in bits.
10243         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
10244         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
10245         (expand_return): Likewise to {extract,store}_bit_field.
10246         * stor-layout.c (get_mode_alignment): Minor cleanup.
10247         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
10248         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
10249
10250 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10251
10252         * config/arm/arm.h: Undo effects of previous delta:
10253         (ASM_SPEC): Do not define.
10254         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
10255
10256         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
10257         typo.
10258
10259 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10260
10261         * cppinit.c (cpp_start_read): Call initialize_dependency_output
10262         only after reading in the primary source file.
10263
10264 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
10265
10266         * c-common.c (c_common_nodes_and_builtins): The first parameter to
10267         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
10268         or a reference to a va_list.
10269         * builtins.c (stabilize_va_list): Simplify now we don't have to
10270         work around C array address decay.
10271         * c-typeck.c (convert_for_assignment): Handle assignment to
10272         a reference parameter by taking the address of the RHS.
10273         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
10274         (va_copy): Likewise.
10275         (__va_copy): Likewise.
10276         * ginclude/varargs.h (va_start): Likewise.
10277         (__va_copy): Likewise.
10278
10279 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
10280
10281         * i386/djgpp.h: Remove extraneous "+".
10282
10283         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
10284
10285         * calls.c (expand_call): Fix typo in last change.
10286
10287 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
10288
10289         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
10290         been expanded.
10291
10292 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10293
10294         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
10295         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
10296         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
10297         * tree.c (bit_position, byte_position): Likewise.
10298         * tree.h: Declare new functions.
10299
10300 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10301
10302         * config/arm/arm.c: Minor formatting changes/
10303         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
10304         already defined.
10305         (ASM_SPEC): Define if not already defined.
10306
10307 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10308
10309         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
10310         _cpp_calc_hash.
10311
10312 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
10313
10314         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
10315         value, don't output it as unsigned.
10316
10317 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
10318
10319         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
10320
10321 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10322
10323         * c-common.c (c_common_nodes_and_builtins): Don't special case
10324         cplus_mode when declaring builtin bzero/bcmp, always avoid
10325         prototype arguments.
10326
10327 2000-03-29  Bruce Korb  <bkorb@gnu.org>
10328
10329         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
10330         to a non-file
10331
10332 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10333
10334         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
10335         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
10336         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
10337         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
10338         (save_fixed_argument_area, restore_fixed_argument_area):
10339         conditionize by #ifdef REG_PARM_STACK_SPACE only.
10340         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
10341         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
10342         (precompute_register_parameters): Avoid #ifdefs on
10343         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
10344         (stire_one_args): Likewise.
10345         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
10346         (emit_library_call_value_1): Likewise.
10347         (compute_argument_block_size): Align to STACK_BOUNDARY only for
10348         ACCUMULATE_OUTGOING_ARGS.
10349         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
10350         value.
10351         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
10352         (use_crosses_set_p): Likewise.
10353         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
10354         #define ACCUMULATE_OUTGOING_ARGS 1.
10355         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
10356         frames.
10357         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
10358         constants.
10359         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
10360         (TARGET_SWITCHES): Add push-args, no-push-args,
10361         accumulate-outgoing-args and no-accumulate-outgoing-args.
10362         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
10363         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
10364         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
10365         and PUSH_ROUNDING.
10366         (emit_push_insn): Likewise.
10367         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10368         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
10369         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10370         (STACK_DYNAMIC_OFFSET): Define correctly for both
10371         ACCUMULATE_OUTGOING_ARGS and normal mode.
10372         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
10373         * tm.texi (PUSH_ARGS): Document.
10374         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
10375
10376 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10377
10378         * flags.h (flag_optimize_sibling_calls): Declare.
10379         * calls.c (expand_call): Fail sibcall when
10380         !flag_optimize_sibling_calls
10381         * invoke.texi (flag_optimize_sibling_calls): Document.
10382         * toplev.c (flag_optimize_sibling_calls): New global variable.
10383         (f_options): Add flag_optimize_sibling_calls.
10384         (rest_of_compilation): Conditionize
10385         optimize_sibling_and_tail_recursive_calls by
10386         flag_optimize_sibling_calls.
10387         (main): Set flag_optimize_sibling_calls for -O2.
10388         * stmt.c (expand_return): Conditionize tail recursion by
10389         flag_optimize_sibling_calls.
10390
10391 2000-03-29  Richard Henderson  <rth@cygnus.com>
10392
10393         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
10394         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
10395
10396 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
10397
10398         * except.c (add_eh_table_entry): Mark type_info's as referenced.
10399
10400 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10401
10402         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
10403         is given.
10404         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
10405         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
10406         * config/rs6000/aix.h: then modified likewise.
10407
10408 2000-03-28  Richard Henderson  <rth@cygnus.com>
10409
10410         * rtl.h: Redistribute enum reg_note documentation.
10411         Kill trailing whitespace.
10412         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
10413         Kill trailing whitespace.
10414
10415 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
10416
10417         * cppfiles.c (hash_IHASH): Just return i->hash.
10418         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
10419         htab_find_with_hash.
10420         (cpp_read_file): Likewise.
10421         (find_include_file): Likewise.  Properly initialize
10422         ih->nshort.  Share ih->name and ih->nshort if possible.
10423         * cpphash.c (_cpp_calc_hash): New function.
10424         (hash_HASHNODE): Just return h->hash.
10425         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
10426         htab_find_with_hash.
10427         * cpphash.h: Prototype _cpp_calc_hash.
10428         * cppinit.c (initialize_builtins): Provide a valid hash
10429         to _cpp_make_hashnode, using _cpp_calc_hash.
10430
10431         * cpphash.c (collect_expansion): # is not a special character
10432         in object-like macros.  In -traditional mode, /**/ is not
10433         token paste at the beginning or end of the line.
10434         * cpplib.c (do_include, do_import, do_include_next): If
10435         parse_include fails, return immediately.
10436
10437 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10438
10439         * config/arm/arm.md (return peepholes): Update to reflect the new
10440         call insn patterns.
10441         * config/arm/arm.c (arm_volatile_func): Also check
10442         current_function_nothrow.
10443         (output_return_instruction, output_func_prologue): Use it.
10444         (arm_output_epilogue, arm_expand_prologue): Likewise.
10445
10446 2000-03-27  Tom Tromey  <tromey@cygnus.com>
10447
10448         * gcc.c (handle_braces): In {x*...} case, break out of loop if
10449         switch is found.
10450
10451 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10452
10453         * expr.c (store_constructor): SIZE now signed.
10454         For EXPR_SIZE, don't evaluate size; just needed if constant.
10455         * fold-const.c (fold): Fix a number of cases when folded tree is
10456         wrong type.
10457         * function.c (flush_addressof): Reenable.
10458         * tree.h (flush_addressof): Likewise.
10459         * toplev.c (independent_decode_option): Look at strings_processed.
10460         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
10461
10462 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
10463
10464         * sibcall.c (indentify_call_return_value): Find last call in the chain;
10465         Allow stack adjustment after function call.
10466
10467         * regmove.c (struct csa_memlist): Make mem field rtx *.
10468         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
10469         (try_apply_stack_adjustment): Replace whole MEM rtx.
10470         (combine_stack_adjustments_for_block): Update calls
10471         to record_one_stack_ref.
10472
10473 2000-03-28  Neil Booth  <NeilB@earthling.net>
10474
10475         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10476         '\\' rather than a null character, so nulls are not special.  Fix
10477         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10478         speed trigraph conversion.
10479         (_cpp_init_input_buffer): Initialize trigraph map.
10480
10481 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10482
10483         * config/i386/i386.c (output_387_binary_op): Correct intel
10484         mode assembly output, and add spaces after commas in AT&T
10485         output.  Correct Unixware assembler comment.  Document input
10486         constraints.  Comment fp operations.  Reduce profligate buffer
10487         size.  Remove extraneous abort.  Localize temp var.
10488         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10489         (output_fix_trunc): Add spaces after commas in assembly output.
10490
10491 2000-03-27  Richard Henderson  <rth@cygnus.com>
10492
10493         * i386-protos.h (ix86_match_ccmode): Declare.
10494         * i386.c (ix86_match_ccmode): New.
10495         (ix86_expand_fp_compare): Update for pattern renames.
10496         (ix86_expand_strlensi_unroll_1): Likewise.
10497         * i386.h (EXTRA_CC_MODES): Add CCZ.
10498         (SELECT_CC_MODE): Use it for EQ/NE zero.
10499         * i386.md (cmpsi_ccz_1): New.
10500         (cmpqi_ccz_1): New.
10501         (*testsi_ccz_1): New.
10502         (testqi_ccz_1): New.
10503         (cmpsi_ccno_1): Rename from cmpsi_0.
10504         (testsi_ccno_1): Rename from testsi_1.
10505         (testqi_ccno_1): Rename from testqi_1.
10506         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10507         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10508         (*cmphi_0): Use ix86_match_ccmode.
10509         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10510         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10511         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10512         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10513         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10514         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10515         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10516         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10517         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10518         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10519         (appropriate peepholes): Likewise.
10520         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10521         (*subsi_3, *subhi_3, *subqi_3): Remove.
10522         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10523         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10524         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10525         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10526         (x86_shift_adj_1): Use CCZ.
10527         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10528
10529 2000-03-27  Stan Cox  <scox@cygnus.com>
10530
10531         * resource.h (mark_resource_type): New.
10532         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10533         find_free_register): Use mark_resource_type.
10534         (mark_set_resources): Change include_delayed_effects
10535         to mark_resource_type.
10536         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10537         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10538         Use mark_resource_type.
10539
10540 2000-03-27  Richard Henderson  <rth@cygnus.com>
10541
10542         * i386.md (call_pop_0, call_value_pop_0): New.
10543         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10544         (call_value_pop_1): Likewise.
10545         (call_0, call_value_0): New.
10546         (call_1, call_value_1): Remove constraint from unused arg.
10547
10548 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10549
10550         * invoke.texi (Spec Files): Document new spec % command created by
10551         Tom Tromey's recent patch.
10552
10553 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10554
10555         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10556         if not defined.
10557
10558 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10559
10560         * expr.c (expand_assignment): Fix typo in last change.
10561
10562         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10563
10564 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10565
10566         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10567         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10568         and DECL_INLINE if FUNCTION_DECL.
10569         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10570         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10571         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10572         (combine_parm_decls): Likewise.
10573         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10574         * print-tree.c (print_node): Likewise.
10575         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10576         DECL_TRANSPARENT_UNION on proper decl types.
10577         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10578         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10579         DECL_BIT_FIELD of FIELD_DECL.
10580         * tree.h (DECL_RESULT_FLD): New macro.
10581
10582         * expr.c (expand_assignment): Add code to handle variable-sized
10583         BLKmode case.
10584
10585 2000-03-26  Richard Henderson  <rth@cygnus.com>
10586
10587         * calls.c (expand_call): Pass parms not original exp to
10588         optimize_tail_recursion.  Mind return value instead of looking
10589         for a barrier.
10590         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10591         call_expr.  Move checks for call_expr and current_function_decl ...
10592         (expand_return): ... here.
10593
10594 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10595
10596         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10597         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10598         defines.
10599         (process_command): Use them.
10600         (check_live_switch): Likewise.
10601         (give_switch): Skip ignored switches.
10602
10603 2000-03-26  Jan Hubicka  <jh@suse.cz>
10604
10605         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10606         for minimal jump pass test.
10607
10608 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10609
10610         * integrate.c (function_cannot_inline_p): Do inline functions that
10611         return `void'.
10612
10613 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10614
10615         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10616         now a list of TREE_LIST entries, not types.
10617         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10618
10619         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10620         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10621         int_bit_position.
10622         * config/mips/mips.c (function_arg): Likewise; also remove cast
10623         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10624         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10625         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10626         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10627         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10628         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10629         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10630         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10631         num_adjusts now unsigned.
10632         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10633         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10634         NREGS now unsigned.
10635         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10636         as is BITPOS variable; use host_integerp and int_bit_position.
10637         (function_arg_record_value_2): Likewise.
10638         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10639         Variable REGNO now unsigned.
10640         (function_arg_record_value): NREGS now unsigned.
10641
10642 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10643
10644         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10645
10646 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10647
10648         * Rework fields used to describe positions of bitfields and
10649         modify sizes to be unsigned and use HOST_WIDE_INT.
10650         * alias.c (reg_known_value_size): Now unsigned.
10651         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10652         (really_start_incremental_init): Use bitsize_zero_node.
10653         (push_init_level, pop_init_level, output_init_element): Likewise.
10654         Use bitsize_unit_node and bitsize_one_node.
10655         (output_pending_init_elements, process_init_element): Likewise.
10656         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10657         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10658         HOST_WIDE_INT, respectively.
10659         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10660         (num_sign_bit_copies): Returns unsigned.
10661         BITWIDTH now unsigned; rework arithmetic.
10662         Remove recursive call from arg to MAX.
10663         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10664         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10665         REGNO now unsigned.
10666         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10667         (find_split_point, expand_compound_operation, make_extraction): LEN
10668         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10669         (make_field_assignment): Likewise.
10670         (combine_simplify_rtx): Add cast.
10671         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10672         (force_to_mode): WIDTH now unsigned; add cast.
10673         (if_then_else_cond): SIZE now unsigned.
10674         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10675         (extended_count): Now returns unsigned.
10676         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10677         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10678         (simplify_comparison): MODE_WIDTH now unsigned.
10679         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10680         (mark_used_regs_combine): Likewise; rework arithmetic.
10681         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10682         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10683         (record_promoted_value): REGNO now unsigned.
10684         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10685         (get_last_value): REGNO now unsigned.
10686         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10687         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10688         (remove_death): Arg REGNO now unsigned.
10689         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10690         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10691         now unsigned.
10692         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10693         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10694         (struct cse_reg_info): REGNO now unsigned.
10695         (cached_regno): Now unsigned.
10696         (REGNO_QTY_VALID_P): Add cast.
10697         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10698         (remove_invalid_regs): Likewise.
10699         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10700         as are variables END and I.
10701         (get_cse_reg_info, insert): Likewise.
10702         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10703         (canon_hash): Likewise.
10704         (insert_regs, lookup_for_remove): REGNO now unsigned.
10705         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10706         New variable RN.
10707         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10708         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10709         * emit-rtl.c (subreg_realpart_p): Add cast.
10710         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10711         (operand_subword_force): Arg I is now unsigned.
10712         * except.c (eh_regs): Variable I is now unsigned.
10713         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10714         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10715         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10716         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10717         (extract_split_bit_field, store_bit_field, extract_bit_field):
10718         Likewise.
10719         * expr.c (store_constructor_fields, store_constructor, store_field):
10720         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10721         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10722         (do_jump): Likewise.
10723         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10724         MAX_SIZE is now unsigned.
10725         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10726         (emit_group_store): Likewise.
10727         (emit_move_insn): I now unsigned.
10728         (store_constructor): Use host_integerp, tree_low_cst, and
10729         bitsize_unit_node.
10730         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10731         Rework all calculations to use trees and new fields.
10732         * expr.h (promoted_input_arg): Regno now unsigned.
10733         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10734         (mark_seen_cases): Arg is HOST_WIDE_INT.
10735         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10736         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10737         precisions and alignments are unsigned.
10738         (optimize_bit_field_compare, fold_truthop): Likewise.
10739         (int_const_binop): Adjust threshold for size_int_type_wide call.
10740         (fold_convert): Likewise.
10741         (size_int_type_wide): Make table larger and fix thinko that only
10742         had half of table used.
10743         (all_ones_mask_p, fold): Precisions are unsigned.
10744         * function.c (put_reg_info_stack): REGNO is unsigned.
10745         (instantiate_decl): Size is HOST_WIDE_INT.
10746         (instantiate_virtual_regs): I is unsigned.
10747         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10748         (promoted_input_arg): REGNO is unsigned.
10749         * function.h (struct function): x_max_parm_reg is now unsigned.
10750         * gcse.c (max_gcse_regno): Now unsigned.
10751         (struct null_pointer_info): min_reg and max_reg now unsigned.
10752         (lookup_set, next_set): REGNO arg now unsigned.
10753         (compute_hash_table): REGNO and I now unsigned.
10754         (handle_avail_expr): regnum_for_replacing now unsigned.
10755         (cprop_insn): REGNO now unsigned.
10756         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10757         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10758         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10759         * hard-reg-set.h (reg_class_size): Now unsigned.
10760         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10761         * jump.c (mark_modified_reg): I now unsigned; add cast.
10762         (rtx_equal_for_thread_p): Add cast.
10763         * loop.c (max_reg_before_loop): Now unsigned.
10764         (struct_movable): REGNO now unsigned.
10765         (try_copy_prop): REGNO arg unsigned.
10766         (regs_match_p): XN and YN now unsigned.
10767         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10768         (strength_reduce): Likewise; NREGS also unsigned.
10769         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10770         * loop.h (struct iv_class): REGNO now unsigned.
10771         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10772         Now unsigned.
10773         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10774         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10775         * optabs.c (expand_binop): I and NWORDS now unsigned.
10776         (expand_unop): I now unsigned.
10777         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10778         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10779         * real.c (significand_size): Now returns unsigned.
10780         * real.h (significand_size): Likewise.
10781         * regclass.c (reg_class_size): Now unsigned.
10782         (choose_hard_reg_mode): Both operands now unsigned.
10783         (record_reg_classes): REGNO and NR now unsigned.
10784         (reg_scan): NREGS now unsigned.
10785         (reg_scan_update): old_max_regno now unsigned.
10786         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10787         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10788         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10789         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10790         Likewise for variable R.
10791         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10792         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10793         (find_equiv_reg): Add casts.
10794         (regno_clobbered_p): Arg REGNO now unsigned.
10795         * reload.h (struct reload): NREGS now unsigned.
10796         (refers_to_regno_for_reload_p): Regno args are unsigned.
10797         (regno_clobbered_p): Likewise.
10798         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10799         (compute_use_by_pseudos): REGNO now unsigned.
10800         (find_reg): I and J now unsigned, new variable K, and change loop
10801         variables accordingly; THIS_NREGS now unsigned.
10802         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10803         (spill_hard_reg): REGNO arg now unsigned; add casts.
10804         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10805         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10806         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10807         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10808         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10809         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10810         (emit_reload_insns): REGNO now unsigned.
10811         (reload_cse_move2add): Add cast.
10812         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10813         and rework loop.
10814         * resource.c (mark_referenced_resources, mark_set_resources): New
10815         variable R; REGNO and LAST_REGNO now unsigned.
10816         (mark_target_live_regs): J and REGNO now unsigned.
10817         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10818         * rtl.h (union rtunion_def): New field rtuint.
10819         (XCUINT): New macro.
10820         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10821         (operand_subword, operand_subword_force): Word number is unsigned.
10822         (choose_hard_reg_mode): Operands are unsigned.
10823         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10824         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10825         (regno_use_in, combine_instructions, remove_death): Likewise.
10826         (reg_scan, reg_scan_update): Likewise.
10827         (extended_count): Return is unsigned.
10828         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10829         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10830         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10831         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10832         (reg_reg_last_1): FIRS and LAST now unsigned.
10833         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10834         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10835         now unsigned.
10836         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10837         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10838         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10839         (replace_regs): Arg NREGS now unsigned.
10840         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10841         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10842         (simplify_binary_operation): Likewise.
10843         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10844         THIS_LAST now unsigned.
10845         (cselib_record_set): Add cast.
10846         * ssa.c (ssa_max_reg_num): Now unsigned.
10847         (rename_block): REGNO now unsigned.
10848         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10849         sizes now unsigned.
10850         (all_cases_count): Just return -1 not -2.
10851         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10852         Rework tests to use trees whenever possible.
10853         Use host_integerp and tree_low_cst.
10854         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10855         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10856         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10857         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10858         (smallest_mode_for_size): Likewise.
10859         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10860         KNOWN_ALIGN is now an alignment, so simplify code.
10861         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10862         (start_record_layout): Renamed from new_record_layout_info.
10863         Update to new fields.
10864         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10865         New functions.
10866         (place_union_field): Renamed from layout_union_field.
10867         Update to use new fields in rli.
10868         (place_field): Renamed from layout_field.
10869         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10870         (finalize_record_size): Rework to use new fields in rli and handle
10871         union.
10872         (compute_record_mode): Rework to simplify and to use new DECL fields.
10873         (finalize_type_size): Make rounding more consistent.
10874         (finish_union_layout): Deleted.
10875         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10876         (layout_type, case RECORD_TYPE): Call new function names.
10877         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10878         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10879         (get_best_mode): UNIT is now unsigned; remove casts.
10880         * tree.c (bit_position): Compute from new fields.
10881         (byte_position, int_byte_position): New functions.
10882         (print_type_hash_statistics): Cast to remove warning.
10883         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10884         (build_index_type): Likewise; make subtype of sizetype.
10885         (build_index_2_type): Pass sizetype to build_range_type.
10886         (build_common_tree_nodes): Use size_int and bitsize_int to
10887         initialize nodes; add bitsize_{zero,one,unit}_node.
10888         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10889         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10890         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10891         (DECL_FIELD_BITPOS): Deleted.
10892         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10893         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10894         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10895         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10896         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10897         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10898         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10899         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10900         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10901         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10902         (DECL_ALIGN): Adjust to new field in union.
10903         (DECL_OFFSET_ALIGN): New field.
10904         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10905         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10906         (union tree_decl): Add struct for both aligns.
10907         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10908         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10909         (struct record_layout_info): Rework fields to have offset
10910         alignment and byte and bit position.
10911         (start_record_layout, place_field): Renamed from old names.
10912         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10913         (byte_position, int_byte_position): Likewise.
10914         (get_inner_reference): Change types of position and length.
10915         * unroll.c (unroll_loop): New variable R; use for some loops.
10916         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10917         (calculate_giv_inc): Arg REGNO now unsigned.
10918         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10919         * varasm.c (assemble_variable): Clean up handling of size using
10920         host_integerp and tree_low_cst.
10921         (decode_addr_const): Use byte, not bit, position.
10922         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10923         use tree_low_cst and int_bit_position.
10924         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10925
10926 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10927
10928         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10929         (reorder_block_def): New members eff_head and eff_end.
10930         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10931         (verify_insn_chain): New function.
10932         (skip_insns_between_block): Add code to skip deleted insns.
10933         Check for note before using.
10934         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10935         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10936         Check for note before using.
10937         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10938         (fixup_reorder_chain): Restructure, clean up, defect removal.
10939         (reorder_basic_blocks): Remove last_insn and references to it.
10940         Moved insn chain verification code into a new function (see above).
10941         Delete defective code that sets last insn.
10942         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10943         all blocks.
10944
10945 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10946
10947         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10948
10949 2000-03-24  Richard Henderson  <rth@cygnus.com>
10950
10951         * tree.c (lang_safe_for_unsave): Remove.
10952         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10953         allowing for two levels of unsafeness.  Remove lang hook.
10954         * tree.h: Update declarations.
10955         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10956         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10957         Always fail sibcalls when there are pending cleanups.
10958
10959 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10960
10961         * flow.c (propagate_block): When we delete an ADDR_VEC,
10962         also delete the BARRIER following it if there is one.
10963
10964 2000-03-24  Richard Henderson  <rth@cygnus.com>
10965
10966         * builtins.c (expand_builtin_bzero): Convert `length' argument
10967         to sizetype.
10968
10969 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10970
10971         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10972         comparison if regno's are equal.
10973         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10974         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10975         (expand_call): Update caller.
10976         Avoid making a sibling call if argument size of the callee is larger
10977         than argument size of the caller.
10978         Call hard_function_value with outgoing set if in sibcall pass.
10979         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10980
10981         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10982         Change LEAF_REGISTERS from an array initializer to actual array
10983         identifier. Move static global variable into the function.
10984         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10985         sequences for leaf functions.
10986         * global.c (global_alloc): Likewise.
10987         * tm.texi (LEAF_REGISTERS): Update documentation.
10988
10989         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10990         TARGET_FLAT leaf disabling hack.
10991         (LEAF_REGISTERS): Changed from an array initializer to actual array
10992         identifier to avoid duplication and remove the above hack.
10993         (FUNCTION_OK_FOR_SIBCALL): Define.
10994         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10995         always like call attribute.
10996         (eligible_for_sibcall_delay): New attribute.
10997         (sibcall): New delay type.
10998         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10999         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
11000         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
11001         * config/sparc/sparc.c (sparc_leaf_regs): New array.
11002         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
11003         New functions.
11004         (output_function_epilogue): Move part of the code into
11005         output_restore_regs.
11006         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
11007         TYPE_SIBCALL.
11008         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
11009         prototypes.
11010
11011         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
11012         until infrastructure is finished.
11013
11014 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
11015
11016         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
11017         (save_parm_insns): Not here.
11018
11019 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11020
11021         * builtins.c (expand_builtin_bzero): New function.
11022         (expand_builtin): Handle bzero.
11023
11024         * builtins.def: Add BUILT_IN_BZERO.
11025
11026         * c-common.c (c_common_nodes_and_builtins): Provide builtin
11027         prototype & function for bzero.
11028
11029 2000-03-23  Michael Meissner  <meissner@redhat.com>
11030
11031         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
11032         change adding TARGET_FP to the TF floating point insns, except for
11033         trunctfsf2, which generates direct calls to truncdfsf2.
11034
11035 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
11036
11037         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
11038         try to protect against middle-end changes that break binary
11039         compatibility.
11040         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
11041
11042 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11043
11044         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
11045
11046 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11047
11048         * calls.c (expand_call): If TARGET is passed by reference and
11049         is readonly, write a CLOBBER.
11050
11051 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11052
11053         * builtins.c (expand_builtin): Handle bcmp.
11054
11055         * builtins.def: Add BUILT_IN_BCMP.
11056
11057         * c-common.c (c_common_nodes_and_builtins): Provide builtin
11058         prototype & function for bcmp.
11059
11060 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
11061
11062         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
11063         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
11064         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
11065
11066 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
11067
11068         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
11069         alternative when using -fp64 -gp32.
11070
11071 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11072
11073         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
11074         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
11075         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
11076
11077         * frame.h (frame_state): Revert last change.
11078         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
11079         * libgcc2.c (throw_helper): Revert last change.
11080
11081 2000-03-22  Richard Henderson  <rth@cygnus.com>
11082
11083         * stmt.c (expand_asm_operands): Don't promote the temporary.
11084
11085 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11086
11087         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
11088         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
11089           c_get_alias_set): Likewise.
11090         * c-decl.c (duplicate_decls): Likewise.
11091         * c-typeck.c (default_conversion,build_unary_op): Likewise.
11092         * calls.c (initialize_argument_information): Likewise.
11093         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
11094         Likewise.
11095         * dwarfout.c (decl_class_context,output_type): Likewise.
11096         * expr.c (get_inner_reference): Likewise.
11097         * fold-const.c (simple_operand_p,fold): Likewise.
11098         * function.c (aggregate_value_p): Likewise.
11099         * stmt.c (expand_asm_operands): Likewise.
11100         * varasm.c (named_section): Likewise.
11101
11102 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11103
11104         Implement dwarf2 exception handling for the ARM.
11105         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
11106         (DWARF_FRAME_RETURN_COLUMN): Define.
11107         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
11108         REG_FRAME_RELATED_EXPR note.
11109         (emit_sfm): Likewise.
11110         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
11111         * dwarf2out.c (reg_save): Handle saving a register to itself.
11112         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
11113         * except.c (eh_regs): Don't use the static chain reg if it's
11114         callee-saved.
11115         * frame.h (frame_state): Add cfa_saved field.
11116         * frame.c (execute_cfa_insn): Set it.
11117         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
11118         the epilogue.
11119         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
11120         Now takes a parm.
11121         (instantiate_virtual_regs): Adjust.
11122         * tm.texi: Adjust.
11123         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11124         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11125         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
11126
11127         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
11128         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
11129
11130 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11131
11132         * builtins.def: New file.
11133
11134         * Makefile.in (TREE_H): Depend on builtins.def.
11135
11136         * builtins.c (built_in_names): Use builtins.def.
11137
11138         * tree.h (built_in_function): Likewise.
11139
11140 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
11141
11142         * tree.c (size_in_bytes): Return size_zero_node, not
11143         integer_zero_node.
11144
11145 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
11146
11147         * config/fp-bit.c (pack_d): Correct the case when a denormal
11148         is rounded up and stops being denormal.
11149
11150 2000-03-21  Richard Henderson  <rth@cygnus.com>
11151
11152         * config/alpha/alpha.c (function_arg): Check for void_type_node
11153         before using MUST_PASS_IN_STACK.
11154
11155 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
11156
11157         * regmove.c (combine_stack_adjustments_for_block): Check that
11158         the stack pointer is a valid memory address.
11159
11160 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
11161
11162         * calls.c: re-install Mar 16 emit_library_call merge.
11163
11164 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
11165
11166         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
11167         we cannot be sure that if reload_completed base register will
11168         be properly aligned.
11169
11170 2000-03-21  Richard Henderson  <rth@cygnus.com>
11171
11172         * flow.c (delete_block): Fix typo last change.
11173
11174 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
11175
11176         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
11177         not COMPLETE_TYPE_P, to check the type of the expression.
11178
11179 2000-03-21  Michael Meissner  <meissner@redhat.com>
11180
11181         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
11182         all floating point insns that just tested the macro
11183         TARGET_HAS_XFLOATING_LIBS.
11184         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
11185         used to only use the gprs.
11186
11187 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
11188
11189         * tree.h (COMPLETE_TYPE_P): New macro.
11190         (COMPLETE_OR_VOID_TYPE_P): New macro.
11191         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
11192         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
11193         * c-aux-info.c (gen_type): Use them.
11194         * c-common.c (c_expand_expr_stmt): Likewise.
11195         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
11196         grokdeclarator, grokparms, finish_struct, start_function,
11197         store_parm_decls, combine_parm_decls): Likewise.
11198         * c-parse.y (cast_expr): Likewise.
11199         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
11200         c_size_in_bytes, c_alignof, build_component_ref,
11201         build_indirect_ref, build_array_ref, convert_arguments,
11202         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
11203         * calls.c (initialize_argument_information): Likewise.
11204         * convert.c (convert_to_integer): Likewise.
11205         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
11206         * dwarfout.c (location_or_const_value_attribute,
11207         output_enumeration_type_die, output_structure_type_die,
11208         output_union_type_die, output_type): Likewise.
11209         * expr.c (safe_from_p, expand_expr): Likewise.
11210         * function.c (assign_parms): Likewise.
11211         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
11212         * tree.c (build_array_type, build_function_type,
11213         build_method_type, build_offset_type, build_complex_type): Likewise.
11214         * c-parse.c, c-parse.h: Regenerated.
11215
11216 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11217
11218         * config/c4x/rtems.h: Include config/rtems.h.
11219
11220 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
11221
11222         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
11223         decl is a FUNCTION_DECL
11224
11225 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
11226
11227         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
11228         function uses output registers.  Don't save RP for leaf functions.
11229         Do save RP even if no epilogue.
11230         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
11231         (CALL_USED_REGISTERS): Unmark in registers.
11232         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
11233         to near the middle.
11234
11235 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11236
11237         * config/rs6000/rs6000.md (bunordered): New expander.
11238         (bordered): New expander.
11239         (buneq): New expander.
11240         (bunge): New expander.
11241         (bungt): New expander.
11242         (bunle): New expander.
11243         (bunlt): New expander.
11244         (bltgt): New expander.
11245
11246         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
11247         (ccr_bit_negated_p): New function.
11248         (print_operand): For %C, generate appropriate cror for UNEQ,
11249         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
11250
11251 2000-03-20  Andreas Jaeger  <aj@suse.de>
11252
11253         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
11254         warning.
11255
11256         * tree.h (safe_for_unsave): Prototype.
11257
11258 2000-03-20  Richard Henderson  <rth@cygnus.com>
11259
11260         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
11261         (combine_stack_adjustments_for_block): Don't allow sp references
11262         in the side of a set we're not fixing up.
11263         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
11264         after life_analysis.
11265
11266 2000-03-20  Richard Henderson  <rth@cygnus.com>
11267
11268         * calls.c (expand_call): Don't bother generating tail call
11269         sequences if there are pending cleanups.  Use
11270         expand_start_target_temps/expand_end_target_temps to elide
11271         cleanups created during sibcall expansion.
11272
11273 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11274
11275         * configure.in: Set $IFS to a value if it doesn't already have one
11276         in the --enable-checking handling.
11277         * configure: Regenerate.
11278
11279 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11280
11281         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
11282         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11283         Regenerated.
11284
11285 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
11286
11287         * jump.c (delete_noop_moves): Remove code attempting to
11288         combine stack adjustments.
11289
11290 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11291
11292         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
11293         * except.c (emit_cleanup_handler): Use them.
11294         (expand_end_all_catch): Likewise.
11295         * function.c (fixup_var_refs): Likewise.
11296         (expand_function_end): Clear catch_clauses_last.
11297         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
11298         * except.h (struct eh_status): New field x_catch_clauses_last.
11299         (catch_clauses_last): New define.
11300
11301         * Makefile.in (tree.o): Depend on HASHTAB_H.
11302         * tree.c: Include hashtab.h.
11303         (struct type_hash): Remove next field.
11304         (TYPE_HASH_SIZE): Remove.
11305         (TYPE_HASH_INITIAL_SIZE): New define.
11306         (type_hash_table): Change type to htab_t.
11307         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
11308         mark_hash_entry): New functions.
11309         (init_obstacks): Allocate type hash.
11310         (type_hash_lookup): Use htab functions.
11311         (type_hash_add, mark_type_hash): Likewise.
11312         (dump_tree_statistics): Call print_type_hash_statistics.
11313
11314 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11315
11316         * rs6000/t-aix41: New file.
11317
11318         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
11319
11320 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
11321
11322         * tm.texi (Driver): Fix typos and tweak entry for
11323         INCLUDE_DEFAULTS.
11324         Move misplaced STRUCT_FORCE_BLK entry ...
11325         (Storage Layout): ... to here.
11326         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
11327
11328 2000-03-19  Richard Henderson  <rth@cygnus.com>
11329
11330         * flow.c (delete_block): Delete the addr_vec along with the block.
11331         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
11332         reference labels.
11333
11334         * fold-const.c (extract_muldiv): Apply type check for defined
11335         overflow to multiply as well as divide.
11336
11337         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
11338
11339 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11340
11341         * emit-rtl.c (remove_unncessary_notes): Check that all
11342         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
11343         associated NOTE_BLOCK.
11344         * function.h (identify_blocks): Update comments.
11345         (reorder_blocks): Declare.
11346         * function.c (identify_blocks): Don't take paramters.
11347         (reorder_blocks): Don't take parameters.
11348         * loop.h (find_loop_tree_blocks): Remove.
11349         (unroll_block_trees): Likewise.
11350         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
11351         reorder_blocks instead of unroll_block_trees.h
11352         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
11353         * stmt.c (find_loop_tree_blocks): Remove.
11354         (unroll_block_trees): Likewise.
11355         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
11356         in whole-function mode.
11357         * tree.h (reorder_blocks): Remove declaration.
11358
11359         * expr.c: Include intl.h.
11360         * Makefile.in (expr.o): Depend on intl.h.
11361
11362 2000-03-18  Richard Henderson  <rth@cygnus.com>
11363
11364         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
11365
11366 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11367
11368         * tree.h (tree_index): Remove enumerals for integer types.
11369         (integer_type_kind): New type.
11370         (integer_types): New variable.
11371         (char_type_node): Adjust.
11372         (signed_char_type_node): Likewise.
11373         (unsigned_char_type_node): Likewise.
11374         (short_integer_type_node): Likewise.
11375         (short_unsigned_type_node): Likewise.
11376         (integer_type_node): Likewise.
11377         (unsigned_type_node): Likewise.
11378         (long_integer_type_node): Likewise.
11379         (long_unsigned_type_node): Likewise.
11380         (long_long_integer_type_node): Likewise.
11381         (long_long_unsigned_type_node): Likewise.
11382         * tree.c (integer_types): New variable.
11383         (init_obstacks): Register it as a root.
11384
11385 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
11386
11387         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
11388         NEXT_INSN. Update last insn in chain.
11389
11390 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
11391
11392         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
11393         with TYPE_DECL_SUPPRESS_DEBUG set.
11394
11395 2000-03-18  Richard Henderson  <rth@cygnus.com>
11396
11397         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
11398
11399 2000-03-18  Richard Henderson  <rth@cygnus.com>
11400
11401         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
11402         care for HALF_PIC_P.
11403         (expander_call_insn_operand): Remove.
11404         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
11405         * i386.h (PREDICATE_CODES): Update.
11406         * i386.md (all call expanders): Remove predicates, remove special
11407         handling for half-pic.
11408         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
11409         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
11410         (sibcall_epilogue): New.
11411
11412 2000-03-17  Richard Henderson  <rth@cygnus.com>
11413
11414         * rtlanal.c (single_set): Reject if the parallel has anything
11415         except SET or USE or CLOBBER.
11416
11417 2000-03-17  Jeff Law  <law@cygnus.com>
11418             Richard Henderson  <rth@cygnus.com>
11419
11420         * Makefile.in (OBJS): Add sibcall.o.
11421         (sibcall.o): New.
11422         * sibcall.c: New file.
11423         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
11424         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
11425         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
11426         Emit sibcall patterns when requested.  Update all callers.
11427         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
11428         elimination seems feasable.
11429         * final.c (leaf_function_p): Sibling calls don't discount being
11430         a leaf function.
11431         * flow.c (HAVE_sibcall_epilogue): Provide default.
11432         (find_basic_blocks_1): Sibling calls don't throw.
11433         (make_edges): Make edge from sibling call to EXIT.
11434         (propagate_block): Don't remove sibcall_epilogue insns.
11435         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
11436         (sibcall_epilogue): New.
11437         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
11438         (identify_blocks_1): Likewise.  Break out from ...
11439         (identify_blocks): ... here.
11440         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
11441         (reorder_blocks): ... here.
11442         (init_function_for_compilation): Zap prologue/epilogue as varrays.
11443         (record_insns): Extend a varray instead of mallocing new memory.
11444         (contains): Read a varray not array of ints.
11445         (sibcall_epilogue_contains): New.
11446         (thread_prologue_and_epilogue_insns): Emit and record
11447         sibcall_epilogue patterns.
11448         (init_function_once): Allocate prologue/epilogue varrays.
11449         * genflags.c (gen_insn): Treat sibcall patterns as calls.
11450         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
11451         Broken out from ...
11452         (save_for_inline_nocopy): ... here.
11453         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
11454         Broken out from ...
11455         (expand_inline_function): ... here.
11456         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
11457         (subst_constants): Handle 'n' formats.
11458         * jump.c (jump_optimize_minimal): New.
11459         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
11460         optimizations if it's set.
11461         * rtl.c (copy_rtx): Do copy jump & call for insns.
11462         * rtl.h (struct rtx_def): Document use of jump and call for insns.
11463         (SIBLING_CALL_P): New.
11464         (sibcall_use_t): New.
11465         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
11466         Invoke optimize_sibling_and_tail_recursive_calls.
11467         * tree.c (lang_safe_for_unsave): New.
11468         (safe_for_unsave): New.
11469         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
11470
11471         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
11472         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
11473         (*sibcall_osf_1, *sibcall_value_osf_1): New.
11474
11475 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11476
11477         * objc/objc-act.c (encode_method_prototype): Pass types, not
11478         PARM_DECLs, to int_size_in_bytes.
11479
11480 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11481
11482         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11483
11484         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11485         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11486
11487 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11488
11489         * Clean up usages of TREE_INT_CST_LOW.
11490         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11491         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11492         Regenerated.
11493         * c-tree.h (min_precision): Move declaration to here.
11494         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11495         (build_unary_op, add_pending_init): Use bit_position.
11496         (pending_init_member, process_init_element): Likewise.
11497         (really_start_incremental_init, push_init_level, pop_init_level):
11498         Don't make copies of nodes or modify them in place, use consistent
11499         types when tracking positions, and use tree routines computations.
11500         (set_init_index, output_init_element): Likewise.
11501         (output_pending_init_elements, process_init_element): Likewise.
11502         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11503         tree_low_cst and int_bit_position; also minor cleanup.
11504         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11505         (print_cst_octal): Precision is unsigned.
11506         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11507         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11508         (simple_type_align_in_bits): Result is unsigned int.
11509         Use tree_int_low_cst and host_integerp.
11510         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11511         (field_byte_offset): Result is HOST_WIDE_INT.
11512         Change types of internal variables so alignments are unsigned int,
11513         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11514         Use host_integerp, tree_low_cst, and int_bit_position.
11515         (add_bit_offset_attribute): Likewise.
11516         (add_data_member_location_attribute): Use tree_cst_low.
11517         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11518         (add_bit_size_attribute): Use tree_low_cst.
11519         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11520         * dwarfout.c: Similar changes to dwarf2out.c.
11521         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11522         * genoutput.c (n_occurences): Return -1 for null string.
11523         (strip_whitespace): Accept null string and make into function.
11524         (scan_operands): Reflect above changes.
11525         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11526         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11527         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11528         * tree.c (int_size_in_bytes): Check for too big to represent.
11529         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11530         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11531         New declarations.
11532         (min_precision): Delete from here.
11533         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11534         and int_bit_position.
11535         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11536         (encode_method_def): Likewise.
11537         (build_ivar_list_initializer): Use int_bit_position.
11538         (generate_shared_structures): Convert size.
11539         (encode_type, encode_complete_bitfield): Use integer_zerop.
11540         (encode_bitfield): Use tree_low_cst and int_bit_position.
11541
11542 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11543
11544         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11545
11546 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11547
11548         * call.c (special_function_p): It is only malloc if it returns
11549         Pmode.
11550
11551 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11552
11553         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11554         (C33_FLAG, TARGET_C3X): Add macros.
11555         (TARGET_SWITCHES): Add -m33 option.
11556         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11557
11558 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11559
11560         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11561         (PARALLEL_PACK_FLAG): Delete.
11562         (TARGET_SWITCHES): Update.
11563         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11564
11565 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11566
11567         * fold-const.c (fold): Fix a few cases when the returned result
11568         is not of the same type as the input.
11569
11570 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11571
11572         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11573         warning.
11574
11575 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11576
11577         * libgcc2.h: Move prototypes above macros with the same name.
11578         Wrap some function prototypes in the conditional which indicates
11579         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11580
11581 2000-03-16  Richard Henderson  <rth@cygnus.com>
11582
11583         * calls.c: Revert last two changes.
11584
11585 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11586
11587         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11588         has exponent 0 is a zero.
11589
11590         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11591         HASH may already be nonzero.  Add code/mode into hash value
11592         immediately after repeat label.
11593         (cselib_lookup): Don't leave the hash table in an inconsistent
11594         state before a hash lookup operation.
11595
11596 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11597
11598         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11599         by TARGET_[HQ]IMODE_MATH.
11600         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11601         x86_promote_qi_regs): Declare.
11602         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11603         TARGET_PROMOTE_QI_REGS): New macros.
11604         (PROMOTE_MODE): New macro.
11605         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11606         x86_promote_qi_regs): New global variables.
11607
11608 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11609
11610         * calls.c (emit_library_call_value_1): Break out from ...; handle
11611         VOIDmode function calls too.
11612         (emit_library_call_value): ... here.
11613         (emit_library_call): Implement by calling emit_library_call_value_1.
11614
11615 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11616
11617         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11618         Update arg_space_so_far on stack adjustments.
11619         (emit_library_call, emit_library_call_value): Likewise; take into
11620         account arg_space_so_far and pending_stack_adjust when calculcating
11621         the boundary.
11622
11623 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11624
11625         * flow.c: Move all basic block reordering code into its own file.
11626         (create_basic_block): Externalize.
11627         * bb-reorder.c: New file. Copy all basic block reordering code from
11628         flow.c to this file.
11629         (reorder_basic_blocks): Fix fencepost error in for-loop.
11630         (reorder_basic_blocks): Remove braces from single statement for-loops.
11631         * basic-block.h: Add declaration for create_basic_block.
11632         * Makefile.in: Add rules for bb-reorder.o.
11633
11634 2000-03-16  Neil Booth  <NeilB@earthling.net>
11635
11636         * cppinit.c (handle_option):  Implement #unassert directive
11637         as -A- command line option.
11638         (print_help):  Update.
11639         * cpptexi.c:  Update.
11640
11641 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11642
11643         * md.texi (Standard Names): Document `jump'.
11644
11645 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11646
11647         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11648         gotos.
11649
11650 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11651
11652         Merge changes from newppc-branch onto trunk.
11653
11654         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11655
11656         * rs6000.c (toc_hash_table): Update for new hash table functions.
11657         (toc_hash_function): Likewise.
11658         (toc_hash_eq): Likewise.
11659         (toc_hash_mark_entry): Likewise.
11660         (toc_hash_mark_table): Likewise.
11661         (output_toc): Likewise.
11662         (rs6000_add_gc_roots): Likewise.
11663
11664         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11665
11666         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11667         (AR_FLAGS_FOR_TARGET): here.  New macro.
11668
11669         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11670
11671         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11672         fpmem_operand) Delete.
11673         (xer_operand) New.
11674         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11675         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11676         (rs6000_save_machine_status, rs6000_restore_machine_status,
11677         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11678         references to above variables.
11679         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11680         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11681         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11682         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11683         (XER_REGNO_P, XER_REGNO): New.
11684         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11685         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11686         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11687         XER_REGNO_P.
11688         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11689         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11690         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11691
11692         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11693
11694         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11695         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11696         * rs6000.h: from here.
11697
11698         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11699         (rs6000_select_rtx_section): Likewise.
11700         (rs6000_encode_section_info): Likewise.
11701         (sdata_section): Likewise.
11702         (sdata2_section): Likewise.
11703         (sbss_section): Likewise.
11704         * sysv4.h (rs6000_select_section): Delete prototype.
11705         (rs6000_select_rtx_section): Likewise.
11706         (rs6000_encode_section_info): Likewise.
11707         (sdata_section): Likewise.
11708         (sdata2_section): Likewise.
11709         (sbss_section): Likewise.
11710         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11711
11712         * sysv4.h: Delete various unnecessary #undef's and put a comment
11713         on the remaining ones.
11714         Change various comments according to coding standard.
11715
11716         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11717
11718         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11719         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11720         (CR0_REGNO_P) Remove.
11721         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11722         setup_incoming_varargs, mtcrf_operation, print_operand,
11723         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11724         Use the above macros.
11725
11726         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11727
11728         * config/rs6000/rs6000.md: Added a new alternative for each
11729         pattern that had a 'x' alternative but no 'y' alternative.
11730         Added a new split for each of the above patterns.
11731
11732         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11733
11734         * aix41.h (ASM_CPU_SPEC): Delete.
11735         (CPP_CPU_SPEC): Delete.
11736
11737         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11738         (ASM_OUTPUT_LABEL): Define.
11739         (ASM_GLOBALIZE_LABEL): Define.
11740         (STRIP_NAME_ENCODING): Define.
11741         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11742         (STRIP_NAME_ENCODING): Don't define.
11743         (ASM_OUTPUT_LABEL): Don't define.
11744         (ASM_GLOBALIZE_LABEL): Don't define.
11745         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11746         names, and ASM_OUTPUT_LABEL to output labels, rather than
11747         asm_fprintf.
11748         (ASM_OUTPUT_LABEL): Define.
11749         (ASM_OUTPUT_INT): Use assemble_name.
11750         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11751         (STRIP_NAME_ENCODING): Don't undefine first.
11752         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11753         ELF.
11754         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11755         specified with 'asm' even with -fleading-underscore.
11756         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11757         (output_epilog): Likewise.
11758         (output_toc): Likewise.
11759         * tramp.asm: Handle -fleading-underscore correctly.
11760
11761         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11762         -mminimal-toc.
11763         (nonlocal_goto_receiver): Delete.
11764         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11765
11766         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11767         (SET_ASM_OP): Define.
11768         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11769
11770         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11771         (ASM_LONG): Define.
11772
11773         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11774         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11775
11776         * rs6000.h: Add 'u' to more constants.
11777
11778         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11779
11780         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11781
11782         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11783
11784         * rs6000.c (reg_or_u_cint_operand): New function.
11785         (logical_operand): Handle 64-bit hosts.
11786         (logical_u_operand): New function.
11787         (non_logical_cint_operand): Handle 64-bit hosts.
11788         (non_logical_u_cint_operand): New function.
11789         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11790         (PREDICATE_CODES): Define new functions.
11791         * rs6000-protos.h: Declare new functions.
11792         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11793         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11794         CONST_DOUBLE for 32-bit values.
11795         (scc insns): Generate DImode compares.
11796         (mfcr insns): Create DImode versions.
11797         (sge matchers): New patterns.
11798
11799         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11800
11801         * rs6000.md: Correct instructions length attributes and
11802         constraints on unsigned compare instructions.
11803         (*ne0): Disable for PowerPC64.
11804
11805         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11806
11807         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11808         quantity, fix profile1.C test failure under -fPIC.
11809
11810         * rs6000.c: Add 'u' to many constants to suppress warnings.
11811         (constant_pool_expr_1): Make static.
11812         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11813         * rs6000.h: Add 'u' to many constants to suppress warnings.
11814
11815         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11816         for the start of the TOC, instead of LCTOC..0.
11817         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11818         of the TOC.
11819         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11820         (load_toc_aix_di): Use LCTOC..1.
11821
11822         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11823         * rs6000.c (rs6000_legitimize_address): New function from
11824         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11825         symbols in the constant pool that really are TOC references.
11826         (print_operand_address): For ELF, write TOC offsets under
11827         -fPIC as subtractions in the insn.
11828         (output_toc): For ELF, define symbols in TOC as normal labels,
11829         to match RTL.
11830         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11831         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11832         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11833         * rs6000.md (movsi): Only use create_TOC_reference on
11834         symbols in the constant pool that really are TOC references.
11835
11836         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11837         * rs6000.c (rs6000_reorg): Delete.
11838         * rs6000-protos.h (rs6000_reorg): Delete.
11839
11840         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11841
11842         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11843
11844         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11845         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11846         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11847         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11848         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11849         rs6000_aix_emit_builtin_unwind_init.
11850         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11851         rs6000_emit_eh_toc_restore on AIX.
11852         (return_eh_si): Use r2.
11853         (return_eh_di): Use r2.
11854
11855         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11856         since we're breaking binary compatibility anyway.
11857
11858         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11859
11860         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11861         constant_pool_expr_p): Declare them.
11862         (constant_pool_expr_p): Declare it.
11863         * config/rs6000/rs6000.c (toc_label_name): Define.
11864         (rs6000_override_options): Set toc_label_name.
11865         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11866         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11867         uses_TOC): New functions.
11868         (print_operand): Delete old '*' case.
11869         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11870         and strip off rtl for TOC before calling output_addr_const.
11871         (rs6000_emit_load_toc_table): Use toc_label_name.
11872         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11873         the default.
11874         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11875         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11876         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11877         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11878         into explicit TOC_REGISTER offsets.
11879         (TOC_REGISTER): New macro.
11880         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11881         TARGET_TOC to reference TOC_REGISTER.
11882         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11883         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11884         uses_TOC before emitting label references.
11885
11886         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11887
11888         * rs6000.md (stack_tie): Fix warning.
11889
11890         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11891         to handle -fleading-underscore.
11892         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11893         (USER_LABEL_PREFIX): New macro.
11894         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11895         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11896         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11897         call-linux can use the same multilibs.
11898         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11899         and call-linux multilibs.  Do multilib with -fleading-underscore.
11900         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11901         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11902         to call-aix.
11903
11904         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11905         have MASK_SOFT_FLOAT set.
11906         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11907         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11908         CPP_FLOAT_DEFAULT_SPEC.
11909
11910         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11911         * rs6000.md: Whitespace change.
11912         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11913         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11914
11915         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11916
11917         * rs6000.md (eh_epilogue): New expander.
11918         (eh_reg_restore): New expand/split/insn combination.
11919         (return_eh_si): New insn.
11920         (return_eh_di): New insn.
11921
11922         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11923         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11924         * eabi-ctors.c (__do_global_ctors): Register this object's
11925         frame.  Clean up.  Call atexit() after the constructors.
11926         (__do_global_dtors): Deregister this object's frame.  Clean up.
11927         Allow for recursive calls to exit().
11928         * rs6000.c (fixuplabelno): New variable.
11929         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11930         TARGET_RELOCATABLE, it slows down exec() under linux.
11931         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11932
11933         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11934         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11935         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11936         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11937         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11938         (ASM_OUTPUT_DWARF_ADDR): New macro.
11939         (ASM_OUTPUT_DWARF_DATA4): New macro.
11940         (ASM_OUTPUT_DWARF_DATA2): New macro.
11941         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11942         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11943         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11944
11945         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11946
11947         * rs6000.c (rs6000_sr_alias_set): New variable.
11948         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11949         (rs6000_emit_stack_tie): New function.
11950         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11951         in a way that dwarf2out can understand.
11952         (rs6000_frame_related): New function.
11953         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11954         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11955         Use rs6000_emit_stack_tie when needed.
11956         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11957         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11958         * rs6000.md (stack_tie): New insn.
11959         (return_internal_si): Allow return value to be in the count
11960         register.
11961         (return_internal_di): Likewise.
11962
11963         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11964
11965         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11966
11967         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11968
11969         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11970
11971         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11972
11973         * rs6000.md (stmw): Use the right POWER opcode.
11974         (lmw): Likewise.
11975
11976         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11977
11978         * rs6000-protos.h: New file.
11979
11980         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11981
11982         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11983         warnings.
11984
11985         * sysv4.h: Likewise.
11986
11987         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11988
11989         * ../../configure.in: Delete powerpcle-*-winnt*
11990         and powerpcle-*-pe|powerpcle-*-cygwin*.
11991         * ../../configure: Regenerated.
11992         * cygwin.h: Delete.
11993         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11994         (TARGET_WINDOWS_NT): Delete.
11995         (ABI_NT): Delete.
11996         (CALL_NT_DLLIMPORT): Delete.
11997         Delete NT-specific code.
11998         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11999         * win-nt.h: Delete.
12000         * t-winnt: Delete.
12001         * nt-ci.asm: Delete.
12002         * nt-cn.asm: Delete.
12003         * ntstack.asm: Delete.
12004
12005         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12006
12007         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
12008         (ASM_FILE_START): Likewise.
12009         (ASM_DECLARE_FUNCTION_NAME): Likewise.
12010         (ASM_OUTPUT_LABELREF): Likewise.
12011         (ASM_OUTPUT_SKIP): Likewise.
12012         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
12013         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
12014         (ASM_OUTPUT_CASE_LABEL): Likewise.
12015         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
12016         (ASM_OUTPUT_ASCII): Likewise.
12017
12018         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
12019
12020         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
12021         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
12022         increment rs6000_pic_labelno here.
12023         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
12024         and increment rs6000_pic_labelno here.
12025
12026         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
12027
12028         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
12029         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
12030         allocation knows (reg) is dead before the insn.
12031
12032         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
12033
12034         * rs6000.md (movsi_to_cr): Correct typo in output template.
12035
12036         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
12037
12038         * rs6000.c (rs6000_pic_labelno): Always define.
12039         (rs6000_pic_func_labelno): Delete.
12040         (lmw_operation): Check for a zero base register,
12041         which doesn't mean what we want.
12042         (stmw_operation): New function.
12043         (print_operand): Define new 'l' modifier.
12044         (rs6000_stack_info): We must save all 64 bits of the registers
12045         if TARGET_POWERPC64.
12046         (rs6000_output_load_toc_table): Delete.
12047         (rs6000_emit_load_toc_table): New function.
12048         (rs6000_allocate_stack_space): Delete.
12049         (rs6000_emit_allocate_stack): New function.
12050         (rs6000_emit_prologue): New function.
12051         (output_prolog): Use rs6000_emit_prologue.
12052         (rs6000_emit_epilogue): Change a few variable names to be
12053         more accurate.  Restore all 64 bits of the registers if
12054         TARGET_POWERPC64.  Only restore the FP registers which were used
12055         if they are being saved/restored one-at-a-time.
12056         (output_mi_thunk): Delete inefficient code generation.
12057         (output_function_profiler): Don't use rs6000_output_load_toc_table.
12058         * rs6000.h: Declare rs6000_emit_load_toc_table,
12059         rs6000_allocate_stack_space, stmw_operation.  Don't declare
12060         rs6000_output_load_toc_table.
12061         * rs6000.md (elf_high): Allow register 0, but discourage it
12062         heavily.
12063         (elf_low): Support loading into register 0.
12064         (load_toc_aix_si): New pattern.
12065         (load_toc_aix_di): New pattern.
12066         (load_toc_v4_pic_si): New pattern.
12067         (load_toc_v4_pic_di): New pattern.
12068         (load_toc_v4_PIC_1): New pattern.
12069         (load_toc_v4_PIC_1b): New pattern.
12070         (load_toc_v4_PIC_2): New pattern.
12071         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
12072         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
12073         (prologue): New expander.
12074         (movesi_from_cr): New pattern.
12075         (stmw): New pattern.
12076         (save_fpregs_si): New pattern.
12077         (save_fpregs_di): New pattern.
12078
12079         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12080
12081         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
12082         (movdi): Likewise.
12083         (movhi): Likewise.
12084         (movqi): Likewise.
12085
12086         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12087
12088         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
12089         at present.
12090         (movsi_got_internal): Likewise.
12091         (movsi_got_internal+1): Likewise.
12092         (set_sp): 'unspec 7' does a SImode clobber.
12093
12094         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12095
12096         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
12097         allocate a stack temporary.
12098         (floatsidf2_internal): Likewise.
12099         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
12100         with unspec.
12101         (floatunssidf2): Don't use the fpmem "register", just
12102         allocate a stack temporary.
12103         (floatunssidf2_internal): Likewise.
12104         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
12105         with unspec.
12106         (floatsidf2_loadaddr): Delete.
12107         (floatsidf2_store1): Delete.
12108         (floatsidf2_store2): Delete.
12109         (floatsidf2_load): Delete.
12110         (fix_truncdfsi2): Don't use the fpmem "register", just
12111         allocate a stack temporary.
12112         (fix_truncdfsi2_internal_si): Delete.
12113         (fix_truncdfsi2_internal_di): Delete.
12114         (fix_truncdfsi2_internal): New insn.
12115         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
12116         (fix_truncdfsi2_store): Delete.
12117         (fix_truncdfsi2_load): Delete.
12118         (fctiwz): Produce gen_fctiwz.
12119
12120         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
12121
12122         * eabi.h (INVOKE__main): Define.
12123         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
12124         specially.
12125         (rs6000_emit_prologue): Likewise.
12126         * rs6000.h (struct rs6000_stack): Don't keep track of whether
12127         this is the main program.
12128
12129         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12130
12131         * rs6000.c (rs6000_va_arg): Delete some unused variables.
12132
12133         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12134
12135         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
12136         goes after the argument.
12137
12138         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12139
12140         * rs6000.md: Document 'unspec' values used.
12141         (epilogue): New expander.
12142         (movesi_to_cr_one): New expander.
12143         (movesi_to_cr and following): New pattern.
12144         (lmw): New pattern.
12145         (return_internal_si): New pattern.
12146         (return_internal_di): New pattern.
12147         (return_and_restore_fpregs_si): New pattern.
12148         (return_and_restore_fpregs_di): New pattern.
12149         * rs6000.h: Declare new functions.
12150         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
12151         rather than rs6000_calls_p.
12152         (rs6000_makes_calls): Delete.
12153         (lmw_operation): New function.
12154         (mtcrf_operation): New function.
12155         (rs6000_emit_epilogue): New function.
12156         (output_epilog): Call rs6000_emit_epilogue and final if
12157         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
12158
12159         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12160
12161         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
12162         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
12163         * aix.h (SUBTARGET_SWITCHES): Document switches.
12164         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
12165         sched-prolog and sched-epilog the same.  Document all the
12166         switches.
12167         (TARGET_OPTIONS): No longer allow -mdebug-.
12168
12169         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12170
12171         * rs6000.h (ASM_FILE_END): Move to aix.h.
12172         (EXTRA_SECTIONS): Move to aix.h.
12173         (READONLY_DATA_SECTION): Move to aix.h.
12174         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
12175         (SELECT_SECTION): Move to aix.h.
12176         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
12177         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
12178         (LINK_REGISTER_REGNUM): New definition.
12179         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
12180         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
12181         AIX and SVR4.
12182         * sysv4.h: Delete the code between the inclusion of rs6000.h
12183         and svr4.h.
12184         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
12185         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
12186         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
12187         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
12188         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
12189         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
12190         (fix_truncdfsi2_internal_di): New pattern.
12191         (fix_truncdfsi2_store): The second arg here is Pmode too.
12192         (fix_truncdfsi2_load): The second arg here is Pmode too.
12193         (tablejumpdi): Now that switch tables hold only SImode values,
12194         gcc needs to know how to add them to the pc which is DImode.
12195         * rs6000.c (rs6000_stack_info): Use symbolic name for
12196         LINK_REGISTER_REGNUM.
12197         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
12198         (output_toc): Delete unused variables s1 and s2.
12199         (output_ascii): Use fputs not fprintf on a variable string.
12200
12201         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
12202
12203         * rs6000.c (processor_target_table): Add power3 as alias for 630.
12204         * aix43.h: Revert Aug 2 change.
12205         (HAS_INIT_SECTION): Define, not visible yet.
12206         (LD_INIT_SWITCH): Define, not visible yet.
12207         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
12208
12209         2000-01-04  Joel Sherrill (joel@OARcorp.com>
12210
12211         * config/rs6000/rtems.h: Include config/rtems.h.
12212
12213         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
12214
12215         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
12216         (SLOW_UNALIGNED_ACCESS): Define.
12217         (CASE_VECTOR_MODE): Always use 32-bit offsets.
12218         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
12219         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
12220         (toc_section): Likewise and .toc pseudo-op.
12221         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
12222         64-bit mode.
12223         (TEXT_SECTION_ASM_OP): Likewise.
12224         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
12225         32-bit offsets.
12226
12227         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
12228
12229         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
12230         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
12231         compiling libgcc2.
12232
12233         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12234
12235         * rs6000.h: Move more stuff from here...
12236         * aix.h: to here.
12237         * sysv4.h: Cleanup accordingly.
12238         * netware.h: Likewise
12239
12240         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12241
12242         * rs6000.h: Continue cleanup.
12243         * aix.h: Likewise.
12244         * lynx.h: Likewise.
12245         * netware.h: Likewise.
12246         * sol2.h: Likewise.
12247         * sysv4.h: Likewise.
12248         * win-nt.h: Likewise.
12249
12250         * rs6000.h (TARGET_SWITCHES): Add descriptions.
12251         (TARGET_OPTIONS): Likewise.
12252
12253         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
12254         (SUBTARGET_OPTIONS): Likewise.
12255
12256         * rs6000.md: Fix compile time warnings.
12257
12258         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12259
12260         vxworks patches from the Cygnus tree originally by
12261         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
12262         <vmakarov@cygnus.com>.
12263         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
12264         (ENDFILE_SPEC): Likewise.
12265         (LIB_VXWORKS_SPEC): New macro.
12266         (STARTFILE_VXWORKS_SPEC): New macro.
12267         (ENDFILE_VXWORKS_SPEC): New macro.
12268         (LINK_START_VXWORKS_SPEC): New macro.
12269         (LINK_OS_VXWORKS_SPEC): New macro.
12270         (CPP_OS_VXWORKS_SPEC): New macro.
12271         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
12272         * vxppc.h: Rewrite to use proper configuration method.
12273         * vxppcle.h: New file.
12274         * ../../configure.in: Add powerpcle-wrs-vxworks*.
12275         * ../../configure: Rebuilt.
12276
12277         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12278
12279         Lots of changes to rs6000.h, sysv4.h, aix.h,
12280         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
12281         with the aim that rs6000.h is the first header
12282         included and the others override it.
12283         * aix.h: New file.
12284
12285         * x-aix41-gld: Remove.
12286         * x-aix43: Remove.
12287         * x-aix41: Remove target-specific switches, and don't specify
12288         -Wl,-bbigtoc as we don't need it any more.
12289         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
12290         Use t-aix43 for AIX 4.3 and above.
12291         * ../../configure: Regenerated.
12292
12293         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
12294         options, that don't do anything yet.
12295         (MASK_SCHED_PROLOG): New macro.
12296         (MASK_SCHED_EPILOG): New macro.
12297         (TARGET_SCHED_PROLOG): New macro.
12298         (TARGET_SCHED_EPILOG): New macro.
12299
12300         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12301
12302         * rs6000.c: Correct comment, the `minimal' TOCs are actually
12303         one per translation unit, not one per function.
12304         (output_toc): Also do duplicate constant elimination
12305         for per-translation-unit TOCs.
12306
12307         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
12308         a comment explaining _exactly_ when this pattern gets used.
12309         (builtin_setjmp_receiver): New pattern for better clarity.
12310         (init_v4_pic): Move it into a section dealing with TOC registers.
12311
12312         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
12313
12314         * rs6000.c (toc_hash_table): New variable.
12315         (rs6000_hash_constant): New function.
12316         (toc_hash_function): New function.
12317         (toc_hash_eq): New function.
12318         (toc_hash_mark_entry): New function.
12319         (toc_hash_mark_table): New function.
12320         (output_toc): Don't output duplicate TOC entries in
12321         a single file.
12322         (rs6000_add_gc_roots): Add the hash table as a GC root.
12323         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
12324         where they clearly shouldn't be.  This may need to be fixed
12325         later when there is a GNU ar for AIX.
12326         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
12327         Don't define BOOT_LDFLAGS as it is now not necessary.
12328
12329         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
12330
12331         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
12332         for va_list on AIX.  Use unsigned_char_type_node rather than
12333         constructing our own version on svr4.
12334
12335         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
12336
12337         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
12338         since patently it's not.
12339
12340         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
12341
12342         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
12343         define_expand/define_insn pair, and handle restore of the
12344         SVR4 -fpic register.
12345
12346 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
12347
12348         * acconfig.h (HAVE_GAS_WEAK): New define.
12349         * configure.in (assembler weak support): Check for .weak support.
12350         * config.in, configure: Rebuilt.
12351         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
12352         HAVE_GAS_WEAK is defined.
12353
12354 2000-03-15  Nick Clifton  <nickc@cygnus.com>
12355
12356         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
12357         asm_fprintf().
12358
12359 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
12360
12361         * cppfiles.c (open_include_file): New function.
12362         (find_include_file, cpp_read_file): Use it.
12363
12364 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
12365
12366         * cpphash.c (dump_hash_helper): Take the slot, not the element.
12367
12368 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
12369
12370         * flow.c (verify_flow_info): Check for unconditional return.
12371
12372 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
12373
12374         * config/ia64/ia64.md (restore_stack_nonlocal): New.
12375         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
12376         (__ia64_restore_stack_nonlocal): New.
12377         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
12378
12379 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12380
12381         * cpphash.c (collect_formal_parameters): Do not complain about
12382         parameter names that just start with `__VA_ARGS__'.
12383
12384 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
12385
12386         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
12387         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
12388         * i386.c (pentiumpro_cost): Set mul cost to 4.
12389         (x86_use_movx): Set for PPro.
12390
12391 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
12392
12393         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
12394         STACK_BOUNDARY for empty frames now.
12395
12396 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
12397
12398         * stor-layout.c (layout_union): Remove.
12399         (layout_union_field): New function, split out from layout_union.
12400         (finish_union_layout): Likewise.
12401         (layout_field): Handle unions by calling layout_union_field.
12402         (finish_record_layout): Handle unions.
12403         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
12404         QUAL_UNION_TYPE handling.
12405
12406 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
12407
12408         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
12409         end of basic block is jump_insn, not barrier; use create_basic_block
12410         instead of creating basic block by hand.
12411
12412 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
12413
12414         * flow.c (reorder_basic_blocks): Account for barriers when writing
12415         over NEXT_INSN (last_bb->end).
12416         (verify_flow_info): Add check for missing barriers.
12417
12418 2000-03-14  Greg McGary  <gkm@gnu.org>
12419
12420         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
12421         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
12422         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
12423         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
12424         __unbounded, __unbounded__): New keywords.
12425         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
12426         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
12427         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
12428
12429 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12430
12431         * cselib.h: New file.
12432         * alias.c: Include "cselib.h".
12433         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
12434         MEMs as two new arguments.
12435         (get_addr): New static function.
12436         (find_base_term): Handle VALUEs.
12437         (memrefs_conflict_p): Likewise.
12438         (true_dependence): Call get_addr on the addresses.
12439         Call fixed_scalar_and_varying_struct_p with addresses that have been
12440         passed through get_addr and canon_rtx.
12441         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
12442         with true_dependence.
12443         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
12444         * loop.c: Include "cselib.h".
12445         (load_mems): Process extended basic block that enters the loop with
12446         cselib.  Use that information to change initialization of the shadow
12447         register so that a constant equivalence is seen by later passes.
12448         * reload1.c: Include "cselib.h".
12449         (reload_cse_invalidate_regno): Delete function.
12450         (reload_cse_mem_conflict_p): Likewise.
12451         (reload_cse_invalidate_mem): Likewise.
12452         (reload_cse_invalidate_rtx): Likewise.
12453         (reload_cse_regno_equal_p): Likewise.
12454         (reload_cse_check_clobber): Likewise.
12455         (reload_cse_record_set): Likewise.
12456         (reg_values): Delete static variable.
12457         (invalidate_regno_rtx): Likewise.
12458         (reload_cse_delete_noop_set): New static function.
12459         (reload_cse_simplify): New static function, broken out of
12460         reload_cse_regs_1.
12461         (reload_cse_noop_set_p): Delete unused argument INSN.
12462         Just call rtx_equal_for_cselib_p on set source and destination.
12463         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
12464         reload_cse_delete_noop_set.  Delete code to keep track of values; use
12465         cselib functions instead.  Delete code to push/pop obstacks.
12466         (reload_cse_simplify_set): Use cselib to find equivalent values.
12467         Delete code to push/pop obstacks.
12468         (reload_cse_simplify_operands): Likewise.
12469         * rtl.def (VALUE): New rtx code.
12470         * rtl.h (union rtunion_def): New elt rt_cselib.
12471         (X0CSELIB, CSELIB_VAL_PTR): New macros.
12472         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
12473         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
12474         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
12475         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12476         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12477         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12478         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12479         cselib_record_set, cselib_record_sets): New static functions.
12480         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12481         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12482         references_value_p): New functions.
12483         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12484         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12485         n_useless_values, reg_values, callmem, cselib_obstack,
12486         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12487         New static variables.
12488         * varray.h (union varray_data_tag): New elt te.
12489         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12490         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12491         dependencies.
12492
12493 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12494
12495         * gcc.c (do_spec_1): Catch the case where %* is used in a
12496         substitution pattern, but it has not been initialised.
12497         Issue a meaningful error message if an unrecognised operator
12498         is encountered in a spec string.
12499
12500 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12501
12502         * function.c (prepare_function_start): Correctly initialize
12503         cfun->stack_alignment_needed.
12504
12505 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12506
12507         * cppfiles.c (find_include_file): Don't assume nshort is a
12508         substring of name.
12509
12510 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12511
12512         * configure.in (hppa configurations): Add pa32-regs.h to the
12513         list of tm files as appropriate.
12514         * configure: Rebuilt.
12515         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12516         register numbering.
12517         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12518         (fmpyaddoperands, fmpysuboperands): Likewise.
12519         * pa.h: Remove various definitions which depend on knowing
12520         how registers are numbered.
12521         * pa32-regs.h: New file with PA32 register numbering specific
12522         definitions.
12523
12524 2000-03-14  Richard Henderson  <rth@cygnus.com>
12525
12526         * regmove.c (combine_stack_adjustments): New.
12527         (stack_memref_p, single_set_for_csa): New.
12528         (free_csa_memlist, record_one_stack_memref): New.
12529         (try_apply_stack_adjustment): New.
12530         (combine_stack_adjustments_for_block): New.
12531         * rtl.h (combine_stack_adjustments): Declare.
12532         * toplev.c (rest_of_compilation): Call it.
12533
12534         * i386.md: Revert 2000-01-16 change.
12535
12536 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12537
12538         * gccbug.in: Add web category, gcc specific classes.
12539
12540 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12541
12542         * stor-layout.c (finalize_record_size): Fix typo.
12543
12544 2000-03-14  Stan Shebs  <shebs@apple.com>
12545
12546         * c-typeck.c (c_alignof): Error on incomplete types.
12547         * extend.texi (Alignment): Document this.
12548
12549 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12550
12551         * cppfiles.c: Include mkdeps.h.
12552         (find_include_file, read_include_file): Remove _cpp_ prefix
12553         from name, make static.
12554         (_cpp_execute_include): New function, broken out of
12555         do_include.
12556
12557         * cpplib.c: Don't include mkdeps.h.
12558         (struct directive): Remove type field. Reorder entries.  The
12559         function takes only one argument.
12560         (struct if_stack): Make type field an int.
12561         (directive_table): Rename to dtable.  Generate it, the
12562         prototypes of the directive handlers, and the enum for the
12563         directive numbers, from a template macro.
12564         (do_ifndef, do_include_next, do_import): New functions.
12565         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12566         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12567         do_ident, do_assert, do_unassert, do_sccs): Take only one
12568         argument.
12569         (do_sccs): Define always, but alter behavior based on
12570         SCCS_DIRECTIVE.
12571         (_cpp_handle_directive, consider_directive_while_skipping):
12572         Restructure for new directive table layout.
12573
12574         (pass_thru_directive): Take a directive number, not a pointer
12575         to a struct directive.
12576         (parse_include): New function, broken out of do_include.
12577         (do_include, do_import, do_include_next): Use parse_include
12578         and _cpp_execute_include.
12579         (do_elif, do_else): Test for T_ELSE specifically when checking
12580         for #elif/#else after #else.
12581         (parse_ifdef): New function, broken out of do_ifdef.
12582         (validate_else): Expect a name arg without a leading #.
12583         (if_directive_name): Delete.
12584         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12585         directive handlers with only one argument.
12586
12587         * cpphash.h: Update prototypes.
12588         (enum node_type): Remove entries for directives.
12589         * Makefile.in: Update dependencies.
12590
12591         * cpphash.c (dump_hash_helper): Only dump nodes of type
12592         T_MACRO.  Emit a newline after each definition.
12593
12594 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12595
12596         * gccbug.in: New file.
12597         * configure.in (all_outputs): Add gccbug.
12598         * Makefile.in (install-common): Install gccbug.
12599         (GCCBUG_INSTALL_NAME): New variable.
12600         * configure: Rebuilt.
12601
12602 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12603
12604         * function.c (put_var_into_stack): Use type_for_mode to calculate
12605         part_type.  Use MEM_SET_IN_STRUCT_P.
12606         * expr.c (store_field): Handle CONCAT.
12607         (store_constructor): Use fields_length.
12608         * tree.c (fields_length): New fn.
12609         * tree.h: Declare it.
12610
12611 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12612
12613         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12614         (cpplex.o): New target.
12615         * po/POTFILES.in: Add cpplex.c.
12616
12617         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12618         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12619         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12620         skip_block_comment, skip_line_comment, skip_comment,
12621         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12622         _cpp_parse_name, skip_string, parse_string,
12623         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12624         _cpp_get_directive_token, find_position,
12625         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12626         (maybe_macroexpand, _cpp_lex_token): New functions.
12627
12628         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12629         parse_goto_mark): Delete.
12630         (_cpp_handle_eof): New function.
12631         (_cpp_handle_directive): Rename from handle_directive.
12632         (_cpp_output_line_command): Rename from output_line_command.
12633         (do_if, do_elif): Call _cpp_parse_expr directly.
12634         * cppfiles.c (_cpp_read_include_file): Don't call
12635         init_input_buffer here.
12636         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12637         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12638         here; pop the token_buffer and skip the rest of the line here.
12639         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12640         here.
12641
12642         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12643         Define here.
12644         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12645         CPP_GOTO_MARK): New macros.
12646         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12647         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12648         _cpp_read_and_prescan, _cpp_init_input_buffer,
12649         _cpp_grow_token_buffer, _cpp_get_directive_token,
12650         _cpp_handle_directive, _cpp_handle_eof,
12651         _cpp_output_line_command): Prototype them here.
12652         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12653         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12654         quote_string, output_line_command): Remove.
12655
12656 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12657
12658         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12659         whether it is too large we must also verify that it isn't negative.
12660
12661 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12662
12663         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12664         (movsi_zero_liveg0): Remove.
12665         (movsf_insn_novis_liveg0): Remove.
12666         (negsi2): Remove.
12667         (negsi2_not_liveg0): Rename to negsi2.
12668         (one_cmplsi2): Remove.
12669         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12670         (one_cmplsi2_liveg0): Remove.
12671         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12672         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12673         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12674         (PREDICATE_CODES): Remove zero_operand.
12675         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12676         TARGET_BROKEN_SAVERESTORE.
12677         (zero_operand): Remove.
12678         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12679         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12680         options.
12681         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12682         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12683         TARGET_BROKEN_SAVERESTORE): Remove.
12684         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12685         Remove.
12686         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12687         Remove.
12688         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12689         Remove.
12690
12691         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12692
12693 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12694
12695         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12696         truncating a string.  Don't assume tokens are nul terminated.
12697         Problem noted by Andreas Jaeger <aj@suse.de>
12698
12699 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12700
12701         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12702         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12703         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12704
12705 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12706
12707         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12708         STRUCTURE_SIZE_BOUNDARY.
12709
12710 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12711
12712         * tree.h (record_layout_info_s): New structure.
12713         (record_layout_info): New type.
12714         (new_record_layout_info): New function.
12715         (layout_field): Likewise.
12716         (finish_record_layout): Likewise.
12717         * stor-layout.c (layout_record): Remove.
12718         (new_record_layout_info): New function.
12719         (layout_field): New function, broken out from layout_record.
12720         (finalize_record_size): Likewise.
12721         (compute_record_mode): Likewise.
12722         (finalize_type_size): New function, broken out from layout_type.
12723         (finish_record_layout): Likewise.
12724         (layout_type): Use them.
12725
12726 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12727
12728         * cpphash.c: Don't include version.h.
12729         (special_symbol) [case T_VERSION]: Look for the string in
12730         hp->value.cpval; don't use version_string.
12731         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12732         __VERSION__ to version_string.
12733         * Makefile.in (cpphash.o): Update deps.
12734
12735 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12736
12737         Convert cpplib to use libiberty/hashtab.c.
12738
12739         * cpplib.h (struct cpp_reader): Make hashtab and
12740         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12741         and ALL_INCLUDE_HASHSIZE macros.
12742
12743         * cpphash.h: Update prototypes.
12744         (struct hashnode): Remove next, prev, and bucket_hdr members.
12745         Make length a size_t.  Add hash member.
12746         (struct ihash): Remove next member.  Add hash member.  Make
12747         name a flexible array member.
12748
12749         * cppfiles.c: Include hashtab.h.
12750         (include_hash): Delete.
12751         (IHASHSIZE): New macro.
12752         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12753         (cpp_included): Do the hash lookup here.
12754         (_cpp_find_include_file): Rewrite.
12755         (cpp_read_file): Put the "fake" hash entry into the hash
12756         table.  Honor the control_macro, if it turns out we've seen
12757         the file before.  Don't push the buffer here.
12758         (_cpp_read_include_file): Push the buffer here.
12759         (OMODES): New macro.  Use it whenever we call open(2).
12760
12761         * cpphash.c: Include hashtab.h.
12762         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12763         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12764         _cpp_lookup_slot): New functions.
12765         (HASHSIZE): new macro.
12766         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12767         (_cpp_lookup): Use hashtab.h routines.
12768
12769         * cppinit.c: Include hashtab.h.
12770         (cpp_reader_init): Call _cpp_init_macro_hash and
12771         _cpp_init_include_hash.  Don't allocate hashtab directly.
12772         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12773         pfile->all_include_files.
12774         (initialize_builtins): Use _cpp_make_hashnode and
12775         htab_find_slot to add hash entries.
12776         (cpp_finish): Just call _cpp_dump_macro_hash.
12777         * cpplib.c: Include hashtab.h.
12778         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12779         create hash entries.
12780         (do_pragma_poison, do_assert): Likewise.
12781         (do_include): Don't push the buffer here.  Don't increment
12782         system_include_depth unless _cpp_read_include_file succeeds.
12783         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12784         or htab_remove_elt.
12785         (do_pragma_implementation): Use alloca to create copy.
12786
12787         * Makefile.in: Update dependencies.
12788
12789 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12790
12791         * cppinit.c (cl_directive_handler): More K&R fixing.
12792
12793 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12794
12795         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12796         STACK_BOUNDARY.
12797         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12798
12799 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12800
12801         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12802         Change from char[] to macros.
12803
12804 2000-03-12  Neil Booth  <NeilB@earthling.net>
12805
12806         * cppinit.c (cpp_start_read): Update indirect function
12807         call to K&R C.
12808
12809 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12810
12811         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12812         entry.
12813
12814         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12815         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12816
12817 2000-03-11  Neil Booth  <NeilB@earthling.net>
12818
12819         * cppinit.c (struct pending option): Replace undef with a
12820         pointer to a directive handling routine.
12821         (struct cpp_pending): Replace separate assert_ and define_
12822         lists with one directive_ list.
12823         (new_pending_define): Rename new_pending_directive. Extra
12824         argument is the directive's handling routine.
12825         (handle_option): Update to use new_pending_directive.
12826
12827 2000-03-11  Neil Booth  <NeilB@earthling.net>
12828
12829         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12830         remap_filename, _cpp_read_include_file, actual_directory,
12831         hack_vms_include_specification): Replace bcopy(), index() etc
12832         calls.  Add casts to some allocations.  Make some variables
12833         pointers to const [unsigned] char.
12834         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12835         collect_formal_parameters): Similarly.
12836         * cppinit.c (struct pending_option, append_include_chain,
12837         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12838         cpp_start_read, new_pending_define, handle_option): Similarly.
12839         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12840         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12841         do_pragma_implementation, detect_if_not_defined,
12842         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12843         do_assert, do_unassert): Similarly.
12844         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12845         function prototypes.
12846         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12847
12848 2000-03-10  Richard Henderson  <rth@cygnus.com>
12849
12850         * builtins.c (expand_builtin_strlen): Revert last change.
12851         Use emit_insn_before if we're at the beginning of a sequence.
12852
12853 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12854
12855         * builtins.c (expand_builtin_strlen): Make sure that we have something
12856         at the beginning of the sequence.
12857
12858         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12859         deferred inlines.
12860
12861         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12862
12863 2000-03-10  Richard Henderson  <rth@cygnus.com>
12864
12865         * except.c (can_throw): Use INTVAL on a CONST_INT.
12866         (reachable_handlers): Likewise.
12867         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12868
12869 2000-03-10  Andreas Jaeger  <aj@suse.de>
12870
12871         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12872         MD_STARTFILE_PREFIX since those are not needed on linux.
12873         (ASM_FILE_START): New, from mips/gnu.h.
12874
12875 2000-03-09  Richard Henderson  <rth@cygnus.com>
12876             Alex Samuel  <samuel@codesourcery.com> and others
12877
12878         * Makefile.in (ssa.o): New rule.
12879         (OBJS): Add ssa.o.
12880         (STAGESTUFF): Add *.ssa and *.ussa.
12881         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12882         * rtl.def (PHI): New RTL expression.
12883         * rtl.h (clear_log_links): New declaration.
12884         (convert_to_ssa): Likewise.
12885         (convert_from_ssa): Likewise.
12886         * flow.c (split_edge): If the entry node falls through to the
12887         split edge's source block, split the entry edge.
12888         (clear_log_links): New function.
12889         * toplev.c (ssa_dump): New variable.
12890         (flag_ssa): Likewise.
12891         (f_options): Add "ssa".
12892         (compile_file): Create SSA dump files.
12893         (rest_of_compilation): Go to and from SSA if enabled.
12894         (decide_d_option): Handle -de for SSA dump files.
12895         * ssa.c: New file.
12896
12897 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12898
12899         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12900         same as VAR_DECL.
12901
12902 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12903
12904         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12905
12906 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12907
12908         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12909         (MD_STARTFILE_PREFIX_1): New macro.
12910
12911 2000-03-09  Robert Lipe  <robertl@sco.com>
12912
12913         * config/ia64/ia64.c: Include system.h.
12914
12915 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12916
12917         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12918         (init_eh_nesting_info): Likewise.
12919
12920         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12921         (TREE_NOTHROW): Rename from TREE_RAISES.
12922         * toplev.c (rest_of_compilation): Set it.
12923         * print-tree.c (print_node): Adjust.
12924         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12925         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12926         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12927         REG_EH_REGION note as appropriate.
12928         (libfunc_nothrow): New fn.
12929         (emit_library_call, emit_library_call_value): Use it.
12930         (expand_call): Check TREE_NOTHROW.
12931
12932         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12933         DECL_ASSEMBLER_NAME.
12934
12935 2000-03-09  Andreas Jaeger  <aj@suse.de>
12936
12937         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12938         (TARGET_MEM_FUNCTIONS): Define.
12939
12940 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12941
12942         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12943
12944         * except.c (can_throw): See through a SEQUENCE.
12945         (nothrow_function_p): New fn.
12946         * except.h: Declare it.
12947         * function.c (current_function_nothrow): New var.
12948         (prepare_function_start): Initialize it.
12949         * output.h: Declare it.
12950         * toplev.c (rest_of_compilation): Set it.
12951         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12952
12953 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12954
12955         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12956         match.  (cpp_compare_defs): Count the nul separator when
12957         advancing over argument names.
12958
12959 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12960
12961         * recog.c (preprocess_constraints): Matching constraints affect
12962         same alternative/different operand, not same operand/different
12963         alternative.
12964
12965         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12966         register and a constant specially.
12967
12968 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12969
12970         * libgcc2.h: New file.
12971         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12972
12973 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12974
12975         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12976         * configure: Regenerate.
12977         * config/ia64: New.
12978
12979 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12980
12981         * Makefile.in (LIBCPP_DEPS): New macro.
12982         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12983         it to declare deps.
12984         * cpperror.c: Include cpphash.h.
12985         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12986         dingleberry.
12987         (lex): Don't use CPP_WARN_UNDEF.
12988         (_cpp_parse_expr): Return an int, the truth value.
12989         * cppfiles.c: Include cpphash.h.
12990         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12991         * cppinit.c (include_defaults_array): Disentangle.
12992         (cpp_cleanup): Don't free the if stack here.
12993         (cpp_finish): Pop off all buffers, not just one.
12994         * cpplib.c (eval_if_expr): Return int.
12995         (do_xifdef): Rename do_ifdef.
12996         (handle_directive): Don't use CPP_PREPROCESSED.
12997         (cpp_get_token): Don't use CPP_C89.
12998         * fix-header.c: Don't use CPP_OPTIONS.
12999
13000         * cpplib.h: Move U_CHAR, enum node_type, struct
13001         file_name_list, struct ihash, is_idchar, is_idstart,
13002         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
13003         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
13004         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
13005         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
13006         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
13007         of _cpp_simplify_pathname, _cpp_find_include_file,
13008         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
13009         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
13010         cppinit.c.
13011         Change all uses of U_CHAR to be unsigned char instead.
13012         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
13013
13014 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
13015
13016         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
13017         (dwarf2out_begin_prologue): Set it.
13018         (output_call_frame_info): Don't emit EH unwind info for leaves.
13019
13020         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
13021         can occur outside of an EH region.
13022         * except.c: Correct comments about rethrow behavior.
13023         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
13024
13025 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
13026
13027         * flow.c (make_edges): Always call make_eh_edge for calls.
13028
13029 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
13030
13031         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
13032         (struct cpp_buffer): Remove fname and underflow fields.
13033         (struct cpp_reader): Remove get_token field.
13034         (struct include_hash): Rename to struct ihash.  Add typedef to
13035         IHASH.
13036         (struct if_stack): Remove fname field.
13037         (IF_STACK_FRAME): Rename to IF_STACK.
13038
13039         * cpperror.c (print_containing_files): Trust that there are no
13040         macro buffers below the top file buffer.
13041         * cppfiles.c: Replace all references to 'struct include_hash'
13042         with 'IHASH'.  Rename initialize_input_buffer to
13043         init_input_buffer.  Don't set or reference cpp_buffer->fname,
13044         use buffer->ihash->name instead.
13045         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
13046         not CPP_NULL_BUFFER.
13047         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
13048         IF_STACK_FRAME, IHASH not struct include_hash.
13049         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
13050         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
13051         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
13052         references to cpp_buffer->fname (delete entirely, or use
13053         ->ihash->name instead) and IF_STACK->fname.
13054         (cpp_push_buffer): Don't set new->underflow.
13055         (do_include): Use cpp_file_buffer.
13056
13057         * cpphash.c (collect_formal_parameters): Remove duplicate
13058         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
13059         used as a macro argument name.  Don't append "..." to namebuf
13060         for varargs macros.  After we're done scanning, go through
13061         namebuf and make it NUL separated, not comma separated.
13062         (_cpp_compare_defs): Remove register tag from variables.
13063         Expect defn->argnames to be NUL separated.
13064         (_cpp_dump_definition): Expect defn->argnames to be NUL
13065         separated and in forward order.
13066         * cpphash.h: Update documentation of argnames field.
13067
13068 2000-03-08  Richard Henderson  <rth@cygnus.com>
13069
13070         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
13071         to fail.  Don't pre-expand the source operand.
13072
13073         * i386.md (strlensi): Initialize eoschar and align before use.
13074
13075 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
13076
13077         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
13078         CONSTRUCTOR element.
13079
13080 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
13081
13082         * mips.c (mips_expand_prologue): If the last
13083         named argument is the vararg marker "va_list", treat it as
13084         an unnamed argument.
13085
13086 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
13087
13088         * dbxout.c (dbxout_parms): When correcting for promoted
13089         big-endian parameters, use the mode of the DECL_RTL rather
13090         than UNITS_PER_WORD.
13091
13092 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
13093
13094         * c-common.h (make_fname_decl): Declare.
13095         * c-common.c (make_fname_decl): Define.
13096         (declare_hidden_char_array): Remove.
13097         (declare_function_name): Use make_fname_decl.
13098         * c-decl.c (c_make_fname_decl): New function.
13099         (init_decl_processing): Set make_fname_decl.
13100
13101 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
13102
13103         * cccp.c (handle_directive): Initialize backslash_newlines_p.
13104
13105 2000-03-07  Philipp Thomas  <pthomas@suse.de>
13106
13107         * po/POTFILES.in: Remove cppalloc.c from file list.
13108
13109 2000-03-07  Steve Chamberlain  <sac@pobox.com>
13110
13111         * pj.c (pj_expand_prologue): current_function->args_info is
13112         now current_function_args_info.
13113
13114         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
13115         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
13116         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
13117
13118 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13119
13120         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
13121         output as hexadecimal rather than the default octal.
13122
13123 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13124
13125         * cpphash.c (special_symbol): Fix thinko in previous commit.
13126
13127 2000-03-07  Neil Booth  <NeilB@earthling.net>
13128
13129         * cppexp.c (struct operation, left_shift, right_shift,
13130         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
13131         "int"s to "unsigned int"s.
13132         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
13133         Similarly.
13134         * cpplib.h: Update for above.
13135         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
13136         returned from allocations.
13137
13138         * cppinit.c (opt_comp, parse_options): New functions.
13139         (handle_option): Use parse_option to parse a single command
13140         line option, that possibly takes an argument.
13141         (cpp_handle_options): Sort the array of command line options on
13142         first invocation (non-ASCII hosts only).
13143         (print_help): Update.
13144
13145 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13146
13147         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
13148         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
13149
13150         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
13151         initialized.
13152         * cppinit.c (cpp_cleanup): Free imp->nshort also.
13153
13154         * cpperror.c (cpp_print_containing_files,
13155         cpp_print_file_and_line, v_cpp_message): Rename to
13156         print_containing_files, print_file_and_line, and v_message.
13157         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
13158         to _cpp_parse_expr, parse_escape, and lex.
13159         (parse_charconst): Remove broken multibyte support.
13160         * cppfiles.c (include_hash): Make static.
13161         (cpp_included): New function.
13162         (merge_include_chains, find_include_file, finclude,
13163         simplify_pathname): Rename to _cpp_merge_include_chains,
13164         _cpp_find_include_file, _cpp_read_include_file, and
13165         _cpp_simplify_pathname.
13166         * cpphash.c (cpp_lookup, free_definition, delete_macro,
13167         cpp_install, create_definition, macroexpand, compare_defs,
13168         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
13169         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
13170         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
13171         * cppinit.c (cpp_handle_option): Rename to handle_option, make
13172         static.
13173         * cpplib.c: Remove extern prototype of cpp_parse_expr.
13174
13175         * cpphash.h: Update prototypes.
13176         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
13177
13178 2000-03-07  Andrew Haley  <aph@cygnus.com>
13179
13180         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
13181         PTRDIFF_TYPE should be based solely on Pmode.
13182         (SIZE_TYPE): ditto.
13183
13184 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13185
13186         * rtl.h (rtunion_def): Constify member `rtstr'.
13187         (emit_line_note_after, emit_line_note, emit_line_note_force,
13188         emit_note, decode_asm_operands): Constify.
13189
13190         * cse.c (canon_hash): Likewise.
13191
13192         * dbxout.c (dbxout_block): Likewise.
13193
13194         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
13195         v_warning_for_asm): Likewise.
13196
13197         * dwarfout.c (function_start_label): Likewise.
13198
13199         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
13200         emit_line_note_force): Likewise.
13201
13202         * final.c (last_filename, asm_insn_count, final_scan_insn,
13203         output_source_line): Likewise.
13204
13205         * function.h (struct emit_status): Likewise.
13206
13207         * gcse.c (hash_expr_1): Likewise.
13208
13209         * genattr.c (gen_attr, main): Likewise.
13210
13211         * genattrtab.c (struct function_unit, current_alternative_string,
13212         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
13213         attr_numeral, check_attr_test, check_attr_value,
13214         convert_set_attr_alternative, convert_set_attr,
13215         compute_alternative_mask, simplify_by_exploding, gen_attr,
13216         gen_unit): Likewise.
13217
13218         * genflags.c (gen_insn): Likewise.
13219
13220         * gengenrtl.c (type_from_format): Likewise.
13221
13222         * genopinit.c (gen_insn): Likewise.
13223
13224         * genoutput.c (n_occurrences, process_template, process_template):
13225         Likewise.
13226
13227         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13228         Likewise.
13229
13230         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13231         Likewise.
13232
13233         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
13234         ggc_set_mark, ggc_get_size): Likewise.
13235
13236         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
13237
13238         * optabs.c (init_one_libfunc): Likewise.
13239
13240         * output.h (assemble_start_function): Likewise.
13241
13242         * recog.c (decode_asm_operands): Likewise.
13243
13244         * toplev.c (rest_of_compilation): Likewise.
13245
13246         * tree.h (emit_line_note_after, emit_line_note,
13247         emit_line_note_force): Likewise.
13248
13249         * varasm.c (asm_output_bss, asm_output_aligned_bss,
13250         asm_emit_uninitialised, assemble_start_function,
13251         assemble_variable, const_hash, compare_constant_1,
13252         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
13253
13254         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
13255
13256         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
13257
13258         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
13259
13260         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
13261
13262         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
13263         arm_dllimport_name_p): Likewise.
13264
13265         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
13266         Likewise.
13267
13268         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
13269
13270         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13271
13272         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
13273         arm_mark_dllexport, arm_mark_dllimport,
13274         arm_pe_encode_section_info): Likewise.
13275
13276         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
13277         ASM_FINISH_DECLARE_OBJECT): Likewise.
13278
13279         * arm/thumb.c (thumb_function_prologue): Likewise.
13280
13281         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
13282
13283         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13284
13285         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
13286
13287         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
13288
13289         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
13290
13291         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13292
13293         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
13294         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
13295
13296         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
13297
13298         * i386/i386.c (asm_output_function_prefix): Likewise.
13299
13300         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
13301
13302         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13303
13304         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
13305
13306         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
13307         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
13308         ASM_OUTPUT_SECTION_NAME): Likewise.
13309
13310         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
13311
13312         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
13313
13314         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
13315
13316         * m32r/m32r.c (m32r_encode_section_info): Likewise.
13317
13318         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13319
13320         * mcore/mcore.c (mcore_encode_section_info): Likewise.
13321
13322         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13323
13324         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13325
13326         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13327
13328         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
13329
13330         * mips/mips.md (movdi, movsi): Likewise.
13331
13332         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13333
13334         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13335
13336         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13337
13338         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
13339         ASM_OUTPUT_ASCII): Likewise.
13340
13341         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
13342         output_mi_thunk, output_toc): Likewise.
13343
13344         * rs6000/rs6000.md (movsi): Likewise.
13345
13346         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
13347
13348         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
13349
13350         * v850/v850.c (print_operand, print_operand_address,
13351         v850_encode_data_area): Likewise.
13352
13353 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
13354
13355         * config/mips/mips.md (zero_extendsidi2): Always force operand
13356         one to memory for mips16.
13357
13358 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13359
13360         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
13361         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
13362         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
13363         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
13364         (min_precision): Result is unsigned.
13365         (add_double, neg_double, mul_double): Low word is unsigned.
13366         (lshift_double, rshift_double, lrotate_double): Likewise.
13367         (rrotate_double, div_and_round_double): Likewise.
13368         (tree_floor_log2, compare_tree_int): New functions.
13369         (preserve_rtl_expr_temps): New declaration.
13370         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
13371         (decl_attributes): Use tree_log2 to find alignment.
13372         Check for TREE_INT_CST_HIGH for format args.
13373         (min_precision): Now unsigned.
13374         Use tree_floor_log2.
13375         (truthvalue_conversion): Delete long-disabled code.
13376         * c-decl.c (finish_struct): Clean up tests on field width.
13377         (finish_function): Use compare_tree_int.
13378         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
13379         * c-typeck.c (comptypes): Use tree_int_cst_equal.
13380         (default_conversion, digest_init): Use compare_tree_int.
13381         (build_binary_op): Use integer_all_onesp and compare_tree_int.
13382         Fix type errors in forming masks.
13383         * calls.c (initialize_argument_information): Use compare_tree_int.
13384         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13385         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
13386         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
13387         (store_field): Use compare_tree_int.
13388         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
13389         (expand_expr, case ARRAY_REF): Use compare_tree_int.
13390         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
13391         (do_store_flag): Use compare_tree_int.
13392         * fold-const.c (encode, decode): Low part is always unsigned.
13393         (force_fit_type, add_double, neg_double, mul_double): Likewise.
13394         (lshift_double, rshift_double, lrotate_double): Likewise.
13395         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
13396         (fold_convert): Use compare_tree_int.
13397         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
13398         (invert_truthvalue, case INTEGER_CST): Likewise.
13399         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
13400         * mkdeps.c (deps_dummy_targets): Make I unsigned.
13401         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
13402         (lshift_double, rshift_double, lrotate_double, rrotate_double):
13403         Likewise.
13404         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
13405         (expand_end_case): Use compare_tree_int.
13406         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13407         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
13408         (layout_decl): Likewise.
13409         (layout_record, layout_union): Make sizes unsigned.
13410         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
13411         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
13412         * tree.c (struct type_hash): hashcode is unsigned.
13413         (build_type_attribute_variant, type_hash_list): Likewise.
13414         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
13415         (attribute_hash_list, build_array_type, build_method_type): Likewise.
13416         (build_complex_type): Likewise.
13417         (real_value_from_int_cst): Remove unneeded casts.
13418         (integer_all_onesp): Add casts.
13419         (tree_floor_log2, compare_tree_int): New functions.
13420         (build_index_type): Use tree_int_cst_sgn.
13421         * varasm.c (assemble_variable): Use compare_tree_int.
13422
13423 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
13424
13425         * cpphash.c (collect_expansion): Also catch ## at start of macro.
13426
13427         * varasm.c (make_decl_rtl): Don't add a number to members of
13428         local classes.
13429         (make_function_rtl): Likewise.
13430
13431 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13432
13433         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
13434         patch from 2000-01-28.
13435
13436 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
13437
13438         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
13439         filled with an insn from the jump target.
13440
13441 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13442
13443         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
13444         (c4x_external_ref): Likewise.
13445         * config/c4x/c4x.c (struct name_list): Likewise.
13446
13447 1999-12-16  Ben Collins  <bcollins@debian.org>
13448
13449         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
13450         argument to genmultilib.
13451         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
13452         the contents into the multilib.h header.
13453         * gcc.c: Declare multilib_exclusions for the specs file.
13454         (set_multilib_dir): Use it.
13455         (print_multilib_info): Likewise.
13456         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
13457         to pass to genmultilib.
13458
13459 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13460
13461         * builtins.c (built_in_class_names, built_in_names): Constify a
13462         char*.
13463
13464         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
13465         int.
13466         (_mcleanup): Ensure value matches format specifier in sprintf.
13467
13468         * cpphash.c (special_symbol): Don't needlessly cast away
13469         const-ness.
13470
13471         * cppinit.c (base_name): Delete unused prototype.
13472
13473         * mkdeps.c (deps_init): Make definition K&R safe.
13474
13475         * tree.h (built_in_class_names, built_in_names): Constify a
13476         char*.
13477
13478 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13479
13480         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13481         floating point instructions for epilogue delay.
13482
13483         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13484         to gas if it supports .register pseudo.
13485
13486         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13487         LONG_DOUBLE_TYPE_SIZE if not defined.
13488         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13489         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13490         * real.c: Likewise.
13491         * gengenrtl.c: Likewise.
13492         * print-rtl.c: Likewise.
13493         * rtl.c: Likewise.
13494         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13495         MASK_LONG_DOUBLE_128.
13496         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13497         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13498         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13499         (SUBTARGET_SWITCHES): Define.
13500         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13501         with -mlong-double-128.
13502         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13503         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13504         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13505         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13506         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13507         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13508         with -mlong-double-128.
13509         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13510         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13511         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13512         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13513         TARGET_LONG_DOUBLE_128): Define.
13514         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13515         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13516         long double on TARGET_ARCH64.
13517
13518 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13519
13520         * function.c (free_temps_for_rtl_expr): Don't free slots
13521         that have been pushed into a higher level.
13522
13523         Revert this patch:
13524         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13525
13526 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13527
13528         * basic-block.h (ALLOCA_REG_SET): Remove.
13529         (INITIALIZE_REG_SET): New macro.
13530         * flow.c (update_life_info): Use it.
13531         (calculate_global_regs_live): Likewise.
13532         (propagate_block): Likewise.
13533         * global.c (build_insn_chain): Likewise.
13534         * haifa-sched.c (schedule_region): Likewise.
13535
13536 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13537
13538         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13539         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13540         (DWARF_ARANGES_PAD_SIZE): New define.
13541         (output_aranges): Use it to pad the address range header.
13542         (DWARF_ROUND): Fix for non power of 2 rounding.
13543
13544 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13545
13546         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13547
13548 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13549
13550         * tree.def (RTL_EXPR): Update documentation.
13551         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13552         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13553         * function.c (preserve_rtl_expr_temp): New function.
13554         (preserve_rtl_expr_temps): Likewise.
13555         (preserve_rtl_expr_result): Use it.
13556
13557         Revert this patch:
13558         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13559
13560 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13561
13562         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13563         for unchanging destination.
13564
13565 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13566
13567         * function.h (struct sequence_stack): Remove rtl_expr.
13568         (struct emit_staus): Likewise.
13569         (seq_rtl_expr): Remove.
13570         * tree.h (free_temps_for_rtl_expr): Don't declare.
13571         (start_sequence_for_rtl_expr): Likewise.
13572         * rtl.h (preserve_rtl_expr_result): Likewise.
13573         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13574         (start_sequence_for_rtl_expr): Remove.
13575         (push_topmost_sequence): Don't save sequence_rtl_expr.
13576         (pop_topmost_sequence): Remove comment about not restoring it.
13577         (end_sequence): Don't set seq_rtl_expr.
13578         (init_emit): Don't initialize it.
13579         (mark_sequence_stack): Don't mark it.
13580         (mark_emit_status): Likewise.
13581         * except.c (protect_with_terminate): Use
13582         start_sequence_for_rtl_expr, not start_sequence.
13583         * expr.c (expand_expr, case RTL_EXPR): Don't call
13584         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13585         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13586         (preserve_rtl_expr_result): Remove.
13587         (free_temps_for_rtl_expr): Likewise.
13588         (pop_temp_slots): Likewise.
13589         (mark_temp_slot): Don't mark the rtl_expr.
13590         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13591         start_sequence_for_rtl_expr.
13592
13593 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13594
13595         * mkdeps.c, mkdeps.h: New files.
13596         * po/POTFILES.in: Add them.
13597         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13598         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13599         (mkdeps.o): New target.
13600
13601         * cppfiles.c: Delete deps_output.
13602         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13603         OBJECT_SUFFIX, and base_name.
13604         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13605         the include hash.
13606         (initialize_dependency_output): Use deps_init,
13607         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13608         all the unnecessary string bashing.
13609         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13610         level.
13611         * cpplib.c (do_include): Use deps_add_dep.
13612         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13613         deps_allocated_size, deps_size, deps_column members with
13614         single pointer to a struct deps.  Delete prototype of
13615         deps_output.
13616
13617         * cppinit.c: Fix thinko in previous patch.
13618
13619 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13620
13621         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13622         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13623         (mode_for_size_tree): New function.
13624         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13625         * tree.h (mode_for_size_tree): New declaration.
13626
13627         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13628
13629 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13630
13631         * stmt.c (is_body_block): Move...
13632         * dwarfout.c, dwarf2out.c: ...from here.
13633         * tree.h: Declare it.
13634         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13635         * final.c (final_start_function): Do call remove_unnecessary_notes
13636         when scheduling.
13637
13638 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13639
13640         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13641
13642         * cpplib.h (_dollar_ok): New macro.
13643         (is_idchar, is_idstart): Use it.
13644         (IStable): Rename to _cpp_IStable.  Declare it const if
13645         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13646         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13647         is_space): Update for renamed IStable.
13648
13649         * cppinit.c: Delete all references to FAKE_CONST and CAT
13650         macros. Define init_IStable as empty macro if gcc >=2.7 or
13651         C99. Change TABLE() to ISTABLE and hardcode name of table.
13652         (cpp_start_read): Don't change the IStable based on
13653         dollars_in_ident.
13654
13655         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13656         changed.  Handle '$' for char1 correctly.
13657         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13658
13659         * cppexp.c (tokentab2): Make const.
13660         (cpp_lex): Make toktab const.
13661         * cppinit.c (include_defaults_array): Make const.
13662         (initialize_standard_includes): Make default_include const.
13663
13664 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13665
13666         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13667         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13668         (gen_decl_die): Likewise.
13669         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13670         (output_decl): Likewise.
13671
13672         * varasm.c (make_function_rtl): If we change the name used in the
13673         rtl, update DECL_ASSEMBLER_NAME accordingly.
13674         (make_decl_rtl): Likewise.
13675
13676         * toplev.c (rest_of_compilation): Tweak formatting.
13677
13678         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13679         remove_unnecessary_notes.
13680         (debug_ignore_block): New fn.
13681         * toplev.h: Declare it.
13682         * emit-rtl.c (remove_unncessary_notes): Call it.
13683         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13684         * dwarf2out.h: Declare it.
13685         * final.c (final_start_function): Don't call remove_unnecessary_notes
13686         if we did insn scheduling.
13687
13688 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13689
13690         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13691         * cpplib.h: Delete SET_CPP_PEDANTIC.
13692
13693 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13694
13695         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13696         result is a RECORD_TYPE.
13697
13698 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13699
13700         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13701
13702 2000-03-03  Richard Henderson  <rth@cygnus.com>
13703
13704         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13705         addition over compliments over shifts.
13706
13707 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13708
13709         * reload1.c (reload_combine_note_use): Handle return register USEs.
13710         REG case: Handle multi-hard-register hard regs.
13711
13712 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13713
13714         * md.texi: Document use of '*' in insn pattern name.
13715
13716 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13717
13718         * calls.c (special_function_p): operator new may not be malloc-like.
13719
13720         * gcse.c (dump_hash_table): Really fix error in last change.
13721
13722 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13723
13724         * avr.c (print_operand): Use print_operand_address instead of
13725         output_addr_const.
13726         * avr/libgcc.S: Cleanup code.
13727
13728 2000-03-02  Richard Henderson  <rth@cygnus.com>
13729
13730         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13731
13732 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13733
13734         * tree.h (TYPE_ALIGN_UNIT): New macro.
13735
13736 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13737
13738         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13739
13740 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13741
13742         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13743         for the buffer.
13744         (SET_CPP_PEDANTIC): New macro.
13745         * cpplib.c (do_include): Don't bother checking system_header_p.
13746         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13747         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13748
13749         * function.h (struct expr_status): Add x_arg_space_so_far.
13750         (arg_space_so_far): New macro.
13751         * expr.c (init_expr): Initialize it.
13752         * calls.c (emit_call_1): Reset it.
13753         (compute_argument_block_size, expand_call): Use it.
13754         (expand_call, store_one_arg): Increment it.
13755
13756 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13757
13758         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13759         a UNION_TYPE.
13760
13761 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13762
13763         * cppfiles.c (cpp_read_file): New function.
13764
13765         * cpphash.c (collect_expansion): Make sure to reset last_token
13766         to NORM when we hit a string.  Handle trailing whitespace
13767         properly when the expansion is empty.
13768         (create_definition): Disable line commands while parsing the
13769         directive line.
13770         (dump_definition): If pfile->lineno == 0, output a line
13771         command ahead of the dump, and add a trailing newline.
13772
13773         * cppinit.c (append_include_chain): Add fifth argument, which
13774         indicates whether or not system headers are C++ aware.
13775         (initialize_standard_includes): New function,
13776         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13777         the include_defaults_array on to append_include_chain.
13778         (dump_special_to_buffer): Const-ify char array.
13779         (builtin_array): Don't dump __BASE_FILE__.
13780         (cpp_start_read): Use cpp_read_file.  Reorder code for
13781         clarity.  Don't output line commands here for -D/-A/-U
13782         switches.  Don't call deps_output for files included with
13783         -include or -imacros.
13784
13785         * cpplib.c (do_define): Don't pay any attention to the second
13786         argument.
13787         (cpp_expand_to_buffer): Disable line commands while scanning.
13788         (output_line_command): Work in the file buffer.
13789         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13790         Fix formatting of comments.  Prototype cpp_read_file.
13791
13792 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13793
13794         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13795         reference the language-equivalent of sizetype.
13796         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13797         * fold-const.c (size_binop, size_diffop): Put back checks.
13798         * gcse.c (dump_hash_table): Fix minor error in last change.
13799         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13800         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13801         all sizetypes.
13802
13803 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13804
13805         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13806         with inhibit_defer_pop set.
13807
13808 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13809
13810         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13811         the DECL_SIZE for a FIELD_DECL.
13812
13813 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13814
13815         * fixinc/inclhack.tpl: remove unused symlinks
13816         * fixinc/README: GCC Maintainer info
13817         * fixinc/inclhack.sh: regen
13818         * fixinc/fixincl.sh: regen
13819
13820 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13821
13822         * cpphash.c (collect_expansion): Trim trailing white space
13823         from macro definitions, but don't go past the last insertion
13824         point.
13825
13826 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13827
13828         * i386.md (mulqi3): New pattern.
13829
13830 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13831
13832         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13833         token types.
13834         (struct cpp_reader): Add parsing_if_directive and
13835         parsing_define_directive flags.
13836         (struct cpp_options): Remove output_conditionals flag.
13837         (check_macro_name): Delete prototype.
13838
13839         * cpphash.h (struct macrodef): Delete.
13840         (struct reflist): Separate from struct definition.
13841         (struct definition): Remove unused fields.  Add column number.
13842         (create_definition): Returns a DEFINITION *.  Takes a
13843         cpp_reader * and an int.
13844
13845         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13846         (PEEKC): Copy defn from cpplib.c.
13847         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13848         (struct arg): New.
13849         (struct arglist): Simplify.
13850         (collect_expansion): Rewrite.  Get tokens by calling
13851         cpp_get_token.  Add more error checking.
13852         (collect_formal_parameters): New function, broken out of
13853         create_definition and reworked to use get_directive_token.
13854         (create_definition): All real work is now in collect_expansion
13855         and collect_formal_parameters.  do_define handles finding the
13856         macro name.  Return a DEFINITION, not a MACRODEF.
13857         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13858         character-at-a-time copy loop with memcpy and pointer increments.
13859         (compare-defs): d1->argnames / d2->argnames might be null.
13860
13861         * cpplib.c (copy_rest_of_line): Delete function.
13862         (skip_rest_of_line): Do all the work ourselves.
13863         (skip_string): New function.
13864         (parse_string): Use skip_string.
13865         (get_macro_name): New function.
13866         (check_macro_name): Delete.
13867         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13868         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13869         (handle_directive): ICE if we're called on a macro buffer.
13870         (do_define): Determine macro name and type (funlike/objlike)
13871         here.  Expunge all uses of MACRODEF.
13872         (cpp_push_buffer): Set line_base to NULL.
13873         (do_undef, read_line_number): Don't worry about getting a POP token.
13874         (eval_if_expression): Set/reset parsing_if_directive around
13875         cpp_parse_expr. Don't clear only_seen_white.
13876         (skip_if_group): Remove output_conditionals logic.  Use
13877         skip_rest_of_line.
13878         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13879         tokens under appropriate conditions.
13880         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13881
13882         * cppexp.c (parse_defined): New function, break out of
13883         cpp_lex.
13884         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13885         ourselves, with cpp_defined.
13886         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13887
13888         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13889         * gcc.dg/strpaste-2.c: New.
13890
13891 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13892
13893         * fold-const.c (size_binop): Don't asert inputs are the same and
13894         have TYPE_IS_SIZETYPE set.
13895         (size_diffop): Likewise.
13896
13897 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13898
13899         * dwarfout.c (output_block): Output abstract blocks even if they
13900         don't have TREE_ASM_WRITTEN set.
13901
13902         * calls.c (emit_library_call): Check for null REG.
13903
13904 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13905
13906         * c-decl.c (current_function_decl): Move to toplev.c.
13907         (init_decl_processing): Don't add current_function_decl as a ggc
13908         root here.
13909         * dbxout.c (dbxout_symbol): Change return type to int.
13910         (dbxout_symbol_location, dbxout_syms): Likewise.
13911         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13912         any locals. Use current_function_func_begin_label if set.
13913         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13914         * dwarf2out.c (dwarf2out_begin_prologue): Set
13915         current_function_func_begin_label.
13916         * final.c (final_start_function): Reset it.
13917         * toplev.c (current_function_decl): Define it here.
13918         (current_function_func_begin_label): New variable.
13919         (main): Add both as ggc roots.
13920         * tree.h (current_function_func_begin_label): Declare.
13921
13922 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13923
13924         * gcse.c: Cleanups throughout: mostly white-space, but also
13925         some minor rearrangement of code.
13926
13927 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13928
13929         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13930         returns a PARALLEL.  Use emit_group_load and use_group_regs
13931         as needed.
13932         (emit_library_call_value): Similarly.
13933
13934         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13935         * pa/quadlib.asm: Remove.
13936         * pa/quadlib.c: New file.
13937
13938         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13939         * configure: Rebuilt.
13940
13941 2000-02-29  Philip Blundell  <pb@futuretv.com>
13942
13943         * config/arm/conix-elf.h: New file.
13944         * configure.in (arm*-*-conix*): New configuration.
13945         * configure: Regenerate.
13946
13947 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13948
13949         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13950         don't have TREE_ASM_WRITTEN set.
13951
13952 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13953
13954         * Eliminate DECL_FIELD_SIZE.
13955         * builtins.c (built_in_class_names, built_in_names): New variables.
13956         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13957         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13958         DECL_SIZE, not DECL_FIELD_SIZE.
13959         * print-tree.c (print_node): Remove code that prints extra blank
13960         lines in some cases.
13961         Properly handle inline and builtin function cases.
13962         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13963         * tree.h (built_in_class_named, built_in_names): New declarations.
13964         (union tree_decl): Rename internal unions to u1 and u2 and change
13965         some of their components.
13966         Add new field built_in_class.
13967         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13968         Reflect above changes.
13969         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13970         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13971         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13972         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13973
13974 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13975
13976         * extend.texi: Document ARM's support for long/short calls.
13977
13978         * invoke.texi: Document ARM's -mlong-calls command line switch.
13979
13980         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13981         (arm_encode_call_attribute): Add prototype.
13982         (arm_set_default_type_attribute): Add prototype.
13983         (arm_strip_name_encoding): Add prototype.
13984
13985         * config/arm/arm.c (arm_init_cumulative_args): replace
13986         initialisation og 'long_calls' field with initialisation of
13987         'call_cookie' field.
13988         (enum arm_pragma_enum): New enum.
13989         (arm_pragma_long_calls): New static variable.
13990         (arm_process_pragma): Also process "#pragma long_calls_off".
13991         (arm_valid_type_attribute_p): Accept short_call attribute.
13992         (arm_comp_type_attributes): Check long/short call attributes.
13993         (arm_encode_call_attribute):  New function:  Encode long_call
13994         or short_call attribute in function name.
13995         (arm_set_default_type_attributes): New function: Assign
13996         default attributes to newly defined type.
13997         (current_file_function_operand): New function: Return true if
13998         the symbol is a function which has already been compiled.
13999         (arm_is_longcall_p): New function: Return true if the
14000         indicated function should be called via a long call.
14001         (arm_get_strip_length): New function.  Returns number of
14002         prefix characters to be stripped from a function's name.
14003         (arm_strip_name_encoding): New function.  Strip prefix characters
14004         from a function's name.
14005
14006         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
14007         with 'call_cookie'.
14008         (SHORT_CALL_FAG_CHAR): Define.
14009         (LONG_CALL_FAG_CHAR): Define.
14010         (ENCODED_SHORT_CALL_ATTR_P): Define.
14011         (ENCODED_LONG_CALL_ATTR_P): Define.
14012         (ARM_NAME_ENCODING_LENGTHS): Define.
14013         (STRIP_NAME_ENCODING): Define.
14014         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
14015         (ARM_ENCODE_CALL_TYPE): Define.
14016         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
14017         (ARM_DECLARE_FUNCTION_SIZE): Define.
14018         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
14019
14020         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
14021         if a long call is needed.
14022         (call_value): Ditto.
14023         (call_symbol): Ditto.
14024
14025         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
14026         ARM_DECLARE_FUNCTION_SIZE.
14027
14028         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
14029         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
14030         (ARM_STRIP_NAME_ENCODING): Undefine.
14031         (STRIP_NAME_ENCODING): Undefine.
14032         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
14033         (ASM_DECLARE_FUNCTION_NAME): Ditto.
14034         (ASM_OUTPUT_COMMON): Ditto.
14035         (ASM_DECLARE_OBJECT_NAME): Ditto.
14036
14037         * config/arm/pe.c (arm_dllexport_name_p): Check for
14038         ARM_PE_FLAG_CHAR.
14039         (arm_dllimport_name_p): Ditto.
14040         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
14041         (arm_mark_dllimport): Ditto.
14042
14043 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14044
14045         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
14046
14047 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
14048
14049         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
14050
14051 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
14052
14053         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
14054         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
14055         NO_BUILTIN_WCHAR_TYPE is not defined.
14056         (CPP_WCHAR_TYPE): Delete.
14057         * cccp.c (main): Don't change wchar_type if cplusplus.
14058         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
14059
14060 2000-02-28  Nick Clifton  <nickc@cygnus.com>
14061
14062         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
14063
14064 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
14065
14066         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
14067         (ASM_WEAKEN_LABEL): Define.
14068
14069 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
14070
14071         * expr.c (store_constructor): Do not emit USE.
14072         * rtl.h (stupid_life_analysis): Remove.
14073
14074 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14075
14076         * function.c (number_blocks): Reset next_block_index based on
14077         what debugging format is used, not what is defined.
14078
14079         * lcm.c: Minor reformatting throughout.
14080         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
14081
14082         * toplev.c (rest_of_compilation): Account for time in
14083         optimize_mode_switching.
14084
14085         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
14086         if only marking labels.
14087
14088 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
14089
14090         * calls.c (expand_call): Attempt to combine stack adjustments with
14091         pending stack adjustments.
14092
14093 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14094
14095         * loop.c (reg_in_basic_block_p): Don't abort when falling through
14096         to the end of the function.
14097
14098 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
14099
14100         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
14101         blocks.
14102         * final.c (next_block_index): Remove.
14103         (max_block_depth): Likewise.
14104         (pending_blocks): Likewise.
14105         (init_final): Don't initialize them.
14106         (final_start_function): Don't set next_block_index.  Set up
14107         BLOCK_NUMBER.
14108         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
14109         * function.h (number_blocks): New function.
14110         * function.c (get_block_vector): New function.
14111         (identify_blocks): Use it.
14112         (reorder_blocks): Set NOTE_BLOCK.
14113         (number_blocks): New function.
14114         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
14115         * tree.h (BLOCK_NUMBER): New macro.
14116         (tree_block): Add block_num field.
14117         * dbxout.c (next_block_number): Remove.
14118         (dbxout_init): Don't set it.
14119         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
14120         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
14121         block numbers.
14122         * toplev.c (rest_of_compilation): Always call
14123         find_loop_tree_blocks.  Fix indentation.
14124         * dwarf2out.c (next_block_number): Remove.
14125         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14126         to determine block numbers.
14127         (gen_inlined_subroutine_die): Likewise.
14128         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
14129         (decls_for_scope): Don't increment next_block_number.
14130         * dwarfout.c (next_block_number): Remove.
14131         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14132         to determine block numbers.
14133         (output_inlined_subroutine_die): Likewise.
14134         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
14135         (output_decls_for_scope): Don't increment next_block_number.
14136         * sdbout.c (next_block_number): Remove.
14137         (sdbout_block): Use BLOCK_NUMBER.
14138         (sdbout_begin_block): Simplify.
14139         * xcoffout.c (next_block_number): Remove.
14140         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
14141         (xcoffout_begin_block): Don't set next_block_number.
14142         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
14143         next_block_number.
14144
14145 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14146
14147         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
14148         (expand_builtin_strcpy): Pass correct type to size_binop.
14149         (expand_builtin_strcmp): Likewise.
14150         Clean up conditional structure.
14151         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
14152         (complete_array_type): Don't use size_binop for MAXINDEX.
14153         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
14154         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
14155         (c_alignof): Use size_one_node.
14156         (build_unary_op): Pass arg of proper type to size_binop.
14157         (really_start_incremental_init, push_init_level): Use sizetype for
14158         constructor{,_bit,_unfilled}_index.
14159         (pop_init_label, output_init_element): Likewise.
14160         (output_pending_init_elements, process_init_element): Likewise.
14161         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
14162         * expr.c (store_expr): Use size_int.
14163         (store_constructor): Use proper types for size_binop args.
14164         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
14165         (expand_expr_unaligned): Likewise.
14166         (string_contant): Return object of sizetype.
14167         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
14168         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
14169         (ARGS_SIZE_TREE): Pass proper types to size_binop.
14170         * fold-const.c (int_const_binop): Refine when size_int is called.
14171         (fold_convert): Likewise.
14172         (size_int_wide): Rework to take KIND as arg, only take low order
14173         bits, handle new sizetype_tab datatype, and chain entries in
14174         size_table.
14175         (size_int_type_wide): New function.
14176         (size_binop): Validate types of arguments.
14177         (ssize_binop): Deleted.
14178         (size_diffop): New function.
14179         (extract_muldiv): Only fold division into multiplication for sizetypes.
14180         * function.c (assign_parms): Use size_diffop and make sure
14181         VAR field is of ssizetype; also pass proper type to size_binop.
14182         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
14183         (round_down): Deleted from here.
14184         * store-layout.c (sizetype_tab): Now an array.
14185         (sizetype_set, early_root_list): New variables.
14186         (variable_size): Use size_one_node.
14187         (round_up): Pass proper type to size_binop.
14188         (round_down): Moved to here and corrected as above.
14189         (layout_record): Pass proper arg types to size_binop.
14190         (layout_type): Likewise.
14191         If sizetype_set is zero, record the type just laid out.
14192         (make_unsigned_type): Don't call set_sizetype;
14193         (make_signed_type): Likewise; also, call fixup_signed_type.
14194         (initialize_sizetypes): New function.
14195         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
14196         set name of bitsizetype to "bit_size_type".
14197         Fix up type of sizes of all types made before call.
14198         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
14199         * tree.c (fix_sizetype): Deleted.
14200         (build_common_tree_nodes): Call initialize_sizetypes.
14201         (build_common_tree_nodes_2): Don't call fix_sizetype.
14202         * tree.h (TYPE_IS_SIZETYPE): New macro.
14203         (initialize_sizetype): New declaration.
14204         (enum size_type_kind): New type.
14205         (struct sizetype_tab): Deleted.
14206         (sizetype_tab): Now array; adjust sizetype macros.
14207         (size_diffop, size_int_type_wide): New functions.
14208         (size_int_wide): Change number of args and type; access macros changed.
14209         (ssize_int, sbitsize_int): New macros.
14210         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
14211         (ROUND_TYPE_SIZE_UNIT): New macro.
14212
14213 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
14214
14215         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
14216
14217 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14218
14219         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
14220         Mark as possibly unused.
14221
14222         * cse.c (cse_insn): Delete dead code involving tablejump.
14223         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
14224
14225         * Makefile.in (libcpp.a): Start by deleting it.
14226
14227 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14228
14229         * cpplib.h (enum file_change_code): Added rename_file.
14230         * cpplib.c (do_line): If a filename is given, set file_change to
14231         rename_file.
14232         (output_line_command): If file_change is rename_file, always
14233         output a # directive with the file name.
14234
14235         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
14236
14237 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
14238
14239         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
14240         when copying a PARM_DECL or RESULT_DECL.
14241
14242 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14243
14244         * fix-header.c (recognized_function): Also fix prototypes for
14245         functions taking "void".
14246
14247 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14248
14249         * reload1.c (do_output_reload): Check reg_reloaded_valid before
14250         looking at reg_reloaded_contents.
14251
14252 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
14253
14254         * Makefile.in (STMP_FIXINC): New toggle.
14255         (LIBGCC2_DEPS): Delete all references.
14256         (stmp-headers): Delete target.  All references either deleted
14257         or changed to stmp-int-headers.
14258         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
14259         (LIBCPP_OBJS): Take out cppalloc.o.
14260         (cppalloc.o): Delete target.
14261         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
14262         (gen-protos, fix-header): Link with libiberty.a.
14263         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
14264         to empty.
14265
14266         * configure.in: Remove refs to strerror.
14267         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
14268         * system.h: Take out strerror stanza.
14269
14270         * cpperror.c (my_strerror): Delete function.
14271         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
14272         * cppmain.c (main): Call xmalloc_set_program_name first thing.
14273         * cppalloc.c: Delete file.
14274         * gen-protos.c: Don't provide xrealloc.
14275
14276         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
14277         xstrerror throughout.
14278
14279 2000-02-26  Bruce Korb  <bkorb@gnu.org>
14280
14281         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
14282         match for DOS headers, too.
14283         * fixinc/inclhack.sh,fixincl.x: Regenerate.
14284
14285 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14286
14287         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
14288         is right for most ELF targets.
14289         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
14290         Let the default file use %U properly.
14291         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
14292         default.
14293
14294         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
14295         numbers.
14296
14297 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14298
14299         * toplev.c (documented_lang_options): Correct spelling error.
14300         (decode_d_option, decode_f_option, main): Likewise.
14301
14302         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
14303
14304         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
14305         to tell assembler it is permitted to expand large constants.
14306
14307 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
14308
14309         * protoize.c: (AUX_INFO_SUFFIX): New macro.
14310         (aux_info_suffix): Use.
14311         (SAVE_SUFFIX): New macro.
14312         (save_suffix): Use.
14313         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
14314         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
14315         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
14316
14317         * invoke.texi (Running Protoize): Update documentation.
14318
14319 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
14320
14321         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
14322
14323 2000-02-25  John Wehle  (john@feith.com)
14324
14325         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
14326
14327 2000-02-25  Anthony Green  <green@cygnus.com>
14328
14329         * toplev.c (rest_of_compilation): Rebuild jump labels if
14330         combine_instructions has created a new direct jump.
14331         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
14332         when appropriate.
14333         (combine_instructions): Call try_combine with new argument.
14334         Return non-null value when new direct jump instruction is created.
14335         * rtl.h: combine_instructions returns an int.
14336
14337 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
14338
14339         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
14340         jump when changing a computed jump into a jump to a known
14341         target.
14342
14343 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
14344
14345         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
14346         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
14347
14348         * i386.md (define_expand "clrstrsi"): Fix typo.
14349
14350 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
14351
14352         * rtl.texi: Fix typo.
14353
14354 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14355
14356         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
14357         UNITS_PER_WORD.  Change caller initial_elimination_offset.
14358         (rounded_frame_size): Take into account that argument pushed has
14359         changed.  Fix TARGET_ALIGN_DOUBLE problem.
14360
14361 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
14362
14363         * haifa-sched.c (schedule_block): Explain the real reason
14364         we delete REG_SAVE_NOTEs on the first insn of a block.
14365         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
14366
14367 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
14368
14369         * input.h (push_srcloc): New function.
14370         (pop_srcloc): Likewise.
14371         * toplev.c (push_srcloc): Define it.
14372         (pop_srcloc): Likewise.
14373
14374 2000-02-24  Richard Henderson  <rth@cygnus.com>
14375
14376         * flow.c (life_analysis): When collecting reg info, clear
14377         regs_ever_live.
14378
14379 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14380
14381         Fix bug exposed by reload.c no longer rounding the frame
14382         size to BIGGEST_ALIGNMENT:
14383         * sh.c (rounded_frame_size): New function.
14384         (sh_expand_prologue, sh_expand_epilogue): Use it.
14385         (initial_elimination_offset): Likewise.
14386
14387 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14388
14389         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
14390         * sh-protos.h (sh_need_epilogue): Declare.
14391         * sh.c (sh_need_epilogue_known): New static variable.
14392         (sh_need_epilogue): New function.
14393         (function_epilogue): Clear need_epilogue_known.
14394         * sh.md (return): Split into expander / insn pattern.
14395         Make the expander conditional on ! sh_need_epilogue ().
14396
14397 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
14398
14399         * machmode.h (get_mode_alignment): Declare.
14400         (GET_MODE_ALIGNMENT): Call it.
14401         * stor-layout.c (get_mode_alignment): New function. Make
14402         sure alignment is always power of 2.
14403
14404 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14405
14406         * i386.h: Remove useless definition of "I386" and misleading
14407         comment above it.
14408
14409 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14410
14411         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
14412         under which TREE_PERMANENT will be set.
14413         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
14414         build1): Use TREE_SET_PERMANENT.
14415         * print-tree.c (print_node): Don't report value of
14416         TREE_PERMANENT if ggc_p is true.
14417
14418         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
14419         decide whether to give a type a new alias set.
14420         * objc/objc-act.c (build_objc_string_object): Never copy the string.
14421         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
14422         of value of 'obstack'.
14423
14424
14425 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14426
14427         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
14428
14429 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14430
14431         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
14432         * cpplib.c (cpp_get_token): Produce them.
14433         * cppexp.c (cpp_lex): Handle them.
14434
14435 2000-02-23  Nick Clifton  <nickc@cygnus.com>
14436
14437         * config/arm/arm.c (arm_comp_type_attributes): Simply and
14438         comment tests on type attributes.
14439
14440 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14441
14442         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
14443         conform to documentation.
14444         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
14445         to check for special cases.
14446         * sh-protos.h (sh_loop_align): Declare.
14447         * sh.c (sh_loop_align): Define.
14448
14449 2000-02-22  Andrew Haley  <aph@cygnus.com>
14450
14451         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
14452         (SIZE_TYPE): Is 32 bits when using -mgp32.
14453         (PTRDIFF_TYPE): Ditto.
14454
14455 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14456
14457         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
14458
14459 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14460
14461         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
14462         BIGGEST_FIELD_ALIGNMENT a constant.
14463
14464 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
14465
14466         * dwarf2out.c (output_line_info): Put the marker for the end of
14467         the line number info at the actual end.
14468         (gen_struct_or_union_type_die): Use decl_function_context
14469         to check for local classes.
14470         * dwarfout.c (output_type): Likewise.
14471
14472 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
14473
14474         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
14475         for arguments with a mode, but no type.
14476         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14477         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14478         * pa/long_double.h: New file.
14479         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14480         both have 128bit wide long doubles.
14481         * configure: Rebuilt.
14482
14483 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14484
14485         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14486
14487         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14488         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14489         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14490
14491         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14492
14493         * integrate.c (compare_blocks, find_block): Likewise.
14494
14495         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14496
14497         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14498
14499         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14500         expand_asm_operands): Likewise.
14501
14502 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14503
14504         * predict.c (estimate_probability): Added the pointer heuristic to
14505         the collection of static branch predictors.
14506
14507 2000-02-21  Catherine Moore  <clm@cygnus.com>
14508
14509         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14510         * invoke.texi (-mfix7000): Document.
14511
14512 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14513
14514         * diagnostic.c (init_output_buffer): Make it possible to output at
14515         least 32 characters if we're given a too long prefix.
14516
14517 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14518
14519         * varasm.c (initializer_constant_valid_p): Call
14520         lang_expand_constant to simplify the constant.
14521
14522 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14523
14524         * fixinc/inclhack.def(stdio_va_list):
14525         typedef needs to be disabled.
14526         * fixinc/inclhack.sh: regen
14527         * fixinc/fixincl.x: regen
14528
14529 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14530
14531         * print-rtl.c (print_rtx): Don't print addresses when
14532         flag_dump_unnumbered.
14533
14534 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14535
14536         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14537         ATTRIBUTE_UNUSED.
14538         (sparc_va_arg, sparc_flat_output_function_prologue,
14539         sparc_flat_output_function_epilogue): Cast value to unsigned in
14540         comparison.
14541         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14542
14543         * sparc.md: Add default case in switch.
14544
14545 2000-02-19  Richard Henderson  <rth@cygnus.com>
14546
14547         * c-typeck.c (add_pending_init): Don't abort for multiple
14548         fields at the same offset.
14549         (pending_init_member): Test the correct member.
14550
14551 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14552
14553         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14554         instead of SImode.
14555         (start_catch_handler) : Same.
14556
14557 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14558
14559         * Makefile.in: Have flow.o depend on $(EXPR_H)
14560
14561 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14562
14563         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14564         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14565         (finish_decl): Remove -Wlarger-than code from here.
14566         * flags.h (id_clash_len): Now int.
14567         (larger_than_size): Now HOST_WIDE_INT.
14568         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14569         Clean up checking to see if in table.
14570         (make_bit_field_ref): Remove extra parm to bitsize_int.
14571         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14572         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14573         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14574         and for computing size of decl.
14575         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14576         Move -Wlarger-than code to here.
14577         (layout_record): Remove extra arg to bitsize_int.
14578         Set TYPE_BINFO_SIZE_UNIT.
14579         (layout_union): Remove extra arg to bitsize_int.
14580         Use proper type for size of QUAL_UNION.
14581         (layout_type): Remove extra arg to bitsize_int.
14582         * toplev.c (id_clash_len): Now int.
14583         (larger_than_size): Now HOST_WIDE_INT.
14584         (decode_W_option): Clean up id-clash and larger-than- cases.
14585         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14586         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14587         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14588         (struct tree_decl): New field size_unit.
14589         (size_int_wide): No HIGH operand; NUMBER is now signed.
14590         (size_int_2): Deleted.
14591         (size_int, bitsize_int): Don't use it and rework args.
14592         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14593
14594 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14595
14596         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14597
14598 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14599
14600         * invoke.texi (Warning Options): Add an explanation of why
14601         you might want the -Wfloat-equal flag.
14602
14603 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14604
14605         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14606         * cppinit.c (new_pending_define): Add cast to avoid warning.
14607         * expmed.c (extract_bit_field): Likewise.
14608         * flow.c (enum reorder_skip_type): New type.
14609         (skip_insns_between_blcok): New it.
14610         Rework to avoid warning about possibly undefined variable.
14611         * function.c (assign_parms): Make thisparm_boundary unsigned.
14612         * genrecog.c (write_switch): Cast XWINT result to int.
14613         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14614         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14615         one for MIPS and one for Alpha.
14616         (get_tag, copy_object): Add casts to avoid warnings.
14617         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14618         * reload.c (find_reloads): Make TYPE enum reload_type.
14619         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14620         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14621         * varasm.c (compare_constant_1): Add cast to avoid warning.
14622         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14623         to (char *).
14624         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14625         Cast switch operand of size to int.
14626         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14627         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14628         in unhandled case.
14629
14630 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14631
14632         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14633         anything for an alignment of zero.
14634
14635         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14636         anything for an alignment of zero.
14637
14638 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14639
14640         * gcc.texi (Bug Reporting): Refer to bugs.html.
14641         (Bug Lists): Likewise.
14642         * system.h (GCCBUGURL): New preprocessor define.
14643         * rtl.c (fancy_abort): Use it.
14644         * gcc.c (main): Likewise.
14645
14646 2000-02-18  Richard Henderson  <rth@cygnus.com>
14647
14648         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14649         (life_analysis_1): Subsume into ...
14650         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14651         Use update_life_info for the relaxation.
14652         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14653         entry and regs_live_at_setjmp.
14654         (set_noop_p): Simplify.
14655         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14656         (record_volatile_insns): Split into ...
14657         (delete_noop_moves): ... here,
14658         (notice_stack_pointer_modification): ... here,
14659         (insn_dead_p): ... and here.
14660         (propagate_block): Don't query INSN_VOLATILE.
14661         (mark_used_regs): Mind !PROP_REG_INFO.
14662         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14663         not in life_analysis.
14664
14665 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14666
14667         * loop.c (canonicalize_condition): New function,
14668         broken out of get_condition.
14669         (get_condition): Use it.
14670         * expr.h (canonicalize_condition): Prototype it.
14671
14672         * tree.h (tree_int_cst_msb): Declare.
14673         * tree.c (tree_int_cst_msb): New function.
14674
14675 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14676
14677         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14678         isn't set.
14679
14680         * invoke.texi (-fmessage-length=n): Document.
14681
14682 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14683
14684         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14685
14686 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14687
14688         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14689         after the prologue.
14690
14691 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14692
14693         * config/arm/thumb.c: Replace includes of system headers with
14694         #include "system.h".
14695
14696 2000-02-16  Richard Henderson  <rth@cygnus.com>
14697
14698         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14699         Add crtbeginS.o and crtendS.o.
14700         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14701         (ENDFILE_SPEC): Use crtendS.o.
14702         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14703
14704         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14705         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14706         shared and present.
14707         (__dso_handle): New variable.
14708         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14709         bias to __CTOR_END__.
14710
14711 2000-02-16  Richard Henderson  <rth@cygnus.com>
14712
14713         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14714
14715 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14716
14717         * longlong.h (__clz_tab): Declare as static to match definition.
14718
14719 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14720
14721         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14722         (XREF_FILE_NAME): Define.
14723
14724         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14725         (EH_FRAME_SECTION_ASM_OP): Define.
14726         (IDENT_ASM_OP): Define.
14727         (TEXT_SECTION_ASM_OP): Define.
14728         (CPP_SPEC): Define.
14729         (CTORS_SECTION_ASM_OP): Define.
14730         (CTOR_SECTION_FUNCTION): Use it.
14731         (DTORS_SECTION_ASM_OP): Define.
14732         (DTOR_SECTION_FUNCTION): Use it.
14733
14734 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14735
14736         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14737         NOTE_BASIC_BLOCK.
14738
14739         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14740         debug_bb_n): New functions.
14741         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14742         * basic-block.h: Prototype new functions.
14743
14744 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14745
14746         * configure.in: Add support for avr target.
14747         * configure: Rebuilt.
14748
14749         * invoke.texi: Add AVR invocation docs.
14750         * install.texi: Add information about AVR.
14751         * md.texi: Add AVR constraint letters description.
14752         * extend.texi: Add description for AVR specific attributes.
14753
14754 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14755
14756         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14757
14758 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14759
14760         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14761         (make_insn_raw): Move RTL check here.
14762
14763 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14764
14765         * version.c: Include gansidecl.h and version.h.
14766
14767         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14768
14769         * configure.in (gcc_version): When setting, narrow search to
14770         lines containing `version_string'.
14771
14772         * Makefile.in (mainversion): Likewise.
14773         (GCC_H): New variable.
14774         (gcc.h): Delete target.
14775         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14776         (version.o): Depend on version.h.
14777         (dbxout.o): Don't depend on gcc.h.
14778
14779 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14780                           Michael Meissner  <meissner@cygnus.com>
14781
14782         * md.texi (Simple Constraints): Add item about whitespace.
14783         * genoutput.c (strip_whitespace): New.
14784         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14785         strip_whitespace for constraints.
14786         Test pointer using NULL, not 0.
14787
14788 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14789
14790         * cpplib.c (do_line): Pedwarn for #line > 32767.
14791
14792         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14793
14794 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14795
14796         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14797         to default cpp spec.
14798         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14799         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14800         * cpp.1: Likewise.
14801
14802         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14803         default spec.
14804
14805 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14806
14807         * configure.in: Add support for avr target.
14808
14809 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14810
14811         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14812         (sh_addr_diff_vec_mode): Don't declare.
14813         * sh.c (sh_addr_diff_vec_mode): Delete.
14814
14815 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14816
14817         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14818
14819 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14820
14821         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14822         (smulsi3_highpart_i): Name.
14823         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14824         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14825         (smulsi3_highpart, umulsi3_highpart): Likewise.
14826
14827         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14828         correctly independent of endianness.
14829         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14830         confuse the optimizers.
14831         (mulsidi3+1, umulsidi3+1): New define_split.
14832
14833 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14834
14835         * config/sh/sh.md: Guard insn splits against illegal registers.
14836         * config/sh/sh.h: Correct comment about macros.
14837
14838 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14839                           Andrew MacLeod  <amacleod@cygnus.com>
14840
14841         * Makefile.in (lcm.o): Depend on insn-attr.h.
14842         * basic-block.h (optimize_mode_switching): Declare.
14843         * lcm.c (tm_p.h, insn-attr.h): #include.
14844         (seginfo, bb_info): New structs.
14845         (antic, transp, comp, delete, insert) : New file-scope static variables.
14846         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14847         (reg_becomes_live, optimize_mode_switching): Likewise.
14848         * tm.texi: Add description of mode switching macros.
14849         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14850
14851         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14852         (fldi_ok, fpscr_set_from_mem): New prototypes.
14853         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14854         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14855         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14856         (sh_flag_remove_dead_before_cse): Remove declaration.
14857         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14858         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14859         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14860         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14861         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14862         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14863         (fldi_ok): New function.
14864         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14865         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14866         (emit_df_insn): Likewise.
14867         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14868         (sh_flag_remove_dead_before_cse): Delete.
14869         (get_free_reg, fpscr_set_from_mem): New functions.
14870         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14871         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14872
14873 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14874
14875         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14876
14877 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14878
14879         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14880         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14881
14882         * cccp.c: Include version.h and/or don't declare `version_string'.
14883         * collect2.c: Likewise.
14884         * alpha.c: Likewise.
14885         * arm/aof.h: Likewise.
14886         * arm/coff.h: Likewise.
14887         * arm/elf.h: Likewise.
14888         * arm/pe.h: Likewise.
14889         * arm/tcoff.h: Likewise.
14890         * arm/telf.h: Likewise.
14891         * arm/tpe.h: Likewise.
14892         * arm/vxarm.h: Likewise.
14893         * convex/convex.c: Likewise.
14894         * i386/dgux.c: Likewise.
14895         * i386/sun386.h: Likewise.
14896         * m88k/m88k.c: Likewise.
14897         * mcore/mcore-pe.h: Likewise.
14898         * mips/mips.h: Likewise.
14899         * romp/romp.h: Likewise.
14900         * sh/sh.c: Likewise.
14901         * cpphash.c: Likewise.
14902         * cppinit.c: Likewise.
14903         * dwarf2out.c: Likewise.
14904         * dwarfout.c: Likewise.
14905         * gcc.c: Likewise.
14906         * gcc.h: Likewise.
14907         * mips-tfile.c: Likewise.
14908         * protoize.c: Likewise.
14909         * toplev.c: Likewise.
14910         * tree.h: Likewise.
14911
14912         * version.c (version_string): Constify a char*.
14913
14914         * version.h: New file.
14915
14916 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14917
14918         * configure.in: Add mcore-elf and mcore-pe targets.
14919         * configure: Regenerate.
14920
14921         * NEWS: Add note that MCore port has been contributed.
14922
14923         * invoke.texi: Document command line switches for MCore port.
14924         * install.texi: Add MCore to list of supported targets.
14925
14926 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14927
14928         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14929         then we will need to import the frame handling functions.
14930         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14931         to import the frames themselves.
14932
14933 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14934                           Jason Eckhardt  <jle@cygnus.com>
14935
14936         * basic_block.h: Added prototype for reorder_basic_blocks.
14937         * toplev.c: Changes to add -freorder-blocks and graph dump after
14938         block reordering is done.
14939         * flow.c (reorder_block_def): New structure for use during block
14940         reordering.
14941         (REORDER_BLOCK_*): New macros to access members of above structure.
14942         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14943         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14944         functions for block reordering.
14945
14946 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14947
14948         * gcc.texi (Passes): Fix typo.
14949         * md.texi (Standard Names): Ditto.
14950         * tm.texi (Storage Layout): Ditto.
14951
14952 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14953
14954         * cpplib.c (do_define): Only free the old definition if it
14955         actually had one.
14956
14957 2000-02-13   Neil Booth  <NeilB@earthling.net>
14958
14959         * cppfiles.c (read_and_prescan): When emitting deferred
14960         newlines, test speccase[] again instead of checking each
14961         possible whitespace character in turn.  When we encounter \r,
14962         look behind for \n first, then ahead.
14963
14964 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14965
14966         * cse.c (cse_altered): New internal flag.
14967         (cse_insn): Set it if we changed an insn.
14968         (cse_main): Clear cse_altered before each basic block.
14969         Only garbage collect if cse_altered is true afterward.
14970
14971 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14972
14973         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14974
14975 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14976
14977         * combine.c (simplify_comparison): Fix typo.
14978
14979 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14980
14981         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14982         consistently.
14983
14984 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14985
14986         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14987         previously inserted node instead of root node.  Caller changed.
14988
14989 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14990
14991         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14992
14993 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14994
14995         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14996         __dereg_frame_dtor): Add prototype argument.
14997
14998         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14999
15000         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
15001
15002         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
15003
15004         * gthr-vxworks.h (__gthread_once): Likewise.
15005
15006         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
15007
15008 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
15009
15010         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
15011         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
15012         stack pointer in functions w/o saved registers, output LEAVE more often
15013         on TARGET_USE_LEAVE machines.
15014
15015 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
15016
15017         * config/arm/arm.c (arm_init_cumulative_args); New function:
15018         Initlaise the CUMULATIE_ARGS strcuture for a function
15019         defintion.
15020         (arm_function_arg): New function: Determine where to place a
15021         function's argument.  Also handles deciding the function's
15022         call cookie.
15023         (current_file_function_operand): New function: Return true if
15024         the symbol is a function which has already been compiled.
15025         (arm_is_long_call_p): New function: Return true if the
15026         indicated function should be called via a long call.
15027         (arm_valid_type_attribute_p): New function: Return true if the
15028         attribute is a valid, arm specific, attribute.
15029         (arm_comp_type_attribute): New function: Return true if the
15030         two types have compatable, arm specific, attributes.
15031
15032         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
15033         structure.
15034         (FUNCTION_ARG): Redefine to call arm_function_arg.
15035         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
15036         structure field.
15037         (INIT_CUMULATIVE_ARGS): Redefine to call
15038         arm_init_cumulative_args.
15039         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
15040         field.
15041         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
15042         field.
15043         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
15044         functions.
15045         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
15046         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
15047         (COMP_TYPE_ATTRIBUTES): Define.
15048
15049         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
15050         if a long call is needed.
15051         (call_value): Call arm_is_long_call_p to decide if a long call
15052         is needed.
15053         (call_symbol): Call arm_is_long_call_p to decide if a long call
15054         is needed.
15055
15056         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
15057
15058 2000-02-11  Denis Chertykov  <denisc@overta.ru>
15059
15060         * README.AVR: New file with information about the avr ports.
15061         * config/avr: New directory with avr port files.
15062
15063 2000-02-11  Andreas Jaeger  <aj@suse.de>
15064
15065         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
15066
15067 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
15068
15069         * cpphash.c: Fix formatting, update commentary.
15070         (dump_definition): Take three separate arguments instead of a
15071         MACRODEF structure argument.
15072         * cpphash.h: Update prototype of dump_definition.
15073         * cppinit.c (cpp_finish): Update call of dump_definition.
15074
15075         * cpplib.c (do_define): Always create new hash entry with
15076         T_MACRO type.  Remove redundant check for redefinition of
15077         poisoned identifier.  Update call of dump_definition.
15078         (do_undef): Don't call check_macro_name.  Rename sym_length to
15079         len.
15080         (do_error, do_warning): Don't use copy_rest_of_line or
15081         SKIP_WHITE_SPACE.
15082         (do_warning): Don't use pedwarn for the actual warning,
15083         only the notice about its not being in the standard.  (Fixes
15084         bug with #warning in system headers.)
15085         (do_ident): Stricter argument checking - accept only a single
15086         string after #ident.  Also, macro-expand the line.
15087         (do_xifdef): Use cpp_defined.  De-obfuscate.
15088
15089         (do_pragma): Split out specific pragma handling to separate
15090         functions.  Use get_directive_token.  Update commentary.  Do
15091         not pass on #pragma once or #pragma poison to the front end.
15092         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
15093         do_pragma_default): New.
15094
15095 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
15096
15097         * jump.c (jump_optimize_1): The first operand in a relational
15098         can be a CONST_INT.
15099         * optabs.c (emit_conditional_move): Handle relationals which
15100         have a known true/false result.
15101
15102 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15103
15104         * function.c (thread_prologue_and_epilogue_insns): Don't insert
15105         a RETURN insn into a block which already ends with a jump.
15106
15107 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15108
15109         * haifa-sched.c (BUF_LEN): Increase a lot.
15110
15111 2000-02-11  Nick Clifton  <nickc@cygnus.com>
15112
15113         * configure.in: Add tm_p_file specification for thumb targets.
15114         * configure: Regenerate.
15115
15116         * config/arm/thumb-protos.h: New file: Prototypes for exported
15117         functions defined in thumb.c.
15118
15119 2000-02-11  Robert Lipe  <robertl@sco.com>
15120
15121         * Makefile.in (bootstrap-lean): Remove additional files.
15122         (bootstrap2-lean): Likewise.
15123         (VOL_FILES): List of files for above.
15124
15125 2000-02-11  Nathan Sidwell  <nathan@acm.org>
15126
15127         * cpphash.c (special_symbol): Remove spurious argument to
15128         cpp_lookup.
15129
15130 2000-02-11  Joel Sherrill (joel@OARcorp.com>
15131
15132         * configure.in: (i*86-*-rtems*): Swapped elf and coff
15133         stanzas.
15134         * configure: Rebuilt.
15135
15136 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
15137
15138         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
15139
15140 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
15141
15142         * pa.c, pa.h: Remove trigraph sequences within comments.
15143
15144 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
15145
15146         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
15147
15148 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
15149
15150         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
15151
15152 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15153
15154         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
15155
15156 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15157
15158         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
15159         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
15160         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15161         (ASM_FILE_END): Use c4x_file_end.
15162         * config/c4x/c4x.c (c4x_global_label): New function.
15163         (c4x_external_ref, c4x_file_end): Likewise.
15164
15165         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
15166         (c4x_external_ref, c4x_end_file): Likewise.
15167
15168 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
15169
15170         * cppexp.c: Don't include cpphash.h.
15171         (parse_charconst, cpp_lex): Use cpp_defined.
15172         (cpp_lex): Use get_directive_token throughout.  Remove
15173         unnecessary cases from switch.  Move assertion-handling code
15174         down to OTHER case.
15175         (cpp_parse_expr): If we see '+' or '-', check the context to
15176         determine if they are unary or binary operators.  Streamline
15177         the jumps a bit.  Do not call skip_rest_of_line.
15178
15179         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
15180         static.  Export get_directive_token.  Update commentary.
15181         (cpp_defined): New function.
15182         (do_define): Remove reference to T_PCSTRING.  Call
15183         free_definition to release memory for old definition, when
15184         redefining a macro.
15185         (eval_if_expression): Set only_seen_white to 0 before calling
15186         cpp_parse_expr.  Call skip_rest_of_line after it returns.
15187         (cpp_read_check_assertion): Don't preserve a pointer into the
15188         token buffer across a call to cpp_get_token.
15189
15190         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
15191         * cppfiles.c (redundant_include_p): Use cpp_defined.
15192         * cpphash.c (free_definition): New function.
15193         (delete_macro): Use it.  Update commentary.
15194         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
15195         free_definition.
15196         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
15197         from enum node_type.  Prototype cpp_defined and get_directive_token.
15198         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
15199
15200         * fix-header.c (check_macro_names): Use cpp_defined.
15201         (read_scan_file): Set inhibit_warnings and inhibit_errors in
15202         the options structure.
15203
15204 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15205
15206         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
15207
15208 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
15209
15210         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
15211         rather than die->die_tag.
15212
15213 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15214
15215         * combine.c (make_extraction, force_to_mode): Avoid warning on
15216         mixed-signedness conditionals.
15217         (make_field_assignment, nonzero_bits): Likewise.
15218         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
15219         (store_split_bit_field, extract_split_bit_field): Likewise.
15220         (extract_fixed_bit_field, store_bit_field,
15221         * expr.c: Change alignment to be unsigned everywhere.
15222         (move_by_pieces, store_constructor_field, store_constructor):
15223         Alignment parm is unsigned.
15224         (emit_block_move, emit_group_load, emit_group_store): Likewise.
15225         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15226         (do_compare_rtx_and_jump): Likewise.
15227         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
15228         Compare align with GET_MODE_ALIGNMENT.
15229         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
15230         (get_inner_reference): Likewise.
15231         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
15232         (expand_assignment): Local vars for alignment now unsigned.
15233         (store_constructor, store_field, expand_expr, do_jump): Likewise.
15234         (do_compare_and_jump): Likewise.
15235         (store_field): Call new function expr_align.
15236         * expr.h (emit_block_move, emit_group_load, emit_group_store):
15237         Alignment arg now unsigned.
15238         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15239         (do_compare_rtx_and_jump, store_bit_field): Likewise.
15240         (extract_bit_field): Likewise.
15241         * fold-const.c (add_double): Add cast to eliminate signedness warning.
15242         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
15243         (get_best_mode): Alignment arg is unsigned.
15244         * rtl.h (move_by_pieces): Likewise.
15245         * store-layout.c (maximum_field_alignment, set_alignment):
15246         Now unsigned.
15247         (layout_decl): Alignment arg is now unsigned.
15248         Remove unneeded casts.
15249         (layout_record, layout_union, layout_type): Remove unneeded casts.
15250         Local alignment variables now unsigned.
15251         (get_best_mode): Alignment arg now unsigned.
15252         * tree.c (expr_align): New function.
15253         * tree.h (expr_align): Likewise.
15254         (maximum_field_alignment, set_alignment): Now unsigned.
15255         (get_inner_reference): Alignment argument is now pointer to unsigned.
15256         * varasm.c (assemble_variable): Add cast to eliminate warning.
15257
15258 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
15259
15260         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
15261         then store directly into op0.
15262
15263         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
15264         the CALL_INSN, and emit the note immediately after it.
15265
15266 2000-02-10  Nick Clifton  <nickc@cygnus.com>
15267
15268         * config/arm/thumb.md (epilogue): Include a (return) in the
15269         generated insn, and emit it using emit_jump_insn not
15270         emit_insn.
15271
15272 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
15273
15274         * function.c (assign_temp): Change zero-sized arrays to size 1.
15275         * integrate.c (expand_inline_function): Do not update
15276         stack_alignment_needed
15277         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
15278         add some sanity checking, remove optimization for function with
15279         zero frame size.
15280
15281 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15282
15283         * flow.c (mark_regs_live_at_end): Delete unused variables.
15284
15285         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
15286
15287         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
15288         in macro FRAME_GROWS_DOWNWARD.
15289
15290         * stmt.c (expand_end_bindings): Delete unused variable.
15291
15292         * unroll.c (iteration_info): Mark parameter `loop' with
15293         ATTRIBUTE_UNUSED.
15294
15295 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15296
15297         * fixinc/server.c (load_data): Return NULL if the marker line is
15298         not found.
15299         (run_shell): If load_data returns NULL, retry the command once, in
15300         a new shell.
15301
15302         * configure: Rebuilt.
15303
15304 2000-02-09  Bruce Korb  <bkorb@gnu.org>
15305
15306         * gcc/fixincludes:  ** DELETED **
15307         * gcc/fixcpp:  ** DELETED **
15308         * gcc/fixinc-nt.sed:  ** DELETED **
15309         * gcc/just-fixinc:  ** DELETED **
15310         * gcc/Makefile.in:  Removed out-dated commentary
15311         * gcc/configure.in: Removed fast-fixincludes disablement.
15312         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
15313
15314 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15315         * function.c (thread_prologue_and_epilogue_insns): Uncomment
15316         last change.
15317
15318 2000-02-09  Richard Henderson  <rth@cygnus.com>
15319
15320         * jump.c (delete_insn): Don't delete user labels at -O0.
15321
15322 2000-02-09  Robert Lipe  <robertl@sco.com>
15323
15324         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
15325         Don't link with HOST_LIBS.
15326
15327 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15328
15329         * configure.in: Correct --help text for --with-dwarf2.
15330         Put tm-dwarf2.h after other tm files, if it's requested.
15331         * configure: Regenerate.
15332         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
15333         defining it.
15334
15335 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15336
15337         * cpplib.h: Provide HASHNODE typedef and forward decl of
15338         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
15339         DEFINITION, struct hashnode, struct macrodef, struct
15340         definition, scan_decls prototype, default defn of
15341         INCLUDE_LEN_FUDGE moved elsewhere.
15342
15343         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
15344         definition, and struct hashnode moved here. Remove the unused
15345         'predefined' field from struct definition.  Replace the 'args'
15346         union with its sole member.  All users updated (cpphash.c).
15347         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
15348         multiple include guard.
15349
15350         * cpphash.c (hashf): Make static; use better algorithm; drop
15351         HASHSIZE parameter; return an unsigned int.
15352         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
15353         used. Calculate HASHSIZE modulus here.
15354         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
15355         here.
15356         (create_definition): Drop PREDEFINITION parameter.
15357         * cpplib.c (do_define): Don't calculate a hash value here.
15358         Don't pass (keyword == NULL) to create_definition.
15359
15360         * scan.h: Prototype scan_decls here.
15361         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
15362         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
15363         callers of cpp_lookup and cpp_install updated.
15364
15365         * cpphash.c (macarg): Hoist all the flag diddling out of the
15366         function...
15367         (macroexpand): ... and out of the loop that calls macarg.
15368         Skip over the initial paren before macro arguments with
15369         cpp_get_non_space_token; point may be some distance before
15370         that paren.  Abort if it's not there.
15371
15372         * cpplib.c (parse_clear_mark): Delete function.
15373         (parse_set_mark, parse_goto_mark): Make static.
15374         (ACTIVE_MARK_P): New macro.
15375         (skip_block_comment, skip_line_comment): Do not bump the line
15376         if ACTIVE_MARK_P is true.
15377         (cpp_pop_buffer): The buffer to be popped may not have an
15378         active mark.
15379         (cpp_get_token): When looking for the initial paren before
15380         macro arguments, only set a mark in a file buffer, Always
15381         return to that mark before proceeding to call macroexpand or
15382         return a NAME token.
15383
15384         * cpplib.h: Remove prototypes of parse_set_mark,
15385         parse_clear_mark, parse_goto_mark.
15386         (struct cpp_options): Rename 'put_out_comments' to
15387         'discard_comments' and invert its sense.
15388         * cppinit.c, cpphash.c, cpplib.c: All users of
15389         put_out_comments changed to use discard_comments, with
15390         opposite sense.
15391
15392 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15393
15394         * function.c (thread_prologue_and_epilogue_insns): Don't delete
15395         the edge from a block that both jumps and falls through to the
15396         fallthru block.
15397
15398 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
15399
15400         * config/arm/arm.md (movsi): In PIC mode, make sure that a
15401         constant source address is legitimate.
15402
15403 2000-02-09  Philip Blundell  <pb@futuretv.com>
15404
15405         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
15406         correctly.
15407
15408         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
15409         generating PIC.
15410         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
15411
15412 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15413
15414         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
15415         ends with a newline and a NUL.  Don't be so clever manipulating
15416         strings.
15417
15418 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
15419
15420         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
15421         not to BIGGEST_ALIGNMENT.
15422
15423 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
15424
15425         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
15426         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
15427         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
15428         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
15429         * frame.c (execute_cfa_insn): Handle
15430         DW_CFA_GNU_negative_offset_extended.
15431
15432 2000-02-08  Richard Henderson  <rth@cygnus.com>
15433
15434         * flow.c (tidy_fallthru_edges): Split out from ...
15435         (delete_unreachable_blocks): ... here.
15436         (find_basic_blocks): Use it.
15437
15438 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15439
15440         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
15441
15442 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
15443
15444         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
15445         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
15446         (fix-header.o): Don't depend on cpphash.h.
15447
15448         * scan.c (hashstr): New function.
15449         * scan.h: Prototype it.
15450         * fix-header.c: Don't include cpphash.h.  Use hashstr.
15451         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
15452         hashstr.  Report hash table statistics.  Add private
15453         definition of xrealloc.
15454
15455 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15456
15457         * i386.h (TARGET_SWITCHES): Fix typo in option name.
15458
15459 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
15460
15461         * function.c (thread_prologue_and_epilogue_insns): Don't replace
15462         jumps with returns unless they are jumps to the fallthru block.
15463
15464 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
15465
15466         * i386.md (addqi3_cc): Fix contraints.
15467
15468 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15469
15470         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
15471
15472 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
15473
15474         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
15475         carriage return after a macro name.
15476
15477 2000-02-07  Fred Fish  <fnf@be.com>
15478
15479         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15480         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15481
15482 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15483
15484         * cppfiles.c (deps_output): Count spacers in deps_column.
15485
15486 2000-02-07  Neil Booth  <NeilB@earthling.net>
15487
15488         * cppinit.c (initialize_dependency_output): If there is no
15489         suffix, don't try to look for known suffixes.  Use strrchr.
15490         (cpp_start_read): Remove duplicate initialization.
15491
15492 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15493
15494         * calls.c (compute_argument_block_size): New argument
15495         preferred_stack_boundary.
15496         (expand_call): update cfun->preferred_stack_boundary, update call of
15497         compute_argument_block_size
15498         (emit_library_call): Increate cfun->preferred_stack_boundary
15499         to PREFERRED_STACK_BOUNDARY
15500         (emit_library_call_value): Likewise.
15501         * explow.c (allocate_dynamic_stack_spave): Likewise.
15502         * function.c (prepare_function_start): Set
15503         cfun->preferred_stack_boundary
15504         * function.h (struct function): Add preferred_stack_boundary field.
15505         * integrate.c (expand_inline_function): Update
15506         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15507         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15508         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15509
15510 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15511
15512         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15513         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15514         cpp_pedwarn, cpp_pedwarn_with_line,
15515         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15516         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15517         v_cpp_error_with_line, v_cpp_warning_with_line,
15518         cpp_message_from_errno, cpp_perror_with_name): Delete.
15519
15520         * cpperror.c (cpp_print_containing_files): Take starting
15521         buffer as argument.
15522         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15523         (v_cpp_message): Now called directly by all entry points.
15524         Remove -1 case.
15525         (cpp_pfatal_with_name, cpp_message): Delete.
15526         (cpp_notice_from_errno, cpp_ice): New functions.
15527         (cpp_notice): Is now for reporting error conditions, just
15528         without an associated file.
15529         (cpp_error, cpp_error_with_line): Don't do anything if
15530         opts->inhibit_errors is on.
15531         (cpp_pedwarn_with_file_and_line): Take column argument also.
15532
15533         * cpplib.h: Update prototypes of exported functions.
15534         (struct cpp_options): Add inhibit_errors.
15535
15536         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15537         non-error messages.  Include intl.h.
15538
15539         * cppinit.c, cppmain.c: Likewise.  Also, use
15540         cpp_notice_from_errno instead of cpp_perror_with_name or
15541         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15542
15543         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15544         report internal errors.
15545
15546         * cpplib.c (do_define): Switch bcopy to memcpy.
15547         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15548
15549         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15550         bail out early if we hit a line comment.
15551
15552 2000-02-06  Richard Henderson  <rth@cygnus.com>
15553
15554         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15555         * basic-block.h: Declare them.
15556         * emit-rtl.h (active_insn_p): New.
15557         (next_active_insn, prev_active_insn): Use it.
15558         * rtl.h: Declare it.
15559         * function.c (emit_return_into_block): New.
15560         (thread_prologue_and_epilogue_insns): Insert return insns instead
15561         of epilogues when possible.
15562         * jump.c (jump_optimize_1): Remove code to insert a return insn
15563         on the fallthru to the exit block.
15564
15565         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15566         and for non-empty stack frames.
15567         * i386.md (return): Expand to return-pop as needed.
15568
15569 2000-02-06  Richard Henderson  <rth@cygnus.com>
15570
15571         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15572         constant to op1 for testing.
15573
15574 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15575
15576         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15577         (fixuns_truncqfqi2): Use it.
15578
15579 2000-02-06  Richard Henderson  <rth@cygnus.com>
15580
15581         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15582         as a TYPE_LEA insn.
15583
15584         * i386.md (widening and peepholes): Mask the constant instead of
15585         using gen_lowpart.
15586
15587 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15588
15589         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15590         input pointer before possibly branching off to the backslash
15591         code.
15592         * cpphash.c (macroexpand): Correctly delete \r escapes when
15593         stringifying parameters.
15594         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15595         if we can; bail out early if we hit a line comment.
15596         (handle_directive): Treat '# 123' in an .S file just like
15597         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15598         Return 1 for '# not_a_directive'.
15599         (get_directive_token): Pop macro buffers here, so that
15600         cpp_get_token can't sneakily move past a newline.
15601         Add sanity checks.
15602         (cpp_get_token): goto randomchar if handle_directive returns 0.
15603
15604         * cppalloc.c: Update copyright.
15605         * cpplib.c: Merge all the static function prototypes into one
15606         block.
15607         * cpplib.h: Remove #if 0 block.
15608
15609         * cpperror.c: Remove #ifdef EMACS block.
15610         * cppmain.c: Likewise.
15611         * cpphash.c: Remove #if 0 blocks.
15612         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15613         * cpplib.c: Remove #if 0 blocks and code referencing
15614         pcp_inside_if or for_lint.  Remove duplicate error message.
15615         Fix error messages for #else after #else or #elif.  Reformat.
15616         Remove archaic TODO list.
15617         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15618
15619 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15620
15621         * i386/osf1elf.h: Add missing backslash to multiline string.
15622
15623 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15624
15625         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15626
15627 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15628
15629         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15630
15631         * c-common.c: Include expr.h.
15632
15633         * c-pragma.c (mark_align_stack): Add prototype.
15634
15635         * caller-save.c (add_stored_regs): Likewise.
15636
15637         * combine.c (record_promoted_value): Likewise.
15638
15639         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15640         Likewise.
15641
15642         * cppinit.c (new_pending_define): Likewise.
15643
15644         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15645
15646         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15647         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15648         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15649         class_scope_p): Likewise.
15650
15651         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15652         dwarf2out_add_library_unit_info): Likewise.
15653
15654         * ggc.h (ggc_page_print_statistics): Likewise.
15655
15656         * haifa-sched.c (propagate_deps): Likewise.
15657
15658         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15659
15660         * rtl.h (set_stack_check_libfunc): Likewise.
15661
15662         * toplev.h (set_fatal_function): Likewise.
15663
15664         * toplev.c (set_fatal_function): Delete prototype.
15665
15666         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15667
15668 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15669
15670         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15671         (FUNC_END): Likewise.
15672
15673 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15674
15675         * caller-save.c: Include tm_p.h.
15676
15677 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15678
15679         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15680
15681 2000-02-04  Neil Booth  <NeilB@earthling.net>
15682
15683         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15684         it to strcmp.
15685
15686 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15687
15688         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15689         * genflags.c: Use the max_operand_1 logic from genemit.c to
15690         calculate how many arguments gen_insn prototypes have.  Remove
15691         NO_MD_PROTOTYPES ifdefs from the generated file.
15692         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15693         file.  Cast gen_insn initializers to insn_gen_fn.
15694         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15695         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15696
15697 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15698
15699         * fixinc/Makefile.in (HDR): Add machname.h.
15700         (clean): Likewise.
15701
15702 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15703
15704         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15705         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15706         (c4x_cpu_version): Ditto.
15707         * config/c4x/c4x-protos.h: ... here.
15708
15709 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15710
15711         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15712         gen_abstract_function on our context if we're a nested function.
15713
15714 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15715
15716         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15717         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15718
15719 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15720
15721         * fixinc/genfixes(machname.h):
15722         Move the functionality from gen-machine.h into this file.
15723         UNdef MN_NAME_PAT if there are no names to change.
15724         Also, be a little kinder when AutoGen is not present.
15725
15726         * fixinc/Makefile.in(machname.h):
15727         Change the generation rule to use genfixes.
15728
15729         * fixinc/fixfixes.c(machine_name):
15730         machine_name_fix's functionality now dependent upon whether
15731         MN_NAME_PAT is defined.
15732
15733         * fixinc/fixtests.c(machine_name):
15734         ditto.
15735
15736         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15737         of MN_NAME_PAT.
15738
15739         * fixinc/fixlib.h(mn_get_regexps):
15740         ditto
15741
15742         * fixinc/gen-machine.h: DELETED
15743
15744 2000-02-04  Jan Hubicka  <jh@suse.cz>
15745             Richard Henderson  <rth@cygnus.com>
15746
15747         * i386.c (SAVE_REGS_FIRST): Remove.
15748         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15749         (ix86_compute_frame_size): Likewise.
15750         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15751         (ix86_emit_restore_regs): Remove.
15752         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15753         when a frame pointer is in use.
15754         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15755         instead of pop to restore a register when profitable; emit leave
15756         when profitable.
15757         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15758         as a TYPE_LEA insn.
15759         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15760         * i386.md (prologue_allocate_stack): Remove.
15761         (epilogue_deallocate_stack): Remove.
15762         (pro_epilogue_adjust_stack): New.
15763
15764 2000-02-04  Richard Henderson  <rth@cygnus.com>
15765
15766         * function.c (diddle_return_value): Rework to use a callback function.
15767         Use current_function_return_rtx if it's been set up.
15768         (do_clobber_return_reg, clobber_return_register): New.
15769         (do_use_return_reg, use_return_register): New.
15770         (expand_function_end): Use them.
15771         * stmt.c (expand_null_return): Likewise.
15772         * function.h: Declare them.
15773         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15774         (mark_reg): Change arguments as appropriate for callback.
15775         * integrate.c (expand_inline_function): Revert 19 Jan change.
15776
15777 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15778
15779         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15780         (Misc): Say the scheduler, not the Haifa scheduler.
15781
15782 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15783
15784         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15785         when in_mem is set.  Update all callers.
15786
15787 2000-02-04  Richard Henderson  <rth@cygnus.com>
15788
15789         * i386/openbsd.h (INT_ASM_OP): Define.
15790
15791 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15792
15793         * tm.texi: Fix various typos.
15794
15795 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15796
15797         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15798         (MD_STARTFILE_PREFIX_1): New macro.
15799
15800 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15801
15802         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15803         destination when needed.
15804         (strmovsi, strsetsi): New expander.
15805         (strmovsi_1, strsetsi_1): New pattern.
15806         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15807         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15808         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15809         * invoke.texi (align-stringops, inline-all-stringops): Document.
15810
15811 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15812
15813         * i386/netbsd.h (INT_ASM_OP): Define.
15814
15815 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15816
15817         * cpplib.h (cpp_reader): Add new flag, no_directives.
15818         * cpphash.c (macarg): Set it.
15819         * cpplib.c (handle_directive): If no_directives is on and we
15820         find a directive, issue an error and discard the line.
15821
15822 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15823
15824         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15825         FP constants.  Add ! TARGET_FPU check for FP constants.
15826
15827 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15828
15829         * flow.c (find_basic_blocks): Don't kill label_value_list
15830         here.
15831         (cleanup_cfg): Kill it here.
15832
15833 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15834
15835         * expr.c (store_field): Ensure ALIGN is no stricter than the
15836         alignment of EXP.
15837
15838 2000-02-02  Richard Henderson  <rth@cygnus.com>
15839
15840         * jump.c (delete_insn): Partially revert 19 Jan change;
15841         don't convert unused code labels to notes at -O0.
15842
15843 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15844
15845         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15846         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15847
15848 2000-02-01  Richard Henderson  <rth@cygnus.com>
15849
15850         * i386.c (general_no_elim_operand): New.
15851         (nonmemory_no_elim_operand): New.
15852         (ix86_expand_move): Copy eliminable operands before a push.
15853         * i386-protos.h: Declare new functions.
15854         * i386.h (CAN_ELIMINATE): Simplify.
15855         (PREDICATE_CODES): Update.
15856         * i386.md (push insns): Don't allow eliminable register operands.
15857
15858 2000-02-01  Richard Henderson  <rth@cygnus.com>
15859
15860         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15861         replace BLKmode with DECL_RTL's mode.
15862
15863 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15864
15865         * frame.c (find_fde): Convert for loop to do-while so compiler
15866         sees it's always executed at least once.
15867         * libgcc2.c (BBINBUFSIZE): Kill.
15868         (__bb_init_prg): Use fgets.
15869         (__bb_exit_trace_func): Don't paste strings.
15870         * unroll.c (unroll_loop): Initialize unroll_type, not
15871         unroll_number, and tweak logic to match.
15872
15873         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15874         all failure paths.
15875         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15876         (ix86_sched_reorder): Break guts out to
15877         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15878         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15879         any possible use.
15880
15881         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15882         use string concatenation.  Don't save and restore esi.
15883
15884         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15885         (machname.h): Remove script to separate file.  Use two-step
15886         sequence so target is not created if script fails.
15887         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15888         identifiers are defined.
15889         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15890         an empty string, machine_name doesn't need to do anything at
15891         all.
15892         (is_cxx_header): Add more cases to regexp.
15893         * fixinc/fixlib.h: Update prototype.
15894         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15895         mn_get_regexps.
15896         * fixinc/fixincl.c: Define NO_BOGOSITY.
15897
15898         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15899         (hp_sysfile): Add missing comma.
15900         (math_exception): Put the wrapper ifdefs at the beginning and
15901         the end of the file.
15902         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15903
15904 2000-02-01  Richard Henderson  <rth@cygnus.com>
15905
15906         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15907         Use CONST0_RTX.  Update all callers.
15908         * sparc.h, sparc-protos.h: Update accordingly.
15909         * sparc.md (fp mov insns): Use fp_zero_operand directly
15910         where applicable.
15911
15912 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15913
15914         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15915         example.
15916
15917 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15918
15919         * Makefile.in (specs.ready): New target.
15920         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15921
15922 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15923
15924         * fixinc.irix: Use unique filenames for writing into /tmp,
15925         * fixinc.ptx: Likewise.
15926         * fixinc.sco: Likewise.
15927         * fixinc.svr4: Likewise.
15928         * fixinc.winnt: Likewise.
15929
15930 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15931
15932         * tsystem.h: New file.
15933
15934         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15935         s-crtS): Depend on tsystem.h.
15936
15937         * crtstuff.c: Include tsystem.h.
15938         * frame.c: Likewise.
15939         * libgcc2.c: Likewise.
15940
15941 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15942
15943         * builtins.c (expand_builtin_memset): Expand for variable sized
15944         lengths too.
15945
15946 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15947
15948         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15949         on ABI.
15950
15951 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15952
15953         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15954
15955         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15956
15957 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15958
15959         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15960         case 3->2 combining (combining with splitting) in which 2 is CC0
15961         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15962         checked at the begining of the function with the aid of calling
15963         function 'can_combine_p'.
15964
15965 2000-01-31  Dave Brolley  <brolley@redhat.com>
15966
15967         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15968
15969 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15970
15971         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15972         new label.
15973
15974 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15975
15976         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15977
15978         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15979         PROTO -> PARAMS.
15980
15981 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15982
15983         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15984         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15985         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15986         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15987         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15988         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15989         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15990         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15991         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15992         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15993
15994         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15995         Add %(cpp_cpu) to CPP_SPEC.
15996
15997         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15998         Add %(cc1_cpu) to CC1_SPEC.
15999
16000 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
16001
16002         * c-decl.c (c_decode_option): Accept optional numeric argument to
16003         -Wformat and set warn_format.
16004         * c-common.c: Don't emit warning about non-constant printf format
16005         string unless warn_format > 1.
16006
16007 2000-01-30  Richard Henderson  <rth@cygnus.com>
16008
16009         * alpha.md (return_internal): Allow after reload only.
16010
16011 2000-01-30  Richard Henderson  <rth@cygnus.com>
16012
16013         * i386.c (ix86_compute_frame_size): Omit padding1 if the
16014         local frame size is zero.
16015
16016 2000-01-30  Richard Henderson  <rth@cygnus.com>
16017
16018         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
16019         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
16020         * alpha.md (return): Turn into an expander.
16021         (return_internal): Don't use $26.
16022         (epilogue): Emit the return insn.
16023
16024 2000-01-30  Richard Henderson  <rth@cygnus.com>
16025
16026         * alpha.md (negtf2, abstf2): Fix word order thinko.
16027         (extendsftf2): New.
16028         (trunctfsf2): Avoid intermediate rounding errors.
16029
16030 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
16031
16032         * cppfiles.c (find_position): Drop 'colp' argument, return the
16033         new line base.
16034         (read_and_prescan): Adjust to match.  Don't ever manipulate
16035         line or line_base except via find_position.
16036
16037 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
16038
16039         * c-parse.in: Apply Ulrich's changes from c-parse.y.
16040         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
16041         Regenerate.
16042
16043 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
16044
16045         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
16046         just print "<command line>".  If 'filename' is null or an
16047         empty string, print "<stdin>" for the filename.
16048         * cpplib.c (do_define): Don't print the 'location of the
16049         previous definition' message if we're still parsing the
16050         command line.
16051         (cpp_pedwarn_with_file_and_line): Always call
16052         cpp_file_line_for_message.
16053
16054 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
16055
16056         * flow.c (mark_regs_live_at_end): Fix typo.
16057
16058 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
16059
16060         * c-common.c: Adjust variable names, comments, help strings to c99.
16061         * c-lex.c: Likewise.
16062         * c-parse.y: Likewise.
16063         * c-tree.h: Likewise.
16064         * cccp.c: Likewise.
16065         * cpplib.h: Likewise.
16066         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
16067         * cppinit.c: Likewise.
16068
16069 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16070
16071         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
16072         * c4x.c: Define the optab rtx values.
16073         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
16074         (c4x_emit_libcall): Use new optab rtx values.
16075         (c4x_emit_libcall3): Likewise.
16076         (c4x_emit_libcall_mulhi): Likewise.
16077         * c4x-protos.h: Add prototypes for optab rtx values and change
16078         prototypes for above c4x_emit_libcall functions.
16079
16080 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16081
16082         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
16083         syntax is used.
16084         (c4x_function_prologue): Use regnames intead of float_reg_names when
16085         TI syntax is used.
16086         (c4x_function_epilogue): Likewise.
16087         (c4x_print_operand): Likewise.
16088         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
16089         * c4x.md (set_high): Disable for TARGET_TI.
16090
16091 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16092
16093         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
16094         of framepointer + constant to ADDR_REGS class.
16095         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
16096         * c4x.c (std_or_reg_operand): New function.
16097         * c4x-protos.h (std_or_reg_operand): Prototype it.
16098
16099 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16100
16101         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
16102                 object names as libgcc2.c.
16103         * libgcc.S: Use newly defined names.
16104
16105 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
16106         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
16107         function.
16108         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
16109         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
16110         (FLOW_LOOP_LAST_BLOCK): Likewise.
16111
16112 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16113
16114         * basic-block.h (struct loop): New fields 'first' and 'last'.
16115         * flow.c (flow_loops_find): Compute loop->first and loop->last.
16116         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
16117         and loop->last to check for NOTE_INSN_LOOP_END.
16118
16119 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
16120
16121         * predict.c (estimate_probability): Use the new FIRST and LAST fields
16122         of the loop descriptor rather than HEADER and LATCH. Also added
16123         missing break statements as well making some coding style modifications
16124         as suggested by Michael Hayes.
16125
16126 2000-01-28  Richard Henderson  <rth@cygnus.com>
16127
16128         * flow.c (find_basic_blocks): Remove do_cleanup argument.
16129         Break out that code ...
16130         (cleanup_cfg): ... here.
16131         (commit_one_edge_insertion): Detect a return instruction being
16132         emitted to an edge.  Emit a barrier following; clear fallthru.
16133         (commit_edge_insertions): Verify CFG consistency.
16134         * function.c (expand_function_start): Kill unused variable.
16135         (expand_function_end): Likewise.
16136         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
16137         to insert the epilogue.
16138
16139         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
16140         (delete_null_pointer_checks): Likewise.
16141         * output.h: Likewise.
16142         * reg-stack.c (reg_to_stack): Likewise.
16143         * toplev.c (rest_of_compilation): Likewise.  Run
16144         thread_prologue_and_epilogue_insns after rebuilding the CFG.
16145
16146 2000-01-28  Richard Henderson  <rth@cygnus.com>
16147
16148         * Makefile.in (flow.o): Revert 24 Jan change.
16149         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
16150         FUNCTION_VALUE result to DECL_RESULT's mode.
16151
16152         * haifa-sched.c (schedule_insns): Don't recompute reg info
16153         after reload.
16154
16155 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
16156
16157         * configure.in: Make --enable-cpplib the default.
16158         * configure: Regenerate.
16159         * gcc.dg/990119-1.c: No longer expected to fail.
16160
16161 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
16162
16163         * jump.c (jump_optimize_1): Delete an optimization that is also done
16164         by merge_blocks in flow.
16165
16166 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16167
16168         * diagnostic.c (build_message_string, output_printf,
16169         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
16170         (build_location_prefix): Fix non-literal format string.
16171
16172 2000-01-27  Richard Henderson  <rth@cygnus.com>
16173
16174         * alpha.md (trunctfsf2): New.
16175
16176 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
16177
16178         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
16179
16180 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16181
16182         * cppinit.c (cpp_handle_option): Recognize C++ comments under
16183         -std=gnu89.
16184         * cpplib.c (skip_block_comment, skip_line_comment): Split code
16185         out of...
16186         (skip_comment) ... here.  Permit C++ comments in system
16187         headers always.  Warn about C++ comments in user code under
16188         -std=gnu89 -pedantic.
16189         (copy_comment): Use skip_comment.
16190         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
16191         return EOF.
16192         (consider_directive_while_skipping, do_else, do_endif): Call
16193         validate_else unconditionally.
16194         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
16195         text after the conditional in a system header.
16196         * cpplib.h (struct cpp_buffer): Add flag
16197         warned_cplusplus_comments.
16198
16199 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16200
16201         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
16202         Use unshare_all_rtl_1.
16203         (unshare_all_rtl_again): New function.
16204         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
16205
16206         * function.c (purge_addressof_1): Use unshare_all_rtl_again
16207         rather than resetting the 'used' flags ourself.
16208
16209         * toplev.c (rest_of_compilation): Add current_function_decl
16210         to the unshare_all_rtl call.
16211         * tree.h: Prototype unshare_all_rtl.
16212         * rtl.h: Prototype unshare_all_rtl_again here.
16213
16214 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16215
16216         * genoutput.c (output_prologue): Include ggc.h in generated
16217         files.
16218         * Makefile.in (insn-output.o): Depends on ggc.h.
16219
16220 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
16221             Hans-Peter Nilsson  <hp@bitrange.com>
16222
16223         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
16224         Remove redundant include of xm-ns32k.h.
16225         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
16226         Remove redundant include of xm-ns32k.h.
16227         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
16228         Remove redundant include of xm-ns32k.h.
16229         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
16230
16231         * ns32k/ns32k.h: Update comment on multiply-add instructions.
16232         (TARGET_SWITCHES): Add documentation strings.
16233         (DWARF_FRAME_REGNUM): Override default definition.
16234         (REG_CLASS_CONTENTS): Add comments.
16235         (SUBSET_P): Format to reduce line length.
16236         (SMALL_REGISTER_CLASSES): Make a run time option.
16237         (GO_IF_NONINDEXED_ADDRESS): Reformat.
16238         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
16239         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
16240         (regclass_map): fix typo in comment.
16241         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
16242         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
16243         (trace, reg_or_mem_operand): Delete, unused function.
16244         (calc_address_cost): Small offsets are cheaper than large ones.
16245         (expand_block_move): Generate more efficient code when bytes is a
16246         known at compile time.
16247         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
16248         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
16249         instead of reg_or_mem_operand.
16250
16251         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
16252         not general_operand.  Similarly use "=rm" or stricter, not "=g".
16253         For input operands, use stricter constraints than "g" if not
16254         general_operand.  Similarly use stricter predicate than
16255         "general_operand" when stricter constraints than "g" are present,
16256         except for matching constraints.
16257         (movstrsi): Use "memory_operand" for operands 0 and 1.
16258         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
16259         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
16260         not reg_or_mem_operand.
16261         (udivmoddisi4): Ditto.
16262         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
16263         Use nonimmediate_operand for operand 3, not register_operand.
16264         (udivmoddiqi4_internal): Use register_operand for operand 1, not
16265         reg_or_mem_operand.
16266
16267 2000-01-27  Fred Fish  <fnf@be.com>
16268
16269         * gthr-posix.h: Fix typo; compatibily -> compatibility.
16270         * gthr-single.h: Likewise.
16271         * gthr-solaris.h: Likewise.
16272         * gthr-vxworks.h: Likewise.
16273         * gthr-win32.h: Likewise.
16274         * gthr.h: Likewise.
16275
16276 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16277
16278         * cppinit.c: Add " (cpplib)" to end of string printed by
16279         -v / --version.
16280
16281 2000-01-27  Richard Henderson  <rth@cygnus.com>
16282
16283         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
16284         testing for a signed comparison.
16285         (alpha_emit_floatuns): New.
16286         * alpha-protos.h: Declare it.
16287         * alpha.md (floatunsdisf2, floatunsdidf2): New.
16288         (extendsfdf2): Tidy.
16289
16290 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
16291
16292         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
16293         no -g option specifying debugging format, default to -gstabs+.
16294
16295 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
16296
16297         * calls.c (special_function_p): New argument fork_or_exec.
16298         (expand_call): When profile_arc_flag is set and the function
16299         is in the fork_or_exec group, call __bb_fork_func first.
16300         * libgcc2.c, _bb module (__bb_fork_func): New function.
16301         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
16302         output file.
16303         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
16304         * tree.h (special_function_p): Update prototype.
16305
16306 2000-01-26  Richard Henderson  <rth@cygnus.com>
16307
16308         * alpha.c (alpha_split_tfmode_pair): New.
16309         * alpha-protos.h: Declare it.
16310         * alpha.md (abstf2, negtf2): New.
16311         (movtf insn): Add input G constraint.
16312         (movtf splitter): Use alpha_split_tfmode_pair.
16313
16314 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16315
16316         * i386/cygwin.h: PROTO -> PARAMS.
16317
16318 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
16319
16320         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
16321         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
16322         using _Qp_cmp/_Q_cmp and testing the return value.
16323         (print_operand): Call reverse_condition_maybe_unordered if
16324         we are handling CCFPmode or CCFPEmode.
16325         Handle ORDERED, UN* and LTGT comparisons.
16326         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
16327         if not TARGET_HARD_QUAD.
16328         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
16329         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
16330         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
16331         Adjust gen_b* calls so that they reflect return comparison of
16332         sparc_emit_float_lib_cmp.
16333
16334 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16335
16336         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
16337         incoming operands array is large enough for one more operand.
16338         (alpha_emit_xfloating_arith): Likewise.
16339
16340 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16341
16342         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
16343         file with one line and no trailing newline.
16344         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
16345         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
16346         checking if the match is on the line.
16347         * fixinc/gnu-regex.c: Provide regerror not __regerror.
16348
16349 2000-01-25  Richard Henderson  <rth@cygnus.com>
16350
16351         * sparc.c (output_cbranch): Fix accidental squashing of the
16352         fp branch pre-delay nop.
16353
16354 2000-01-25  Richard Henderson  <rth@cygnus.com>
16355
16356         * tree.def (UNNE_EXPR): Remove.
16357         * c-typeck.c (build_binary_op): Don't handle it.
16358         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
16359
16360         * rtl.def (UNNE): Remove.
16361         (LTGT): Add.
16362         * jump.c (reverse_condition): Update accordingly.
16363         (swap_condition): Likewise.
16364         (comparison_dominates_p): Handle unordered comparisons.
16365         (reverse_condition_maybe_unordered): New.
16366         * rtl.h (reverse_condition_maybe_unordered): Declare.
16367
16368         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
16369         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
16370         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
16371         * sparc.md (bltgt): New.
16372
16373 2000-01-25  Nick Clifton  <nickc@redhat.com>
16374
16375         * emit-rtl.c (emit_insn): Only check machine class insns for
16376         improper emission of a RETURN.
16377
16378 2000-01-25  Richard Henderson  <rth@cygnus.com>
16379
16380         * Makefile.in (flow.o): Depend on $(EXPR_H).
16381         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
16382         duplicate the structure of diddle_return_value for keeping regs live.
16383
16384 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16385
16386         * loop.c (current_loop_info): Delete.
16387         (consec_sets_invariant_p): Add loop argument, update callers.
16388         (get_condition_for_loop): Likewise.
16389         (count_nonfixed_reads, update_giv_derive): Likewise.
16390         (simplify_giv_expr, general_induction_var): Likewise.
16391         (consec_sets_giv, recombine_givs): Likewise.
16392         (move_movables): Delete loop_start and loop_end arguments,
16393         add loop argument, and update callers.
16394         (find_mem_givs, check_final_value): Likewise.
16395         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
16396         (loop_invariant_p): Rename from invariant_p, add loop argument, and
16397         update callers.
16398         (basic_induction_var): Add loop argument, delete loop_level argument,
16399         and update callers.
16400         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
16401         add loop argument, and update callers.
16402         (find_splittable_regs, find_splittable_givs): Likewise.
16403         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
16404         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
16405         (biv_total_increment): Delete loop_start and loop_end arguments;
16406         update callers.
16407         (precondition_loop_p): Delete loop_start and loop_info arguments;
16408         update callers.
16409         * loop.h (get_condition_for_loop): Add loop argument.
16410         (biv_total_increment): Delete loop_start and loop_end arguments.
16411         (precondition_loop_p): Delete loop_start and loop_info arguments;
16412         add loop argument.
16413         (final_biv_value): Delete loop_start and loop_end arguments;
16414         add loop argument.
16415         (final_giv_value, back_branch_in_range_p): Likewise.
16416
16417 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16418
16419         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
16420
16421 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16422
16423         * Makefile.in (c-gperf.h) : Change the "See" pointer to
16424         point to the new "generated_files" doc.
16425
16426 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16427
16428         * config/fp-bit.c (_unord_f2): Fix typo.
16429
16430 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16431
16432         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
16433         c-typeck.c, objc/objc-act.c: Remove all references to obstack
16434         functions obsoleted by GC, such as push_obstacks_nochange,
16435         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
16436         and code which existed only to decide whether or not to call
16437         them.  Remove now-unused NESTED argument from start_function;
16438         all callers changed.  Do not change behavior based on ggc_p.
16439         The use of the ixp_obstack in c-iterate.c and the util_obstack
16440         in objc/objc-act.c remain; these are not obsoleted by garbage
16441         collection.
16442         * c-tree.h: Update prototype for start_function.
16443
16444         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
16445
16446 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16447
16448         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
16449         mips16.
16450
16451 2000-01-25  Richard Henderson  <rth@cygnus.com>
16452
16453         * sparc-protos.h (select_cc_mode): Declare.
16454         * sparc.c (select_cc_mode): New.  Handle unordered compares.
16455         (output_cbranch): Always reverse via code change.  Handle
16456         unordered compares.  Factor tests and string updates.
16457         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
16458         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
16459         * sparc.md (bunordered, bordered): New.
16460         (bungt, bunlt, buneq, bunge, bunle): New.
16461
16462 2000-01-25  Richard Henderson  <rth@cygnus.com>
16463
16464         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
16465         * ggc-common.c (ggc_add_rtx_varray_root): New.
16466         (ggc_mark_rtx_varray): New.
16467         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
16468         functions down below ggc_mark_foo.
16469         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
16470
16471 2000-01-25  Richard Henderson  <rth@cygnus.com>
16472
16473         * alpha.c (secondary_reload_class): Don't allocate a secondary
16474         for integral mode memories into FLOAT_REGS.  Rearrange the more
16475         complicated memory expression inward.
16476
16477 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16478
16479         * inclhack.def: Fixes to play nicer with FreeBSD, and
16480         corrections to comments.
16481         (cxx_unready): Add select expression.
16482         (irix_sockaddr): Add bypass expression.
16483         (machine_ansi_h_va_list): New fix.
16484         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16485         Split out addition of "#include <stdarg.h>" to...
16486         (stdio_stdarg_h): ... here.
16487         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16488         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16489         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16490         size_t.
16491         (ultrix_ifdef): Tighten up select expression.
16492
16493         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16494         re_ct and max_mach to avoid use of shell.  Make printed names
16495         match names in inclhack.def.  Use static copyright date.
16496         Don't count c_test and test expressions as requiring regex_t
16497         slots.  Add some commentary.
16498         * inclhack.tpl: Do not include the 'This script contains N
16499         fixup scripts' line if PROGRAM is defined.  Use static
16500         copyright date.
16501
16502 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16503
16504         * dwarf2out.c: include "varray.h", not dyn-string.h.
16505         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16506         (addr_const_to_string, addr_to_string): Lose.
16507         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16508         (struct dw_val_struct): val_addr is now an rtx.
16509         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16510         (used_rtx_varray): New varray.
16511         (dwarf2out_init): Initialize it.
16512         (save_rtx): New fn.
16513         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16514         addr_to_string.
16515         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16516         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16517         * Makefile.in (dwarf2out.o): Update dependencies.
16518
16519 2000-01-24  Richard Henderson  <rth@cygnus.com>
16520
16521         * i386.c (i386_dwarf_output_addr_const): New.
16522         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16523
16524         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16525         if defined.
16526         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16527         * i386.c (i386_simplify_dwarf_addr): New.
16528         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16529
16530 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16531
16532         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16533         TYPE_STUB_DECL is NULL.
16534
16535 2000-01-24  Richard Henderson  <rth@cygnus.com>
16536
16537         * builtins.c (expand_tree_builtin): Move ...
16538         * c-common.c (expand_tree_builtin): ... here.
16539
16540 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16541
16542         * loop.h (LOOP_INFO): New accessor macro.
16543         * basic-block.h (struct loop): Rename field `info' to `aux'.
16544         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16545         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16546         * unroll.c (loop_iterations, unroll_loop): Likewise.
16547
16548 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16549
16550         * config/i386/t-cygwin: Accomodate new winsup directory layout
16551         when searching for include files.
16552
16553 2000-01-24  Richard Henderson  <rth@cygnus.com>
16554
16555         * rtl.def: Add unordered fp comparisions.
16556         * tree.def: Likewise.
16557         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16558
16559         * builtins.c (expand_tree_builtin): New function.
16560         * c-typeck.c (build_function_call): Use it.
16561         (build_binary_op): Support unordered compares.
16562         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16563
16564         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16565         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16566         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16567         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16568         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16569         return UNKNOWN.
16570         (swap_condition): Handle unordered compares.
16571         (thread_jumps): Check can_reverse before reversing.
16572         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16573         reversed for FP.
16574
16575         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16576         setcc is present before acking for cmp_optab.  Update all callers.
16577         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16578         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16579         * expr.c (expand_expr): Likewise.  Support unordered compares.
16580         (do_jump, do_store_flag): Likewise.
16581         * expr.h (enum libfunc_index): Add unordered compares.
16582
16583         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16584         (DPBIT_FUNCS): Add _unord_df.
16585         * config/fp-bit.c (_unord_f2): New.
16586         * fp-test.c (main): Try unordered compare builtins.
16587
16588         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16589         * alpha.c (alpha_comparison_operator): Check mode properly.
16590         (alpha_swapped_comparison_operator): Likewise.
16591         (signed_comparison_operator): Likewise.
16592         (alpha_fp_comparison_operator): New.
16593         (alpha_emit_conditional_branch): Handle unordered compares.
16594         * alpha.h (PREDICATE_CODES): Update.
16595         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16596         (bunordered, bordered): New.
16597
16598 2000-01-24  Richard Henderson  <rth@cygnus.com>
16599
16600         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16601         * alpha.md (movtf): New expander, insn, and splitter.
16602
16603 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16604
16605         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16606         dead registers.
16607
16608 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16609
16610         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16611         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16612          REG_ALLOC_ORDER): Add frame pointer
16613         (FRAME_POINTER_REGNUM): Set to 20
16614         (HARD_FRAME_POINTER_REGNUM): New macro.
16615         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16616         to HARD_FRAME_POINTER.
16617         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16618         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16619         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16620         (HI_REGISTER_NAMES): Add "frame".
16621         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16622         (debug_reg): Handle FRAME_POINTER_REGNUM.
16623         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16624         GENERAL_REGS and INDEX_REGS.
16625         * i386.c (SAVED_REGS_FIRST): new macro.
16626         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16627         (ix86_decompose_address, memory_address_length): Likewise.
16628         (regclass_map): Add frame pointer.
16629         (call_insn_operand): Handle frame_pointer_rtx.
16630         (reg_no_sp_operand): Likewise.
16631         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16632         (print_operand, legitimize_pic_address): Fix formating.
16633         (ix86_compute_frame_size): Make static, update prototype, new
16634         parameters padding1, padding2, use ix86_nsaved_regs, use
16635         stack_alignment_needed.
16636         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16637         to HARD_FRAME_POINTER_REGNUM conversions.
16638         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16639         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16640         (print_reg): Abort on FRAME_POINTER_REGNUM
16641
16642 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16643
16644         * i386.h (PREDICATE_CODES): Add aligned_operand.
16645         * i386.c (aligned_operand): New function.
16646         (ix86_aligned_p): Kill.
16647         * i386.md (movhi_1): Emit mov for aligned operands.
16648         (promoting peep2s): Use aligned_operand.
16649
16650 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16651
16652         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16653         expression to allow underscores in macro names.
16654         (fix_char_macro_defines): Increment scanning pointer.
16655
16656 2000-01-23  Richard Henderson  <rth@cygnus.com>
16657
16658         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16659         * alpha/osf5.h: New file.
16660         * configure.in (alpha-*-osf5): Add it to tm_file.
16661
16662         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16663
16664         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16665         (alpha_emit_xfloating_cvt, function_arg): Declare.
16666         * alpha.c (alpha_emit_conditional_branch): Call
16667         alpha_emit_xfloating_compare for TFmode compares.
16668         (alpha_lookup_xfloating_lib_func): New.
16669         (alpha_compute_xfloating_mode_arg): New.
16670         (alpha_emit_xfloating_libcall): New.
16671         (alpha_emit_xfloating_arith): New.
16672         (alpha_emit_xfloating_compare): New.
16673         (alpha_emit_xfloating_cvt): New.
16674         (print_operand): Add default abort case.
16675         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16676         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16677         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16678         (RETURN_IN_MEMORY): True for TF/TCmode.
16679         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16680         (FUNCTION_ARG): Move to function_arg.
16681         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16682         (ASM_OUTPUT_LONG_DOUBLE): New.
16683         (ASM_OUTPUT_DOUBLE): Always output bits.
16684         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16685         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16686         (extenddftf2, trunctfdf2): New.
16687
16688 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16689
16690         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16691         * config/sparc/sol2.h: ... here.
16692
16693 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16694
16695         * basic-block.h (struct loops): New field `levels'.
16696         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16697         (flow_loop_level_compute): Initialise level to 1.
16698         (flow_loops_find): Set loops->levels.
16699         (flow_loops_dump): Print loops->levels.
16700
16701 2000-01-23  Richard Henderson  <rth@cygnus.com>
16702
16703         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16704         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16705
16706 2000-01-23  Richard Henderson  <rth@cygnus.com>
16707
16708         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16709         * i386.h (DBX_REGISTER_NUMBER): Use them.
16710         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16711         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16712         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16713         * i386/sequent.h: Kill incorrect comment.
16714
16715 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16716
16717         * ggc-page.c (struct page_entry): Make `context_depth' an
16718         `unsigned short'.
16719         (struct globals): Likewise.
16720
16721 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16722
16723         * loop.c (check_dbra_loop): When checking a loop for
16724         reversability, check the source of any stores to ensure
16725         they don't depend on an initial value.
16726
16727 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16728
16729         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16730
16731 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16732
16733         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16734         'pz_scan' into scope of entire function.  Only affects
16735         compiles with -DDEBUG.
16736
16737 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16738
16739         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16740         section naming to that prior to 2000-01-07 patch.
16741         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16742         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16743         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16744         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16745         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16746
16747 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16748
16749         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16750         constant.
16751
16752 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16753
16754         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16755         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16756
16757 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16758
16759         * cpphash.c (change_newlines): Delete function.
16760         (struct argdata): Delete 'newlines' and 'use_count' fields.
16761         (macroexpand): Remove code referencing those fields.
16762
16763 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16764
16765         * loop.c (loops_info): New variable.
16766         (loop_optimize): Allocate loops->array and free it on exit.
16767         Allocate memory for loops_info and assign to each loop,
16768         replacing alloca.
16769         (find_and_verify_loops): Do not allocate loops->array.
16770
16771 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16772
16773         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16774
16775 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16776
16777         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16778         pseudos if expanded after first flow.
16779         (movdi_pic_label_ref): Likewise.
16780
16781 2000-01-20  Richard Henderson  <rth@cygnus.com>
16782
16783         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16784
16785 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16786
16787         * Makefile.in (fixinc.sh): Depend on specs.
16788         * fixinc/Makefile.in: Add rule to create machname.h.
16789         (fixlib.o): Depend on machname.h.
16790         * fixinc/fixtests.c (machine_name): New test.
16791         * fixinc/fixfixes.c (machine_name): New fix.
16792         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16793         the machine_name test and fix.
16794         * fixinc/fixlib.h: Prototype it.
16795         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16796         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16797
16798         * gcc.c (do_spec_1) [case P]: Take care not to create
16799         identifiers with three leading or trailing underscores.
16800
16801         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16802         (fixincl): Don't specify libraries twice on link line.
16803         (gnu-regex.o): Remove special rule.
16804         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16805         defined by config.h.  Do not define _REGEX_RE_COMP.
16806         (regcomp): Allocate and initialize a fastmap.
16807         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16808
16809 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16810
16811         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16812
16813 2000-01-19  Richard Henderson  <rth@cygnus.com>
16814
16815         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16816         arguments with BB.  Update all callers.  Tidy line wrapping.
16817
16818 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16819
16820         * emit-rtl.c (try_split): Return last_insn if we split the
16821         last_insn.
16822
16823 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16824
16825         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16826         (ix86_initial_elimination_offset): Declare.
16827         * i386.c (ix86_nsaved_regs): Break out from ...
16828         (ix86_can_use_return_insn_p): ... here.
16829         (ix86_emit_save_regs): Break out from ...
16830         (ix86_expand_prologue): ... here.
16831         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16832         out from ...
16833         (ix86_expand_epilogue): ... here.
16834         (ix86_compute_frame_size): Make static, add prototype.
16835         (ix86_initial_elimination_offset): Break out from ...
16836         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16837
16838 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16839
16840         * recog.h (OUT_FCN): Delete.
16841
16842         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16843
16844 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16845
16846         * cppalloc.c: PROTO -> PARAMS.
16847         * cpperror.c: Likewise.
16848         * cppfiles.c: Likewise.
16849         * cpplib.c: Likewise.
16850         * cpplib.h: Likewise.
16851
16852         * config/arm/arm-protos.h: PROTO -> PARAMS.
16853         * config/arm/arm.c: Likewise.
16854         * config/c4x/c4x.c: Likewise.
16855         * config/fr30/fr30-protos.h: Likewise.
16856         * config/nextstep.c: Likewise.
16857         * config/pa/pa.c: Likewise.
16858         * config/pj/pj.c: Likewise.
16859         * config/rs6000/rs6000.c: Likewise.
16860         * config/v850/v850-protos.h: Likewise.
16861         * config/v850/v850.c: Likewise.
16862
16863 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16864
16865         * i370-protos.h: New file.
16866
16867         * i370.c: Include tm_p.h.  Fix compile time warnings.
16868
16869         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16870         warnings.
16871
16872         * i370.md: Likewise.
16873
16874 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16875
16876         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16877         (target_isinf, target_isnan, eisnan): Mark parameter with
16878         ATTRIBUTE_UNUSED.
16879         (eiisinf): Wrap in INFINITY.
16880         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16881         (ibmtoe): Remove unused variable `rndsav'.
16882
16883 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16884
16885         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16886         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16887
16888 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16889
16890         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16891         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16892         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16893
16894         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16895         Recognize Emacs mode markers also.
16896         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16897         C++ comments in C++ headers.  Call is_cxx_header only if
16898         necessary.
16899
16900         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16901         bypass for ncurses.
16902         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16903         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16904         ... these, which use the new C fixes.
16905         (math_exception): Escape literal '+' in bypass expression.
16906
16907         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16908         Regenerate.
16909
16910 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16911
16912         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16913         inside the MEM.
16914
16915 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16916
16917         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16918         prior to calling scan_loop.
16919
16920 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16921
16922         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16923         (split_branches, calc_live_regs): Likewise.
16924
16925 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16926
16927         * sh.md (fpu_single, fp_mode): New attributes.
16928
16929 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16930
16931         * loop.c (current_loop_info): Renamed from loop_info_data
16932         and changed to a pointer.
16933         (loop_optimize): Allocate loop_info structure for each loop
16934         and initialise to zero.
16935         (scan_loop): Set current_loop_info.
16936
16937         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16938         on iteration_var.
16939
16940 2000-01-19  Richard Henderson  <rth@cygnus.com>
16941
16942         * stupid.c: Die die die.
16943         * Makefile.in (OBJS): Remove stupid.o.
16944         (stupid.o): Likewise.
16945
16946         * except.c (emit_eh_context): Don't emit USEs for stupid.
16947         * explow.c (probe_stack_range): Likewise.
16948         * flags.h (obey_regdecls): Remove.
16949         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16950         when not optimizing.
16951         (life_analysis): Limit data collection when not optimizing.
16952         (mark_regs_live_at_end): Always mark the return value registers.
16953         (mark_used_regs): Remove dummy RETURN case.
16954         (print_rtl_with_bb): Don't consult obey_regdecls.
16955         * function.c (use_variable, use_variable_after): Remove.
16956         (assign_parms): Consult optimize not obey_regdecls.
16957         (expand_function_start): Don't emit USEs for stupid.
16958         (expand_function_end): Likewise.
16959         * global.c (build_insn_chain): Export.
16960         * integrate.c (expand_inline_function): Kill return-value USE
16961         handling code.
16962         * jump.c (jump_optimize_1): Do simple jump optimizations and
16963         dead code elimination.
16964         (calculate_can_reach_end): Remove check_deleted argument.
16965         (delete_insn): Patch out insns even when not optimizing.
16966         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16967         * rtl.h (use_variable, use_variable_after): Remove declarations.
16968         (build_insn_chain): Declare.
16969         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16970         (expand_end_bindings): Likewise.
16971         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16972         * toplev.c (obey_regdecls): Remove.
16973         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16974         flow1, local-alloc, and reload.
16975         (main): Don't set obey_regdecls.
16976
16977         * config/nextstep.c (handle_pragma): Likewise.
16978
16979         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16980
16981         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16982
16983 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16984
16985         * alpha-protos.h: PROTO -> PARAMS.
16986         * alpha.c: Likewise.
16987         * elf.h: Likewise.
16988         * h8300.c: Likewise.
16989         * i386-protos.h: Likewise.
16990         * i386.c: Likewise.
16991         * m32r-protos.h: Likewise.
16992         * m32r.c: Likewise.
16993         * mips.c: Likewise.
16994         * mips.md: Likewise.
16995         * gmon-sol2.c: Likewise.
16996         * sparc.c: Likewise.
16997
16998 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16999
17000         * ns32k-protos.h: New file.
17001
17002         * ns32k.c: Fix compile time warnings.
17003
17004         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
17005         warnings.
17006
17007         * ns32k.md: Likewise.
17008
17009 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17010
17011         * vax-protos.h: New file.
17012
17013         * vax.c: Fix compile time warnings.
17014
17015         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
17016         warnings.
17017
17018         * vax.md: Likewise.
17019
17020         * vaxv.md: Likewise.
17021
17022 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17023
17024         * romp-protos.h: New file.
17025
17026         * romp.c: Fix compile time warnings.
17027
17028         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
17029         warnings.
17030
17031         * romp.md: Likewise.
17032
17033 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17034
17035         * we32k-protos.h: New file.
17036
17037         * we32k.c: Fix compile time warnings.
17038
17039         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
17040         warnings.
17041
17042 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17043
17044         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
17045
17046         * except.c (eh_regs): Likewise.
17047
17048         * final.c (output_operand): Likewise.
17049
17050         * fold-const.c (target_isinf, target_isnan): Likewise.
17051
17052 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17053
17054         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
17055         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
17056
17057         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
17058         when optimize_size.
17059         (clrstrsi): Rewrite.
17060         (strsethi, strsetqi): New expanders.
17061         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
17062         (cmpstrsi): Emit compare insn before cmpstrsi_1
17063         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
17064         (strlensi_1): Likewise.
17065         (cmpstrsi_1): Likewise; do not output compare.
17066         (strlen expander): Do not unroll when optimizing for size.
17067         (*subsi3_carry): Rename to subsi3_carry
17068         (addqi3_cc): New pattern.
17069         * i386.h (processor_costs): Add move_ratio field.
17070         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
17071         * i386.c (*_cost): Set move_ratio.
17072         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
17073         (x86_expand_strlensi_1): Rewrite the main loop.
17074
17075 2000-01-17  Richard Henderson  <rth@cygnus.com>
17076
17077         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
17078         * cse.c (find_comparison_args, fold_rtx): Likewise.
17079         * integrate.c (subst_constants): Likewise.
17080         * loop.c (get_condition): Likewise.
17081
17082         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
17083
17084         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
17085
17086 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17087
17088         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
17089         (RESTORE_WARN_FLAGS): Unpack it.
17090         Change semantic type of extension to ttype.
17091         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
17092         * c-parse.y, c-parse.c, objc/objc-parse.y,
17093         objc/objc-parse.c: Regenerate.
17094
17095 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
17096
17097         * fixinc/fixlib.c: Add copyright notice.
17098         (compile_re): New function.
17099         * fixinc/fixlib.h: Prototype compile_re.
17100
17101         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
17102         Use compile_re to compile regular expressions.
17103
17104         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
17105         where the pattern matched.
17106
17107         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
17108         use 'replace'.
17109         (ultrix_ansi_compat): Likewise.
17110         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
17111         add egrep test.
17112         (interactv_add2, interactv_add3): Delete.
17113         (x11_sprintf): Don't use filename glob.
17114         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
17115         Regenerate.
17116
17117 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17118
17119         * print-rtl.c: PROTO -> PARAMS.
17120         * real.c: Likewise.
17121         * reg-stack.c: Likewise.
17122         * resource.c: Likewise.
17123         * sdbout.h: Likewise.
17124         * simplify-rtx.c: Likewise.
17125         * stor-layout.c: Likewise.
17126         * stupid.c: Likewise.
17127         * xcoffout.c: Likewise.
17128         * xcoffout.h: Likewise.
17129
17130 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17131
17132         * toplev.c: PROTO -> PARAMS.
17133         * toplev.h: Likewise.
17134         * tree.c: Likewise.
17135         * tree.h: Likewise.
17136         * unroll.c: Likewise.
17137         * varasm.c: Likewise.
17138         * varray.c: Likewise.
17139         * varray.h: Likewise.
17140
17141 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17142
17143         * reload.c: PROTO -> PARAMS.
17144         * reload.h: Likewise.
17145         * reload1.c: Likewise.
17146         * reorg.c: Likewise.
17147         * resource.h: Likewise.
17148         * rtl.c: Likewise.
17149         * rtl.h: Likewise.
17150         * rtlanal.c: Likewise.
17151         * sbitmap.h: Likewise.
17152         * sdbout.c: Likewise.
17153         * stack.h: Likewise.
17154         * stmt.c: Likewise.
17155         * system.h: Likewise.
17156
17157 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17158
17159         * machmode.h: PROTO -> PARAMS.
17160         * mbchar.h: Likewise.
17161         * mips-tdump.c: Likewise.
17162         * mips-tfile.c: Likewise.
17163         * optabs.c: Likewise.
17164         * output.h: Likewise.
17165         * prefix.c: Likewise.
17166         * profile.c: Likewise.
17167         * protoize.c: Likewise.
17168         * real.h: Likewise.
17169         * recog.c: Likewise.
17170         * recog.h: Likewise.
17171         * regclass.c: Likewise.
17172         * regmove.c: Likewise.
17173         * regs.h: Likewise.
17174
17175 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17176
17177         * ggc-common.c: PROTO -> PARAMS.
17178         * ggc-page.c: Likewise.
17179         * ggc-simple.c: Likewise.
17180         * ggc.h: Likewise.
17181         * global.c: Likewise.
17182         * graph.c: Likewise.
17183         * gthr-win32.h: Likewise.
17184         * haifa-sched.c: Likewise.
17185         * halfpic.h: Likewise.
17186         * integrate.c: Likewise.
17187         * integrate.h: Likewise.
17188         * jump.c: Likewise.
17189         * lcm.c: Likewise.
17190         * local-alloc.c: Likewise.
17191         * loop.c: Likewise.
17192         * loop.h: Likewise.
17193
17194 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17195
17196         * genattr.c: PROTO -> PARAMS.
17197         * genattrtab.c: Likewise.
17198         * gencheck.c: Likewise.
17199         * gencodes.c: Likewise.
17200         * genconfig.c: Likewise.
17201         * genemit.c: Likewise.
17202         * genextract.c: Likewise.
17203         * genflags.c: Likewise.
17204         * gengenrtl.c: Likewise.
17205         * genopinit.c: Likewise.
17206         * genoutput.c: Likewise.
17207         * genpeep.c: Likewise.
17208         * genrecog.c: Likewise.
17209
17210 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
17211
17212         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
17213
17214 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17215
17216         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
17217         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
17218         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
17219         * configure, config.in: Rebuilt.
17220
17221 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
17222
17223         * config/i386/i386.md: Add peephole to merge successive stack
17224         adjusts.
17225
17226 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
17227
17228         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
17229         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
17230         when walking backwards to find all the parameter loads when
17231         the basic block ends in a call.
17232
17233 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17234
17235         * loop.c (this_loop_info): Delete.
17236         (uid_loop): Add in place of uid_loop_num.  All uses updated.
17237         (loop_number_exit_count): Delete and replace with entry in loop
17238         structure.  All uses updated.
17239         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17240         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17241         (loop_outer_loop): Likewise.
17242         (loop_invalid, loop_number_exit_labels): Likewise.
17243         (loop_used_count_register): Delete and replace with entry in
17244         loop_info structure.
17245         (find_and_verify_loops): Add loops argument.
17246         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
17247         loop_end, etc. arguments with loop structure pointer.  All callers
17248         changed.
17249         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
17250         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
17251         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
17252         (insert_bct): Likewise.
17253         (basic_induction_var): New argument level.
17254         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
17255         vtop, and cont.  Add used_count_register.
17256         (uid_loop): Delete declaration.
17257         (loop_number_exit_count): Likewise.
17258         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17259         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17260         (loop_outer_loop, loop_used_count_register): Likewise.
17261         (loop_invalid, loop_number_exit_labels): Likewise.
17262         (unroll_loop): Replace loop_start and loop_end arguments
17263         with loop structure pointer.
17264         (loop_precondition_p, loop_iterations): Likewise.
17265         Include basic-block.h.
17266         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
17267         with loop structure pointer.
17268         (loop_precondition_p, loop_iterations): Likewise.
17269         * basic-block.h (struct loop): New entries vtop, cont,
17270         cont_dominator, start, end, top, scan_start, exit_labels,
17271         exit_count.
17272         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
17273
17274 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17275
17276         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
17277
17278 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
17279
17280         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
17281
17282 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17283
17284         * pdp11-protos.h: New file.
17285
17286         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
17287         time warnings.
17288
17289         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
17290         warnings.
17291
17292         * pdp11.md: Likewise.
17293
17294         * 2bsd.h: Likewise.
17295
17296 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17297
17298         * mn10300-protos.h: New file.
17299
17300         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17301         time warnings.
17302
17303         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
17304         warnings.
17305
17306         * mn10300.md: Likewise.
17307
17308 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17309
17310         * mn10200-protos.h: New file.
17311
17312         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
17313         time warnings.
17314
17315         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
17316         warnings.
17317
17318         * mn10200.md: Likewise.
17319
17320 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17321
17322         * h8300-protos.h: New file.
17323
17324         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17325         time warnings.
17326
17327         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
17328         warnings.
17329
17330         * h8300.md: Likewise.
17331
17332 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17333
17334         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
17335         (asm_emit_uninitialised): Likewise.
17336
17337 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
17338
17339         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
17340         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
17341
17342 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17343
17344         * config/mips/mips.c (override_options): Don't turn on extra
17345         alignment for mips16.
17346
17347 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17348
17349         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
17350         eabi, and make sure queued POSTINCREMENT rtl is emitted at
17351         the right point.
17352
17353 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17354
17355         * builtins.c (PAD_VARARGS_DOWN): Define.
17356         (std_expand_builtin_va_arg): Use the above macro.
17357         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
17358         * tm.texi (Register Arguments): Document the above macro.
17359
17360 2000-01-14  Nick Clifton  <nickc@cygnus.com>
17361
17362         * emit-rtl.c (emit_insn): If checking is enabled, make sure
17363         that this function has not been used to emit a jump
17364         instruction.
17365
17366         * jump.c (return_jump_1): Cope with being passed a null rtx.
17367
17368 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17369
17370         * eh-common.h: PROTO -> PARAMS.
17371         * emit-rtl.c: Likewise.
17372         * errors.c: Likewise.
17373         * errors.h: Likewise.
17374         * except.c: Likewise.
17375         * except.h: Likewise.
17376         * explow.c: Likewise.
17377         * expmed.c: Likewise.
17378         * expr.c: Likewise.
17379         * expr.h: Likewise.
17380         * final.c: Likewise.
17381         * fix-header.c: Likewise.
17382         * flow.c: Likewise.
17383         * fold-const.c: Likewise.
17384         * function.c: Likewise.
17385         * function.h: Likewise.
17386         * gcc.c: Likewise.
17387         * gcov-io.h: Likewise.
17388         * gcov.c: Likewise.
17389         * gcse.c: Likewise.
17390
17391 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17392
17393         * sh-protos.h: New file.
17394
17395         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
17396         Add static prototypes.  Fix compile time warnings.
17397
17398         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
17399         * sh.md: Likewise.
17400         * elf.h: Likewise.
17401
17402 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17403
17404         * arc-protos.h: New file.
17405
17406         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
17407         time warnings.
17408
17409         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
17410         warnings.
17411
17412         * arc.md: Likewise.
17413
17414 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17415
17416         * dsp16xx-protos.h: New file.
17417
17418         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
17419         time warnings.
17420
17421         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
17422         warnings.
17423
17424         * dsp16xx.md: Likewise.
17425
17426 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17427
17428         * convex-protos.h: New file.
17429
17430         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
17431         time warnings.
17432
17433         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
17434         warnings.
17435
17436 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17437
17438         * elxsi-protos.h: New file.
17439
17440         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
17441         time warnings.
17442
17443         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
17444         warnings.
17445
17446         * elxsi.md: Likewise.
17447
17448 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17449
17450         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
17451         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
17452         match the comment for MIPS16.
17453
17454 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
17455
17456         * flow.c (split_edge): Do not call set_block_for_insn if we
17457         do not have a basic_block_for_insn structure.
17458
17459         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
17460         and destination functions are 32bit aligned within the trampoline.
17461         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
17462         (TRAMPOLINE_ALIGNMENT): Define.
17463
17464         * cse.c (cse_insn): When changing (set (pc) (reg)) to
17465         (set (pc) (label_ref)), verify the change creates a valid insn.
17466
17467         * fr30.c (call_operand): Tighten and rework to match rules for
17468         call RTL expressions.
17469         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
17470         * fr30.md (call patterns): Improve constraints.
17471
17472 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
17473
17474         * fr30.c (fr30_expand_epilogue): Revert last change.
17475         Use emit_jump_insn for the return insn.
17476
17477 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17478                           Stan Cox  <scox@cygnus.com>
17479
17480         * predict.c: New file. Preliminary infrastructure work for static
17481         branch prediction and basic block reordering.
17482         * basic-block.h: Add prototype for estimate_probability.
17483         * Makefile.in: Add rules for predict.o.
17484
17485 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17486
17487         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17488         * fixinc/*: Likewise.
17489
17490 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17491
17492         * cccp.c: PROTO -> PARAMS.
17493         * cexp.y: Likewise.
17494         * collect2.c: Likewise.
17495         * combine.c: Likewise.
17496         * convert.h: Likewise.
17497         * cse.c: Likewise.
17498         * dbxout.c: Likewise.
17499         * dbxout.h: Likewise.
17500         * diagnostic.c: Likewise.
17501         * doprint.c: Likewise.
17502         * dwarf2out.c: Likewise.
17503         * dwarf2out.h: Likewise.
17504         * dwarfout.c: Likewise.
17505         * dwarfout.h: Likewise.
17506         * dyn-string.h: Likewise.
17507
17508 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17509
17510         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17511         macro conditionals guarding use.
17512
17513         * dwarf2out.c: Include "tm_p.h".
17514
17515         * function.c (locate_and_pad_parm): Mark parameter with
17516         ATTRIBUTE_UNUSED.
17517         (expand_function_end): Likewise for variable `context'.
17518
17519         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17520
17521 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17522
17523         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17524         register to prevent compile time warnings.
17525
17526 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17527
17528         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17529         to avoid -Wtraditional warning.
17530
17531 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17532
17533         * 1750a-protos.h: New file.
17534
17535         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17536         time warnings.
17537
17538         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17539         warnings.
17540
17541         * 1750a.md: Likewise.
17542
17543 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17544
17545         * a29k-protos.h: New file.
17546
17547         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17548         time warnings.
17549
17550         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17551         warnings.
17552
17553 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17554
17555         * clipper-protos.h: New file.
17556
17557         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17558         time warnings.
17559
17560         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17561         warnings.
17562
17563 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17564
17565         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17566
17567 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17568
17569         * configure.in (--enable-new-gxx-abi): New option.
17570         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17571         * Makefile.in (GXX_ABI_FLAG): New variable.
17572         * configure: Regenerate.
17573
17574 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17575
17576         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17577         * tm.texi (FORCE_STRUCT_BLK): Document.
17578         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17579
17580 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17581
17582         * config/ns32k/ns32k.md: Revert Jan 9 change.
17583
17584         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17585         to a mode-test, if the predicate is address_operand.
17586
17587 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17588
17589         * combine.c (if_then_else_cond): Be careful about what kinds
17590         of RTL expressions are passed to operand_subword.
17591
17592         * flow.c (split_edge): If we have to insert a new jump, make
17593         sure to associate it with a basic block.
17594
17595         * flow.c (commit_one_edge_insertion): A block with one successor
17596         can end in a JUMP_INSN that is not a simplejump.
17597
17598 2000-01-12  Robert Lipe  <robertl@sco.com>
17599
17600         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17601         (BUILD_VA_LIST_TYPE): Define.
17602         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17603         with crtstuff.c.
17604
17605 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17606
17607         * cccp.c (do_pragma): Add cast to (char *).
17608
17609 2000-01-12  Richard Henderson  <rth@cygnus.com>
17610             Fred Fish  <fnf@be.com>
17611             Jason Merrill  <jason@cygnus.com>
17612
17613         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17614         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17615         * i386/beos-elf.h, i386/beos-pe.h: New files.
17616
17617         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17618         * cross-make (SYSTEM_HEADER_DIR): Define using
17619         CROSS_SYSTEM_HEADER_DIR.
17620
17621         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17622         (process_command): Use it.
17623         (main): Likewise.  Kill trailing = from env vars.
17624         (build_search_list): Put it back.
17625         * collect2.c (main): Use LIBRARY_PATH_ENV.
17626
17627         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17628         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17629
17630         * tm.texi (Frame Layout): Document SMALL_STACK.
17631         * c-common.c (c_common_nodes_and_builtins): Check it.
17632
17633         * system.h: Undef alloca after including glibc's <stdlib.h>,
17634         if USE_C_ALLOCA is defined.
17635
17636         * gcc.c (set_input): New fn.
17637         (main): After all input files are compiled, reset the input file
17638         info to the first.
17639
17640         * aclocal.m4 (rindex, index): If already defined, don't attempt
17641         to redefine.
17642
17643         * ginclude/varargs.h: (__va_list__): Define ifndef.
17644         * ginclude/stdarg.h: Likewise.
17645
17646         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17647         instead of unsigned char.
17648
17649         * hash.h (true, false, boolean): Undef before enum.
17650
17651         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17652         proper type of "HOST_WIDE_INT *", rather than their natural type of
17653         "unsigned HOST_WIDE_INT *".
17654
17655 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17656
17657         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17658
17659         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17660
17661         * regclass.c (choose_hard_reg_mode): Likewise.
17662
17663         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17664
17665         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17666
17667 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17668
17669         * c-common.c: PROTO -> PARAMS.
17670         * c-common.h: Likewise.
17671         * c-decl.c: Likewise.
17672         * c-iterate.c: Likewise.
17673         * c-lang.c: Likewise.
17674         * c-lex.c: Likewise.
17675         * c-lex.h: Likewise.
17676         * c-parse.in: Likewise.
17677         * c-pragma.c: Likewise.
17678         * c-pragma.h: Likewise.
17679         * c-tree.h: Likewise.
17680         * c-typeck.c: Likewise.
17681         * objc/objc-act.c: Likewise.
17682         * objc/objc-act.h: Likewise.
17683
17684 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17685
17686         * m88k-protos.h: New file.
17687
17688         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17689         time warnings.
17690
17691         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17692
17693         * m88k.md: Likewise.
17694
17695         * tekXD88.h: Likewise.
17696
17697 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17698
17699         * m68k-protos.h: New file.
17700
17701         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17702         time warnings.
17703
17704         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17705
17706         * mot3300.h: Likewise.
17707
17708 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17709
17710         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17711         extract_bitlst.
17712         (extract_bitlist): Declare bitlen.
17713
17714 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17715
17716         * cccp.c: Accept and ignore -lang-fortran.
17717
17718         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17719         qualifiers don't match at any level of pointerness.
17720
17721 2000-01-12  Robert Lipe  <robertl@sco.com>
17722
17723         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17724
17725 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17726
17727         * reload1.c (reload_reg_unavailable): New static variable.
17728         (reload_reg_free_p): Test it.
17729         (reload_reg_free_for_value_p): Test it instead of
17730         reload_reg_used.
17731         (choose_reload_regs_init): Compute it.
17732
17733 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17734
17735         * reorg.c (fill_slots_from_thread): Check modified_in_p
17736         before replacing.
17737
17738 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17739
17740         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17741         these nodes even if INTERNALS is not set.
17742
17743 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17744
17745         * gcse.c (delete_null_pointer_checks_1): Cope when
17746         get_condition cannot determine the condition.
17747
17748 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17749
17750         * toplev.h (set_message_length): Declare.
17751
17752         * diagnostic.c (obstack_chunk_alloc): Define macro.
17753         (obstack_chunk_free): Likewise.
17754         (struct output_buffer): New data structure.
17755         (vmessage): Remove.
17756         (output_maximum_width): New variable.
17757         (doing_line_wrapping, set_message_length, init_output_buffer,
17758         get_output_prefix, output_space_left, emit_output_prefix,
17759         output_newline, output_append, output_puts, dump_output,
17760         vbuild_message_string, build_message_string, build_location_prefix,
17761         voutput_notice, output_printf, line_wrapper_printf,
17762         vline_wrapper_message_with_location):  New functions. Implement
17763         automatic line wrapping.
17764         (v_message_with_decl): Make it handle automatic line wrapping.
17765         (v_error_with_file_and_line): Likewise.
17766         (v_warning_with_file_and_line): Likewise.
17767         (announce_function): Likewise.
17768         (default_print_error_function): Likewise.
17769
17770 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17771
17772         * cpplib.h (struct cpp_options): Change lang_asm to char.
17773         Add lang_fortran.
17774         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17775         done in cpp_handle_option now.
17776         (initialize_builtins): Take out special case code used only by
17777         __STDC_VERSION__.
17778         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17779         if -traditional.  Recognize -lang-fortran and set
17780         lang_fortran, also turn off cplusplus_comments.
17781         (print_help): Document -lang-fortran.
17782         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17783         lang_asm. Ignore all directives other than `# 123 "file"' if
17784         CPP_PREPROCESSED.
17785         (cpp_get_token): If -traditional, don't recognize directives
17786         unless the # is in column 1.
17787         (parse_string): If lang_fortran or lang_asm, silently
17788         terminate strings ('' or "") at end of line.
17789         Remove unnecessary braces.
17790
17791 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17792             Richard Henderson  <rth@cygnus.com>
17793
17794         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17795         as used.
17796         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17797         strict_low_part when possible.
17798
17799 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17800
17801         * alias.c: PROTO -> PARAMS.
17802         * basic-block.h: Likewise.
17803         * bitmap.c: Likewise.
17804         * bitmap.h: Likewise.
17805         * builtins.c: Likewise.
17806         * c-aux-info.c: Likewise.
17807         * caller-save.c: Likewise.
17808         * calls.c: Likewise.
17809
17810 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17811
17812         * Makefile.in (toplev.o): Depend on regs.h.
17813
17814         * output.h (tdesc_section): Prototype.
17815
17816         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17817
17818         * sdbout.c: Include "tm_p.h".
17819
17820         * toplev.c: Include "regs.h".
17821
17822 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17823
17824         * unroll.c (unroll_loop): Add EH support.
17825
17826 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17827
17828         * pa-protos.h: New file.
17829
17830         * pa.c: Include recog.h and tm_p.h.
17831         (compute_zdepwi_operands, compute_movstrsi_length,
17832         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17833         find_addr_reg, import_milli): Add static prototypes.
17834         (pa_cpu_string, pa_arch_string): Constify a char*.
17835         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17836         (read_only_operand): Add argument `mode'.
17837         (singlemove_string, output_move_double, output_fp_move_double,
17838         output_block_move, output_and, output_ior, output_ascii,
17839         remove_useless_addtr_insns, milli_names, output_mul_insn,
17840         output_div_insn, output_mod_insn, output_arg_descriptor,
17841         output_cbranch, output_bb, output_bvb, output_dbra, ,
17842         output_millicode_call, output_call, hppa_encode_label,
17843         output_parallel_movb, output_parallel_addb): Constify a char*.
17844         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17845         (output_parallel_addb): Remove extra arg to `constrain_operands'
17846
17847         * pa.h:  Move all prototypes to pa-protos.h.
17848         (pa_cpu_string, pa_arch_string): Constify a char*.
17849         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17850
17851         * pa.md: Call `function_label_operand' with mode argument.
17852         Likewise for `read_only_operand'.
17853         Fix nesting of parens in call to `symbolic_operand'.
17854
17855 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17856
17857         * i860-protos.h: New file.
17858
17859         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17860         time warnings.
17861
17862         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17863
17864         * i860.md: Likewise.
17865
17866 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17867
17868         * i386.md (movstrsi expander): Rewrite.
17869         (movstrsi_1 insn): Deleted.
17870         (strmovhi, strmovqi expander): New expanders.
17871         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17872         * i386.c (x86_single_stringop): New global variable.
17873         * i386.h (x86_single_stringop): Declare.
17874         (TARGET_SINGLE_STRINGOP): New macro.
17875
17876 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17877
17878         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17879         integer vararg POSTINCREMENT before the destination of the jump
17880         for the hard fp case.
17881         (function_arg_pass_by_reference): Pass a copy of CUM to
17882         FUNCTION_ARG.
17883
17884         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17885         for CONSTANT_ADDRESS_P above while loop for subreg.
17886
17887 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17888
17889         * flow.c (propagate_block): When a prologue/epilogue insn
17890         is marked dead, unconditionally clear libcall_is_dead and
17891         insn_is_dead, and only dump rtl if warnings aren't being
17892         suppressed.
17893
17894 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17895
17896         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17897         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17898         (FIXED_REGISTERS): Set dirflag as fixed.
17899         (CALL_USED_REGISTERS): Set dirflag as used.
17900         (REG_ALLOC_ORDER): Set dirflag as last one.
17901         (DIRFLAG_REG): New macro.
17902         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17903         (HI_REGISTER_NAMES): Add dirflag.
17904         (DEBUF_PRINT_REG): Handle dirflag.
17905         * i386.md (type attribute): New cld and str types.
17906         (length_opcode attribute): Set cld and str to 1.
17907         (memory attribute): Set str to unknown - it is not clear from the
17908         patterns.
17909         (pent_np function unit): Prefixed string operations takes 12 cycles
17910         minimally; cld takes 2 cycles.
17911         (ppro_uops attribute): Str is "many" and cld is "few".
17912         (ppro_p0 unit): Handle cld here.
17913         (k6_alux unit): Handle cld and str types.
17914         (k6_load unit): It is ocupied by str opcodes.
17915         (k6_store unit): It is ocupied by str opcodes.
17916         (athlon_decode): Str is vector decoded.
17917         (athlon_ieu): Handle str and cld.
17918         (cld pattern): New.
17919         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17920         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17921         cmpstrsi_nz_1 insn): Do not output cld instruction
17922
17923 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17924
17925         * gcc.texi (G++ and GCC): Add Java and Chill.
17926         (Bug Critera): Don't list languages.
17927
17928         * gcc.texi (Incompatibilities): No longer claim most C compilers
17929         are K&R.
17930
17931         * gcc.texi (G++ and GCC): Update other front-ends list.
17932
17933 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17934
17935         * i386.c (ix86_expand_setcc): Fix typo.
17936         (ix86_expand_movcc): Similarly.
17937
17938         * Band-aid until haifa's bitset implementation is nuked.
17939         * haifa-sched.c (extract_bitlst): New parameter for size of the
17940         bitset in bits.  All callers changed.  Avoid looking at undefined
17941         bits in the bitset.
17942         (edgeset_bitsize): New variable.
17943         (schedule_region): Initialize edgeset_bitsize.
17944
17945 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17946
17947         * Makefile.in (optabs.o): Depend on real.h
17948         (resource.o): Depend on insn-attr.h
17949
17950         * builtins.c (result_vector): Wrap prototype in macro conditions
17951         governing definition and use.
17952
17953         * c-common.c: Include tm_p.h.
17954
17955         * c-lex.c: Likewise.
17956
17957         * elfos.h: Constify a char*.
17958
17959         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17960         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17961         parameter with ATTRIBUTE_UNUSED.
17962
17963         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17964         CHECK_FLOAT_VALUE.
17965
17966         * haifa-sched.c (schedule_insns): Mark parameter with
17967         ATTRIBUTE_UNUSED.
17968
17969         * optabs.c: Include real.h.
17970
17971         * real.h (ereal_atof): Add prototype arguments.
17972
17973         * resource.c: Include insn-attr.h.
17974
17975         * sdbout.c (sdbout_queue_anonymous_type,
17976         sdbout_dequeue_anonymous_types): Wrap in macro
17977         SDB_ALLOW_FORWARD_REFERENCES.
17978         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17979         ATTRIBUTE_UNUSED.
17980
17981         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17982
17983         * stupid.c: Include tm_p.h.
17984
17985         * tree.c (real_value_from_int_cst): Mark parameter with
17986         ATTRIBUTE_UNUSED.
17987
17988 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17989
17990         * i960-protos.h: New file.
17991
17992         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17993         time warnings.
17994
17995         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17996
17997 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17998
17999         * combine.c (expand_field_assignment): Do not discard SUBREGs
18000         while computing nonzero_bits.
18001
18002 2000-01-09  Nick Clifton  <nickc@cygnus.com>
18003
18004         * config/arm/arm.c: Fix compile time warnings about signed vs
18005         unsigned constants.
18006         * config/arm/arm.h: Fix compile time warnings about signed vs
18007         unsigned constants.
18008
18009 2000-01-09  Philip Blundell  <philb@gnu.org>
18010
18011         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
18012         than `ldm' with only one register.
18013         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
18014         only one register.
18015
18016         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
18017         clobbered.
18018
18019 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
18020
18021         * config/ns32k/ns32k.md (load or push effective address): Operand 1
18022         must have SImode.
18023
18024 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18025
18026         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
18027         assignment used as truth value.
18028
18029         * function.c (assign_temp): Mark parameter `dont_promote' with
18030         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
18031         PROMOTE_FOR_CALL_ONLY.
18032
18033         * genrecog.c (write_subroutine): Mark variable `operands' with
18034         ATTRIBUTE_UNUSED.
18035
18036         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
18037         ATTRIBUTE_UNUSED.
18038
18039         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
18040         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
18041
18042         * toplev.c (note_deferral_of_defined_inline_function): Likewise
18043         for `decl'.
18044
18045 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18046
18047         * config/c4x.h: Tidy up comments.
18048         * config/c4x.c: Likewise.
18049
18050 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
18051
18052         * fold-const.c (lshift_double, rshift_double): Handle
18053         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
18054
18055 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18056
18057         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
18058         in prepare_function_start().
18059
18060 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
18061
18062         * config/v850/v850.c (expand_epilogue): Interrupt functions no
18063         longer allocate extra stack for function calls.
18064
18065 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18066
18067         * config/c4x/c4x.md (*subqf3_set): Fix typo.
18068
18069 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18070
18071         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
18072
18073 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
18074
18075         * rs6000.c (processor_target_table): Add power3 as alias for 630.
18076         * aix43.h: Revert Aug 2 change.
18077         (HAS_INIT_SECTION): Define, not visible yet.
18078         (LD_INIT_SWITCH): Define, not visible yet.
18079         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
18080
18081         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
18082
18083         * collect2.c (main): Expand ld2 size further.
18084         (export_object_lst): Cast assignment to avoid warning.
18085         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
18086         (scan_prog_file, COFF): Do not collect initialization or
18087         finalization functions generated for entire shared object if
18088         init/fini support present.
18089
18090 2000-01-07  Nick Clifton  <nickc@cygnus.com>
18091
18092         * config/elfos.h: Tidy up formatting of marcos.  Make sure
18093         that .section directives are always prefixed by a tab.
18094
18095         * config/svr4.h: Add #include "elfos.h" and remove duplicate
18096         definitions.
18097
18098 2000-01-07  Matt Austern  <austern@sgi.com>
18099
18100         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
18101         expon.
18102
18103 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
18104
18105         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
18106         crtstuff.c.
18107         (crtbegin.o, s-crtS): Likewise.
18108
18109 2000-01-06  Richard Henderson  <rth@cygnus.com>
18110
18111         * alpha.md (adddi_2+1): Limit offset such that it will be
18112         loadable with a single ldah+lda pair.
18113         (adddi_2+2): Explicitly fail split if we can't make it work.
18114
18115 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
18116
18117         * protoize.c: Conditionally include unistd.h.
18118         (IS_SAME_PATH_CHAR): New macro.
18119         (IS_SAME_PATH): New macro.
18120         (CPLUS_FILE_SUFFIX): New macro.
18121         (cplus_suffix): New static variable.
18122         (is_abspath): New static function.
18123         (in_system_include_dir): Handle DOS style pathnames.
18124         (file_could_be_converted): Likewise.
18125         (file_normally_convertible): Likewise.
18126         (directory_specified_p): Likewise.
18127         (file_excluded_p): Likewise.
18128         (abspath): Likewise.
18129         (shortpath): Likewise.
18130         (referenced_file_is_newer): Likewise.
18131         (save_def_or_dec): Likewise.
18132         (do_processing): Likewise.
18133         (main): Likewise.
18134         (edit_file): Likewise. Use rename instead of link.
18135         (rename_c_file): Likewise. Don't rename syscalls file.
18136         (munge_compile_params): Define null device for DOS based systems.
18137         (process_aux_info_file): Use binary mode if appliable.
18138         (edit_file): Likewise.
18139         * invoke.texi (Running Protoize): Document C++ suffixes used.
18140
18141         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
18142         IS_DIR_SEPARATOR macros.
18143         * collect2.c: Likewise.
18144         * cppinit.c: Likewise.
18145         * dwarf2out.c: Likewise.
18146         * gcc.c: Likewise.
18147         * gcov.c: Likewise.
18148         * prefix.c: Likewise.
18149         * rtl.c: Likewise.
18150         * toplev.c: Likewise.
18151         * system.h: And move to here.
18152
18153         * prefix.c (update_path): Fix typo in variable name.
18154
18155 2000-01-06  Richard Henderson  <rth@cygnus.com>
18156
18157         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
18158         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
18159         (count_reg_sets_1, count_reg_references): Likewise.
18160         (flow_loops_level_compute): Start counting actual loop depth at 1.
18161         (flow_loops_find): Likewise.
18162         * local-alloc.c (update_equiv_regs): Likewise.
18163         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
18164
18165 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
18166
18167         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
18168         FIRST_PSEUDO_REGISTER
18169         * dwarf2out.c: Don't include frame.h
18170         * dwarfout.c: Likewise
18171         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
18172         frame.h
18173
18174 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
18175
18176         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
18177         dead registers.
18178
18179         * i386.c (movsf splitter): Fix typo in my last checkin.
18180
18181 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18182
18183         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
18184         own definition of this macro.
18185         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
18186         flag_data_sections or UNIQUE_SECTION_P are true.
18187
18188         * tm.texi (UNIQUE_SECTION): Document that it can be called for
18189         unitialised data decls.
18190
18191         * config/i386/winnt.c (i386_pe_unique_section): Cope with
18192         being called for uninitialised data.
18193
18194         * config/i386/interix.c (i386_pe_unique_section): Cope with
18195         being called for uninitialised data.
18196
18197         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
18198         for uninitialised data.
18199
18200         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
18201         for uninitialised data.
18202
18203         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
18204         for uninitialised data.
18205
18206         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
18207         (UNIQUE_SECTION_P): Always generate a unique section if
18208         flag_data_sections is true.
18209         (UNIQUE_SECTION): Also generate unique sections for
18210         uninitialised data.
18211         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
18212         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
18213         named_section().
18214
18215 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18216
18217         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
18218         SI, or DI.
18219
18220 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18221
18222         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
18223         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
18224         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
18225         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
18226         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
18227
18228         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
18229
18230 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
18231
18232         * c-decl.c (finish_enum): Simplify code to determine minimum and
18233         maximum values of the enum, and calculate the type.  Remove check
18234         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
18235         the DECL_INITIAL of each enumeration constant with a copy converted
18236         to the enumeration type.  When updating variant types, don't bother
18237         updating the type itself.
18238
18239         * c-typeck.c (build_binary_op): Simplify conditional expressions
18240         when weeding out spurious signed-unsigned warnings.  Add new
18241         spurious warning category: if the unsigned quantity is an enum
18242         and its maximum value fits in signed_type(result_type).  Update
18243         commentary.
18244         (build_conditional_expr): Warn here if one alternative is signed
18245         and the other is unsigned.
18246
18247 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18248
18249         * config/fr30/fr30.h: Remove extraneous comments.
18250
18251 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
18252
18253         * reload1.c (choose_reload_regs): When disabling a reload, also
18254         set reload_spill_index to -1.
18255
18256 2000-01-04  Joel Sherrill (joel@OARcorp.com>
18257
18258         * configure.in (m68*-*-rtemscoff*): New target, formal name for
18259         old m68*-*-rtems*.
18260         (m68*-*-rtemself*): New target.
18261         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
18262         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
18263         (sparc*-*-rtemself*): New target.
18264         (sparc*-*-rtems*): Now elf not a.out.
18265         * config/i386/rtems.h: Include config/rtems.h.
18266         * config/i386/rtemself.h: Include config/rtems.h.
18267         * config/i960/rtems.h: Include config/rtems.h.
18268         * config/m68k/rtems.h: Include config/rtems.h.
18269         * config/m68k/rtemself.h: Include config/rtems.h.
18270         * config/mips/rtems64.h: Include config/rtems.h.
18271         * config/pa/rtems.h: Include config/rtems.h.
18272         * config/rs6000/rtems.h: Include config/rtems.h.
18273         * config/sh/rtems.h: Include config/rtems.h.
18274         * config/sh/rtemself.h: Include config/rtems.h.
18275         * config/sparc/rtems.h: Include config/rtems.h.
18276         * config/sparc/rtemself.h: Include config/rtems.h
18277
18278 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
18279
18280         * final.c (shorten_branches): Correctly compute length of
18281         asms without operands.
18282
18283 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
18284
18285         * configure.in: Add pj target.
18286         * configure: Regenerate.
18287         * config/pj: New directory.
18288         * config/pj/lib1funcs.S: New file.
18289         * config/pj/linux.h: New file.
18290         * config/pj/pj.c: New file.
18291         * config/pj/pj.md: New file.
18292         * config/pj/pjl.h: New file.
18293         * config/pj/t-pj: New file.
18294         * config/pj/xm-pj.h: New file
18295
18296 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
18297
18298         * toplev.c (rest_of_compilation): Run shorten-branches before
18299         reg-stack for now.
18300
18301 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18302
18303         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
18304         macros so that they're consistent with their names.
18305         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18306         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18307
18308 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18309
18310         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
18311         modified inadvertently.
18312
18313 2000-01-04  Joel Sherrill <joel@OARcorp.com>
18314
18315         * configure.in (v850*-*-rtems*): New target.
18316         * configure: Regenerate.
18317         * config/v850/rtems.h: New file.
18318
18319 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
18320
18321         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
18322         (__gthread_key_create): Likewise.
18323         (__gthread_key_dtor):  Likewise.
18324         (__gthread_once): Fix logic.
18325         (__gthread_key_delete): Cast away constness.
18326
18327         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
18328         * invoke.texi: Document.
18329         * i386/mingw32.h (CPP_SPEC): Use.
18330         (LIBGCC_SPEC): Likewise.
18331         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
18332
18333 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18334
18335         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
18336         (HANDLE_PRAGMA_PACK): Undefine.
18337         (SLOW_UNALIGNED_ACCESS): Define.
18338
18339 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18340
18341         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18342         to default definition.
18343         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
18344         (store_fixed_bit_field): Call macro with word_mode and alignment.
18345         (extract_bit_field): Call macro with relevant mode and alignment.
18346         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18347         to default definition.
18348         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
18349         and alignment.
18350         (move_by_pieces_ninsns): Likewise.
18351         (clear_by_pieces): Likewise.
18352         (emit_push_insn): Likewise.
18353         (store_field): Call macro with relevant mode and alignment.
18354         (expand_expr): Likewise.
18355         (expand_expr_unaligned): Likewise.
18356
18357         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
18358         (SLOW_UNALIGNED_ACCESS): Define.
18359         (CASE_VECTOR_MODE): Always use 32-bit offsets.
18360         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
18361         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
18362         (toc_section): Likewise and .toc pseudo-op.
18363         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
18364         64-bit mode.
18365         (TEXT_SECTION_ASM_OP): Likewise.
18366         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
18367         32-bit offsets.
18368
18369         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
18370         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
18371         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
18372         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
18373         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
18374
18375 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
18376
18377         * regclass.c: Revert my Jan 4 change to loop cost computation.
18378
18379 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18380
18381         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
18382         compilation.
18383
18384 2000-01-04  Stan Cox  <scox@cygnus.com>
18385
18386         * haifa-sched.c (build_control_flow): Change unreachable simple
18387         loop test to check if current block has only one predecessor.
18388         (find_rgns): Initialize degree.  Use dest as degree index, not src.
18389
18390 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18391
18392         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
18393
18394         * calls.c (expand_call): Likewise for
18395         `old_stack_arg_under_construction'.
18396
18397         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
18398
18399         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
18400         `save_constant'.
18401
18402         * gcc.c (execute): Likewise for `ut' and `st'.
18403
18404         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
18405
18406         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
18407
18408         * jump.c (jump_optimize_1): Likewise for `temp2'.
18409
18410         * local-alloc.c (block_alloc): Likewise for `r1'.
18411
18412         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
18413
18414         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
18415         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
18416
18417         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
18418         and `set2'.
18419
18420         * reload.c (find_reloads): Likewise for `goal_alternative_number'
18421         and `goal_earlyclobber'.
18422
18423         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
18424
18425         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
18426
18427         * stupid.c (stupid_life_analysis): Likewise for `chain'.
18428
18429         * unroll.c (copy_loop_body): Likewise for `copy'.
18430
18431         * varasm.c (output_constructor): Likewise for `byte'.
18432
18433 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18434
18435         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
18436         all FP constants for constant->reg moves.
18437         (ix86_split_to_parts): Try to convert memory address into immediate
18438         when available in the constant pool.
18439         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
18440         moves.
18441         (LEGITIMATE_CONSTANT_P): Return 1.
18442         * i386.md (pushsf): New splitter to convert constant pool memory
18443         reference to immediate.
18444         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
18445         reload.
18446
18447 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
18448
18449         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
18450         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
18451         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
18452         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
18453         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
18454
18455 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
18456
18457         * ginclude/stdbool.h:  Support compilation as C++.
18458
18459 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
18460
18461         * fold-const.c (make_range): Don't try to reverse an unbounded range.
18462
18463 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
18464
18465         * regclass.c (regclass): Properly compute loop_cost.  Adjust
18466         comments.
18467
18468         * regclass.c: Fix minor whitespace problems.
18469
18470 2000-01-03  Anthony Green  <green@cygnus.com>
18471
18472         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
18473         Restore the pic register if required.
18474
18475 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18476
18477         * c-common.c (format_char_info): Update comment.
18478         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18479         was recognized.  Emit warning for formats new in ISO C99 only
18480         if flag_isoc9x is not set.
18481
18482 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18483
18484         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18485
18486 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18487
18488         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18489         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18490         (make_compound_operation): Choose cheaper alternative between
18491         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18492
18493         * regclass.c (op_costs): Remove global variable.
18494         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18495         (record_operand_costs): Break out from ...
18496         (scan_one_insn): ... here.
18497         (dump_regclass): Make dumps nicer.
18498         (regclass): Dump preferrences choosed and changes done during passes.
18499
18500 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18501
18502         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18503
18504 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18505
18506         * config/sparc/sparc.c (gen_df_reg): New function.
18507         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18508         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18509         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18510         movtf_cc_reg_sp64+1): Use it.
18511
18512 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18513
18514         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18515         copied LABEL_DECLs.
18516
18517 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18518
18519         * config/i386/i386.c (ix86_expand_unary_operator): Function
18520         definition made void.
18521         (ix86_expand_binary_operator): Update outdated preceding comment.
18522         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18523         prototype.
18524
18525         * config/i386/i386.c (override_options): Fix option-name typo.
18526
18527 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18528
18529         * system.h (CEIL): Define.
18530         * builtins.c (CEIL): Remove.
18531         * expmed.c (CEIL): Likewise.
18532         * expr.c (CEIL): Likewise.
18533         * stor-layout.c (CEIL): Likewise.
18534
18535 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18536
18537         * expr.c (store_constructor_field): Fix typo introduced with last
18538         gcc2 merge.
18539
18540 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18541
18542         * tree.h (BINFO_N_BASETYPES): New macro.
18543
18544 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18545
18546         * expmed.c (emit_store_flag): Prevent losing a pending stack
18547         adjust the same way we prevent losing queued increments.
18548
18549 See ChangeLog.2 for earlier changes.