OSDN Git Service

* config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
2
3         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
4         in 64-bit mode.
5         * glimits.h: Don't do #if defined for ARCH_PPC.
6
7         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
8         constants of size no larger than a pointer should go in the TOC.
9         Add 'MODE' parameter.
10         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
11         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
12         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
13         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
14         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
15         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
16         (rs6000_legitimize_address): Likewise.
17         (rs6000_emit_move): Likewise.
18         (rs6000_select_rtx_section): Likewise.
19         (output_toc): Deal properly with outputting small constants like
20         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
21         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
22         MODE parameter.  Put small constants in the TOC.
23         
24         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
25         easy in SImode.
26         (rs6000_emit_move): When reload calls us with an illegitimate
27         address, exit early.  Move the change_address calls to one place
28         at the end of the routine.  Merge the SImode and DImode expanders.
29         When called by reload to put an integer into a FP register, force
30         it to memory.
31
32         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
33         field.
34         (rs6000_hash_constant): Hash mode too.
35         (toc_hash_function): Allow for key_mode.
36         (toc_hash_eq): Structures are different if key_mode differs.
37         (output_toc): Add 'mode' parameter.  Save key_mode.
38         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
39         Pass 'mode' parameter.
40         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
41
42         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
43         for vtable references.
44
45         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
46         choice, don't put integer values in FP regs.
47
48 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
49
50         * flow.c (verify_flow_info): Revamp code to verify that the
51         head and end of each basic block are in the insn chain.
52
53 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
54
55         * gcse.c (record_one_set): Prepend instead of append onto
56         reg_set_table, making it O(n) instead O(n^2).
57         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
58         Use a queue instead of a stack as worklist.
59
60 2000-07-20  Kazu Hirata  <kazu@hxi.com>
61
62         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
63         * h8300.h (OK_FOR_T): New.
64         (EXTRA_CONSTRAINT): Support OK_FOR_T.
65         * h8300.md: Use inc/dec.[wl] for increment/decrement
66         by 1 and 2 in HI and SI modes.
67
68 2000-07-20  Jim Wilson  <wilson@cygnus.com>
69
70         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
71         larger than 14 bits.
72
73 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
74
75         * cppmacro.c (CAN_PASTE_AFTER): New macro.
76         (count_params): Don't set GNU_REST_ARGS on anything.
77         (save_expansion): Set PASTE_LEFT only on tokens for which
78         CAN_PASTE_AFTER is true, or which are named operators.
79
80         * cpplex.c (parse_args): Distinguish between a rest argument
81         given one empty argument, and a rest argument given zero arguments.
82         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
83         deletion of previous token based on that.
84         (get_raw_token): Flatten some control structure.
85
86         * cpplib.h (CPP_LAST_EQ): Correct.
87         (VOID_REST): New token flag.
88         (GNU_REST_ARGS): Delete.
89
90         * tradcpp.c (main): Don't munge -D options.
91         (make_definition): Bring -D handling in line with cpplib.
92         (do_define): Strip all leading whitespace from macro definitions.
93
94 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
95
96         * Makefile.in (tradcpp): Depend on intl.o and version.o.
97
98 2000-07-20  Bruce Korb  <bkorb@gnu.org>
99
100         * fixincl/check.tpl: strip the platform specific types before testing
101         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
102         * fixincl/fixincl.tpl: use platform specific types
103         * fixincl/fixlib.h: include the platform specific types
104         * fixincl/inclhack.def(gnu_types): don't supply the types
105         * fixincl/fixincl.x: regen
106
107 2000-07-19  Jim Wilson  <wilson@cygnus.com>
108
109         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
110         GR_REGS.
111
112 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
113
114         * tradcpp.c (rescan): Do not recognize directives when the #
115         is indented.
116
117 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
118
119         Implement C++ named operators.
120
121         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
122         of operators allowed in #if and having an _EQ variant.  Add
123         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
124         (cpp_token flags): Add NAMED_OP.
125         (enum node_type): Add T_OPERATOR.
126         (struct cpp_hashnode): Add code slot to value union.
127         * cpphash.h (spec_nodes): Remove n_defined.
128
129         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
130         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
131         (is_macro_disabled): Tweak error messages.
132
133         * cpplib.c (get_define_node): Disallow all named operators as
134         macro names.  Tweak error messages.
135         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
136
137         * cppinit.c (builtin_array): Add entries for the named operators.
138         * cppexp.c (lex): Check for CPP_DEFINED token.
139         (priority table): Add entries for CPP_MIN and CPP_MAX.
140         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
141
142 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
143
144         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
145         larger than the array of cuids.
146         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
147         cuids.
148
149 2000-07-19  Bruce Korb  <bkorb@gnu.org>
150
151         * fixinc/fixincl.c:  Convert to using a table of environment variables
152         and activate the auto-edit marker on the fixed output files.
153         * fixinc/fixlib.h:  Define the environment table
154         * fixinc/fixincl.sh: export the ${INPUT} dir
155         * fixinc/check.tpl: likewise
156
157 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
158
159         * gcc.c (.h spec): Fix typo.
160
161 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
162
163         * Makefile.in: Fix tradcif.c path.
164
165 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
166
167         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
168           macros, not five.
169
170         * cpphash.h (TOKEN_NAME): New macro.
171         (_cpp_spell_operator): Deleted.
172         (token_spellings): Now _cpp_token_spellings.
173
174         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
175         * cpplex.c: Use OP and TK macros when expanding the
176         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
177         store the stringification of the enumeration name (CPP_CHAR,
178         etc.) in the name slot of token_spellings.
179         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
180         token_spellings directly.
181         * cpplib.c: Use TOKEN_SPELL.
182
183         * cpplex.c (_cpp_push_token): If the token being pushed back
184         is the previous token in this context, just subtract one from
185         context->posn.
186         * cppmacro.c (save_expansion): Clear aux field when storing a
187         placemarker.
188
189 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
190
191         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
192         buffer, provided it is not NULL.
193
194 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
195
196         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
197         case of invalid volatile re-declaration.
198
199 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
200
201         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
202         (expand_call): Adjust caller.
203
204 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
205
206         * diagnostic.h (report_diagnostic): Change prototype.
207
208         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
209         diagnostic_for_decl):  Change prototype.
210         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
211         error, warning, error_with_file_and_line,
212         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
213         Adjust call to report_diagnostic, diagnostic_for_decl.
214         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
215         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
216
217         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
218         varaible argument list.
219
220 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
221
222         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
223         moved to cppmacro.c.
224         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
225         dump_hash_helper): Delete.
226         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
227         cpp_forall_identifiers): New. Implement specialized version of
228         Vlad's expandable hash table.
229         (cpp_lookup): Use new functions.
230         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
231         implementation.
232         * cppmacro.c: New file.
233         * cppinit.c (dump_macros_helper): New.
234         (cpp_finish): Iterate over the identifier table directly.
235         * cpplex.c (parse_name): Calculate the hash of the identifier
236         while we scan it.  Use _cpp_lookup_with_hash when we can.
237
238         * cpphash.h: Update prototypes.
239         (xcnewvec, HASHSTEP): New helper macros.
240         * cpplib.h: Update prototypes.
241         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
242         (cppmacro.o): New rule.
243         (cpphash.o): Update deps.
244
245         * cppmain.c: Do not set pfile->printer if no_output is on.
246
247 2000-07-15  Neil Booth  <neilb@earthling.net>
248
249         * cpplib.c: Change all directive-handler functions to return
250         void, not int.
251         * cpphash.h: Update typedefs.
252
253 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
254
255         * configure: Regenerate.
256
257         * extend.texi (Extended Asm): Mention that a memory clobber
258         does not count as a side-effect.
259
260         * unroll.c (copy_loop_body): Fix one instance of using host
261         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
262         cross-compile.
263
264         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
265
266 2000-07-17  Richard Henderson  <rth@cygnus.com>
267
268         * config/ia64/ia64.md (movdi): Split out load address code.
269         New post-reload splitter for symbolic operands.
270         (movdi_internal): Abort if we didn't split symbolic operands
271         when we should have.
272         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
273         (ia64_reorg): Split insns when not optimizing.
274         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
275
276 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
277
278         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
279         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
280
281 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
282
283         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
284
285 2000-07-17  Jason Merrill  <jason@redhat.com>
286
287         * Makefile.in (clean): Remove libgcc directory.
288
289         * configure.in (-Wno-long-long check): Use higher-level macros.
290
291 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
292
293         * simplify-rtx.c (simplify_binary_operation): Recognize
294            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
295         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
296            a CONST_INT, it will always be zero.
297
298 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
299
300         * loop.c (check_dbra_loop) : Return if more than one condition is
301         present to control the loop.
302
303 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
304
305         * mips.c (mips_expand_prologue): Don't calculate the last argument
306         register unless we need it.  When we are calculating this, make
307         sure FUNCTION_ARG is giving us a REG.
308
309 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
310
311         * flow.c (libcall_dead_p): Use single_set to verify the insn
312         has only one set and get for analysis.
313         (propagate_one_insn): Don't pass the PATTERN of the insn.
314
315 2000-07-17  Mark Klein <mklein@dis.com>
316
317          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
318
319 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
320
321         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
322         * configure.in (TARGET_GETGROUPS_T): Evaluate.
323         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
324         of second argument of getgroups.
325         * configure, config.in: Rebuilt.
326
327 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
328
329         * simplify-rtx.c (simplify_relational_operation): Two signed
330         values with equal high words are less/greater than each other if
331         their low words are less/greater when considered as unsigned.
332
333 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
334
335         * configure.in (vax-*-openbsd):  Change to new style configuration,
336         add collect2/float_format information.
337         * configure:  Rebuilt.
338         * config/vax/openbsd1.h:  New.
339         * config/vax/openbsd.h:  New.
340         * config/vax/t-openbsd:  New.
341
342 2000-07-17  Chip Salzenberg  <chip@valinux.com>
343
344         * c-common.c (shorten_compare): Quiet warnings about unsigned
345         comparisons with zero when they occur in a system header.
346
347 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
348
349         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
350         update to describe current practice.
351
352         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
353
354         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
355         references to C9X.  Change references to -fstd and -flang-isoc9x
356         to refer to -std.
357
358         * c-common.c (scan_char_table): Allow "z" length modifiers on
359         diouxXn formats.
360         (check_format_info): Use TYPE_DOMAIN on the type matched against
361         for "z" formats, to retrieve the language size_t rather than the
362         internal one.
363
364         * c-common.c (check_format_info): Do not make a pedantic objection
365         to the 'L' length modifier if used with a floating point type
366         character.
367
368         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
369         constants in C99 mode.
370
371 2000-07-17  Kazu Hirata  <kazu@hxi.com>
372
373         * h8300.md: Fix the format of mac.
374         (movsi_h8300hs): Output a tab after stmac instead of a space.
375
376         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
377         profitable adds/subs sequences.
378
379         * fold-const.c: Fix comment typos.
380
381 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
382
383         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
384
385 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
386
387         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
388
389 2000-07-16  Neil Booth  <NeilB@earthling.net>
390
391         * cpplex.c: Update comments.
392         * README.Portability: Small update.
393
394 2000-07-16  Neil Booth  <NeilB@earthling.net>
395
396         * README.Portability:  Small update.
397
398 2000-07-15  Richard Henderson  <rth@cygnus.com>
399
400         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
401         * config/ia64/ia64.c (ia64_move_ok): New function.
402         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
403         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
404
405 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
406
407         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
408         immediately following a paste operator.
409         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
410         (cpp_reader_init): Call it, if HOST_EBCDIC.
411         (cpp_handle_options): Do not sort option list here.
412         (handle_option): Rename to cpp_handle_option and export.
413         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
414         _cpp_get_token directly.
415         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
416         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
417         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
418         cpp_scan_line.
419
420 2000-07-15  Richard Henderson  <rth@cygnus.com>
421
422         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
423         cast around an expression.  Tidy other unsigned tests.
424
425 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
426
427         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
428         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
429         (v_message_with_decl): Rename to ...
430         (format_with_decl): ... this. Tweak
431         (diagnostic_for_decl): New function.
432         (fatal_io_error): Use verbatim in lieu of notice.
433         (announce_function): Use verbatim.
434         (default_print_error_function): Likewise.
435         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
436         infratructure.
437
438 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
439
440         * mips.c (function_arg_pass_by_reference): Don't do automatic
441         aggregate initialization.
442         (machine_dependent_reorg): Initialize variable `mode'.
443
444         * mips.md (absdi2): Change variable `regno1' to unsigned int.
445         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
446         conflicts with sys/param.h macro of the same name.
447         (reload_outdi): Likewise.
448
449 2000-07-15  Michael Meissner  <meissner@redhat.com>
450
451         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
452         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
453         create a new node instead.
454
455 2000-07-15  Neil Booth  <NeilB@earthling.net>
456
457         * README.Portability: Correct example about calling a function
458         through a pointer to function.  Format wide paragraphs.
459
460 2000-07-15  Michael Meissner  <meissner@redhat.com>
461
462         * README.Portability: Update integer suffixes and function
463         prototype sections.
464
465 2000-07-15  Neil Booth  <NeilB@earthling.net>
466
467         * README.Portability: Small update.
468
469 2000-07-15  Neil Booth  <NeilB@earthling.net>
470
471         * README.Portability: New file.
472
473 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
474
475         * INSTALL: Give special instructions for building GCC on Irix 6.
476         * config/mips/x-iris6 (CC): Don't set it.
477         (OLDCC): Likewise.
478
479 2000-07-14  Jason Merrill  <jason@redhat.com>
480
481         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
482         register in the stack and later in another register, use the new
483         register.
484
485 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
486
487         * config/mips/mips.md: (absdi2): Handle sign_extend for
488         second operand.
489
490 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
491
492         * cpplib.c (do_pragma_dependency): Tidy warning messages.
493
494 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
495
496         * .cvsignore: Correct typo.
497
498 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
499
500         * .cvsignore: Add generated YACC files.
501         * objc/.cvsignore: New file.
502
503 2000-07-14  Neil Booth  <NeilB@earthling.net>
504
505         * cpplex.c (adjust_column): New funcion.
506         (skip_whitespace): Use it.
507         (skip_block_comment): Use it, and warn about /*/* with
508         -Wcomments.
509
510 2000-07-14  Neil Booth  <NeilB@earthling.net>
511
512         * cpphash.c (struct macro_info): Add new members.
513         (_cpp_free_definition): Delete the macro directly.
514         (count_params): Return void, with first token of
515         expansion in struct macro_info on success.
516         (parse_define): Return int.  Hoist syntax checking from
517         save_macro_expansion.  Leave call to save_expansion to
518         _cpp_create_definition.
519         (alloc_macro): Needs just 2 arguments.
520         (free_macro): Delete.
521         (save_expansion): Don't perform syntax check.
522         (_cpp_create_definition): Call save_expansion.
523
524 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
525
526         * genrecog.c (write_header): Split long string.
527
528         * cpphash.c (macro_info): Don't use the `signed' keyword.
529
530         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
531
532 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
533
534         * calls.c (stored_args_map): New variable.
535         (check_sibcall_argument_overlap_1): New.
536         (check_sibcall_argument_overlap): New.
537         (expand_call): Initialize stored_args_map.
538         Call check_sibcall_argument_overlap.
539
540 2000-07-13  Bruce Korb  <bkorb@gnu.org>
541
542         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
543         (emit_gnu_type): utility procedure for gnu_type_fix
544         (gnu_type_fix): implement various pre-processor guards around
545         standard types so these types can be defined over and over
546         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
547         types alluded to above will have GNU-compliant base types
548         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
549         * fixinc/inclhack.def: add test_text entries and utilize the new
550         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
551         * fixinc/fixincl.x: regenerate
552
553 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
554
555         * diagnostic.c (vline_wrapper_message_with_location,
556         v_message_with_file_and_line, v_error_with_file_and_file,
557         v_error_for_asm, v_warning_for_asm, vfatal,
558         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
559         vsorry, verror, vwarning, vpedwarn): Remove.
560         (diagnostic_for_asm): New function.
561         (pedwarn, error, warning, pedwarn_with_file_and_line,
562         error_with_file_and_line, warning_with_file_and_line, sorry,
563         error_for_asm, warning_for_asm, fatal): Reimplement.
564         (finish_diagnostic): Clear diagnostic info as well.
565
566 2000-07-13  Neil Booth  <NeilB@earthling.net>
567
568         * c-common.h (flag_digraphs): New.
569         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
570         * c-lex.c (yylex): Use flag_digraphs to decide whether to
571         honour digraphs.
572
573 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
574
575         * gcc.c (do_spec_1): Add new %B operator.
576         (set_input): Prepare for %B.
577
578         (link_command_spec): Move up with the other tm.h-
579         overrideable specs.  Factor out the portion conditional on
580         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
581         (struct compiler): Just have a single spec string.  All users
582         updated.
583         (default_compilers): Remove unnecessary braces.
584         (static_specs): Update.
585
586         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
587         named specs.
588         (C and assembly specs): Use the new named specs, as appropriate.
589
590         * objc/lang-specs.h: Use the new named specs.
591         Remove unnecessary braces.
592
593 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
594
595         * gcc.c (execute): If a subprocess gets a fatal signal, report
596         strsignal() of the signal number, and ask for a bug report.
597         Do not do this for SIGPIPE if there's already been an error.
598
599         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
600         Delete pipe_closed.
601
602         * tradcif.c: Remove.
603
604 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
605
606         * final.c (profile_function): Do not emit profile counters in
607         the data section, if NO_PROFILE_COUNTERS is defined.
608         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
609         FUNCTION_PROFILER.
610
611         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
612         (FUNCTION_PROFILER): Just emit a call to mcount.
613
614 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
615
616         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
617
618         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
619         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
620         traditional, lang_chill, or lang_fortran.
621
622         * cppfiles.c: #undef strcmp to suppress warning about macros
623         used without arguments.
624         (_cpp_execute_include): Use f, not fname, in "No include path"
625         error.
626         (_cpp_pop_file_buffer): New function.
627         * cpplib.c: Don't include <sys/mman.h>.
628         (cpp_push_buffer): Set line_base and lineno in new buffer.
629         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
630
631         * cpplex.c: Move all prototypes and structure declarations to the
632         top of the file.  Properly parenthesise some macro arguments.
633         (cpp_scan_line): New function.
634         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
635         don't need to walk up the stack counting.
636
637 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
638
639         * c-common.c (combine_strings): Emit a pedantic warning when a
640         string length is greater than the minimum ANSI C is required
641         to support.
642
643 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
644
645         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
646         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
647
648 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
649
650         * c-decl.c (define_label): Warn about identifier conflicts with
651         labels in traditional C.
652
653         * c-parse.in (unop +): Warn about the unary plus operator for
654         traditional C.
655
656         * c-typeck.c (store_init_value): Warn about automatic aggregate
657         initialization for traditional C.
658
659         * invoke.texi (-Wtraditional): Document new warnings.
660
661 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
662
663         * Makefile.in (c-errors.o): Fix thinko in dependency.
664
665 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
666
667         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
668         -traditional, -ftraditional, or -traditional-cpp was given.
669         Do not pass -traditional to the preprocessor.
670         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
671         preprocessor does it automatically.
672         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
673
674         * ch/lang-specs.h: Always use tradcpp.  Do not pass
675         -traditional, -trigraphs, or -pedantic to the preprocessor.
676         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
677         _LANGUAGE_FORTRAN.
678
679 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
680
681         * cppexp.c (LOGICAL): Delete macro.
682         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
683         and && directly.
684
685         * cpphash.c (HASHSIZE): Increase to 4096.
686         (struct hashdummy): Add hash field.
687         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
688         the string values using memcmp.
689         (cpp_lookup): Set dummy.hash.
690
691 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
692
693         * configure.in (m88k-openbsd): Express configuration using new fragment
694         style.
695         * configure: Rebuilt.
696         * m88k/aout-dbx.h: New.
697         * m88k/openbsd.h: New.
698         * m88k/xm-openbsd.h: New.
699
700 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
701
702         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
703
704 2000-07-12  Richard Henderson  <rth@cygnus.com>
705
706         * reload.c (push_secondary_reload): Make sure to add the new
707         reload at the end, after acquiring secondary memory.
708
709 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
710
711         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
712
713         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
714         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
715
716         * c-parse.in (stmt): Delete unused variables.
717
718         * convert.c (convert_to_vector): Likewise.
719
720         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
721
722         * tree.c (finish_vector_type): Prototype.
723
724 2000-07-12  Bruce Korb  <bkorb@gnu.org>
725
726         * fixinc/fixfixes.c: use xmalloc
727         * fixinc/fixincl.c(initialize): set program name for xmalloc
728         * fixinc/fixlib.c(must_malloc): obsolete
729         (is_cxx_header): no longer used - disabled
730         (skip_quote): inserted and disabled for future use
731         * fixinc/fixlib.h: reflects above
732         * fixinc/fixtests.c: removed dinkleberries
733
734 2000-07-12  Neil Booth  <NeilB@earthling.net>
735
736         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
737         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
738
739         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
740         struct toklist_dummy): New.
741         (cpp_free_definition): Free macros with free_macro.
742         (count_params): Don't save paramter spellings.  Save macro
743         information in a struct macro_info.
744         (parse_define): Don't allocate a token list.
745         (save_expansion): Allocate the macro's token list, and
746         save parameter spellings if necessary.  Use TOKEN_SPELL.
747         (cpp_create_definition): Make list const.
748
749 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
750
751         * c-typeck.c (pedwarn_c99): Move to
752         * c-errors.c: ... Here.
753         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
754         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
755         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
756         (c-errors.o): List dependency.
757
758 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
759
760         * c-parse.c: Remove.
761         * c-parse.h: Likewise.
762         * c-parse.y: Likewise.
763         * objc/objc-parse.c: Likewise.
764         * objc/objc-pasre.y: Likewise.
765
766 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
767
768         * gcc.texi: Fix minor typos
769         * extend.texi: Fix minor typos
770
771 2000-07-11  Marc Espie <espie@openbsd.org>
772
773         * collect2.c (main): Recognize .lo as object files.
774
775 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
776
777         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
778         true.
779
780         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
781         with MAP_ANONYMOUS and MAP_ANON.
782         * configure, config.in: Rebuilt.
783
784 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
785
786         * diagnostic.c (save_output_state): Remove.
787         (restore_output_state): Likewise.
788         (clear_text_info): New function.
789         (clear_diagnostic_info): Likewise.
790         (output_text_length, is_starting_newline, output_prefix,
791         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
792         prefixing_policy, output_buffer_ptr_to_format_args): New macros
793         (set_real_maximum_length, output_set_maximum_length,
794         output_set_prefix, output_get_prefix, output_set_maximum_length,
795         output_destroy_prefix, init_output_buffer,
796         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
797         output_add_newline, output_add_character, output_add_space,
798         output_append_r, output_append, wrap_text, output_format,
799         output_do_printf, output_printf, output_do_verbatim,
800         output_verbatim, verbatim): Use them.
801         (output_clear): Split into cleat_text_info and
802         clear_diagnostic_info.
803         (struct output_state): Move to...
804
805         * diagnostic.h: ...Here
806         (struct output_buffer): Adjust.
807
808 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
809
810         * cpplex.c (parse_name): No longer inline (premature optimization).
811         (do_pop_context): Fold into pop_context.
812         (pop_context): Returns int.
813         (lex_next): Hoist test for end of directive into pop_context.
814         (push_macro_context): Returns int; takes just reader and token.
815         Hoist test for excessive nesting to caller.
816         (push_arg_context): Returns void; takes just reader and token.
817         Do not call stringify_arg or get_raw_token.
818         (get_raw_token): Convert tail recursion through push_arg_context
819         to a loop at this level.  Call stringify_arg here if appropriate.
820         (maybe_paste_with_next): Convert tail recursion to a while loop.
821         Hoist test of paste_level to caller.
822
823         (stringify_arg): Push arg context at beginning.
824         (cpp_get_token): Split out core into _cpp_get_token.  Call
825         process_directive here.  Throw away CPP_PLACEMARKER tokens.
826         (_cpp_get_token): Convert tail recursion through
827         push_macro_context to a loop at this level.
828         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
829         _cpp_get_raw_token): Use _cpp_get_token.
830         (_cpp_skip_rest_of_line): Drop the context stack directly; do
831         not call pop_context.
832         (_cpp_run_directive): Call lex_next directly.
833
834         * cpphash.h: Prototype _cpp_get_token.
835         * cppexp.c (lex): Use it.
836         * cpphash.c (parse_define): Use it.
837         * cpplib.c (get_define_node, do_undef, parse_include,
838         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
839         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
840         parse_ifdef, validate_else): Use it.
841         (cpp_push_buffer): Tweak error message; abort if anyone tries
842         to push a buffer while macro expansions are stacked.
843
844 2000-07-11  Donn Terry  <donnte@microsoft.com>
845
846         * cpplex.c (free_macro_args, save_token): Cast arg of free
847         and/or xrealloc to PTR.
848         (_cpp_init_input_buffer): Clear all fields of the base context.
849
850 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
851
852         * gensupport.c (process_rtx): Make rtl checking stop
853         complaining about the define_insn while it is being
854         converted from a define_insn_and_split.
855
856 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
857
858         * config/mips/mips.c (simple_memory_operand): Access the
859         INTVAL of the address, not it's containing MEM.
860
861 2000-07-11  Bruce Korb  <bkorb@gnu.org>
862
863         * fixinc/fixtests.c(double_slash): obsolete
864         (else_endif_label): likewise
865         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
866         (libc1_ifdefd_memx): correct initial comment
867         and omit the #if/#endif pair from the memxxx declarations
868         * fixinc/fixincl.x: regen
869
870 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
871
872         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
873
874 2000-07-11  Neil Booth  <NeilB@earthling.net>
875
876         * cpp.texi: Update.
877
878 2000-07-11  Neil Booth  <NeilB@earthling.net>
879
880         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
881         (handle_option): Set digraphs according to standard.
882         Merge OPT_lang_c89 handler with OPT_std_c89.
883
884         * cpplex.c: (lex_line, can_paste): Honour digraphs in
885         accordance with the digraphs flag.
886
887         * cpplib.h: (struct cpp_options): New option digraphs.
888
889 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
890             Bruce Korb  <bkorb@gnu.org>
891
892         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
893         * fixinc/fixincl.x: Regenerate.
894         * fixinc/tests/base/testing.h: Add testcase.
895
896 2000-07-10  Richard Henderson  <rth@cygnus.com>
897
898         * config/ia64/ia64.c (got_symbolic_operand): New.
899         (symbolic_operand, move_operand): Revert 0701 change.
900         * config/ia64/ia64.h (PREDICATE_CODES): Update.
901         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
902         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
903         split the offset into a 14-bit low part instead of a 13-bit low part.
904         (load_fptr): Mark the mem as unchanging.
905         (load_symptr): Use got_symbolic_operand.
906
907 2000-07-10  Nick Clifton  <nickc@cygnus.com>
908
909         * libgcc2.c (next_stack_level): Cast result of computation to
910         (void **) so that the assignment does not generate a warning.
911
912 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
913
914         * flags.h : Add new variable flag_single_precision_constant.
915         * toplev.c (display_help) : Add -fsingle-precision-constant option.
916         (flag_single_precision_constant): New.
917         * c-lex.c (yylex): Convert floating point constant to single
918         precision constant.
919         * invoke.texi : Add documentation for this new option.
920
921 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
922
923         * diagnostic.c (output_octal): Second parameter is unsigned.
924         (output_long_octal): Likewise.
925         (output_hexadecimal): Likewise.
926         (output_long_hexadecimal): Likewise.
927         (output_format): Adjust arguments extraction. Tweak.
928         (output_verbatim, verbatim): End variable argument list.
929         (report_diagnostic): Improve documentation.
930
931 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
932
933         * c-common.h (build_stmt): Declare.
934         (build_continue_stmt): Likewise.
935         (build_break_stmt): Likewise.
936         (build_return_stmt): Likewise.
937
938         * c-decl.c (do_case): Rewrite to do what previously done in
939         c-parse.in.
940
941         * c-semantics.c (build_stmt): Define.
942         (build_return_stmt): Likewise.
943         (build_break_stmt): Likewise.
944         (build_continue_stmt): Likewise.
945         (build_case_label): Likewise.
946
947         * c-parse.in (BREAK): Change to build tree, then generate RTL.
948         (CONTINUE): Likewise.
949         (RETURN): Likewise.
950         (CASE): Likewise.
951         (DEFAULT): Likewise.
952
953         * c-parse.y: Regenerate.
954         * c-pasre.c: Likewise.
955
956 2000-07-09  Jason Merrill  <jason@redhat.com>
957
958         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
959
960         * tree.h (STRIP_NOPS): Check for error_mark_node.
961         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
962         (dwarf2out_*): Remove duplicate declarations.
963
964         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
965         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
966
967 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
968
969         * diagnostic.c (wrap_text): New function.
970         (maybe_wrap_text): Likewise.
971         (output_add_string): Use it.
972         (output_format): Likewise.
973         (count_error): Use verbatim instead of notice.
974         (report_error_function): Likewise. Don't use plain fprintf.
975         (finish_diagnostic): New function.
976         (output_do_verbatim): Tweak.  Commonalize functionalities in
977         output_verbatim and verbatim.
978         (output_verbatim): Adjust.
979         (verbatim): Likewise.
980         (report_diagnostic): Define.
981
982         * diagnostic.h (report_diagnostic): Prototype.
983
984 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
985
986         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
987
988 2000-07-09  Neil Booth  <NeilB@earthling.net>
989
990         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
991         IShspace, ISspace: Update.
992
993         * cppinit.c: ISTABLE: Update.
994         V: New.
995
996         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
997         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
998         (skip_block_comment, skip_line_comment, parse_string,
999         lex_line): Use is_vspace rather than IS_NEWLINE.
1000         (skip_whitespace, lex_line): Clean up to use is_nvspace.
1001         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
1002         gets a BOL flag.
1003         (lex_next): Unconditionally stop if within a directive.
1004         Treat directives within macro invocations as directives
1005         (after parse_args emits error), not as the argument.
1006
1007 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
1008
1009         * diagnostic.c (diagnostic_args): New macro.
1010         (diagnostic_msg): Likewise.
1011         (output_formatted_integer): Likewise.
1012         (output_state): New data type.
1013         (digit_buffer): Make global.
1014         (output_add_integer): Rename to output_decimal. Squeeze
1015         digit_buffer.
1016         (output_long_decimal, output_unsigned_decimal,
1017         output_long_unsigned_decimal, output_octal, output_long_octal,
1018         output_hexadecimal, output_long_hexadecimal): New functions.
1019         (output_append_r): New function.
1020         (output_append): Tweak.
1021         (output_flush_on): Rename to output_to_stream.
1022         (output_format): Change prototype.  Improve documentation. Handle
1023         more format specifiers.
1024         (build_location_prefix): Rename to context_as_prefix.
1025         (output_notice): Rename to output_do_printf.
1026         (output_printf): Tweak.
1027         (line_wrapper_printf): Likewise.
1028         (vline_wrapper_message_with_location): Adjust call to renamed
1029         functions.
1030         (v_message_with_decl): Likewise.
1031         (default_print_error_function): Likewise.
1032         (save_output_state): New function.
1033         (restore_output_state): Likewise.
1034         (output_do_verbatim): Likewise.
1035         (output_verbatim): Define.
1036         (verbatim): Likewise.
1037
1038         * diagnostic.h (printer_fn): Change return type from void to int.
1039         Improve documentation.
1040         (output_add_integer): Rename to output_decimal.
1041         (output_flush_on, output_format): Don't export.
1042         (output_verbatim, verbatim): Declare.
1043
1044 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
1045
1046         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
1047         Check whether c divides op1 exactly if operation is not
1048         multiplication.
1049
1050 2000-07-08  Richard Henderson  <rth@cygnus.com>
1051
1052         * final.c (final): Do not abort when reg-stack introduces
1053         a new insn.
1054
1055 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
1056
1057         * cpplib.h (struct cpp_name): Now struct cpp_string.
1058         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
1059         CPP_HEADER_NAME): Change to type S.
1060         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
1061         field, a cpp_hashnode *.  All references to val.name updated
1062         to use val.str or val.node as appropriate.
1063         (struct cpp_reader): Add spec_nodes field.
1064         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
1065
1066         * cpphash.h (struct spec_nodes): New.
1067         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
1068         val.str.  All references to 'spelling > SPELL_NONE' updated to
1069         match.
1070
1071         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
1072         pfile->buffer->inc are not NULL before dereferencing them.
1073
1074         * cpplex.c (parse_name): Take a pointer to the current token,
1075         plus current position and limit as args; return the new
1076         position; don't copy the text of a name into the string
1077         buffer, instead call cpp_lookup and store the node pointer.
1078         If extending a token, copy out the text of the old into a
1079         scratch buffer, append the new, look that up and store the new
1080         node pointer.  Inline.
1081         (maybe_paste_with_next): If the result of paste is a NAME,
1082         then look up the pasted text and store its node pointer.
1083         (lex_line): Adjust for new parse_name interface.
1084         Check for L"str", L'str' using spec_nodes->n_L.
1085         (spell_token): SPELL_IDENT tokens have their spelling in
1086         val.node->name.  Handle SPELL_STRING tokens that don't have
1087         string delimiters.
1088         (_cpp_expand_name_space,
1089         (can_paste): Check for L ## "str" using spec_nodes->n_L.
1090         (cpp_get_token, special_symbol): No need to call cpp_lookup.
1091         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
1092         return 1=equal 0=not, not a tristate.
1093
1094         * cpphash.c (var_args_str): Delete.
1095         (find_param): Compare node fields directly.
1096         (is__va_args__): Use CPP_PEDANTIC.  Just compare
1097         token->val.node with spec_nodes->n__VA_ARGS__.
1098         (dump_funlike_macro): Don't use var_args_str.
1099
1100         * cpplib.c (_cpp_check_directive): Just walk through
1101         spec_nodes->dirs comparing pointers.
1102         (get_define_node, do_pragma_poison, detect_if_not_defined,
1103         parse_ifdef): The identifier has already been looked up.
1104         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
1105         node.
1106         (do_if): Only call detect_if_not_defined at beginning of file.
1107         (_cpp_parse_assertion): Only copy string pointers for
1108         SPELL_STRING tokens.
1109         (pragma_dispatch): Take a node pointer and examine its name
1110         field.
1111         (_cpp_init_stacks): Also initialize the spec_nodes structure.
1112
1113         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
1114         _cpp_init_macros.
1115         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
1116         reverse order from the corresponding _cpp_init_* routines.
1117
1118         * cppexp.c (parse_number, parse_charconst, parse_defined,
1119         lex): Check val.node->type instead of calling cpp_defined.
1120         Use spec_nodes entries where appropriate.
1121
1122         * fix-header.c, scan-decls.c: Update for interface changes.
1123
1124 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
1125
1126         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
1127         emitting aux_truncdfsf2.
1128
1129 2000-07-03  Donn Terry  (donnte@microsoft.com)
1130
1131         * cppinit.c (print_help): split overlong line into ISO C89
1132         maximum chunks.
1133
1134 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1135
1136         * cppexp.c: Update all code for new lexer interface.
1137         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
1138         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
1139         * cpplex.c (token_names): Trim leading CPP_ from names; make
1140         the strings unsigned.
1141         (_cpp_spell_operator): New.
1142         (is_macro_disabled): Disable all macros if rescanning
1143         preprocessed text.
1144         (_cpp_get_directive_token): Remove.
1145
1146         * cppinit.c: Don't set no_macro_expand.
1147         * cpplib.c (read_line_number, do_line): Check only for EOF,
1148         not VSPACE.
1149         * cpphash.h: Update prototypes.
1150         * cpplib.h (CPP_VSPACE): Remove.
1151         (struct cpp_reader): Remove no_macro_expand.
1152
1153 2000-07-08  Neil Booth  <NeilB@earthling.net>
1154
1155         * cpphash.c (is__va_args__): New function.
1156         (count_params): Fix line reported in error messages.  Use
1157         is__va_args__.  Don't return ')' on error.  Flag GNU style
1158         rest args macro definitions.
1159         (parse_define): Check macro name is not __VA_ARGS__.
1160         (save_expansion): Check identifier in non-varargs-macro is
1161         not __VA_ARGS__.  Don't flag GNU_VARARGS.
1162         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
1163         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
1164          than per-token GNU_VARARGS.
1165         * cpplib.h (GNU_VARARGS): Remove.
1166         (GNU_REST_ARGS): New.
1167
1168 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1169
1170         * i386.md (call_pop, call, call_value_pop): Do not set
1171         current_function_uses_pic_offset_table for calls to static
1172         functions or indirect calls.
1173
1174 2000-07-07  Jim Wilson  <wilson@cygnus.com>
1175
1176         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
1177         is_predicate_reg, then take max write_count of register pair.
1178
1179 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1180
1181         * tradcpp.c (main): Rename label `include' to `add_include' to
1182         avoid conflicts with variable `include' in traditional C.
1183
1184 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1185
1186         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
1187
1188 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
1189
1190         * sibcall.c (uses_addressof): Add INMEM argument, check for
1191         current_function_internal_arg_pointer outside of MEM rtxs in addition
1192         to ADDRESSOFs.
1193         (sequence_uses_addressof): Update caller.
1194
1195 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
1196
1197         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
1198         and friends.
1199
1200 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1201
1202         * system.h (UNION_INIT_ZERO): New macro for initializing union
1203         members in structs.
1204
1205         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
1206
1207 2000-07-07  Neil Booth  <NeilB@earthling.net>
1208
1209         * cpp.texi: Update.
1210
1211 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
1212
1213         * final.c (final): Detect out of bounds array access to
1214         the insn_lengths array.
1215
1216 2000-07-07  Kazu Hirata  <kazu@hxi.com>
1217
1218         * fold-const.c (fold): Fix a comment typo.
1219
1220 2000-07-07  Neil Booth  <NeilB@earthling.net>
1221
1222         * cpp.texi: Update to new lexer.
1223
1224 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1225
1226         * tradcpp.c: New file.
1227         * tradcif.y: New file.
1228         * tradcif.c: New generated file.
1229
1230         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
1231         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
1232         dependencies of C.  Install tradcpp from install-common, in
1233         $(libsubdir).
1234
1235 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
1236
1237         * cppinit.c: Include cppdefault.h.  Refer to
1238         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
1239         to GCC_INCLUDE_DIR and its length.
1240         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1241         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
1242         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
1243         cppdefault.h.
1244         (include_defaults_array): Move to cppdefault.c.
1245
1246         * cppdefault.h: New file.
1247         * cppdefault.c: New file.
1248
1249         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
1250         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
1251         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
1252         this file.
1253
1254 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1255
1256         * reload.c (push_reload): When seeing if can reuse a register,
1257         check extra registers against widest of INMODE and OUTMODE.
1258
1259 2000-07-06  Neil Booth  <NeilB@earthling.net>
1260
1261         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
1262         based on full length of predicate.
1263
1264 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
1265
1266         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
1267         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
1268
1269 2000-07-05  Kazu Hirata  <kazu@hxi.com>
1270
1271         * h8300-proto.h: Fix formatting.
1272         * h8300.c: Likewise.
1273         * h8300.h: Likewise.
1274
1275 2000-07-05  Jim Wilson  <wilson@cygnus.com>
1276
1277         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
1278         CCmode.
1279
1280 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
1281
1282         * invoke.texi: Fix minor typos
1283         * md.texi: Fix minor typos
1284
1285 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
1286
1287         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
1288
1289 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1290
1291         * cpplex.c: Don't include sys/mman.h.
1292         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
1293
1294         * cpplib.c: Include sys/mman.h and obstack.h.
1295         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
1296         obstack.
1297         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
1298         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
1299         bother freeing if stack entries (they will be freed with their buffer).
1300         (do_endif): Free if stack entries from the buffer obstack.
1301         (push_conditional): Allocate if stack entries from the buffer obstack.
1302
1303         (find_answer): Rename to _cpp_find_answer.
1304         (do_assert, do_unassert): Update.
1305
1306         * cpphash.h: Update prototypes.
1307         (xobnew): New convenience macro.
1308         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
1309         Update comments.
1310         (struct cpp_hashnode): Remove disabled field.
1311
1312         * cppinit.c: Don't include hashtab.h or splay-tree.h.
1313         (report_missing_guard): Moved to cppfiles.c.
1314         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
1315         cpp_init_includes.
1316         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
1317         cpp_cleanup_includes.  Don't destroy hashtab or
1318         all_include_files here.
1319         (cpp_finish): Use _cpp_report_missing_guards.
1320
1321         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
1322         (_cpp_init_include_table): Rename _cpp_init_includes.
1323         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
1324
1325         * cppexp.c (parse_assertion): Update for new name of
1326         find_answer.
1327
1328         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
1329
1330 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
1331
1332         * cpplib.c (do_ident): s/VSPACE/EOF/
1333
1334 2000-07-05  Neil Booth  <NeilB@earthling.net>
1335
1336         * cpplex.c: Fix trigraph replacement within strings.
1337
1338 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1339
1340         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
1341
1342         * xcoffout.c (assign_type_number): Constify.
1343         (xcoffout_source_file): Add static prototype.  Don't needlessly
1344         cast away const-ness.
1345
1346 2000-07-04  Jason Merrill  <jason@redhat.com>
1347
1348         * frame.h (frame_state): Move base_offset to end.
1349
1350 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1351
1352         * calls.c (emit_library_call_value_1): Revert previous change.
1353
1354 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1355
1356         * fix-header.c (struct partial_proto): Remove unnecessary fields.
1357         (recognized_extern, recognized_function, read_scan_file):
1358         Update for new scheme.
1359         (check_protection): It's still a multiple include guard even
1360         if it doesn't always trigger.
1361         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
1362         new scheme.
1363         * scan.h: Declare struct cpp_token.  Update prototypes.
1364
1365 2000-07-03  Neil Booth  <neilb@earthling.net>
1366             Zack Weinberg  <zack@wolery.cumb.org>
1367
1368         Complete overhaul of the lexer and macro expander.
1369
1370         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
1371         arg, arglist, argdata, reflist, collect_objlike_expansion,
1372         collect_funlike_expansion, collect_params,
1373         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
1374         unsafe_chars, macarg, compare_defs, special_symbol,
1375         scan_arguments, stringify, funlike_macroexpand,
1376         _cpp_quote_string, monthnames): Delete.
1377         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
1378         _cpp_create_definition, _cpp_dump_definition,
1379         dump_hash_helper): Adjust.
1380         (find_param, count_params, parse_define, var_args_str,
1381         check_macro_redefinition, save_expansion): New.
1382
1383         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
1384         parse_string, output_line_command, trigraph_replace,
1385         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
1386         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
1387         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
1388         _cpp_skip_rest_of_line): Modify.
1389
1390         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
1391         find_position, null_warning, bump_column, expand_name_space,
1392         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
1393         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
1394         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
1395         _cpp_prescan): Delete.
1396
1397         (dump_param_spelling, process_directive, lex_next,
1398         is_macro_disabled, stringify_arg, expand_context_stack,
1399         output_token, make_string_token, alloc_number_token,
1400         special_symbol, duplicate_token, maybe_paste_with_next,
1401         can_paste, prevent_macro_expansion, restore_macro_expansion,
1402         get_temp_token, release_temp_tokens, quote_string,
1403         token_names, token_spellings, _cpp_expand_name_space,
1404         _cpp_glue_header_name, _cpp_reserve_name_space,
1405         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
1406         placemarker_token, eof_token, cpp_context, macro_args,
1407         get_raw_token, parse_arg, parse_args, save_token,
1408         push_arg_context, push_macro_context, pop_context,
1409         do_pop_context, free_macro_args, _cpp_get_line,
1410         _cpp_run_directive): New.
1411
1412         * cpplib.c (validate_else, parse_include, push_conditional,
1413         pass_thru_directive, read_line_number, parse_ifdef,
1414         detect_if_not_defined, _cpp_check_directive, do_define,
1415         do_undef, do_include, do_import, do_include_next, do_error,
1416         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
1417         top_pragmas, do_pragma_gcc, do_pragma_implementation,
1418         do_pragma_poison, do_pragma_system_header,
1419         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
1420         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
1421         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
1422         cpp_defined): Update for new scheme.
1423         (strtoul_for_line, get_define_node, dump_macro_name,
1424         _cpp_check_linemarker, _cpp_parse_assertion): New.
1425         (_cpp_handle_directive, do_pragma_default): Delete.
1426
1427         * cpphash.h (struct predicate): Now struct answer.
1428         (enum spell_type, struct token_spelling, struct directive,
1429         directive_handler): New.
1430         Update prototypes.  Remove unused macros.
1431         * cpplib.h: Update prototypes.  Remove unused macros,
1432         structure definitions, and fields.
1433
1434         * cpperror.c (print_containing_files, v_message): Adjust.
1435         * cppexp.c (parse_assertion, lex, parse_escape,
1436         _cpp_parse_expr): Adjust.
1437         * cppfiles.c (open_include_file, _cpp_execute_include,
1438         _cpp_compare_file_date, cpp_read_file, read_include_file):
1439         Adjust.
1440         * cppinit.c (dump_special_to_buffer): Delete.
1441         (append_include_chain, merge_include_chains, cpp_reader_init,
1442         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1443         cpp_finish, handle_option, print_help): Adjust.
1444         * cppmain.c (main): Adjust.
1445
1446 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1447
1448         * cppspec.c (lang_specific_driver): Use double quotes in error
1449         message.
1450
1451 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1452
1453         * calls.c (emit_library_call_value_1): Use valreg instead
1454         of hard_libcall_value.
1455
1456 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1457
1458         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1459         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1460         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1461         (movhi): Likewise.
1462         (movqi): Likewise.
1463         (movdf): Likewise.
1464         (movsf): Likewise.
1465         (movdi): Likewise.
1466         (movti): Likewise.
1467
1468         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1469         mode instead of wider_mode is being used.
1470
1471 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1472
1473         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1474         of 'r'. Use q_regs_operand.
1475         (andsi_1+2): Use q_regs_operand.
1476
1477 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1478
1479         * builtins.c (get_memory_rtx): Always put into alias set 0.
1480
1481 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1482
1483         * config/arm/arm.md: Fix post increment and pre increment
1484         peepholes so that they do not generate UNPREDICATBLE opcodes.
1485         (ie ones where the increment clobbers the source/destination).
1486
1487 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1488
1489         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1490         change too big for -mtiny-stack" a warning, if larger than 63.
1491         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1492         always safe to use on possible future devices.
1493         (function_prologue): Write SPH before SPL, for consistency.
1494         If interrupt_func_p true, we know we have enabled interrupts.
1495         (avr_num_arg_regs): New function.  Round up to even number of
1496         bytes if no -mpack-args or if calling a libgcc function.
1497         (function_arg, function_arg_advance): Use it.
1498         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1499         Output "movw" if available.
1500         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1501         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1502         (asm_output_section_name): Add blanks for consistent output.
1503         (encode_section_info): Set TREE_READONLY for progmem data to
1504         avoid gas warnings about changed section attributes.
1505         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1506         even numbered registers on devices with "movw".
1507         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1508         (TARGET_SWITCHES): Mark help strings for translation.
1509         Add new -mpack-args and -menhanced switches.
1510         (TARGET_OPTIONS): Mark help strings for translation.
1511         (progmem_section): Add section attributes.
1512         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1513         Output "movw" if available.
1514         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1515         New patterns.
1516         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1517         call convention (arguments aligned on even registers).
1518         (_cleanup, _exit): Make weak symbols libc can override.
1519
1520 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1521
1522         * fp-bit.h: New file.
1523
1524         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1525         Comment #endif statements.
1526         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1527
1528 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1529
1530         * gcse.c (compute_pre_data): Compute ae_kill using other local
1531         properties instead of calling compute_ae_kill.
1532
1533         * alias.c (init_alias_analysis): Do not call
1534         prologue_epilogue_contains until after reload has completed.
1535
1536 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1537
1538         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1539         (genrtl_finish_compound_stmt): Likewise.
1540         (genrtl_compound_stmt): Change to return void.
1541
1542         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1543         move code from here to ...
1544         (genrtl_compound_stmt): ... here.
1545         (genrtl_finish_compound_stmt): Remove.
1546         (expand_stmt): Add comment.
1547
1548 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1549
1550         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1551         and VOID_TYPE_P.
1552
1553 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1554
1555         * cpplib.h (struct cpp_reader): New field include_depth.
1556         (struct cpp_printer): Rename last_bsd to last_id.
1557         * cppfiles.c (read_include_file): Bump include_depth.
1558         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1559         (output_line_command): Output correct #line if a header
1560         is including itself and is not protected against multiple inclusion.
1561         Use include_depth instead of buffer_stack_depth, last_id instead of
1562         last_bsd.
1563         * cppinit.c (cpp_start_read): Initialize last_id instead of
1564         last_bsd.
1565
1566 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1567
1568         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1569         (c-semantics.o): New target.
1570
1571         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1572         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1573         (genrtl_clear_out_block): Likewise.
1574         (genrtl_goto_stmt): Likewise.
1575         (genrtl_expr_stmt): Likewise.
1576         (genrtl_decl_stmt): Likewise.
1577         (genrtl_if_stmt): Likewise.
1578         (genrtl_while_stmt): Likewise.
1579         (genrtl_do_stmt): Likewise.
1580         (genrtl_return_stmt): Likewise.
1581         (genrtl_for_stmt): Likewise.
1582         (genrtl_break_stmt): Likewise.
1583         (genrtl_continue_stmt): Likewise.
1584         (genrtl_scope_stmt): Likewise.
1585         (genrtl_switch_stmt): Likewise.
1586         (genrtl_case_label): Likewise.
1587         (genrtl_begin_compound_stmt): Likewise.
1588         (gerntl_finish_compound_stmt): Likewise.
1589         (genrtl_compound_stmt): Likewise.
1590         (genrtl_asm_stmt): Likewise.
1591         (genrtl_decl_cleanup): Likewise.
1592         (DECL_ANON_UNION_ELEMS): Likewise.
1593         (emit_local_var): Likewise.
1594         (make_rtl_for_local_static): Likewise.
1595         (expand_cond): Likewise.
1596         (expand_stmt): Likewise.
1597         (c_expand_return): Likewise.
1598         (c_expand_start_case): Likewise.
1599         (do_case): Likewise.
1600         (COMPOUND_STMT_NO_SCOPE): Likewise.
1601         (c_expand_asm_operands): Likewise.
1602         (NEW_FOR_SCOPE_P): New macro.
1603         (expand_expr_stmt_fn): New type.
1604
1605         (set_current_function_name_declared): Likewise.
1606         (current_function_name_declared): Likewise.
1607         (lang_expand_stmt): Likewise.
1608         (stmts_are_full_exprs_p): Likewise.
1609         (anon_aggr_type_p): Likewise.
1610         (lang_expand_expr_stmt): Likewise.
1611         (build_case_label): Likewise.
1612
1613         * c-decl.c (lang_expand_expr_stmt): Initialize.
1614         (stmts_are_full_exprs_p): Define.
1615         (current_function_name_declared): Likewise.
1616         (do_case): Likewise.
1617         (lang_expand_stmt): Likewise.
1618         (set_current_function_name_declared): Likewise.
1619         (anon_aggr_type_p): Likewise.
1620
1621         * c-semantics.c: New file.
1622         (expand_cond): Moved from cp/semantics.c.
1623         (genrtl_do_pushlevel): Likewise.
1624         (genrtl_clear_out_block): Likewise.
1625         (genrtl_goto_stmt): Likewise.
1626         (genrtl_expr_stmt): Likewise.
1627         (genrtl_decl_stmt): Likewise.
1628         (genrtl_if_stmt): Likewise.
1629         (genrtl_while_stmt): Likewise.
1630         (genrtl_do_stmt): Likewise.
1631         (genrtl_return_stmt): Likewise.
1632         (genrtl_for_stmt): Likewise.
1633         (genrtl_break_stmt): Likewise.
1634         (genrtl_continue_stmt): Likewise.
1635         (genrtl_scope_stmt): Likewise.
1636         (genrtl_switch_stmt): Likewise.
1637         (genrtl_case_label): Likewise.
1638         (genrtl_begin_compound_stmt): Likewise.
1639         (genrtl_finish_compound_stmt): Likewise.
1640         (genrtl_compound_stmt): Likewise.
1641         (genrtl_asm_stmt): Likewise.
1642         (genrtl_decl_cleanup): Likewise.
1643         (make_rtl_for_local_static): Moved from cp/decl.c.
1644         (emit_local_var): Likewise.
1645         (expand_stmt): Define.
1646
1647         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1648         (c_expand_return): Likewise.
1649         (c_expand_start_case): Likewise.
1650
1651 2000-07-01  Richard Henderson  <rth@cygnus.com>
1652
1653         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1654         with the low 13 bits set.
1655         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1656         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1657         of the low 13 bits into a CONST plus an adddi3.
1658         (load_symptr): Set RTX_UNCHANGING_P.
1659
1660 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1661
1662         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1663         * c-common.c (ridpointers): Declare.
1664         * c-common.h (enum rid): Declare.
1665         (NORID): Likewise.
1666         (ridpointers): Likewise.
1667         * c-lex.c (ridpointers): Don't declare.
1668         (init_lex): Initialize ridpointers.
1669         * c-lex.h (enum rid): Don't declare.
1670         (NORID): Likewise.
1671         (RID_FIRST_MODIFIER): Likewise.
1672         (ridpointers): Likewise.
1673
1674 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1675
1676         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1677         have global scope.
1678
1679 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1680
1681         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1682         always an error.
1683
1684 2000-06-30  Catherine Moore  <clm@cygnus.com>
1685
1686         * c-common.c (decl_attributes):  Differentiate between
1687         types and type decls for alignment.
1688
1689 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1690
1691         * cpp.texi: Document #pragma GCC dependency
1692         * cppfiles.c (open_include_file): Set date to unknown.
1693         (_cpp_compare_file_date): New function.
1694         (read_include_file): Set file date.
1695         * cpphash.h (struct include_file): Add date member.
1696         (_cpp_compare_file_date): Prototype.
1697         * cpplib.c (parse_include): Add trail parameter. Adjust.
1698         (do_include): Adjust parse_include call.
1699         (do_import): Likewise.
1700         (do_include_next): Likewise.
1701         (gcc_pragmas): Add dependency pragma.
1702         (do_pragma_dependancy): New pragma.
1703
1704 2000-06-29  Jason Merrill  <jason@redhat.com>
1705
1706         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1707         no operands.
1708
1709 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1710
1711         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1712         a volatile mem and FR_REGS.
1713
1714 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1715
1716         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1717         * c-common.h (flag_const_strings): Declare.
1718         (warn_format): Likewise.
1719         (flag_traditional): Likewise.
1720         (flag_isoc99): Likewise.
1721         (warn_parentheses): Likewise.
1722         (warn_conversion): Likewise.
1723         (C_TYPE_OBJECT_P): Likewise.
1724         (C_TYPE_INCOMPLETE_P): Likewise.
1725         (C_TYPE_FUNCTION_P): Likewise.
1726         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1727         (C_EXP_ORIGINAL_CODE): Likewise.
1728         (build_unary_op): Likewise.
1729         (build_binary_op): Likewise.
1730         (lvalue_p): Likewise.
1731         (default_conversion): Likewise.
1732         (common_type): Likewise.
1733         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1734         (C_TYPE_INCOMPLETE_P): Likewise.
1735         (C_TYPE_FUNCTION_P): Likewise.
1736         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1737         (C_EXP_ORIGINAL_CODE): Likewise.
1738         (common_type): Likewise.
1739         (default_conversion): Likewise.
1740         (build_binary_op): Likewise.
1741         (build_unary_op): Likewise.
1742         (lvalue_p): Likewise.
1743         (flag_const_strings): Likewise.
1744         (warn_format): Likewise.
1745         (warn_conversion): Likewise.
1746         (flag_traditional): Likewise.
1747         (flag_isoc99): Likewise.
1748         (warn_parentheses): Likewise.
1749
1750 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1751
1752         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1753
1754         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1755         same.  Only tie XFmode with XFmode.
1756
1757 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1758
1759         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1760         * Makefile.in: Update deps.
1761
1762 2000-06-29  Andrew Haley  <aph@cygnus.com>
1763
1764         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1765         to true.
1766
1767 2000-06-29  Andrew Haley  <aph@cygnus.com>
1768
1769         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1770         bytes: remove the multiply by 8.
1771
1772 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1773
1774         * rtl.c : Revert NLS changes.
1775         * gcc.c : Fix bug in display_help introced by my last changes.
1776
1777 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1778
1779         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1780         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1781
1782 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1783
1784         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1785
1786 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1787
1788         * c-decl.c : Mark strings for translation.
1789         (parmlist_tags_warning): Use distinct messages instead
1790         of conditional expressions.
1791         * diagnostic.c (v_message_with_decl): Mark string for translation.
1792         * gcc.c: Mark messages for translation.
1793         (display_help): Combine messages into one string where necessary.
1794         * mips-tfile: Add intl.h. Mark messages for translation.
1795         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1796         messages for translation.
1797         * timevar.c: Mark messages for translation.
1798         * tlink.c: Likewise.
1799         * toplev.c: Likewise.
1800
1801 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1802
1803         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1804
1805         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1806         use -isystem instead of -idirafter.
1807         * i386/i386-interix.h: Likewise.
1808
1809 2000-06-28  Jason Merrill  <jason@redhat.com>
1810
1811         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1812         unless DWARF2_DEBUGGING_INFO is defined.
1813         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1814
1815 2000-06-28  Richard Henderson  <rth@cygnus.com>
1816
1817         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1818
1819 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1820
1821         * cpplex.c (output_line_command): Output correct #line if a header
1822         is including itself and is not protected against multiple inclusion.
1823
1824 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1825
1826         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1827         ENFILE, close all cached file descriptors and try again.
1828         (_cpp_execute_include): Keep a count of the number of times
1829         each header is included.
1830         (close_cached_fd): New function.
1831         * cpphash.h (struct include_file): Rename before to
1832         include_count; all users updated.  Make include_count and sysp
1833         unsigned short.
1834         * cppinit.c (cpp_finish): If -H, report headers that could use
1835         reinclude guards.
1836         (report_missing_guard): New function.
1837
1838 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1839
1840         * i386.md (prologue_set_got): Set length_immediate field.
1841         (testqi_ccno_1):  Add missing '@' character.
1842
1843 2000-06-27  Jason Merrill  <jason@redhat.com>
1844
1845         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1846         DWARF_FRAME_REGNUM.
1847
1848 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1849
1850         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1851         unsigned macros available.
1852
1853 2000-06-27  Richard Henderson  <rth@cygnus.com>
1854
1855         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1856         epilogue_deallocate_stack.
1857
1858         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1859         completers for UNORDERED and ORDERED as well.
1860         * config/ia64/ia64.md (bunordered, bordered): New.
1861         (sunordered, sordered): New.
1862
1863 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1864
1865         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1866         * i386.c (ix86_attr_length_default): Kill.
1867         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1868         New.
1869         * i386-protos.h (ix86_attr_length_default): Kill
1870         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1871         Add prototype
1872         * i386.md (attribute type): Add "test".
1873         (attribute length_prefix): Kill.
1874         (attribute length_opcode): Kill.
1875         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1876         prefix_rep, prefix_0f, modrm): New.
1877         (attribute length): Compute using the new attributes.
1878         (attribute pent_prefix): New.
1879         (attribute pent_pair): Compute using pent_prefix.
1880         (all insn patterns): Set mode,modrm and immediate_length attributes where
1881         needed.
1882         (cmpsi patterns): Compute sizes propertly for test instruction.
1883         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1884         (movstricthi_xor, movstrictqi_xor): New patterns.
1885         (andsi/andhi): Use splitters to generate xor instructions.
1886         (xorqi_ext_1): New pattern.
1887         (movstricthi->movstricthi_xor peep2): New.
1888
1889 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1890
1891         * i386.md (addqi_low_1): Remove.
1892
1893 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1894
1895         * 1750a.h: Mark help strings for options/switches for translation.
1896         * a29k.h: Likewise.
1897         * alpha.h: Likewise.
1898         * arm.h: Likewise.
1899         * pe.h: Likewise.
1900         * riscix.h: Likewise.
1901         * c4x.h: Likewise.
1902         * clipper.h: Likewise.
1903         * convex.h: Likewise.
1904         * elxsi.h: Likewise.
1905         * fr30.h: Likewise.
1906         * fx80.h: Likewise.
1907         * h8300.h: Likewise.
1908         * i370.h: Likewise.
1909         * cygwin.h: Likewise.
1910         * dgux.h: Likewise.
1911         * djgpp.h: Likewise.
1912         * i386.h: Likewise.
1913         * osf1elf.h: Likewise.
1914         * osfrose.h: Likewise.
1915         * sco5.h: Likewise.
1916         * win32.h: Likewise.
1917         * i860.h: Likewise.
1918         * paragon.h: Likewise.
1919         * i960.h: Likewise.
1920         * ia64.h: Likewise.
1921         * m32r.h: Likewise.
1922         * mcore.h: Likewise.
1923         * mips.h: Likewise.
1924         * mn10300.h: Likewise.
1925         * ns32k.h: Likewise.
1926         * pdp11.h: Likewise.
1927         * pj.h: Likewise.
1928         * aix.h: Likewise.
1929         * aix41.h: Likewise.
1930         * aix43.h: Likewise.
1931         * beos.h: Likewise.
1932         * rs6000.h: Likewise.
1933         * sysv4.h: Likewise.
1934         * linux.h: Likewise.
1935         * linux64.h: Likewise.
1936         * sp64-elf.h: Likewise.
1937         * sparc.h: Likewise.
1938         * splet.h: Likewise.
1939         * v850.h: Likewise.
1940         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1941         for translation.
1942         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1943         Properly document option and mark for translation.
1944         * sp86x-elf.h: Likewise.
1945
1946 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1947
1948         Add MMX and SSE registers to i386 machine description.
1949         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1950         ix86_local_alignment): Declare.
1951
1952         * i386.h (TARGET_MMX, TARGET_SSE): New.
1953         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1954         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1955         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1956         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1957         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1958         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1959         (RETURN_IN_MEMORY): Handle MMX/SSE.
1960         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1961         also get stack space.
1962         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1963         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1964         (MMX_REGISTER_NAMES): New.
1965         (ALIGN_MODE_128): New macro.
1966         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1967         (DATA_ALIGNMENT): Likewise.
1968         (LOCAL_ALIGNMENT): Likewise.
1969         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1970         TARGET_MMX/TARGET_SSE.
1971         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1972         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1973         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1974         SSE/MMX regs and something else.
1975         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1976         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1977         3 if moving between MMX regs and something else.
1978
1979         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1980         (regclass_map): Add MMX/SSE registers.
1981         (print_operand): Add code to print XMMWORD as appropriate.
1982         (ix86_split_movdi): Abort for MMX regs.
1983         (init_cumulative_args): Also allow SSE_REGS
1984         (function_arg_advance, function_arg): Likewise
1985         (print_reg): Support 'm'.  Add case for TImode.
1986         (override_options): TARGET_SSE implies TARGET_MMX.
1987         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1988         New functions.
1989
1990         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1991         FIRST_SSE_REG.
1992         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1993         memory.
1994         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1995         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1996
1997 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1998
1999         * ssa.c (struct rename_set_data): Change the name of field
2000         'set_dest' to 'old_reg'.  Add comments.
2001         (struct rename_context): Change the name of 'set_data' to
2002         'new_renames'.  Add new field 'done_renames'.
2003         (create_delayed_rename): New function.
2004         (apply_delayed_renames): New function.
2005         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
2006         SUBREGs and similar by emitting a move.
2007         (new_registers_for_updates): Delete, functionality moved to
2008         apply_delayed_renames.
2009         (rename_block): Handle moves emitted by rename_insn_1 by putting
2010         them into a SEQUENCE with the original insn.  Add sanity checks
2011         and comments.
2012         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
2013         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
2014
2015 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
2016             Jason Merrill <jason@redhat.com>
2017
2018         * dwarf2.h (enum dwarf_call_frame_info): Add
2019         DW_CFA_def_cfa_expression.
2020         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
2021         dw_loc_descr_struct entry.
2022         (struct cfa_loc): New structure to track a CFA location.
2023         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
2024         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
2025         offset, plus handle DW_CFA_def_cfa_expression.
2026         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
2027         cfa_loc record.
2028         (dwarf2out_def_cfa): Entry point maintained for compatability.
2029         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
2030         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
2031         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
2032         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
2033         cfa_reg.
2034         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
2035         sequences for the new DW_CFA_def_cfa_expression record.
2036         (dwarf2out_frame_debug): Use new variables/fields.A
2037         (output_cfi): Handle DW_CFA_def_cfa_expression.
2038         (output_cfa_loc): New function to generate a CFI record for
2039         DW_CFA_def_cfa_expression.
2040         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
2041         a dw_loc_descr sequeunce.
2042         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
2043         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
2044         size_of_locs, output_loc_operands, output_loc_sequence): Move into
2045         unwind info section.
2046         * frame.h (frame_state): Add base_offset and indirect fields.
2047         * frame-dwarf2.c (decode_stack_op): New function to interpret a
2048         dw_loc_descr operation.
2049         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
2050         (struct frame_state): Add base offset and indirect fields.
2051         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
2052
2053 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2054
2055         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
2056         Make warnings about implicit int be pedwarns in C99.  Don't warn
2057         about duplicate type qualifiers in C99.
2058         (start_function): Make warning about implict int return type be a
2059         pedwarn in C99.
2060         * c-lex.c (yylex): Don't warn about `long long' in C99.
2061         * c-typeck.c (c_expand_return): In C99, always pedwarn about
2062         `return' with no value in function returning non-void.
2063
2064 2000-06-26  Richard Henderson  <rth@cygnus.com>
2065
2066         * c-typeck.c (pedwarn_c99): New.
2067         * diagnostic.c (verror, vwarning, vpedwarn): Export.
2068         * toplev.h: Prototype them.
2069
2070 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2071
2072         * c-typeck.c (digest_init): Return error_mark_node node when
2073         TREE_TYPE (init)  == error_mark_node.
2074
2075 2000-06-26  Philipp Thomas  <pthomas@suse.de>
2076
2077         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
2078         test for msgfmt without path instead.
2079         * configure: Rebuilt.
2080
2081 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2082
2083         * gengenrtl.c (special_rtx): Fix typo in comment.
2084
2085 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2086
2087         * mklibgcc.in (LIB2FUNCS): Add missing space.
2088
2089 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2090
2091         * tree.h (enum tree_index): Add vector type nodes.
2092         Add accessor macros for them.
2093         (TYPE_REPRESENATION_TYPE): New macro.
2094         * tree.c (build_common_tree_nodes_2): Build these nodes.
2095         (finish_vector_type): New function.
2096         * c-common.c (type_for_mode): Handle vector modes.
2097         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
2098
2099         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
2100         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
2101         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
2102         (gen_type_die): Likewise.
2103         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
2104         (fundamental_type_code): Likewise.
2105         (type_is_fundamental): VECTOR_TYPEs aren't.
2106         (output_type): Handle VECTOR_TYPEs.
2107
2108 2000-06-25  Kazu Hirata  <kazu@hxi.com>
2109
2110         * config/arm.c: Fix a comment typo.
2111         * config/arm.h: Likewise.
2112
2113 2000-06-25  Philipp Thomas  <pthomas@suse.de>
2114
2115         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
2116         compiler found.
2117         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
2118         * configure: Rebuilt.
2119
2120 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
2121
2122         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
2123
2124 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2125
2126         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
2127         libgcc.a.
2128
2129 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
2130
2131         * collect2.c (resolve_lib_name): Move '/' check out of loop.
2132
2133 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
2134
2135         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
2136
2137 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
2138
2139         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
2140         last_unconditional_cleanup.
2141
2142 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2143
2144         * tree.def (VECTOR_TYPE): New node type.
2145         * tree.h: Adjust some comments to reflect addition of vector types.
2146         (TYPE_VECTOR_SUBPARTS): New macro.
2147         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
2148         * c-convert.c (convert): Likewise.
2149         * convert.c (convert_to_integer): Handle vector modes.
2150         (convert_to_vector): New function.
2151         * convert.h (convert_to_vector): Declare.
2152         * expr.c (convert_move): Handle vector modes.
2153         * expmed.c (extract_bit_field): Don't abort for vector modes.
2154
2155 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
2156
2157         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
2158         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
2159         New functions, common code moved from function_{prologue,epilogue}
2160         and extended to support the -mtiny-stack option.
2161         (function_prologue, function_epilogue): Use them.
2162         Use lo8/hi8 consistently for asm output readability.
2163         (avr_hard_regno_mode_ok): New function.
2164         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
2165         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
2166         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
2167         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
2168         Write SPH before SPL.
2169         (*movqi): No need to disable interrupts for just one "out"
2170         in alternative 5.  Change length attribute from 4 to 1.
2171         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
2172         Write SPH before SPL.
2173
2174 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
2175
2176         * rtl.texi (Vector Operations): New node.
2177         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
2178         (Conversions): Add ss_truncate, us_truncate.
2179         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
2180         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
2181         US_TRUNCATE): New rtx codes.
2182         * machmode.def: Add vector modes.
2183         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
2184         MODE_VECTOR_FLOAT.
2185         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
2186         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
2187         (VECTOR_MODE_P): New.
2188
2189 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
2190
2191         * cpp.texi: Clarify #pragma GCC namespace.
2192
2193 2000-06-24  Philipp Thomas  <pthomas@suse.de>
2194
2195         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
2196         all catalogs specified in ALL_LINGUAS.
2197         * configure: Rebuilt.
2198
2199 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2200
2201         * config/sparc/sparc.md (reload_outdi+1): Handle
2202         HOST_BITS_PER_WIDE_INT == 64 case correctly.
2203         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
2204
2205 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
2206
2207         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
2208         struct vs. scalar-ness when -fno-strict-aliasing.
2209
2210 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
2211
2212         * cpplib.c (struct pragma_entry): New structure.
2213         (pragma_dispatch): Pragma dispatcher.
2214         (top_pragmas, gcc_pragmas): New static variables.
2215         (do_pragma): Use pragma_dispatch.
2216         (do_pragma_gcc): New pragma handler.
2217         * cpp.texi: Update.
2218
2219 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
2220
2221         * calls.c (compute_argument_addresses): Force stack slots into
2222         alias set 0.
2223         * expr.c (emit_push_insn): Force pushes into alias set 0.
2224
2225 2000-06-23  Richard Henderson  <rth@cygnus.com>
2226
2227         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
2228         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
2229
2230 2000-06-22  Jason Merrill  <jason@redhat.com>
2231
2232         * toplev.c (compile_file): Always call timevar_print.
2233         * Makefile.in (calls.o): Depend on TIMEVAR_H.
2234
2235 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2236
2237         * varasm.c (constant_descriptor): Make contents unsigned char.
2238         (mark_const_hash_entry): Adjust.
2239         (const_hash): Just hash the code of unknown nodes.
2240         (compare_constant_1): Adjust for unsigned char.
2241         Use language specific expander on unknown nodes.
2242         (record_constant_1): Likewise.
2243
2244 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2245
2246         * cppfiles.c (cpp_make_system_header): New function.
2247         * cpplib.h: Prototype it.
2248         * cpplib.c (do_line, do_pragma_system_header): Use it.
2249         * fix-header.c (read_scan_file): Use it.
2250
2251         * fix-header.c (check_macro_names): Cast second arg of
2252         cpp_defined to const unsigned char *.
2253         (read_scan_file): Make getchar_call const unsigned char.
2254
2255 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
2256
2257         * cppfiles.c: Include splay-tree.h, not hashtab.h.
2258         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
2259         (destroy_include_file_node): New.
2260         (_cpp_init_include_hash): Rename _cpp_init_include_table.
2261         Create a splay tree, not a hash table.
2262         (open_include_file): Look up the path in the include table,
2263         do the multiple include optimization here, etc.
2264         (cpp_included): Walk the path.
2265         (find_include_file): Just walk the path calling
2266         open_include_file, or call it directly for an absolute path.
2267         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
2268         scheme.
2269         (read_include_file): Update for new scheme.  Don't close the
2270         file unless reading fails.
2271         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
2272
2273         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
2274         (struct include_file): New.
2275         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
2276         macros.
2277         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
2278         Update prototypes.
2279
2280         * cppinit.c: Include splay-tree.h.
2281         (cpp_reader_init, cpp_cleanup): Update.
2282
2283         * cpplib.h (struct cpp_buffer): Change ihash field to
2284         'struct include_file *inc'.  Remove system_header_p.
2285         (struct cpp_reader): Change all_include_files to a
2286         struct splay_tree_s *.
2287
2288         * cpplex.c: Update all references to cpp_buffer->ihash and/or
2289         cpp_buffer->system_header_p.
2290         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
2291
2292         * Makefile.in (SPLAY_TREE_H): New macro.
2293         (cppfiles.o, cppinit.o): Update dependencies.
2294
2295 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
2296
2297         * invoke.texi (g++): "g++" is not a script anymore.
2298
2299 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2300
2301         * function.c (round_down): Delete obsolete prototype.
2302
2303         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
2304
2305 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
2306
2307         * configure.in: Use 'test a = b' not 'test a == b'.
2308         * configure: Regen.
2309
2310         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
2311
2312         * Makefile.in: Remove all references to HOST_INTLLIBS.
2313
2314         * cpplex.c (parse_name): Don't warn about $ in identifiers if
2315         skipping.
2316
2317 2000-06-20  Philipp Thomas  <pthomas@suse.de>
2318
2319         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
2320         for PA 2.0.
2321
2322 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2323
2324         * Take REG_INC notes into account.
2325
2326 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
2327
2328         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
2329         (primary: IDENTIFIER): Just call build_external_ref.
2330         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
2331         Regenerate.
2332         * c-lex.c (lastiddecl): Remove.
2333         (yylex): Replace all instances of lastiddecl with local
2334         variables.
2335
2336         * c-typeck.c (build_external_ref): New function.  Treat decls
2337         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
2338         Look up the decl from the id here.  Call lookup_objc_ivar.
2339         * c-lang.c (lookup_objc_ivar): Stub.
2340         * objc/objc-act.c (lookup_objc_ivar): New function.
2341
2342         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
2343         * c-lex.h: Don't declare lastiddecl.
2344
2345 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
2346
2347         * c-common.h (IF_COND): Added documentation.
2348         (THEN_CLAUSE): Likewise.
2349         (ELSE_CLAUSE): Likewise.
2350         (WHILE_COND): Likewise.
2351         (WHILE_BODY): Likewise.
2352         (DO_COND): Likewise.
2353         (DO_BODY): Likewise.
2354         (RETURN_EXPR): Likewise.
2355         (EXPR_STMT_EXPR): Likewise.
2356         (FOR_INIT_STMT): Likewise.
2357         (FOR_COND): Likewise.
2358         (FOR_EXPR): Likewise.
2359         (FOR_BODY): Likewise.
2360         (SWITCH_COND): Likewise.
2361         (SWITCH_BODY): Likewise.
2362         (CASE_LOW): Likewise.
2363         (CASE_HIGH): Likewise.
2364         (GOTO_DESTINATION): Likewise.
2365         (COMPOUND_BODY): Likewise.
2366         (ASM_CV_QUAL): Likewise.
2367         (ASM_STRING): Likewise.
2368         (ASM_OUTPUTS): Likewise.
2369         (ASM_INPUTS): Likewise.
2370         (ASM_CLOBBERS): Likewise.
2371         (DECL_STMT_DECL): Likewise.
2372         (STMT_EXPR_STMT): Likewise.
2373         (LABEL_STMT_LABEL): Likewise.
2374
2375         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
2376         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
2377         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
2378         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2379
2380 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2381
2382         * configure.in (--enable-checking): Update --help doc to reflect
2383         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
2384
2385 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2386
2387         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
2388
2389         * function.c (put_var_into_stack): Don't reference DECL_ fields
2390         if input is a SAVE_EXPR.
2391         Use set_mem_attributes in COMPLEX case.
2392
2393 2000-06-18  Richard Henderson  <rth@cygnus.com>
2394
2395         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
2396         (ia64_file_start): Declare.
2397         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
2398         (GR_REGNO_P): Likewise.
2399         * config/ia64/ia64.c: Many prototypes.
2400         (ia64_reg_numbers): Constify.
2401         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
2402         (ia64_section_threshold): Make unsigned.
2403         (ia64_print_operand): Constify.
2404         (fix_range): Constify.
2405         (ia64_init_builtins): Don't compare signed vs unsigned.
2406         (ia64_expand_builtin): Likewise.
2407
2408         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
2409         (CONSTRAINT_OK_FOR_Q): New.
2410         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
2411         (movsf_internal, movdf_internal): Likewise.
2412         (cmovdi_internal): Rewrite so that constraints and predicates match;
2413         simplify splitters.
2414         (cmovsi_internal): Likewise.
2415
2416         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
2417         (ASM_FILE_START): New.
2418         * config/ia64/ia64.c (ia64_file_start): New.
2419         (rtx_needs_barrier): Handle pred.rel.mutex.
2420         (emit_predicate_relation_info): New.
2421         * config/ia64/ia64.md (pred_rel_mutex): New.
2422         * config/ia64/linux.h (ASM_SPEC): Define.
2423         * config/ia64/sysv4.h (ASM_FILE_START): Define.
2424
2425         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
2426         filtering global register variables.
2427
2428 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2429
2430         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
2431
2432 2000-06-17  Michael Meissner  <meissner@redhat.com>
2433
2434         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
2435         not present and there is a field after a '-'.
2436
2437 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2438
2439         * fixinc/check.tpl:  finish the implementation of multiple tests
2440         for a single fix
2441         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2442         (io_quotes_def): add a second test
2443         (various): reorder `files' so that "limits.h" is never first
2444         * fixinc/tests/base/*: update the testing output
2445
2446 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2447
2448         * gcc.texi: Remove reference to stupid.c.
2449
2450 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2451
2452         * c-common.c (c_tree_code_type): New array.
2453         (c_tree_code_length): Likewise.
2454         (c_tree_code_name): Likewise.
2455         (add_c_tree_codes): New function.
2456
2457         * c-common.h (add_c_tree_codes): Declare.
2458         (enum c_tree_code): New enum.
2459
2460         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2461
2462 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2463
2464         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2465         select pattern to also match macro defs with only one argument.
2466
2467 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2468
2469         * i386.md: Create new [right,left] rotate and right shift
2470         patterns to optimize shift by 1 bit for certain ia32 processors.
2471         Update patterns which perform left shifts to optimize shift by
2472         1 bit for certain ia32 processors.
2473         * i386.c (const_int_1_operand): New predicate.
2474         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2475         * i386-protos.h (const_int_1_operand): Prototype.
2476
2477 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2478
2479         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2480
2481 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2482
2483         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2484         LABEL_REFs.
2485
2486 2000-06-14  Richard Henderson  <rth@cygnus.com>
2487
2488         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2489
2490         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2491         auto-inc code.
2492
2493         * print-rtl.c (print_rtx): Emit space before mem alias set.
2494
2495 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2496
2497         * rs6000.c (expand_block_move): Fix typo in earlier change.
2498         (print_operand): Remove unused variables neg and op.
2499         (toc_hash_mark_entry): Fix prototype.
2500
2501 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2502
2503         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2504         (THEN_CLAUSE): Likewise.
2505         (ELSE_CLAUSE): Likewise.
2506         (WHILE_COND): Likewise.
2507         (WHILE_BODY): Likewise.
2508         (DO_COND): Likewise.
2509         (DO_BODY): Likewise.
2510         (RETURN_EXPR): Likewise.
2511         (EXPR_STMT_EXPR): Likewise.
2512         (FOR_INIT_STMT): Likewise.
2513         (FOR_COND): Likewise.
2514         (FOR_EXPR): Likewise.
2515         (FOR_BODY): Likewise.
2516         (SWITCH_COND): Likewise.
2517         (SWITCH_BODY): Likewise.
2518         (CASE_LOW): Likewise.
2519         (CASE_HIGH): Likewise.
2520         (GOTO_DESTINATION): Likewise.
2521         (COMPOUND_BODY): Likewise.
2522         (ASM_CV_QUAL): Likewise.
2523         (ASM_STRING): Likewise.
2524         (ASM_OUTPUTS): Likewise.
2525         (ASM_INPUTS): Likewise.
2526         (ASM_CLOBBERS): Likewise.
2527         (DECL_STMT_DECL): Likewise.
2528         (STMT_EXPR_STMT): Likewise.
2529         (LABEL_STMT_LABEL): Likewise.
2530         (SCOPE_BEGIN_P): Likewise.
2531         (SCOPE_END_P): Likewise.
2532         (SCOPE_STMT_BLOCK): Likewise.
2533         (SCOPE_NULLIFIED_P): Likewise.
2534         (SCOPE_NO_CLEANUPS_P): Likewise.
2535         (SCOPE_PARTIAL_P): Likewise.
2536         (ASM_VOLATILE_P): Likewise.
2537         (STMT_LINENO): Likewise.
2538         (STMT_LINENO_FOR_FN_P): Likewise.
2539
2540         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2541         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2542         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2543         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2544         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2545
2546         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2547
2548 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2549
2550         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2551         writable in parts of the GCC code.
2552
2553         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2554         specification match cast.
2555
2556 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2557
2558         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2559         * configure, config.in: Rebuilt.
2560         * sys-protos.h: Similarly.
2561
2562 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2563
2564         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2565         * basic-block.h (EDGE_COMPLEX): ... here.
2566
2567         * loop.c (check_dbra_loop): Specify the register when
2568         generating REG_NONNEG notes and don't generate duplicates.
2569
2570 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2571
2572         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2573         (struct tree_type, struct tree_decl): Add user_align member.
2574         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2575         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2576         and DECL_USER_ALIGN 0, cap alignment to this value.
2577         (place_field): Likewise.
2578         (finalize_type_size): Set TYPE_USER_ALIGN.
2579         (layout_type): Likewise.
2580         (initialize_sizetypes): Likewise.
2581         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2582         DECL_USER_ALIGN to 1.
2583         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2584         (xfer_tag): Set TYPE_USER_ALIGN.
2585         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2586         (finish_enum): Likewise.
2587         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2588         (expand_anon_union_decl): Likewise.
2589         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2590         (build_index_type): Set TYPE_USER_ALIGN.
2591         (build_range_type): Likewise.
2592         (build_common_tree_nodes_2): Likewise.
2593         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2594
2595 2000-06-13  Andreas Jaeger  <aj@suse.de>
2596
2597         * configure.in: Use --enable-checking=misc,tree,gc by default if
2598         no --enable-checking option is given and for
2599         --enable-checking=yes.
2600         * configure: Rebuilt.
2601
2602 2000-06-13  Richard Henderson  <rth@cygnus.com>
2603
2604         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2605         (__throw): Don't pass the address of a label.
2606
2607         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2608         current_function_is_leaf.
2609         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2610         instead of reg_names[RETURN_ADDRESS_REGNUM].
2611         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2612         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2613         from RETURN_ADDRESS_REGNUM.  Update all uses.
2614         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2615         zero instead of null on failure.
2616         (ELIMINABLE_REGS): Add ra->b0 elimination.
2617         (CAN_ELIMINATE): Update accordingly.
2618         (INITIAL_ELIMINATION_OFFSET): Likewise.
2619         (REGISTER_NAMES): Use an illegal assembler name for
2620         RETURN_ADDRESS_POINTER_REGNUM.
2621
2622 2000-06-13  Richard Henderson  <rth@cygnus.com>
2623
2624         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2625         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2626         (REG_CLASS_NAMES): Likewise.
2627         (REG_CLASS_CONTENTS): Likewise.
2628         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2629         (HARD_REGNO_MODE_OK): Remove references to them.
2630         (REGNO_REG_CLASS): Likewise.
2631         (REG_CLASS_FROM_LETTER): Likewise.
2632         (CLASS_MAX_NREGS): Likewise.
2633         (REGISTER_MOVE_COST): Likewise.
2634         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2635         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2636         (movqi_internal): Special case moves from zero.
2637         (movhi_internal, movsi_internal): Likewise.
2638         (movdi_internal): Likewise.  Fill out "f" constraints.
2639         (movsf_internal): Fill out "r" constraints.
2640         (movdf_internal): Likewise.
2641
2642 2000-06-13  Richard Henderson  <rth@cygnus.com>
2643
2644         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2645         alive before reload.
2646
2647         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2648         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2649         (remove_dependence): Always define.
2650         (set_sched_group_p): New.
2651         (sched_analyze_2): Use it.
2652         (sched_analyze_insn): Don't special-case naked uses.  Look for
2653         and extend in_post_call_group_p.
2654         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2655         (init_deps): Clear in_post_call_group_p.
2656
2657 2000-06-13  Richard Henderson  <rth@cygnus.com>
2658
2659         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2660         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2661         and hard-coded tests.
2662         (simplify_set): Likewise.
2663         (gen_lowpart_for_combine): Likewise.
2664         * emit-rtl.c (gen_lowpart_common): Likewise.
2665         * global.c (find_reg): Likewise.
2666         * local-alloc.c (find_free_reg): Likewise.
2667         * recog.c (register_operand): Likewise.
2668         * regclass.c (init_reg_sets_1): Likewise.
2669         (record_operand_costs, regclass): Likewise.
2670         * reload.c (push_reload): Likewise.
2671         * reload1.c (choose_reload_regs): Likewise.
2672         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2673         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2674         Update all references.
2675         * regs.h (struct reg_info_def): Likewise.
2676         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2677         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2678         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2679
2680         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2681         (CLASS_CANNOT_CHANGE_MODE_P): New.
2682         * config/mips/mips.h: Likewise.
2683         * config/pa/pa32-regs.h: Likewise.
2684         * config/pa/pa64-regs.h: Likewise.
2685         * config/rs6000/rs6000.h: Likewise.
2686         * config/sh/sh.h: Likewise.
2687         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2688         (CLASS_CANNOT_CHANGE_MODE_P): New.
2689         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2690         * config/d30v/d30v.h: Likewise.
2691
2692 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2693
2694         * configure.in: Add AC_TYPE_GETGROUPS test.
2695         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2696         * configure: Rebuilt.
2697         * config.in: Rebuilt.
2698
2699 2000-06-13  Richard Henderson  <rth@cygnus.com>
2700
2701         * explow.c (set_mem_attributes): Do nothing for NULL type.
2702
2703 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2704
2705         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2706         correctly.
2707
2708 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2709
2710         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2711
2712 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2713
2714         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2715
2716 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2717
2718         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2719         * configure: Rebuilt.
2720
2721 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2722
2723         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2724         We now default to ELF for the i386, and a.out is the special case.
2725         * configure:  Rebuilt.
2726
2727 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2728
2729         * final.c (final_scan_insn): Delete notes between cc0 setter and
2730         user when restarting from setter.
2731
2732 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2733
2734         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2735         cast to squelch signed/unsigned warnings.
2736
2737 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2738
2739         * cpplib.c (handle_directive): Print non-NUL-terminated string
2740         with %.*s.
2741
2742 2000-06-12  Michael Meissner  <meissner@redhat.com>
2743
2744         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2745         path if the machine needs extra support to do conditional
2746         execution.
2747
2748 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2749
2750         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2751         to print the alias set.
2752         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2753
2754 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2755
2756         * config/float-vax.h: Add GFLOAT defines.
2757
2758 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2759
2760         * configure.in: Update tm dependencies for MPE.
2761         * configure: Rebuilt.
2762
2763 2000-06-12  H.J. Lu  <hjl@gnu.org>
2764
2765         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2766
2767 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2768
2769         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2770         (CPP_SPEC): Change mthreads to pthread.
2771         (LIB_SPEC): Likewise.
2772         (STARTFILE_SPEC): Likewise.
2773         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2774         (CPP_SPEC): Change mthreads to pthread.
2775         (LIB_SPEC): Likewise.
2776         (STARTFILE_SPEC): Likewise.
2777         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2778         * rs6000.c (reg_or_arith_cint_operand): New.
2779         (num_insns_constant_wide): Decorate unsigned constant.
2780         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2781         * rs6000.md (addsi3): Use new predicate.
2782         (subsi3, adddi3, subdi3): Likewise.
2783
2784 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2785
2786         * c-common.c (lang_get_alias_set): Fix typo.
2787
2788 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2789
2790         * flow.c (mark_used_regs): Revert last change.
2791         (life_analysis): Remove PROP_AUTOINC if running after reload.
2792         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2793
2794 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2795
2796         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2797         has run.
2798
2799 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2800
2801         * bb-reorder.c (build_scope_forest): Initialize variable
2802         `curr_scope'.
2803
2804         * calls.c (expand_call): Likewise for variables
2805         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2806
2807         * i386.c (function_arg_advance, function_arg): Cast to avoid
2808         signed/unsigned warnings.
2809
2810         * i386.h (MEMORY_MOVE_COST): Likewise.
2811
2812         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2813         `else_start' and `else_end'.
2814
2815         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2816
2817         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2818
2819 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2820
2821         * Makefile.in (libintl.a): Depend on intl.all.
2822
2823 2000-06-09  H.J. Lu  (hjl@gnu.org)
2824
2825         * Makefile.in (c-parse.o): Also depend on output.h.
2826
2827 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2828
2829         * mcore-protos.h: discards const warning removal.
2830         * mcore.c: discards const warning removal.
2831
2832 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2833
2834         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2835         the beginning of the file.
2836
2837 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2838
2839         * real.h:  Add prototype for ldexp.
2840
2841 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2842
2843         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2844         it ggc_alloc, drop second argument, never clear returned memory.
2845         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2846         (ggc_alloc_cleared): New.
2847         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2848         ggc_alloc_obj.  Remove ggc_alloc macro.
2849         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2850
2851         * rtl.c (rtvec_alloc): Clear the vector always.
2852         (rtx_alloc): Clear the first word always.  Remove dirty
2853         obstack tricks (this routine is no longer a bottleneck).
2854         * tree.c (make_node): Clear the new node always.
2855         (make_tree_vec): Likewise.
2856         (tree_cons): Clear the common structure always.
2857         (build1): Likewise; also, clear TREE_COMPLEXITY.
2858         * gengenrtl.c: Use puts wherever possible.  Remove extra
2859         newlines.
2860         (gendef): Clear the first word of an RTX in the generator
2861         function, irrespective of ggc_p.  Initialize '0' slots to
2862         NULL.
2863         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2864         thin wrapper macro around obstack_alloc.
2865
2866         * stmt.c (expand_fixup): Use ggc_alloc.
2867         * c-typeck.c (add_pending_init): Use ggc_alloc.
2868         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2869         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2870         const0_rtx when it is created.
2871         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2872         we are not in a function.
2873
2874         * tree.c (tree_class_check_failed): Make second arg an int.
2875         * tree.h: Update prototype.
2876
2877 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2878
2879         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2880         of an error_mark_node.
2881
2882 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2883
2884         * config/avr/avr.c (asm_output_section_name): bugfix.
2885
2886 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2887
2888         * timevar.def: Add TV_EXPAND.
2889         * timevar.c (timevar_print): Update timing information.
2890         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2891
2892         * stmt.c (expand_return): Check for error_mark_node.
2893
2894 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2895
2896         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2897
2898         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2899         variable against filename expansion when it contains "char *".
2900
2901         * system.h (SSIZE_MAX): Delete backup definition.
2902
2903         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2904         instead of SSIZE_MAX.
2905
2906 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2907
2908         * configure.in: Check whether gas supports -relax.
2909         * configure, config.in: Rebuilt.
2910         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2911         (EXTRA_SPECS): Add asm_relax.
2912         (ASM_SPEC): Add %(asm_relax).
2913         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2914         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2915         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2916         (ASM_SPEC): Add %(asm_relax).
2917         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2918         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2919         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2920         instead of mov, so that gas can further optimize it.
2921
2922 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2923
2924         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2925         size_of_sleb128.
2926         (value_format, case dw_val_class_const): Use sdata format.
2927         (output_die): Call output_sleb128.
2928
2929 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2930
2931         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2932         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2933         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2934         (output_die, case dw_val_class_unsigned_const): Correct call to
2935         ASM_OUTPUT_DWARF_DATA8.
2936         (output_die, case dw_val_class_long_long): Use
2937         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2938         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2939         pos is zero.
2940
2941         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2942         (output_function_prologue): Fix mispelling.
2943         (output_function_prologue, output_function_epilogue): Reorder to
2944         match ia64.c definition order.
2945         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2946         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2947         Use r3 instead of r2 for large stack restores.
2948         (ia64_output_end_prologue): New function.
2949         (process_set): Emit ".restore sp" for epilogue stack restores.
2950         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2951
2952 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2953
2954         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2955         incomplete types.
2956
2957 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2958
2959         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2960
2961 2000-06-08  Denis Perchine <dyp@perchine.com>
2962
2963         * frame.c (start_fde_sort): Don't malloc (0).
2964
2965 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2966
2967         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2968         error_mark_node.
2969         * print-tree.c (print_node): The transparent_union_flag means
2970         different things for unions and arrays.  Do not inspect it
2971         with TYPE_TRANSPARENT_UNION.
2972
2973 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2974
2975         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2976         returned NULL.
2977
2978 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2979
2980         * config/avr/avr.c (asm_output_section_name): output section
2981         attributes.
2982         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2983
2984 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2985
2986         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2987         fields into header field.
2988         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2989         macros to access length, flags, and version info from header field.
2990         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2991         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2992         (__do_global_ctors_aux): Fix caller.
2993         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2994         prologue_flag to header.  Pass to read_P_record.
2995         (read_P_record): New argument header.  Implement P4 format.
2996         Multiply P7_T_SIZE by 16.
2997         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2998         get_unwind_record.  Copy r to region_header if r is a header record.
2999         (print_all_records): Likewise.
3000         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
3001         (__get_personality, __get_except_table): Likewise.
3002         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
3003
3004 2000-06-06  Philipp Thomas  <pthomas@suse.de>
3005
3006         * configure.in (AC_C_INLINE): Added.
3007         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
3008         * configure: Regenerate.
3009
3010 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
3011
3012         * c-common.h (c_language_kind): New type.
3013         (c_language): New variab.e
3014         * c-common.c (lang_get_alias_set): Don't put structures in
3015         non-zero alias sets in C++.
3016         * c-decl.c (c_language): Define it.
3017         * c-lex.c (doing_objc_thang): Remove.
3018         * c-tree.h (doing_objc_thang): Make it a macro.
3019         * objc/objc-act.c (lang_decode_option): Set c_language, not
3020         doing_objc_thang.
3021
3022 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3023
3024         * diagnostic.c (output_maximum_width): Remove.
3025         (doing_line_wrapping): Tweak.
3026         (diagnostic_buffer): New object.
3027         (global_output_buffer): New object.
3028         (output_destroy_prefix): New function.
3029         (default_initialize_buffer): Likewise.
3030         (reshape_diagnostic_buffer): Likewise.
3031         (initialize_diagnostics): Likewise.
3032         (output_clear): Tweak.
3033         (line_wrapper_printf): Adjust call to init_output_buffer.
3034         (vline_wrapper_message_with_location): Likewise.  Use
3035         output_destroy_prefix.
3036         (v_message_with_decl): Likewise.
3037
3038         * diagnostic.h (struct output_buffer): Constify prefix.
3039         (init_output_buffer, output_get_prefix): Constify.
3040         (diagnostic_message_length_per_line): Likewise.
3041         (reshape_diagnostic_buffer): Declare.
3042         (default_initialize_buffer): Declare.
3043         (initialize_diagnostics): Declare.
3044         (diagnostic_buffer): Declare new obbject.
3045
3046         * toplev.c: #include diagnostic.h
3047         (display_help): Document diagnostic formatting options.
3048         (decode_f_option): Handle diagnostic formatting options.
3049         (main): Setup initialization for diagnostic messages outputter.
3050
3051         * toplev.h (set_message_length): Remove.
3052
3053         * Makefile.in (toplev.o): Depends upon diagnostic.h
3054
3055         * invoke.texi : Document diagnostics formatting options.
3056
3057 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
3058
3059         * configure.in (Make the links): Typo fix : the file that must be
3060         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
3061         * configure: File rebuilt.
3062
3063 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
3064
3065         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
3066         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
3067         space.
3068         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
3069         emergency eh_context buffer, if malloc fails.
3070         (__eh_free): Moved from cp/exception.cc. Release to emergency
3071         eh_context buffer, if appropriate.
3072
3073 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
3074
3075         * expr.c (store_expr): Fix typo.
3076
3077 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3078
3079         * m68k.c (legitimize_pic_address): Move prototype ...
3080
3081         * m68k-protos.h (legitimize_pic_address): ... here.
3082
3083         * m68k.md (legitimize_pic_address): Delete prototypes.
3084         (untyped_call): Invoke GEN_CALL(), not gen_call().
3085
3086         * nextstep.c: Include system.h and toplev.h.
3087         (get_directive_line): Don't prototype.
3088         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
3089
3090         * nextstep.h (handle_pragma): Prototype.
3091         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
3092         objc_section_init ...
3093         (EXTRA_SECTION_FUNCTIONS): ... here.
3094
3095 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3096
3097         * sdbout.c (struct sdb_file): NAME now const.
3098         (sdbout_init): input_file_name now const.
3099         (sdbout_start_new_source_file): FILENAME now const.
3100         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
3101
3102 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
3103
3104         * c-typeck.c (build_conditional_expr): Handle complex data types.
3105
3106 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3107
3108         * explow.c (maybe_set_unchanging): New function, broken out from...
3109         (set_mem_attributes): Here.
3110         * expr.h: Declare it.
3111         * stmt.c (expand_decl): Call it.
3112
3113 2000-06-05  Richard Henderson  <rth@cygnus.com>
3114
3115         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
3116         while looking for a register to inherit from.
3117
3118 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
3119
3120         * Makefile.in (libgcc.ready): Lose.
3121         (libgcc.mk): Just use mv, not move-if-change.
3122         (LIBGCC_DEPS): New macro.
3123         (libgcc.a): Use it.
3124         (stmp-multilib): Likewise.
3125         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
3126         it rather than the directories themselves.
3127         (LIB2ADD): Depend on the list file rather than 'force'.
3128
3129         * fold-const.c (fold, case COND_EXPR): Elide conversion between
3130         cv-qualified versions of types.
3131
3132 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3133
3134         * config/sparc/sparc.c (short_branch): Correct error in range
3135         computation.
3136
3137 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3138
3139         * fixinc/inclhack.def: New include hacks for ultrix.
3140         * (nested_ultrix): Replaced by ultrix_nested_svc.
3141         * (ultrix_atof_param): test_text string added.
3142         * (ultrix_ifdef): Modified select string.
3143
3144 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
3145
3146         * objc/objc-act.c (generate_method_descriptors): Register
3147         objc_method_prototype_template as a GC root.
3148         (comp_method_with_proto): Register function_type as a GC root.
3149         (comp_proto_with_proto): Replace function_type1 and
3150         function_type2 with a two-element array; register it as a GC root.
3151
3152         (generate_protocols, build_protocol_initializer,
3153         generate_protocol_list, build_category_initializer,
3154         build_shared_structure_initializer): Do not cache cast_type
3155         and/or cast_type2.
3156
3157 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3158
3159         * function.c (assign_parms): Add missing argument to set_mem_attributes
3160         call.
3161
3162 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
3163
3164         * tree.h (VOID_TYPE_P): New macro.
3165         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
3166         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
3167         (get_parm_info): Likewise.
3168         (store_parm_decls): Likewise.
3169         (combine_parm_decls): Likewise.
3170         (finish_function): Likewise.
3171         * c-typeck.c (build_function_call): Likewise.
3172         (build_binary_op): Likewise.
3173         (build_conditional_expr): Likewise.
3174         (internal_build_compound_expr): Likewise.
3175         (convert_for_assignment): Likewise.
3176         * stmt.c (expend_expr_stmt): Likewise.
3177         (warn_if_unused_value): Likewise.
3178         (expand_return): Likewise.
3179         * c-parse.in (primary): Likewise.
3180         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
3181         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
3182
3183 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3184
3185         * alias.c (get_alias_set): If compnent is addressable, use alias
3186         set of component.
3187         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
3188         (grokdeclarator): Likewise.
3189         * c-typeck.c (common_type): Likewise.
3190
3191 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
3192
3193         * Makefile.in (OBJS): Remove dyn_string.o
3194         (dyn-string.o): Delete rule.
3195         * dyn-string.c: Delete file
3196         * dyn-string.h: Likewise.
3197
3198 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3199
3200         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
3201         subdir.
3202
3203 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
3204
3205         * alias.c (record_component_aliases): Don't inspect
3206         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
3207
3208 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
3209
3210         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
3211         it with the pattern to do machine dependent work.
3212         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
3213         use it to modify the true/false tests used in conditional
3214         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
3215         defined, invoke them if the conversion to conditional execution
3216         was successful or not.
3217
3218         * tm.texi (IFCVT_MODIFY_TESTS): Document.
3219         (IFCVT_MODIFY_INSN): Ditto.
3220         (IFCVT_MODIFY_FINAL): Ditto.
3221         (IFCVT_MODIFY_CANCEL): Ditto.
3222
3223 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
3224
3225         * toplev.c (main): Fix misspellings of possibility and language.
3226
3227 2000-06-03  Richard Henderson  <rth@cygnus.com>
3228
3229         * alias.c (record_alias_subset): Initialize has_zero_child in the
3230         superset.
3231
3232 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
3233
3234         * arm.md (untyped_call): Use GEN_CALL macro.
3235
3236 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
3237
3238         * Makefile.in: Use $(MAKE) not "make"
3239
3240 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3241
3242         * alias.c (struct alias_set_entry): New field has_zero_child.
3243         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
3244         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
3245         do nothing.
3246         Call record_component_aliases for aggregate types.
3247         (record_alias_subset): Set has_zero_child.
3248         (record_component_aliases, case ARRAY_TYPE): Do nothing if
3249         TYPE_NONALIASES_COMPONENT.
3250         (record_component_aliases, case RECORD_TYPE): Test
3251         DECL_NONADDRESSABLE_P.
3252         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
3253         of TREE_ADDRESSABLE.
3254         * calls.c (initialize_argument_information): Only test
3255         TYPE_TRANSPARENT_UNION for UNION_TYPE.
3256         * function.c (assign_parms): Likewise.
3257         * integrate.c (function_cannot_inline_p): Likewise.
3258         * stor-layout.c (finish_record_layout): Don't call
3259         record_component_aliases.
3260         * tree.h (struct tree_int_cst): Use struct tree_common.
3261         (struct tree_real_cst, struct tree_string): Likewise.
3262         (struct tree_complex, struct tree_identifier): Likewise.
3263         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
3264         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
3265         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
3266         (TYPE_NONALIASES_COMPONENT): New macro.
3267         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
3268         (DECL_NONADDRESSABLE_P): New macro.
3269         (struct tree_decl): Reorder bits for clarity of how many left;
3270         add non_adressable.
3271
3272 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
3273
3274         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
3275         * mklibgcc.in (force): New target.
3276         Make LIB2ADD stuff depend on it.
3277
3278 2000-06-02  Richard Henderson  <rth@cygnus.com>
3279
3280         * alias.c (lang_get_alias_set): Remove.
3281         (get_alias_set): Call it directly, not indirectly.
3282         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
3283         * c-common.h (c_get_alias_set): Don't declare.
3284         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
3285         * expr.h (lang_get_alias_set): Declare as function, not pointer.
3286
3287 2000-06-02  Bruce Korb  <bkorb@gnu.org>
3288
3289         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
3290         (server_setup):  define the server's master pid
3291         (close_server):  actually do the deed IFF we are the server's master
3292
3293 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
3294
3295         * c-common.c (c_get_alias_set): Check whether signed_type did not
3296         return its argument before calling get_alias_set on the result.
3297
3298 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
3299
3300         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
3301
3302 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3303
3304         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
3305         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
3306         for TARGET_NOMACSAVE.
3307         (NOMACSAVE_BIT): Define.
3308         (TARGET_NOMACSAVE): Define.
3309         (TARGET_SWITCHES): Add "nomacsave".
3310
3311 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
3312
3313         * sh.md (untyped_call): Remove excess parameters
3314
3315 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
3316
3317         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
3318         match that used before the conversion to c_fix style.
3319         * fixinc/fixincl.x: regenerate
3320
3321 2000-06-01  Stan Cox  <scox@cygnus.com>
3322
3323         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
3324         macro argument typo.
3325
3326 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
3327
3328         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
3329         error message.
3330         * cpplib.c (parse_include): Remove support for VAX-C
3331         "#include starlet" misfeature.
3332
3333 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
3334
3335         * cppfiles.c: conditionally define O_BINARY.
3336         (open_include_file): pass O_BINARY to open().
3337
3338 2000-06-01  Richard Henderson  <rth@cygnus.com>
3339
3340         * i960.c (i960_br_predict_opcode): Remove.
3341         (i960_print_operand) [+]: Emit branch prediction hints.
3342         (i960_function_arg): Return early for VOIDmode.
3343         (i960_round_align): Return early for incomplete types.
3344         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3345         * i960.md (all conditional branches): Add "%+".
3346
3347 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3348
3349         * alias.c (get_alias_set): Don't call language-specific routine more
3350         than is needed and clean up code a bit.
3351         * c-common.c (c_get_alias_set): All references whose type
3352         is char get alias set 0, but character types need not.
3353         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
3354         (make_decl_rtl): Don't call it for FUNCTION_DECL.
3355
3356 2000-06-01  Bruce Korb  <bkorb@gnu.org>
3357
3358         * fixinc/tests/base/...: new base result files
3359
3360 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
3361
3362         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
3363         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
3364         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
3365         will use FCOMI.
3366
3367 2000-06-01  Richard Henderson  <rth@cygnus.com>
3368
3369         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
3370
3371         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
3372
3373 2000-05-31  Richard Henderson  <rth@cygnus.com>
3374
3375         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
3376         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
3377         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
3378
3379 2000-05-31  Richard Henderson  <rth@cygnus.com>
3380
3381         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
3382         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
3383         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
3384         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3385         * config/ia64/ia64.md (all branch/call patterns): Use %+.
3386
3387 2000-05-31  Richard Henderson  <rth@cygnus.com>
3388
3389         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
3390
3391 2000-05-31  Richard Henderson  <rth@cygnus.com>
3392
3393         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
3394         remaining edges.
3395         (find_if_block): Allow THEN with no outgoing edges.
3396         * flow.c (merge_blocks_nomove): Remove a barrier not following
3397         a jump as well.
3398
3399 2000-05-31  Richard Henderson  <rth@cygnus.com>
3400
3401         * flow.c (propagate_block): Move initialization of mem_set_list ...
3402         (init_propagate_block_info): ... here.  Also track blocks with
3403         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
3404
3405 2000-05-31  Richard Henderson  <rth@cygnus.com>
3406
3407         * jump.c (jump_optimize_1): Revert 05-18 change.
3408
3409 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
3410
3411         * invoke.texi: Remove documentation for -fguiding-decls.
3412
3413 2000-05-31  Richard Henderson  <rth@cygnus.com>
3414
3415         * configure.in: Fix typo last change.
3416
3417 2000-05-31  Philipp Thomas  <pthomas@suse.de>
3418
3419         * configure.in (enable-nls): Enable if build == host, i.e. when
3420         not building a canadian cross compiler.
3421         (enable-maintainer-mode): Added for use with i18n.
3422         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
3423         cross section of ALL_LINGUAS and LINGUAS.
3424         * configure: Rebuild.
3425
3426 2000-05-31  Bruce Korb  <bkorb@gnu.org>
3427
3428         * fixinc/check.tpl: rework to use test result tree
3429         * fixinc/Makefile.in: change invocation of check script
3430         * fixinc/check.diff: No longer needed
3431         * fixinc/fixincl.x: regenerate
3432         * fixinc/inclhack.def:  add new tests
3433         * fixinc/tests/base/arch/i960/archI960.h:  New test result
3434         * fixinc/tests/base/curses.h: modified test result
3435         * fixinc/tests/base/stdio.h: ditto
3436         * fixinc/tests/base/time.h: ditto
3437         * fixinc/tests/base/sys/asm.h: ditto
3438         * fixinc/tests/base/sys/stat.h: ditto
3439         * fixinc/tests/base/sys/wait.h: ditto
3440
3441 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3442
3443         * except.c (clear_function_eh_region): Do not free NULL.
3444
3445 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3446
3447         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3448         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3449         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3450         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3451         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3452         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3453         (get_alias_set): Likewise.
3454         Major rework to do more things and allow language-specific code
3455         to just handle special-cases.
3456         (record_alias_subset): Args are HOST_WIDE_INT.
3457         (record_component_alias): Local vars are HOST_WIDE_INT.
3458         Don't handle COMPLEX_EXPR.
3459         (get_varargs_alias_set): Moved from builtins.c.
3460         (get_frame_alias_set): New function.
3461         * builtins.c (expand_builtin_return_address): Use frame alias set.
3462         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3463         for setjmp buffer.
3464         (get_memory_rtx): Rework to use set_mem_attributes.
3465         (get_varargs_alias_set): Deleted from here.
3466         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3467         (c_find_base_decl): Deleted from here.
3468         (c_get_alias_set): Remove many cases and rework to just handle
3469         C-specific cases.
3470         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3471         * c-decl.c (rtl.h, expr.h): Now included.
3472         (init_decl_processing): Call record_component_aliases on array types.
3473         (grokdeclarator): Likewise.
3474         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3475         * c-typeck.c (common_type): Call record_component_aliases for array.
3476         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3477         Set all save areas to the frame alias set.
3478         * calls.c (initialie_argument_information): Call set_mem_attributes.
3479         (compute_argument_addresses, expand_call): Likewise.
3480         * explow.c (set_mem_attributes): New function.
3481         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3482         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3483         LEN and OFFSET now HOST_WIDE_INT.
3484         (clear_by_pieces): Similar changes.
3485         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3486         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3487         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3488         (clear_by_pieces_1): Likewise.
3489         (emit_push_insn): Call set_mem_attributes.
3490         (expand_expr, case INDIRECT_REF): Likewise.
3491         (expand_expr, case VAR_DECL): Call change_address.
3492         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3493         tree_low_cst.
3494         (get_varargs_alias_set, get_frame_alias_set): New decls.
3495         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3496         (new_alias_set, set_mem_attributes): Likewse.
3497         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3498         (assign_stack_temp_for_type): Likewise.
3499         Can split slot even if alias set since can copy.
3500         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3501         (assign_temp): Use host_integerp and tree_low_cst.
3502         (put_var_into_stack): Properly handle SAVE_EXPR.
3503         (put_addressof_into_stack): Likewise.
3504         (assign_parms): Call set_mem_attributes.
3505         Delete #if 0 code.
3506         (fix_lexical_address): Put reference to chain into frame alias set.
3507         (expand_function_start): Call set_mem_attributes.
3508         * integrate.c (expand_inline_function): Likewise.
3509         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3510         * regmove.c (try_apply_stack_adjustment): Likewise.
3511         * reload.c (push_reload, make_memloc): Likewise.
3512         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3513         * rtl.def (MEM): Update comment.
3514         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3515         (move_by_pieces): Change length to HOST_WIDE_INT.
3516         (record_base_value, record_alias_subset): Delete from here.
3517         * stmt.c (expand_decl): Call set_mem_attributes.
3518         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3519         * toplev.c (compile_file): Call init_alias_once earlier.
3520         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3521         from here: now in alias.c.
3522         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3523         (struct tree_decl): Likewise.
3524         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3525         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3526         (output_constant_def, force_const_mem): Likewise.
3527
3528         * flow.c (propagate_block): If block has no successors, stores to
3529         frame are dead if not used.
3530
3531 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3532
3533         * stmt (expand_end_case): Reorder conversion sequence for jump
3534         table to avoid extra truncations.
3535
3536 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3537
3538         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3539         in the block is more than just a simple conditional branch.
3540         (noce_process_if_block): Similarly.
3541
3542 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3543
3544         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3545         queue.
3546
3547 2000-05-30  Michael Meissner  <meissner@redhat.com>
3548
3549         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3550         instructions.  Treat LO_SUM operations as loading the full integer
3551         constant.
3552
3553 2000-05-30  Richard Henderson  <rth@cygnus.com>
3554
3555         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3556
3557 2000-05-30  Richard Henderson  <rth@cygnus.com>
3558
3559         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3560
3561 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3562
3563         * fixinc/tests/*:  Added expected result files for fixinc's make check
3564         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3565
3566 2000-05-30  Richard Henderson  <rth@cygnus.com>
3567
3568         * config/alpha/alpha.md (*setne_internal): Use match_operator
3569         instead of working down from insn.
3570
3571 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3572
3573         * invoke.texi (-Wtraditional): Update WRT function macros.
3574
3575 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3576
3577         * except.c (free_exception_table): Do not free NULL.
3578
3579 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3580
3581         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3582         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3583         and skipping here.
3584
3585 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3586
3587         * flow.c (mark_used_reg): If a register is unconditionally live,
3588         remove any conditional death information.
3589
3590 2000-05-29  Richard Henderson  <rth@cygnus.com>
3591
3592         * final.c (current_output_insn): New.
3593         (final_scan_insn): Set it.
3594         * output.h: Declare it.
3595
3596 2000-05-29  Richard Henderson  <rth@cygnus.com>
3597
3598         * stor-layout.c (finalize_record_size): Fix typo.
3599
3600         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3601         if nlabel is null.
3602
3603 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3604
3605         * cpplib.h (cpp_reader): Remove if_stack.  Change
3606         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3607         * cpphash.h (struct ihash): Change control_macro to a
3608         cpp_hashnode * and shorten name to cmacro.
3609         Add NEVER_REINCLUDE constant.
3610
3611         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3612         Examine the cmacro node directly, no need to call cpp_defined.
3613         (_cpp_execute_include, read_include_file): Set cmacro to
3614         NEVER_REINCLUDE, not U"".
3615         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3616         (cpp_get_token): If pfile->skipping is true, discard text and
3617         keep scanning until we hit a directive; don't expand macros.
3618
3619         * cpplib.c (struct if_stack): Remove if_succeeded, add
3620         was_skipping. Change control_macro to a cpp_hashnode * and
3621         shorten name to cmacro.  Remove typedef IF_STACK.
3622         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3623         (conditional_skip, skip_if_group,
3624         consider_directive_while_skipping): Delete.
3625         (push_conditional): New.
3626         (_cpp_handle_directive): Don't process directives other than
3627         conditionals if we are skipping.
3628
3629         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3630         Update to new scheme.
3631         (validate_else): Skip rest of line here, unconditionally.
3632         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3633         pfile->skipping off.
3634
3635         (all): Remove `scare quotes' from error messages.
3636
3637 2000-05-29  Richard Henderson  <rth@cygnus.com>
3638
3639         * function.c (emit_return_into_block): New line_note arg; emit it.
3640         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3641         for the close brace to accompany HAVE_return.  Move all line notes
3642         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3643
3644 2000-05-29  Richard Henderson  <rth@cygnus.com>
3645
3646         * longlong.h [__alpha] (count_leading_zeros): New.
3647         (count_trailing_zeros): New.
3648         (COUNT_LEADING_ZEROS_0): New.
3649
3650         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3651         (alpha_split_conditional_move): New.
3652         * config/alpha/alpha-protos.h: Prototype them.
3653         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3654         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3655         * config/alpha/alpha.md: Update ffs cix commentary.
3656         (*ze_and_ne): New.
3657         (*nabssf2, *nabsdf2): New.
3658         (*mov[qhsd]icc_internal): Use add_operand.
3659         (if_then_else constant splitters): New.
3660         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3661         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3662
3663 2000-05-29  Richard Henderson  <rth@cygnus.com>
3664
3665         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3666         a constant to NEG or NOT when conditions allow.
3667
3668         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3669         unless both args are general_operand.  Don't canonicalize plus
3670         to ior unless it helps.
3671
3672         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3673         instead track register_life_up_to_date.  Toggle no_new_pseudos
3674         around if_convert.
3675
3676 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3677
3678         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3679         so output_operand doesn't see them.
3680
3681 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3682
3683         * lcm.c (make_preds_opaque): Fix comment.
3684         (optimize_mode_switching): Use NORMAL_MODE instead of
3685         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3686         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3687         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3688         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3689         (MODE_USES_IN_EXIT_BLOCK): Delete.
3690         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3691         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3692         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3693         (MODE_NEEDED): Don't look for USE.
3694         (EPILOGUE_USES): Define.
3695
3696 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3697
3698         * mklibgcc.in (all): Variable initialised to `libgcc'.
3699
3700 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3701
3702         * toplev.h (skip_leading_substring): New macro.
3703         * toplev.c (decode_f_option): Use skip_leading_substring instead
3704         of strncmp.
3705         (decode_W_option): Likewise.
3706
3707 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3708
3709         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3710         modify reg_names.
3711
3712 2000-05-28  Richard Henderson  <rth@cygnus.com>
3713
3714         * regclass.c (record_operand_costs): Protect reg_changes_size
3715         with CLASS_CANNOT_CHANGE_SIZE.
3716
3717         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3718
3719 2000-05-28  Richard Henderson  <rth@cygnus.com>
3720
3721         * function.c (diddle_return_value): A pcc-style struct return
3722         returns a pointer.
3723
3724 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3725
3726         * cppfiles.c: Read files in, using mmap if possible, then
3727         prescan them separately.
3728         (read_file, read_with_read): New functions.
3729         * cpplex.c: Don't define UCHAR_MAX.
3730         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3731         the file here.
3732
3733         * cppinit.c (handle_option): Automatically define __cplusplus,
3734         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3735         the respective -lang switch.
3736
3737         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3738         prototype): Move to...
3739         * cpplib.h: ... here.  Rename struct hashnode to struct
3740         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3741         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3742
3743 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3744
3745         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3746
3747         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3748         (class_can_change_size): New variable.
3749         (reg_changes_size): New variable.
3750         (init_reg_sets_1): Initialise class_can_change_size.
3751         (record_operand_costs): Remove subreg_changes_size.
3752         Don't pass it around.  Instead update reg_changes_size.
3753         (regclass): Initialise and free reg_changes_size.  If a register
3754         changes size, don't preference it to a class that contains
3755         registers that can't change size.
3756         (record_reg_classes): Don't look at subreg_changes_size.
3757
3758 2000-05-27  Richard Henderson  <rth@cygnus.com>
3759
3760         * print-rtl.c (reg_names): Remove const.
3761         * regclass.c (reg_names): Likewise.
3762         * regs.h (reg_names): Likewise.
3763         * hard-reg-set.h (reg_names): Likewise.
3764
3765 2000-05-27  Richard Henderson  <rth@cygnus.com>
3766
3767         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3768
3769 2000-05-27  Richard Henderson  <rth@cygnus.com>
3770
3771         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3772         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3773         (alpha_expand_prologue): Emit prologue_mcount if needed.
3774         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3775         * config/alpha/alpha.md (prologue_mcount): New.
3776         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3777         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3778         * config/alpha/netbsd.h: Likewise.
3779
3780 2000-05-27  Richard Henderson  <rth@cygnus.com>
3781
3782         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3783         change to config/elfos.h.
3784
3785 2000-05-27  Richard Henderson  <rth@cygnus.com>
3786
3787         * Makefile.in (resource.o): Depend on except.h.
3788         * except.h (output_exception_table_data): Prototype.
3789         * genconfig.c (gen_peephole2): Prototype.
3790         * genemit.c (main): Include ggc.h.
3791         * genoutput.c: Revert parts of last change: include errors.h
3792         (main): Set progname.
3793         * recog.c: Include hard-reg-set.h before recog.h.
3794         * resource.c: Include except.h.
3795
3796         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3797         with RTX_CODE.
3798         (alpha_write_linkage): Protect with BUFSIZ.
3799         (alpha_need_linkage): Update prototype.
3800         * config/alpha/alpha.c (function_arg): Move VMS code here.
3801         (alpha_links_base): Remove.
3802         (alpha_links): New.
3803         (mark_alpha_links_node, mark_alpha_links): New.
3804         (alpha_write_one_linkage): New.
3805         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3806         (alpha_write_linkage): Use splay_tree_foreach.
3807         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3808         to get the linkage symbol.
3809         (call_value_vms): Likewise.
3810         * config/alpha/elf.h (output_file_directive): Remove decl.
3811         (ctors_section, dtors_section): Prototype.
3812         (sbss_section, sdata_section): Prototype.
3813         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3814         (readonly_section, link_section, literals_section): Prototype.
3815         (ctors_section, dtors_section): Prototype.
3816         (vms_valid_decl_attribute_p): Remove decl.
3817         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3818
3819 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3820
3821         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3822
3823         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3824         substituting the REG in a (subreg:X (reg:Y ...)).
3825
3826 2000-05-28  Neil Booth  <NeilB@earthling.net>
3827
3828         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3829         first token of a line BOL.  Update EOF code for this.
3830         Remove illegal directive check - it appears in the (not
3831         yet committed) caller.
3832         * cpplib.h (BOL): New flag.
3833
3834 2000-05-28  Neil Booth  <NeilB@earthling.net>
3835
3836         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3837         (_cpp_free_toklist): No comment space to free.
3838         (expand_comment_space): Remove.
3839         (save_comment_space): Place the comment in the current token and
3840         not in a separate comment space.
3841         (_cpp_lex_line): Save comments during plain code and #define
3842         directives only.
3843         * cpplib.h (struct _cpp_toklist): Remove comment space.
3844
3845 2000-05-28  Neil Booth  <NeilB@earthling.net>
3846
3847         * cppexp.c (parse_assertion): Supply extra argument to
3848         _cpp_init_toklist.
3849         * cpplib.c (do_assert, do_unassert): Similarly.
3850         * cpphash.h (_cpp_init_toklist) Update.
3851         (_cpp_expand_token_space): New.
3852         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3853         * cpplex.c (_cpp_init_toklist): New argument.
3854         (parse_string2): New argument multiline_ok.
3855         (spell_token): Take a const cpp_token *.
3856         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3857         (SPELL_ macros): Replace with enum.
3858         (expand_token_space): Replace with _cpp_expand_token_space.
3859         Take COUNT argument.
3860         (IS_DIRECTIVE): Update.
3861         (_cpp_lex_line): Update token structure before parsing number.
3862         Don't assume start at beginning of token list.
3863         (save_comment): Use INIT_TOKEN_NAME.
3864
3865 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3866
3867         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3868         -Wmissing-prototypes.
3869         * configure: Regenerate.
3870         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3871
3872         * builtins.c, calls.c: Change all instances of gen_call_* or
3873         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3874         * calls.c (struct_value_size_rtx): Separate definition from
3875         initialization to avoid unused variable warning.
3876
3877         * genflags.c (gen_macro): New function.
3878         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3879         (gen_nonproto): Delete.
3880         (gen_insn): Put all insns on the same obstack.
3881         (main): Generate prototypes for everything unconditionally.
3882
3883         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3884         out check for wchar_t.
3885         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3886         * system.h: Add infrastructure for defining missing
3887         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3888         definitions of UCHAR_MAX and SSIZE_MAX.
3889         * configure: Regenerate.
3890         * config.in: Regenerate.
3891
3892         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3893         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3894         headers.
3895         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3896         libgcc2.a, or libgcc1.null.
3897
3898 2000-05-27  Richard Henderson  <rth@cygnus.com>
3899
3900         * Makefile.in (recog.o): Don't depend on resource.h.
3901         * recog.c: Don't include resource.h.
3902         (recog_last_allowed_insn): Remove.
3903         (recog_next_insn): Remove.
3904         (struct peep2_insn_data): New.
3905         (peep2_insn_data, peep2_current): New.
3906         (peep2_next_insn): New.
3907         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3908         (peep2_find_free_register): New.
3909         (peephole2_optimize): Track life information by insn as we go.
3910         * recog.h: Update declarations.
3911         * resource.c (find_free_register, reg_dead_p): Remove.
3912         * resource.h: Remove their declarations.
3913         * toplev.c: Include hard-reg-set.h before recog.h.
3914
3915         * genconfig.c (max_insns_per_peep2): New.
3916         (gen_peephole2): New.
3917         (main): Call it.
3918         * genemit.c (output_peephole2_scratches): Generate calls to
3919         peep2_find_free_register; adjust surrounding code.
3920         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3921         * genrecog.c (change_state): Don't track last_insn.
3922         (write_action): Write into *_pmatch_len before accepting.
3923         (write_tree): Adjust peephole2_insns and subroutines to match.
3924
3925         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3926
3927         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3928         (hard_int_register_operand): New.
3929         * config/alpha/alpha-protos.h: Declare it.
3930         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3931         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3932         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3933
3934 2000-05-27  Richard Henderson  <rth@cygnus.com>
3935
3936         * function.c (thread_prologue_epilogue_insns): Don't move the
3937         line note at the head of the chain.  Only force a lineno note
3938         before the end of block 0.
3939
3940 2000-05-27  Richard Henderson  <rth@cygnus.com>
3941
3942         * gensupport.c (collect_insn_data): Record the maximum number
3943         of alternatives, not the last seen.
3944
3945         * genoutput.c: Don't include errors.h.
3946         (struct data): Add lineno member.
3947         (have_error): New.
3948         (scan_operands): Use message_with_line instead of error.
3949         (validate_insn_alternatives): Likewise.
3950         (gen_insn): Accept and store the pattern's line number.
3951         (gen_peephole, gen_expand, gen_split): Likewise.
3952         (main): Don't set progname.  Pass line_no to gen_foo.
3953
3954 2000-05-27  Richard Henderson  <rth@cygnus.com>
3955
3956         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3957         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3958         * config/d30v/d30v.md (attr predicable): New.
3959         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3960         (andsi3*): Unify into one pattern.
3961         (iorsi3*, xorsi3*): Likewise.
3962         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3963         conditional return.
3964         (old cond_exec patterns): Remove.
3965         (define_cond_exec): New.
3966
3967 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3968
3969         * tree.h (TREE_CODE_LENGTH): New macro.
3970         * c-common.c (c_find_base_decl): Use it.
3971         * expr.c (safe_from_p): Likewise.
3972         * print-tree.c (print_node): Likewise.
3973         * tree.c (make_node, copy_node, get_identifier): Likewie.
3974         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3975         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3976         * fold-const.c (make_range): Likewise.
3977         (fold): Likewise; also use first_rtl_op.
3978         * c-iterate.c (collect_iterators): Use first_rtl_op.
3979         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3980         Use IS_EXPR_CODE_CLASS.
3981         (preexpand_calls): Likewise.
3982         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3983         and TREE_CODE_LENGTH.
3984         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3985
3986 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3987
3988         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3989         than '%1(%*)'.
3990         (movdi_internal64): Likewise.
3991
3992         * config/rs6000/rs6000.md: Correct order of operands for DImode
3993         boolean patterns.
3994
3995         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3996         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3997         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3998         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3999         boolean_operator for the boolean patterns without NOTs.
4000
4001         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
4002         from reg_or_u_cint_operand.  Change comment and behaviour.
4003         (logical_operand): Clean up, add assertion.
4004         (non_logical_cint_operand): Also check for
4005         reg_or_logical_cint_operand.
4006         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
4007         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
4008         in the expander.
4009         (xorsi3): Likewise.
4010         (iordi3): Likewise.
4011         (xordi3): Likewise.
4012
4013 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
4014
4015         * tree.h (struct record_layout_info): Rename to (struct
4016         record_layout_info_s).
4017         * stor-layout.c (start_record_layout): Replace
4018         `record_layout_info' with `record_layout_info_s'.
4019
4020 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
4021
4022         * flow.c (find_label_refs): New function.
4023         (find_basic_blocks_1): Call it for each alternative of a call
4024         placeholder.
4025
4026 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
4027
4028         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
4029         of get_pc.
4030
4031 2000-05-25  Richard Henderson  <rth@cygnus.com>
4032
4033         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
4034         so strict about DImode.
4035         (alpha_swapped_comparison_operator): Likewise.
4036         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
4037         any integer output mode.
4038         (*setcc_internal): Likewise.
4039         (*setcc_swapped_internal): Likewise.
4040         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
4041         (*mov[qhs]icc_internal): New.
4042         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
4043
4044 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4045
4046         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
4047
4048 2000-05-25  Richard Henderson  <rth@cygnus.com>
4049
4050         * bb-reorder.c (reorder_block_def): Reorder elements for size.
4051         Remove add_jump; add next; replace flags with visited.
4052         (rbd_init): Remove.
4053         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
4054         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
4055         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
4056         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
4057         (RBI): New.
4058         (reorder_index, reorder_last_visited): Remove.
4059         (skip_insns_after_block): Rewrite to use a switch.
4060         (get_common_dest): Remove.
4061         (chain_reorder_blocks): Remove.
4062         (record_effective_endpoints): Split out from reorder_basic_blocks.
4063         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
4064         (make_reorder_chain_1): Renamed from old make_reorder_chain.
4065         Only construct the reorder chain, do not move insns.  Try harder
4066         to tail recurse.
4067         (label_for_bb, emit_jump_to_block_after): New.
4068         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
4069         and adjust the jump insns appropriately.  Fixup basic_block_info.
4070         (verify_insn_chain): Always define.
4071         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
4072         in allocation size.
4073         (make_new_scope): Don't write zeros to calloc'd space.
4074         (build_scope_forest): Rely on xrealloc to DTRT.
4075         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
4076         profile_arc_flag.  Streamline EH test.
4077
4078         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
4079         * basic-block.h: Declare them.
4080
4081 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
4082
4083         * emit-rtl.c (reset_used_decls): New function.
4084         (unshare_all_rtl_again): Call it.
4085
4086 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
4087
4088         * cpplex.c (maybe_macroexpand): Warn about function-like
4089         macros used in non-function context, if -Wtraditional.
4090
4091 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4092
4093         * recog.c (peephole2_optimize): Use INSN_P.
4094
4095 2000-05-25  Richard Henderson  <rth@cygnus.com>
4096
4097         * ifcvt.c (seq_contains_jump): New.
4098         (noce_try_store_flag_constants): Use it to fail conversion.
4099         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
4100
4101 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
4102
4103         * except.h (can_throw): Declare it.
4104         * except.c (can_throw): Give it external linkage.
4105         * resource.c (find_dead_or_set_registers): Use can_throw.
4106
4107 2000-05-25  Richard Henderson  <rth@cygnus.com>
4108
4109         * flow.c (mark_set_1): Don't record conditionally dead memory.
4110
4111 2000-05-25  Jan Hubicka  <jh@suse.cz>
4112
4113         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
4114         and pc_set at the place of simplejump_p and condjump_p.
4115         * cse.c (record_jump_equiv): Likewise.
4116         * emit-rtl.c (emit): Likewise.
4117         * explow.c (find_next_ref): Likewise.
4118         * flow.c (tidy_fallthru_edge): Likewise.
4119         (init_propagate_block_info): Likewise.
4120         * gcse.c (delete_null_pointer_checks): Likewise.
4121         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
4122         dead_or_predicable): Likewise.
4123         * integrate.c (copy_insn_list): Likewise.
4124         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
4125         for_each_insn_in_loop, check_dbra_loop, get_condition,
4126         insert_bct, load_mems): Likewise.
4127         * resource.c (find_dead_or_set_registers): Likewise.
4128         * sibcalls.c (simplejump_p): Likewise.
4129         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
4130
4131 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
4132
4133         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
4134         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
4135         when unaligned.
4136         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
4137         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
4138         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
4139         * rs6000.md: Name various internal patterns.
4140
4141 2000-05-25  Jan Hubicka  <jh@suse.cz>
4142
4143         * jump.c (invert_exp_1): Remove first argument, use pc_set
4144         to get the expression.
4145         (redirect_exp): Make static; redirect only the pc_set expression,
4146         remove first argument.
4147         (invert_exp): Remove first argument, make static.
4148         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
4149         any_onlyjump at most places where we originaly did condjump_p
4150         and simplejump_p.
4151         (jump_back_p, follow_jumps, thread_jumps): Likewise.
4152         (delete_barrier_succesors): Use pc_set.
4153         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
4154         calls of invert_exp and redirect_exp.
4155         * rtl.h (redirect_exp, invert_exp): Remove.
4156         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
4157
4158 2000-05-25  Richard Henderson  <rth@cygnus.com>
4159
4160         * stmt.c (expand_end_bindings): Fix thinko last change.
4161
4162 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
4163             Andrew Haley  <aph@cygnus.com>
4164
4165         * except.c  (func_eh_entry): Add emitted field.
4166         (new_eh_region_entry): Set emitted field to 0;
4167         (output_exception_table_entry): Only emit previously un-emitted data,
4168         and send it to the eh_data section.
4169         (output_exception_table): Break out common parts. Output
4170         exception table for entire compilation unit to eh_data section.
4171         (output_exception_table_data): Common parts of output_exception_table.
4172         Send output to eh_data section.
4173         (output_function_exception_table): Output exception table data for
4174         a single function to eh_data section.
4175         (free_exception_table): New external to free the table.
4176         * except.h (free_exception_table): Add prototype.
4177         (output_function_exception_table): Add prototype.
4178         * final.c (final_end_function): Output function exception table
4179         for IA64_UNWIND_INFO.
4180         (final_scan_insn): Emit any unwind directives for an insn.
4181
4182         * frame-dwarf2.c: New file containing all DWARF 2 specific code
4183         from frame.c.
4184         * frame.c: Remove all DWARF 2 specific code.
4185         * config/ia64/frame-ia64.c: New file.
4186         (gthread_stuff): Make all gthread available with
4187         IA64_UNWIND_INFO.
4188         (dwarf_fde): Define an IA64 struct for dwarf_fde.
4189         (__register_frame_info, __register_frame): Move to common area of file.
4190         (__register_frame_info_table, __register_frame_table): Move to common i
4191         area.
4192         (__deregister_frame_info, __deregister_frame): Move to common area.
4193         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
4194         (read_uleb128): New version for ia64.
4195         (get_unwind_record): Read the next IA-64 unwind record.
4196         (read_R_record): Read a region header record.
4197         (process_a_b_reg_code): X record helper.
4198         (read_X_record): Read an X format record.
4199         (read_B_record): Read a B format record.
4200         (P3_record_types): List of record types matching the P3 format.
4201         (P7_record_types): List of record types matching the P7 format.
4202         (P8_record_types): List of record types matching the P8 format.
4203         (read_P_record): Read a P format record.
4204         (init_ia64_reg_loc): Set default fields for a register.
4205         (init_ia64_unwind_frame): Set defaults for all register records.
4206         (execute_one_ia64_descriptor): Execute one descriptor record.
4207         (rse_address_add): Calculate the position of a local reg in memory.
4208         (normalize_reg_loc): Turn a location descriptor into a memory address.
4209         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
4210         within a specified PC offset range.
4211         (get_real_reg_value): Given a register location, retrieve its value.
4212         (set_real_reg_value): Change the value of a register location.
4213         (copy_reg_value): Copy reg values, if needed.
4214         (copy_saved_reg_state): Copy all registers that need to be copied.
4215         (process_state_between): Normalize all frame register records that
4216         fall within the specified PC range.
4217         (frame_translate): Take a processed frame description, and turn
4218         everything into addresses.
4219         (build_ia64_frame_state ): Find and create frame state record for a PC.
4220         (get_personality): Get the personality routine for a given frame.
4221         (get_except_table): Get the exception table for a given frame.
4222         (record_name): Unwind record names for debugging.
4223         (print_record): Print and unwind record.
4224         (print_all_records): Print an entire unwind image.
4225         (__ia64_backtrace): Print a backtrace.
4226         (ia64_backtrace_helper): New function.
4227         (__register_frame_info_aux): New function.
4228         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
4229
4230         * frame.h (enum unw_record_type): New unwind record types.
4231         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
4232         (struct unw_r_record, unwind_record): New unwind record structs.
4233         (struct unwind_info_ptr): Unwind information layout.
4234         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
4235         descriptors.
4236         (struct ia64_reg_loc): Register location description.
4237         (struct ia64_frame_state): Location of all registers in a frame.
4238         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
4239         * libgcc2.c (__ia64_personality_v1): Personality routine.
4240         (__calc_caller_bsp): Calculate the bsp register for the caller's
4241         frame.
4242         (ia64_throw_helper): Figure out who to return to and set up the
4243         registers.
4244         (__throw): Throw routine.
4245
4246         * output.h (assemble_eh_align, assemble_eh_label): New functions
4247         to generate EH info where we want it.
4248         (assemble_eh_integer): New function.
4249         * toplev.c (compile_file): Output module level exception table for
4250         non-ia64 targets.
4251         (main): Set exceptions_via_longjump and flag_new_exceptions based
4252         on IA64_UNWIND_INFO too.
4253
4254         * varasm.c (assemble_eh_label): Generate a label via
4255         ASM_OUTPUT_EH_LABEL if it has been specified.
4256         (assemble_eh_align): Generate an alignment directive via
4257         ASM_OUTPUT_EH_ALIGN if it has been specified.
4258         (assemble_eh_label): Generate an integer value via
4259         ASM_OUTPUT_EH_type if they have been specified.
4260         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
4261         (ia64_init_builtins): Add __builtin_ia64_bsp
4262         and __builtin_ia64_flushrs.
4263         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
4264         IA64_BUILTIN_FLUSHRS.
4265         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
4266         IA64_BUILTIN_FLUSHRS.
4267
4268         * config/ia64/ia64.md (flushrs): New insn to flush the register
4269         stack.  Add to unspec list.
4270
4271         * config/ia64/crtbegin.asm (frame_object): Change size.
4272         (__do_frame_setup_aux): New function.
4273         * config/ia64/crtend.asm: call __do_frame_setup_aux.
4274         * config/ia64/t-ia64 (LIB2ADDEH): Add.
4275         * Makefile.in (LIB2ADDEH): Add.
4276         (LIB2ADD): Use LIB2ADDEH.
4277
4278 2000-05-24  Richard Henderson  <rth@cygnus.com>
4279
4280         * recog.c (offsettable_address_p): If mode size is zero, assume
4281         BIGGEST_ALIGNMENT.
4282
4283 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
4284
4285         * configure.in: Check for -Wno-long-long option support and improve
4286         handling of warning CFLAGS for stages 1 and 2.
4287         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
4288         * configure: Regenerate.
4289
4290 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
4291
4292         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
4293         * contrib.texi: New file.
4294
4295 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4296
4297         * loop.c (basic_induction_var): Avoid double recording of an increment.
4298
4299 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4300
4301         * Back out this patch:
4302         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
4303           * loop.h (struct induction): Add multi_insn_incr.
4304           * loop.c (basic_induction_var): New multi_insn_incr argument.
4305           Set it if we search back through previous insns for the biv.
4306           (record_biv): New multi_insn_incr argument; fill in struct induction.
4307           (strength_reduce): Discard an iv with multiple bivs, any of
4308           which require multiple insns to increment.
4309
4310         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
4311
4312 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4313
4314         * rtl.h (loc_mentioned_in_p): Declare.
4315         * reload.c (loc_mentioned_in_p): Moved from here...
4316         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
4317         Fix loop increment for 'E' handling.
4318         * loop.c (strength_reduce): When doing biv->giv conversion,
4319         take multi-insn biv increments into account.
4320
4321 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
4322
4323         * stmt.c (expand_end_bindings): Look through NOTEs to find a
4324         BARRIER.
4325
4326 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
4327
4328         * calls.c (expand_call): Handle cleanups in tail-recursion
4329         arguments analagously to cleanups in sibling calls.
4330
4331 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4332
4333         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
4334         All callers changed.
4335
4336 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4337
4338         * expr.c (expand_assignment, store_expr, expand_expr,
4339         expand_expr_unaligned): Set in_check_memory_usage while emitting
4340         chkr_check_addr libcall.
4341
4342 2000-05-24  Nick Clifton  <nickc@cygnus.com>
4343
4344         * fold-const.c (extract_muldiv): When constructing a
4345         multiplier/divisor, do not expect const_binop to correctly
4346         determine if overflow has occured, so check explicitly.
4347
4348 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
4349
4350         * c-decl.c (build_enumerator): Don't modify the value's type,
4351         convert it.
4352
4353 2000-05-24  Andreas Jaeger  <aj@suse.de>
4354
4355         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
4356
4357 2000-05-24  Eric Christopher <echristo@cygnus.com>
4358
4359         * configure.in: Redefine inhibit_libc conditions.
4360         * libgcc2.c: Remove inhibit_libc conditional define.
4361         * configure: Regenerate.
4362
4363 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
4364
4365         * configure.in:  For --enable-languages=LIST, check for empty LIST.
4366         * configure:  Regenerate.
4367
4368 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
4369
4370         * pdp11.h (STACK_BOUNDARY): Define.
4371
4372 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
4373
4374         * ifcvt.c (if_convert): Update life info globally.
4375
4376 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4377
4378         * emit-rtl.c (unshare_all_decls): New function.
4379         (unshare_all_rtl): Call it.
4380
4381 2000-05-23  Nick Clifton  <nickc@cygnus.com>
4382
4383         * configure.in: Treat 'strongarm' as if it were 'arm' when
4384         determining cpu type.
4385
4386         * configure: Regenerate.
4387
4388         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
4389         where constant strings are involved.
4390
4391         * config/arm/arm.h (arm_condition_codes): Change type to 'const
4392         char *'.
4393
4394         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
4395         cases where constant strings are involved.
4396
4397 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
4398
4399         * config/sh/sh.c (gen_far_branch, split_branches): Update
4400         to reflect new prototypes for redirect_jump and invert_jump.
4401         (sh_insn_length_adjustment): Get rid of const warnings.
4402
4403 2000-05-23  Kazu Hirata  <kazu@hxi.com>
4404
4405         * invoke.texi (Options for Debugging Your Program or GCC): Update
4406         the names of dump files.
4407
4408 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
4409
4410         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
4411         * configure: Regenerated.
4412
4413 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4414
4415         * simplify-rtx.c (SIGN_EXTEND): New macro.
4416         (simplify_unary_operation, simplify_binary_operation,
4417         simplify_relational_operation): Use SIGN_EXTEND.  Make low
4418         halves of (low, high) pairs unsigned if they weren't already.
4419         (simplify_ternary_operation): Cast INTVAL to unsigned before
4420         comparing to a MODE_BITSIZE.
4421
4422 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4423
4424         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
4425         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
4426
4427         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
4428         gcc_AC_NEED_DECLARATIONS.
4429
4430         * dwarfout.c: Don't prototype time().
4431
4432         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
4433
4434         * system.h: Likewise.
4435
4436         * toplev.c: Likewise.
4437
4438 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4439
4440         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4441
4442 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4443
4444         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4445
4446 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4447
4448         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4449
4450 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4451
4452         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4453         (alpha_start_function): Never write ..ng label if VMS or NT.
4454         (alpha_align_insns): Remove GP_IN_USE arg.
4455         Alignment now unsigned.
4456         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4457         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4458         and two define_insn's.
4459
4460 2000-05-22  Richard Henderson  <rth@cygnus.com>
4461
4462         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4463
4464 2000-05-22  Richard Henderson  <rth@cygnus.com>
4465
4466         * stor-layout.c (place_field): Change rli->size to rli->offset.
4467
4468 2000-05-22  Richard Henderson  <rth@cygnus.com>
4469
4470         * function.c (thread_prologue_and_epilogue_insns): Make sure
4471         existing line number notes appear after the prologue.
4472
4473 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4474
4475         * config/alpha/alpha.c (alpha_fnname): New static variable.
4476         (print_operand, case '~'): New case.
4477         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4478         (alpha_start_function): Set alpha_fnname.
4479         Write "ng" label if no ldgp; don't write ldgp insn.
4480         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4481         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4482
4483 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4484
4485         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4486         on deleted labels.
4487
4488 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4489
4490         * varasm.c (eh_frame_section): Revert change to argument list.
4491
4492 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4493
4494         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4495         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4496
4497         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4498         dangling "else" that causes "break" to be conditional.
4499         Also remove unneeded code at start.
4500
4501 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4502
4503         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4504         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4505         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4506
4507 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4508
4509         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4510         just one argument.
4511
4512 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4513
4514         * alias.c (record_component_aliases): New function.
4515         * tree.h: Clean up some declarations and comments.
4516         (record_component_aliases): New declaration.
4517         * tree.c (get_alias_set): If type and has alias set, use it.
4518
4519 2000-05-22  Richard Henderson  <rth@cygnus.com>
4520
4521         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4522         IF_THEN_ELSE to a setcc form.
4523         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4524
4525 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4526
4527         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4528         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4529
4530 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4531
4532         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4533         not a PARALLEL.
4534
4535 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4536
4537         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4538         * config/mn10300/mn10300.c (print_operand): Likewise.
4539
4540         * final.c (split_double): Right shift of negative values is not
4541         portable.
4542
4543         * ifcvt.c (if_convert): Scan and kill dead code.
4544
4545         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4546
4547 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4548
4549         * diagnostic.c: Eliminate implicit int.
4550         * except.c, gcc.c: Add static prototypes.
4551         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4552         * gensupport.c (process_rtx): Use XVEC to initialize vector
4553         slot of 'split'.
4554
4555         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4556         debug_reg_names instead of static reg_names.  If not, define
4557         global reg_names.
4558         * regclass.c: Don't define global reg_names unless
4559         DEBUG_REGISTER_NAMES is defined.
4560
4561         * reload1.c (order_regs_for_reload): Remove unused variable.
4562         * varasm.c: Include output.h after defaults.h.  Define
4563         eh_frame_section as function of no args, not of unspecified args.
4564
4565         * gcc.c: Constify argbuf; arguments to store_arg,
4566         process_command, main; elements of struct command and struct
4567         switchstr; local variables in execute, process_command, main.
4568
4569 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4570
4571         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4572         * fixinc/check.diff:  regenerated
4573         * fixinc/fixincl.x:  regenerated
4574
4575 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4576
4577         * alias.c: Clarify some comments.
4578         (record_base_value): REGNO is unsigned.
4579         * rtl.h (record_base_value): Likewise.
4580
4581         * alias.c (aliases_everything_p): Don't special-case QImode here.
4582         * c-common.c (c_get_alias_set): Do it here.
4583         Handle BIT_FIELD_REF by getting alias info for arg.
4584         Use POINTER_TYPE_P.
4585
4586 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4587
4588         * mklibgcc.in: Restore rule to create ${dir}.
4589
4590 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4591
4592         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4593         GCC_FOR_TARGET used by MULTILIBS.
4594         * mklibgcc.in: Make sure each .o file depends on the
4595         directory it will be in.
4596         Make the multilib directory depends libgcc.
4597
4598 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4599
4600         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4601
4602 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4603
4604         * fold-const.c (make_range): Handle degenerated intervals.
4605         Fixes c-torture/execute/991221-1.c
4606
4607 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4608
4609         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4610         * reload.c (find_equiv_reg): Likewise.
4611         * alias.c (init_alias_analysis): Likewise.
4612         Only call prologue_epilogue_contains on insns.
4613         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4614         * bb-reorder.c (hard-reg-set.h): Include earlier.
4615         * haifa-sched.c (hard-reg-set.h): Likewise.
4616         * ifcvt.c (hard-reg-set.h): Likewise.
4617         * local-alloc.c (hard-reg-set.h): Likewise.
4618         * loop.c (hard-reg-set.h): Likewise.
4619         * predict.c (hard-reg-set.h): Likewise.
4620         * regrename.c (hard-reg-set.h): Likewise.
4621         * flow.c (hard-reg-set.h): Likewise.
4622         (reg_set_to_hard_reg_set): New function.
4623         * bitmap.c (regs.h, basic-block.h): No longer include.
4624         (bitmap.h): Now include.
4625         * conflict.c (hard-reg-set.h): Include.
4626         * profile.c (hard-reg-set.h): Likewise.
4627         * print-rtl.c (hard-reg-set.h): Likewise.
4628         * sbitmap.c (hard-reg-set.h): Likewise.
4629         * toplev.c (hard-reg-set.h): Likewise.
4630         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4631         * hard-reg-set.h (reg_names): Now constant.
4632         * regs.h (reg_names): Likewise.
4633         * regclass.c (reg_names): Likewise.
4634         * loop.h (basic-block.h): No longer include.
4635         (bitmap.h): Now include.
4636         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4637         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4638         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4639
4640 2000-05-19  Jan Hubicka  <jh@suse.cz>
4641             Richard Henderson  <rth@cygnus.com>
4642
4643         * basic-block.h (struct edge_def): New field "count".
4644         (struct basic_block_def): Likewise.
4645         * flow.c (entry_exit_blocks): Add count fileds.
4646         (split_edge): Keep count information up-to-date.
4647         (dump_edge_info, dump_flow_info): Dump count fields.
4648
4649         * final.c (count_instrumented_edges): Rename to edge from arc.
4650         (end_final): Update users.
4651         * profile.c: Include expr.h, basic-block.h.
4652         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4653         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4654         (ignore_next_note, return_label_execution_count): Kill.
4655         (bbg_file_name, da_file_name): Kill.
4656         (edge_info, bb_info): New structures.
4657         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4658         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4659         (total_num_edges_instrumented): Likewise.
4660         (init_arc, expand_spanning_tree): Kill.
4661         (fill_spanning_tree, tablejump_entry_p): Kill.
4662         (instrument_edges):  Rewrite from instrument_arcs to use
4663         commit_edge_insertions infrastructure.
4664         (compute_branch_probabilities): Remove arguments; rewrite for
4665         CFG infrastructure; use rtl_dump_file directly.
4666         (branch_prob, find_spanning_tree): Likewise.
4667         (union_groups, find_group): New.
4668         (init_branch_prob): Make bbg_file_name and da_file_name local.
4669         (end_branch_prob): Use rtl_dump_file directly.
4670         (init_edge_profiler): Rename to edge from arc.
4671         (output_arc_profiler): Kill.
4672         (gen_edge_profiler): New.
4673         (output_func_start_profiler): Turn off profiling.  Make the
4674         constructor static when we can.
4675         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4676
4677         * toplev.c (DFI_flow): Remove.
4678         (DFI_cfg, DFI_life): New.
4679         (dump_file): Update accordingly.
4680         (compile_file): Call end_branch_prob if profile_arc_flag too.
4681         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4682         profiling after the CFG is built.  Move flow1 life analysis to
4683         DFI_life.  Always estimate remaining probabilities.
4684
4685 2000-05-19  Richard Henderson  <rth@cygnus.com>
4686
4687         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4688
4689         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4690
4691 2000-05-19  Richard Henderson  <rth@cygnus.com>
4692
4693         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4694         remove labels and code following when LABEL_NUSES goes to zero.
4695         (invert_jump): Likewise.
4696         (jump_optimize_1): Fix redirect/invert arguments.
4697         (do_cross_jump, thread_jumps): Likewise.
4698         * flow.c (split_edge): Likewise.
4699         * reorg.c (optimize_skip): Likewise.
4700         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4701         * profile.c (instrument_arcs): Likewise.
4702         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4703         * rtl.h: Update prototypes.
4704
4705 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4706
4707         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4708         notes.
4709         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4710         critical edges.
4711
4712 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4713
4714         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4715         past l1 when deleting whitespace and markers.
4716
4717         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4718         * cpplib.c (do_unassert): Put the list to compare against on
4719         the stack.
4720
4721 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4722
4723         * fixinc/README:  cleaned up old documentation
4724         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4725         * fixinc/check.tpl: compute the list of needed directories
4726         emit "#if defined(name)" because of conflict
4727         omit machine name differences from output differences
4728         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4729         (machine_name): change test text to use `sed' markers
4730         * fixinc/fixincl.x: regen
4731
4732 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4733
4734         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4735         a CONSTRUCTOR.
4736
4737 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4738
4739         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4740         it to match the current practice.
4741
4742 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4743
4744         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4745
4746 2000-05-18  Richard Henderson  <rth@cygnus.com>
4747
4748         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4749         * rtl.h (insn_dependant_p): Declare it.
4750         * loop.c (strength_reduce): Use it.
4751
4752 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4753
4754         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4755         16-bit and 64-bit clean-up.
4756
4757 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4758
4759         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4760         * configure: Rebuilt.
4761
4762 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4763
4764         * genopinit.c: Use $ for escape sequences in optab patterns.
4765         Remove backslashes from optab patterns.  Change $A, $B, $C to
4766         expand to (int) whatever instead of just whatever; remove
4767         explicit (int) from all optab patterns.
4768
4769         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4770         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4771         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4772         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4773         xstrdup.
4774
4775 2000-05-18  Richard Henderson  <rth@cygnus.com>
4776
4777         * jump.c (jump_optimize_1): Base minimum insn count during
4778         find_cross_jump on BRANCH_COST.
4779
4780 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4781
4782         * print-rtl.c (print_rtx): Only print note line number as string
4783         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4784         * final.c (final_scan_insn): Do nothing for note line number 0.
4785
4786 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4787
4788         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4789         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4790         NOTE_INSN_DELETED_LABEL.
4791
4792 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4793
4794         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4795         uninitialised data in .rodata not .bss, and do not interpret an
4796         error in the initialisation value as meaning that the variable
4797         should be placed in the .bss section.
4798
4799 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4800
4801         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4802         not `$ac_cv_prog_cc_cc_c_o'.
4803         * configure: Regenerated.
4804
4805 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4806             Richard Henderson  <rth@cygnus.com>
4807
4808         * c-common.h (enum c_tree_index): Add g77 type entries.
4809         (g77_integer_type_node, g77_uinteger_type_node): New.
4810         (g77_longint_type_node, g77_ulongint_type_node): New.
4811         * c-decl.c (init_decl_processing): Initialize them.
4812
4813 2000-05-18  Richard Henderson  <rth@cygnus.com>
4814
4815         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4816
4817         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4818         (small_power_of_two): Likewise; use exact_log2.
4819         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4820         (output_adds_subs): Remove.
4821         (two_insn_adds_subs_operand): New.
4822         (split_adds_subs): New.
4823         * config/h8300/h8300-protos.h: Update.
4824         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4825         (CONST_OK_FOR_L): Match strict adds operands.
4826         (CONST_OK_FOR_N): Match struct subs operands.
4827         * config/h8300/h8300.md (adds_subs insns): Remove.
4828         (addhi patterns): Output adds/subs directly.
4829         (addsi_h8300h): Likewise.
4830         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4831
4832 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4833
4834         * cppexp.c (parse_assertion): New.
4835         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4836         (_cpp_parse_expr): Remove case '#'.  Don't set
4837         parsing_if_directive.
4838         * cpphash.c (collect_objlike_expansion,
4839         collect_funlike_expansion, collect_params,
4840         _cpp_create_definition): The list no longer has a trailing
4841         VSPACE token.
4842         * cpphash.h (enum node_type): Add T_ASSERTION.
4843         (struct hashnode): Remove aschain, add pred.
4844         (struct predicate): New.
4845         Update prototypes.
4846
4847         * cpplex.c (expand_token_space): Handle both offset and
4848         nonoffset lists.
4849         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4850         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4851         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4852         _cpp_equiv_toklists): New.
4853         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4854         stop at any single-character token, not just newline.
4855         (_cpp_lex_token): Remove special cases for #define and #if.
4856         (cpp_get_token): Expect # as a separate token type.  Remove
4857         DIRECTIVE case.
4858         (_cpp_get_directive_token): Remove DIRECTIVE case.
4859         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4860
4861         * cpplib.c (_cpp_check_directive): Set dirno and
4862         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4863         (_cpp_handle_directive): Run # <number> through the same logic
4864         as normal directives.
4865         (do_define): Don't set parsing_define_directive.  Use
4866         _cpp_scan_until.  The list does not have a VSPACE at the end.
4867         (do_if): Save, clear, and restore only_seen_white around
4868         _cpp_parse_expr.
4869         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4870         (do_assert, do_unassert): Rewrite.
4871
4872         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4873         (LIST_OFFSET): New flag.
4874         (struct cpp_toklist): Replace dir_handler and dir_flags with
4875         dirno and flags.
4876         (struct cpp_reader): Remove parsing_if_directive and
4877         parsing_define_directive.
4878
4879 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4880
4881         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4882         following the cabs decl which terminate on the following line.
4883         Add the corresponding test_text case.
4884
4885 2000-05-18  Neil Booth  <NeilB@earthling.net>
4886
4887         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4888         default tab stop size.
4889         (no_num, OPT_ftabstop): New.
4890         (handle_option): Handle "ftabstop=" command-line option.
4891         (print_help): Document it.
4892         * cpplex.c (COLUMN): Remove.
4893         (handle_newline): Reset col_adjust.
4894         (skip_whitespace): Update col_adjust as tabs encountered.
4895         (_cpp_lex_line): Update to use col_adjust.  Call
4896         skip_whitespace for all whitespace.
4897         * cpplib.h (struct cpp_options): New member tabstop.
4898         (struct cpp_reader): New member col_adjust.
4899         (CPP_BUF_COL): Update.
4900         (CPP_BUF_COLUMN): New.
4901         * cpp.texi: Document "-ftabstop=" command line option.
4902
4903 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4904
4905         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4906         files.
4907         * configure: Rebuilt.
4908
4909 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4910
4911         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4912
4913         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4914         HOST_BITS_PER_WIDE_INT is >= 64.
4915
4916 2000-05-17  Richard Henderson  <rth@cygnus.com>
4917
4918         * jump.c (jump_optimize_1): Remove inactive but real insns
4919         in jump-to-next-insn optimization.
4920
4921 2000-05-17  Richard Henderson  <rth@cygnus.com>
4922
4923         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4924         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4925         Don't call recompute_reg_usage if no_new_pseudos is true.
4926         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4927         Return true if we did work; update global life information.
4928         * basic-block.h (optimize_mode_switching): Update decl.
4929
4930 2000-05-17  Neil Booth  <neilb@earthling.net>
4931
4932         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4933
4934 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4935
4936         * cpplib.c: New feature, #pragma system_header.
4937         * cpp.texi: Document special treatment of system headers, and
4938         the various mechanisms to get a header that special treatment.
4939
4940 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4941
4942         * system.h (offsetof): Define at the very end, to ensure we prefer
4943         the platform's definition if available.
4944
4945 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4946
4947         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4948         * fixinc/server.c: likewise
4949         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4950         + #ifdef debugging code + use #def constant for
4951         sub-pattern count
4952         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4953         on C++ math namespace
4954
4955 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4956
4957         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4958         Don't check the return value of sprintf.  Use asprintf to avoid
4959         buffer overflows.
4960
4961 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4962
4963         * flags.h (warn_unused_function, warn_unused_label,
4964         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4965         Replace ``warn_unused''.
4966         (set_Wunused): Add declaration.
4967         * toplev.c (set_Wunused): New function.
4968         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4969         warn_unused_variable, warn_unused_value): New variables.
4970         (W_options): Add -Wunused-function, -Wunused-function,
4971         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4972         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4973
4974         * toplev.c (decode_W_option): Update -Wunused flags by calling
4975         set_Wunused.
4976         * c-decl.c (c_decode_option): Ditto for -Wall.
4977
4978         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4979         warn_about_unused_variables): Replace warn_unused with more
4980         explicit warn_unused_value et.al.
4981         * function.c (expand_function_end): Ditto.
4982         * c-typeck.c (internal_build_compound_expr,
4983         internal_build_compound_expr): Ditto.
4984         * c-decl.c (poplevel, pop_label_level): Ditto.
4985         * toplev.c (check_global_declarations): Replace warn_unused with
4986         check for either warn_unused_function or warn_unused_variable.
4987
4988         * gcc.1, invoke.texi (Warning Options): Document
4989         -Wunused-function, -Wunused-function, -Wunused-label,
4990         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4991
4992 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4993
4994         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4995         $(srcdir), not in the current directory.
4996
4997 2000-05-16  Richard Henderson  <rth@cygnus.com>
4998
4999         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
5000         assembler supports it.
5001         (.fini, .init): Use a gp-relative indirect call.
5002         (__do_global_dtors_aux): Preserve the gp; rebundle.
5003         (__do_frame_setup): Likewise.
5004         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
5005         (.init): Use a gp-relative indirect call.
5006         (__do_global_ctors_aux): Preserve the gp.
5007
5008 2000-05-16  Richard Henderson  <rth@cygnus.com>
5009
5010         * flow.c (commit_one_edge_insertion): Be prepared for a return
5011         insn to be inserted on the edge with a normal jump.
5012         * jump.c (jump_optimize_1): Don't look to create return isns.
5013
5014         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
5015         * jump.c (jump_optimize_1): Likewise.
5016         (returnjump_p): Verify the argument is a JUMP_INSN.
5017         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
5018
5019 2000-05-16  Nick Clifton  <nickc@cygnus.com>
5020
5021         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
5022         GET_RTX_CLASS (GET_CODE ()) == 'i'.
5023         (large_insn_p): Ditto.
5024         (m32r_is_insn): New function: Return true if the insn contains
5025         an executable instruction.
5026         (m32r_adjust_insn): Use m32r_is_insn.
5027         (m32r_sched_reorder): Use m32r_is_insn.
5028         (m32r_sched_variable_issue): Use m32r_is_insn.
5029
5030 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5031
5032         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
5033         VAR_DECL.
5034
5035         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
5036
5037         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
5038         according to given options.
5039
5040 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
5041
5042         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
5043         if X has VOIDmode either.
5044         (LIMIT_RELOAD_CLASS): Similarly.
5045
5046         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
5047         not "general_operand" to match the processor's capabilities.
5048
5049 2000-05-16  Bruce Korb  <bkorb@gnu.org>
5050
5051         * fixinc/README:  corrected return address
5052         * fixinc/check.diff:  regenerate, now that test works
5053         * fixinc/fixfixes.c(format_fix,format_write): reformatted
5054         (char_macro_def_fix,char_macro_use_fix): corrected and
5055         rewrote to use regex to parse the text
5056         * fixinc/inclhack.def: more testing
5057         * fixinc/fixincl.x:  regenerated
5058
5059         * fixinc/inclhack.def: added several "test_text" attributes
5060         changed several fixes to use `c_fix = format'
5061         re-alphabetized the fixes
5062
5063         * fixinc/check.diff: regenerate
5064         * fixinc/fixincl.x: regenerate
5065         * fixinc/check.tpl: added `sparc' and `netinet' to the list
5066         of created dirs
5067
5068
5069 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
5070
5071         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
5072
5073 2000-05-15  Richard Henderson  <rth@cygnus.com>
5074
5075         * toplev.c (rest_of_compilation): Run full jump pass before
5076         find_basic_blocks of flow2.
5077
5078 2000-05-15  Richard Henderson  <rth@cygnus.com>
5079
5080         * jump.c: Fix typos and clarify commentary from last change.
5081         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
5082         (safe_to_remove_jump_p): Remove.
5083         (condjump_label): Use pc_set.
5084
5085 2000-05-15  Richard Henderson  <rth@cygnus.com>
5086
5087         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
5088         that get in the way after reload.
5089         (cond_exec_process_if_block): Skip a label heading THEN block.
5090
5091 2000-05-15  Richard Henderson  <rth@cygnus.com>
5092
5093         * varasm.c (output_constant_pool): Abort instead of converting
5094         (improperly) deleted labels to zero.
5095
5096 2000-05-16  Neil Booth  <NeilB@earthling.net>
5097
5098         * cpplex.c (parse_string2): Update comment.
5099         (cpp_lex_line): No special assertion treatment for '('.
5100         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
5101         * cpplib.h (SYNTAX_ASSERT): Remove.
5102
5103 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5104
5105         * jump.c (condjump_p):  Mark as depreached.
5106         (any_condump_p): New.
5107         (any_uncondump_p): New.
5108         (pc_set): New.
5109         (safe_to_remove_jump_p): New.
5110         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
5111         safe_to_remove_jump_p): Declare.
5112
5113 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5114
5115         * calls.c: Re-install both patches reverted by last patch.
5116         (struct arg_data): New field tail_call_reg.
5117         (initialize_argument_information): Initialize tail_call_reg
5118         (load_register_parameters): New argument flags, use
5119         tail_call_reg when emiting tail call sequence.
5120         (expand_call): Update call of load_register_parameters;
5121         copy unadjusted_args_size to adjusted_args_size.
5122
5123 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5124
5125         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
5126         and bct_p parameters to flags.
5127         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
5128         * rtl.h (loop_optimize): Update prototype.
5129         * toplev.c (rest_of_compilation): Update call of loop_optimize.
5130
5131 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
5132
5133         * calls.c (expand_call): Move expand_start_target_temps call after
5134         start_sequence().
5135
5136 2000-05-15  Neil Booth  <NeilB@earthling.net>
5137
5138         * cpphash.c (trad_stringify, warn_trad_stringify,
5139         collect_params): Make some pointers pointers to const.
5140         * cpplex.c (auto_expand_name_space) Guaranteed to always
5141         expand by at least one character.
5142         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
5143         (struct token_spelling): Use const U_CHAR * rather than PTR.
5144         (expand_name_space): Fix up token pointers if name space
5145         is moved when expanding.
5146         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
5147         parse_string2, save_comment, spell_token, cpp_output_list):
5148         Update so the routines handle tokens with a direct pointer to
5149         their text, rather than an offset into the token's list's namebuf.
5150         (_cpp_lex_line): Rearrange for clarity.
5151
5152         * cpplib.c (_cpp_check_directive): Similarly.
5153         (do_define): Make SYM a pointer to const.
5154         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
5155         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
5156         (TOK_OFFSET): Delete.
5157         (TOK_NAME): Update.
5158
5159 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
5160
5161         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
5162         64-bit ABI.
5163
5164         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
5165         into account.
5166         (logical_u_operand): Delete.
5167         (non_logical_cint_operand): Rewrite to take MODE into account.
5168         (non_logical_u_cint_operand): Delete.
5169         (boolean_operator): New function.
5170         (print_operand): Add new %q operand.
5171         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
5172         remove logical_u_operand and non_logical_u_cint_operand,
5173         update logical_operand and non_logical_cint_operand.
5174         * config/rs6000/rs6000.md: Rewrite the patterns for performing
5175         logical operations to use %q.
5176
5177         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
5178         (movdi): Make similar to movsi.
5179         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
5180         is no such thing as a DImode CONST_DOUBLE.
5181         * config/rs6000/rs6000.c (output_toc): Likewise.
5182
5183         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
5184         codes when old mnemonics are in use.  Print register names
5185         for cc registers when requested.
5186
5187         * optabs.c (expand_float): Don't allow mode widening that causes
5188         double rounding.
5189
5190         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
5191         flags to their current names -maix64 and -maix32.
5192
5193 2000-05-14  Bruce Korb  <bkorb@gnu.org>
5194
5195         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
5196         and/or after current text of file
5197         * fixinc/fixlib.c(must_malloc):
5198         * fixinc/fixlib.h(must_malloc): + reformatting
5199         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
5200         with usages of ``c_fix = wrap;''
5201         Add several tests and use the ``c_fix = format'' fixer more.
5202         * fixinc/fixincl.x: regen
5203         * fixinc/check.diff: regen
5204         * fixinc/check.tpl: emit the associated header with the missing
5205         test message
5206
5207 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
5208
5209         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
5210         variables $src and $dst.
5211
5212 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
5213
5214         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
5215         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
5216         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
5217         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
5218         fields.
5219         (set_message_prefixing_rule): Declare.
5220
5221         * diagnostic.c: (current_prefixing_rule): New variable.
5222         (set_message_prefixing_rule): Define.
5223         (output_set_prefix): Adjust buffer->emitted_prefix_p.
5224         (init_output_buffer): Adjust Initialization.
5225         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
5226
5227 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
5228
5229         * ifcvt.c (if_convert): Do not free NULL.
5230
5231 2000-05-12  H.J. Lu  (hjl@gnu.org)
5232
5233         * gthr-dce.h: Add support for libobjc.
5234         * gthr-posix.h: Likewise.
5235         * gthr-solaris.h: Likewise.
5236         * gthr-vxworks.h: Likewise.
5237         * gthr-single.h: Likewise.
5238         * gthr-win32.h: Likewise.
5239
5240 2000-05-12  Nick Clifton  <nickc@cygnus.com>
5241
5242         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
5243         to move a double word value.
5244         (di_operand): New function: Return true if the operand is suitbale
5245         for a double word move operation.
5246         (nonimmediate_di_operand): New function: Return true if the
5247         operand is a DImode register or MEM.
5248
5249         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
5250         nonimmediate_di_operand.
5251
5252         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
5253         nonimmediate_di_operand.
5254
5255         * config/fr30/fr30.md (movdi): New pattern.  Required because
5256         other patterns generate DImode results.
5257         (movdi_insn): New pattern.
5258
5259 2000-05-12  Richard Henderson  <rth@cygnus.com>
5260
5261         * config/alpha/alpha.c (struct shadow_summary): Define
5262         bitfields as type unsigned int.
5263
5264 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
5265
5266         * config/avr/t-avr: Added definition of FLOAT while generates
5267         fp-bit.c
5268
5269         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
5270         peepholes for tst+jump = sbrs/sbrc optimization.
5271
5272 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
5273
5274         * expr.c (emit_push_insn): Do not adjust stack pointer when
5275         preallocating.
5276
5277 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
5278
5279         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
5280         * system.h (offsetof): ... to here.
5281
5282 2000-05-12  Richard Henderson  <rth@cygnus.com>
5283
5284         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
5285         * final.c (final_end_function): Use app_disable.  Rearrange note
5286         handling into a switch.  Emit deleted labels.
5287         (output_asm_label): Generate label strings for deleted labels.
5288         * flow.c (tail_recursion_label_list): New.
5289         (find_basic_blocks_1): Set label_value_list directly.  Collect list
5290         of tail recursion labels from call_placeholders.  Don't add deleted
5291         labels to the label value list.
5292         (cleanup_cfg): Use free_EXPR_LIST_list.
5293         (flow_delete_insn_chain): Turn non-removable labels into notes.
5294         (flow_delete_block): Don't disable deleting the block because of
5295         a non-removable label.
5296         (tail_recursion_label_p): New.
5297         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
5298         because of a label.
5299         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
5300         jump table.
5301         (merge_blocks): Disable a merge because of tail recursion labels.
5302         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
5303         Use a more accurate measure of not merging the join block.
5304         (find_if_block): Don't disable conversion because of a label.
5305         (find_if_case_1, find_if_case_2): Likewise.
5306         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
5307         element when copying.
5308         (squeeze_notes): Also leave EH notes.
5309         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
5310         REG_LABEL notes.
5311         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
5312         deleting a label.
5313         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
5314         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
5315         referring to a deleted label.  Convert tail handling to a switch.
5316         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
5317         for NOTE_INSN_DELETED_LABEL.
5318         (NOTE): Fix commentary.
5319         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
5320         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
5321         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
5322         (LABEL_NUSES, LABEL_REFS): Likewise.
5323         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
5324
5325 2000-05-12  Bruce Korb  <bkorb@gnu.org>
5326
5327         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
5328         * fixinc/check.diff: updated
5329         * fixinc/inclhack.def: corrected & added some test_text-s
5330         * fixinc/genfixes: removed unneeded options to autogen invocation
5331         * fixinc/fixincl.tpl: Specified the output file
5332         * fixinc/fixfixes.c: visual appearance
5333         * fixinc/fixincl.x: regenerate
5334
5335 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
5336
5337         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
5338         CTRL_defn_fix): Delete.
5339         (fix_char_macro_defines, fix_char_macro_uses): Rename to
5340         char_macro_def_fix and char_macro_use_fix, respectively.  Put
5341         them into the FIXUP_TABLE.  Get the string to search for from
5342         a c_fix_arg.
5343
5344         (format_write): New function.
5345         (format_fix): Use it.
5346
5347         (FIX_PROC_HEAD): Constify text parameter.
5348         (machine_name_fix): Constify all char *s.
5349         * fixtests.c (skip_quote): Remove double static.
5350
5351         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
5352         ctrl_use_quotes): Update for new scheme.
5353         * fixincl.x: Regenerate.
5354
5355 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
5356
5357         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
5358         DWARF2_DEBUG.
5359         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
5360         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
5361
5362 2000-05-11  Robert Lipe <robertlipe@usa.net>
5363
5364         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
5365         * fixincl.x: Regenerate.
5366
5367 2000-05-11  Richard Henderson  <rth@cygnus.com>
5368
5369         * calls.c: Revert both 05-09 patches.
5370
5371 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
5372
5373         * config/mn10300/mn10300.c (print_operand): Print FP constants in
5374         hexadecimal.
5375         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
5376         for FP values.
5377
5378         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
5379         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
5380
5381 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
5382
5383         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
5384
5385 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5386
5387         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
5388
5389 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
5390
5391         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
5392         * config/avr/avr.c (jump_over_one_insn_p): New function.
5393         * config/avr/avr.md: New peepholes added. Output test and
5394         conditional jump to "sbrc" or "sbrs" command.
5395
5396 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
5397
5398         * cppmain.c (main): Use IS_DIR_SEPARATOR.
5399
5400 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
5401
5402         * except.c (find_exception_handler_labels_1): New function.
5403         (find_exception_handler_labels): Split into two functions, dive
5404         into CALL_PLACEHOLDERs when looking for exception handler labels.
5405
5406 2000-05-11 Stan Cox <scox@cygnus.com>
5407
5408         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
5409         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
5410         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
5411
5412 2000-05-11  Bruce Korb  <bkorb@gnu.org>
5413
5414         * fixinc/fixfixes.c (double_slash_fix):  obsolete
5415         (else_endif_label_fix): obsolete
5416         (format_fix):  new, unused as yet
5417         (main): obsolete
5418         * fixinc/fixlib.h: added fix description struct for use by format_fix
5419         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
5420         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
5421         modules.  Removed the vestiges of the script version.
5422         Added support for "make check".
5423         * fixinc/check.diff: base diff file (needs work!!)
5424         * fixinc/check.tpl: quiet the fixup output
5425         * fixinc/fixtests.c (main): obsolete
5426         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
5427         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
5428
5429 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
5430
5431         * toplev.c (rest_of_compilation): Remove dead code after
5432         combine.
5433
5434 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5435
5436         * cpphash.c (collect_funlike_expansion): Make "# is not
5437         followed by a macro argument name" a pedwarn, not an error.
5438         Preserve the # in the output.  Suppress the warning if lang_asm.
5439
5440 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
5441
5442         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
5443         * configure: Rebuilt.
5444
5445 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5446
5447         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5448
5449 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5450
5451         * combine.c (try_combine): Fix a typo.
5452
5453 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5454
5455         * config/ia64/ia64.md (insv): Add comment.
5456
5457 2000-05-10  Richard Henderson  <rth@cygnus.com>
5458
5459         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5460         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5461         dependancies on FPBIT and DPBIT.
5462
5463 2000-05-10  Nick Clifton  <nickc@redhat.com>
5464
5465         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5466         when optimising for size.
5467         (mark_used_regs:) Ditto.
5468         (try_pre_increment_1): Ditto.
5469
5470 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5471
5472         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5473         Make error message friendlier.
5474
5475         * cpphash.h (struct hashnode): Use struct hack for name
5476         member.
5477         * cpphash.c (struct hashdummy): New.
5478         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5479         (make_HASHNODE): No need to set ->name pointer.  Correct
5480         setting of p.
5481         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5482
5483 2000-05-10  Richard Henderson  <rth@cygnus.com>
5484
5485         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5486         after completion.
5487
5488 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5489
5490         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5491
5492 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5493
5494         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5495         after we enter .debug.
5496
5497 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5498
5499         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5500         abstract instance of a nested inline function.
5501
5502         * stor-layout.c (finish_record_layout): finalize_type_size
5503         before laying out the pending_statics.
5504
5505 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5506
5507         * cpplex.c (spell_token): New function.
5508         (spell_string, spell_comment, spell_name): fold into
5509         spell_token.
5510         (I, S): Add macros.
5511         (E, H): Remove macros.
5512         (save_comment): Save comment opening characters too.
5513         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5514         handling.
5515         * cpplib.h (I, S): Add macros.
5516         (E, H): Remove macros.
5517         (TTYPE_TABLE): Update entries for new speller.
5518         (SYNTAX_ASSERT): Remove.
5519
5520 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5521
5522         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5523         when removing escaped newlines.  Reverse sense of test for
5524         escaped newline.
5525
5526 2000-05-09  Richard Henderson  <rth@cygnus.com>
5527
5528         * flow.c (find_basic_blocks_1): Do not delete the first
5529         bb_note we run across.
5530         (create_basic_block): Use reorder_insns to move an existing
5531         bb_note to the correct place.
5532
5533 2000-05-09  Richard Henderson  <rth@cygnus.com>
5534
5535         * calls.c (expand_call): Increment currently_expanding_call
5536         before calling optimize_tail_recursion.
5537
5538 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5539
5540         * reload1.c (reload_combine): Fix errors in last change.
5541
5542 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5543
5544         * gcc.c (used_arg): Skip over a semicolon at the end of the
5545         split-up loop; don't break out of it.
5546
5547         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5548         (tree.o): Depend on output.h.
5549
5550         * c-decl.c (pending_invalid_xref_file,
5551         current_function_prototype_file): Constify.
5552         (pushdecl): Constify a local char *.
5553         (define_label): Constify filename parameter.
5554         * c-lex.c (init_parse): Constify parameter and return value.
5555         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5556         * c-tree.h: Update prototypes.
5557         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5558         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5559         objc/objc-parse.c: Regenerate.
5560
5561         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5562         * dwarfout.h: Update prototypes.
5563         * expr.c (expand_expr): Constify a local char *.
5564         * flags.h: Constify main_input_filename.
5565         * function.c (expand_function_end): Constify filename parameter.
5566         * genrecog.c (make_insn_sequence): Use a character array for
5567         c_test_pos.
5568         (main): Remove unused variables.
5569         * input.h: Constify input_filename, main_input_filename, and
5570         file_stack.name.  Update prototypes.
5571         * output.h: Declare first_global_object_name and
5572         weak_global_object_name here, as const char *.
5573         * stmt.c (expand_asm_operands): Constify filename parameter.
5574         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5575         Constify filename parameter.
5576         (input_filename, main_input_filename): Constify.
5577         * toplev.h: Update prototypes.
5578         * tree.c: Include output.h.  Don't declare
5579         first_global_object_name or weak_global_object_name.  Clean up string
5580         bashing in get_file_function_name_long.
5581         * tree.h (struct tree_decl): Constify filename member.
5582         (input_filename): Constify.
5583         Update prototypes.
5584         * varasm.c (first_global_object_name, weak_global_object_name):
5585         Constify.
5586         (assemble_start_function, assemble_variable): Clean up string bashing.
5587
5588         * gcc.c: Constify all spec-related strings initialized,
5589         transitively, from string constants.  Constify all strings
5590         and string variables related to multilibs.
5591         (set_spec, read_specs): Cast argument to free to PTR.
5592         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5593         length comparison to compare multilib switches.
5594         * genmultilib: Constify everything declared in multilib.h.
5595
5596 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5597
5598         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5599         as deleted.
5600
5601 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5602
5603         * config/avr/avr-protos.h (extra_constraint): change a type of
5604         second argument from char to int to avoid warnings.
5605         (asm_output_byte): Likewise.
5606
5607         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5608         (initial_elimination_offset): Handle elimination from
5609         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5610         (legitimate_address_p): Use MAX_LD_OFFSET.
5611         (legitimize_address): Likewise.
5612         (out_movqi_r_mr): Likewise.
5613         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5614         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5615         (out_movsi_mr_r): Likewise.
5616         (out_movqi_mr_r): Likewise.
5617         (out_movhi_mr_r): Likewise.
5618         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5619         count as CONST_INT != 6.
5620         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5621         shift count is a CONSTANT_P, but not a CONST_INT.
5622         (ashlhi3_out): Coding style modifications.
5623         (ashlsi3_out): Likewise.
5624         (ashrhi3_out): Likewise.
5625         (ashrsi3_out): Likewise.
5626         (lshrhi3_out): Likewise.
5627         (lshrsi3_out): Likewise.
5628         (ashrqi3_out): Generate shift for any known constant count without
5629         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5630         but not a CONST_INT.
5631         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5632         shift count is a CONSTANT_P, but not a CONST_INT.
5633         (extra_constraint): change a type of
5634         second argument from char to int to avoid warnings.
5635         (asm_output_byte): Likewise.
5636         (asm_file_end): Output size generated commands count as a hex
5637         number too.
5638
5639         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5640
5641         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5642         removed.
5643         (ashlqi3): Values of "length" attribute changed. Shift count
5644         uses constraints 'n' instead of 'i'.
5645         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5646         shifts without clobber register.
5647         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5648         (call_insn): Correct test for which_alternative == 1 (was 0).
5649         (call_value_insn): Likewise.
5650
5651         * config/avr/t-avr: Remove definition of FLOAT while generates
5652         fp-bit.c
5653
5654 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5655
5656         * fixinc/check.tpl:  Template for checking fixes
5657         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5658         disable hpux8_bogus_inlines on SCO
5659         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5660
5661 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5662
5663         * calls.c (expand_call): Reorganize somewhat in order
5664         to avoid unnecesary recalculation inside loop and make
5665         tail call failure code cleaner.
5666
5667 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5668
5669         * alias.c (nonlocal_reference_p): Minor reformatting.
5670         * reload.c (find_equiv_reg): Simplify logic for
5671         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5672         some some reformatting.
5673         * reload1.c (reload_combine): Don't assume everything in
5674         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5675
5676 2000-05-08  Richard Henderson  <rth@cygnus.com>
5677
5678         * final.c (current_insn_predicate): New.
5679         (final_scan_insn): Set it.
5680         * output.h (current_insn_predicate): Declare.
5681
5682         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5683         Attach it to call insns.
5684         (cond_exec_process_if_block): Track probability for true and
5685         false branches.
5686         (dead_or_predicable): Likewise.
5687
5688         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5689         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5690         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5691         (estimate_probability, expected_value_to_br_prob): Use them.
5692
5693         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5694         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5695         (ia64_expand_prediction): New.
5696         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5697         as needed after calls.
5698         (ia64_epilogue_uses): Mark b0 used.
5699         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5700         (bne_true, bne_false): Remove.
5701         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5702         (br_true, br_false): New.  Use predicate_operator and
5703         ia64_expand_prediction.
5704         (return_true, return_false): Likewise.
5705         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5706         (call_internal1, call_value_internal): Likewise.
5707         (call_value_internal1, call_multiple_values_internal1): Likewise.
5708
5709         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5710
5711         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5712
5713 2000-05-08  Richard Henderson  <rth@cygnus.com>
5714
5715         * rtlanal.c (may_trap_p): Consider old-style and volatile
5716         asms to trap.
5717
5718 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5719
5720         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5721
5722 2000-05-08  Richard Henderson  <rth@cygnus.com>
5723
5724         * config/ia64/ia64.h (predicate_operator): Declare.
5725
5726         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5727         of existance.
5728
5729         * gensupport.c (process_rtx): Copy and post-process each member
5730         of the define_insn rtvec individually.
5731
5732 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5733
5734         * cpplex.c (spell_token): New function.
5735         (TOKEN_LEN): Add 1 for whitespace.
5736         (_cpp_lex_file): Update to use spell_token.
5737         * cpplib.h (E): Remove.
5738         (TTYPE_TABLE): Update CPP_VSPACE entry.
5739
5740 2000-05-08  Richard Henderson  <rth@cygnus.com>
5741
5742         * flow.c (init_propagate_block_info): Watch out for conditional
5743         branch to next instruction, and thus one outgoing edge.
5744
5745         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5746         for global register variables; don't special case __[CD]TOR_LIST__;
5747         mind ggc_p for string allocation.
5748
5749 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5750
5751         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5752
5753 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5754
5755         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5756         i?86-*-msdosdjgpp* no longer uses fixincludes
5757         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5758         * fixinc/inclhack.sh:  deleted
5759         * fixinc/hackshell.tpl:  deleted
5760         * fixinc/inclhack.tpl:  deleted
5761         * fixinc/Makefile.in:  Remove dependencies on above
5762         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5763
5764 2000-05-08  Andreas Jaeger  <aj@suse.de>
5765
5766         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5767         support.
5768
5769 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5770
5771         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5772         substitutions.
5773
5774 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5775
5776         * cpplex.c: Move new lexer definitions and prototypes
5777         to top.  Conditional include these and the code if
5778         NEW_LEXER is defined.  Rename functions whose names
5779         clash if this code included.
5780
5781 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5782
5783         * rtl.def (COND_EXEC): Clarify.
5784
5785         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5786         same fashion as zero_extendsidi2.
5787
5788 2000-05-06  Richard Henderson  <rth@cygnus.com>
5789
5790         * config/ia64/ia64.c (predicate_operator): New.
5791         (ia64_print_operand): Handle 'J'.
5792         (rtx_needs_barrier): Handle COND_EXEC.
5793         * config/ia64/ia64.h (BRANCH_COST): Define.
5794         (PREDICATE_CODES): Update.
5795         * config/ia64/ia64.md: Docuement used unspec values.
5796         (attr predicable): New.
5797         (movxf, movxf_internal): New.
5798         (extendsfdf2): Don't comment out nop.
5799         (floatdidf2): Remove.
5800         (truncxfsf2, truncxfdf2, floatdixf2): New.
5801         (abssi2, absdi2): Put the neg in the "true" slot.
5802         (conditional branch instructions): Mark not predicable.
5803         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5804         (abs*_internal): Likewise.
5805         (alloc, set_bsp): Mark not predicable.
5806         (barrier, insn_group_barrier, flush_cache): Likewise.
5807         (define_cond_exec): New.
5808
5809 2000-05-06  Richard Henderson  <rth@cygnus.com>
5810
5811         * c-decl.c: Include "tm_p.h".
5812
5813         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5814         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5815         (ia64_expand_op_and_fetch): Declare.
5816         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5817         (setjmp_operand): Constify variables for XSTR.
5818         (ia64_encode_section_info): Likewise.
5819         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5820         values to int.
5821         (ia64_asm_output_external): Constify name.
5822         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5823         (process_for_unwind_directive): Provide switch default.
5824         (ia64_expand_compare_and_swap): Remove unused variables.
5825         (ia64_expand_builtin): Likewise.
5826         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5827         for printing.
5828
5829         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5830         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5831         (shift_count_operand, shift_32bit_count_operand): Likewise.
5832         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5833         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5834         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5835         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5836         (ia64_expand_builtin): Likewise.
5837         (call_multiple_values_operation): Make dest_regno unsigned.
5838
5839 2000-05-06  Richard Henderson  <rth@cygnus.com>
5840
5841         * rtl.def (DEFINE_COND_EXEC): New.
5842         * md.texi: Document it.
5843
5844         * gensupport.c (input_file): Remove.
5845         (struct queue_elem): Add lineno.
5846         (rtx_ready_queue): Remove.
5847         (errors): New.
5848         (predicable_default): New.
5849         (predicable_true, predicable_false): New.
5850         (define_attr_queue, define_attr_tail): New.
5851         (define_insn_queue, define_insn_tail): New.
5852         (define_cond_exec_queue, define_cond_exec_tail): New.
5853         (other_queue, other_tail): New.
5854         (queue_pattern): New.
5855         (process_rtx): Add patterns to the appropriate queues.
5856         (is_predicable, identify_predicable_attribute): New.
5857         (n_alternatives, collect_insn_data): New.
5858         (alter_predicate_for_insn, alter_test_for_insn): New.
5859         (shift_output_template, alter_output_for_insn): New.
5860         (process_one_cond_exec, process_define_cond_exec): New.
5861         (init_md_reader): Read the entire file.  Process define_cond_exec.
5862         (read_md_rtx): Return elements from the queues.
5863
5864 2000-05-06  Richard Henderson  <rth@cygnus.com>
5865
5866         * flow.c (mark_set_1): Don't update conditional life info
5867         if the register is not_dead.
5868
5869 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5870
5871         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5872         (mostlyclean): Also delete fixincl, fixinc.sh, and
5873         specs.ready, and make clean in the fixinc subdir.
5874
5875 2000-05-06  Richard Henderson  <rth@cygnus.com>
5876
5877         * Makefile.in (gensupport.o): Compile for the host.
5878         (host-prefix gensuuprt.o): Remove.
5879         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5880         (genattrtab.o): Likewise.
5881         (gencodes.o): Depend on gensupport.h.
5882         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5883         (genpeep.o, genattr.o, genoutput.o): Likewise.
5884
5885         * gensupport.c (obstack, rtl_obstack): New.
5886         (init_md_reader): Initialize rtl_obstack.
5887         * gensupport.h (rtl_obstack): Declare.
5888         (message_with_line): Declare.
5889
5890         * genattr.c: Remove all traces of obstack manipulation.
5891         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5892         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5893
5894         * genattrtab.c (obstack, rtl_obstack): Remove.
5895         (main): Don't init rtl_obstack.
5896         * genflags.c: Likewise.
5897
5898         * genrecog.c (message_with_line): Move ...
5899         * gensupport.c: ... here.
5900
5901 2000-05-06  Richard Henderson  <rth@cygnus.com>
5902
5903         * c-typeck.c (build_c_cast): Remove dead code.
5904
5905 2000-05-06  Richard Henderson  <rth@cygnus.com>
5906
5907         * flow.c (split_edge): Don't allocate global_live_at_start for
5908         the new block unless the old blocks had them as well.
5909
5910         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5911
5912         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5913         test_bb if a or b uses x.
5914
5915 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5916
5917         * cpphash.h: Remove conditional #define of __extension__.
5918         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5919         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5920         (ENABLE_RTL_CHECKING only).
5921         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5922         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5923         (ENABLE_TREE_CHECKING only).
5924         * varray.h: Add __extension__ to VARRAY_CHECK macro
5925         (ENABLE_CHECKING only).
5926
5927 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5928
5929         Use new tail-calling mechanism on ARM.
5930         * arm.md (sibcall, sibcall_value): New expands.
5931         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5932         (tailcalling peepholes): Delete.
5933         (push_multi): Simplify.
5934         * arm.c (lr_save_eliminated): Delete definition.
5935         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5936         (output_return_instruction): Remove checks on lr_save_eliminated.
5937         (output_arm_prologue): Remove old tail-calling code.
5938         (arm_output_epilogue): New parameter, really_return.  All callers
5939         changed.  Handle tail-calling epilogues.
5940         * arm.h (lr_save_eliminated): Delete declaration.
5941         (frame_pointer_needed): Delete declaration.
5942         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5943
5944         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5945         TARGET_ARM.
5946         * arm.c (thumb_code): Define it.
5947         (arm_override_options): Set it.
5948         * arm.h (thumb_code): Declare it.
5949
5950 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5951
5952         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5953
5954 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5955
5956         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5957         bogus clobber to insns.
5958         (load_multiple_operation, store_mulitple_operation): Don't check
5959         for it.
5960         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5961
5962         * arm.md (and_scc, ior_scc): Add missing mode.
5963
5964         * arm.md (call_value_symbol): Remove predicate from op2.
5965
5966         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5967
5968 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5969
5970         * expr.c (get_subtarget): New function.
5971         (force_operand, expand_expr, do_store_flag): Use it.
5972
5973         * toplev.c (compile_file): Don't take strlen of NAME if null.
5974
5975 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5976
5977         * xcoffout.c (xcoff_current_include_file,
5978         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5979         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5980         char *'.
5981         (xcoffout_declare_function): Make name 'const char *'.
5982         (xcoffout_end_epilogue): Make fname 'const char *'
5983         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5984         xcoffout_declare_function, xcoffout_source_line): Match above.
5985
5986         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5987         -maix64 is error.
5988         * rs6000.c (print_operand): Fix lossage typo.
5989         (output_cbranch): Remove "cr" decoration for now.
5990         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5991
5992 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5993
5994         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5995         constant count.
5996
5997 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5998
5999         * fixinc/genfixes: Improve the matching for make target names
6000
6001 2000-05-05  Catherine Moore  <clm@cygnus.com>
6002
6003         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
6004         attribute to the decl.
6005         * c-decl.c (pushdecl): Propagate the USED attribute to the
6006         type copy.
6007
6008 2000-05-05  Richard Henderson  <rth@cygnus.com>
6009
6010         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
6011         same way emit_group_load does.
6012
6013 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
6014
6015         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
6016
6017         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
6018         (main): Likewise.
6019
6020 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
6021
6022         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
6023
6024 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
6025
6026         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
6027         to support -shared, on platforms with dynamic libraries.
6028
6029 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
6030
6031         * system.h (S_ISBLK): Provide fallback definition.
6032
6033 2000-05-05  Geoff Berry  <geoffb@bops.com>
6034
6035         * extend.texi (Extended Asm): Document inability to give asm
6036         statements access to condition codes.
6037
6038 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
6039
6040         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
6041         as arg 2 of UNIQUE_SECTION.
6042
6043 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
6044
6045         * predict.c: Remove May 4 change.
6046         * bb-reorder.c (make_reorder_chain): Do not perform block movement
6047         if we have predicted the branch at 50-50 probability.
6048
6049 2000-05-05  Richard Henderson  <rth@cygnus.com>
6050
6051         * flow.c (init_propagate_block_info): Fix merge error
6052         in HAVE_conditional_execution code.
6053
6054 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
6055
6056         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
6057         shift cycle for unknown shift count. Also generates dec + brpl.
6058         (ashlqi3_out): Don't generate dec + brpl which now generates by
6059         `out_shift_with_cnt'.
6060         (ashlhi3_out): Likewise.
6061         (ashlsi3_out): Likewise.
6062         (ashrqi3_out): Likewise.
6063         (ashrhi3_out): Likewise.
6064         (ashrsi3_out): Likewise.
6065         (lshrqi3_out): Likewise.
6066         (lshrhi3_out): Likewise.
6067         (lshrsi3_out): Likewise.
6068
6069 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
6070
6071         * gcc.c (free_split_directories): Correct typo in explanation
6072         of make_relative_prefix.
6073
6074 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6075
6076         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
6077         comparison codes to branch_comparison_operator.
6078
6079 2000-05-04  Richard Henderson  <rth@cygnus.com>
6080
6081         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
6082
6083 2000-05-04  Richard Henderson  <rth@cygnus.com>
6084
6085         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
6086         (DPBIT_FUNCS): Remove _sf_to_usi.
6087         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
6088
6089         * ifcvt.c (noce_process_if_block): Fail if A or B modified
6090         between condition and jump.
6091
6092         * libgcc2.c (near eh_context_specific): Comment #endif string.
6093         * longlong.h: Don't use strings with embedded newlines.
6094
6095 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
6096
6097         * config/rs6000/rs6000-protos.h: Add output_cbranch.
6098         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
6099         (print_operand): Delete %t and %T codes.
6100         (output_cbranch): New function.  Support branch prediction.
6101         * config/rs6000/rs6000.md: Use output_cbranch for
6102         conditional branches and returns.
6103
6104 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
6105
6106         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
6107         * stor-layout.c (place_field): Likewise.
6108         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
6109         * expr.c (store_expr): Make align unsigned.
6110         * explow.c (plus_constant_wide): Make low words unsigned.
6111         * expmed.c (choose_multiplier): Likewise.
6112         * fold-const.c (fold):  Likewise.
6113         * tree.h (build_int_2): Likewise.
6114         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
6115         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
6116         (init_emit): Change cast to unsigned char*.
6117         * varasm.c (compare_constant_1): Add cast to char*.
6118         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
6119         * reload1.c (reload): Likewise.
6120
6121         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
6122
6123 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
6124
6125         * predict.c (estimate_probability): If no prediction was found, then
6126         predict the successor that is the next physical block (if such a
6127         successor exists).
6128
6129 2000-05-04  Richard Henderson  <rth@cygnus.com>
6130
6131         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
6132
6133 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6134
6135         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
6136
6137 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
6138
6139         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
6140         attribute macros from here ...
6141         (CPP_SPEC): to here.
6142         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
6143         (CPP_SPEC): Likewise.
6144         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
6145
6146         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
6147         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
6148
6149 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6150
6151         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
6152
6153         * diagnostic (vbuild_message_string, build_message_string,
6154         build_location_prefix, output_get_prefix, init_output_buffer,
6155         output_notice, vline_wrapper_message_with_location,
6156         v_message_with_decl, default_print_error_function): De-constify.
6157         (set_real_maximum_length): Prototype.
6158
6159         * diagnostic.h (struct output_buffer, init_output_buffer,
6160         output_get_prefix, output_set_prefix): De-constify.
6161
6162         * function.c (init_function_start): Constify.
6163
6164         * gensupport.c (remove_constraints, process_rtx): Prototype.
6165
6166         * gthr-posix.h: Indent uses of #pragma.
6167
6168         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
6169         Prototype.
6170
6171         * predict.c (find_expected_value): Delete prototype.
6172         (expected_value_to_br_prob): Initialize variable `ev_reg'.
6173
6174         * sbitmap.h (debug_sbitmap): Prototype.
6175
6176         * ssa.c (compute_coalesced_reg_partition): Prototype.
6177
6178         * stor-layout.c (debug_rli): Prototype.
6179
6180         * tree.h (round_down): Prototype.
6181         (init_function_start): Constify.
6182
6183 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
6184
6185         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
6186         (overly conservative).  Change extern inline wrappers to
6187         static inline, define them always, use PARAMS properly.
6188         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
6189         whitespace warnings for \f and \v at the beginning of a line.
6190
6191 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
6192
6193         * haifa-sched.c (schedule_insns): Free the flow edge list when it
6194         is no longer needed
6195
6196 2000-05-04  Bruce Korb  <bkorb@gnu.org>
6197
6198         * fixincl/inclhack.def: added broken_cabs -
6199         Remove `extern double cabs' declarations from math.h
6200         * fixincl/inclhack.sh: regen
6201         * fixincl/fixincl.x: regen
6202         * fixincl/fixincl.c: Remove BOGOSITY code
6203         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
6204
6205 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6206
6207         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
6208         MEM_ALIAS_SET.
6209         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
6210         when calling MEM_COPY_ATTRIBUTES.
6211         * emit-rtl.c (operand_subword, change_address): Likewise.
6212         * explow.c (stabilize): Likewise.
6213         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
6214         * integrate.c (copy_rtx_and_substitute): Likewise.
6215         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
6216         when calling MEM_COPY_ATTRIBUTES.
6217         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
6218         Likewise.
6219         * cse.c (gen_lowpart_if_possible): Likewise.
6220         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
6221         * optabs.c (gen_move_insn): Likewise.
6222         * recog.c (validate_replace_rtx_1): Likewise.
6223         * simplify-rtx.c (add_mem_for_addr): Likewise.
6224         * stmt.c (expand_anon_union_decl): Likewise.
6225         * config/arm/arm.md: Likewise.
6226         * config/h8300/h7300.c (fix_bit_operand): Likewise.
6227         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
6228         (block_move_no_loop, block_move_sequence): Likewise.
6229         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
6230         * config/alpha/alpha.c (get_aligned_mem): Likewise.
6231         Clear MEM_ALIAS_SET.
6232         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
6233         MEM_COPY_ATTRIBUTES.
6234
6235 2000-05-03  Robert Lipe <robertlipe@usa.net>
6236
6237         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
6238         to suppress libgcc1.
6239         (i[34567]86-*-sco3.2v5*) Likewise.
6240         (i[34567]86-*-sco3.2v4*) Likewise.
6241         (i[34567]86-*-sco) Likewise.
6242         (i[34567]86-*-solaris2) Likewise.
6243         (i[34567]86-*-sysv5*) Likewise.
6244         (i[34567]86-*-sysv4*) Likewise.
6245         (i[34567]86-*-udk*) Likewise.
6246         (i[34567]86-*-sysv*) Likewise.
6247
6248 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6249
6250         * cpphash.h (U): New define, to correct type of string constants.
6251         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
6252         routines, to do casts when passing unsigned strings to libc.
6253         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
6254
6255         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
6256         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
6257         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
6258         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
6259         second argument an U_CHAR *.
6260
6261         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
6262         length field, clean up initializer.
6263         (ISTABLE): Add __extension__ to designated-
6264         initializers version.
6265         * cpplex.c (CHARTAB): Likewise.
6266
6267         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
6268         case so the file won't be empty.
6269
6270 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
6271
6272         * bb-reorder.c (struct reorder_block_def): Member succ removed.
6273         (REORDER_BLOCK_SUCC): Removed.
6274         (enum reorder_skip_type): Removed.
6275         (skip_insns_between_block): Renamed to skip_insns_after_block.
6276         Removed second argument. Removed dead code and cleaned up.
6277         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
6278         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
6279         second parameter to skip_insns_after_block.
6280
6281 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6282
6283         * tree.c (staticp, case LABEL_DECL): New case.
6284
6285 2000-05-03  Richard Henderson  <rth@cygnus.com>
6286
6287         * Makefile.in (start.encap): Do not depend on LIBGCC1.
6288
6289         * mklibgcc1.in: Fix typo last change.
6290
6291 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6292
6293         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
6294         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
6295         (GCC_CFLAGS): Use it.
6296         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
6297         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
6298         objc/Make-lang.in: Use it.
6299
6300 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
6301
6302         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
6303
6304 2000-05-03  Richard Henderson  <rth@cygnus.com>
6305
6306         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
6307         LIBGCC1 empty with libgcc1.null.
6308
6309 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
6310
6311         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
6312         change.
6313
6314 2000-05-03  Greg McGary  <gkm@gnu.org>
6315
6316         * tree.h (tree_common): Add bounded_flag member.  Remove
6317         inaccurate comment about number of remaining bits.
6318         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
6319         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
6320         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
6321         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
6322         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
6323         (TYPE_QUAL_BOUNDED): New constant.
6324         (TYPE_QUALS): Handle bounded qualifier.
6325         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
6326         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
6327         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
6328         TYPE_AMBIENT_BOUNDEDNESS): New macros.
6329         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
6330         (tree_type): Add pointer_depth member.  Remove
6331         inaccurate comment about number of remaining bits.
6332         (DECL_POINTER_DEPTH): Add macro.
6333         (tree_decl): Add pointer_depth member.
6334
6335 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
6336
6337         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
6338         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
6339         (lshrhi3_out): Likewise.
6340         (ashrsi3_out): bugfix in shift by 8.
6341         (test_hard_reg_class): New function.
6342         * config/avr/avr.md: Bugfix inside conditions in peepholes.
6343         (ashlhi3): removed define_expand of this pattern.
6344         (*ashlhi3_insn): renamed to ashlhi3.
6345         (ashlsi3): removed define_expand of this pattern.
6346         (*ashlsi3_insn): renamed to ashlsi3.
6347         (ashrqi3): removed define_expand of this pattern.
6348         (*ashrqi3_insn): renamed to ashrqi3.
6349         (ashrhi3): removed define_expand of this pattern.
6350         (*ashrhi3_insn): renamed to ashrhi3.
6351         (ashrsi3): removed define_expand of this pattern.
6352         (*ashrsi3_insn): renamed to ashrsi3.
6353         (lshrhi3): removed define_expand of this pattern.
6354         (*lshrhi3_insn): renamed to lshrhi3.
6355         (lshrsi3): removed define_expand of this pattern.
6356         (*lshrsi3_insn): renamed to lshrsi3.
6357
6358 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
6359
6360         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
6361         inclusion of "system.h".
6362
6363 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
6364
6365         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
6366         TREE_ASM_WRITTEN.
6367
6368 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
6369
6370         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
6371         if -mauto-pic is on.
6372         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
6373         -mconstant-gp is in effect and function-descriptors are being used
6374         to make indirect calls.
6375         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
6376         (MASK_AUTO_PIC): Ditto.
6377         (TARGET_CONST_GP): Ditto.
6378         (TARGET_AUTO_PIC): Ditto.
6379         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
6380         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
6381         -mno-pic is in effect.
6382         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
6383         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
6384         -mauto-pic is in effect.
6385         (gprel64_offset): New pattern.
6386         (load_gprel64): Ditto.
6387         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
6388         -mconstant-gp is in effect, no need to preserve gp around direct
6389         calls.
6390         (call_value): Ditto.
6391         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
6392         (FUNCTION_PROFILER): Define.
6393         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
6394         @fptr() directive when -mno-pic or -mauto-pic is in effect.
6395         (ASM_OUTPUT_DESTRUCTOR): Ditto.
6396
6397 2000-05-03  Richard Henderson  <rth@cygnus.com>
6398
6399         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
6400         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
6401         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
6402         (mklibgcc, libgcc.mk): New targets.
6403         (libgcc.a): Use libgcc.mk.
6404         (stmp-multilib): Likewise.
6405         (stmp-multilib-sub): Remove.
6406         (mostlyclean): Don't delete libgcc2 temp files.
6407         * configure.in (AC_PROG_CC_C_O): Add.
6408         (NO_MINUS_C_MINUS_O): Substitute it.
6409         (all_outputs): Add mklibgcc.
6410         * mklibgcc.in: New file.
6411
6412 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6413
6414         * cppexp.c (op_t): Make an int.
6415
6416         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
6417
6418         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
6419
6420         * gensupport.c (process_rtx): Fix macros used.
6421
6422 2000-05-03  Richard Henderson  <rth@cygnus.com>
6423
6424         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
6425         call-clobbered registers of a call.
6426
6427 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6428
6429         * gensupport.c: New file.
6430         * gensupport.h: New file.
6431         * Makefile.in (HOST_RTL): Depend on gensupport.
6432         (gensupport.o) New rule.
6433         * genattr.c: Use gensupport for reading .md files.
6434         * genattrtab.c: Ditto.
6435         * gencodes.c: Ditto.
6436         * genconfig.c: Ditto.
6437         * genemit.c: Ditto.
6438         * genextract.c: Ditto.
6439         * genflags.c: Ditto.
6440         * genopinit.c: Ditto.
6441         * genoutput.c: Ditto.
6442         * genpeep.c: Ditto.
6443         * genrecog.c: Ditto.
6444         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
6445         * md.texi (Insn Splitting): Document define_insn_and_split.
6446
6447 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6448
6449         * flow.c (verify_flow_info): Added two more sanity checks. The
6450         first checks that the blocks are numbered consecutively. The second
6451         checks that n_basic_blocks is actually equal to the number of
6452         basic blocks in the insn chain.
6453
6454 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6455
6456         * cpplib.h: Add accessor macros for token lists.
6457         * cpplib.c, cpphash.c, cpplex.c: Use them.
6458
6459 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6460
6461         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6462         memory usage if not in a function.
6463         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6464         return address if static.
6465
6466 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6467
6468         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6469         whether address may trap.
6470
6471 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6472
6473         * bb-reorder (chain_reorder_blocks): Changed code to test for
6474         EDGE_FALLTHRU rather than making erroneous assumption that the
6475         first outgoing edge is the fall-through edge.
6476
6477 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6478
6479         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6480         ABI for varargs, across all MIPS. This is incompatible because the
6481         va_list (__builtin_va_list) structure is different, so a compilation
6482         unit passing a va_list and a compilation unit being passed one, should
6483         both be compiled with the same ABI. (The old structure had two
6484         pointers, now it has three.)
6485
6486 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6487
6488         * bb-reorder.c (struct reorder_block_def): Remove members end,
6489         block_begin, and block_end.
6490         (REORDER_BLOCK_OLD_END): Delete.
6491         (REORDER_BLOCK_BEGIN): Delete.
6492         (REORDER_BLOCK_END): Delete.
6493         (chain_reorder_blocks): Remove dead code.
6494
6495 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6496
6497         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6498         notes as the end of a basic block before deleting.
6499
6500 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6501
6502         * final.c (final_start_function): Fix spelling of "necessary".
6503
6504 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6505
6506         * toplev.c (debug_ignore_block): Return int.
6507         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6508         * toplev.h, dwarf2out.h: Adjust.
6509         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6510
6511         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6512         * toplev.c, final.c, rtl.h: Adjust.
6513
6514 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6515
6516         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6517         * configure.in: Look for makeinfo in the unified tree, then
6518         for a system makeinfo which is sufficiently new.
6519         * Makefile.in: If configure says makeinfo is too old, don't
6520         build or install Info documentation.
6521
6522 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6523
6524         * cpphash.c (collect_params): Fix off-by-one error.
6525         (dump_hash_helper): Dump all four macro nodetypes.
6526
6527 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6528
6529         * cpphash.c (trad_stringify): Adjust p after stringification as
6530         well.
6531
6532 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6533
6534         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6535         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6536
6537         * cppfiles.c (file_cleanup): Delete.
6538         * cpphash.c (macro_cleanup): Delete.
6539         (collect_objlike_expansion, collect_funlike_expansion,
6540         macarg, scan_arguments): Remove CPP_POP case.
6541
6542         * cpplex.c (null_cleanup): Delete.
6543         (cpp_pop_buffer): Do the work that was done in the cleanups
6544         here.  Call _cpp_unwind_if_stack from here.
6545         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6546         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6547         stack is the buffer _below_ the one we stacked.
6548         (cpp_get_token): Always pop an exhausted buffer.  Return
6549         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6550         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6551         increment the line number.
6552         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6553
6554         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6555         we see CPP_EOF and the top of stack is the buffer _below_ the
6556         one we stacked.
6557         * scan-decls.c: Likewise.
6558
6559 2000-05-02  Andrew Haley  <aph@cygnus.com>
6560
6561         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6562         where this function is called for the second time on a decl that
6563         has had its section info changed in such a way as to move it out
6564         of small data/bss.
6565         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6566
6567 2000-05-01  Richard Henderson  <rth@cygnus.com>
6568
6569         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6570         the sequence we're moving, not to merge_bb->head.
6571
6572 2000-05-01  Richard Henderson  <rth@cygnus.com>
6573
6574         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6575         reference to alpha/t-linux.
6576         (alpha*-*-linux-gnu*): Likewise.
6577         * configure: Rebuild.
6578
6579         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6580
6581         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6582         if not in SSA form.
6583
6584         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6585
6586 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6587
6588         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6589         TREE_THIS_VOLATILE.
6590
6591 2000-05-01  Richard Henderson  <rth@cygnus.com>
6592
6593         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6594         emit_conditional_move.
6595
6596 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6597
6598         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6599         as the dynamic linker.
6600
6601 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6602
6603         * cppfiles.c (open_include_file): Open file in blocking mode.
6604         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6605         Only exclude block devices and directories.
6606
6607         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6608         static.  Allocate the hashnode and its string in the same
6609         block of memory.
6610         (del_HASHNODE): Don't free h->name.
6611         (_cpp_lookup): If there is no entry for this string, create
6612         one, of type T_VOID.
6613         (_cpp_lookup_slot): Delete.
6614         * cpphash.h: Update prototypes.
6615
6616         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6617         not hp == NULL.
6618         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6619         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6620         node here, just fill in the value field properly.  "Delete"
6621         entries by setting the value field to T_VOID.  Check for
6622         hp->type == T_VOID, not hp == NULL.
6623
6624         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6625         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6626         hashtab.h.
6627
6628 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6629
6630         * config/mn10300/mn10300.c (print_operand_address): Do not add
6631         zero to SP.
6632
6633         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6634         adjusted by less than 256 bytes, use ret regardless of having any
6635         callee-saved register to restore.
6636
6637 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6638
6639         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6640
6641 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6642
6643         * config/i386/djgpp.h (INT_ASM_OP): Define.
6644         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6645         (ASM_WEAKEN_LABEL): Define.
6646         (MASK_BNU210): Define.
6647         (SUBTARGET_SWITCHES): Define.
6648         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6649         (MAKE_DECL_ONE_ONLY): Define.
6650         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6651
6652 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6653
6654         * i386/cygwin.h (INT_ASM_OP): Define.
6655
6656 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6657
6658         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6659         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6660
6661 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6662
6663         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6664         __tmp_reg__ and __zero_reg__ initialization.
6665
6666 2000-04-30  Richard Henderson  <rth@cygnus.com>
6667
6668         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6669
6670         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6671         referenced bewteen the condition and the jump.  Don't delete
6672         anything but the jump.
6673
6674 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6675
6676         * bb-reorder.c (scope_def): New struct.
6677         (scope_forest_info): New struct.
6678         (struct reorder_block_def): New member "scope".
6679         (REORDER_BLOCK_SCOPE): New macro.
6680         (relate_bbs_with_scopes): New function and prototype.
6681         (make_new_scope): Likewise.
6682         (build_scope_forest): Likewise.
6683         (remove_scope_notes): Likewise.
6684         (insert_intra_1): Likewise.
6685         (insert_intra_bb_scope_notes): Likewise.
6686         (insert_inter_bb_scope_notes): Likewise.
6687         (rebuild_scope_notes): Likewise.
6688         (free_scope_forest_1): Likewise.
6689         (free_scope_forest): Likewise.
6690         (dump_scope_forest): Likewise.
6691         (dump_scope_forest_1): Likewise.
6692         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6693         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6694         block.
6695         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6696         and remove_scope_notes before reordering is done. Added calls to
6697         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6698         after reordering is done.
6699
6700 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6701
6702         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6703         removed two stale entries (defined away with OLD_CPP).
6704         * fixinc/inclhack.sh: regen
6705         * fixinc/fixincl.x: regen
6706
6707 2000-04-30  Richard Henderson  <rth@cygnus.com>
6708
6709         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6710         from the last insn in the sequence.
6711
6712 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6713
6714         * cpplex.c (cpp_idcmp): New function.
6715         * cpplib.h: Prototype it.
6716         * scan_decls.c (scan_decls): Use it to inspect token names.
6717         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6718         the file being run through the preprocessor.
6719         (check_macro_names): Provide length of token to cpp_defined.
6720
6721         * Makefile.in: Remove stale warning message.
6722
6723         * cppfiles.c (redundant_include_p): Provide length of token to
6724         cpp_defined.
6725         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6726         values are unsigned int.
6727         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6728         (_cpp_lookup_slot): Do not calculate the hash, either.
6729         * cpphash.h: Update prototypes.
6730         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6731         Hashes are unsigned int.  Calculate hash here, pass by value
6732         to _cpp_lookup_slot.
6733
6734 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6735
6736         * simplify-rtx.c (check_value_useless): Delete function.
6737         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6738         by hand.
6739         (cselib_invalidate_regno): Likewise.
6740         (cselib_invalidate_mem_1): Likewise.
6741         (references_value_p): Recognize useless values by the fact that they
6742         have no locations.
6743         (discard_useless_values): Likewise.
6744         (cselib_record_set): This may turn a useless value
6745         into a useful one.
6746
6747 2000-04-30  Richard Henderson  <rth@cygnus.com>
6748
6749         * config/d30v: New port.
6750
6751         * configure.in (d30v-*): Set fp format.
6752         * configure: Rebuild.
6753
6754 2000-04-30  Richard Henderson  <rth@cygnus.com>
6755
6756         * ifcvt.c: New file.
6757         * Makefile.in (OBJS): Add it.
6758         (ifcvt.o): New target.
6759         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6760         and conditional arithmetic.
6761         (find_insert_position): Remove.
6762         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6763         * toplev.c (DFI_ce, DFI_ce2): New.
6764         (dump_file): Add ce and ce2 dumps.
6765         (rest_of_compilation): Run if_convert a couple o times.  Set
6766         cse_not_expected after cse2.  Don't set no_new_pseudos until
6767         after sched1 or recompute_reg_usage.
6768
6769 2000-04-30  Richard Henderson  <rth@cygnus.com>
6770
6771         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6772         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6773
6774 2000-04-30  Richard Henderson  <rth@cygnus.com>
6775
6776         * flow.c (struct reg_cond_life_info): New.
6777         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6778         (init_propagate_block_info): Initialize them.
6779         (free_propagate_block_info): Destruct them.
6780         (mark_set_1): Consider conditional life before killing a register.
6781         (mark_regno_cond_dead): New.
6782         (free_reg_cond_life_info): New.
6783         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6784         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6785         (mark_used_reg): Record conditional life.
6786
6787         * haifa-sched.c (schedule_insns): Disable death counting
6788         sanity check for HAVE_conditional_execution.
6789
6790 2000-04-30  Richard Henderson  <rth@cygnus.com>
6791
6792         * Makefile.in (TIMEVAR_H): New.
6793         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6794         (timevar.h): Remove rule.
6795
6796 2000-04-29  Richard Henderson  <rth@cygnus.com>
6797
6798         * config/alpha/crtend.asm: Use C comments instead of #.
6799         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6800
6801         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6802
6803 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6804
6805         * cpphash.h (enum node_type: Take out T_MCONST.
6806         (union hashval): Move into struct hashnode.
6807         (struct hashnode): Pack tighter.  Remove file, line, col
6808         members.
6809         * cpphash.c: Constify most of the macro-definition structures.
6810         (struct definition): Replace by struct object_defn
6811         and struct funct_defn.  Put file, line, column information
6812         here.  All users updated to match.
6813         (_cpp_create_definition, _cpp_macroexpand): Remove special
6814         case for #define WORD OTHERWORD.
6815         * cpplib.c (do_undef): Remove T_MCONST case.
6816
6817         * cpphash.h: Move struct reflist, struct definition, and the
6818         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6819         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6820         * cpphash.c (_cpp_free_definition): Free data pointed to by
6821         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6822         (_cpp_create_definition, del_HASHNODE): Just call
6823         _cpp_free_definition to clear out a hashnode.
6824         * cpplib.c (do_pragma_poison): Likewise.
6825
6826 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6827
6828         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6829         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6830         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6831         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6832         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6833         REGNO_AM33_P): Redefine in terms of the new macros.
6834         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6835         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6836         STRUCT_VALUE): Likewise.
6837         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6838         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6839
6840 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6841
6842         * regmove.c (struct record_stack_memrefs_data): New.
6843         (record_stack_memrefs): New function.
6844         (combine_stack_adjustments_for_block): Use it.
6845
6846 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6847
6848         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6849         use special_function_p to detect alloca.
6850
6851 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6852
6853         * gcc.texi: Fixes for makeinfo 4.0 --html.
6854
6855 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6856
6857         * pcp.h: Delete file.
6858
6859 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6860
6861         * h8300.c (function_epilogue): Clean up flags when the last insn
6862         in a function is a barrier.
6863
6864 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6865
6866         * configure.in (sparc-hal-solaris2*): protect [] glob from
6867         my expansion.
6868         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6869         rather than hard-coded constants in target_cpu_default2.
6870         * configure: Regenerate.
6871
6872 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6873
6874         * tree.c (get_callee_fndecl): Extract the initial value from
6875         a readonly decl.
6876
6877 2000-04-28  Richard Henderson  <rth@cygnus.com>
6878
6879         * varasm.c (record_constant_1): Record the CODE_LABEL when
6880         taking the address of a LABEL_REF.
6881
6882 2000-04-28  Richard Henderson  <rth@cygnus.com>
6883             Jan Hubicka  <jh@suse.cz>
6884
6885         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6886         adjustment; don't do the stack adjust.
6887         (expand_call): Call compute_argument_block_size right before
6888         allocating the block; update comment; don't do alignment sanity
6889         checking for sibling call; use args_size instead of
6890         unadjusted_args_size before args_size is adjusted.  Use
6891         combine_pending_stack_adjustment_and_call to compute stack adjust
6892         for must_preallocate case.
6893
6894         * expr.c (push_block): Remove shadow `temp' in inner scope.
6895
6896 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6897
6898         * toplev.c (rest_of_compilation): Call
6899         note_deferral_of_defined_inline_function even if the function
6900         can't be inlined.
6901
6902 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6903
6904         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6905
6906 2000-04-28  Richard Henderson  <rth@cygnus.com>
6907
6908         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6909
6910 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6911
6912         * timevar.c (init_timevar): DeANSIfy function definition.
6913
6914 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6915
6916         * Makefile.in (timevar.o): Depend on flags.h.
6917         * timevar.c (unused_stack_instances): New variable.
6918         (timevar_push): Take a timevar_stack_def from
6919         unused_stack_instances if available.
6920         (timevar_pop): Push the popped timevar_stack_def onto
6921         unused_stack_instances.
6922         (TIMEVAR_ENABLE): New macro.
6923         (timevar_def): Make standalone a 1-bit field.  Add field used.
6924         (get_time): Rename parameter to now.  Return after clearing it if
6925         not TIMEVAR_ENABLE.
6926         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6927         (timevar_pop): Likewise.
6928         (timevar_stop): Likewise.
6929         (timevar_push): Likewise.  Mark the timing variable as used.
6930         (timevar_start): Likewise.
6931         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6932         timevars that were never used.
6933
6934 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6935
6936         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6937         always TREE_READONLY.
6938
6939 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6940
6941         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6942         for call instruction with mode QImode.
6943
6944 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6945
6946         * Makefile.in (OBJS): Add timevar.o.
6947         (toplev.o): Depend on timevar.h.
6948         (ggc-simple.o): Likewise.
6949         (ggc-page.o): Likewise.
6950         (timevar.o): New rule.
6951         (timevar.h): New rule.
6952
6953         * timevar.h: New file.
6954         * timevar.c: Likewise.
6955         * timevar.def: Likewise.
6956
6957         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6958         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6959         throughout.
6960         (TIMEVAR): Remove macro.
6961         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6962         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6963         flow_time, combine_time, regmove_time, sched_time,
6964         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6965         sched2_time, dbr_sched_time, reorder_blocks_time,
6966         rename_registers_time, shorten_branch_time, stack_reg_time,
6967         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6968         all_time): Remove.
6969         (compile_file): Don't initialize time variables.  Call
6970         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6971         of many calls to print_time.
6972         (rest_of_compilation): Add timing for reload_cse_regs.
6973         (get_run_time): Removed to timevar.c.
6974         (print_time): Likewise.
6975         (get_run_time): Implement using TV_TOTAL time variable.
6976         (print_time): Get total run time from get_run_time.
6977         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6978         computing elapsed time explicitly.
6979         * ggc-simple.c (ggc_collect): Likewise.
6980         (gc_time): Remove declaration.
6981
6982 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6983
6984         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6985         (expand_call): Use it.
6986
6987 2000-04-27  Jan Hubicka  <jh@suse.cz>
6988
6989         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6990         fields.
6991
6992 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6993
6994         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6995         registers.
6996
6997 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6998
6999         * function.c (epilogue_done): Pass whole insn to record_insns.
7000
7001 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7002
7003         * cse.c (CSE_ADDRESS_COST): Remove.
7004         (find_best_addr): Add new parameter "MODE", use address_cost instead
7005         of CSE_ADDRESS_COST
7006         (address_cost): New.
7007         (fold_rtx): Update call of find_best_addr.
7008         * rtl.h (address_cost): Declare.
7009         * loop.c (general_induction_var): Add new parameter "MODE", use
7010         address_cost instead of ADDRESS_COST
7011         (init_loop): Use address_cost instead of ADDRESS_COST.
7012         (check_insn_for_givs): Update call of general_induction_var.
7013         (find_mem_givs): Likewise.
7014         (consec_sets_giv): Likewise.
7015         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
7016         * i386.c (ix86_address_cost): New.
7017         * i386-protos.h (ix86_address_cost): Declare.
7018
7019 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
7020
7021         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
7022         registers.
7023
7024 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7025
7026         * expr.c (store_expr): Use clear_storage instead of direct memset
7027         libcall.
7028
7029 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
7030
7031         * config/mn10300/mn10300.c (mn10300_address_cost): Test
7032         ASHIFT, AND and LABEL_REF.
7033
7034 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7035
7036         * invoke.texi (-foptimize-sibling-calls): Fix.
7037
7038 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7039
7040         * loop.c (load_mems)  Don't use hard registers for the hoisting.
7041
7042         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
7043         calculation; rename const_equiv array in the preconditioning code
7044         from loop_unroll to loop_unroll_precondition
7045
7046 2000-04-27  Richard Henderson  <rth@cygnus.com>
7047
7048         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
7049         add new_set.
7050         (propagate_one_insn): Clear it.  Don't update reg_live here.
7051         (init_propagate_block_info): Update for pbi member changes.
7052         (free_propagate_block_info): Likewise.
7053         (mark_set_1): Know that zero_extract, sign_extract, and
7054         strict_low_part don't kill their argument.  Alter hard subregs.
7055         Update new_set for non-CLOBBER sets.  Update reg_live.
7056         (find_auto_inc): Update reg_live, not new_dead.
7057         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
7058         to determine if the reg in question was set this insn.  Only update
7059         reg info with PROP_REG_INFO.
7060
7061 2000-04-26  Richard Henderson  <rth@cygnus.com>
7062
7063         * flow.c (allocate_reg_life_data): Set max_regno here ...
7064         (life_analysis): ... not here.
7065
7066         * flow.c (calculate_global_regs_live): Force stack pointer
7067         live at end.
7068
7069 2000-04-26  Richard Henderson  <rth@cygnus.com>
7070
7071         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
7072         commit change group changes.
7073         (invert_exp_1): Similarly.
7074         (redirect_exp, invert_exp): Use them.
7075         (redirect_jump_1): New.
7076         (invert_jump_1): New.
7077         (jump_optimize_1): Remove code subsumed by condexec.c.
7078         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
7079
7080 2000-04-26  Richard Henderson  <rth@cygnus.com>
7081
7082         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
7083
7084         * genconfig.c (main): Set all HAVE_foo to 1.
7085
7086         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
7087
7088 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
7089
7090         * invoke.texi: Document -fssa flag.
7091
7092 2000-04-26  Richard Henderson  <rth@cygnus.com>
7093
7094         * flow.c (count_reg_sets_1): Remove.
7095         (count_reg_sets, count_reg_references): Remove.
7096         (recompute_reg_usage): Implement with update_life_info.
7097         Reallocate life data.
7098
7099 2000-04-26  Richard Henderson  <rth@cygnus.com>
7100
7101         * flow.c (update_life_info): Consider blocks null to mean the
7102         universal set.
7103         (calculate_global_regs_live): Likewise.
7104         (life_analysis): Do that instead of collecting all_blocks.
7105
7106 2000-04-26  Richard Henderson  <rth@cygnus.com>
7107
7108         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
7109         a still-valid conditional jump.
7110
7111 2000-04-26  Richard Henderson  <rth@cygnus.com>
7112
7113         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
7114
7115         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
7116         * flow.c (calculate_loop_depth): Remove.
7117         * output.h (calculate_loop_depth): Don't declare.
7118         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
7119         inline; run estimate_probability at the same time.
7120
7121 2000-04-26  Neil Booth  <NeilB@earthling.net>
7122
7123         * cpplib.h: "~=" is not a single pp-token.
7124         * cpplex.c: Correct commentary.
7125
7126 2000-04-26  Richard Henderson  <rth@cygnus.com>
7127
7128         * flow.c (mark_set_1): New arguments code and flags; update all
7129         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
7130         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
7131         loop_depth when optimizing for size.  Do new_dead update after
7132         emitting REG_UNUSED notes.  Merge mark_set_reg code.
7133         (mark_set_reg): Remove.
7134         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
7135         arrange to not emit REG_UNUSED notes.
7136
7137 2000-04-26  Richard Henderson  <rth@cygnus.com>
7138
7139         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
7140         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
7141
7142 2000-04-26  Richard Henderson  <rth@cygnus.com>
7143
7144         * flow.c (propagate_one_insn): Break out from propagate_block.
7145         (init_propagate_block_info): Likewise.
7146         (free_propagate_block_info): Likewise.
7147         (propagate_block): Use them.  Export.
7148         * basic-block.h: Declare them all.
7149
7150 2000-04-26  Richard Henderson  <rth@cygnus.com>
7151
7152         * basic-block.h (life_analysis): Declare here ...
7153         * output.h: ... not here.
7154         * flow.c (life_analysis): Remove nregs parameter; replace
7155         remove_dead_code with flags.  Remove ssa dead code check.
7156         Only init alias analysis if we'll use it.
7157         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
7158         * ssa.c (convert_to_ssa): Likewise.
7159         (convert_from_ssa): Likewise.
7160         * toplev.c (rest_of_compilation): Likewise.
7161
7162 2000-04-26  Richard Henderson  <rth@cygnus.com>
7163
7164         * flow.c (flow_delete_block): Rename from delete_block.  Export.
7165         * basic-block.h (flow_delete_block): Declare.
7166
7167 2000-04-26  David S. Miller  <davem@redhat.com>
7168
7169         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
7170         taking a PATTERN of it.
7171
7172 2000-04-26  <NeilB@earthling.net>
7173
7174         * cpplex.c (spell_other, spell_char): Remove.
7175         (SPELL_CHAR): New.
7176         (token_spelling, trigraph_map): Use unsigned chars.
7177         (_cpp_lex_line): Tidy up the switch statement.
7178         * cpplib.h: Implement spell_char with spell_string.
7179         (C): New.
7180
7181 2000-04-26  <RodneyBrown@pmsc.com>
7182
7183         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7184         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
7185
7186 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7187
7188         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
7189         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
7190         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
7191         dwarf2out_return_save, dwarf2out_return_reg,
7192         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
7193         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
7194         gen_compile_unit_die, dwarf2out_init): Constify a char*.
7195
7196         * dwarf2out.h (dwarf2out_init): Likewise.
7197
7198         * dwarfout.c (filename_entry, primary_filename, last_filename,
7199         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
7200
7201         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
7202         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
7203         dwarf2out_return_reg): Likewise.
7204
7205 2000-04-26  Andreas Jaeger  <aj@suse.de>
7206
7207         * extend.texi (Function Attributes): Fix description of pure
7208         attribute.
7209
7210 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7211
7212         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
7213         before calling rest_of_compilation.
7214
7215 2000-04-26  Andreas Jaeger  <aj@suse.de>
7216
7217         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
7218         last patch.
7219
7220 2000-04-25  Richard Henderson  <rth@cygnus.com>
7221
7222         * cse.c (cse_insn): Emit barrier after unconditional jump.
7223
7224         * calls.c (expand_call): Disable tail call generation once
7225         rtx_equal_function_value_matters is false.
7226
7227         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
7228         like EDGE_EH edges.
7229
7230 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
7231
7232         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
7233
7234         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
7235
7236         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
7237         is the primary DIE for a member function.
7238         (gen_decl_die): Call set_decl_origin_self here.
7239         * dwarfout.c (output_decl): And here.
7240         * integrate.c (output_inline_function): Not here.
7241         Don't clear DECL_INLINE until after calling rest_of_compilation.
7242         (set_decl_origin_self): No longer static.
7243         * tree.h: Add prototype.
7244         * toplev.c (note_deferral_of_defined_inline_function): Only write
7245         out abstract instance for actual inlines.
7246
7247 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
7248
7249         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
7250         EXTENDED_REGS only if TARGET_AM33.
7251         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
7252         SP_REGS to register allocation and reloading unless absolutely
7253         necessary.
7254         (movsi3): Remove special-case of adding non-constants to SP.
7255
7256 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7257
7258         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
7259         INCLUDES to search and does not provide any of its own.  Also it
7260         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
7261         parameters.  Also it does not call AC_DEFINE.
7262         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
7263         AC_DEFINE and provides for automatic entries for autoheader.
7264         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
7265
7266         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
7267         so we can pass -I flags and include gansidecl.h/system.h in this
7268         test.
7269
7270         * acconfig.h: Delete all NEED_DECLARATION_* entries.
7271
7272 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7273
7274         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7275         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7276         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
7277
7278         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
7279         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
7280         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
7281         for these macros.  Clean up spacing and linewraps.
7282
7283 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
7284
7285         * calls.c (expand_call): Use get_callee_fndecl.
7286
7287         * print-tree.c (print_node): Print the chain of an _EXPR.
7288
7289 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
7290                           Jim Wilson  <wilson@cygnus.com>
7291                           Andrew Haley  <aph@cygnus.com>
7292
7293         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
7294         and gp save/restore problems.
7295         * config/ia64/crtend.asm: Add IA-64 unwind support.
7296         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
7297         in fr_pad_size calculation.
7298         (save_restore_insns): Move PR save area.  Correct uses of
7299         RTX_FRAME_RELATED_P.
7300         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
7301         (ia64_expand_epilogue): Add eh_epilogue support.
7302         (ia64_function_prologue): Emit .prologue directive.
7303         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
7304         (ia64_override_options): Set init_machine_status and
7305         mark_machine_status.
7306         (rtx_needs_barrier): Handle bsp reads and writes.
7307         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
7308         New static variables.
7309         (process_set, process_for_unwind_directive): New functions.
7310         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
7311         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
7312         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
7313         macros.
7314         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
7315         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
7316         (struct machine_function): Define.
7317         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
7318
7319 2000-04-25  Bruce Korb  <bkorb@gnu.org>
7320
7321         * fixinc/Makefile.in: make the removal of old programs more
7322         robust
7323         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
7324         install-bin and install-sh
7325
7326 2000-04-25  Nick Clifton  <nickc@cygnus.com>
7327
7328         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
7329         defined, define to return zero.
7330         (function_cannot_inline_p): If a function has any target
7331         specific attributes, then use the macro
7332         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
7333         whether it can be inlined.  If it cannot, issue a suitable
7334         explanation.
7335
7336         * tm.texi: Add a new node 'Inlining' to document the new macro
7337         FUNCTION_ATTRIBUTE_INLINABLE_P.
7338
7339 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
7340
7341         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
7342         commentary.
7343
7344 2000-04-25  Neil Booth  <NeilB@earthling.net>
7345
7346         Restore previous patch, plus the following fixes:
7347
7348         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
7349         flags, not CPP_OPEN_PAREN.
7350         * cpplex.c (expand_token_space, init_token_list,
7351         cpp_free_token_list): Put the dummy token at list->tokens[-1].
7352         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
7353
7354 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7355
7356         * config/i386/freebsd.h (INT_ASM_OP): Define.
7357
7358 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7359
7360         * loop.c (strength_reduce): Fix typo in the last checkin.
7361
7362 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7363
7364         * stor-layout.c (finalize_record_size): Simplify to use existing
7365         functions.
7366         (compute_record_mode): No longer static.
7367         * tree.h (compute_record_mode): New declaration.
7368
7369 2000-04-25  Neil Booth  <NeilB@earthling.net>
7370
7371         * Revert my patch below until cause of build failures
7372         determined.
7373
7374 2000-04-25  Richard Henderson  <rth@cygnus.com>
7375
7376         * combine.c (combine_instructions): Add missing argument
7377         to try_combine.
7378
7379         * toplev.c (rest_of_compilation): Delay sibcall optimization
7380         until after emit_eh_context.
7381
7382 2000-04-24  Nick Clifton  <nickc@redhat.com>
7383
7384         * combine.c (combine_instructions): Do not try to combine a
7385         sequence of insns when the second insn has been replaced by a
7386         note.
7387
7388 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
7389
7390         * gcc.c (load_specs): New static function.
7391         (read_specs): Use it.
7392
7393         * gcc.c (lookup_compiler): Make multiple passes for case
7394         insensitive filesystems.
7395
7396 2000-04-24  Neil Booth  <NeilB@earthling.net>
7397
7398         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
7399         * cpphash.h (_cpp_check_directive): new.
7400         * cpplex.c (handle_newline, cpp_free_token_list,
7401         init_trigraph_map, trigraph_ok, trigraph_replace,
7402         backslash_start, skip_block_comment, skip_line_comment,
7403         skip_whitespace, parse_name, parse_number, parse_string,
7404         copy_comment, _cpp_lex_line, spell_char, spell_string,
7405         spell_comment, spell_name, spell_other, _cpp_lex_file,
7406         _cpp_output_list): new.
7407         (expand_name_space): take length argument.
7408         (init_token_list): add comment list initialisation.
7409         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
7410         instead of HSPACE_BEFORE.
7411
7412         * cpplib.c (_cpp_check_directive): new
7413         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
7414         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
7415         (HSPACE_BEFORE): delete.
7416         (TTYPE_TABLE): rearrange.
7417         (struct cpp_toklist): update.
7418
7419 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7420
7421         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
7422         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
7423         argument form of AC_DEFINE.
7424
7425         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
7426         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
7427         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
7428         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
7429         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
7430
7431         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
7432
7433 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7434
7435         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
7436         deduced.h): Use -isystem, not -I, for including system headers.
7437
7438 2000-04-24  Nick Clifton  <nickc@cygnus.com>
7439
7440         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
7441         the source register is the frame pointer or arg pointer.
7442         (addsi3_small_int): Disallow if source register is the frame
7443         pointer or arg pointer.
7444
7445 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7446
7447         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7448         call to AC_MSG_RESULT.
7449
7450 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7451
7452         * invoke.texi: Correct grammatical errors, document
7453         -fno-gnu-keywords as identical to -fno-asm for C++.
7454
7455 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7456
7457         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7458         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7459         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7460         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7461         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7462
7463         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7464         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7465         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7466         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7467         new macros names.
7468
7469 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7470
7471         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7472         (pop_alignment): Likewise.
7473         (handle_pragma_token): Likewise.
7474
7475 2000-04-24  Robert Lipe <robertlipe@usa.net>
7476
7477         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7478
7479 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7480
7481         * combine.c (try_combine): Update reg_nonzero_bits of
7482         newi2pat before newpat.
7483
7484 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7485
7486         * loop.c (strength_reduce): Simplify test to INSN_P.
7487         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7488         expressions instead of CONST_INT.
7489         (express_from_1): Likewise.
7490
7491 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7492
7493         * regs.h (reg_n_max): Don't declare.
7494         * flow.c (reg_n_max): Don't define.
7495         * regclass.c (renumber): Don't initialize to zero.
7496         (regno_allocated): Likewise.
7497         (reg_n_max): Define.
7498         (allocate_reg_info): Don't initialize unnecessarily.
7499
7500 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7501
7502         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7503         and blockage_p in the newly allocated attribute.
7504
7505 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7506
7507         * config/mn10300/mn10300.md (addsi): `inc4' on address
7508         registers does not modify cc, but `inc' on an extended
7509         register does.
7510
7511 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7512
7513         * reload.c (find_equiv_reg): Checks all valueno regs
7514         as a reload_reg_p regs.
7515
7516 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7517
7518         * cpphash.c (collect_objlike_expansion): Add sanity check.
7519         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7520         the buffer is the empty string, return.  Mark __DATE__ and
7521         __TIME__ as XCONST nodes, not MCONST.
7522         (_cpp_macroexpand): Avoid pushing an empty buffer.
7523         (funlike_macroexpand): Don't pop token_buffer here.
7524
7525 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7526
7527         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7528         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7529         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7530         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7531         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7532         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7533         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7534
7535 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7536
7537         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7538         constant MULT givs.
7539
7540 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7541
7542         * cpphash.h (struct definition): Move file, line, col members...
7543         (struct hashnode): ... here.  Also add 'disabled' flag.
7544         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7545         T_IDENTITY.  Remove T_DISABLED.
7546         Update prototypes.
7547
7548         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7549         (collect_expansion): Split into collect_objlike_expansion and
7550         collect_funlike_expansion.
7551         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7552         funlike_macroexpand.
7553         (_cpp_compare_defs): Rename compare_defs, make static.
7554         (_cpp_make_hashnode): Initialize hp->disabled.
7555         (macro_cleanup): Adjust for new token types.  Clear
7556         m->disabled.
7557         (_cpp_create_definition): Move code here to determine what
7558         sort of macro it is, and code to check for redefinitions, from
7559         do_define.  Implement a few simple cases without creating a
7560         full DEFINITION.
7561         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7562         Handle the simple cases.
7563         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7564         here.
7565
7566         * cppinit.c (builtin_array): Change MCONST to XCONST
7567         everywhere.
7568         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7569         fix check for disabled and function-like macros.
7570         * cpplib.c (do_define): Move most logic to
7571         _cpp_create_definition.
7572         (do_undef): Handle new special token types.
7573
7574 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7575
7576         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7577         of CONSTANT_P for mult_val; always use validate_change to update insn.
7578
7579 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7580
7581         * cpphash.c (trad_stringify, add_pat): New functions.
7582         (collect_expansion): Restore support for -traditional syntax.
7583         Use trad_stringify and add_pat.
7584         (_cpp_macroexpand): Restore support for -traditional semantics.
7585         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7586         get a COMMENT token.
7587         (_cpp_lex_token): Provide COMMENT tokens to caller if
7588         traditional and parsing_define_directive.
7589         (skip_comment): Warn about // comments if -Wtraditional.
7590         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7591         proper node type.
7592         (do_undef): Don't warn about undefining EMPTY nodes.
7593
7594 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7595
7596         * loop.c (strength_reduce): Fix biv removal code.
7597
7598 2000-04-22  Richard Henderson  <rth@cygnus.com>
7599
7600         * predict.c (estimate_probability): Examine both sides of
7601         a branch for no exits.  Use 90% not 50% for predict taken.
7602         Reorg for one copy of note generation code.
7603
7604 2000-04-22  Richard Henderson  <rth@cygnus.com>
7605
7606         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7607
7608 2000-04-22  Richard Henderson  <rth@cygnus.com>
7609
7610         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7611         (output_clear): Likewise.
7612         (output_printf): Use va_copy.
7613         (vline_wrapper_message_with_location): Likewise.
7614         (v_message_with_decl): Likewise.
7615         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7616         * system.h (va_copy): Provide default implementation.
7617
7618 2000-04-22  Richard Henderson  <rth@cygnus.com>
7619
7620         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7621         the collected condition is not a constant.
7622
7623 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7624
7625         * diagnostic.h: New file.
7626
7627         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7628
7629         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7630         various function prototypes.
7631         (diagnostic.h): #include.
7632         (struct output_buffer): Move into diagnostic.h.
7633         (get_output_prefix): Rename to output_get_prefix.  Export.
7634         (init_output_buffer): Export. Break out.  Ajust intialization.
7635         (output_space_left, output_append): Export.
7636         (output_newline): Rename to output_add_newline.  Export.
7637         (output_clear): Nullify additional output_buffer fields.
7638         (output_puts): Rename to output_add_string.  Export.
7639         (dump_output): Rename to output_flush_on.  Export.
7640         (build_location_prefix): Constify return-type.
7641         (emit_output_prefix): Rename to output_emit_prefix. Export.
7642         (set_real_maximum_length): New function.
7643         (output_set_maximum_length): Ditto
7644         (output_clear): Ditto.
7645         (output_add_character): Ditto.
7646         (output_add_integer): Ditto.
7647         (output_add_space): Ditto.
7648         (output_format): Ditto.
7649         (output_printf): Adjust buffer initialization.
7650         (vline_wrapper_message_with_location): Ditto.
7651         (v_message_with_decl): Ditto.  Adjust call to output_puts
7652         and get_output_prefix.
7653         (default_print_error_function): Adjust buffer intialization.
7654
7655 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7656
7657         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7658         of VOID_TYPE.
7659
7660 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7661
7662         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7663         of explicit 0.
7664
7665 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7666
7667         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7668         accurate data about SP moves.
7669
7670 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7671
7672         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7673         aliases to AM33 registers.
7674
7675 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7676
7677         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7678         to all EXTENDED bitmaps.
7679
7680 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7681
7682         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7683         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7684         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7685
7686 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7687
7688         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7689         the operand is not constant.
7690
7691 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7692
7693         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7694         as a call-clobbered regs.
7695
7696 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7697
7698         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7699         * rtl.h: Likewise.
7700         * rtl.def: Update comment.
7701         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7702         * integrate.c (expand_inline_function): Likewise.
7703         * profile.c (branch_prob): Likewise.
7704         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7705         * print-rtl.c (print_rtx): Likewise.
7706         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7707         (reemit_notes): Likewise; also use enum insn_note.
7708
7709         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7710         (place_field): Properly compute know and actual alignment.
7711
7712         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7713         in proper format.
7714
7715         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7716         note for REG1.
7717
7718 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7719
7720         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7721         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7722         (collect_expansion): Rewrite to scan over a token list.
7723         Remove -traditional support.
7724         (collect_formal_parameters): Rename to collect_params; rewrite
7725         to scan over a token list.
7726         (_cpp_create_definition): Adjust to scan a token list.
7727         (_cpp_macroexpand): Remove -traditional support.
7728         (_cpp_compare_defs): Whitespace is now canonicalized.
7729         (comp_def_part): Delete function.
7730
7731         * cpphash.h: Update prototypes.
7732         * cpplex.c (init_token_list): Don't set lineno if there is no
7733         buffer.
7734         (pedantic_whitespace): New function.
7735         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7736         consume a newline.  Use pedantic_whitespace.
7737         (_cpp_lex_token): Remove support for -traditional macros.
7738         (_cpp_get_define_token): Delete.
7739         (_cpp_get_directive_token): Do the real work here.  Use
7740         pedantic_whitespace.
7741         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7742
7743         * cpplib.c (get_macro_name): Delete.
7744         (do_define): Read the entire line into pfile->directbuf, then
7745         feed the token list to _cpp_create_definition.
7746         * cpplib.h (HSPACE_BEFORE): new define.
7747         (struct cpp_reader): Add a toklist member, "directbuf".
7748
7749         * predict.c (estimate_probability): New heuristic: if a jump
7750         branches around a block with no successors, predict it taken.
7751         Disentangle control flow.
7752
7753 2000-04-20  Richard Henderson  <rth@cygnus.com>
7754
7755         * loop.c (emit_iv_add_mult): Revert last change.
7756
7757 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7758
7759         * cpplib.h (enum cpp_ttype): Add token types for all
7760         punctuators.  Distinguish pp-numbers from valid C numbers.
7761         Give some tokens better names.  Initialize from macro.
7762         (struct cpp_name, cpp_token, cpp_toklist): New data
7763         structures.
7764         Update prototypes.
7765         * cpplex.c (bump_column, expand_name_space,
7766         expand_token_space, init_token_list, cpp_output_list,
7767         _cpp_scan_line):  New functions.
7768         (output_line_command): Add third argument, new line number.
7769         * cpphash.h: Update prototypes.
7770         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7771         token names.
7772
7773 2000-04-20  Richard Henderson  <rth@cygnus.com>
7774
7775         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7776
7777 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7778
7779         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7780         object pointed to.
7781
7782 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7783
7784         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7785         REG_EQUAL note explaining the calculated value.
7786
7787         * calls.c (expand_call): Avoid unnecesary precalculation
7788         and outgoing parameters space guarding for sibling calls.
7789         (store_one_arg): Likewise.
7790
7791 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7792
7793         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7794         (rest_of_compilation): Write sibling dump file and account
7795         for time as jump time.
7796         * invoke.texi: Update documentation on dump flags.
7797
7798 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7799
7800         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7801
7802 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7803
7804         * cpphash.c (special_symbol): Represent an empty macro with
7805         "\r \r " not just "\r ".
7806         (_cpp_macroexpand): Correct condition for the foo ( ) special
7807         case.
7808         (unsafe_chars): Handle EOF as second argument.
7809         (push_macro_expansion): Simplify test for removing escape at
7810         end.  Do not trim both escapes if there is no text in between.
7811
7812 2000-04-19  Jim Blandy  <jimb@redhat.com>
7813
7814         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7815         of PTR_SIZE, when appropriate.
7816
7817 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7818
7819         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7820         (USE_ENUM_BITFIELDS): Fix typo.
7821
7822 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7823
7824         * stor-layout.c (place_field): Set rli->offset_align properly.
7825
7826 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7827
7828         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7829         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7830         PARM_BOUNDARY): Remove unnecessary casts.
7831
7832 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7833
7834         * calls.c (precompute_arguments): Remove must_preallocate and
7835         args_size calls.
7836         (expand_call): Update call of precompute_arguments.
7837
7838         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7839         check_insn_for_givs): Break out from ...
7840         (strength_reduce) ... here; use for_every_insn_in_loop to call
7841         check_insn_for_givs.
7842         * loop.h (for_every_insn_in_loop): Declare.
7843         (loop_insn_callback): New type.
7844
7845 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7846
7847         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7848         not nul-terminated.
7849
7850 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7851
7852         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7853         flag_pic and RELOC.
7854
7855 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7856
7857         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7858
7859         * configure.in: Delete --disable-cpplib option and all
7860         references to cpp_main.
7861         * configure: Regenerate.
7862         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7863         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7864         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7865         cpp$(exeext).  Add --no-headers to makeinfo command line when
7866         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7867         cccp.1.
7868         * install.texi: Delete all references to cexp.y/cexp.c.
7869         Delete ancient instructions for compiling GCC on 3b1.
7870         * INSTALL: Regenerate.
7871
7872         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7873         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7874         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7875         cexp.c/cexp.y.
7876         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7877         which is no longer tested anywhere.
7878
7879         * cppinit.c (handle_option): Don't run error message through
7880         gettext twice.
7881
7882 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7883
7884         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7885         * cpperror.c (hashtab.h): Now include.
7886         * cppexp.c (hashtab.h): Likewise.
7887         * cpplex.c (hashtab.h): Likewise.
7888         * cppfiles.c (hashtab.h): Likewise.
7889         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7890         to htab_find_slot_with_hash.
7891         * cpphash.c (hashtab.h): Now include.
7892         (_cpp_lookup_slot): INSERT is now enum insert_option.
7893         * cpphash.h (_cpp_lookup_slot): Likewise.
7894         * cppinit.c (hashtab.h): Include earlier.
7895         (initialize_builtins): Pass enum to htab_find_slot.
7896         * cpplib.c (hashtab.h): Now include.
7897         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7898         (do_pragma_poison, do_assert): Likewise.
7899         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7900         htab_find_slot_with_hash.
7901         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7902         * tree.c (type_hash_add): Likewise.
7903         (build1): Minor cleanup.
7904
7905         * ggc-common.c: Add missing blanks.
7906         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7907         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7908
7909         * stmt.c (mark_case_node): New function.
7910         (mark_case_nesting): Call it.
7911
7912         * expmed.c (emit_store_flag): If comparing two-word integer
7913         with zero, can optimize NE, EQ, GE, and LT.
7914
7915         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7916         * conflict.c: Minor cleanups.
7917         * optabs.c: Add blank line
7918         * simplify-rtx.c: Minor cleanups.
7919
7920 2000-04-18  Stan Cox  <scox@cygnus.com>
7921
7922         * gengenrtl.c (genlegend): Fix misspelling.
7923
7924 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7925
7926         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7927         bitfields of the host compiler are not signed quantities.
7928         * config.in: Regenerate.
7929         * configure: Regenerate.
7930         * system.h (USE_ENUM_BITFIELDS): Added.
7931         (ENUM_BITFIELDS): Added.
7932         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7933         (SHORT_ENUM_BUG): Deleted.
7934         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7935         now ENUM_BITFIELD.
7936         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7937         (CODE_FIELD_BUG): Likewise.
7938         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7939         (OLD_CC): Likewise.
7940         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7941
7942 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7943
7944         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7945         mark is active.
7946
7947 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7948
7949         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7950         * cpplib.c (do_include, do_import, do_include_next,
7951         read_line_number, detect_if_not_defined): Likewise.
7952         * cpphash.c (collect_expansion): Likewise.
7953         (special_symbol, _cpp_macroexpand): Check return from
7954         cpp_file_buffer.
7955         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7956         macros.  Delete all uses.
7957
7958         * gcc.dg/cpp-mi.c: Add two more test cases.
7959         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7960
7961 2000-04-17  Richard Henderson  <rth@cygnus.com>
7962
7963         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7964         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7965
7966 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7967
7968         * function.c (expand_function_start): Use hard_function_value to
7969         compute the RTL to use for DECL_RESULT.
7970
7971 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7972
7973         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7974         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7975          x86_memory_mismatch_stall): New global variables.
7976         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7977         alloved; fix load penalties for Athlon.
7978         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7979         x86_memory_mismatch_stall): Declare.
7980         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7981          TARGET_MEMORY_MISMATCH_STALL): New.
7982         * i386.md (athlon scheduling parameters): Fix latencies according to
7983         Athlon Optimization Manual.
7984         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7985         vector.
7986         (fsqrt instruction patterns): Set athlon_decode to direct.
7987         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7988         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7989         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7990         and TARGET_PARTIAL_REGISTER_STALL machines.
7991         (pushdf_nointeger): New pattern.
7992         (pushdf_integer): Rename from pushdf.
7993         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7994         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7995
7996 2000-04-17  Richard Henderson  <rth@cygnus.com>
7997
7998         * loop.c (canonicalize_condition): Add WANT_REG argument.
7999         Stop the search if we match it.
8000         * expr.h (canonicalize_condition): Update decl.
8001         * predict.c (expected_value_to_br_prob): Use it.  Track last
8002         expected value note.
8003         (find_expected_value): Remove.
8004
8005         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
8006
8007 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
8008
8009         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
8010         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
8011         a plain file.
8012         * configure.in: Call AC_FUNC_MMAP_FILE.
8013         * configure: Regenerate.
8014         * config.in: Regenerate.
8015
8016         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
8017         * fixinc/fixincl.c: Likewise.
8018
8019 2000-04-17  Richard Henderson  <rth@cygnus.com>
8020
8021         * builtins.c (expand_builtin_expect): New.
8022         (expand_builtin): Call it.
8023         * builtins.def (BUILT_IN_EXPECT): New.
8024         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
8025         * extend.texi: Document it.
8026
8027         * predict.c (expected_value_to_br_prob): New.
8028         (find_expected_value): New.
8029         * basic-block.h (expected_value_to_br_prob): Declare.
8030         * toplev.c (rest_of_compilation): Invoke it.
8031
8032         * rtl.h (NOTE_EXPECTED_VALUE): New.
8033         (NOTE_INSN_EXPECTED_VALUE): New.
8034         * rtl.c (note_insn_name): Update.
8035         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
8036         cases; handle NOTE_INSN_EXPECTED_VALUE.
8037
8038 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
8039
8040         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
8041         leaf sibcall delay slot if flag_pic.
8042         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
8043
8044 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8045
8046         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
8047
8048         * fixproto: If fix-header fails, exit with an error.
8049
8050 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8051
8052         * cse.c (struct check_depdendence_data): New.
8053         (check_dependence): New function.
8054         (invalidate): Use check_depdenence.
8055
8056 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8057
8058         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
8059         UNITS_PER_WORD is unsigned.
8060
8061         * tree.h (struct tree_common): Remove misleading comment.
8062
8063 2000-04-16  Dave Pitts  <dpitts@cozx.com>
8064
8065         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
8066         message in quotes. Otherwise, IBM's make program treats the '#' as the
8067         start of a comment and ignores the remainder of the line.
8068
8069         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
8070         upper case.
8071         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
8072         * cexp.y (initialize_random_junk): Likewise.
8073         * cppfiles.c (find_include_file): Cast alloca return value.
8074         * cppinit.c (initialize_standard_includes): Likewise.
8075         * cpplib.c (cpp_define, cpp_undef): Likewise.
8076         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
8077         * final.c (output_asm_insn): Allow for holes in EBCDIC.
8078         * fold-const.c (CHARMASK): New.
8079         (real_hex_to_f): Use it.
8080         * real.c (CHARMASK): New.
8081         (etoasc, asctoeg): Use it.
8082         (asctoeg): EBCDIC lower case characters preceed upper case.
8083
8084         * i370.c (mvs_add_label): Change spacing for coding conventions.
8085         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
8086         outputing case vectors.
8087         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
8088         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
8089         since vector in in the data CSECT.
8090         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
8091         * i370.md (Many patterns): Put the length in the XL directives.
8092         (movdi): Put back STM and MVC in definition.
8093         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
8094         pattern using the TCA.
8095         * oe.h (CPP_SPEC): Added to allow trigraphs.
8096         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
8097         not support the "long long" type.
8098
8099 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
8100
8101         * config/mips/mips-protos.h (mips_legitimate_address_p): New
8102         function.
8103         (mips_reg_mode_ok_for_base_p): Likewise.
8104         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
8105         (REG_OK_FOR_INDEX_P): Define unconditionally.
8106         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
8107         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
8108         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
8109         that GET_MODE_SIZE is unsigned.
8110         (mips_reg_mode_ok_for_base_p): Define.
8111         (mips_legitimate_address_p): Likewise.  Adjust now
8112         that GET_MODE_SIZE is unsigned.
8113         (block_move_loop): Make the number of bytes unsigned.
8114         (expand_block_move): Likewise.
8115         (function_arg): Make the loop counter unsigned to match the
8116         boundary condition.
8117
8118 2000-04-16  Richard Henderson  <rth@cygnus.com>
8119
8120         * rtl.h (enum insn_note): New enumeration.  Subsume
8121         NOTE_INSN_DELETED and friends.
8122         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
8123         * rtl.c (note_insn_name): Tweak string order.
8124
8125 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
8126
8127         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
8128         to offset * 2.
8129
8130         * cpplex.c (output_line_command): Remove debugging prints.
8131         (cpp_output_tokens): Don't write out a zero-length buffer or
8132         try to see if it has a newline in it.
8133         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
8134         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
8135         the end of the loop.  Use memmove.  Don't read past the end of
8136         the buffer.  Remove trailing newlines from error messages.
8137
8138 2004-04-16  Neil Booth  <NeilB@earthling.net>
8139
8140         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
8141         * cpplib.c: Add new syntax flags to directive table, and
8142         supporting macros.
8143
8144 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
8145
8146         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
8147         using ret $N.
8148
8149 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
8150
8151         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
8152         * haifa-sched.c: Update -fsched-verbose comments to use "=".
8153
8154 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8155
8156         * Makefile.in (ggc-page.o): Now includes toplev.h.
8157         * ggc-page.c (toplev.h): Now included.
8158         (gc_time): Remove declaration.
8159         (ggc_collect): TIME now long.
8160         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
8161         others static.
8162         * toplev.h (gc_time, parse_time, gc_time): New declarations.
8163
8164         * toplev.c: Make *_time variable long to reduce chance of overflow.
8165         (TIMEVAR): Likewise for `otime'.
8166         (print_time): Arg is now long; compute percentage in FP and round.
8167         * toplev.h (print_time): Arg is long.
8168
8169         * tree.c: Minor whitespace changes.
8170
8171         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
8172         * configure: Rebuilt.
8173         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
8174         (__fixunsxfDI): Renamed from __fixunsxfdi.
8175         (__fixunsdfDI): Renamed from __fixunsdfdi.
8176         (__fixunssfDI): Renamed from __fixunssfdi.
8177         (__floatdisf): Use proper type in REP_BIT macro.
8178         (__fixunsxfSI): Renamed from __fixunsxfsi.
8179         (__fixunsdfSI): Renamed from __fixunsdfsi.
8180         (__fixunssfSI): Renamed from __fixunssfsi.
8181         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
8182         Change location of macros and upper-case some names as above.
8183         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
8184         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
8185
8186         * varasm.c (assemble_variable): Add cast to remove warning.
8187         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
8188
8189         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
8190         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
8191         region number to -1.
8192
8193 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
8194
8195         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
8196         call unshare_all_rtl.
8197
8198         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
8199
8200 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
8201
8202         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
8203         Use .s1 not .s0 for all FP instructions.
8204
8205 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
8206
8207         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
8208         interfaces.
8209         (safe_fwrite, output_line_command): New static functions.
8210         (cpp_expand_to_buffer): Now private to cpplib.
8211         (cpp_scan_buffer): Take a printer.
8212
8213         * cpphash.h: Update prototypes.
8214         * cpplib.h: Update prototypes.
8215         (cpp_printer): New.
8216         (cpp_buffer): Remove last_nominal_fname.
8217         (cpp_reader): Remove lineno.
8218
8219         * cppmain.c: Use a cpp_printer.
8220         * fix-header.c: No need to inhibit line commands.  Call
8221         cpp_start_read with no printer.
8222
8223         * cpperror.c (cpp_notice_from_errno): Provide default name.
8224         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
8225         (find_include_file, cpp_read_file): Use make_IHASH.
8226         (file_cleanup): Set control_macro and clear
8227         input_stack_listing_current here.
8228         (_cpp_execute_include): Don't output entering-file marker.
8229         * cpphash.c (special_symbol): Look for the line number in the
8230         buffer, not the reader.
8231         (_cpp_macroexpand): No need to disable line commands.
8232         (_cpp_dump_definition): No need to generate line commands.
8233         (dump_hash_helper): Remove excess newline from output.
8234         * cppinit.c (dump_special_to_buffer): No need to generate line
8235         commands.
8236         (cpp_printer_init): New.
8237         (cpp_start_read): Take a printer, and start it up if it's not
8238         NULL.  No need to generate line commands.
8239         (cpp_finish): Expect no buffers stacked at all.  Take a
8240         printer argument, and flush the output buffer if it's not
8241         NULL.
8242         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
8243         Don't put two hashes at the beginning of an assertion.
8244         (cpp_get_token): Don't increment pfile->lineno or emit line
8245         commands here.  Return EOF if there's no buffer when we get
8246         EOF.
8247         * cpplib.c (do_define, skip_if_group):
8248         No need to disable line commands.
8249         (_cpp_output_line_command): Delete function.
8250         (do_line): Don't emit line commands here, but set things up so
8251         they will be emitted if necessary.  Use _cpp_fake_ihash to
8252         make unique nominal_fnames if necessary.
8253         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
8254         with 0 for column, not -1.
8255         (_cpp_handle_eof): Don't set the control macro here.  Don't
8256         clear input_stack_listing_current here.  Don't emit line
8257         commands.
8258
8259 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
8260
8261         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
8262         always, use the default SVR4 start address.
8263
8264         * config/rs6000/linux.h (LINK_SPEC): Don't define.
8265         (LINK_SHLIB_SPEC): Define.
8266         (LINK_START_DEFAULT_SPEC): Define.
8267         (LINK_OS_DEFAULT_SPEC): Define.
8268
8269         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
8270
8271         * config/rs6000/eabi.asm (__eabi): Call __init rather than
8272         __do_global_ctors to handle constructors.
8273         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
8274         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
8275         (STARTFILE_MVME_SPEC): Likewise.
8276         (STARTFILE_SIM_SPEC): Likewise.
8277         (ENDFILE_ADS_SPEC): Use crtend.
8278         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
8279         (ENDFILE_MVME_SPEC): Likewise.
8280         (ENDFILE_SIM_SPEC): Likewise.
8281         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
8282         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
8283         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
8284         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
8285         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
8286         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
8287         (CRTSTUFF_T_CFLAGS_S): Define.
8288         * config/rs6000/eabi-ctors.c: Delete.
8289
8290         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
8291         boundary.
8292         (__fini): Likewise.
8293         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
8294         boundary.
8295         (__fini): Likewise.
8296
8297 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
8298
8299         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
8300         plus mask size is smaller or equal to the mode size.
8301
8302 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8303
8304         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
8305         not yet set.
8306
8307         * expr.c (reload.h): Now included.
8308         (emit_block_move): Set volatile_ok when checking for movstr.
8309         (emit_move_1): Check for replacements in addresses in multi-word case.
8310         * Makefile.in (expr.o): Now includes reload.h.
8311
8312         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
8313         Never have a LIBCALL end a basic block.
8314         (find_basic_blocks_1): Likewise.
8315         Reorganize CALL_INSN cases.
8316
8317         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
8318
8319 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
8320
8321         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
8322         completers from mov.ret instruction.
8323
8324 2000-04-14  Richard Henderson  <rth@cygnus.com>
8325
8326         * fold-const.c (extract_muldiv): Don't distribute and widen
8327         multiply across plus for non-sizetype unsigned types.
8328
8329 2000-04-14  Richard Henderson  <rth@cygnus.com>
8330
8331         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
8332         If the original source is dead in the incr insn, it's dead now.
8333
8334 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8335
8336         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
8337         see if DECL_BIT_FIELD needs to still be set.
8338
8339         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
8340
8341         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
8342         print_int_cst_octal with something that's not an INTEGER_CST.
8343
8344         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
8345         and not a SUBREG to a FLOAT rtl.
8346
8347 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
8348
8349         * emit-rtl.c (try_split): Avoid infinite loop if the split
8350         results in a sequence that contains the original insn.
8351
8352 2000-04-13  Andreas Jaeger  <aj@suse.de>
8353
8354         * config/mips/mips.c (expand_block_move): Pass alignment
8355         argument to move_by_pieces in bits, not bytes.
8356
8357         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
8358         __pic__ for little endian.
8359
8360 2000-04-13  Andreas Jaeger  <aj@suse.de>
8361
8362         * config/i386/i386-protos.h: Add prototype for
8363         uno_comparison_operator.
8364
8365 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8366
8367         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
8368         * calls.c (ECF_PURE): New flag.
8369         (emit_call_1): Handle ECF_PURE calls.
8370         (initialize_argument_information): Unset ECF_PURE flag too.
8371         (precompute_arguments): Precompute for ECF_PURE too.
8372         (expand_call): Handle ECF_PURE calls too.
8373         (emit_library_call_value_1): Rename no_queue argument to fn_type,
8374         accept value of 2 as pure function.
8375         (emit_library_call_value, emit_library_call): Rename no_queue argument
8376         to fn_type.
8377         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
8378
8379         * tree.h (DECL_IS_PURE): New macro.
8380         (struct tree_decl): Add pure_flag.
8381         * c-common.c (enum attrs): Add attribute "pure".
8382         (init_attributes): Initialize attribute "pure"
8383         (decl_attributes): Handle attribute "pure".
8384         * extend.texi (Attribute "pure"): Document.
8385         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
8386         in pure function.
8387         (flags_from_decl_or_type): Support attribute "pure".
8388
8389 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
8390
8391         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
8392         the token except for numbers and identifiers.
8393
8394 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
8395
8396         * i386.c (ix86_expand_binary_operator,
8397         ix86_expand_unary_operator): Check no_new_pseudos
8398         instead of reload_in_progress and reload_completed.
8399         (ix86_split_ashldi, ix86_split_ashrdi,
8400         ix86_split_lshrdi): Check no_new_pseudos instead
8401         of reload_completed.
8402
8403 2000-04-12  Jeffrey A Law  (law@cygnus.com)
8404
8405         * function.c (purge_addressof): Unshare any shared rtl created by
8406         purge_addressof and its children.
8407
8408 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
8409
8410         * function.c (aggregate_value_p): VOID_TYPE nodes are never
8411         aggregates.
8412
8413 2000-04-05  Andreas Jaeger  <aj@suse.de>
8414
8415         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
8416         not compiling PIC code, add flags for mabi=64.
8417         (SUBTARGET_CPP_SIZE_SPEC): New.
8418         (SUBTARGET_CPP_SPEC): New.
8419         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
8420         for MIPS/Linux and lots of code needs these defines.
8421
8422 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
8423
8424         * reorg.c (fill_slots_from_thread): Check side_effects_p when
8425         trying the "opposite arithmetic" approach.
8426
8427 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8428
8429         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
8430         (struct sh_args): Add new field force_mem.
8431         (INIT_CUMULATIVE_ARGS): Initialize it.
8432         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
8433
8434 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8435
8436         * calls.c (expand_call): Do not reverse args in "equal from" field.
8437         (emit_library_call_value_1): Emit_libcall_block for const and pure
8438         function.
8439
8440 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8441
8442         * reload1.c (reload_combine): Don't enable optimization for fixed
8443         registers when encountering a BARRIER.
8444
8445 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8446
8447         * builtins.c (expand_builtin_memcmp): Do expansion even with
8448         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8449
8450         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8451         stack is propertly aligned; add sanity checking for aligned
8452         stack pointer.
8453         (expand_library_call_value_1): Add sanity checking for aligned
8454         stack pointer.
8455
8456 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8457
8458         * calls.c (emit_library_call_value_1): Change 3rd arg to
8459         locate_and_pad_parm to disregard the setting of partial.
8460
8461 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8462
8463         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8464
8465         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8466         CALL_INSN from the normal case.
8467
8468 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8469
8470         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8471         New global variables.
8472         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8473         adjustment.
8474         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8475         Declare,
8476         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8477          TARGET_ADD_ESP_8): New macros.
8478         * i386.md: Add peep2s to convert esp adjustments to push and pop
8479         instructions.
8480         (pushsi_prologue, popsi_epilogue): New patterns.
8481
8482 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8483
8484         * real.c (toe64): Remove stale #endif from the last change.
8485
8486 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8487
8488         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8489         * real.c (toe64): Revert previous change.
8490
8491 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8492
8493         * objc/objc-act.c: Include ggc.h.
8494         (objc_tree_index, objc_global_trees): Convert most of the
8495         static tree variables into a static array with previous names
8496         as defines.
8497         (objc_ellipsis_node): New variable.
8498         (lang_init): Call objc_act_parse_init and c_parse_init.
8499         Create objc_ellipsis_node.
8500         (build_selector_translation_table): Use objc_ellipsis_node instead
8501         of (tree)1.
8502         (hack_method_prototype): Likewise.
8503         (get_arg_type_list): Likewise.
8504         (start_method_def): Likewise.
8505         (continue_method_def): Likewise.
8506         (gen_method_decl): Likewise.
8507         (ggc_mark_imp_list): New function.
8508         (ggc_mark_hash_table): New function.
8509         (objc_act_parse_init): New function.
8510         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8511         * c-parse.in (c_parse_init): For objc add roots of objc specific
8512         local tree variables.
8513         * objc/objc-parse.y: Rebuilt.
8514         * objc/objc-parse.c: Rebuilt.
8515         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8516
8517 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8518
8519         * cse.c (delete_trivially_dead_insns): Also delete insns
8520         that copy a register to itself where the destination is
8521         a strict_low_part.
8522
8523 2000-04-11  Richard Henderson  <rth@cygnus.com>
8524
8525         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8526         (propagate_block): Initialize them.  Use them in parallel instead
8527         of one tmp variable, ie revert much of the 0408 and 0407 functional
8528         changes, but keep the structural changes.
8529         (mark_set_regs): Take new_dead from propagate_block_info instead.
8530         (mark_set_1, mark_set_reg): Likewise.
8531         (mark_used_regs): Likewise with new_live.
8532         (mark_used_reg): Likewise.  Revert 0408 change.
8533
8534 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8535
8536         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8537         restriction.
8538         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8539
8540 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8541
8542         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8543         const section to output a CONSTRUCTOR based on the same conditions
8544         used for VAR_DECLs.
8545
8546 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8547
8548         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8549         * pa/pa-protos.h (output_call): Add additional argument indicating
8550         if the call is a sibling/tail call.
8551         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8552         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8553         (function_arg, function_arg_partial_nregs): Likewise
8554         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8555         (emit_move_sequence): Zero extend certain constants as needed
8556         for TARGET_64BIT.
8557         (compute_zdepdi_operands, output_64bit_and): New functions.
8558         (output_64bit_ior, function_arg): Likewise.
8559         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8560         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8561         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8562         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8563         (output_bvb): Likewise.
8564         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8565         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8566         as needed.
8567         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8568         (ouput_arg_descriptor): Do not emit argument descriptors for
8569         TARGET_64BIT.
8570         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8571         defined.
8572         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8573         (FUNCTION_OK_FOR_SIBALL): Define.
8574         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8575         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8576         (CPP_SPEC): Use new spec infrastructure.
8577         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8578         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8579         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8580         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8581         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8582         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8583         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8584         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8585         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8586         (FUNCTION_ARG); Call out to C code.
8587         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8588         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8589         (MIN_UNITS_PER_WORD): Likewise.
8590         * pa/pa.md (cmpdi): New expander.
8591         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8592         (64bit conditional arithmetic): New patterns.
8593         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8594         (movsicc): Not available if modes on all the operands to not match.
8595         (movdicc): New expander and associated patterns.
8596         (64bit branches): New patterns.
8597         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8598         (pre_ldd, post_std): New patterns.
8599         (64bit addil, load low part): New patterns.
8600         (special movsf constant): Not available for TARGET_64BIT.
8601         (movsf, movdf expanders): Force constants into memory.
8602         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8603         (64bit movdf/movdi patterns): New patterns.
8604         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8605         for TARGET_64BIT.
8606         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8607         (adddi3 expander): Allow "arith_operand" for second input.
8608         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8609         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8610         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8611         (muldi3): New expander for TARGET_64BIT.
8612         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8613         for TARGET_64BIT.
8614         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8615         patterns for TARGET_64BIT.
8616         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8617         patterns for TARGET_64BIT.
8618         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8619         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8620         (sibcall_epilogue): New expander.
8621         (casesi): Tweak for TARGET_64BIT.
8622         (call expanders): Set & use the outgoing argument pointer.  Use the
8623         64bit call patterns as needed. Add additional arg to output_call.
8624         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8625         (sibcall, sibcall_internal_symref): New expanders.
8626         (sibcall_value, sibcall_value_internal_symref
8627         (interspace_jump): Turn into an expander + matching patterns.
8628         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8629         * pa/pa64-regs.h: Eliminate trigraph sequences.
8630         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8631
8632 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8633
8634         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8635         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8636         cpp_token with cpp_ttype everywhere.
8637         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8638         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8639         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8640         long.
8641         * cpplex.c (cpp_buf_line_and_col): Delete.
8642         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8643         'long lineno' to 'unsigned int lineno'.
8644         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8645
8646 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8647
8648         * extend.texi: ISO C99 is not a draft anymore.
8649         * invoke.texi: ISO C++ is not a draft anymore.
8650         * cpp.texi: __cplusplus is required by the ISO standard.
8651
8652         * extend.texi (-fthis-is-variable): Undocument.
8653         * flags.h (warn_template_debugging): Remove declaration.
8654         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8655         -Wenum-clash, -Wtemplate-debugging): Undocument.
8656
8657 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8658
8659         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8660         integer.
8661         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8662         integer.
8663         (ARM_SIGN_EXTEND): Use HOST_UINT.
8664         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8665         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8666         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8667         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8668
8669         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8670         (arm_gen_constant): Use HOST_UINT.
8671         (arm_canonicalize_constant): Use HOST_UINT.
8672         (arm_reload_in_hi): Use HOST_UINT.
8673         (arm_reload_out_hi): Use HOST_UINT.
8674         (output_multi_immediate): Use HOST_UINT.
8675         (int_log2): Use HOST_UINT.
8676         (arm_poke_function_name): Use HOST_UINT.
8677         (arm_output_epilogue): Use arm_volatile_func().
8678         (output_thumb_prologue): Use arm_strip_name_encoding().
8679
8680 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8681
8682         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8683         of sequence point problems.
8684
8685 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8686
8687         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8688         Recomment.
8689         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8690
8691 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8692
8693         * sbitmap.h: Whitespace changes and use upper-case macro args.
8694         (struct simple_bitmap_def): All sizes now unsigned.
8695         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8696         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8697         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8698         (sbitmap_zero): Cast bzero arg to PTR.
8699         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8700         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8701         loop to make structure clearer.
8702         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8703         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8704         (sbitmap_a_and_b_or_c): Likewise.
8705         (sbitmap_intersection_of_succs): Minor cleanups.
8706         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8707         (sbitmap_union_of_preds): Likewise.
8708         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8709         (debug_sbitmap): New function.
8710
8711         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8712         * c-typeck.c (convert_for_assignment): Likewise.
8713
8714         * expmed.c (init_expmed): Don't free objects we make.
8715         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8716
8717         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8718         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8719
8720         * gcse.c (expr_hash_table_size): Now unsigned.
8721         (compute_ae_gen): Local variable `i' now unsigned.
8722         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8723         (compute_transout, hoist_code): Likewise.
8724         (compute_local_properties): Likewise, also hash_table_size.
8725         (alloc_expr_hash_table): N_INSNS now unsigned.
8726         (delete_null_pointer_checks): Mark arg F as unused.
8727
8728         * regrename.c: Minor cleanups, including chang some variables
8729         to unsigned int.
8730
8731 2000-04-10  Neil Booth  <NeilB@earthling.net>
8732
8733         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8734         than GETC ().
8735         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8736
8737 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8738
8739         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8740         __classof__, and __headof__ from the list of gnu keywords.
8741         (-ansi): Remove -foperator-names from list of implied options.
8742         Do not call it ANSI C++.
8743         (-foperator-names): Document as -fno-operator-names.
8744
8745 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8746
8747         * cpphash.c (timestamp): Delete.
8748         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8749         (special_symbol): Remove unnecessary braces.  Remove
8750         T_VERSION.  Treat T_STDC like T_CONST unless
8751         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8752         when one is encountered, then convert them into T_MCONST
8753         nodes.
8754         * cppinit.c (builtin_array): version_string is T_MCONST.
8755         __STDC__ has a "1" in its cpval.  Don't have a terminator
8756         entry.  Clean up which entries are dumped.
8757         (initialize_builtins): Only __STDC__ gets the special
8758         -traditional treatment.  Count the length of builtin_array.
8759         Render version_string here.
8760         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8761         * cpplib.h (struct cpp_reader): Remove timebuf.
8762
8763 2000-04-09  Richard Henderson  <rth@cygnus.com>
8764
8765         * genrecog.c (pred): Update comparison_operator for the unordered
8766         operators.
8767
8768         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8769         operators.
8770         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8771         (uno_comparison_operator): New.
8772         (put_condition_code): Handle UNORDERED/ORDERED.
8773         (unsigned_comparison): Likewise.
8774         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8775         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8776         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8777         update all callers.  Handle all 8 unordered operators.
8778         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8779         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8780         * config/i386/i386.h (PREDICATE_CODES): Update.
8781         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8782         (ix86_expand_branch, ix86_expand_setcc): Update.
8783         * config/i386/i386.md (sunordered, sordered): New.
8784         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8785         (bunordered, bordered): New.
8786         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8787         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8788         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8789
8790 2000-04-09  Philip Blundell  <philb@gnu.org>
8791
8792         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8793
8794 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8795
8796         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8797         fix_truncxfhi2): New patterns.
8798         * i386.c (output_fix_trunc): Handle converting to HImode.
8799
8800 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8801
8802         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8803         life_analysis.
8804         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8805         (for_each_successor_phi): Change parameter to basic_block.
8806         (coalesce_regs_in_successor_phi_nodes): Likewise.
8807         (coalesce_regs_in_copies): Likewise.
8808         (compute_coalesced_reg_partition): Use basic_block instead of index.
8809         * rtl.h (convert_to_ssa): Delete.
8810         (convert_from_ssa): Likewise.
8811         (successor_phi_fn): Likewise.
8812         (for_each_successor_phi): Likewise.
8813         (in_ssa_form): Likewise.
8814         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8815         (convert_from_ssa): Likewise.
8816         (successor_phi_fn): Likewise.
8817         (in_ssa_form): Likewise.
8818         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8819         * flow.c (calculate_global_regs_live): Pass a basic_block to
8820         for_each_successor_phi.
8821
8822 2000-04-08  Richard Henderson  <rth@cygnus.com>
8823
8824         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8825         was modified in the current insn.
8826
8827 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8828
8829         * arm/thumb.md: Delete.
8830         * arm/thumb-protos.h: Delete.
8831
8832 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8833
8834         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8835
8836         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8837
8838         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8839         into branch.
8840
8841         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8842         define_expand.
8843         (*arm_nop, *thumb_nop): Delete.
8844
8845         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8846         constants.  Use casts instead.
8847         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8848         output_multi_immediate, arm_poke_function_name): Likewise.
8849         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8850         MASK_RETURN_ADDDR): Likewise.
8851
8852         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8853
8854         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8855         into branch.
8856
8857         * arm.md (eh_epilogue): New function.
8858         * arm.h (struct machine_function): Move to here ...
8859         * arm.c: ... from here.
8860         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8861         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8862         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8863
8864         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8865
8866         * config/arm/semi.h (ASM_SPEC): Restore definition.
8867         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8868
8869         * config/arm/elf.h (ASM_SPEC): Restore definition.
8870         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8871
8872         * config/arm/arm.h (ASM_SPEC): Remove definition.
8873         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8874
8875         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8876
8877         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8878
8879         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8880
8881         Various formating tidyups, elimination of compile time
8882         warnings and synchronisation with internal sources:
8883
8884         * config/arm/arm-protos.h (assemble_align): Add prototype.
8885         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8886         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8887         (arm_return_addr_rtx): Rename to arm_return_addr.
8888
8889         * config/arm/arm.c: Include except.h.
8890         Define shorter typenames for strict minipool_node and struct
8891         minipool_fix.
8892         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8893         in memory.
8894         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8895         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8896
8897         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8898         already defined.
8899         (ASM_SPEC): Define if not already defined.
8900         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8901
8902         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8903         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8904         arm_gen_compare_reg.
8905         (indirect_jump):  Only accept register operands.
8906         (load_indirect_jump): Keep this pattern since combine can generate
8907         it.
8908
8909         * config/arm/coff.h: Include aout.h.
8910         (MULTILIB_DEFAULTS): Only define if not already defined.
8911
8912         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8913         into arm.h (so that COFF ports can support thumb based aliases).
8914         (ASM_SPEC): Move definition into arm.h
8915
8916         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8917         redundant apcs spec.
8918         (ASM_SPEC): Move definition to arm.h
8919
8920         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8921
8922         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8923         for entries in the .bss section
8924
8925         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8926
8927         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8928         to thumb_far_jump_used_p.
8929
8930         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8931         single integer parameter.
8932
8933         * config/arm/arm.c (struct machine_function): Add two new
8934         fields, 'far_jump_used' and 'arg_pointer_live'.
8935         (thumb_far_jump_used_p): Once the decision has been made that
8936         far jumps might be used, always return true.
8937         If being called from the initial elimination offset macro then
8938         do not bother to perform the test if the arg pointer is not
8939         being used.
8940         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8941         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8942
8943         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8944
8945         * arm.c (output_return_instruction): Handle more cases where we can
8946         return from a function with an ldr instruction.
8947         (arm_output_epilogue): Likewise.
8948
8949         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8950         if we need to push a large stack frame and there are no callee-saved
8951         registers.
8952
8953         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8954         in ARM code if the frame pointer has been eliminated.
8955
8956         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8957         unspec_volatile arguments to avoid duplicates.
8958         (consttable_1, consttable_2): Fixes for big-endian mode.
8959
8960         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8961         as appropriate.
8962
8963         Re-write constant pool code.
8964         * arm.c (minipool_node, minipool_fix): New types.
8965         (minifix): Delete type.
8966         (arm_add_minipool_constant): Delete.
8967         (arm_compute_minipool_offsets, arm_find_barrier,
8968         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8969         (get_jump_table_size): Now returns HOST_WIDE_INT.
8970         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8971         functions.
8972         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8973         (assign_minipool_offsets, arm_print_value): Likewise.
8974         (dump_minipool): Rewrite.
8975         (arm_barrier_cost): New function.
8976         (create_fix_barrier): New function.
8977         (push_minipool_barrier): New function.
8978         (push_minipool_fix): Record additional information about the fixup
8979         required.
8980         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8981         check the mode of what needs fixing.
8982         (arm_reorg): Rewrite.
8983
8984         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8985
8986         * config/arm/arm.md (indirect_jump): Force constant addresses into
8987         a register.
8988
8989         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8990
8991         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8992
8993         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8994
8995         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8996         adjust is word aligned.
8997         (thumb_expand_epilogue): Make sure that stack adjust is word
8998         aligned.
8999
9000         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
9001
9002         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
9003
9004         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
9005         pointer relative addresses.
9006
9007         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
9008
9009         * arm.c (find_barrier): Find the last barrier within the allowed
9010         range.
9011
9012         2000-02-09  Nick Clifton  <nickc@cygnus.com>
9013
9014         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
9015
9016         2000-02-09  Nick Clifton  <nickc@cygnus.com>
9017
9018         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
9019         ARM_FUNCTION_PROFILER.
9020
9021         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
9022         ARM_FUNCTION_PROFILER.
9023
9024         * config/arm/linux-oldld.h: Imported from mainline sources.
9025
9026         2000-02-07  Nick Clifton  <nickc@cygnus.com>
9027
9028         * config/arm/lib1funcs.asm: Merge in thumb functions from
9029         lib1thumb.asm.
9030
9031         * config/arm/lib1thumb.asm: Delete.
9032
9033         2000-02-04  Nick Clifton  <nickc@cygnus.com>
9034
9035         * config/arm/arm.c: Sychronised with current Red hat local
9036         sources.
9037         * config/arm/arm.h: Ditto.
9038         * config/arm/arm-protos.h: Ditto.
9039
9040         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
9041
9042         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
9043
9044         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
9045         byte stores.
9046
9047         2000-02-02  Nick Clifton  <nickc@cygnus.com>
9048
9049         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
9050
9051         * config/arm/arm.md (epilogue): Fix rtl checking abort because
9052         (return) was emited using an emit_insn() call.
9053
9054         2000-01-31  Nick Clifton  <nickc@cygnus.com>
9055
9056         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
9057         thumb stack frame.
9058         (thumb_exit): Move frame pointer back into hard frame pointer
9059         register if backtracing is being used.
9060
9061         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
9062
9063         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
9064         into branch.
9065
9066         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
9067
9068         * config/arm/arm.md (neg_pool_offset): Provide default for new
9069         attribute.
9070         (arm_movsi_insn): Add neg_pool_offset attribute.
9071         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
9072         rtx for the insn that starts the scan and an unsigned long for its
9073         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
9074         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
9075         instructions in *PINSERTED.
9076         (struct minipool_fixup): Add MIN_ADDRESS elt.
9077         (sort_fixups): Compute it.
9078         (arm_reorg): Changes to support inserting pools before the insn to be
9079         fixed up.
9080
9081         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
9082
9083         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
9084         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
9085         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
9086
9087         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
9088
9089         * config/arm/semi.h (TARGET_VERSION): Do not define if already
9090         defined.
9091         (TARGET_DEFAULT): Do not define if already defined.
9092
9093         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
9094
9095         * config/arm/arm.md (anddi3): Allow disjoint source operands.
9096         (iordi3): Allow disjoint source operands.
9097         (xordi3): Allow disjoint source operands.
9098         (negdi2): Permit construction for ARM and Thumb.
9099         (arm_negdi2): Renamed version of old negdi2 pattern.
9100         (thumb_negdi2): New pattern: Only permit non-overlapping
9101         source and destination.
9102
9103         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
9104
9105         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
9106         scratch low register so that it will not be deleted.
9107
9108         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
9109
9110         * config/arm/pe.h (ARM_PE): Define.
9111
9112         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
9113         interfacearm attribute if this is a PE toolchain.
9114         (output_return_instruction): Do not emit anything if the function
9115         has the naked attribute set.
9116         (is_called_in_ARM_mode): If the function has the interfacearm
9117         attribute then return true.
9118         (thumb_expand_prologue): Do not generate a prologue for naked
9119         functions.
9120         (thumb_expand_epilogue): Do not generate an epilogie for a naked
9121         function.
9122         (output_thumb_prologue): Do not bother if the function is naked.
9123         Strip PE encoding from function name before emitting.
9124
9125         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
9126
9127         * arm.md (pic_load_addr): Fix constraints.
9128
9129         * arm.md (casesi_insn): Fix mis-applied patch.
9130
9131         * arm.md ("core" function unit): Add rules for single- and
9132         multi-cycle insns.
9133         (All TARGET_THUMB patterns): Add "type" attribute information
9134         where needed.
9135         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
9136         the following insn is a CALL.
9137
9138         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
9139         pointer.
9140         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
9141         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
9142         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
9143
9144         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
9145
9146         * config/arm/linux-gas.h: oops - this file was missed out when the
9147         branch was created...
9148
9149         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
9150
9151         * thumb.c: Deleted.  Move contents to ...
9152         * arm.c: ... here.
9153         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
9154         rule for thumb.o
9155         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
9156         * configure: Regen.
9157
9158         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
9159         declare a prototype for asm_output_align();
9160
9161         * arm.c (thumb_condition_code): Delete.
9162         (arm_print_operand): Always use arm_condition_code array.
9163
9164         * arm.c (thumb_return_addr_rtx): Delete.
9165         (arm_save_machine_status, arm_restore_machine_status): Delete.
9166         (arm_init_machine_status, arm_mark_machine_status): New functions.
9167         (arm_init_expanders): Update accordingly.
9168         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
9169         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
9170         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
9171
9172         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
9173
9174         * configure.in : Fix arm-*-aout target to use new t-arm-aout
9175         script.
9176         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
9177         targets.
9178
9179         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
9180
9181         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
9182         stack backtrace structure.
9183
9184         * config/arm/arm-protos.h: Add prototypes for functions defined in
9185         arm/pe.h.
9186
9187         * config/arm/arm.c (arm_override_options): Fix selection of
9188         attributes of default processor.
9189
9190         * config/arm/coff.h: Delete needless #include.
9191
9192         * config/arm/pe.c: Delete unused code.
9193
9194         * config/arm/pe.h (CPP_DEFINES): Delete
9195         (SUBTARGET_CPP_SPEC): Define.
9196         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
9197
9198         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
9199
9200         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
9201
9202         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
9203         updated.
9204         (CAN_DEBUG_WITHOUT_FP): Define.
9205         (FIXED_REGISTERS): Make r11 call-saved.
9206         (CALL_USED_REGISTERS): Likewise.
9207         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
9208         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
9209         frame-pointer is required.
9210         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
9211         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
9212         if the target normally needs a stack frame in non-leaf functions.
9213         (use_return_insn): Correct logic for determining when a return
9214         instruction can be used.
9215         (output_return_instruction): Handle the frame-pointer register as
9216         a normal register when not TARGET_APCS_FRAME.
9217         (arm_output_prologue): Likewise.
9218         (arm_output_epilogue): Likewise.
9219         (output_func_epilogue): Likewise.
9220         (arm_expand_prologue): Likewise.
9221         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
9222
9223         * arm.c (use_return_insn): No need to check floating point regs if
9224         TARGET_SOFT_FLOAT.
9225         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
9226         the code of value stored in the minipool array.
9227         (arm_add_minipool_constant): Likewise.
9228
9229 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9230
9231         * basic-block.h (conflict_graph_enum_fn): K&R fix.
9232
9233 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9234
9235         * tree.c (tree_expr_nonnegative_p): New function.
9236
9237         * tree.h (tree_expr_nonnegative_p): Declare.
9238
9239         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
9240         elide some sign_compare warnings.
9241         (build_conditional_expr): Likewise.
9242
9243 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
9244
9245         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
9246
9247         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
9248         * i386.c (print_operand): Use the proper suffix for a 387 HImode
9249         operand.  Abort if a 387 operand has an unsupported size.
9250
9251 2000-04-08  Neil Booth  <NeilB@earthling.net>
9252
9253         * cppexp.c (parse_charconst): Null does not end character
9254         constants.
9255         * cppinit.c (ISTABLE): Null character handled as whitespace.
9256         * cpplex.c (null_warning):  new function.
9257         (skip_string): Emit warning if nulls encountered.
9258         (_cpp_skip_hspace): Emit warning if nulls encountered.
9259         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
9260         them.
9261         * cpp.texi: Update.
9262
9263 2000-04-07  Richard Henderson  <rth@cygnus.com>
9264
9265         * flow.c (loop_depth): Remove.
9266         (reg_next_use, cc0_live, mem_set_list): Replace with ...
9267         (struct propagate_block_info): New.
9268         (life_analysis): Don't allocate reg_next_use.
9269         (propagate_block_delete_insn): Break out of propagate_block.
9270         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
9271         (propagate_block_delete_libcall): Likewise.
9272         (propagate_block): Create a propagate_block_info struct to pass
9273         to subroutines.  Allocate one not two temporary regsets.  Don't
9274         clobber memory for const calls.  Look for clobbers in
9275         CALL_INSN_FUNCTION_USAGE.
9276         (mark_set_regs): Recognize COND_EXEC.
9277         (mark_set_reg): Break out of mark_set_1.
9278         (mark_used_reg): Break out of mark_used_regs.
9279         (mark_used_regs): Recognize COND_EXEC.
9280         (insn_dead_p): Use propagate_block_info struct.
9281         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
9282         (find_auto_inc, try_pre_increment_1): Likewise.
9283         (print_rtl_with_bb): Dump regs live at end too.
9284         (count_reg_sets_1): Pass in loop_depth.
9285         (count_reg_sets, count_reg_references): Likewise.
9286         (recompute_reg_usage): Provide it.
9287
9288 2000-04-07  Richard Henderson  <rth@cygnus.com>
9289
9290         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
9291         not the raw files.
9292
9293 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
9294
9295         * cpplib.c (do_elif): Skip the rest of the line if we're
9296         not going to bother evaluating it.
9297         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
9298         to avoid pointless calls to the lexer.
9299
9300 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
9301
9302         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
9303
9304 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
9305
9306         * calls.c (expand_call): emit_queue if we're trying a sibcall.
9307
9308 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
9309
9310         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
9311
9312 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
9313
9314         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
9315         crtend so they can be multilibbed.
9316         (STAGESTUFF): Remove s-crt and s-crtS.
9317
9318 2000-04-07  Richard Henderson  <rth@cygnus.com>
9319
9320         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
9321         if we discover we need a pseudo and no_new_pseudos is true.
9322         * config/alpha/alpha.md (ne:DI insn): New.
9323         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
9324
9325 2000-04-07  Richard Henderson  <rth@cygnus.com>
9326
9327         * rtl.def (COND_EXEC): New.
9328         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
9329         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
9330
9331         * genconfig.c (have_cond_arith_flag): Remove.
9332         (have_cond_exec_flag): New.
9333         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
9334         (main): Print HAVE_conditional_execution.
9335
9336         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
9337         (sched_analyze_insn, print_pattern): Likewise.
9338         * reload.c (find_equiv_reg): Likewise.
9339         * rtlanal.c (reg_referenced_p): Likewise.
9340         (note_stores, dead_or_set_regno_p): Likewise.
9341         (reg_overlap_mentioned_p): Rewrite to use a switch.
9342
9343         * ggc.h (struct rtx_def): Forward declare.
9344
9345         * print-rtl.c (debug_rtx_range): New.
9346         * rtl.h (debug_rtx_range): Declare.
9347
9348         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
9349
9350         * gcse.c (gcse_main): Don't rebuild the CFG here.
9351         (delete_null_pointer_checks): Likewise.
9352         * ssa.c (convert_to_ssa): Likewise.
9353         * toplev.c (rest_of_compilation): Do it here instead.  Combine
9354         sequential calls to TIMEVAR.  Consistently use `insns' instead of
9355         `get_insns()'.  Always split insns after reload when optimizing.
9356
9357         * basic-block.h (merge_blocks_nomove): Declare.
9358         (tidy_fallthru_edge): Declare.
9359         * flow.c (merge_blocks_nomove): Document as merging into previous
9360         blocks.  Remove cruft from between blocks; remove all edges out of A.
9361         (tidy_fallthru_edge): Export.
9362
9363 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9364
9365         * ssa.c (compute_conservative_reg_partition): Declare with
9366         void arguments.
9367         * toplev.c (clean_dump_file): Remove previously-deleted function
9368         inadvertantly merged back in.
9369         * conflict.c (conflict_graph_add): Use a single call to
9370         htab_find_slot to look up and insert.
9371
9372 2000-04-06  Richard Henderson  <rth@cygnus.com>
9373
9374         * genrecog.c (*): Rename _last_insn to last_insn.
9375         (make_insn_sequence): Set the position of the peephole2 C test
9376         to be at the last insn.
9377
9378 2000-04-06  Richard Henderson  <rth@cygnus.com>
9379
9380         * flow.c (compute_flow_dominators): Free worklist.
9381
9382 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
9383
9384         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
9385
9386 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9387
9388         * rtl.h (INSN_P): New macro.
9389         (successor_phi_fn): New typedef.
9390         (for_each_successor_phi): New prototype.
9391         (in_ssa_form): New variable.
9392         (PHI_NODE_P): Likewise.
9393         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
9394         phi nodes in successors.
9395         (mark_used_regs): Add PHI case.
9396         (set_phi_alternative_reg): New function.
9397         (life_analysis): Assert that dead code elimination is not selected
9398         when in SSA form.
9399         * toplev.c (to_ssa_time): New variable.
9400         (from_ssa_time): Likewise.
9401         (compile_file): Zero to_ssa_time and from_ssa_time.
9402         Print time to convert to and from SSA.
9403         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
9404         (print_time): Compute percent fraction as integer.
9405         * ssa.c (PHI_NODE_P): Moved to rtl.h.
9406         (convert_to_ssa): Check if we're already in SSA.
9407         Don't eliminate dead code in life_analysis.
9408         Rerun flow and life analysis at bottom.
9409         (eliminate_phi): Use canonical regnos when adding nodes.
9410         (mark_reg_in_phi): New function.
9411         (mark_phi_and_copy_regs): Likewise.
9412         (convert_from_ssa): Rerun life analysis at top.
9413         Use coalesced partition.
9414         Check for removing a phi node at the end of the block.
9415         (compute_coalesced_reg_partition): New function.
9416         (coalesce_regs_in_copies): Likewise.
9417         (coalesce_reg_in_phi): Likewise.
9418         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
9419         (for_each_successor_phi): Likewise.
9420         (rename_context): New struct.
9421         (rename_block): Use a rename_context with rename_insn_1.  When
9422         renaming sets of a subreg, emit a copy of the entire reg first.
9423         (rename_insn_1): Treat data as a rename_context *.  Save current
9424         insn in set_data.
9425         (rename_set_data): Add field set_insn.
9426         * Makefile.in (HASHTAB_H): Move up in file.
9427         (OBSTACK_H): New macro.
9428         (collect2.o): Use OBSTACK_H in dependencies.
9429         (sdbout.o): Likewise.
9430         (emit-rtl.o): Likewise.
9431         (simplify-rtx.o): Likewise.
9432         (fix-header.o): Likewise.
9433         (OBJS): Add conflict.o.
9434         (conflict.o): New rule.
9435         * basic-block.h: Include partition.h.
9436         (conflict_graph): New typedef.
9437         (conflict_graph_enum_fn): Likewise.
9438         (conflict_graph_new): New prototype.
9439         (conflict_graph_delete): Likewise.
9440         (conflict_graph_add): Likewise.
9441         (conflict_graph_conflict_p): Likewise.
9442         (conflict_graph_enum): Likewise.
9443         (conflict_graph_merge_regs): Likewise.
9444         (conflict_graph_print): Likewise.
9445         (conflict_graph_compute): Likewise.
9446         * conflict.c: New file.
9447
9448 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9449
9450         * tlink.c (read_repo_files): Don't look for .rpo info for
9451         linker flags.
9452
9453 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9454
9455         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9456
9457 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9458
9459         * config/sh/lib1funcs.asm (___udivsi3_i4):
9460         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9461         only depends on FMOVD_WORKS.
9462
9463 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9464
9465         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9466         make double constant 8-byte aligned.
9467
9468 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9469
9470         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9471         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9472         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9473         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9474         Accept storing GENERAL_REGS into offsetable memory.
9475         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9476         building a TFmode constant other than 0.0L into GENERAL_REGS.
9477
9478 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9479
9480         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9481
9482 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9483
9484         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9485         (macro_cleanup): No need to cast pbuf->macro.
9486         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9487         it returns VSPACE.  Remove check for trailing space after
9488         CPP_COMMENT.
9489         (_cpp_create_definition): Don't diddle flags here.  Return
9490         directly on error.
9491         (unsafe_chars): Handle c1 being EOF.
9492         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9493         checks.  Don't push the buffer till after we're done with
9494         them.
9495         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9496         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9497         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9498         appropriately.
9499         (_cpp_parse_assertion): Don't NUL terminate.
9500         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9501         hspace before calling _cpp_parse_assertion.  Remove all sets
9502         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9503         special with '\n' here.
9504         (maybe_macroexpand): Handle T_EMPTY hash entries without
9505         pushing a buffer at all.
9506         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9507         incrementing the line number here.  Clear
9508         potential_control_macro as well as only_seen_white, if
9509         appropriate.
9510         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9511         (_cpp_get_define_token): New function, basically like
9512         _cpp_get_directive_token was but doesn't eat horizontal space.
9513         Don't do anything with only_seen_white here.
9514         (_cpp_get_directive_token): Just call _cpp_get_define_token
9515         repeatedly till it returns non-hspace.
9516
9517         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9518         (conditional_skip, skip_if_group): Return int.
9519         (DIRECTIVE_TABLE): Change origin of all conditional directives
9520         to "COND".
9521         (TRAD_DIRECT_P): New macro.
9522         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9523         an error for a bogus directive, unless -lang-asm.  Use
9524         TRAD_DIRECT_P. Loop calling handler functions till one returns
9525         zero.
9526         (get_macro_name): Don't diddle flags here.
9527         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9528         Create T_EMPTY nodes for #define macro /* nothing */.
9529         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9530         Use hp->name when calling pass_thru_directive.
9531         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9532         Return the result of conditional_skip and/or skip_if_group.
9533         Don't call _cpp_output_line_command.
9534         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9535         Issue -Wtraditional warnings as appropriate.  Don't complain
9536         about unrecognized directives.  If we are to stop skipping,
9537         return the number of the directive that ended the skip.
9538         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9539         expansion and line commands while skipping.  Return the result
9540         of consider_directive_while_skipping, if nonzero.
9541         (do_endif): Just set potential_control_macro here.
9542         (validate_else): Use _cpp_get_directive_token.
9543         (do_assert, do_unassert): Don't save pointers into the
9544         token_buffer across calls to the lexer.  Use
9545         _cpp_get_directive_token.
9546
9547         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9548         pointer, not an offset.  Replace 'data', which was a generic
9549         pointer, with 'macro', which points to a struct hashnode.
9550         (cpp_reader): Add 'potential_control_macro' pointer.
9551         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9552         (CPP_BUF_GET, CPP_FORWARD): Delete.
9553         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9554         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9555         ACTIVE_MARK_P): Update.
9556         (_cpp_get_define_token): New internal function.
9557         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9558
9559 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9560
9561         * configure.in: And here.
9562         * configure: Regenerate.
9563         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9564         --enable-libstdcxx-v3 is passed at configure time.
9565         * config.h.in: Regenerate.
9566
9567 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9568
9569         * final.c (final): Use xcalloc to allocate line_note_exists.
9570         * function.c (free_after_compilation): Free the temp_slots.
9571         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9572         (combine_temp_slot): Free temp_slots when they get combined.
9573         (purge_addressof): Fix typo in comment.
9574         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9575         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9576
9577         * ggc.h: Include varray.h.
9578         (ggc_pending_trees): Declare.
9579         (ggc_mark_tree_children): Remove declaration.
9580         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9581         * ggc-common.c (ggc_pending_trees): New variable.
9582         (ggc_mark_roots): Call ggc_mark_trees.
9583         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9584         the ggc_pending_trees.
9585         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9586         of ggc.h.
9587
9588 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9589
9590         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9591         GET_MODE_SIZE.
9592
9593 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9594
9595         * sh.c (sh_insn_length_adjustment): New function.
9596         * sh-protos.h (sh_insn_length_adjustment): Declare.
9597         * sh.h (ADJUST_INSN_LENGTH): Use it.
9598
9599 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9600
9601         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9602         from the insn where REG_RETVAL is added.
9603         (emit_no_conflict_block): Ditto.
9604
9605         * md.texi (Standard Names): Clarify when movX is needed.
9606
9607         * combine.c (simplify_comparison) [MINUS]: Do not replace
9608         all (op (minus A B) 0) with (op A B).
9609
9610 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9611                           J"orn Rennecke <amylaar@cygnus.co.uk>
9612
9613         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9614         (block_lump_real): Likewise.
9615
9616 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9617
9618         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9619         remaining non-zero debugging masks.
9620
9621 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9622
9623         * basic-block.h (verify_flow_info): Declare.
9624         (flow_loop_outside_edge_p): Declare.
9625         * flow.c (verify_flow_info): Remove declaration.
9626         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9627
9628 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9629
9630         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9631         not C++ comments.
9632
9633 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9634
9635         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9636         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9637         seqdi_zero_trunc+1): Allow splits only if registers are
9638         different.
9639
9640 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9641
9642         * acconfig.h: Add HAVE_GAS_HIDDEN.
9643         * config.in: Regenerated.
9644         * configure.in: Add test for .hidden pseudo-op in gas.
9645         * configure: Regenerated.
9646         * crtstuff.c: Include auto-host.h.
9647         Emit additional .hidden pseudo-op for __dso_handle if the
9648         assembler knows about it.
9649
9650 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9651
9652         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9653         before freeing argnames.
9654         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9655
9656 2000-04-05  Michael Meissner  <meissner@redhat.com>
9657
9658         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9659         Walton <jonboy@gordian.com> to make memory references with update
9660         work wtih -mregnames.
9661
9662 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9663
9664         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9665         (regrename_optimize): Rename variables `def_uses' and
9666         `ext_basic_blocks' to avoid conflicts with similarly named
9667         typedefs in traditional C.
9668
9669         * calls.c (initialize_argument_information): Fix typo in previous
9670         change.
9671
9672 2000-04-04  Richard Henderson  <rth@cygnus.com>
9673
9674         * regrename.c (consider_available): Test fixed_regs not
9675         PIC_OFFSET_TABLE_REGNUM.
9676
9677 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9678
9679         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9680         crtend.
9681         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9682         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9683         (ENDFILE_LINUX_SPEC): Always use crtend.
9684         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9685         (powerpc-*-linux-gnu): Likewise.
9686         * configure: Regenerate.
9687
9688         * config/rs6000/eabi.h: Don't include sysv4.h.
9689         (MULTILIB_DEFAULTS): Don't define.
9690         * config/rs6000/eabiaix.h: Don't include eabi.h.
9691         * config/rs6000/eabile.h: Delete.
9692         * config/rs6000/eabilesim.h: Delete.
9693         * config/rs6000/eabisim.h: Don't include eabi.h.
9694         * config/rs6000/linux.h: Don't include sysv4.h.
9695         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9696         (MULTILIB_DEFAULTS): Don't redefine.
9697         * config/rs6000/rtems.h: Don't include eabi.h.
9698         * config/rs6000/sol2.h: Don't include sysv4le.h.
9699         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9700         * config/rs6000/t-ppc: Delete.
9701         * config/rs6000/t-ppcgas: Correct comment.
9702         * config/rs6000/t-ppcos: Correct comment.  Don't build
9703         multilibs for -fPIC, rather use -fPIC -mstrict-align
9704         as default.
9705         * config/rs6000/t-ppc: Delete.
9706         * config/rs6000/vxppc.h: Don't include sysv4.h.
9707         * config/rs6000/vxppcle.h: Delete.
9708         * configure.in: Use multiple header files for p2pc ELF targets
9709         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9710         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9711         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9712         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9713         always available for these platforms.
9714
9715 2000-04-04  Richard Henderson  <rth@cygnus.com>
9716
9717         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9718
9719 2000-04-04  Stan Cox  <scox@cygnus.com>
9720
9721         * Makefile.in: Add rules for regrename.o
9722         * regrename.c: New file.
9723         * rtl.h (regrename_optimize): Add prototype.
9724         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9725         (compile_file, decode_d_option): Add support for -frename-registers.
9726         (rest_of_compilation): Call regrename_optimize.
9727         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9728         New macros.
9729
9730 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9731
9732         * Makefile (gccbug): New target.
9733         (doc): Depend on it.
9734         * gcc.texi (Bugs): Link subnodes.
9735         (gccbug): New node.
9736         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9737         Document severities, priorities, and classes in bug form.
9738
9739 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9740
9741         * cpplex.c (trigraph_map, speccase): Combine into single
9742         table, chartab.
9743         (NORMAL, NONTRI): New macros.
9744         (_cpp_read_and_prescan): Change to use unified table.  Use
9745         is_hspace to test for whitespace.
9746
9747         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9748         definition that doesn't provoke the "empty body in an
9749         if-statement" warning.
9750
9751 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9752
9753         * builtins.c (expand_builtin_strlen): Force the source to
9754         be a memory address.
9755
9756 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9757
9758         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9759
9760 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9761
9762         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9763          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9764         (ECF_IS_CONST): Rename to ECF_CONST.
9765         (special_function_p): Make static, change interface.
9766         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9767         (expand_call) ... here; convert number of variables to flags.
9768         (emit_library_call_vlue_1): Likewise.
9769         (setjmp_call_p): New function.
9770         (initialize_argument_information): Accepts flags as argument;
9771         return flags.
9772         (precompute_arguments): Likewise.
9773         * tree.h (special_function_p): Remove.
9774         (setjmp_call_p): Add prototype.
9775
9776 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9777
9778         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9779         so that addresses are offsetable by up to 16 bytes.
9780         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9781         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9782         offsetable.
9783
9784         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9785         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9786         (movsf): Don't force any constant to memory if target is integer
9787         hard register.
9788         Move fp_zero_operand check below the const0_rtx check.
9789         (movtf): Likewise. Also allow fp_zero_operand for stores into
9790         memory.
9791         (movdf): Likewise. Also allow fp_zero_operand for stores into
9792         memory and into integer hard registers.
9793         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9794         movdf_const_intreg_sp64): Remove.
9795         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9796         conditions.
9797         (movdf_no_e_insn_v9_sp32): New pattern.
9798         (movdf_insn_v9only): Remove.
9799         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9800         (movdf_insn_sp64): Remove.
9801         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9802         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9803         (following splits): Rewrite conditions. Add two new splits
9804         for storing 0.0 into memory and registers.
9805         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9806         (movtf_insn_sp32): Redo constraints and conditions.
9807         (movtf_insn_vis_sp32): New pattern.
9808         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9809         (movtf_insn_hq_sp64): Likewise.
9810         (movtf_insn_hq_vis_sp64): New pattern.
9811         (movtf_insn_sp64): Redo constraints and conditions.
9812         (movtf_insn_vis_sp64): New pattern.
9813         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9814         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9815         or memory.
9816         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9817         -mvis or -m64 to take down the number of various reload patterns.
9818
9819 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9820
9821         * pa/pa-64.h: New file.
9822         * pa/pa64-regs.h: New file.
9823         * pa/pa64-start.h: New file.
9824         * pa/t-pa64: New file.
9825         * pa/xm-pa64hpux.h: New file.
9826
9827 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9828
9829         * sparc.c (output_restore_regs): Prototype.
9830         (sparc_emit_float_lib_cmp): Constification.
9831
9832         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9833
9834         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9835         Prototype.
9836
9837         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9838         (get_value_hash, hash_rtx): Likewise.
9839
9840         * ssa.c (compute_conservative_reg_partition): Prototype.
9841
9842         * tree.c (mark_hash_entry): Prototype.
9843
9844 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9845
9846         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9847         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9848         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9849
9850         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9851         * objc/lang-specs.h: Likewise.
9852
9853 2000-04-03  Neil Booth  <NeilB@earthling.net>
9854
9855         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9856         and SYNTAX_ERROR2. Replace `' in messages with ''.
9857         (op_to_str): Make re-entrant.
9858         (_cpp_parse_expr): Implement new error macros. Use | rather
9859         than || to logically or 2 boolean integers.  Simply expression
9860         checking we have a left operand iff needed.
9861
9862 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9863
9864         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9865
9866 2000-04-03  Philip Blundell  <philb@gnu.org>
9867
9868         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9869
9870 2000-04-03  Felix Lee  <flee@cygnus.com>
9871
9872         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9873         (run_shell): Use it.
9874
9875 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9876
9877         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9878         (stmp-fixproto): ...rather than here.
9879
9880 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9881
9882         * pa.c (print_operand): Compute 'base' only inside the code paths
9883         that use it.
9884
9885 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9886
9887         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9888         CEIL_DIV_EXPR.
9889
9890 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9891
9892         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9893
9894 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9895
9896         * Makefile.in (alias.o): Depend on $(TREE_H).
9897
9898 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9899
9900         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9901         processing C++.
9902         * cpplib.c (_cpp_handle_directive): Improve warnings for
9903         traditional C and indented directives.
9904
9905         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9906         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9907         fixinc/inclhack.def: Indent the # of #include_next one space.
9908         * cp/rtti.c: Un-indent #if and #endif.
9909
9910         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9911         syntax error, but an error has already been printed.
9912         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9913         message when called with nothing remaining on the line.
9914         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9915         OTHER token, not an ASSERTION.
9916         * cpplib.c (do_assert): When we create a 'base' node, clear
9917         its aschain pointer.
9918
9919 2000-04-02  Neil Booth <NeilB@earthling.net>
9920
9921         * cppexp.c:  New typedef op_t.  struct operation and struct
9922         token updated to use it.
9923         (op_to_str): New function.
9924         (_cpp_parse_expr): Error messages modified to use op_to_str.
9925
9926 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9927
9928         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9929         before checking MUST_PASS_IN_STACK.
9930
9931 2000-04-02  Neil Booth <NeilB@earthling.net>
9932
9933         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9934         flags and initial priority into a single constant.  New
9935         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9936         (_parse_cpp_expr): Implement new constants.  Take left operand
9937         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9938         parse indicated by reducing FINISHED token.  Remove new lines
9939         from cpp_error messages.
9940
9941 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9942
9943         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9944         permanent obstack.
9945
9946 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9947
9948         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9949         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9950         the strings and function names on the fly.  Take the #sccs
9951         entry out of the table if SCCS_DIRECTIVE is not defined.
9952         (_cpp_handle_directive): Decide if the # was at the beginning
9953         of the line here.  Issue -pedantic warnings for extended
9954         directives here.  Warn about K+R directives with the #
9955         indented, and C89/extended directives with the # not indented,
9956         here.
9957         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9958         do_assert, do_unassert): Don't issue pedantic warning here.
9959
9960         * cpphash.h: Add CPP_WTRADITIONAL macro.
9961         * cpplib.h (struct cpp_options): Rename warn_stringify to
9962         warn_traditional; update comments.
9963         * cppinit.c (handle_option): Set warn_traditional not
9964         warn_stringify.
9965         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9966         CPP_WTRADITIONAL (pfile).
9967         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9968         be ignored in -traditional mode here.
9969
9970         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9971         to initialize speccase[] and trigraph_map[].  Delete all
9972         references to pfile->input_speccase.  Always treat '?' as a
9973         special character.  Remove table-initialization code from
9974         _cpp_init_input_buffer.
9975
9976         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9977         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9978
9979 2000-04-01  Richard Henderson  <rth@cygnus.com>
9980
9981         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9982         (mostlyclean): Likewise.
9983
9984         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9985         (struct dump_file_info, enum dump_file_index, dump_file): New.
9986         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9987         not a string.  Clean out file if we havn't yet done so.  Do nothing
9988         if the dump isn't enabled.
9989         (close_dump_file): Do nothing if the dump isn't open.  Dump
9990         graph data if requested.
9991         (dump_rtl, clean_dump_file): Remove.
9992         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9993         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9994         .combine dump if optimizing.  Iterate over dump_file to finalize the
9995         graph dumps.
9996         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9997         Convert all uses of dump_rtl.
9998         (decode_d_option): Iterate over dump_file to implement 'a' and to
9999         locate pass-specific dumps.
10000
10001 2000-04-01  Neil Booth <NeilB@earthling.net>
10002
10003         * cppexp.c: Redefine priority constants.
10004         (_cpp_parse_expr): Replace left and right priority scheme with
10005         single priority logic.  Move LOGICAL to same place as COMPARE.
10006         Remove bogus check for multiple unary +/- operators.
10007
10008 2000-04-01  Neil Booth <NeilB@earthling.net>
10009
10010         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
10011         within the switch statement.  Binary operations break out of
10012         the switch naturally.  '(' tokens handled by forcing
10013         immediate shift.  ')' handled by forcing immediate reduce to
10014         the previous '('.  New error messages.
10015
10016 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
10017
10018         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
10019         part', it's already in use.  Use %K instead.  Add a return at the
10020         end of what is now %K.
10021         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
10022
10023 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10024
10025         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
10026         allocate_dynamic_stack_space.
10027         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
10028         update stack_pointer_delta; do not update arg_size_so_far.
10029         (compute_argument_block_size): Use stack_delta instead of
10030         stack_pointer_pending and arg_size_so_far.
10031         (expand_call): Add sanity checking for stack_pointer_delta;
10032         save and restore stack_pointer_delta for SIB, use
10033         stack_pointer_delta for alignment; do not update arg_space_so_far.
10034         (emit_library_call_value): Use stack_pointer_delta for alignment.
10035         (store_one_arg): Do not update arg_space_so_far.
10036         * explow.c (adjust_stack, anti_adjust_stack): Update
10037         stack_pointer_delta.
10038         (allocate_dynamic_stack_space): Add sanity checking for
10039         stack_pointer_delta.
10040         * expr.c (init_expr, clear_pending_stack_adjust): Clear
10041         stack_pointer_delta.
10042         (emit_push_insn): Update stack_pointer_delta.
10043         * function.h (struct expr_status): Add x_stack_pointer_delta;
10044         remove x_arg_space_so_far.
10045         (arg_space_so_far): Remove.
10046         (stack_pointer_delta): New macro.
10047
10048 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
10049
10050         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
10051         Reorder struct cpp_options and struct cpp_reader for better
10052         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
10053         takes two args.  Change all 'char' flags to 'unsigned char'.
10054         Move show_column flag into struct cpp_options.  Don't
10055         prototype cpp_options_init.
10056         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
10057         cppinit.c, cpplex.c, cpplib.c:
10058         Replace CPP_OPTIONS (pfile)->whatever with
10059         CPP_OPTION (pfile, whatever), and likewise for
10060         opts = CPP_OPTIONS (pfile); ... opts->whatever;
10061
10062         * cppinit.c (merge_include_chains): Take a cpp_reader *.
10063         Extract CPP_OPTION (pfile, pending) and work with that
10064         directly.
10065         (cpp_options_init): Delete.
10066         (cpp_reader_init): Turn on on-by-default options here.
10067         Allocate the pending structure here.
10068         (cl_options, enum opt_code): Define these from the same table,
10069         kept in a large macro.  Add -fshow-column and -fno-show-column
10070         options.
10071
10072         * cpperror.c (v_message): If show_column is off, don't print
10073         the column number.
10074
10075         * cppmain.c: Update for new interface.
10076         * fix-header.c: Likewise.
10077
10078 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
10079
10080         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
10081         definition.
10082         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
10083         are passed to any invocation of AR_FOR_TARGET.
10084         (AR_CREATE_FOR_TARGET): New macro.
10085         (AR_EXTRACT_FOR_TARGET): New macro.
10086         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
10087         AR_EXTRACT_FOR_TARGET.
10088         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
10089         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
10090         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
10091         AR_EXTRACT_FOR_TARGET to sub-makes.
10092
10093 2000-03-31  Neil Booth <NeilB@earthling.net>
10094
10095         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
10096         PAREN_INNER_PRIO.
10097         (_cpp_parse_expr): Check for multiple unary +/- operators.
10098         Correct priorities of ':' and '?'.  Treat ')' as having a
10099         value.  Ensure conditional expression is not void.
10100
10101 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
10102
10103         * alias.c (canon_rtx): Make it global.
10104         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
10105         equality.
10106         * cse.c (struct table_elt): Add canon_exp.
10107         (insert): Clear it.
10108         (invalidate): Canonicalize expressions only once.
10109         * rtl.h (canon_rtx): Declare.
10110
10111 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
10112
10113         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
10114         * alias.c (reg_known_value): Add comments.
10115         (init_alias_analysis): Likewise.
10116         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
10117         address.
10118         (cse_basic_block): Fix typo in comment.
10119         * emit-rtl.c: Include hashtab.h.
10120         (const_int_htab): New variable.
10121         (const_int_htab_hash): New function.
10122         (const_int_htab_eq): Likewise.
10123         (rtx_htab_mark_1): Likewise.
10124         (rtx_htab_mark): Likewise.
10125         (gen_rtx_CONST_INT): Cache all CONST_INTs.
10126         (unshare_all_rtx): Fix formatting.
10127         (init_emit_once): Initialize const_int_htab.
10128         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
10129         address.
10130         * rtl.texi: Document the fact that all CONST_INTs with the same
10131         value are shared.
10132
10133 2000-03-30  Richard Henderson  <rth@cygnus.com>
10134
10135         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
10136
10137 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
10138
10139         * configure.in: Comment out --enable-c-cpplib stanza.
10140         * configure: Regenerate.
10141
10142 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10143
10144         * expr.c (store_constructor): Properly compute displacement and
10145         alignment when offset is variable.
10146
10147         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
10148         cases of alignment in bytes.
10149
10150 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
10151
10152         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
10153         since it is used to generate c-parse.y.
10154         * objc-parse.c, objc-parse.y: Regenerated.
10155
10156         * function.c (expand_function_end): Pass alignment argument to
10157         emit_block_move in bits, not bytes.
10158
10159 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10160
10161         * expr.c (move_by_pieces_ninsns): Fix one more missing align
10162         correction.
10163
10164         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
10165
10166         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
10167         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
10168         * function.c (assign_parms): Likewise.
10169         * integrate.c (expand_inline_function): Likewise.
10170         * stmt.c (expand_decl): Likewise.
10171         (copy_rtx_and_substitute): Likewise.
10172         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
10173         (clear_by_pieces): Fix error in last change.
10174         * emit-rtl.c (init_emit): Set known registers alignment in bits.
10175         * function.h (regno_pointer_align): Now unsigned.
10176         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
10177         is in bits.
10178         * config/i386/i386.c (aligned_operand): Likewise.
10179         * config/sparc/sparc.c (mem_min_alignment): Likewise.
10180         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
10181         (unaligned_memory_operand): Likewise.
10182         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
10183         Also make alignments and sizes unsigned and some whitespace cleanup.
10184         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
10185
10186         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
10187         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
10188         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
10189         (expand_builtin_memset): Likewise, but to clear_storage.
10190         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
10191         (restore_fixed_argument_area): Likewise.
10192         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
10193         (load_register_parameters): Likewise, to emit_group_load.
10194         (expand_call): Likewise, to emit_group_store and emit_block_move.
10195         (emit_library_call_value_1): Likewise, to emit_block_move.
10196         (store_one_arg): Likewise, and to emit_push_insn.
10197         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
10198         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
10199         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
10200         (emit_block_move, emit_group_load, emit_group_store): Likewise.
10201         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
10202         (expand_assigment, store_expr, store_constructor_field): Likewise.
10203         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
10204         (store_constructor, store_field, get_inner_reference): Likewise.
10205         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
10206         (expand_expr, case COMPONENT_REF): Likewise.
10207         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
10208         and positions; reindent code.
10209         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
10210         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
10211         (assign_parms): Likewise to emit_group_store.
10212         * optabs.c (prepare_cmp_insn): Alignment is in bits.
10213         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
10214         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
10215         (expand_return): Likewise to {extract,store}_bit_field.
10216         * stor-layout.c (get_mode_alignment): Minor cleanup.
10217         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
10218         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
10219
10220 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10221
10222         * config/arm/arm.h: Undo effects of previous delta:
10223         (ASM_SPEC): Do not define.
10224         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
10225
10226         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
10227         typo.
10228
10229 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10230
10231         * cppinit.c (cpp_start_read): Call initialize_dependency_output
10232         only after reading in the primary source file.
10233
10234 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
10235
10236         * c-common.c (c_common_nodes_and_builtins): The first parameter to
10237         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
10238         or a reference to a va_list.
10239         * builtins.c (stabilize_va_list): Simplify now we don't have to
10240         work around C array address decay.
10241         * c-typeck.c (convert_for_assignment): Handle assignment to
10242         a reference parameter by taking the address of the RHS.
10243         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
10244         (va_copy): Likewise.
10245         (__va_copy): Likewise.
10246         * ginclude/varargs.h (va_start): Likewise.
10247         (__va_copy): Likewise.
10248
10249 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
10250
10251         * i386/djgpp.h: Remove extraneous "+".
10252
10253         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
10254
10255         * calls.c (expand_call): Fix typo in last change.
10256
10257 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
10258
10259         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
10260         been expanded.
10261
10262 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10263
10264         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
10265         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
10266         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
10267         * tree.c (bit_position, byte_position): Likewise.
10268         * tree.h: Declare new functions.
10269
10270 2000-03-29  Nick Clifton  <nickc@cygnus.com>
10271
10272         * config/arm/arm.c: Minor formatting changes/
10273         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
10274         already defined.
10275         (ASM_SPEC): Define if not already defined.
10276
10277 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
10278
10279         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
10280         _cpp_calc_hash.
10281
10282 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
10283
10284         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
10285         value, don't output it as unsigned.
10286
10287 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
10288
10289         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
10290
10291 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10292
10293         * c-common.c (c_common_nodes_and_builtins): Don't special case
10294         cplus_mode when declaring builtin bzero/bcmp, always avoid
10295         prototype arguments.
10296
10297 2000-03-29  Bruce Korb  <bkorb@gnu.org>
10298
10299         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
10300         to a non-file
10301
10302 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10303
10304         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
10305         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
10306         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
10307         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
10308         (save_fixed_argument_area, restore_fixed_argument_area):
10309         conditionize by #ifdef REG_PARM_STACK_SPACE only.
10310         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
10311         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
10312         (precompute_register_parameters): Avoid #ifdefs on
10313         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
10314         (stire_one_args): Likewise.
10315         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
10316         (emit_library_call_value_1): Likewise.
10317         (compute_argument_block_size): Align to STACK_BOUNDARY only for
10318         ACCUMULATE_OUTGOING_ARGS.
10319         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
10320         value.
10321         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
10322         (use_crosses_set_p): Likewise.
10323         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
10324         #define ACCUMULATE_OUTGOING_ARGS 1.
10325         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
10326         frames.
10327         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
10328         constants.
10329         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
10330         (TARGET_SWITCHES): Add push-args, no-push-args,
10331         accumulate-outgoing-args and no-accumulate-outgoing-args.
10332         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
10333         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
10334         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
10335         and PUSH_ROUNDING.
10336         (emit_push_insn): Likewise.
10337         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10338         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
10339         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
10340         (STACK_DYNAMIC_OFFSET): Define correctly for both
10341         ACCUMULATE_OUTGOING_ARGS and normal mode.
10342         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
10343         * tm.texi (PUSH_ARGS): Document.
10344         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
10345
10346 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10347
10348         * flags.h (flag_optimize_sibling_calls): Declare.
10349         * calls.c (expand_call): Fail sibcall when
10350         !flag_optimize_sibling_calls
10351         * invoke.texi (flag_optimize_sibling_calls): Document.
10352         * toplev.c (flag_optimize_sibling_calls): New global variable.
10353         (f_options): Add flag_optimize_sibling_calls.
10354         (rest_of_compilation): Conditionize
10355         optimize_sibling_and_tail_recursive_calls by
10356         flag_optimize_sibling_calls.
10357         (main): Set flag_optimize_sibling_calls for -O2.
10358         * stmt.c (expand_return): Conditionize tail recursion by
10359         flag_optimize_sibling_calls.
10360
10361 2000-03-29  Richard Henderson  <rth@cygnus.com>
10362
10363         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
10364         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
10365
10366 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
10367
10368         * except.c (add_eh_table_entry): Mark type_info's as referenced.
10369
10370 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10371
10372         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
10373         is given.
10374         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
10375         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
10376         * config/rs6000/aix.h: then modified likewise.
10377
10378 2000-03-28  Richard Henderson  <rth@cygnus.com>
10379
10380         * rtl.h: Redistribute enum reg_note documentation.
10381         Kill trailing whitespace.
10382         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
10383         Kill trailing whitespace.
10384
10385 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
10386
10387         * cppfiles.c (hash_IHASH): Just return i->hash.
10388         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
10389         htab_find_with_hash.
10390         (cpp_read_file): Likewise.
10391         (find_include_file): Likewise.  Properly initialize
10392         ih->nshort.  Share ih->name and ih->nshort if possible.
10393         * cpphash.c (_cpp_calc_hash): New function.
10394         (hash_HASHNODE): Just return h->hash.
10395         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
10396         htab_find_with_hash.
10397         * cpphash.h: Prototype _cpp_calc_hash.
10398         * cppinit.c (initialize_builtins): Provide a valid hash
10399         to _cpp_make_hashnode, using _cpp_calc_hash.
10400
10401         * cpphash.c (collect_expansion): # is not a special character
10402         in object-like macros.  In -traditional mode, /**/ is not
10403         token paste at the beginning or end of the line.
10404         * cpplib.c (do_include, do_import, do_include_next): If
10405         parse_include fails, return immediately.
10406
10407 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10408
10409         * config/arm/arm.md (return peepholes): Update to reflect the new
10410         call insn patterns.
10411         * config/arm/arm.c (arm_volatile_func): Also check
10412         current_function_nothrow.
10413         (output_return_instruction, output_func_prologue): Use it.
10414         (arm_output_epilogue, arm_expand_prologue): Likewise.
10415
10416 2000-03-27  Tom Tromey  <tromey@cygnus.com>
10417
10418         * gcc.c (handle_braces): In {x*...} case, break out of loop if
10419         switch is found.
10420
10421 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10422
10423         * expr.c (store_constructor): SIZE now signed.
10424         For EXPR_SIZE, don't evaluate size; just needed if constant.
10425         * fold-const.c (fold): Fix a number of cases when folded tree is
10426         wrong type.
10427         * function.c (flush_addressof): Reenable.
10428         * tree.h (flush_addressof): Likewise.
10429         * toplev.c (independent_decode_option): Look at strings_processed.
10430         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
10431
10432 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
10433
10434         * sibcall.c (indentify_call_return_value): Find last call in the chain;
10435         Allow stack adjustment after function call.
10436
10437         * regmove.c (struct csa_memlist): Make mem field rtx *.
10438         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
10439         (try_apply_stack_adjustment): Replace whole MEM rtx.
10440         (combine_stack_adjustments_for_block): Update calls
10441         to record_one_stack_ref.
10442
10443 2000-03-28  Neil Booth  <NeilB@earthling.net>
10444
10445         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10446         '\\' rather than a null character, so nulls are not special.  Fix
10447         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10448         speed trigraph conversion.
10449         (_cpp_init_input_buffer): Initialize trigraph map.
10450
10451 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10452
10453         * config/i386/i386.c (output_387_binary_op): Correct intel
10454         mode assembly output, and add spaces after commas in AT&T
10455         output.  Correct Unixware assembler comment.  Document input
10456         constraints.  Comment fp operations.  Reduce profligate buffer
10457         size.  Remove extraneous abort.  Localize temp var.
10458         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10459         (output_fix_trunc): Add spaces after commas in assembly output.
10460
10461 2000-03-27  Richard Henderson  <rth@cygnus.com>
10462
10463         * i386-protos.h (ix86_match_ccmode): Declare.
10464         * i386.c (ix86_match_ccmode): New.
10465         (ix86_expand_fp_compare): Update for pattern renames.
10466         (ix86_expand_strlensi_unroll_1): Likewise.
10467         * i386.h (EXTRA_CC_MODES): Add CCZ.
10468         (SELECT_CC_MODE): Use it for EQ/NE zero.
10469         * i386.md (cmpsi_ccz_1): New.
10470         (cmpqi_ccz_1): New.
10471         (*testsi_ccz_1): New.
10472         (testqi_ccz_1): New.
10473         (cmpsi_ccno_1): Rename from cmpsi_0.
10474         (testsi_ccno_1): Rename from testsi_1.
10475         (testqi_ccno_1): Rename from testqi_1.
10476         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10477         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10478         (*cmphi_0): Use ix86_match_ccmode.
10479         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10480         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10481         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10482         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10483         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10484         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10485         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10486         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10487         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10488         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10489         (appropriate peepholes): Likewise.
10490         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10491         (*subsi_3, *subhi_3, *subqi_3): Remove.
10492         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10493         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10494         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10495         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10496         (x86_shift_adj_1): Use CCZ.
10497         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10498
10499 2000-03-27  Stan Cox  <scox@cygnus.com>
10500
10501         * resource.h (mark_resource_type): New.
10502         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10503         find_free_register): Use mark_resource_type.
10504         (mark_set_resources): Change include_delayed_effects
10505         to mark_resource_type.
10506         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10507         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10508         Use mark_resource_type.
10509
10510 2000-03-27  Richard Henderson  <rth@cygnus.com>
10511
10512         * i386.md (call_pop_0, call_value_pop_0): New.
10513         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10514         (call_value_pop_1): Likewise.
10515         (call_0, call_value_0): New.
10516         (call_1, call_value_1): Remove constraint from unused arg.
10517
10518 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10519
10520         * invoke.texi (Spec Files): Document new spec % command created by
10521         Tom Tromey's recent patch.
10522
10523 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10524
10525         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10526         if not defined.
10527
10528 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10529
10530         * expr.c (expand_assignment): Fix typo in last change.
10531
10532         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10533
10534 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10535
10536         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10537         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10538         and DECL_INLINE if FUNCTION_DECL.
10539         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10540         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10541         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10542         (combine_parm_decls): Likewise.
10543         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10544         * print-tree.c (print_node): Likewise.
10545         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10546         DECL_TRANSPARENT_UNION on proper decl types.
10547         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10548         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10549         DECL_BIT_FIELD of FIELD_DECL.
10550         * tree.h (DECL_RESULT_FLD): New macro.
10551
10552         * expr.c (expand_assignment): Add code to handle variable-sized
10553         BLKmode case.
10554
10555 2000-03-26  Richard Henderson  <rth@cygnus.com>
10556
10557         * calls.c (expand_call): Pass parms not original exp to
10558         optimize_tail_recursion.  Mind return value instead of looking
10559         for a barrier.
10560         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10561         call_expr.  Move checks for call_expr and current_function_decl ...
10562         (expand_return): ... here.
10563
10564 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10565
10566         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10567         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10568         defines.
10569         (process_command): Use them.
10570         (check_live_switch): Likewise.
10571         (give_switch): Skip ignored switches.
10572
10573 2000-03-26  Jan Hubicka  <jh@suse.cz>
10574
10575         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10576         for minimal jump pass test.
10577
10578 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10579
10580         * integrate.c (function_cannot_inline_p): Do inline functions that
10581         return `void'.
10582
10583 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10584
10585         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10586         now a list of TREE_LIST entries, not types.
10587         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10588
10589         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10590         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10591         int_bit_position.
10592         * config/mips/mips.c (function_arg): Likewise; also remove cast
10593         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10594         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10595         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10596         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10597         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10598         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10599         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10600         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10601         num_adjusts now unsigned.
10602         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10603         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10604         NREGS now unsigned.
10605         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10606         as is BITPOS variable; use host_integerp and int_bit_position.
10607         (function_arg_record_value_2): Likewise.
10608         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10609         Variable REGNO now unsigned.
10610         (function_arg_record_value): NREGS now unsigned.
10611
10612 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10613
10614         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10615
10616 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10617
10618         * Rework fields used to describe positions of bitfields and
10619         modify sizes to be unsigned and use HOST_WIDE_INT.
10620         * alias.c (reg_known_value_size): Now unsigned.
10621         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10622         (really_start_incremental_init): Use bitsize_zero_node.
10623         (push_init_level, pop_init_level, output_init_element): Likewise.
10624         Use bitsize_unit_node and bitsize_one_node.
10625         (output_pending_init_elements, process_init_element): Likewise.
10626         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10627         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10628         HOST_WIDE_INT, respectively.
10629         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10630         (num_sign_bit_copies): Returns unsigned.
10631         BITWIDTH now unsigned; rework arithmetic.
10632         Remove recursive call from arg to MAX.
10633         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10634         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10635         REGNO now unsigned.
10636         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10637         (find_split_point, expand_compound_operation, make_extraction): LEN
10638         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10639         (make_field_assignment): Likewise.
10640         (combine_simplify_rtx): Add cast.
10641         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10642         (force_to_mode): WIDTH now unsigned; add cast.
10643         (if_then_else_cond): SIZE now unsigned.
10644         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10645         (extended_count): Now returns unsigned.
10646         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10647         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10648         (simplify_comparison): MODE_WIDTH now unsigned.
10649         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10650         (mark_used_regs_combine): Likewise; rework arithmetic.
10651         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10652         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10653         (record_promoted_value): REGNO now unsigned.
10654         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10655         (get_last_value): REGNO now unsigned.
10656         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10657         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10658         (remove_death): Arg REGNO now unsigned.
10659         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10660         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10661         now unsigned.
10662         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10663         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10664         (struct cse_reg_info): REGNO now unsigned.
10665         (cached_regno): Now unsigned.
10666         (REGNO_QTY_VALID_P): Add cast.
10667         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10668         (remove_invalid_regs): Likewise.
10669         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10670         as are variables END and I.
10671         (get_cse_reg_info, insert): Likewise.
10672         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10673         (canon_hash): Likewise.
10674         (insert_regs, lookup_for_remove): REGNO now unsigned.
10675         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10676         New variable RN.
10677         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10678         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10679         * emit-rtl.c (subreg_realpart_p): Add cast.
10680         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10681         (operand_subword_force): Arg I is now unsigned.
10682         * except.c (eh_regs): Variable I is now unsigned.
10683         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10684         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10685         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10686         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10687         (extract_split_bit_field, store_bit_field, extract_bit_field):
10688         Likewise.
10689         * expr.c (store_constructor_fields, store_constructor, store_field):
10690         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10691         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10692         (do_jump): Likewise.
10693         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10694         MAX_SIZE is now unsigned.
10695         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10696         (emit_group_store): Likewise.
10697         (emit_move_insn): I now unsigned.
10698         (store_constructor): Use host_integerp, tree_low_cst, and
10699         bitsize_unit_node.
10700         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10701         Rework all calculations to use trees and new fields.
10702         * expr.h (promoted_input_arg): Regno now unsigned.
10703         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10704         (mark_seen_cases): Arg is HOST_WIDE_INT.
10705         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10706         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10707         precisions and alignments are unsigned.
10708         (optimize_bit_field_compare, fold_truthop): Likewise.
10709         (int_const_binop): Adjust threshold for size_int_type_wide call.
10710         (fold_convert): Likewise.
10711         (size_int_type_wide): Make table larger and fix thinko that only
10712         had half of table used.
10713         (all_ones_mask_p, fold): Precisions are unsigned.
10714         * function.c (put_reg_info_stack): REGNO is unsigned.
10715         (instantiate_decl): Size is HOST_WIDE_INT.
10716         (instantiate_virtual_regs): I is unsigned.
10717         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10718         (promoted_input_arg): REGNO is unsigned.
10719         * function.h (struct function): x_max_parm_reg is now unsigned.
10720         * gcse.c (max_gcse_regno): Now unsigned.
10721         (struct null_pointer_info): min_reg and max_reg now unsigned.
10722         (lookup_set, next_set): REGNO arg now unsigned.
10723         (compute_hash_table): REGNO and I now unsigned.
10724         (handle_avail_expr): regnum_for_replacing now unsigned.
10725         (cprop_insn): REGNO now unsigned.
10726         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10727         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10728         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10729         * hard-reg-set.h (reg_class_size): Now unsigned.
10730         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10731         * jump.c (mark_modified_reg): I now unsigned; add cast.
10732         (rtx_equal_for_thread_p): Add cast.
10733         * loop.c (max_reg_before_loop): Now unsigned.
10734         (struct_movable): REGNO now unsigned.
10735         (try_copy_prop): REGNO arg unsigned.
10736         (regs_match_p): XN and YN now unsigned.
10737         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10738         (strength_reduce): Likewise; NREGS also unsigned.
10739         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10740         * loop.h (struct iv_class): REGNO now unsigned.
10741         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10742         Now unsigned.
10743         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10744         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10745         * optabs.c (expand_binop): I and NWORDS now unsigned.
10746         (expand_unop): I now unsigned.
10747         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10748         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10749         * real.c (significand_size): Now returns unsigned.
10750         * real.h (significand_size): Likewise.
10751         * regclass.c (reg_class_size): Now unsigned.
10752         (choose_hard_reg_mode): Both operands now unsigned.
10753         (record_reg_classes): REGNO and NR now unsigned.
10754         (reg_scan): NREGS now unsigned.
10755         (reg_scan_update): old_max_regno now unsigned.
10756         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10757         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10758         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10759         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10760         Likewise for variable R.
10761         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10762         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10763         (find_equiv_reg): Add casts.
10764         (regno_clobbered_p): Arg REGNO now unsigned.
10765         * reload.h (struct reload): NREGS now unsigned.
10766         (refers_to_regno_for_reload_p): Regno args are unsigned.
10767         (regno_clobbered_p): Likewise.
10768         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10769         (compute_use_by_pseudos): REGNO now unsigned.
10770         (find_reg): I and J now unsigned, new variable K, and change loop
10771         variables accordingly; THIS_NREGS now unsigned.
10772         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10773         (spill_hard_reg): REGNO arg now unsigned; add casts.
10774         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10775         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10776         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10777         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10778         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10779         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10780         (emit_reload_insns): REGNO now unsigned.
10781         (reload_cse_move2add): Add cast.
10782         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10783         and rework loop.
10784         * resource.c (mark_referenced_resources, mark_set_resources): New
10785         variable R; REGNO and LAST_REGNO now unsigned.
10786         (mark_target_live_regs): J and REGNO now unsigned.
10787         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10788         * rtl.h (union rtunion_def): New field rtuint.
10789         (XCUINT): New macro.
10790         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10791         (operand_subword, operand_subword_force): Word number is unsigned.
10792         (choose_hard_reg_mode): Operands are unsigned.
10793         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10794         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10795         (regno_use_in, combine_instructions, remove_death): Likewise.
10796         (reg_scan, reg_scan_update): Likewise.
10797         (extended_count): Return is unsigned.
10798         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10799         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10800         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10801         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10802         (reg_reg_last_1): FIRS and LAST now unsigned.
10803         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10804         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10805         now unsigned.
10806         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10807         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10808         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10809         (replace_regs): Arg NREGS now unsigned.
10810         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10811         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10812         (simplify_binary_operation): Likewise.
10813         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10814         THIS_LAST now unsigned.
10815         (cselib_record_set): Add cast.
10816         * ssa.c (ssa_max_reg_num): Now unsigned.
10817         (rename_block): REGNO now unsigned.
10818         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10819         sizes now unsigned.
10820         (all_cases_count): Just return -1 not -2.
10821         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10822         Rework tests to use trees whenever possible.
10823         Use host_integerp and tree_low_cst.
10824         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10825         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10826         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10827         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10828         (smallest_mode_for_size): Likewise.
10829         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10830         KNOWN_ALIGN is now an alignment, so simplify code.
10831         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10832         (start_record_layout): Renamed from new_record_layout_info.
10833         Update to new fields.
10834         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10835         New functions.
10836         (place_union_field): Renamed from layout_union_field.
10837         Update to use new fields in rli.
10838         (place_field): Renamed from layout_field.
10839         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10840         (finalize_record_size): Rework to use new fields in rli and handle
10841         union.
10842         (compute_record_mode): Rework to simplify and to use new DECL fields.
10843         (finalize_type_size): Make rounding more consistent.
10844         (finish_union_layout): Deleted.
10845         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10846         (layout_type, case RECORD_TYPE): Call new function names.
10847         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10848         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10849         (get_best_mode): UNIT is now unsigned; remove casts.
10850         * tree.c (bit_position): Compute from new fields.
10851         (byte_position, int_byte_position): New functions.
10852         (print_type_hash_statistics): Cast to remove warning.
10853         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10854         (build_index_type): Likewise; make subtype of sizetype.
10855         (build_index_2_type): Pass sizetype to build_range_type.
10856         (build_common_tree_nodes): Use size_int and bitsize_int to
10857         initialize nodes; add bitsize_{zero,one,unit}_node.
10858         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10859         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10860         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10861         (DECL_FIELD_BITPOS): Deleted.
10862         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10863         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10864         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10865         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10866         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10867         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10868         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10869         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10870         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10871         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10872         (DECL_ALIGN): Adjust to new field in union.
10873         (DECL_OFFSET_ALIGN): New field.
10874         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10875         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10876         (union tree_decl): Add struct for both aligns.
10877         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10878         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10879         (struct record_layout_info): Rework fields to have offset
10880         alignment and byte and bit position.
10881         (start_record_layout, place_field): Renamed from old names.
10882         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10883         (byte_position, int_byte_position): Likewise.
10884         (get_inner_reference): Change types of position and length.
10885         * unroll.c (unroll_loop): New variable R; use for some loops.
10886         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10887         (calculate_giv_inc): Arg REGNO now unsigned.
10888         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10889         * varasm.c (assemble_variable): Clean up handling of size using
10890         host_integerp and tree_low_cst.
10891         (decode_addr_const): Use byte, not bit, position.
10892         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10893         use tree_low_cst and int_bit_position.
10894         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10895
10896 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10897
10898         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10899         (reorder_block_def): New members eff_head and eff_end.
10900         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10901         (verify_insn_chain): New function.
10902         (skip_insns_between_block): Add code to skip deleted insns.
10903         Check for note before using.
10904         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10905         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10906         Check for note before using.
10907         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10908         (fixup_reorder_chain): Restructure, clean up, defect removal.
10909         (reorder_basic_blocks): Remove last_insn and references to it.
10910         Moved insn chain verification code into a new function (see above).
10911         Delete defective code that sets last insn.
10912         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10913         all blocks.
10914
10915 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10916
10917         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10918
10919 2000-03-24  Richard Henderson  <rth@cygnus.com>
10920
10921         * tree.c (lang_safe_for_unsave): Remove.
10922         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10923         allowing for two levels of unsafeness.  Remove lang hook.
10924         * tree.h: Update declarations.
10925         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10926         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10927         Always fail sibcalls when there are pending cleanups.
10928
10929 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10930
10931         * flow.c (propagate_block): When we delete an ADDR_VEC,
10932         also delete the BARRIER following it if there is one.
10933
10934 2000-03-24  Richard Henderson  <rth@cygnus.com>
10935
10936         * builtins.c (expand_builtin_bzero): Convert `length' argument
10937         to sizetype.
10938
10939 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10940
10941         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10942         comparison if regno's are equal.
10943         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10944         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10945         (expand_call): Update caller.
10946         Avoid making a sibling call if argument size of the callee is larger
10947         than argument size of the caller.
10948         Call hard_function_value with outgoing set if in sibcall pass.
10949         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10950
10951         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10952         Change LEAF_REGISTERS from an array initializer to actual array
10953         identifier. Move static global variable into the function.
10954         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10955         sequences for leaf functions.
10956         * global.c (global_alloc): Likewise.
10957         * tm.texi (LEAF_REGISTERS): Update documentation.
10958
10959         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10960         TARGET_FLAT leaf disabling hack.
10961         (LEAF_REGISTERS): Changed from an array initializer to actual array
10962         identifier to avoid duplication and remove the above hack.
10963         (FUNCTION_OK_FOR_SIBCALL): Define.
10964         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10965         always like call attribute.
10966         (eligible_for_sibcall_delay): New attribute.
10967         (sibcall): New delay type.
10968         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10969         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10970         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10971         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10972         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10973         New functions.
10974         (output_function_epilogue): Move part of the code into
10975         output_restore_regs.
10976         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10977         TYPE_SIBCALL.
10978         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10979         prototypes.
10980
10981         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10982         until infrastructure is finished.
10983
10984 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10985
10986         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10987         (save_parm_insns): Not here.
10988
10989 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10990
10991         * builtins.c (expand_builtin_bzero): New function.
10992         (expand_builtin): Handle bzero.
10993
10994         * builtins.def: Add BUILT_IN_BZERO.
10995
10996         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10997         prototype & function for bzero.
10998
10999 2000-03-23  Michael Meissner  <meissner@redhat.com>
11000
11001         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
11002         change adding TARGET_FP to the TF floating point insns, except for
11003         trunctfsf2, which generates direct calls to truncdfsf2.
11004
11005 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
11006
11007         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
11008         try to protect against middle-end changes that break binary
11009         compatibility.
11010         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
11011
11012 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11013
11014         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
11015
11016 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11017
11018         * calls.c (expand_call): If TARGET is passed by reference and
11019         is readonly, write a CLOBBER.
11020
11021 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11022
11023         * builtins.c (expand_builtin): Handle bcmp.
11024
11025         * builtins.def: Add BUILT_IN_BCMP.
11026
11027         * c-common.c (c_common_nodes_and_builtins): Provide builtin
11028         prototype & function for bcmp.
11029
11030 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
11031
11032         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
11033         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
11034         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
11035
11036 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
11037
11038         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
11039         alternative when using -fp64 -gp32.
11040
11041 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11042
11043         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
11044         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
11045         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
11046
11047         * frame.h (frame_state): Revert last change.
11048         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
11049         * libgcc2.c (throw_helper): Revert last change.
11050
11051 2000-03-22  Richard Henderson  <rth@cygnus.com>
11052
11053         * stmt.c (expand_asm_operands): Don't promote the temporary.
11054
11055 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11056
11057         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
11058         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
11059           c_get_alias_set): Likewise.
11060         * c-decl.c (duplicate_decls): Likewise.
11061         * c-typeck.c (default_conversion,build_unary_op): Likewise.
11062         * calls.c (initialize_argument_information): Likewise.
11063         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
11064         Likewise.
11065         * dwarfout.c (decl_class_context,output_type): Likewise.
11066         * expr.c (get_inner_reference): Likewise.
11067         * fold-const.c (simple_operand_p,fold): Likewise.
11068         * function.c (aggregate_value_p): Likewise.
11069         * stmt.c (expand_asm_operands): Likewise.
11070         * varasm.c (named_section): Likewise.
11071
11072 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
11073
11074         Implement dwarf2 exception handling for the ARM.
11075         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
11076         (DWARF_FRAME_RETURN_COLUMN): Define.
11077         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
11078         REG_FRAME_RELATED_EXPR note.
11079         (emit_sfm): Likewise.
11080         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
11081         * dwarf2out.c (reg_save): Handle saving a register to itself.
11082         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
11083         * except.c (eh_regs): Don't use the static chain reg if it's
11084         callee-saved.
11085         * frame.h (frame_state): Add cfa_saved field.
11086         * frame.c (execute_cfa_insn): Set it.
11087         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
11088         the epilogue.
11089         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
11090         Now takes a parm.
11091         (instantiate_virtual_regs): Adjust.
11092         * tm.texi: Adjust.
11093         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11094         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
11095         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
11096
11097         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
11098         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
11099
11100 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11101
11102         * builtins.def: New file.
11103
11104         * Makefile.in (TREE_H): Depend on builtins.def.
11105
11106         * builtins.c (built_in_names): Use builtins.def.
11107
11108         * tree.h (built_in_function): Likewise.
11109
11110 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
11111
11112         * tree.c (size_in_bytes): Return size_zero_node, not
11113         integer_zero_node.
11114
11115 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
11116
11117         * config/fp-bit.c (pack_d): Correct the case when a denormal
11118         is rounded up and stops being denormal.
11119
11120 2000-03-21  Richard Henderson  <rth@cygnus.com>
11121
11122         * config/alpha/alpha.c (function_arg): Check for void_type_node
11123         before using MUST_PASS_IN_STACK.
11124
11125 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
11126
11127         * regmove.c (combine_stack_adjustments_for_block): Check that
11128         the stack pointer is a valid memory address.
11129
11130 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
11131
11132         * calls.c: re-install Mar 16 emit_library_call merge.
11133
11134 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
11135
11136         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
11137         we cannot be sure that if reload_completed base register will
11138         be properly aligned.
11139
11140 2000-03-21  Richard Henderson  <rth@cygnus.com>
11141
11142         * flow.c (delete_block): Fix typo last change.
11143
11144 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
11145
11146         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
11147         not COMPLETE_TYPE_P, to check the type of the expression.
11148
11149 2000-03-21  Michael Meissner  <meissner@redhat.com>
11150
11151         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
11152         all floating point insns that just tested the macro
11153         TARGET_HAS_XFLOATING_LIBS.
11154         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
11155         used to only use the gprs.
11156
11157 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
11158
11159         * tree.h (COMPLETE_TYPE_P): New macro.
11160         (COMPLETE_OR_VOID_TYPE_P): New macro.
11161         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
11162         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
11163         * c-aux-info.c (gen_type): Use them.
11164         * c-common.c (c_expand_expr_stmt): Likewise.
11165         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
11166         grokdeclarator, grokparms, finish_struct, start_function,
11167         store_parm_decls, combine_parm_decls): Likewise.
11168         * c-parse.y (cast_expr): Likewise.
11169         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
11170         c_size_in_bytes, c_alignof, build_component_ref,
11171         build_indirect_ref, build_array_ref, convert_arguments,
11172         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
11173         * calls.c (initialize_argument_information): Likewise.
11174         * convert.c (convert_to_integer): Likewise.
11175         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
11176         * dwarfout.c (location_or_const_value_attribute,
11177         output_enumeration_type_die, output_structure_type_die,
11178         output_union_type_die, output_type): Likewise.
11179         * expr.c (safe_from_p, expand_expr): Likewise.
11180         * function.c (assign_parms): Likewise.
11181         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
11182         * tree.c (build_array_type, build_function_type,
11183         build_method_type, build_offset_type, build_complex_type): Likewise.
11184         * c-parse.c, c-parse.h: Regenerated.
11185
11186 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11187
11188         * config/c4x/rtems.h: Include config/rtems.h.
11189
11190 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
11191
11192         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
11193         decl is a FUNCTION_DECL
11194
11195 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
11196
11197         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
11198         function uses output registers.  Don't save RP for leaf functions.
11199         Do save RP even if no epilogue.
11200         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
11201         (CALL_USED_REGISTERS): Unmark in registers.
11202         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
11203         to near the middle.
11204
11205 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11206
11207         * config/rs6000/rs6000.md (bunordered): New expander.
11208         (bordered): New expander.
11209         (buneq): New expander.
11210         (bunge): New expander.
11211         (bungt): New expander.
11212         (bunle): New expander.
11213         (bunlt): New expander.
11214         (bltgt): New expander.
11215
11216         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
11217         (ccr_bit_negated_p): New function.
11218         (print_operand): For %C, generate appropriate cror for UNEQ,
11219         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
11220
11221 2000-03-20  Andreas Jaeger  <aj@suse.de>
11222
11223         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
11224         warning.
11225
11226         * tree.h (safe_for_unsave): Prototype.
11227
11228 2000-03-20  Richard Henderson  <rth@cygnus.com>
11229
11230         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
11231         (combine_stack_adjustments_for_block): Don't allow sp references
11232         in the side of a set we're not fixing up.
11233         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
11234         after life_analysis.
11235
11236 2000-03-20  Richard Henderson  <rth@cygnus.com>
11237
11238         * calls.c (expand_call): Don't bother generating tail call
11239         sequences if there are pending cleanups.  Use
11240         expand_start_target_temps/expand_end_target_temps to elide
11241         cleanups created during sibcall expansion.
11242
11243 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
11244
11245         * configure.in: Set $IFS to a value if it doesn't already have one
11246         in the --enable-checking handling.
11247         * configure: Regenerate.
11248
11249 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11250
11251         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
11252         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11253         Regenerated.
11254
11255 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
11256
11257         * jump.c (delete_noop_moves): Remove code attempting to
11258         combine stack adjustments.
11259
11260 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11261
11262         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
11263         * except.c (emit_cleanup_handler): Use them.
11264         (expand_end_all_catch): Likewise.
11265         * function.c (fixup_var_refs): Likewise.
11266         (expand_function_end): Clear catch_clauses_last.
11267         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
11268         * except.h (struct eh_status): New field x_catch_clauses_last.
11269         (catch_clauses_last): New define.
11270
11271         * Makefile.in (tree.o): Depend on HASHTAB_H.
11272         * tree.c: Include hashtab.h.
11273         (struct type_hash): Remove next field.
11274         (TYPE_HASH_SIZE): Remove.
11275         (TYPE_HASH_INITIAL_SIZE): New define.
11276         (type_hash_table): Change type to htab_t.
11277         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
11278         mark_hash_entry): New functions.
11279         (init_obstacks): Allocate type hash.
11280         (type_hash_lookup): Use htab functions.
11281         (type_hash_add, mark_type_hash): Likewise.
11282         (dump_tree_statistics): Call print_type_hash_statistics.
11283
11284 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11285
11286         * rs6000/t-aix41: New file.
11287
11288         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
11289
11290 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
11291
11292         * tm.texi (Driver): Fix typos and tweak entry for
11293         INCLUDE_DEFAULTS.
11294         Move misplaced STRUCT_FORCE_BLK entry ...
11295         (Storage Layout): ... to here.
11296         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
11297
11298 2000-03-19  Richard Henderson  <rth@cygnus.com>
11299
11300         * flow.c (delete_block): Delete the addr_vec along with the block.
11301         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
11302         reference labels.
11303
11304         * fold-const.c (extract_muldiv): Apply type check for defined
11305         overflow to multiply as well as divide.
11306
11307         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
11308
11309 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11310
11311         * emit-rtl.c (remove_unncessary_notes): Check that all
11312         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
11313         associated NOTE_BLOCK.
11314         * function.h (identify_blocks): Update comments.
11315         (reorder_blocks): Declare.
11316         * function.c (identify_blocks): Don't take paramters.
11317         (reorder_blocks): Don't take parameters.
11318         * loop.h (find_loop_tree_blocks): Remove.
11319         (unroll_block_trees): Likewise.
11320         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
11321         reorder_blocks instead of unroll_block_trees.h
11322         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
11323         * stmt.c (find_loop_tree_blocks): Remove.
11324         (unroll_block_trees): Likewise.
11325         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
11326         in whole-function mode.
11327         * tree.h (reorder_blocks): Remove declaration.
11328
11329         * expr.c: Include intl.h.
11330         * Makefile.in (expr.o): Depend on intl.h.
11331
11332 2000-03-18  Richard Henderson  <rth@cygnus.com>
11333
11334         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
11335
11336 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
11337
11338         * tree.h (tree_index): Remove enumerals for integer types.
11339         (integer_type_kind): New type.
11340         (integer_types): New variable.
11341         (char_type_node): Adjust.
11342         (signed_char_type_node): Likewise.
11343         (unsigned_char_type_node): Likewise.
11344         (short_integer_type_node): Likewise.
11345         (short_unsigned_type_node): Likewise.
11346         (integer_type_node): Likewise.
11347         (unsigned_type_node): Likewise.
11348         (long_integer_type_node): Likewise.
11349         (long_unsigned_type_node): Likewise.
11350         (long_long_integer_type_node): Likewise.
11351         (long_long_unsigned_type_node): Likewise.
11352         * tree.c (integer_types): New variable.
11353         (init_obstacks): Register it as a root.
11354
11355 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
11356
11357         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
11358         NEXT_INSN. Update last insn in chain.
11359
11360 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
11361
11362         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
11363         with TYPE_DECL_SUPPRESS_DEBUG set.
11364
11365 2000-03-18  Richard Henderson  <rth@cygnus.com>
11366
11367         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
11368
11369 2000-03-18  Richard Henderson  <rth@cygnus.com>
11370
11371         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
11372         care for HALF_PIC_P.
11373         (expander_call_insn_operand): Remove.
11374         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
11375         * i386.h (PREDICATE_CODES): Update.
11376         * i386.md (all call expanders): Remove predicates, remove special
11377         handling for half-pic.
11378         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
11379         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
11380         (sibcall_epilogue): New.
11381
11382 2000-03-17  Richard Henderson  <rth@cygnus.com>
11383
11384         * rtlanal.c (single_set): Reject if the parallel has anything
11385         except SET or USE or CLOBBER.
11386
11387 2000-03-17  Jeff Law  <law@cygnus.com>
11388             Richard Henderson  <rth@cygnus.com>
11389
11390         * Makefile.in (OBJS): Add sibcall.o.
11391         (sibcall.o): New.
11392         * sibcall.c: New file.
11393         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
11394         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
11395         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
11396         Emit sibcall patterns when requested.  Update all callers.
11397         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
11398         elimination seems feasable.
11399         * final.c (leaf_function_p): Sibling calls don't discount being
11400         a leaf function.
11401         * flow.c (HAVE_sibcall_epilogue): Provide default.
11402         (find_basic_blocks_1): Sibling calls don't throw.
11403         (make_edges): Make edge from sibling call to EXIT.
11404         (propagate_block): Don't remove sibcall_epilogue insns.
11405         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
11406         (sibcall_epilogue): New.
11407         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
11408         (identify_blocks_1): Likewise.  Break out from ...
11409         (identify_blocks): ... here.
11410         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
11411         (reorder_blocks): ... here.
11412         (init_function_for_compilation): Zap prologue/epilogue as varrays.
11413         (record_insns): Extend a varray instead of mallocing new memory.
11414         (contains): Read a varray not array of ints.
11415         (sibcall_epilogue_contains): New.
11416         (thread_prologue_and_epilogue_insns): Emit and record
11417         sibcall_epilogue patterns.
11418         (init_function_once): Allocate prologue/epilogue varrays.
11419         * genflags.c (gen_insn): Treat sibcall patterns as calls.
11420         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
11421         Broken out from ...
11422         (save_for_inline_nocopy): ... here.
11423         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
11424         Broken out from ...
11425         (expand_inline_function): ... here.
11426         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
11427         (subst_constants): Handle 'n' formats.
11428         * jump.c (jump_optimize_minimal): New.
11429         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
11430         optimizations if it's set.
11431         * rtl.c (copy_rtx): Do copy jump & call for insns.
11432         * rtl.h (struct rtx_def): Document use of jump and call for insns.
11433         (SIBLING_CALL_P): New.
11434         (sibcall_use_t): New.
11435         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
11436         Invoke optimize_sibling_and_tail_recursive_calls.
11437         * tree.c (lang_safe_for_unsave): New.
11438         (safe_for_unsave): New.
11439         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
11440
11441         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
11442         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
11443         (*sibcall_osf_1, *sibcall_value_osf_1): New.
11444
11445 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11446
11447         * objc/objc-act.c (encode_method_prototype): Pass types, not
11448         PARM_DECLs, to int_size_in_bytes.
11449
11450 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11451
11452         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11453
11454         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11455         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11456
11457 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11458
11459         * Clean up usages of TREE_INT_CST_LOW.
11460         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11461         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11462         Regenerated.
11463         * c-tree.h (min_precision): Move declaration to here.
11464         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11465         (build_unary_op, add_pending_init): Use bit_position.
11466         (pending_init_member, process_init_element): Likewise.
11467         (really_start_incremental_init, push_init_level, pop_init_level):
11468         Don't make copies of nodes or modify them in place, use consistent
11469         types when tracking positions, and use tree routines computations.
11470         (set_init_index, output_init_element): Likewise.
11471         (output_pending_init_elements, process_init_element): Likewise.
11472         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11473         tree_low_cst and int_bit_position; also minor cleanup.
11474         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11475         (print_cst_octal): Precision is unsigned.
11476         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11477         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11478         (simple_type_align_in_bits): Result is unsigned int.
11479         Use tree_int_low_cst and host_integerp.
11480         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11481         (field_byte_offset): Result is HOST_WIDE_INT.
11482         Change types of internal variables so alignments are unsigned int,
11483         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11484         Use host_integerp, tree_low_cst, and int_bit_position.
11485         (add_bit_offset_attribute): Likewise.
11486         (add_data_member_location_attribute): Use tree_cst_low.
11487         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11488         (add_bit_size_attribute): Use tree_low_cst.
11489         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11490         * dwarfout.c: Similar changes to dwarf2out.c.
11491         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11492         * genoutput.c (n_occurences): Return -1 for null string.
11493         (strip_whitespace): Accept null string and make into function.
11494         (scan_operands): Reflect above changes.
11495         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11496         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11497         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11498         * tree.c (int_size_in_bytes): Check for too big to represent.
11499         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11500         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11501         New declarations.
11502         (min_precision): Delete from here.
11503         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11504         and int_bit_position.
11505         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11506         (encode_method_def): Likewise.
11507         (build_ivar_list_initializer): Use int_bit_position.
11508         (generate_shared_structures): Convert size.
11509         (encode_type, encode_complete_bitfield): Use integer_zerop.
11510         (encode_bitfield): Use tree_low_cst and int_bit_position.
11511
11512 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11513
11514         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11515
11516 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11517
11518         * call.c (special_function_p): It is only malloc if it returns
11519         Pmode.
11520
11521 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11522
11523         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11524         (C33_FLAG, TARGET_C3X): Add macros.
11525         (TARGET_SWITCHES): Add -m33 option.
11526         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11527
11528 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11529
11530         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11531         (PARALLEL_PACK_FLAG): Delete.
11532         (TARGET_SWITCHES): Update.
11533         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11534
11535 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11536
11537         * fold-const.c (fold): Fix a few cases when the returned result
11538         is not of the same type as the input.
11539
11540 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11541
11542         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11543         warning.
11544
11545 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11546
11547         * libgcc2.h: Move prototypes above macros with the same name.
11548         Wrap some function prototypes in the conditional which indicates
11549         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11550
11551 2000-03-16  Richard Henderson  <rth@cygnus.com>
11552
11553         * calls.c: Revert last two changes.
11554
11555 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11556
11557         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11558         has exponent 0 is a zero.
11559
11560         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11561         HASH may already be nonzero.  Add code/mode into hash value
11562         immediately after repeat label.
11563         (cselib_lookup): Don't leave the hash table in an inconsistent
11564         state before a hash lookup operation.
11565
11566 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11567
11568         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11569         by TARGET_[HQ]IMODE_MATH.
11570         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11571         x86_promote_qi_regs): Declare.
11572         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11573         TARGET_PROMOTE_QI_REGS): New macros.
11574         (PROMOTE_MODE): New macro.
11575         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11576         x86_promote_qi_regs): New global variables.
11577
11578 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11579
11580         * calls.c (emit_library_call_value_1): Break out from ...; handle
11581         VOIDmode function calls too.
11582         (emit_library_call_value): ... here.
11583         (emit_library_call): Implement by calling emit_library_call_value_1.
11584
11585 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11586
11587         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11588         Update arg_space_so_far on stack adjustments.
11589         (emit_library_call, emit_library_call_value): Likewise; take into
11590         account arg_space_so_far and pending_stack_adjust when calculcating
11591         the boundary.
11592
11593 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11594
11595         * flow.c: Move all basic block reordering code into its own file.
11596         (create_basic_block): Externalize.
11597         * bb-reorder.c: New file. Copy all basic block reordering code from
11598         flow.c to this file.
11599         (reorder_basic_blocks): Fix fencepost error in for-loop.
11600         (reorder_basic_blocks): Remove braces from single statement for-loops.
11601         * basic-block.h: Add declaration for create_basic_block.
11602         * Makefile.in: Add rules for bb-reorder.o.
11603
11604 2000-03-16  Neil Booth  <NeilB@earthling.net>
11605
11606         * cppinit.c (handle_option):  Implement #unassert directive
11607         as -A- command line option.
11608         (print_help):  Update.
11609         * cpptexi.c:  Update.
11610
11611 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11612
11613         * md.texi (Standard Names): Document `jump'.
11614
11615 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11616
11617         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11618         gotos.
11619
11620 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11621
11622         Merge changes from newppc-branch onto trunk.
11623
11624         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11625
11626         * rs6000.c (toc_hash_table): Update for new hash table functions.
11627         (toc_hash_function): Likewise.
11628         (toc_hash_eq): Likewise.
11629         (toc_hash_mark_entry): Likewise.
11630         (toc_hash_mark_table): Likewise.
11631         (output_toc): Likewise.
11632         (rs6000_add_gc_roots): Likewise.
11633
11634         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11635
11636         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11637         (AR_FLAGS_FOR_TARGET): here.  New macro.
11638
11639         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11640
11641         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11642         fpmem_operand) Delete.
11643         (xer_operand) New.
11644         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11645         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11646         (rs6000_save_machine_status, rs6000_restore_machine_status,
11647         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11648         references to above variables.
11649         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11650         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11651         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11652         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11653         (XER_REGNO_P, XER_REGNO): New.
11654         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11655         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11656         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11657         XER_REGNO_P.
11658         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11659         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11660         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11661
11662         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11663
11664         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11665         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11666         * rs6000.h: from here.
11667
11668         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11669         (rs6000_select_rtx_section): Likewise.
11670         (rs6000_encode_section_info): Likewise.
11671         (sdata_section): Likewise.
11672         (sdata2_section): Likewise.
11673         (sbss_section): Likewise.
11674         * sysv4.h (rs6000_select_section): Delete prototype.
11675         (rs6000_select_rtx_section): Likewise.
11676         (rs6000_encode_section_info): Likewise.
11677         (sdata_section): Likewise.
11678         (sdata2_section): Likewise.
11679         (sbss_section): Likewise.
11680         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11681
11682         * sysv4.h: Delete various unnecessary #undef's and put a comment
11683         on the remaining ones.
11684         Change various comments according to coding standard.
11685
11686         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11687
11688         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11689         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11690         (CR0_REGNO_P) Remove.
11691         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11692         setup_incoming_varargs, mtcrf_operation, print_operand,
11693         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11694         Use the above macros.
11695
11696         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11697
11698         * config/rs6000/rs6000.md: Added a new alternative for each
11699         pattern that had a 'x' alternative but no 'y' alternative.
11700         Added a new split for each of the above patterns.
11701
11702         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11703
11704         * aix41.h (ASM_CPU_SPEC): Delete.
11705         (CPP_CPU_SPEC): Delete.
11706
11707         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11708         (ASM_OUTPUT_LABEL): Define.
11709         (ASM_GLOBALIZE_LABEL): Define.
11710         (STRIP_NAME_ENCODING): Define.
11711         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11712         (STRIP_NAME_ENCODING): Don't define.
11713         (ASM_OUTPUT_LABEL): Don't define.
11714         (ASM_GLOBALIZE_LABEL): Don't define.
11715         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11716         names, and ASM_OUTPUT_LABEL to output labels, rather than
11717         asm_fprintf.
11718         (ASM_OUTPUT_LABEL): Define.
11719         (ASM_OUTPUT_INT): Use assemble_name.
11720         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11721         (STRIP_NAME_ENCODING): Don't undefine first.
11722         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11723         ELF.
11724         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11725         specified with 'asm' even with -fleading-underscore.
11726         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11727         (output_epilog): Likewise.
11728         (output_toc): Likewise.
11729         * tramp.asm: Handle -fleading-underscore correctly.
11730
11731         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11732         -mminimal-toc.
11733         (nonlocal_goto_receiver): Delete.
11734         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11735
11736         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11737         (SET_ASM_OP): Define.
11738         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11739
11740         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11741         (ASM_LONG): Define.
11742
11743         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11744         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11745
11746         * rs6000.h: Add 'u' to more constants.
11747
11748         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11749
11750         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11751
11752         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11753
11754         * rs6000.c (reg_or_u_cint_operand): New function.
11755         (logical_operand): Handle 64-bit hosts.
11756         (logical_u_operand): New function.
11757         (non_logical_cint_operand): Handle 64-bit hosts.
11758         (non_logical_u_cint_operand): New function.
11759         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11760         (PREDICATE_CODES): Define new functions.
11761         * rs6000-protos.h: Declare new functions.
11762         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11763         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11764         CONST_DOUBLE for 32-bit values.
11765         (scc insns): Generate DImode compares.
11766         (mfcr insns): Create DImode versions.
11767         (sge matchers): New patterns.
11768
11769         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11770
11771         * rs6000.md: Correct instructions length attributes and
11772         constraints on unsigned compare instructions.
11773         (*ne0): Disable for PowerPC64.
11774
11775         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11776
11777         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11778         quantity, fix profile1.C test failure under -fPIC.
11779
11780         * rs6000.c: Add 'u' to many constants to suppress warnings.
11781         (constant_pool_expr_1): Make static.
11782         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11783         * rs6000.h: Add 'u' to many constants to suppress warnings.
11784
11785         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11786         for the start of the TOC, instead of LCTOC..0.
11787         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11788         of the TOC.
11789         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11790         (load_toc_aix_di): Use LCTOC..1.
11791
11792         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11793         * rs6000.c (rs6000_legitimize_address): New function from
11794         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11795         symbols in the constant pool that really are TOC references.
11796         (print_operand_address): For ELF, write TOC offsets under
11797         -fPIC as subtractions in the insn.
11798         (output_toc): For ELF, define symbols in TOC as normal labels,
11799         to match RTL.
11800         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11801         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11802         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11803         * rs6000.md (movsi): Only use create_TOC_reference on
11804         symbols in the constant pool that really are TOC references.
11805
11806         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11807         * rs6000.c (rs6000_reorg): Delete.
11808         * rs6000-protos.h (rs6000_reorg): Delete.
11809
11810         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11811
11812         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11813
11814         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11815         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11816         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11817         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11818         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11819         rs6000_aix_emit_builtin_unwind_init.
11820         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11821         rs6000_emit_eh_toc_restore on AIX.
11822         (return_eh_si): Use r2.
11823         (return_eh_di): Use r2.
11824
11825         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11826         since we're breaking binary compatibility anyway.
11827
11828         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11829
11830         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11831         constant_pool_expr_p): Declare them.
11832         (constant_pool_expr_p): Declare it.
11833         * config/rs6000/rs6000.c (toc_label_name): Define.
11834         (rs6000_override_options): Set toc_label_name.
11835         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11836         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11837         uses_TOC): New functions.
11838         (print_operand): Delete old '*' case.
11839         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11840         and strip off rtl for TOC before calling output_addr_const.
11841         (rs6000_emit_load_toc_table): Use toc_label_name.
11842         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11843         the default.
11844         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11845         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11846         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11847         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11848         into explicit TOC_REGISTER offsets.
11849         (TOC_REGISTER): New macro.
11850         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11851         TARGET_TOC to reference TOC_REGISTER.
11852         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11853         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11854         uses_TOC before emitting label references.
11855
11856         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11857
11858         * rs6000.md (stack_tie): Fix warning.
11859
11860         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11861         to handle -fleading-underscore.
11862         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11863         (USER_LABEL_PREFIX): New macro.
11864         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11865         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11866         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11867         call-linux can use the same multilibs.
11868         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11869         and call-linux multilibs.  Do multilib with -fleading-underscore.
11870         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11871         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11872         to call-aix.
11873
11874         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11875         have MASK_SOFT_FLOAT set.
11876         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11877         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11878         CPP_FLOAT_DEFAULT_SPEC.
11879
11880         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11881         * rs6000.md: Whitespace change.
11882         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11883         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11884
11885         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11886
11887         * rs6000.md (eh_epilogue): New expander.
11888         (eh_reg_restore): New expand/split/insn combination.
11889         (return_eh_si): New insn.
11890         (return_eh_di): New insn.
11891
11892         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11893         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11894         * eabi-ctors.c (__do_global_ctors): Register this object's
11895         frame.  Clean up.  Call atexit() after the constructors.
11896         (__do_global_dtors): Deregister this object's frame.  Clean up.
11897         Allow for recursive calls to exit().
11898         * rs6000.c (fixuplabelno): New variable.
11899         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11900         TARGET_RELOCATABLE, it slows down exec() under linux.
11901         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11902
11903         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11904         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11905         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11906         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11907         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11908         (ASM_OUTPUT_DWARF_ADDR): New macro.
11909         (ASM_OUTPUT_DWARF_DATA4): New macro.
11910         (ASM_OUTPUT_DWARF_DATA2): New macro.
11911         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11912         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11913         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11914
11915         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11916
11917         * rs6000.c (rs6000_sr_alias_set): New variable.
11918         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11919         (rs6000_emit_stack_tie): New function.
11920         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11921         in a way that dwarf2out can understand.
11922         (rs6000_frame_related): New function.
11923         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11924         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11925         Use rs6000_emit_stack_tie when needed.
11926         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11927         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11928         * rs6000.md (stack_tie): New insn.
11929         (return_internal_si): Allow return value to be in the count
11930         register.
11931         (return_internal_di): Likewise.
11932
11933         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11934
11935         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11936
11937         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11938
11939         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11940
11941         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11942
11943         * rs6000.md (stmw): Use the right POWER opcode.
11944         (lmw): Likewise.
11945
11946         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11947
11948         * rs6000-protos.h: New file.
11949
11950         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11951
11952         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11953         warnings.
11954
11955         * sysv4.h: Likewise.
11956
11957         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11958
11959         * ../../configure.in: Delete powerpcle-*-winnt*
11960         and powerpcle-*-pe|powerpcle-*-cygwin*.
11961         * ../../configure: Regenerated.
11962         * cygwin.h: Delete.
11963         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11964         (TARGET_WINDOWS_NT): Delete.
11965         (ABI_NT): Delete.
11966         (CALL_NT_DLLIMPORT): Delete.
11967         Delete NT-specific code.
11968         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11969         * win-nt.h: Delete.
11970         * t-winnt: Delete.
11971         * nt-ci.asm: Delete.
11972         * nt-cn.asm: Delete.
11973         * ntstack.asm: Delete.
11974
11975         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11976
11977         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11978         (ASM_FILE_START): Likewise.
11979         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11980         (ASM_OUTPUT_LABELREF): Likewise.
11981         (ASM_OUTPUT_SKIP): Likewise.
11982         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11983         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11984         (ASM_OUTPUT_CASE_LABEL): Likewise.
11985         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11986         (ASM_OUTPUT_ASCII): Likewise.
11987
11988         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11989
11990         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11991         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11992         increment rs6000_pic_labelno here.
11993         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11994         and increment rs6000_pic_labelno here.
11995
11996         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11997
11998         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11999         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
12000         allocation knows (reg) is dead before the insn.
12001
12002         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
12003
12004         * rs6000.md (movsi_to_cr): Correct typo in output template.
12005
12006         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
12007
12008         * rs6000.c (rs6000_pic_labelno): Always define.
12009         (rs6000_pic_func_labelno): Delete.
12010         (lmw_operation): Check for a zero base register,
12011         which doesn't mean what we want.
12012         (stmw_operation): New function.
12013         (print_operand): Define new 'l' modifier.
12014         (rs6000_stack_info): We must save all 64 bits of the registers
12015         if TARGET_POWERPC64.
12016         (rs6000_output_load_toc_table): Delete.
12017         (rs6000_emit_load_toc_table): New function.
12018         (rs6000_allocate_stack_space): Delete.
12019         (rs6000_emit_allocate_stack): New function.
12020         (rs6000_emit_prologue): New function.
12021         (output_prolog): Use rs6000_emit_prologue.
12022         (rs6000_emit_epilogue): Change a few variable names to be
12023         more accurate.  Restore all 64 bits of the registers if
12024         TARGET_POWERPC64.  Only restore the FP registers which were used
12025         if they are being saved/restored one-at-a-time.
12026         (output_mi_thunk): Delete inefficient code generation.
12027         (output_function_profiler): Don't use rs6000_output_load_toc_table.
12028         * rs6000.h: Declare rs6000_emit_load_toc_table,
12029         rs6000_allocate_stack_space, stmw_operation.  Don't declare
12030         rs6000_output_load_toc_table.
12031         * rs6000.md (elf_high): Allow register 0, but discourage it
12032         heavily.
12033         (elf_low): Support loading into register 0.
12034         (load_toc_aix_si): New pattern.
12035         (load_toc_aix_di): New pattern.
12036         (load_toc_v4_pic_si): New pattern.
12037         (load_toc_v4_pic_di): New pattern.
12038         (load_toc_v4_PIC_1): New pattern.
12039         (load_toc_v4_PIC_1b): New pattern.
12040         (load_toc_v4_PIC_2): New pattern.
12041         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
12042         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
12043         (prologue): New expander.
12044         (movesi_from_cr): New pattern.
12045         (stmw): New pattern.
12046         (save_fpregs_si): New pattern.
12047         (save_fpregs_di): New pattern.
12048
12049         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12050
12051         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
12052         (movdi): Likewise.
12053         (movhi): Likewise.
12054         (movqi): Likewise.
12055
12056         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12057
12058         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
12059         at present.
12060         (movsi_got_internal): Likewise.
12061         (movsi_got_internal+1): Likewise.
12062         (set_sp): 'unspec 7' does a SImode clobber.
12063
12064         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12065
12066         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
12067         allocate a stack temporary.
12068         (floatsidf2_internal): Likewise.
12069         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
12070         with unspec.
12071         (floatunssidf2): Don't use the fpmem "register", just
12072         allocate a stack temporary.
12073         (floatunssidf2_internal): Likewise.
12074         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
12075         with unspec.
12076         (floatsidf2_loadaddr): Delete.
12077         (floatsidf2_store1): Delete.
12078         (floatsidf2_store2): Delete.
12079         (floatsidf2_load): Delete.
12080         (fix_truncdfsi2): Don't use the fpmem "register", just
12081         allocate a stack temporary.
12082         (fix_truncdfsi2_internal_si): Delete.
12083         (fix_truncdfsi2_internal_di): Delete.
12084         (fix_truncdfsi2_internal): New insn.
12085         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
12086         (fix_truncdfsi2_store): Delete.
12087         (fix_truncdfsi2_load): Delete.
12088         (fctiwz): Produce gen_fctiwz.
12089
12090         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
12091
12092         * eabi.h (INVOKE__main): Define.
12093         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
12094         specially.
12095         (rs6000_emit_prologue): Likewise.
12096         * rs6000.h (struct rs6000_stack): Don't keep track of whether
12097         this is the main program.
12098
12099         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12100
12101         * rs6000.c (rs6000_va_arg): Delete some unused variables.
12102
12103         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
12104
12105         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
12106         goes after the argument.
12107
12108         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12109
12110         * rs6000.md: Document 'unspec' values used.
12111         (epilogue): New expander.
12112         (movesi_to_cr_one): New expander.
12113         (movesi_to_cr and following): New pattern.
12114         (lmw): New pattern.
12115         (return_internal_si): New pattern.
12116         (return_internal_di): New pattern.
12117         (return_and_restore_fpregs_si): New pattern.
12118         (return_and_restore_fpregs_di): New pattern.
12119         * rs6000.h: Declare new functions.
12120         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
12121         rather than rs6000_calls_p.
12122         (rs6000_makes_calls): Delete.
12123         (lmw_operation): New function.
12124         (mtcrf_operation): New function.
12125         (rs6000_emit_epilogue): New function.
12126         (output_epilog): Call rs6000_emit_epilogue and final if
12127         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
12128
12129         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12130
12131         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
12132         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
12133         * aix.h (SUBTARGET_SWITCHES): Document switches.
12134         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
12135         sched-prolog and sched-epilog the same.  Document all the
12136         switches.
12137         (TARGET_OPTIONS): No longer allow -mdebug-.
12138
12139         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
12140
12141         * rs6000.h (ASM_FILE_END): Move to aix.h.
12142         (EXTRA_SECTIONS): Move to aix.h.
12143         (READONLY_DATA_SECTION): Move to aix.h.
12144         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
12145         (SELECT_SECTION): Move to aix.h.
12146         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
12147         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
12148         (LINK_REGISTER_REGNUM): New definition.
12149         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
12150         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
12151         AIX and SVR4.
12152         * sysv4.h: Delete the code between the inclusion of rs6000.h
12153         and svr4.h.
12154         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
12155         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
12156         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
12157         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
12158         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
12159         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
12160         (fix_truncdfsi2_internal_di): New pattern.
12161         (fix_truncdfsi2_store): The second arg here is Pmode too.
12162         (fix_truncdfsi2_load): The second arg here is Pmode too.
12163         (tablejumpdi): Now that switch tables hold only SImode values,
12164         gcc needs to know how to add them to the pc which is DImode.
12165         * rs6000.c (rs6000_stack_info): Use symbolic name for
12166         LINK_REGISTER_REGNUM.
12167         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
12168         (output_toc): Delete unused variables s1 and s2.
12169         (output_ascii): Use fputs not fprintf on a variable string.
12170
12171         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
12172
12173         * rs6000.c (processor_target_table): Add power3 as alias for 630.
12174         * aix43.h: Revert Aug 2 change.
12175         (HAS_INIT_SECTION): Define, not visible yet.
12176         (LD_INIT_SWITCH): Define, not visible yet.
12177         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
12178
12179         2000-01-04  Joel Sherrill (joel@OARcorp.com>
12180
12181         * config/rs6000/rtems.h: Include config/rtems.h.
12182
12183         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
12184
12185         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
12186         (SLOW_UNALIGNED_ACCESS): Define.
12187         (CASE_VECTOR_MODE): Always use 32-bit offsets.
12188         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
12189         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
12190         (toc_section): Likewise and .toc pseudo-op.
12191         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
12192         64-bit mode.
12193         (TEXT_SECTION_ASM_OP): Likewise.
12194         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
12195         32-bit offsets.
12196
12197         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
12198
12199         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
12200         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
12201         compiling libgcc2.
12202
12203         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12204
12205         * rs6000.h: Move more stuff from here...
12206         * aix.h: to here.
12207         * sysv4.h: Cleanup accordingly.
12208         * netware.h: Likewise
12209
12210         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12211
12212         * rs6000.h: Continue cleanup.
12213         * aix.h: Likewise.
12214         * lynx.h: Likewise.
12215         * netware.h: Likewise.
12216         * sol2.h: Likewise.
12217         * sysv4.h: Likewise.
12218         * win-nt.h: Likewise.
12219
12220         * rs6000.h (TARGET_SWITCHES): Add descriptions.
12221         (TARGET_OPTIONS): Likewise.
12222
12223         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
12224         (SUBTARGET_OPTIONS): Likewise.
12225
12226         * rs6000.md: Fix compile time warnings.
12227
12228         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12229
12230         vxworks patches from the Cygnus tree originally by
12231         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
12232         <vmakarov@cygnus.com>.
12233         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
12234         (ENDFILE_SPEC): Likewise.
12235         (LIB_VXWORKS_SPEC): New macro.
12236         (STARTFILE_VXWORKS_SPEC): New macro.
12237         (ENDFILE_VXWORKS_SPEC): New macro.
12238         (LINK_START_VXWORKS_SPEC): New macro.
12239         (LINK_OS_VXWORKS_SPEC): New macro.
12240         (CPP_OS_VXWORKS_SPEC): New macro.
12241         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
12242         * vxppc.h: Rewrite to use proper configuration method.
12243         * vxppcle.h: New file.
12244         * ../../configure.in: Add powerpcle-wrs-vxworks*.
12245         * ../../configure: Rebuilt.
12246
12247         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12248
12249         Lots of changes to rs6000.h, sysv4.h, aix.h,
12250         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
12251         with the aim that rs6000.h is the first header
12252         included and the others override it.
12253         * aix.h: New file.
12254
12255         * x-aix41-gld: Remove.
12256         * x-aix43: Remove.
12257         * x-aix41: Remove target-specific switches, and don't specify
12258         -Wl,-bbigtoc as we don't need it any more.
12259         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
12260         Use t-aix43 for AIX 4.3 and above.
12261         * ../../configure: Regenerated.
12262
12263         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
12264         options, that don't do anything yet.
12265         (MASK_SCHED_PROLOG): New macro.
12266         (MASK_SCHED_EPILOG): New macro.
12267         (TARGET_SCHED_PROLOG): New macro.
12268         (TARGET_SCHED_EPILOG): New macro.
12269
12270         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
12271
12272         * rs6000.c: Correct comment, the `minimal' TOCs are actually
12273         one per translation unit, not one per function.
12274         (output_toc): Also do duplicate constant elimination
12275         for per-translation-unit TOCs.
12276
12277         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
12278         a comment explaining _exactly_ when this pattern gets used.
12279         (builtin_setjmp_receiver): New pattern for better clarity.
12280         (init_v4_pic): Move it into a section dealing with TOC registers.
12281
12282         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
12283
12284         * rs6000.c (toc_hash_table): New variable.
12285         (rs6000_hash_constant): New function.
12286         (toc_hash_function): New function.
12287         (toc_hash_eq): New function.
12288         (toc_hash_mark_entry): New function.
12289         (toc_hash_mark_table): New function.
12290         (output_toc): Don't output duplicate TOC entries in
12291         a single file.
12292         (rs6000_add_gc_roots): Add the hash table as a GC root.
12293         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
12294         where they clearly shouldn't be.  This may need to be fixed
12295         later when there is a GNU ar for AIX.
12296         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
12297         Don't define BOOT_LDFLAGS as it is now not necessary.
12298
12299         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
12300
12301         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
12302         for va_list on AIX.  Use unsigned_char_type_node rather than
12303         constructing our own version on svr4.
12304
12305         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
12306
12307         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
12308         since patently it's not.
12309
12310         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
12311
12312         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
12313         define_expand/define_insn pair, and handle restore of the
12314         SVR4 -fpic register.
12315
12316 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
12317
12318         * acconfig.h (HAVE_GAS_WEAK): New define.
12319         * configure.in (assembler weak support): Check for .weak support.
12320         * config.in, configure: Rebuilt.
12321         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
12322         HAVE_GAS_WEAK is defined.
12323
12324 2000-03-15  Nick Clifton  <nickc@cygnus.com>
12325
12326         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
12327         asm_fprintf().
12328
12329 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
12330
12331         * cppfiles.c (open_include_file): New function.
12332         (find_include_file, cpp_read_file): Use it.
12333
12334 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
12335
12336         * cpphash.c (dump_hash_helper): Take the slot, not the element.
12337
12338 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
12339
12340         * flow.c (verify_flow_info): Check for unconditional return.
12341
12342 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
12343
12344         * config/ia64/ia64.md (restore_stack_nonlocal): New.
12345         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
12346         (__ia64_restore_stack_nonlocal): New.
12347         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
12348
12349 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12350
12351         * cpphash.c (collect_formal_parameters): Do not complain about
12352         parameter names that just start with `__VA_ARGS__'.
12353
12354 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
12355
12356         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
12357         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
12358         * i386.c (pentiumpro_cost): Set mul cost to 4.
12359         (x86_use_movx): Set for PPro.
12360
12361 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
12362
12363         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
12364         STACK_BOUNDARY for empty frames now.
12365
12366 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
12367
12368         * stor-layout.c (layout_union): Remove.
12369         (layout_union_field): New function, split out from layout_union.
12370         (finish_union_layout): Likewise.
12371         (layout_field): Handle unions by calling layout_union_field.
12372         (finish_record_layout): Handle unions.
12373         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
12374         QUAL_UNION_TYPE handling.
12375
12376 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
12377
12378         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
12379         end of basic block is jump_insn, not barrier; use create_basic_block
12380         instead of creating basic block by hand.
12381
12382 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
12383
12384         * flow.c (reorder_basic_blocks): Account for barriers when writing
12385         over NEXT_INSN (last_bb->end).
12386         (verify_flow_info): Add check for missing barriers.
12387
12388 2000-03-14  Greg McGary  <gkm@gnu.org>
12389
12390         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
12391         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
12392         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
12393         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
12394         __unbounded, __unbounded__): New keywords.
12395         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
12396         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
12397         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
12398
12399 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12400
12401         * cselib.h: New file.
12402         * alias.c: Include "cselib.h".
12403         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
12404         MEMs as two new arguments.
12405         (get_addr): New static function.
12406         (find_base_term): Handle VALUEs.
12407         (memrefs_conflict_p): Likewise.
12408         (true_dependence): Call get_addr on the addresses.
12409         Call fixed_scalar_and_varying_struct_p with addresses that have been
12410         passed through get_addr and canon_rtx.
12411         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
12412         with true_dependence.
12413         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
12414         * loop.c: Include "cselib.h".
12415         (load_mems): Process extended basic block that enters the loop with
12416         cselib.  Use that information to change initialization of the shadow
12417         register so that a constant equivalence is seen by later passes.
12418         * reload1.c: Include "cselib.h".
12419         (reload_cse_invalidate_regno): Delete function.
12420         (reload_cse_mem_conflict_p): Likewise.
12421         (reload_cse_invalidate_mem): Likewise.
12422         (reload_cse_invalidate_rtx): Likewise.
12423         (reload_cse_regno_equal_p): Likewise.
12424         (reload_cse_check_clobber): Likewise.
12425         (reload_cse_record_set): Likewise.
12426         (reg_values): Delete static variable.
12427         (invalidate_regno_rtx): Likewise.
12428         (reload_cse_delete_noop_set): New static function.
12429         (reload_cse_simplify): New static function, broken out of
12430         reload_cse_regs_1.
12431         (reload_cse_noop_set_p): Delete unused argument INSN.
12432         Just call rtx_equal_for_cselib_p on set source and destination.
12433         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
12434         reload_cse_delete_noop_set.  Delete code to keep track of values; use
12435         cselib functions instead.  Delete code to push/pop obstacks.
12436         (reload_cse_simplify_set): Use cselib to find equivalent values.
12437         Delete code to push/pop obstacks.
12438         (reload_cse_simplify_operands): Likewise.
12439         * rtl.def (VALUE): New rtx code.
12440         * rtl.h (union rtunion_def): New elt rt_cselib.
12441         (X0CSELIB, CSELIB_VAL_PTR): New macros.
12442         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
12443         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
12444         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
12445         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12446         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12447         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12448         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12449         cselib_record_set, cselib_record_sets): New static functions.
12450         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12451         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12452         references_value_p): New functions.
12453         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12454         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12455         n_useless_values, reg_values, callmem, cselib_obstack,
12456         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12457         New static variables.
12458         * varray.h (union varray_data_tag): New elt te.
12459         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12460         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12461         dependencies.
12462
12463 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12464
12465         * gcc.c (do_spec_1): Catch the case where %* is used in a
12466         substitution pattern, but it has not been initialised.
12467         Issue a meaningful error message if an unrecognised operator
12468         is encountered in a spec string.
12469
12470 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12471
12472         * function.c (prepare_function_start): Correctly initialize
12473         cfun->stack_alignment_needed.
12474
12475 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12476
12477         * cppfiles.c (find_include_file): Don't assume nshort is a
12478         substring of name.
12479
12480 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12481
12482         * configure.in (hppa configurations): Add pa32-regs.h to the
12483         list of tm files as appropriate.
12484         * configure: Rebuilt.
12485         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12486         register numbering.
12487         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12488         (fmpyaddoperands, fmpysuboperands): Likewise.
12489         * pa.h: Remove various definitions which depend on knowing
12490         how registers are numbered.
12491         * pa32-regs.h: New file with PA32 register numbering specific
12492         definitions.
12493
12494 2000-03-14  Richard Henderson  <rth@cygnus.com>
12495
12496         * regmove.c (combine_stack_adjustments): New.
12497         (stack_memref_p, single_set_for_csa): New.
12498         (free_csa_memlist, record_one_stack_memref): New.
12499         (try_apply_stack_adjustment): New.
12500         (combine_stack_adjustments_for_block): New.
12501         * rtl.h (combine_stack_adjustments): Declare.
12502         * toplev.c (rest_of_compilation): Call it.
12503
12504         * i386.md: Revert 2000-01-16 change.
12505
12506 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12507
12508         * gccbug.in: Add web category, gcc specific classes.
12509
12510 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12511
12512         * stor-layout.c (finalize_record_size): Fix typo.
12513
12514 2000-03-14  Stan Shebs  <shebs@apple.com>
12515
12516         * c-typeck.c (c_alignof): Error on incomplete types.
12517         * extend.texi (Alignment): Document this.
12518
12519 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12520
12521         * cppfiles.c: Include mkdeps.h.
12522         (find_include_file, read_include_file): Remove _cpp_ prefix
12523         from name, make static.
12524         (_cpp_execute_include): New function, broken out of
12525         do_include.
12526
12527         * cpplib.c: Don't include mkdeps.h.
12528         (struct directive): Remove type field. Reorder entries.  The
12529         function takes only one argument.
12530         (struct if_stack): Make type field an int.
12531         (directive_table): Rename to dtable.  Generate it, the
12532         prototypes of the directive handlers, and the enum for the
12533         directive numbers, from a template macro.
12534         (do_ifndef, do_include_next, do_import): New functions.
12535         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12536         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12537         do_ident, do_assert, do_unassert, do_sccs): Take only one
12538         argument.
12539         (do_sccs): Define always, but alter behavior based on
12540         SCCS_DIRECTIVE.
12541         (_cpp_handle_directive, consider_directive_while_skipping):
12542         Restructure for new directive table layout.
12543
12544         (pass_thru_directive): Take a directive number, not a pointer
12545         to a struct directive.
12546         (parse_include): New function, broken out of do_include.
12547         (do_include, do_import, do_include_next): Use parse_include
12548         and _cpp_execute_include.
12549         (do_elif, do_else): Test for T_ELSE specifically when checking
12550         for #elif/#else after #else.
12551         (parse_ifdef): New function, broken out of do_ifdef.
12552         (validate_else): Expect a name arg without a leading #.
12553         (if_directive_name): Delete.
12554         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12555         directive handlers with only one argument.
12556
12557         * cpphash.h: Update prototypes.
12558         (enum node_type): Remove entries for directives.
12559         * Makefile.in: Update dependencies.
12560
12561         * cpphash.c (dump_hash_helper): Only dump nodes of type
12562         T_MACRO.  Emit a newline after each definition.
12563
12564 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12565
12566         * gccbug.in: New file.
12567         * configure.in (all_outputs): Add gccbug.
12568         * Makefile.in (install-common): Install gccbug.
12569         (GCCBUG_INSTALL_NAME): New variable.
12570         * configure: Rebuilt.
12571
12572 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12573
12574         * function.c (put_var_into_stack): Use type_for_mode to calculate
12575         part_type.  Use MEM_SET_IN_STRUCT_P.
12576         * expr.c (store_field): Handle CONCAT.
12577         (store_constructor): Use fields_length.
12578         * tree.c (fields_length): New fn.
12579         * tree.h: Declare it.
12580
12581 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12582
12583         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12584         (cpplex.o): New target.
12585         * po/POTFILES.in: Add cpplex.c.
12586
12587         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12588         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12589         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12590         skip_block_comment, skip_line_comment, skip_comment,
12591         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12592         _cpp_parse_name, skip_string, parse_string,
12593         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12594         _cpp_get_directive_token, find_position,
12595         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12596         (maybe_macroexpand, _cpp_lex_token): New functions.
12597
12598         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12599         parse_goto_mark): Delete.
12600         (_cpp_handle_eof): New function.
12601         (_cpp_handle_directive): Rename from handle_directive.
12602         (_cpp_output_line_command): Rename from output_line_command.
12603         (do_if, do_elif): Call _cpp_parse_expr directly.
12604         * cppfiles.c (_cpp_read_include_file): Don't call
12605         init_input_buffer here.
12606         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12607         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12608         here; pop the token_buffer and skip the rest of the line here.
12609         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12610         here.
12611
12612         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12613         Define here.
12614         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12615         CPP_GOTO_MARK): New macros.
12616         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12617         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12618         _cpp_read_and_prescan, _cpp_init_input_buffer,
12619         _cpp_grow_token_buffer, _cpp_get_directive_token,
12620         _cpp_handle_directive, _cpp_handle_eof,
12621         _cpp_output_line_command): Prototype them here.
12622         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12623         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12624         quote_string, output_line_command): Remove.
12625
12626 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12627
12628         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12629         whether it is too large we must also verify that it isn't negative.
12630
12631 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12632
12633         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12634         (movsi_zero_liveg0): Remove.
12635         (movsf_insn_novis_liveg0): Remove.
12636         (negsi2): Remove.
12637         (negsi2_not_liveg0): Rename to negsi2.
12638         (one_cmplsi2): Remove.
12639         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12640         (one_cmplsi2_liveg0): Remove.
12641         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12642         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12643         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12644         (PREDICATE_CODES): Remove zero_operand.
12645         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12646         TARGET_BROKEN_SAVERESTORE.
12647         (zero_operand): Remove.
12648         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12649         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12650         options.
12651         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12652         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12653         TARGET_BROKEN_SAVERESTORE): Remove.
12654         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12655         Remove.
12656         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12657         Remove.
12658         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12659         Remove.
12660
12661         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12662
12663 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12664
12665         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12666         truncating a string.  Don't assume tokens are nul terminated.
12667         Problem noted by Andreas Jaeger <aj@suse.de>
12668
12669 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12670
12671         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12672         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12673         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12674
12675 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12676
12677         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12678         STRUCTURE_SIZE_BOUNDARY.
12679
12680 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12681
12682         * tree.h (record_layout_info_s): New structure.
12683         (record_layout_info): New type.
12684         (new_record_layout_info): New function.
12685         (layout_field): Likewise.
12686         (finish_record_layout): Likewise.
12687         * stor-layout.c (layout_record): Remove.
12688         (new_record_layout_info): New function.
12689         (layout_field): New function, broken out from layout_record.
12690         (finalize_record_size): Likewise.
12691         (compute_record_mode): Likewise.
12692         (finalize_type_size): New function, broken out from layout_type.
12693         (finish_record_layout): Likewise.
12694         (layout_type): Use them.
12695
12696 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12697
12698         * cpphash.c: Don't include version.h.
12699         (special_symbol) [case T_VERSION]: Look for the string in
12700         hp->value.cpval; don't use version_string.
12701         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12702         __VERSION__ to version_string.
12703         * Makefile.in (cpphash.o): Update deps.
12704
12705 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12706
12707         Convert cpplib to use libiberty/hashtab.c.
12708
12709         * cpplib.h (struct cpp_reader): Make hashtab and
12710         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12711         and ALL_INCLUDE_HASHSIZE macros.
12712
12713         * cpphash.h: Update prototypes.
12714         (struct hashnode): Remove next, prev, and bucket_hdr members.
12715         Make length a size_t.  Add hash member.
12716         (struct ihash): Remove next member.  Add hash member.  Make
12717         name a flexible array member.
12718
12719         * cppfiles.c: Include hashtab.h.
12720         (include_hash): Delete.
12721         (IHASHSIZE): New macro.
12722         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12723         (cpp_included): Do the hash lookup here.
12724         (_cpp_find_include_file): Rewrite.
12725         (cpp_read_file): Put the "fake" hash entry into the hash
12726         table.  Honor the control_macro, if it turns out we've seen
12727         the file before.  Don't push the buffer here.
12728         (_cpp_read_include_file): Push the buffer here.
12729         (OMODES): New macro.  Use it whenever we call open(2).
12730
12731         * cpphash.c: Include hashtab.h.
12732         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12733         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12734         _cpp_lookup_slot): New functions.
12735         (HASHSIZE): new macro.
12736         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12737         (_cpp_lookup): Use hashtab.h routines.
12738
12739         * cppinit.c: Include hashtab.h.
12740         (cpp_reader_init): Call _cpp_init_macro_hash and
12741         _cpp_init_include_hash.  Don't allocate hashtab directly.
12742         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12743         pfile->all_include_files.
12744         (initialize_builtins): Use _cpp_make_hashnode and
12745         htab_find_slot to add hash entries.
12746         (cpp_finish): Just call _cpp_dump_macro_hash.
12747         * cpplib.c: Include hashtab.h.
12748         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12749         create hash entries.
12750         (do_pragma_poison, do_assert): Likewise.
12751         (do_include): Don't push the buffer here.  Don't increment
12752         system_include_depth unless _cpp_read_include_file succeeds.
12753         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12754         or htab_remove_elt.
12755         (do_pragma_implementation): Use alloca to create copy.
12756
12757         * Makefile.in: Update dependencies.
12758
12759 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12760
12761         * cppinit.c (cl_directive_handler): More K&R fixing.
12762
12763 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12764
12765         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12766         STACK_BOUNDARY.
12767         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12768
12769 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12770
12771         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12772         Change from char[] to macros.
12773
12774 2000-03-12  Neil Booth  <NeilB@earthling.net>
12775
12776         * cppinit.c (cpp_start_read): Update indirect function
12777         call to K&R C.
12778
12779 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12780
12781         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12782         entry.
12783
12784         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12785         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12786
12787 2000-03-11  Neil Booth  <NeilB@earthling.net>
12788
12789         * cppinit.c (struct pending option): Replace undef with a
12790         pointer to a directive handling routine.
12791         (struct cpp_pending): Replace separate assert_ and define_
12792         lists with one directive_ list.
12793         (new_pending_define): Rename new_pending_directive. Extra
12794         argument is the directive's handling routine.
12795         (handle_option): Update to use new_pending_directive.
12796
12797 2000-03-11  Neil Booth  <NeilB@earthling.net>
12798
12799         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12800         remap_filename, _cpp_read_include_file, actual_directory,
12801         hack_vms_include_specification): Replace bcopy(), index() etc
12802         calls.  Add casts to some allocations.  Make some variables
12803         pointers to const [unsigned] char.
12804         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12805         collect_formal_parameters): Similarly.
12806         * cppinit.c (struct pending_option, append_include_chain,
12807         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12808         cpp_start_read, new_pending_define, handle_option): Similarly.
12809         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12810         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12811         do_pragma_implementation, detect_if_not_defined,
12812         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12813         do_assert, do_unassert): Similarly.
12814         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12815         function prototypes.
12816         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12817
12818 2000-03-10  Richard Henderson  <rth@cygnus.com>
12819
12820         * builtins.c (expand_builtin_strlen): Revert last change.
12821         Use emit_insn_before if we're at the beginning of a sequence.
12822
12823 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12824
12825         * builtins.c (expand_builtin_strlen): Make sure that we have something
12826         at the beginning of the sequence.
12827
12828         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12829         deferred inlines.
12830
12831         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12832
12833 2000-03-10  Richard Henderson  <rth@cygnus.com>
12834
12835         * except.c (can_throw): Use INTVAL on a CONST_INT.
12836         (reachable_handlers): Likewise.
12837         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12838
12839 2000-03-10  Andreas Jaeger  <aj@suse.de>
12840
12841         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12842         MD_STARTFILE_PREFIX since those are not needed on linux.
12843         (ASM_FILE_START): New, from mips/gnu.h.
12844
12845 2000-03-09  Richard Henderson  <rth@cygnus.com>
12846             Alex Samuel  <samuel@codesourcery.com> and others
12847
12848         * Makefile.in (ssa.o): New rule.
12849         (OBJS): Add ssa.o.
12850         (STAGESTUFF): Add *.ssa and *.ussa.
12851         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12852         * rtl.def (PHI): New RTL expression.
12853         * rtl.h (clear_log_links): New declaration.
12854         (convert_to_ssa): Likewise.
12855         (convert_from_ssa): Likewise.
12856         * flow.c (split_edge): If the entry node falls through to the
12857         split edge's source block, split the entry edge.
12858         (clear_log_links): New function.
12859         * toplev.c (ssa_dump): New variable.
12860         (flag_ssa): Likewise.
12861         (f_options): Add "ssa".
12862         (compile_file): Create SSA dump files.
12863         (rest_of_compilation): Go to and from SSA if enabled.
12864         (decide_d_option): Handle -de for SSA dump files.
12865         * ssa.c: New file.
12866
12867 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12868
12869         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12870         same as VAR_DECL.
12871
12872 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12873
12874         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12875
12876 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12877
12878         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12879         (MD_STARTFILE_PREFIX_1): New macro.
12880
12881 2000-03-09  Robert Lipe  <robertl@sco.com>
12882
12883         * config/ia64/ia64.c: Include system.h.
12884
12885 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12886
12887         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12888         (init_eh_nesting_info): Likewise.
12889
12890         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12891         (TREE_NOTHROW): Rename from TREE_RAISES.
12892         * toplev.c (rest_of_compilation): Set it.
12893         * print-tree.c (print_node): Adjust.
12894         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12895         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12896         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12897         REG_EH_REGION note as appropriate.
12898         (libfunc_nothrow): New fn.
12899         (emit_library_call, emit_library_call_value): Use it.
12900         (expand_call): Check TREE_NOTHROW.
12901
12902         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12903         DECL_ASSEMBLER_NAME.
12904
12905 2000-03-09  Andreas Jaeger  <aj@suse.de>
12906
12907         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12908         (TARGET_MEM_FUNCTIONS): Define.
12909
12910 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12911
12912         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12913
12914         * except.c (can_throw): See through a SEQUENCE.
12915         (nothrow_function_p): New fn.
12916         * except.h: Declare it.
12917         * function.c (current_function_nothrow): New var.
12918         (prepare_function_start): Initialize it.
12919         * output.h: Declare it.
12920         * toplev.c (rest_of_compilation): Set it.
12921         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12922
12923 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12924
12925         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12926         match.  (cpp_compare_defs): Count the nul separator when
12927         advancing over argument names.
12928
12929 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12930
12931         * recog.c (preprocess_constraints): Matching constraints affect
12932         same alternative/different operand, not same operand/different
12933         alternative.
12934
12935         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12936         register and a constant specially.
12937
12938 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12939
12940         * libgcc2.h: New file.
12941         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12942
12943 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12944
12945         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12946         * configure: Regenerate.
12947         * config/ia64: New.
12948
12949 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12950
12951         * Makefile.in (LIBCPP_DEPS): New macro.
12952         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12953         it to declare deps.
12954         * cpperror.c: Include cpphash.h.
12955         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12956         dingleberry.
12957         (lex): Don't use CPP_WARN_UNDEF.
12958         (_cpp_parse_expr): Return an int, the truth value.
12959         * cppfiles.c: Include cpphash.h.
12960         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12961         * cppinit.c (include_defaults_array): Disentangle.
12962         (cpp_cleanup): Don't free the if stack here.
12963         (cpp_finish): Pop off all buffers, not just one.
12964         * cpplib.c (eval_if_expr): Return int.
12965         (do_xifdef): Rename do_ifdef.
12966         (handle_directive): Don't use CPP_PREPROCESSED.
12967         (cpp_get_token): Don't use CPP_C89.
12968         * fix-header.c: Don't use CPP_OPTIONS.
12969
12970         * cpplib.h: Move U_CHAR, enum node_type, struct
12971         file_name_list, struct ihash, is_idchar, is_idstart,
12972         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12973         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12974         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12975         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12976         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12977         of _cpp_simplify_pathname, _cpp_find_include_file,
12978         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12979         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12980         cppinit.c.
12981         Change all uses of U_CHAR to be unsigned char instead.
12982         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12983
12984 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12985
12986         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12987         (dwarf2out_begin_prologue): Set it.
12988         (output_call_frame_info): Don't emit EH unwind info for leaves.
12989
12990         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12991         can occur outside of an EH region.
12992         * except.c: Correct comments about rethrow behavior.
12993         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12994
12995 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12996
12997         * flow.c (make_edges): Always call make_eh_edge for calls.
12998
12999 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
13000
13001         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
13002         (struct cpp_buffer): Remove fname and underflow fields.
13003         (struct cpp_reader): Remove get_token field.
13004         (struct include_hash): Rename to struct ihash.  Add typedef to
13005         IHASH.
13006         (struct if_stack): Remove fname field.
13007         (IF_STACK_FRAME): Rename to IF_STACK.
13008
13009         * cpperror.c (print_containing_files): Trust that there are no
13010         macro buffers below the top file buffer.
13011         * cppfiles.c: Replace all references to 'struct include_hash'
13012         with 'IHASH'.  Rename initialize_input_buffer to
13013         init_input_buffer.  Don't set or reference cpp_buffer->fname,
13014         use buffer->ihash->name instead.
13015         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
13016         not CPP_NULL_BUFFER.
13017         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
13018         IF_STACK_FRAME, IHASH not struct include_hash.
13019         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
13020         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
13021         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
13022         references to cpp_buffer->fname (delete entirely, or use
13023         ->ihash->name instead) and IF_STACK->fname.
13024         (cpp_push_buffer): Don't set new->underflow.
13025         (do_include): Use cpp_file_buffer.
13026
13027         * cpphash.c (collect_formal_parameters): Remove duplicate
13028         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
13029         used as a macro argument name.  Don't append "..." to namebuf
13030         for varargs macros.  After we're done scanning, go through
13031         namebuf and make it NUL separated, not comma separated.
13032         (_cpp_compare_defs): Remove register tag from variables.
13033         Expect defn->argnames to be NUL separated.
13034         (_cpp_dump_definition): Expect defn->argnames to be NUL
13035         separated and in forward order.
13036         * cpphash.h: Update documentation of argnames field.
13037
13038 2000-03-08  Richard Henderson  <rth@cygnus.com>
13039
13040         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
13041         to fail.  Don't pre-expand the source operand.
13042
13043         * i386.md (strlensi): Initialize eoschar and align before use.
13044
13045 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
13046
13047         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
13048         CONSTRUCTOR element.
13049
13050 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
13051
13052         * mips.c (mips_expand_prologue): If the last
13053         named argument is the vararg marker "va_list", treat it as
13054         an unnamed argument.
13055
13056 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
13057
13058         * dbxout.c (dbxout_parms): When correcting for promoted
13059         big-endian parameters, use the mode of the DECL_RTL rather
13060         than UNITS_PER_WORD.
13061
13062 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
13063
13064         * c-common.h (make_fname_decl): Declare.
13065         * c-common.c (make_fname_decl): Define.
13066         (declare_hidden_char_array): Remove.
13067         (declare_function_name): Use make_fname_decl.
13068         * c-decl.c (c_make_fname_decl): New function.
13069         (init_decl_processing): Set make_fname_decl.
13070
13071 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
13072
13073         * cccp.c (handle_directive): Initialize backslash_newlines_p.
13074
13075 2000-03-07  Philipp Thomas  <pthomas@suse.de>
13076
13077         * po/POTFILES.in: Remove cppalloc.c from file list.
13078
13079 2000-03-07  Steve Chamberlain  <sac@pobox.com>
13080
13081         * pj.c (pj_expand_prologue): current_function->args_info is
13082         now current_function_args_info.
13083
13084         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
13085         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
13086         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
13087
13088 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13089
13090         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
13091         output as hexadecimal rather than the default octal.
13092
13093 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13094
13095         * cpphash.c (special_symbol): Fix thinko in previous commit.
13096
13097 2000-03-07  Neil Booth  <NeilB@earthling.net>
13098
13099         * cppexp.c (struct operation, left_shift, right_shift,
13100         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
13101         "int"s to "unsigned int"s.
13102         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
13103         Similarly.
13104         * cpplib.h: Update for above.
13105         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
13106         returned from allocations.
13107
13108         * cppinit.c (opt_comp, parse_options): New functions.
13109         (handle_option): Use parse_option to parse a single command
13110         line option, that possibly takes an argument.
13111         (cpp_handle_options): Sort the array of command line options on
13112         first invocation (non-ASCII hosts only).
13113         (print_help): Update.
13114
13115 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
13116
13117         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
13118         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
13119
13120         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
13121         initialized.
13122         * cppinit.c (cpp_cleanup): Free imp->nshort also.
13123
13124         * cpperror.c (cpp_print_containing_files,
13125         cpp_print_file_and_line, v_cpp_message): Rename to
13126         print_containing_files, print_file_and_line, and v_message.
13127         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
13128         to _cpp_parse_expr, parse_escape, and lex.
13129         (parse_charconst): Remove broken multibyte support.
13130         * cppfiles.c (include_hash): Make static.
13131         (cpp_included): New function.
13132         (merge_include_chains, find_include_file, finclude,
13133         simplify_pathname): Rename to _cpp_merge_include_chains,
13134         _cpp_find_include_file, _cpp_read_include_file, and
13135         _cpp_simplify_pathname.
13136         * cpphash.c (cpp_lookup, free_definition, delete_macro,
13137         cpp_install, create_definition, macroexpand, compare_defs,
13138         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
13139         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
13140         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
13141         * cppinit.c (cpp_handle_option): Rename to handle_option, make
13142         static.
13143         * cpplib.c: Remove extern prototype of cpp_parse_expr.
13144
13145         * cpphash.h: Update prototypes.
13146         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
13147
13148 2000-03-07  Andrew Haley  <aph@cygnus.com>
13149
13150         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
13151         PTRDIFF_TYPE should be based solely on Pmode.
13152         (SIZE_TYPE): ditto.
13153
13154 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13155
13156         * rtl.h (rtunion_def): Constify member `rtstr'.
13157         (emit_line_note_after, emit_line_note, emit_line_note_force,
13158         emit_note, decode_asm_operands): Constify.
13159
13160         * cse.c (canon_hash): Likewise.
13161
13162         * dbxout.c (dbxout_block): Likewise.
13163
13164         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
13165         v_warning_for_asm): Likewise.
13166
13167         * dwarfout.c (function_start_label): Likewise.
13168
13169         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
13170         emit_line_note_force): Likewise.
13171
13172         * final.c (last_filename, asm_insn_count, final_scan_insn,
13173         output_source_line): Likewise.
13174
13175         * function.h (struct emit_status): Likewise.
13176
13177         * gcse.c (hash_expr_1): Likewise.
13178
13179         * genattr.c (gen_attr, main): Likewise.
13180
13181         * genattrtab.c (struct function_unit, current_alternative_string,
13182         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
13183         attr_numeral, check_attr_test, check_attr_value,
13184         convert_set_attr_alternative, convert_set_attr,
13185         compute_alternative_mask, simplify_by_exploding, gen_attr,
13186         gen_unit): Likewise.
13187
13188         * genflags.c (gen_insn): Likewise.
13189
13190         * gengenrtl.c (type_from_format): Likewise.
13191
13192         * genopinit.c (gen_insn): Likewise.
13193
13194         * genoutput.c (n_occurrences, process_template, process_template):
13195         Likewise.
13196
13197         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13198         Likewise.
13199
13200         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
13201         Likewise.
13202
13203         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
13204         ggc_set_mark, ggc_get_size): Likewise.
13205
13206         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
13207
13208         * optabs.c (init_one_libfunc): Likewise.
13209
13210         * output.h (assemble_start_function): Likewise.
13211
13212         * recog.c (decode_asm_operands): Likewise.
13213
13214         * toplev.c (rest_of_compilation): Likewise.
13215
13216         * tree.h (emit_line_note_after, emit_line_note,
13217         emit_line_note_force): Likewise.
13218
13219         * varasm.c (asm_output_bss, asm_output_aligned_bss,
13220         asm_emit_uninitialised, assemble_start_function,
13221         assemble_variable, const_hash, compare_constant_1,
13222         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
13223
13224         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
13225
13226         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
13227
13228         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
13229
13230         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
13231
13232         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
13233         arm_dllimport_name_p): Likewise.
13234
13235         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
13236         Likewise.
13237
13238         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
13239
13240         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13241
13242         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
13243         arm_mark_dllexport, arm_mark_dllimport,
13244         arm_pe_encode_section_info): Likewise.
13245
13246         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
13247         ASM_FINISH_DECLARE_OBJECT): Likewise.
13248
13249         * arm/thumb.c (thumb_function_prologue): Likewise.
13250
13251         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
13252
13253         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13254
13255         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
13256
13257         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
13258
13259         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
13260
13261         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13262
13263         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
13264         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
13265
13266         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
13267
13268         * i386/i386.c (asm_output_function_prefix): Likewise.
13269
13270         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
13271
13272         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13273
13274         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
13275
13276         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
13277         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
13278         ASM_OUTPUT_SECTION_NAME): Likewise.
13279
13280         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
13281
13282         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
13283
13284         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
13285
13286         * m32r/m32r.c (m32r_encode_section_info): Likewise.
13287
13288         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13289
13290         * mcore/mcore.c (mcore_encode_section_info): Likewise.
13291
13292         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13293
13294         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13295
13296         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13297
13298         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
13299
13300         * mips/mips.md (movdi, movsi): Likewise.
13301
13302         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13303
13304         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13305
13306         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
13307
13308         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
13309         ASM_OUTPUT_ASCII): Likewise.
13310
13311         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
13312         output_mi_thunk, output_toc): Likewise.
13313
13314         * rs6000/rs6000.md (movsi): Likewise.
13315
13316         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
13317
13318         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
13319
13320         * v850/v850.c (print_operand, print_operand_address,
13321         v850_encode_data_area): Likewise.
13322
13323 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
13324
13325         * config/mips/mips.md (zero_extendsidi2): Always force operand
13326         one to memory for mips16.
13327
13328 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13329
13330         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
13331         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
13332         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
13333         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
13334         (min_precision): Result is unsigned.
13335         (add_double, neg_double, mul_double): Low word is unsigned.
13336         (lshift_double, rshift_double, lrotate_double): Likewise.
13337         (rrotate_double, div_and_round_double): Likewise.
13338         (tree_floor_log2, compare_tree_int): New functions.
13339         (preserve_rtl_expr_temps): New declaration.
13340         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
13341         (decl_attributes): Use tree_log2 to find alignment.
13342         Check for TREE_INT_CST_HIGH for format args.
13343         (min_precision): Now unsigned.
13344         Use tree_floor_log2.
13345         (truthvalue_conversion): Delete long-disabled code.
13346         * c-decl.c (finish_struct): Clean up tests on field width.
13347         (finish_function): Use compare_tree_int.
13348         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
13349         * c-typeck.c (comptypes): Use tree_int_cst_equal.
13350         (default_conversion, digest_init): Use compare_tree_int.
13351         (build_binary_op): Use integer_all_onesp and compare_tree_int.
13352         Fix type errors in forming masks.
13353         * calls.c (initialize_argument_information): Use compare_tree_int.
13354         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13355         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
13356         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
13357         (store_field): Use compare_tree_int.
13358         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
13359         (expand_expr, case ARRAY_REF): Use compare_tree_int.
13360         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
13361         (do_store_flag): Use compare_tree_int.
13362         * fold-const.c (encode, decode): Low part is always unsigned.
13363         (force_fit_type, add_double, neg_double, mul_double): Likewise.
13364         (lshift_double, rshift_double, lrotate_double): Likewise.
13365         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
13366         (fold_convert): Use compare_tree_int.
13367         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
13368         (invert_truthvalue, case INTEGER_CST): Likewise.
13369         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
13370         * mkdeps.c (deps_dummy_targets): Make I unsigned.
13371         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
13372         (lshift_double, rshift_double, lrotate_double, rrotate_double):
13373         Likewise.
13374         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
13375         (expand_end_case): Use compare_tree_int.
13376         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13377         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
13378         (layout_decl): Likewise.
13379         (layout_record, layout_union): Make sizes unsigned.
13380         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
13381         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
13382         * tree.c (struct type_hash): hashcode is unsigned.
13383         (build_type_attribute_variant, type_hash_list): Likewise.
13384         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
13385         (attribute_hash_list, build_array_type, build_method_type): Likewise.
13386         (build_complex_type): Likewise.
13387         (real_value_from_int_cst): Remove unneeded casts.
13388         (integer_all_onesp): Add casts.
13389         (tree_floor_log2, compare_tree_int): New functions.
13390         (build_index_type): Use tree_int_cst_sgn.
13391         * varasm.c (assemble_variable): Use compare_tree_int.
13392
13393 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
13394
13395         * cpphash.c (collect_expansion): Also catch ## at start of macro.
13396
13397         * varasm.c (make_decl_rtl): Don't add a number to members of
13398         local classes.
13399         (make_function_rtl): Likewise.
13400
13401 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13402
13403         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
13404         patch from 2000-01-28.
13405
13406 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
13407
13408         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
13409         filled with an insn from the jump target.
13410
13411 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13412
13413         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
13414         (c4x_external_ref): Likewise.
13415         * config/c4x/c4x.c (struct name_list): Likewise.
13416
13417 1999-12-16  Ben Collins  <bcollins@debian.org>
13418
13419         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
13420         argument to genmultilib.
13421         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
13422         the contents into the multilib.h header.
13423         * gcc.c: Declare multilib_exclusions for the specs file.
13424         (set_multilib_dir): Use it.
13425         (print_multilib_info): Likewise.
13426         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
13427         to pass to genmultilib.
13428
13429 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13430
13431         * builtins.c (built_in_class_names, built_in_names): Constify a
13432         char*.
13433
13434         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
13435         int.
13436         (_mcleanup): Ensure value matches format specifier in sprintf.
13437
13438         * cpphash.c (special_symbol): Don't needlessly cast away
13439         const-ness.
13440
13441         * cppinit.c (base_name): Delete unused prototype.
13442
13443         * mkdeps.c (deps_init): Make definition K&R safe.
13444
13445         * tree.h (built_in_class_names, built_in_names): Constify a
13446         char*.
13447
13448 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13449
13450         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13451         floating point instructions for epilogue delay.
13452
13453         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13454         to gas if it supports .register pseudo.
13455
13456         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13457         LONG_DOUBLE_TYPE_SIZE if not defined.
13458         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13459         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13460         * real.c: Likewise.
13461         * gengenrtl.c: Likewise.
13462         * print-rtl.c: Likewise.
13463         * rtl.c: Likewise.
13464         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13465         MASK_LONG_DOUBLE_128.
13466         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13467         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13468         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13469         (SUBTARGET_SWITCHES): Define.
13470         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13471         with -mlong-double-128.
13472         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13473         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13474         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13475         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13476         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13477         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13478         with -mlong-double-128.
13479         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13480         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13481         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13482         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13483         TARGET_LONG_DOUBLE_128): Define.
13484         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13485         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13486         long double on TARGET_ARCH64.
13487
13488 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13489
13490         * function.c (free_temps_for_rtl_expr): Don't free slots
13491         that have been pushed into a higher level.
13492
13493         Revert this patch:
13494         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13495
13496 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13497
13498         * basic-block.h (ALLOCA_REG_SET): Remove.
13499         (INITIALIZE_REG_SET): New macro.
13500         * flow.c (update_life_info): Use it.
13501         (calculate_global_regs_live): Likewise.
13502         (propagate_block): Likewise.
13503         * global.c (build_insn_chain): Likewise.
13504         * haifa-sched.c (schedule_region): Likewise.
13505
13506 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13507
13508         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13509         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13510         (DWARF_ARANGES_PAD_SIZE): New define.
13511         (output_aranges): Use it to pad the address range header.
13512         (DWARF_ROUND): Fix for non power of 2 rounding.
13513
13514 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13515
13516         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13517
13518 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13519
13520         * tree.def (RTL_EXPR): Update documentation.
13521         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13522         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13523         * function.c (preserve_rtl_expr_temp): New function.
13524         (preserve_rtl_expr_temps): Likewise.
13525         (preserve_rtl_expr_result): Use it.
13526
13527         Revert this patch:
13528         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13529
13530 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13531
13532         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13533         for unchanging destination.
13534
13535 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13536
13537         * function.h (struct sequence_stack): Remove rtl_expr.
13538         (struct emit_staus): Likewise.
13539         (seq_rtl_expr): Remove.
13540         * tree.h (free_temps_for_rtl_expr): Don't declare.
13541         (start_sequence_for_rtl_expr): Likewise.
13542         * rtl.h (preserve_rtl_expr_result): Likewise.
13543         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13544         (start_sequence_for_rtl_expr): Remove.
13545         (push_topmost_sequence): Don't save sequence_rtl_expr.
13546         (pop_topmost_sequence): Remove comment about not restoring it.
13547         (end_sequence): Don't set seq_rtl_expr.
13548         (init_emit): Don't initialize it.
13549         (mark_sequence_stack): Don't mark it.
13550         (mark_emit_status): Likewise.
13551         * except.c (protect_with_terminate): Use
13552         start_sequence_for_rtl_expr, not start_sequence.
13553         * expr.c (expand_expr, case RTL_EXPR): Don't call
13554         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13555         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13556         (preserve_rtl_expr_result): Remove.
13557         (free_temps_for_rtl_expr): Likewise.
13558         (pop_temp_slots): Likewise.
13559         (mark_temp_slot): Don't mark the rtl_expr.
13560         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13561         start_sequence_for_rtl_expr.
13562
13563 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13564
13565         * mkdeps.c, mkdeps.h: New files.
13566         * po/POTFILES.in: Add them.
13567         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13568         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13569         (mkdeps.o): New target.
13570
13571         * cppfiles.c: Delete deps_output.
13572         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13573         OBJECT_SUFFIX, and base_name.
13574         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13575         the include hash.
13576         (initialize_dependency_output): Use deps_init,
13577         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13578         all the unnecessary string bashing.
13579         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13580         level.
13581         * cpplib.c (do_include): Use deps_add_dep.
13582         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13583         deps_allocated_size, deps_size, deps_column members with
13584         single pointer to a struct deps.  Delete prototype of
13585         deps_output.
13586
13587         * cppinit.c: Fix thinko in previous patch.
13588
13589 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13590
13591         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13592         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13593         (mode_for_size_tree): New function.
13594         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13595         * tree.h (mode_for_size_tree): New declaration.
13596
13597         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13598
13599 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13600
13601         * stmt.c (is_body_block): Move...
13602         * dwarfout.c, dwarf2out.c: ...from here.
13603         * tree.h: Declare it.
13604         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13605         * final.c (final_start_function): Do call remove_unnecessary_notes
13606         when scheduling.
13607
13608 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13609
13610         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13611
13612         * cpplib.h (_dollar_ok): New macro.
13613         (is_idchar, is_idstart): Use it.
13614         (IStable): Rename to _cpp_IStable.  Declare it const if
13615         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13616         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13617         is_space): Update for renamed IStable.
13618
13619         * cppinit.c: Delete all references to FAKE_CONST and CAT
13620         macros. Define init_IStable as empty macro if gcc >=2.7 or
13621         C99. Change TABLE() to ISTABLE and hardcode name of table.
13622         (cpp_start_read): Don't change the IStable based on
13623         dollars_in_ident.
13624
13625         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13626         changed.  Handle '$' for char1 correctly.
13627         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13628
13629         * cppexp.c (tokentab2): Make const.
13630         (cpp_lex): Make toktab const.
13631         * cppinit.c (include_defaults_array): Make const.
13632         (initialize_standard_includes): Make default_include const.
13633
13634 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13635
13636         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13637         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13638         (gen_decl_die): Likewise.
13639         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13640         (output_decl): Likewise.
13641
13642         * varasm.c (make_function_rtl): If we change the name used in the
13643         rtl, update DECL_ASSEMBLER_NAME accordingly.
13644         (make_decl_rtl): Likewise.
13645
13646         * toplev.c (rest_of_compilation): Tweak formatting.
13647
13648         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13649         remove_unnecessary_notes.
13650         (debug_ignore_block): New fn.
13651         * toplev.h: Declare it.
13652         * emit-rtl.c (remove_unncessary_notes): Call it.
13653         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13654         * dwarf2out.h: Declare it.
13655         * final.c (final_start_function): Don't call remove_unnecessary_notes
13656         if we did insn scheduling.
13657
13658 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13659
13660         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13661         * cpplib.h: Delete SET_CPP_PEDANTIC.
13662
13663 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13664
13665         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13666         result is a RECORD_TYPE.
13667
13668 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13669
13670         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13671
13672 2000-03-03  Richard Henderson  <rth@cygnus.com>
13673
13674         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13675         addition over compliments over shifts.
13676
13677 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13678
13679         * reload1.c (reload_combine_note_use): Handle return register USEs.
13680         REG case: Handle multi-hard-register hard regs.
13681
13682 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13683
13684         * md.texi: Document use of '*' in insn pattern name.
13685
13686 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13687
13688         * calls.c (special_function_p): operator new may not be malloc-like.
13689
13690         * gcse.c (dump_hash_table): Really fix error in last change.
13691
13692 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13693
13694         * avr.c (print_operand): Use print_operand_address instead of
13695         output_addr_const.
13696         * avr/libgcc.S: Cleanup code.
13697
13698 2000-03-02  Richard Henderson  <rth@cygnus.com>
13699
13700         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13701
13702 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13703
13704         * tree.h (TYPE_ALIGN_UNIT): New macro.
13705
13706 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13707
13708         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13709
13710 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13711
13712         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13713         for the buffer.
13714         (SET_CPP_PEDANTIC): New macro.
13715         * cpplib.c (do_include): Don't bother checking system_header_p.
13716         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13717         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13718
13719         * function.h (struct expr_status): Add x_arg_space_so_far.
13720         (arg_space_so_far): New macro.
13721         * expr.c (init_expr): Initialize it.
13722         * calls.c (emit_call_1): Reset it.
13723         (compute_argument_block_size, expand_call): Use it.
13724         (expand_call, store_one_arg): Increment it.
13725
13726 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13727
13728         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13729         a UNION_TYPE.
13730
13731 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13732
13733         * cppfiles.c (cpp_read_file): New function.
13734
13735         * cpphash.c (collect_expansion): Make sure to reset last_token
13736         to NORM when we hit a string.  Handle trailing whitespace
13737         properly when the expansion is empty.
13738         (create_definition): Disable line commands while parsing the
13739         directive line.
13740         (dump_definition): If pfile->lineno == 0, output a line
13741         command ahead of the dump, and add a trailing newline.
13742
13743         * cppinit.c (append_include_chain): Add fifth argument, which
13744         indicates whether or not system headers are C++ aware.
13745         (initialize_standard_includes): New function,
13746         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13747         the include_defaults_array on to append_include_chain.
13748         (dump_special_to_buffer): Const-ify char array.
13749         (builtin_array): Don't dump __BASE_FILE__.
13750         (cpp_start_read): Use cpp_read_file.  Reorder code for
13751         clarity.  Don't output line commands here for -D/-A/-U
13752         switches.  Don't call deps_output for files included with
13753         -include or -imacros.
13754
13755         * cpplib.c (do_define): Don't pay any attention to the second
13756         argument.
13757         (cpp_expand_to_buffer): Disable line commands while scanning.
13758         (output_line_command): Work in the file buffer.
13759         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13760         Fix formatting of comments.  Prototype cpp_read_file.
13761
13762 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13763
13764         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13765         reference the language-equivalent of sizetype.
13766         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13767         * fold-const.c (size_binop, size_diffop): Put back checks.
13768         * gcse.c (dump_hash_table): Fix minor error in last change.
13769         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13770         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13771         all sizetypes.
13772
13773 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13774
13775         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13776         with inhibit_defer_pop set.
13777
13778 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13779
13780         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13781         the DECL_SIZE for a FIELD_DECL.
13782
13783 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13784
13785         * fixinc/inclhack.tpl: remove unused symlinks
13786         * fixinc/README: GCC Maintainer info
13787         * fixinc/inclhack.sh: regen
13788         * fixinc/fixincl.sh: regen
13789
13790 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13791
13792         * cpphash.c (collect_expansion): Trim trailing white space
13793         from macro definitions, but don't go past the last insertion
13794         point.
13795
13796 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13797
13798         * i386.md (mulqi3): New pattern.
13799
13800 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13801
13802         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13803         token types.
13804         (struct cpp_reader): Add parsing_if_directive and
13805         parsing_define_directive flags.
13806         (struct cpp_options): Remove output_conditionals flag.
13807         (check_macro_name): Delete prototype.
13808
13809         * cpphash.h (struct macrodef): Delete.
13810         (struct reflist): Separate from struct definition.
13811         (struct definition): Remove unused fields.  Add column number.
13812         (create_definition): Returns a DEFINITION *.  Takes a
13813         cpp_reader * and an int.
13814
13815         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13816         (PEEKC): Copy defn from cpplib.c.
13817         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13818         (struct arg): New.
13819         (struct arglist): Simplify.
13820         (collect_expansion): Rewrite.  Get tokens by calling
13821         cpp_get_token.  Add more error checking.
13822         (collect_formal_parameters): New function, broken out of
13823         create_definition and reworked to use get_directive_token.
13824         (create_definition): All real work is now in collect_expansion
13825         and collect_formal_parameters.  do_define handles finding the
13826         macro name.  Return a DEFINITION, not a MACRODEF.
13827         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13828         character-at-a-time copy loop with memcpy and pointer increments.
13829         (compare-defs): d1->argnames / d2->argnames might be null.
13830
13831         * cpplib.c (copy_rest_of_line): Delete function.
13832         (skip_rest_of_line): Do all the work ourselves.
13833         (skip_string): New function.
13834         (parse_string): Use skip_string.
13835         (get_macro_name): New function.
13836         (check_macro_name): Delete.
13837         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13838         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13839         (handle_directive): ICE if we're called on a macro buffer.
13840         (do_define): Determine macro name and type (funlike/objlike)
13841         here.  Expunge all uses of MACRODEF.
13842         (cpp_push_buffer): Set line_base to NULL.
13843         (do_undef, read_line_number): Don't worry about getting a POP token.
13844         (eval_if_expression): Set/reset parsing_if_directive around
13845         cpp_parse_expr. Don't clear only_seen_white.
13846         (skip_if_group): Remove output_conditionals logic.  Use
13847         skip_rest_of_line.
13848         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13849         tokens under appropriate conditions.
13850         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13851
13852         * cppexp.c (parse_defined): New function, break out of
13853         cpp_lex.
13854         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13855         ourselves, with cpp_defined.
13856         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13857
13858         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13859         * gcc.dg/strpaste-2.c: New.
13860
13861 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13862
13863         * fold-const.c (size_binop): Don't asert inputs are the same and
13864         have TYPE_IS_SIZETYPE set.
13865         (size_diffop): Likewise.
13866
13867 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13868
13869         * dwarfout.c (output_block): Output abstract blocks even if they
13870         don't have TREE_ASM_WRITTEN set.
13871
13872         * calls.c (emit_library_call): Check for null REG.
13873
13874 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13875
13876         * c-decl.c (current_function_decl): Move to toplev.c.
13877         (init_decl_processing): Don't add current_function_decl as a ggc
13878         root here.
13879         * dbxout.c (dbxout_symbol): Change return type to int.
13880         (dbxout_symbol_location, dbxout_syms): Likewise.
13881         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13882         any locals. Use current_function_func_begin_label if set.
13883         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13884         * dwarf2out.c (dwarf2out_begin_prologue): Set
13885         current_function_func_begin_label.
13886         * final.c (final_start_function): Reset it.
13887         * toplev.c (current_function_decl): Define it here.
13888         (current_function_func_begin_label): New variable.
13889         (main): Add both as ggc roots.
13890         * tree.h (current_function_func_begin_label): Declare.
13891
13892 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13893
13894         * gcse.c: Cleanups throughout: mostly white-space, but also
13895         some minor rearrangement of code.
13896
13897 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13898
13899         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13900         returns a PARALLEL.  Use emit_group_load and use_group_regs
13901         as needed.
13902         (emit_library_call_value): Similarly.
13903
13904         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13905         * pa/quadlib.asm: Remove.
13906         * pa/quadlib.c: New file.
13907
13908         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13909         * configure: Rebuilt.
13910
13911 2000-02-29  Philip Blundell  <pb@futuretv.com>
13912
13913         * config/arm/conix-elf.h: New file.
13914         * configure.in (arm*-*-conix*): New configuration.
13915         * configure: Regenerate.
13916
13917 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13918
13919         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13920         don't have TREE_ASM_WRITTEN set.
13921
13922 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13923
13924         * Eliminate DECL_FIELD_SIZE.
13925         * builtins.c (built_in_class_names, built_in_names): New variables.
13926         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13927         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13928         DECL_SIZE, not DECL_FIELD_SIZE.
13929         * print-tree.c (print_node): Remove code that prints extra blank
13930         lines in some cases.
13931         Properly handle inline and builtin function cases.
13932         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13933         * tree.h (built_in_class_named, built_in_names): New declarations.
13934         (union tree_decl): Rename internal unions to u1 and u2 and change
13935         some of their components.
13936         Add new field built_in_class.
13937         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13938         Reflect above changes.
13939         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13940         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13941         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13942         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13943
13944 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13945
13946         * extend.texi: Document ARM's support for long/short calls.
13947
13948         * invoke.texi: Document ARM's -mlong-calls command line switch.
13949
13950         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13951         (arm_encode_call_attribute): Add prototype.
13952         (arm_set_default_type_attribute): Add prototype.
13953         (arm_strip_name_encoding): Add prototype.
13954
13955         * config/arm/arm.c (arm_init_cumulative_args): replace
13956         initialisation og 'long_calls' field with initialisation of
13957         'call_cookie' field.
13958         (enum arm_pragma_enum): New enum.
13959         (arm_pragma_long_calls): New static variable.
13960         (arm_process_pragma): Also process "#pragma long_calls_off".
13961         (arm_valid_type_attribute_p): Accept short_call attribute.
13962         (arm_comp_type_attributes): Check long/short call attributes.
13963         (arm_encode_call_attribute):  New function:  Encode long_call
13964         or short_call attribute in function name.
13965         (arm_set_default_type_attributes): New function: Assign
13966         default attributes to newly defined type.
13967         (current_file_function_operand): New function: Return true if
13968         the symbol is a function which has already been compiled.
13969         (arm_is_longcall_p): New function: Return true if the
13970         indicated function should be called via a long call.
13971         (arm_get_strip_length): New function.  Returns number of
13972         prefix characters to be stripped from a function's name.
13973         (arm_strip_name_encoding): New function.  Strip prefix characters
13974         from a function's name.
13975
13976         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13977         with 'call_cookie'.
13978         (SHORT_CALL_FAG_CHAR): Define.
13979         (LONG_CALL_FAG_CHAR): Define.
13980         (ENCODED_SHORT_CALL_ATTR_P): Define.
13981         (ENCODED_LONG_CALL_ATTR_P): Define.
13982         (ARM_NAME_ENCODING_LENGTHS): Define.
13983         (STRIP_NAME_ENCODING): Define.
13984         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13985         (ARM_ENCODE_CALL_TYPE): Define.
13986         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13987         (ARM_DECLARE_FUNCTION_SIZE): Define.
13988         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13989
13990         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13991         if a long call is needed.
13992         (call_value): Ditto.
13993         (call_symbol): Ditto.
13994
13995         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13996         ARM_DECLARE_FUNCTION_SIZE.
13997
13998         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13999         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
14000         (ARM_STRIP_NAME_ENCODING): Undefine.
14001         (STRIP_NAME_ENCODING): Undefine.
14002         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
14003         (ASM_DECLARE_FUNCTION_NAME): Ditto.
14004         (ASM_OUTPUT_COMMON): Ditto.
14005         (ASM_DECLARE_OBJECT_NAME): Ditto.
14006
14007         * config/arm/pe.c (arm_dllexport_name_p): Check for
14008         ARM_PE_FLAG_CHAR.
14009         (arm_dllimport_name_p): Ditto.
14010         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
14011         (arm_mark_dllimport): Ditto.
14012
14013 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14014
14015         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
14016
14017 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
14018
14019         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
14020
14021 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
14022
14023         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
14024         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
14025         NO_BUILTIN_WCHAR_TYPE is not defined.
14026         (CPP_WCHAR_TYPE): Delete.
14027         * cccp.c (main): Don't change wchar_type if cplusplus.
14028         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
14029
14030 2000-02-28  Nick Clifton  <nickc@cygnus.com>
14031
14032         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
14033
14034 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
14035
14036         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
14037         (ASM_WEAKEN_LABEL): Define.
14038
14039 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
14040
14041         * expr.c (store_constructor): Do not emit USE.
14042         * rtl.h (stupid_life_analysis): Remove.
14043
14044 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14045
14046         * function.c (number_blocks): Reset next_block_index based on
14047         what debugging format is used, not what is defined.
14048
14049         * lcm.c: Minor reformatting throughout.
14050         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
14051
14052         * toplev.c (rest_of_compilation): Account for time in
14053         optimize_mode_switching.
14054
14055         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
14056         if only marking labels.
14057
14058 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
14059
14060         * calls.c (expand_call): Attempt to combine stack adjustments with
14061         pending stack adjustments.
14062
14063 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14064
14065         * loop.c (reg_in_basic_block_p): Don't abort when falling through
14066         to the end of the function.
14067
14068 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
14069
14070         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
14071         blocks.
14072         * final.c (next_block_index): Remove.
14073         (max_block_depth): Likewise.
14074         (pending_blocks): Likewise.
14075         (init_final): Don't initialize them.
14076         (final_start_function): Don't set next_block_index.  Set up
14077         BLOCK_NUMBER.
14078         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
14079         * function.h (number_blocks): New function.
14080         * function.c (get_block_vector): New function.
14081         (identify_blocks): Use it.
14082         (reorder_blocks): Set NOTE_BLOCK.
14083         (number_blocks): New function.
14084         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
14085         * tree.h (BLOCK_NUMBER): New macro.
14086         (tree_block): Add block_num field.
14087         * dbxout.c (next_block_number): Remove.
14088         (dbxout_init): Don't set it.
14089         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
14090         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
14091         block numbers.
14092         * toplev.c (rest_of_compilation): Always call
14093         find_loop_tree_blocks.  Fix indentation.
14094         * dwarf2out.c (next_block_number): Remove.
14095         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14096         to determine block numbers.
14097         (gen_inlined_subroutine_die): Likewise.
14098         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
14099         (decls_for_scope): Don't increment next_block_number.
14100         * dwarfout.c (next_block_number): Remove.
14101         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
14102         to determine block numbers.
14103         (output_inlined_subroutine_die): Likewise.
14104         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
14105         (output_decls_for_scope): Don't increment next_block_number.
14106         * sdbout.c (next_block_number): Remove.
14107         (sdbout_block): Use BLOCK_NUMBER.
14108         (sdbout_begin_block): Simplify.
14109         * xcoffout.c (next_block_number): Remove.
14110         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
14111         (xcoffout_begin_block): Don't set next_block_number.
14112         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
14113         next_block_number.
14114
14115 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14116
14117         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
14118         (expand_builtin_strcpy): Pass correct type to size_binop.
14119         (expand_builtin_strcmp): Likewise.
14120         Clean up conditional structure.
14121         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
14122         (complete_array_type): Don't use size_binop for MAXINDEX.
14123         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
14124         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
14125         (c_alignof): Use size_one_node.
14126         (build_unary_op): Pass arg of proper type to size_binop.
14127         (really_start_incremental_init, push_init_level): Use sizetype for
14128         constructor{,_bit,_unfilled}_index.
14129         (pop_init_label, output_init_element): Likewise.
14130         (output_pending_init_elements, process_init_element): Likewise.
14131         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
14132         * expr.c (store_expr): Use size_int.
14133         (store_constructor): Use proper types for size_binop args.
14134         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
14135         (expand_expr_unaligned): Likewise.
14136         (string_contant): Return object of sizetype.
14137         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
14138         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
14139         (ARGS_SIZE_TREE): Pass proper types to size_binop.
14140         * fold-const.c (int_const_binop): Refine when size_int is called.
14141         (fold_convert): Likewise.
14142         (size_int_wide): Rework to take KIND as arg, only take low order
14143         bits, handle new sizetype_tab datatype, and chain entries in
14144         size_table.
14145         (size_int_type_wide): New function.
14146         (size_binop): Validate types of arguments.
14147         (ssize_binop): Deleted.
14148         (size_diffop): New function.
14149         (extract_muldiv): Only fold division into multiplication for sizetypes.
14150         * function.c (assign_parms): Use size_diffop and make sure
14151         VAR field is of ssizetype; also pass proper type to size_binop.
14152         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
14153         (round_down): Deleted from here.
14154         * store-layout.c (sizetype_tab): Now an array.
14155         (sizetype_set, early_root_list): New variables.
14156         (variable_size): Use size_one_node.
14157         (round_up): Pass proper type to size_binop.
14158         (round_down): Moved to here and corrected as above.
14159         (layout_record): Pass proper arg types to size_binop.
14160         (layout_type): Likewise.
14161         If sizetype_set is zero, record the type just laid out.
14162         (make_unsigned_type): Don't call set_sizetype;
14163         (make_signed_type): Likewise; also, call fixup_signed_type.
14164         (initialize_sizetypes): New function.
14165         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
14166         set name of bitsizetype to "bit_size_type".
14167         Fix up type of sizes of all types made before call.
14168         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
14169         * tree.c (fix_sizetype): Deleted.
14170         (build_common_tree_nodes): Call initialize_sizetypes.
14171         (build_common_tree_nodes_2): Don't call fix_sizetype.
14172         * tree.h (TYPE_IS_SIZETYPE): New macro.
14173         (initialize_sizetype): New declaration.
14174         (enum size_type_kind): New type.
14175         (struct sizetype_tab): Deleted.
14176         (sizetype_tab): Now array; adjust sizetype macros.
14177         (size_diffop, size_int_type_wide): New functions.
14178         (size_int_wide): Change number of args and type; access macros changed.
14179         (ssize_int, sbitsize_int): New macros.
14180         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
14181         (ROUND_TYPE_SIZE_UNIT): New macro.
14182
14183 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
14184
14185         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
14186
14187 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14188
14189         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
14190         Mark as possibly unused.
14191
14192         * cse.c (cse_insn): Delete dead code involving tablejump.
14193         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
14194
14195         * Makefile.in (libcpp.a): Start by deleting it.
14196
14197 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14198
14199         * cpplib.h (enum file_change_code): Added rename_file.
14200         * cpplib.c (do_line): If a filename is given, set file_change to
14201         rename_file.
14202         (output_line_command): If file_change is rename_file, always
14203         output a # directive with the file name.
14204
14205         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
14206
14207 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
14208
14209         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
14210         when copying a PARM_DECL or RESULT_DECL.
14211
14212 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14213
14214         * fix-header.c (recognized_function): Also fix prototypes for
14215         functions taking "void".
14216
14217 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14218
14219         * reload1.c (do_output_reload): Check reg_reloaded_valid before
14220         looking at reg_reloaded_contents.
14221
14222 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
14223
14224         * Makefile.in (STMP_FIXINC): New toggle.
14225         (LIBGCC2_DEPS): Delete all references.
14226         (stmp-headers): Delete target.  All references either deleted
14227         or changed to stmp-int-headers.
14228         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
14229         (LIBCPP_OBJS): Take out cppalloc.o.
14230         (cppalloc.o): Delete target.
14231         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
14232         (gen-protos, fix-header): Link with libiberty.a.
14233         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
14234         to empty.
14235
14236         * configure.in: Remove refs to strerror.
14237         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
14238         * system.h: Take out strerror stanza.
14239
14240         * cpperror.c (my_strerror): Delete function.
14241         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
14242         * cppmain.c (main): Call xmalloc_set_program_name first thing.
14243         * cppalloc.c: Delete file.
14244         * gen-protos.c: Don't provide xrealloc.
14245
14246         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
14247         xstrerror throughout.
14248
14249 2000-02-26  Bruce Korb  <bkorb@gnu.org>
14250
14251         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
14252         match for DOS headers, too.
14253         * fixinc/inclhack.sh,fixincl.x: Regenerate.
14254
14255 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
14256
14257         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
14258         is right for most ELF targets.
14259         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
14260         Let the default file use %U properly.
14261         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
14262         default.
14263
14264         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
14265         numbers.
14266
14267 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14268
14269         * toplev.c (documented_lang_options): Correct spelling error.
14270         (decode_d_option, decode_f_option, main): Likewise.
14271
14272         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
14273
14274         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
14275         to tell assembler it is permitted to expand large constants.
14276
14277 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
14278
14279         * protoize.c: (AUX_INFO_SUFFIX): New macro.
14280         (aux_info_suffix): Use.
14281         (SAVE_SUFFIX): New macro.
14282         (save_suffix): Use.
14283         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
14284         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
14285         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
14286
14287         * invoke.texi (Running Protoize): Update documentation.
14288
14289 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
14290
14291         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
14292
14293 2000-02-25  John Wehle  (john@feith.com)
14294
14295         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
14296
14297 2000-02-25  Anthony Green  <green@cygnus.com>
14298
14299         * toplev.c (rest_of_compilation): Rebuild jump labels if
14300         combine_instructions has created a new direct jump.
14301         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
14302         when appropriate.
14303         (combine_instructions): Call try_combine with new argument.
14304         Return non-null value when new direct jump instruction is created.
14305         * rtl.h: combine_instructions returns an int.
14306
14307 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
14308
14309         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
14310         jump when changing a computed jump into a jump to a known
14311         target.
14312
14313 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
14314
14315         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
14316         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
14317
14318         * i386.md (define_expand "clrstrsi"): Fix typo.
14319
14320 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
14321
14322         * rtl.texi: Fix typo.
14323
14324 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14325
14326         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
14327         UNITS_PER_WORD.  Change caller initial_elimination_offset.
14328         (rounded_frame_size): Take into account that argument pushed has
14329         changed.  Fix TARGET_ALIGN_DOUBLE problem.
14330
14331 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
14332
14333         * haifa-sched.c (schedule_block): Explain the real reason
14334         we delete REG_SAVE_NOTEs on the first insn of a block.
14335         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
14336
14337 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
14338
14339         * input.h (push_srcloc): New function.
14340         (pop_srcloc): Likewise.
14341         * toplev.c (push_srcloc): Define it.
14342         (pop_srcloc): Likewise.
14343
14344 2000-02-24  Richard Henderson  <rth@cygnus.com>
14345
14346         * flow.c (life_analysis): When collecting reg info, clear
14347         regs_ever_live.
14348
14349 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14350
14351         Fix bug exposed by reload.c no longer rounding the frame
14352         size to BIGGEST_ALIGNMENT:
14353         * sh.c (rounded_frame_size): New function.
14354         (sh_expand_prologue, sh_expand_epilogue): Use it.
14355         (initial_elimination_offset): Likewise.
14356
14357 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14358
14359         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
14360         * sh-protos.h (sh_need_epilogue): Declare.
14361         * sh.c (sh_need_epilogue_known): New static variable.
14362         (sh_need_epilogue): New function.
14363         (function_epilogue): Clear need_epilogue_known.
14364         * sh.md (return): Split into expander / insn pattern.
14365         Make the expander conditional on ! sh_need_epilogue ().
14366
14367 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
14368
14369         * machmode.h (get_mode_alignment): Declare.
14370         (GET_MODE_ALIGNMENT): Call it.
14371         * stor-layout.c (get_mode_alignment): New function. Make
14372         sure alignment is always power of 2.
14373
14374 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14375
14376         * i386.h: Remove useless definition of "I386" and misleading
14377         comment above it.
14378
14379 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14380
14381         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
14382         under which TREE_PERMANENT will be set.
14383         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
14384         build1): Use TREE_SET_PERMANENT.
14385         * print-tree.c (print_node): Don't report value of
14386         TREE_PERMANENT if ggc_p is true.
14387
14388         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
14389         decide whether to give a type a new alias set.
14390         * objc/objc-act.c (build_objc_string_object): Never copy the string.
14391         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
14392         of value of 'obstack'.
14393
14394
14395 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14396
14397         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
14398
14399 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14400
14401         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
14402         * cpplib.c (cpp_get_token): Produce them.
14403         * cppexp.c (cpp_lex): Handle them.
14404
14405 2000-02-23  Nick Clifton  <nickc@cygnus.com>
14406
14407         * config/arm/arm.c (arm_comp_type_attributes): Simply and
14408         comment tests on type attributes.
14409
14410 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14411
14412         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
14413         conform to documentation.
14414         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
14415         to check for special cases.
14416         * sh-protos.h (sh_loop_align): Declare.
14417         * sh.c (sh_loop_align): Define.
14418
14419 2000-02-22  Andrew Haley  <aph@cygnus.com>
14420
14421         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
14422         (SIZE_TYPE): Is 32 bits when using -mgp32.
14423         (PTRDIFF_TYPE): Ditto.
14424
14425 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14426
14427         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
14428
14429 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14430
14431         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
14432         BIGGEST_FIELD_ALIGNMENT a constant.
14433
14434 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
14435
14436         * dwarf2out.c (output_line_info): Put the marker for the end of
14437         the line number info at the actual end.
14438         (gen_struct_or_union_type_die): Use decl_function_context
14439         to check for local classes.
14440         * dwarfout.c (output_type): Likewise.
14441
14442 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
14443
14444         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
14445         for arguments with a mode, but no type.
14446         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14447         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14448         * pa/long_double.h: New file.
14449         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14450         both have 128bit wide long doubles.
14451         * configure: Rebuilt.
14452
14453 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14454
14455         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14456
14457         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14458         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14459         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14460
14461         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14462
14463         * integrate.c (compare_blocks, find_block): Likewise.
14464
14465         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14466
14467         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14468
14469         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14470         expand_asm_operands): Likewise.
14471
14472 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14473
14474         * predict.c (estimate_probability): Added the pointer heuristic to
14475         the collection of static branch predictors.
14476
14477 2000-02-21  Catherine Moore  <clm@cygnus.com>
14478
14479         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14480         * invoke.texi (-mfix7000): Document.
14481
14482 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14483
14484         * diagnostic.c (init_output_buffer): Make it possible to output at
14485         least 32 characters if we're given a too long prefix.
14486
14487 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14488
14489         * varasm.c (initializer_constant_valid_p): Call
14490         lang_expand_constant to simplify the constant.
14491
14492 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14493
14494         * fixinc/inclhack.def(stdio_va_list):
14495         typedef needs to be disabled.
14496         * fixinc/inclhack.sh: regen
14497         * fixinc/fixincl.x: regen
14498
14499 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14500
14501         * print-rtl.c (print_rtx): Don't print addresses when
14502         flag_dump_unnumbered.
14503
14504 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14505
14506         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14507         ATTRIBUTE_UNUSED.
14508         (sparc_va_arg, sparc_flat_output_function_prologue,
14509         sparc_flat_output_function_epilogue): Cast value to unsigned in
14510         comparison.
14511         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14512
14513         * sparc.md: Add default case in switch.
14514
14515 2000-02-19  Richard Henderson  <rth@cygnus.com>
14516
14517         * c-typeck.c (add_pending_init): Don't abort for multiple
14518         fields at the same offset.
14519         (pending_init_member): Test the correct member.
14520
14521 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14522
14523         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14524         instead of SImode.
14525         (start_catch_handler) : Same.
14526
14527 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14528
14529         * Makefile.in: Have flow.o depend on $(EXPR_H)
14530
14531 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14532
14533         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14534         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14535         (finish_decl): Remove -Wlarger-than code from here.
14536         * flags.h (id_clash_len): Now int.
14537         (larger_than_size): Now HOST_WIDE_INT.
14538         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14539         Clean up checking to see if in table.
14540         (make_bit_field_ref): Remove extra parm to bitsize_int.
14541         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14542         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14543         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14544         and for computing size of decl.
14545         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14546         Move -Wlarger-than code to here.
14547         (layout_record): Remove extra arg to bitsize_int.
14548         Set TYPE_BINFO_SIZE_UNIT.
14549         (layout_union): Remove extra arg to bitsize_int.
14550         Use proper type for size of QUAL_UNION.
14551         (layout_type): Remove extra arg to bitsize_int.
14552         * toplev.c (id_clash_len): Now int.
14553         (larger_than_size): Now HOST_WIDE_INT.
14554         (decode_W_option): Clean up id-clash and larger-than- cases.
14555         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14556         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14557         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14558         (struct tree_decl): New field size_unit.
14559         (size_int_wide): No HIGH operand; NUMBER is now signed.
14560         (size_int_2): Deleted.
14561         (size_int, bitsize_int): Don't use it and rework args.
14562         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14563
14564 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14565
14566         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14567
14568 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14569
14570         * invoke.texi (Warning Options): Add an explanation of why
14571         you might want the -Wfloat-equal flag.
14572
14573 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14574
14575         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14576         * cppinit.c (new_pending_define): Add cast to avoid warning.
14577         * expmed.c (extract_bit_field): Likewise.
14578         * flow.c (enum reorder_skip_type): New type.
14579         (skip_insns_between_blcok): New it.
14580         Rework to avoid warning about possibly undefined variable.
14581         * function.c (assign_parms): Make thisparm_boundary unsigned.
14582         * genrecog.c (write_switch): Cast XWINT result to int.
14583         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14584         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14585         one for MIPS and one for Alpha.
14586         (get_tag, copy_object): Add casts to avoid warnings.
14587         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14588         * reload.c (find_reloads): Make TYPE enum reload_type.
14589         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14590         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14591         * varasm.c (compare_constant_1): Add cast to avoid warning.
14592         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14593         to (char *).
14594         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14595         Cast switch operand of size to int.
14596         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14597         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14598         in unhandled case.
14599
14600 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14601
14602         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14603         anything for an alignment of zero.
14604
14605         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14606         anything for an alignment of zero.
14607
14608 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14609
14610         * gcc.texi (Bug Reporting): Refer to bugs.html.
14611         (Bug Lists): Likewise.
14612         * system.h (GCCBUGURL): New preprocessor define.
14613         * rtl.c (fancy_abort): Use it.
14614         * gcc.c (main): Likewise.
14615
14616 2000-02-18  Richard Henderson  <rth@cygnus.com>
14617
14618         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14619         (life_analysis_1): Subsume into ...
14620         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14621         Use update_life_info for the relaxation.
14622         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14623         entry and regs_live_at_setjmp.
14624         (set_noop_p): Simplify.
14625         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14626         (record_volatile_insns): Split into ...
14627         (delete_noop_moves): ... here,
14628         (notice_stack_pointer_modification): ... here,
14629         (insn_dead_p): ... and here.
14630         (propagate_block): Don't query INSN_VOLATILE.
14631         (mark_used_regs): Mind !PROP_REG_INFO.
14632         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14633         not in life_analysis.
14634
14635 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14636
14637         * loop.c (canonicalize_condition): New function,
14638         broken out of get_condition.
14639         (get_condition): Use it.
14640         * expr.h (canonicalize_condition): Prototype it.
14641
14642         * tree.h (tree_int_cst_msb): Declare.
14643         * tree.c (tree_int_cst_msb): New function.
14644
14645 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14646
14647         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14648         isn't set.
14649
14650         * invoke.texi (-fmessage-length=n): Document.
14651
14652 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14653
14654         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14655
14656 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14657
14658         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14659         after the prologue.
14660
14661 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14662
14663         * config/arm/thumb.c: Replace includes of system headers with
14664         #include "system.h".
14665
14666 2000-02-16  Richard Henderson  <rth@cygnus.com>
14667
14668         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14669         Add crtbeginS.o and crtendS.o.
14670         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14671         (ENDFILE_SPEC): Use crtendS.o.
14672         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14673
14674         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14675         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14676         shared and present.
14677         (__dso_handle): New variable.
14678         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14679         bias to __CTOR_END__.
14680
14681 2000-02-16  Richard Henderson  <rth@cygnus.com>
14682
14683         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14684
14685 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14686
14687         * longlong.h (__clz_tab): Declare as static to match definition.
14688
14689 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14690
14691         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14692         (XREF_FILE_NAME): Define.
14693
14694         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14695         (EH_FRAME_SECTION_ASM_OP): Define.
14696         (IDENT_ASM_OP): Define.
14697         (TEXT_SECTION_ASM_OP): Define.
14698         (CPP_SPEC): Define.
14699         (CTORS_SECTION_ASM_OP): Define.
14700         (CTOR_SECTION_FUNCTION): Use it.
14701         (DTORS_SECTION_ASM_OP): Define.
14702         (DTOR_SECTION_FUNCTION): Use it.
14703
14704 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14705
14706         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14707         NOTE_BASIC_BLOCK.
14708
14709         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14710         debug_bb_n): New functions.
14711         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14712         * basic-block.h: Prototype new functions.
14713
14714 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14715
14716         * configure.in: Add support for avr target.
14717         * configure: Rebuilt.
14718
14719         * invoke.texi: Add AVR invocation docs.
14720         * install.texi: Add information about AVR.
14721         * md.texi: Add AVR constraint letters description.
14722         * extend.texi: Add description for AVR specific attributes.
14723
14724 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14725
14726         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14727
14728 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14729
14730         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14731         (make_insn_raw): Move RTL check here.
14732
14733 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14734
14735         * version.c: Include gansidecl.h and version.h.
14736
14737         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14738
14739         * configure.in (gcc_version): When setting, narrow search to
14740         lines containing `version_string'.
14741
14742         * Makefile.in (mainversion): Likewise.
14743         (GCC_H): New variable.
14744         (gcc.h): Delete target.
14745         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14746         (version.o): Depend on version.h.
14747         (dbxout.o): Don't depend on gcc.h.
14748
14749 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14750                           Michael Meissner  <meissner@cygnus.com>
14751
14752         * md.texi (Simple Constraints): Add item about whitespace.
14753         * genoutput.c (strip_whitespace): New.
14754         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14755         strip_whitespace for constraints.
14756         Test pointer using NULL, not 0.
14757
14758 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14759
14760         * cpplib.c (do_line): Pedwarn for #line > 32767.
14761
14762         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14763
14764 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14765
14766         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14767         to default cpp spec.
14768         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14769         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14770         * cpp.1: Likewise.
14771
14772         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14773         default spec.
14774
14775 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14776
14777         * configure.in: Add support for avr target.
14778
14779 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14780
14781         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14782         (sh_addr_diff_vec_mode): Don't declare.
14783         * sh.c (sh_addr_diff_vec_mode): Delete.
14784
14785 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14786
14787         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14788
14789 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14790
14791         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14792         (smulsi3_highpart_i): Name.
14793         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14794         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14795         (smulsi3_highpart, umulsi3_highpart): Likewise.
14796
14797         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14798         correctly independent of endianness.
14799         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14800         confuse the optimizers.
14801         (mulsidi3+1, umulsidi3+1): New define_split.
14802
14803 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14804
14805         * config/sh/sh.md: Guard insn splits against illegal registers.
14806         * config/sh/sh.h: Correct comment about macros.
14807
14808 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14809                           Andrew MacLeod  <amacleod@cygnus.com>
14810
14811         * Makefile.in (lcm.o): Depend on insn-attr.h.
14812         * basic-block.h (optimize_mode_switching): Declare.
14813         * lcm.c (tm_p.h, insn-attr.h): #include.
14814         (seginfo, bb_info): New structs.
14815         (antic, transp, comp, delete, insert) : New file-scope static variables.
14816         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14817         (reg_becomes_live, optimize_mode_switching): Likewise.
14818         * tm.texi: Add description of mode switching macros.
14819         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14820
14821         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14822         (fldi_ok, fpscr_set_from_mem): New prototypes.
14823         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14824         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14825         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14826         (sh_flag_remove_dead_before_cse): Remove declaration.
14827         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14828         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14829         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14830         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14831         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14832         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14833         (fldi_ok): New function.
14834         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14835         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14836         (emit_df_insn): Likewise.
14837         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14838         (sh_flag_remove_dead_before_cse): Delete.
14839         (get_free_reg, fpscr_set_from_mem): New functions.
14840         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14841         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14842
14843 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14844
14845         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14846
14847 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14848
14849         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14850         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14851
14852         * cccp.c: Include version.h and/or don't declare `version_string'.
14853         * collect2.c: Likewise.
14854         * alpha.c: Likewise.
14855         * arm/aof.h: Likewise.
14856         * arm/coff.h: Likewise.
14857         * arm/elf.h: Likewise.
14858         * arm/pe.h: Likewise.
14859         * arm/tcoff.h: Likewise.
14860         * arm/telf.h: Likewise.
14861         * arm/tpe.h: Likewise.
14862         * arm/vxarm.h: Likewise.
14863         * convex/convex.c: Likewise.
14864         * i386/dgux.c: Likewise.
14865         * i386/sun386.h: Likewise.
14866         * m88k/m88k.c: Likewise.
14867         * mcore/mcore-pe.h: Likewise.
14868         * mips/mips.h: Likewise.
14869         * romp/romp.h: Likewise.
14870         * sh/sh.c: Likewise.
14871         * cpphash.c: Likewise.
14872         * cppinit.c: Likewise.
14873         * dwarf2out.c: Likewise.
14874         * dwarfout.c: Likewise.
14875         * gcc.c: Likewise.
14876         * gcc.h: Likewise.
14877         * mips-tfile.c: Likewise.
14878         * protoize.c: Likewise.
14879         * toplev.c: Likewise.
14880         * tree.h: Likewise.
14881
14882         * version.c (version_string): Constify a char*.
14883
14884         * version.h: New file.
14885
14886 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14887
14888         * configure.in: Add mcore-elf and mcore-pe targets.
14889         * configure: Regenerate.
14890
14891         * NEWS: Add note that MCore port has been contributed.
14892
14893         * invoke.texi: Document command line switches for MCore port.
14894         * install.texi: Add MCore to list of supported targets.
14895
14896 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14897
14898         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14899         then we will need to import the frame handling functions.
14900         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14901         to import the frames themselves.
14902
14903 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14904                           Jason Eckhardt  <jle@cygnus.com>
14905
14906         * basic_block.h: Added prototype for reorder_basic_blocks.
14907         * toplev.c: Changes to add -freorder-blocks and graph dump after
14908         block reordering is done.
14909         * flow.c (reorder_block_def): New structure for use during block
14910         reordering.
14911         (REORDER_BLOCK_*): New macros to access members of above structure.
14912         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14913         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14914         functions for block reordering.
14915
14916 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14917
14918         * gcc.texi (Passes): Fix typo.
14919         * md.texi (Standard Names): Ditto.
14920         * tm.texi (Storage Layout): Ditto.
14921
14922 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14923
14924         * cpplib.c (do_define): Only free the old definition if it
14925         actually had one.
14926
14927 2000-02-13   Neil Booth  <NeilB@earthling.net>
14928
14929         * cppfiles.c (read_and_prescan): When emitting deferred
14930         newlines, test speccase[] again instead of checking each
14931         possible whitespace character in turn.  When we encounter \r,
14932         look behind for \n first, then ahead.
14933
14934 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14935
14936         * cse.c (cse_altered): New internal flag.
14937         (cse_insn): Set it if we changed an insn.
14938         (cse_main): Clear cse_altered before each basic block.
14939         Only garbage collect if cse_altered is true afterward.
14940
14941 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14942
14943         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14944
14945 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14946
14947         * combine.c (simplify_comparison): Fix typo.
14948
14949 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14950
14951         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14952         consistently.
14953
14954 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14955
14956         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14957         previously inserted node instead of root node.  Caller changed.
14958
14959 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14960
14961         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14962
14963 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14964
14965         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14966         __dereg_frame_dtor): Add prototype argument.
14967
14968         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14969
14970         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14971
14972         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14973
14974         * gthr-vxworks.h (__gthread_once): Likewise.
14975
14976         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14977
14978 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14979
14980         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14981         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14982         stack pointer in functions w/o saved registers, output LEAVE more often
14983         on TARGET_USE_LEAVE machines.
14984
14985 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14986
14987         * config/arm/arm.c (arm_init_cumulative_args); New function:
14988         Initlaise the CUMULATIE_ARGS strcuture for a function
14989         defintion.
14990         (arm_function_arg): New function: Determine where to place a
14991         function's argument.  Also handles deciding the function's
14992         call cookie.
14993         (current_file_function_operand): New function: Return true if
14994         the symbol is a function which has already been compiled.
14995         (arm_is_long_call_p): New function: Return true if the
14996         indicated function should be called via a long call.
14997         (arm_valid_type_attribute_p): New function: Return true if the
14998         attribute is a valid, arm specific, attribute.
14999         (arm_comp_type_attribute): New function: Return true if the
15000         two types have compatable, arm specific, attributes.
15001
15002         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
15003         structure.
15004         (FUNCTION_ARG): Redefine to call arm_function_arg.
15005         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
15006         structure field.
15007         (INIT_CUMULATIVE_ARGS): Redefine to call
15008         arm_init_cumulative_args.
15009         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
15010         field.
15011         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
15012         field.
15013         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
15014         functions.
15015         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
15016         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
15017         (COMP_TYPE_ATTRIBUTES): Define.
15018
15019         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
15020         if a long call is needed.
15021         (call_value): Call arm_is_long_call_p to decide if a long call
15022         is needed.
15023         (call_symbol): Call arm_is_long_call_p to decide if a long call
15024         is needed.
15025
15026         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
15027
15028 2000-02-11  Denis Chertykov  <denisc@overta.ru>
15029
15030         * README.AVR: New file with information about the avr ports.
15031         * config/avr: New directory with avr port files.
15032
15033 2000-02-11  Andreas Jaeger  <aj@suse.de>
15034
15035         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
15036
15037 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
15038
15039         * cpphash.c: Fix formatting, update commentary.
15040         (dump_definition): Take three separate arguments instead of a
15041         MACRODEF structure argument.
15042         * cpphash.h: Update prototype of dump_definition.
15043         * cppinit.c (cpp_finish): Update call of dump_definition.
15044
15045         * cpplib.c (do_define): Always create new hash entry with
15046         T_MACRO type.  Remove redundant check for redefinition of
15047         poisoned identifier.  Update call of dump_definition.
15048         (do_undef): Don't call check_macro_name.  Rename sym_length to
15049         len.
15050         (do_error, do_warning): Don't use copy_rest_of_line or
15051         SKIP_WHITE_SPACE.
15052         (do_warning): Don't use pedwarn for the actual warning,
15053         only the notice about its not being in the standard.  (Fixes
15054         bug with #warning in system headers.)
15055         (do_ident): Stricter argument checking - accept only a single
15056         string after #ident.  Also, macro-expand the line.
15057         (do_xifdef): Use cpp_defined.  De-obfuscate.
15058
15059         (do_pragma): Split out specific pragma handling to separate
15060         functions.  Use get_directive_token.  Update commentary.  Do
15061         not pass on #pragma once or #pragma poison to the front end.
15062         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
15063         do_pragma_default): New.
15064
15065 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
15066
15067         * jump.c (jump_optimize_1): The first operand in a relational
15068         can be a CONST_INT.
15069         * optabs.c (emit_conditional_move): Handle relationals which
15070         have a known true/false result.
15071
15072 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15073
15074         * function.c (thread_prologue_and_epilogue_insns): Don't insert
15075         a RETURN insn into a block which already ends with a jump.
15076
15077 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
15078
15079         * haifa-sched.c (BUF_LEN): Increase a lot.
15080
15081 2000-02-11  Nick Clifton  <nickc@cygnus.com>
15082
15083         * configure.in: Add tm_p_file specification for thumb targets.
15084         * configure: Regenerate.
15085
15086         * config/arm/thumb-protos.h: New file: Prototypes for exported
15087         functions defined in thumb.c.
15088
15089 2000-02-11  Robert Lipe  <robertl@sco.com>
15090
15091         * Makefile.in (bootstrap-lean): Remove additional files.
15092         (bootstrap2-lean): Likewise.
15093         (VOL_FILES): List of files for above.
15094
15095 2000-02-11  Nathan Sidwell  <nathan@acm.org>
15096
15097         * cpphash.c (special_symbol): Remove spurious argument to
15098         cpp_lookup.
15099
15100 2000-02-11  Joel Sherrill (joel@OARcorp.com>
15101
15102         * configure.in: (i*86-*-rtems*): Swapped elf and coff
15103         stanzas.
15104         * configure: Rebuilt.
15105
15106 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
15107
15108         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
15109
15110 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
15111
15112         * pa.c, pa.h: Remove trigraph sequences within comments.
15113
15114 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
15115
15116         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
15117
15118 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
15119
15120         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
15121
15122 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15123
15124         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
15125
15126 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15127
15128         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
15129         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
15130         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15131         (ASM_FILE_END): Use c4x_file_end.
15132         * config/c4x/c4x.c (c4x_global_label): New function.
15133         (c4x_external_ref, c4x_file_end): Likewise.
15134
15135         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
15136         (c4x_external_ref, c4x_end_file): Likewise.
15137
15138 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
15139
15140         * cppexp.c: Don't include cpphash.h.
15141         (parse_charconst, cpp_lex): Use cpp_defined.
15142         (cpp_lex): Use get_directive_token throughout.  Remove
15143         unnecessary cases from switch.  Move assertion-handling code
15144         down to OTHER case.
15145         (cpp_parse_expr): If we see '+' or '-', check the context to
15146         determine if they are unary or binary operators.  Streamline
15147         the jumps a bit.  Do not call skip_rest_of_line.
15148
15149         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
15150         static.  Export get_directive_token.  Update commentary.
15151         (cpp_defined): New function.
15152         (do_define): Remove reference to T_PCSTRING.  Call
15153         free_definition to release memory for old definition, when
15154         redefining a macro.
15155         (eval_if_expression): Set only_seen_white to 0 before calling
15156         cpp_parse_expr.  Call skip_rest_of_line after it returns.
15157         (cpp_read_check_assertion): Don't preserve a pointer into the
15158         token buffer across a call to cpp_get_token.
15159
15160         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
15161         * cppfiles.c (redundant_include_p): Use cpp_defined.
15162         * cpphash.c (free_definition): New function.
15163         (delete_macro): Use it.  Update commentary.
15164         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
15165         free_definition.
15166         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
15167         from enum node_type.  Prototype cpp_defined and get_directive_token.
15168         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
15169
15170         * fix-header.c (check_macro_names): Use cpp_defined.
15171         (read_scan_file): Set inhibit_warnings and inhibit_errors in
15172         the options structure.
15173
15174 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15175
15176         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
15177
15178 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
15179
15180         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
15181         rather than die->die_tag.
15182
15183 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15184
15185         * combine.c (make_extraction, force_to_mode): Avoid warning on
15186         mixed-signedness conditionals.
15187         (make_field_assignment, nonzero_bits): Likewise.
15188         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
15189         (store_split_bit_field, extract_split_bit_field): Likewise.
15190         (extract_fixed_bit_field, store_bit_field,
15191         * expr.c: Change alignment to be unsigned everywhere.
15192         (move_by_pieces, store_constructor_field, store_constructor):
15193         Alignment parm is unsigned.
15194         (emit_block_move, emit_group_load, emit_group_store): Likewise.
15195         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15196         (do_compare_rtx_and_jump): Likewise.
15197         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
15198         Compare align with GET_MODE_ALIGNMENT.
15199         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
15200         (get_inner_reference): Likewise.
15201         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
15202         (expand_assignment): Local vars for alignment now unsigned.
15203         (store_constructor, store_field, expand_expr, do_jump): Likewise.
15204         (do_compare_and_jump): Likewise.
15205         (store_field): Call new function expr_align.
15206         * expr.h (emit_block_move, emit_group_load, emit_group_store):
15207         Alignment arg now unsigned.
15208         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
15209         (do_compare_rtx_and_jump, store_bit_field): Likewise.
15210         (extract_bit_field): Likewise.
15211         * fold-const.c (add_double): Add cast to eliminate signedness warning.
15212         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
15213         (get_best_mode): Alignment arg is unsigned.
15214         * rtl.h (move_by_pieces): Likewise.
15215         * store-layout.c (maximum_field_alignment, set_alignment):
15216         Now unsigned.
15217         (layout_decl): Alignment arg is now unsigned.
15218         Remove unneeded casts.
15219         (layout_record, layout_union, layout_type): Remove unneeded casts.
15220         Local alignment variables now unsigned.
15221         (get_best_mode): Alignment arg now unsigned.
15222         * tree.c (expr_align): New function.
15223         * tree.h (expr_align): Likewise.
15224         (maximum_field_alignment, set_alignment): Now unsigned.
15225         (get_inner_reference): Alignment argument is now pointer to unsigned.
15226         * varasm.c (assemble_variable): Add cast to eliminate warning.
15227
15228 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
15229
15230         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
15231         then store directly into op0.
15232
15233         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
15234         the CALL_INSN, and emit the note immediately after it.
15235
15236 2000-02-10  Nick Clifton  <nickc@cygnus.com>
15237
15238         * config/arm/thumb.md (epilogue): Include a (return) in the
15239         generated insn, and emit it using emit_jump_insn not
15240         emit_insn.
15241
15242 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
15243
15244         * function.c (assign_temp): Change zero-sized arrays to size 1.
15245         * integrate.c (expand_inline_function): Do not update
15246         stack_alignment_needed
15247         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
15248         add some sanity checking, remove optimization for function with
15249         zero frame size.
15250
15251 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15252
15253         * flow.c (mark_regs_live_at_end): Delete unused variables.
15254
15255         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
15256
15257         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
15258         in macro FRAME_GROWS_DOWNWARD.
15259
15260         * stmt.c (expand_end_bindings): Delete unused variable.
15261
15262         * unroll.c (iteration_info): Mark parameter `loop' with
15263         ATTRIBUTE_UNUSED.
15264
15265 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15266
15267         * fixinc/server.c (load_data): Return NULL if the marker line is
15268         not found.
15269         (run_shell): If load_data returns NULL, retry the command once, in
15270         a new shell.
15271
15272         * configure: Rebuilt.
15273
15274 2000-02-09  Bruce Korb  <bkorb@gnu.org>
15275
15276         * gcc/fixincludes:  ** DELETED **
15277         * gcc/fixcpp:  ** DELETED **
15278         * gcc/fixinc-nt.sed:  ** DELETED **
15279         * gcc/just-fixinc:  ** DELETED **
15280         * gcc/Makefile.in:  Removed out-dated commentary
15281         * gcc/configure.in: Removed fast-fixincludes disablement.
15282         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
15283
15284 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15285         * function.c (thread_prologue_and_epilogue_insns): Uncomment
15286         last change.
15287
15288 2000-02-09  Richard Henderson  <rth@cygnus.com>
15289
15290         * jump.c (delete_insn): Don't delete user labels at -O0.
15291
15292 2000-02-09  Robert Lipe  <robertl@sco.com>
15293
15294         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
15295         Don't link with HOST_LIBS.
15296
15297 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15298
15299         * configure.in: Correct --help text for --with-dwarf2.
15300         Put tm-dwarf2.h after other tm files, if it's requested.
15301         * configure: Regenerate.
15302         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
15303         defining it.
15304
15305 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15306
15307         * cpplib.h: Provide HASHNODE typedef and forward decl of
15308         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
15309         DEFINITION, struct hashnode, struct macrodef, struct
15310         definition, scan_decls prototype, default defn of
15311         INCLUDE_LEN_FUDGE moved elsewhere.
15312
15313         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
15314         definition, and struct hashnode moved here. Remove the unused
15315         'predefined' field from struct definition.  Replace the 'args'
15316         union with its sole member.  All users updated (cpphash.c).
15317         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
15318         multiple include guard.
15319
15320         * cpphash.c (hashf): Make static; use better algorithm; drop
15321         HASHSIZE parameter; return an unsigned int.
15322         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
15323         used. Calculate HASHSIZE modulus here.
15324         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
15325         here.
15326         (create_definition): Drop PREDEFINITION parameter.
15327         * cpplib.c (do_define): Don't calculate a hash value here.
15328         Don't pass (keyword == NULL) to create_definition.
15329
15330         * scan.h: Prototype scan_decls here.
15331         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
15332         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
15333         callers of cpp_lookup and cpp_install updated.
15334
15335         * cpphash.c (macarg): Hoist all the flag diddling out of the
15336         function...
15337         (macroexpand): ... and out of the loop that calls macarg.
15338         Skip over the initial paren before macro arguments with
15339         cpp_get_non_space_token; point may be some distance before
15340         that paren.  Abort if it's not there.
15341
15342         * cpplib.c (parse_clear_mark): Delete function.
15343         (parse_set_mark, parse_goto_mark): Make static.
15344         (ACTIVE_MARK_P): New macro.
15345         (skip_block_comment, skip_line_comment): Do not bump the line
15346         if ACTIVE_MARK_P is true.
15347         (cpp_pop_buffer): The buffer to be popped may not have an
15348         active mark.
15349         (cpp_get_token): When looking for the initial paren before
15350         macro arguments, only set a mark in a file buffer, Always
15351         return to that mark before proceeding to call macroexpand or
15352         return a NAME token.
15353
15354         * cpplib.h: Remove prototypes of parse_set_mark,
15355         parse_clear_mark, parse_goto_mark.
15356         (struct cpp_options): Rename 'put_out_comments' to
15357         'discard_comments' and invert its sense.
15358         * cppinit.c, cpphash.c, cpplib.c: All users of
15359         put_out_comments changed to use discard_comments, with
15360         opposite sense.
15361
15362 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
15363
15364         * function.c (thread_prologue_and_epilogue_insns): Don't delete
15365         the edge from a block that both jumps and falls through to the
15366         fallthru block.
15367
15368 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
15369
15370         * config/arm/arm.md (movsi): In PIC mode, make sure that a
15371         constant source address is legitimate.
15372
15373 2000-02-09  Philip Blundell  <pb@futuretv.com>
15374
15375         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
15376         correctly.
15377
15378         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
15379         generating PIC.
15380         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
15381
15382 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15383
15384         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
15385         ends with a newline and a NUL.  Don't be so clever manipulating
15386         strings.
15387
15388 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
15389
15390         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
15391         not to BIGGEST_ALIGNMENT.
15392
15393 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
15394
15395         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
15396         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
15397         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
15398         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
15399         * frame.c (execute_cfa_insn): Handle
15400         DW_CFA_GNU_negative_offset_extended.
15401
15402 2000-02-08  Richard Henderson  <rth@cygnus.com>
15403
15404         * flow.c (tidy_fallthru_edges): Split out from ...
15405         (delete_unreachable_blocks): ... here.
15406         (find_basic_blocks): Use it.
15407
15408 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15409
15410         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
15411
15412 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
15413
15414         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
15415         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
15416         (fix-header.o): Don't depend on cpphash.h.
15417
15418         * scan.c (hashstr): New function.
15419         * scan.h: Prototype it.
15420         * fix-header.c: Don't include cpphash.h.  Use hashstr.
15421         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
15422         hashstr.  Report hash table statistics.  Add private
15423         definition of xrealloc.
15424
15425 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15426
15427         * i386.h (TARGET_SWITCHES): Fix typo in option name.
15428
15429 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
15430
15431         * function.c (thread_prologue_and_epilogue_insns): Don't replace
15432         jumps with returns unless they are jumps to the fallthru block.
15433
15434 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
15435
15436         * i386.md (addqi3_cc): Fix contraints.
15437
15438 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15439
15440         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
15441
15442 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
15443
15444         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
15445         carriage return after a macro name.
15446
15447 2000-02-07  Fred Fish  <fnf@be.com>
15448
15449         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15450         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15451
15452 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15453
15454         * cppfiles.c (deps_output): Count spacers in deps_column.
15455
15456 2000-02-07  Neil Booth  <NeilB@earthling.net>
15457
15458         * cppinit.c (initialize_dependency_output): If there is no
15459         suffix, don't try to look for known suffixes.  Use strrchr.
15460         (cpp_start_read): Remove duplicate initialization.
15461
15462 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15463
15464         * calls.c (compute_argument_block_size): New argument
15465         preferred_stack_boundary.
15466         (expand_call): update cfun->preferred_stack_boundary, update call of
15467         compute_argument_block_size
15468         (emit_library_call): Increate cfun->preferred_stack_boundary
15469         to PREFERRED_STACK_BOUNDARY
15470         (emit_library_call_value): Likewise.
15471         * explow.c (allocate_dynamic_stack_spave): Likewise.
15472         * function.c (prepare_function_start): Set
15473         cfun->preferred_stack_boundary
15474         * function.h (struct function): Add preferred_stack_boundary field.
15475         * integrate.c (expand_inline_function): Update
15476         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15477         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15478         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15479
15480 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15481
15482         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15483         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15484         cpp_pedwarn, cpp_pedwarn_with_line,
15485         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15486         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15487         v_cpp_error_with_line, v_cpp_warning_with_line,
15488         cpp_message_from_errno, cpp_perror_with_name): Delete.
15489
15490         * cpperror.c (cpp_print_containing_files): Take starting
15491         buffer as argument.
15492         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15493         (v_cpp_message): Now called directly by all entry points.
15494         Remove -1 case.
15495         (cpp_pfatal_with_name, cpp_message): Delete.
15496         (cpp_notice_from_errno, cpp_ice): New functions.
15497         (cpp_notice): Is now for reporting error conditions, just
15498         without an associated file.
15499         (cpp_error, cpp_error_with_line): Don't do anything if
15500         opts->inhibit_errors is on.
15501         (cpp_pedwarn_with_file_and_line): Take column argument also.
15502
15503         * cpplib.h: Update prototypes of exported functions.
15504         (struct cpp_options): Add inhibit_errors.
15505
15506         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15507         non-error messages.  Include intl.h.
15508
15509         * cppinit.c, cppmain.c: Likewise.  Also, use
15510         cpp_notice_from_errno instead of cpp_perror_with_name or
15511         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15512
15513         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15514         report internal errors.
15515
15516         * cpplib.c (do_define): Switch bcopy to memcpy.
15517         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15518
15519         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15520         bail out early if we hit a line comment.
15521
15522 2000-02-06  Richard Henderson  <rth@cygnus.com>
15523
15524         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15525         * basic-block.h: Declare them.
15526         * emit-rtl.h (active_insn_p): New.
15527         (next_active_insn, prev_active_insn): Use it.
15528         * rtl.h: Declare it.
15529         * function.c (emit_return_into_block): New.
15530         (thread_prologue_and_epilogue_insns): Insert return insns instead
15531         of epilogues when possible.
15532         * jump.c (jump_optimize_1): Remove code to insert a return insn
15533         on the fallthru to the exit block.
15534
15535         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15536         and for non-empty stack frames.
15537         * i386.md (return): Expand to return-pop as needed.
15538
15539 2000-02-06  Richard Henderson  <rth@cygnus.com>
15540
15541         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15542         constant to op1 for testing.
15543
15544 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15545
15546         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15547         (fixuns_truncqfqi2): Use it.
15548
15549 2000-02-06  Richard Henderson  <rth@cygnus.com>
15550
15551         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15552         as a TYPE_LEA insn.
15553
15554         * i386.md (widening and peepholes): Mask the constant instead of
15555         using gen_lowpart.
15556
15557 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15558
15559         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15560         input pointer before possibly branching off to the backslash
15561         code.
15562         * cpphash.c (macroexpand): Correctly delete \r escapes when
15563         stringifying parameters.
15564         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15565         if we can; bail out early if we hit a line comment.
15566         (handle_directive): Treat '# 123' in an .S file just like
15567         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15568         Return 1 for '# not_a_directive'.
15569         (get_directive_token): Pop macro buffers here, so that
15570         cpp_get_token can't sneakily move past a newline.
15571         Add sanity checks.
15572         (cpp_get_token): goto randomchar if handle_directive returns 0.
15573
15574         * cppalloc.c: Update copyright.
15575         * cpplib.c: Merge all the static function prototypes into one
15576         block.
15577         * cpplib.h: Remove #if 0 block.
15578
15579         * cpperror.c: Remove #ifdef EMACS block.
15580         * cppmain.c: Likewise.
15581         * cpphash.c: Remove #if 0 blocks.
15582         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15583         * cpplib.c: Remove #if 0 blocks and code referencing
15584         pcp_inside_if or for_lint.  Remove duplicate error message.
15585         Fix error messages for #else after #else or #elif.  Reformat.
15586         Remove archaic TODO list.
15587         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15588
15589 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15590
15591         * i386/osf1elf.h: Add missing backslash to multiline string.
15592
15593 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15594
15595         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15596
15597 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15598
15599         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15600
15601         * c-common.c: Include expr.h.
15602
15603         * c-pragma.c (mark_align_stack): Add prototype.
15604
15605         * caller-save.c (add_stored_regs): Likewise.
15606
15607         * combine.c (record_promoted_value): Likewise.
15608
15609         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15610         Likewise.
15611
15612         * cppinit.c (new_pending_define): Likewise.
15613
15614         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15615
15616         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15617         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15618         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15619         class_scope_p): Likewise.
15620
15621         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15622         dwarf2out_add_library_unit_info): Likewise.
15623
15624         * ggc.h (ggc_page_print_statistics): Likewise.
15625
15626         * haifa-sched.c (propagate_deps): Likewise.
15627
15628         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15629
15630         * rtl.h (set_stack_check_libfunc): Likewise.
15631
15632         * toplev.h (set_fatal_function): Likewise.
15633
15634         * toplev.c (set_fatal_function): Delete prototype.
15635
15636         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15637
15638 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15639
15640         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15641         (FUNC_END): Likewise.
15642
15643 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15644
15645         * caller-save.c: Include tm_p.h.
15646
15647 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15648
15649         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15650
15651 2000-02-04  Neil Booth  <NeilB@earthling.net>
15652
15653         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15654         it to strcmp.
15655
15656 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15657
15658         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15659         * genflags.c: Use the max_operand_1 logic from genemit.c to
15660         calculate how many arguments gen_insn prototypes have.  Remove
15661         NO_MD_PROTOTYPES ifdefs from the generated file.
15662         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15663         file.  Cast gen_insn initializers to insn_gen_fn.
15664         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15665         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15666
15667 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15668
15669         * fixinc/Makefile.in (HDR): Add machname.h.
15670         (clean): Likewise.
15671
15672 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15673
15674         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15675         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15676         (c4x_cpu_version): Ditto.
15677         * config/c4x/c4x-protos.h: ... here.
15678
15679 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15680
15681         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15682         gen_abstract_function on our context if we're a nested function.
15683
15684 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15685
15686         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15687         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15688
15689 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15690
15691         * fixinc/genfixes(machname.h):
15692         Move the functionality from gen-machine.h into this file.
15693         UNdef MN_NAME_PAT if there are no names to change.
15694         Also, be a little kinder when AutoGen is not present.
15695
15696         * fixinc/Makefile.in(machname.h):
15697         Change the generation rule to use genfixes.
15698
15699         * fixinc/fixfixes.c(machine_name):
15700         machine_name_fix's functionality now dependent upon whether
15701         MN_NAME_PAT is defined.
15702
15703         * fixinc/fixtests.c(machine_name):
15704         ditto.
15705
15706         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15707         of MN_NAME_PAT.
15708
15709         * fixinc/fixlib.h(mn_get_regexps):
15710         ditto
15711
15712         * fixinc/gen-machine.h: DELETED
15713
15714 2000-02-04  Jan Hubicka  <jh@suse.cz>
15715             Richard Henderson  <rth@cygnus.com>
15716
15717         * i386.c (SAVE_REGS_FIRST): Remove.
15718         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15719         (ix86_compute_frame_size): Likewise.
15720         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15721         (ix86_emit_restore_regs): Remove.
15722         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15723         when a frame pointer is in use.
15724         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15725         instead of pop to restore a register when profitable; emit leave
15726         when profitable.
15727         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15728         as a TYPE_LEA insn.
15729         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15730         * i386.md (prologue_allocate_stack): Remove.
15731         (epilogue_deallocate_stack): Remove.
15732         (pro_epilogue_adjust_stack): New.
15733
15734 2000-02-04  Richard Henderson  <rth@cygnus.com>
15735
15736         * function.c (diddle_return_value): Rework to use a callback function.
15737         Use current_function_return_rtx if it's been set up.
15738         (do_clobber_return_reg, clobber_return_register): New.
15739         (do_use_return_reg, use_return_register): New.
15740         (expand_function_end): Use them.
15741         * stmt.c (expand_null_return): Likewise.
15742         * function.h: Declare them.
15743         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15744         (mark_reg): Change arguments as appropriate for callback.
15745         * integrate.c (expand_inline_function): Revert 19 Jan change.
15746
15747 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15748
15749         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15750         (Misc): Say the scheduler, not the Haifa scheduler.
15751
15752 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15753
15754         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15755         when in_mem is set.  Update all callers.
15756
15757 2000-02-04  Richard Henderson  <rth@cygnus.com>
15758
15759         * i386/openbsd.h (INT_ASM_OP): Define.
15760
15761 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15762
15763         * tm.texi: Fix various typos.
15764
15765 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15766
15767         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15768         (MD_STARTFILE_PREFIX_1): New macro.
15769
15770 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15771
15772         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15773         destination when needed.
15774         (strmovsi, strsetsi): New expander.
15775         (strmovsi_1, strsetsi_1): New pattern.
15776         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15777         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15778         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15779         * invoke.texi (align-stringops, inline-all-stringops): Document.
15780
15781 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15782
15783         * i386/netbsd.h (INT_ASM_OP): Define.
15784
15785 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15786
15787         * cpplib.h (cpp_reader): Add new flag, no_directives.
15788         * cpphash.c (macarg): Set it.
15789         * cpplib.c (handle_directive): If no_directives is on and we
15790         find a directive, issue an error and discard the line.
15791
15792 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15793
15794         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15795         FP constants.  Add ! TARGET_FPU check for FP constants.
15796
15797 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15798
15799         * flow.c (find_basic_blocks): Don't kill label_value_list
15800         here.
15801         (cleanup_cfg): Kill it here.
15802
15803 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15804
15805         * expr.c (store_field): Ensure ALIGN is no stricter than the
15806         alignment of EXP.
15807
15808 2000-02-02  Richard Henderson  <rth@cygnus.com>
15809
15810         * jump.c (delete_insn): Partially revert 19 Jan change;
15811         don't convert unused code labels to notes at -O0.
15812
15813 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15814
15815         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15816         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15817
15818 2000-02-01  Richard Henderson  <rth@cygnus.com>
15819
15820         * i386.c (general_no_elim_operand): New.
15821         (nonmemory_no_elim_operand): New.
15822         (ix86_expand_move): Copy eliminable operands before a push.
15823         * i386-protos.h: Declare new functions.
15824         * i386.h (CAN_ELIMINATE): Simplify.
15825         (PREDICATE_CODES): Update.
15826         * i386.md (push insns): Don't allow eliminable register operands.
15827
15828 2000-02-01  Richard Henderson  <rth@cygnus.com>
15829
15830         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15831         replace BLKmode with DECL_RTL's mode.
15832
15833 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15834
15835         * frame.c (find_fde): Convert for loop to do-while so compiler
15836         sees it's always executed at least once.
15837         * libgcc2.c (BBINBUFSIZE): Kill.
15838         (__bb_init_prg): Use fgets.
15839         (__bb_exit_trace_func): Don't paste strings.
15840         * unroll.c (unroll_loop): Initialize unroll_type, not
15841         unroll_number, and tweak logic to match.
15842
15843         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15844         all failure paths.
15845         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15846         (ix86_sched_reorder): Break guts out to
15847         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15848         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15849         any possible use.
15850
15851         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15852         use string concatenation.  Don't save and restore esi.
15853
15854         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15855         (machname.h): Remove script to separate file.  Use two-step
15856         sequence so target is not created if script fails.
15857         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15858         identifiers are defined.
15859         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15860         an empty string, machine_name doesn't need to do anything at
15861         all.
15862         (is_cxx_header): Add more cases to regexp.
15863         * fixinc/fixlib.h: Update prototype.
15864         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15865         mn_get_regexps.
15866         * fixinc/fixincl.c: Define NO_BOGOSITY.
15867
15868         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15869         (hp_sysfile): Add missing comma.
15870         (math_exception): Put the wrapper ifdefs at the beginning and
15871         the end of the file.
15872         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15873
15874 2000-02-01  Richard Henderson  <rth@cygnus.com>
15875
15876         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15877         Use CONST0_RTX.  Update all callers.
15878         * sparc.h, sparc-protos.h: Update accordingly.
15879         * sparc.md (fp mov insns): Use fp_zero_operand directly
15880         where applicable.
15881
15882 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15883
15884         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15885         example.
15886
15887 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15888
15889         * Makefile.in (specs.ready): New target.
15890         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15891
15892 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15893
15894         * fixinc.irix: Use unique filenames for writing into /tmp,
15895         * fixinc.ptx: Likewise.
15896         * fixinc.sco: Likewise.
15897         * fixinc.svr4: Likewise.
15898         * fixinc.winnt: Likewise.
15899
15900 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15901
15902         * tsystem.h: New file.
15903
15904         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15905         s-crtS): Depend on tsystem.h.
15906
15907         * crtstuff.c: Include tsystem.h.
15908         * frame.c: Likewise.
15909         * libgcc2.c: Likewise.
15910
15911 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15912
15913         * builtins.c (expand_builtin_memset): Expand for variable sized
15914         lengths too.
15915
15916 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15917
15918         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15919         on ABI.
15920
15921 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15922
15923         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15924
15925         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15926
15927 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15928
15929         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15930         case 3->2 combining (combining with splitting) in which 2 is CC0
15931         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15932         checked at the begining of the function with the aid of calling
15933         function 'can_combine_p'.
15934
15935 2000-01-31  Dave Brolley  <brolley@redhat.com>
15936
15937         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15938
15939 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15940
15941         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15942         new label.
15943
15944 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15945
15946         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15947
15948         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15949         PROTO -> PARAMS.
15950
15951 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15952
15953         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15954         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15955         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15956         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15957         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15958         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15959         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15960         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15961         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15962         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15963
15964         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15965         Add %(cpp_cpu) to CPP_SPEC.
15966
15967         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15968         Add %(cc1_cpu) to CC1_SPEC.
15969
15970 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15971
15972         * c-decl.c (c_decode_option): Accept optional numeric argument to
15973         -Wformat and set warn_format.
15974         * c-common.c: Don't emit warning about non-constant printf format
15975         string unless warn_format > 1.
15976
15977 2000-01-30  Richard Henderson  <rth@cygnus.com>
15978
15979         * alpha.md (return_internal): Allow after reload only.
15980
15981 2000-01-30  Richard Henderson  <rth@cygnus.com>
15982
15983         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15984         local frame size is zero.
15985
15986 2000-01-30  Richard Henderson  <rth@cygnus.com>
15987
15988         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15989         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15990         * alpha.md (return): Turn into an expander.
15991         (return_internal): Don't use $26.
15992         (epilogue): Emit the return insn.
15993
15994 2000-01-30  Richard Henderson  <rth@cygnus.com>
15995
15996         * alpha.md (negtf2, abstf2): Fix word order thinko.
15997         (extendsftf2): New.
15998         (trunctfsf2): Avoid intermediate rounding errors.
15999
16000 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
16001
16002         * cppfiles.c (find_position): Drop 'colp' argument, return the
16003         new line base.
16004         (read_and_prescan): Adjust to match.  Don't ever manipulate
16005         line or line_base except via find_position.
16006
16007 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
16008
16009         * c-parse.in: Apply Ulrich's changes from c-parse.y.
16010         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
16011         Regenerate.
16012
16013 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
16014
16015         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
16016         just print "<command line>".  If 'filename' is null or an
16017         empty string, print "<stdin>" for the filename.
16018         * cpplib.c (do_define): Don't print the 'location of the
16019         previous definition' message if we're still parsing the
16020         command line.
16021         (cpp_pedwarn_with_file_and_line): Always call
16022         cpp_file_line_for_message.
16023
16024 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
16025
16026         * flow.c (mark_regs_live_at_end): Fix typo.
16027
16028 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
16029
16030         * c-common.c: Adjust variable names, comments, help strings to c99.
16031         * c-lex.c: Likewise.
16032         * c-parse.y: Likewise.
16033         * c-tree.h: Likewise.
16034         * cccp.c: Likewise.
16035         * cpplib.h: Likewise.
16036         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
16037         * cppinit.c: Likewise.
16038
16039 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16040
16041         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
16042         * c4x.c: Define the optab rtx values.
16043         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
16044         (c4x_emit_libcall): Use new optab rtx values.
16045         (c4x_emit_libcall3): Likewise.
16046         (c4x_emit_libcall_mulhi): Likewise.
16047         * c4x-protos.h: Add prototypes for optab rtx values and change
16048         prototypes for above c4x_emit_libcall functions.
16049
16050 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16051
16052         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
16053         syntax is used.
16054         (c4x_function_prologue): Use regnames intead of float_reg_names when
16055         TI syntax is used.
16056         (c4x_function_epilogue): Likewise.
16057         (c4x_print_operand): Likewise.
16058         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
16059         * c4x.md (set_high): Disable for TARGET_TI.
16060
16061 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16062
16063         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
16064         of framepointer + constant to ADDR_REGS class.
16065         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
16066         * c4x.c (std_or_reg_operand): New function.
16067         * c4x-protos.h (std_or_reg_operand): Prototype it.
16068
16069 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16070
16071         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
16072                 object names as libgcc2.c.
16073         * libgcc.S: Use newly defined names.
16074
16075 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
16076         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
16077         function.
16078         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
16079         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
16080         (FLOW_LOOP_LAST_BLOCK): Likewise.
16081
16082 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16083
16084         * basic-block.h (struct loop): New fields 'first' and 'last'.
16085         * flow.c (flow_loops_find): Compute loop->first and loop->last.
16086         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
16087         and loop->last to check for NOTE_INSN_LOOP_END.
16088
16089 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
16090
16091         * predict.c (estimate_probability): Use the new FIRST and LAST fields
16092         of the loop descriptor rather than HEADER and LATCH. Also added
16093         missing break statements as well making some coding style modifications
16094         as suggested by Michael Hayes.
16095
16096 2000-01-28  Richard Henderson  <rth@cygnus.com>
16097
16098         * flow.c (find_basic_blocks): Remove do_cleanup argument.
16099         Break out that code ...
16100         (cleanup_cfg): ... here.
16101         (commit_one_edge_insertion): Detect a return instruction being
16102         emitted to an edge.  Emit a barrier following; clear fallthru.
16103         (commit_edge_insertions): Verify CFG consistency.
16104         * function.c (expand_function_start): Kill unused variable.
16105         (expand_function_end): Likewise.
16106         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
16107         to insert the epilogue.
16108
16109         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
16110         (delete_null_pointer_checks): Likewise.
16111         * output.h: Likewise.
16112         * reg-stack.c (reg_to_stack): Likewise.
16113         * toplev.c (rest_of_compilation): Likewise.  Run
16114         thread_prologue_and_epilogue_insns after rebuilding the CFG.
16115
16116 2000-01-28  Richard Henderson  <rth@cygnus.com>
16117
16118         * Makefile.in (flow.o): Revert 24 Jan change.
16119         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
16120         FUNCTION_VALUE result to DECL_RESULT's mode.
16121
16122         * haifa-sched.c (schedule_insns): Don't recompute reg info
16123         after reload.
16124
16125 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
16126
16127         * configure.in: Make --enable-cpplib the default.
16128         * configure: Regenerate.
16129         * gcc.dg/990119-1.c: No longer expected to fail.
16130
16131 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
16132
16133         * jump.c (jump_optimize_1): Delete an optimization that is also done
16134         by merge_blocks in flow.
16135
16136 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16137
16138         * diagnostic.c (build_message_string, output_printf,
16139         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
16140         (build_location_prefix): Fix non-literal format string.
16141
16142 2000-01-27  Richard Henderson  <rth@cygnus.com>
16143
16144         * alpha.md (trunctfsf2): New.
16145
16146 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
16147
16148         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
16149
16150 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16151
16152         * cppinit.c (cpp_handle_option): Recognize C++ comments under
16153         -std=gnu89.
16154         * cpplib.c (skip_block_comment, skip_line_comment): Split code
16155         out of...
16156         (skip_comment) ... here.  Permit C++ comments in system
16157         headers always.  Warn about C++ comments in user code under
16158         -std=gnu89 -pedantic.
16159         (copy_comment): Use skip_comment.
16160         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
16161         return EOF.
16162         (consider_directive_while_skipping, do_else, do_endif): Call
16163         validate_else unconditionally.
16164         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
16165         text after the conditional in a system header.
16166         * cpplib.h (struct cpp_buffer): Add flag
16167         warned_cplusplus_comments.
16168
16169 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16170
16171         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
16172         Use unshare_all_rtl_1.
16173         (unshare_all_rtl_again): New function.
16174         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
16175
16176         * function.c (purge_addressof_1): Use unshare_all_rtl_again
16177         rather than resetting the 'used' flags ourself.
16178
16179         * toplev.c (rest_of_compilation): Add current_function_decl
16180         to the unshare_all_rtl call.
16181         * tree.h: Prototype unshare_all_rtl.
16182         * rtl.h: Prototype unshare_all_rtl_again here.
16183
16184 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
16185
16186         * genoutput.c (output_prologue): Include ggc.h in generated
16187         files.
16188         * Makefile.in (insn-output.o): Depends on ggc.h.
16189
16190 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
16191             Hans-Peter Nilsson  <hp@bitrange.com>
16192
16193         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
16194         Remove redundant include of xm-ns32k.h.
16195         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
16196         Remove redundant include of xm-ns32k.h.
16197         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
16198         Remove redundant include of xm-ns32k.h.
16199         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
16200
16201         * ns32k/ns32k.h: Update comment on multiply-add instructions.
16202         (TARGET_SWITCHES): Add documentation strings.
16203         (DWARF_FRAME_REGNUM): Override default definition.
16204         (REG_CLASS_CONTENTS): Add comments.
16205         (SUBSET_P): Format to reduce line length.
16206         (SMALL_REGISTER_CLASSES): Make a run time option.
16207         (GO_IF_NONINDEXED_ADDRESS): Reformat.
16208         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
16209         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
16210         (regclass_map): fix typo in comment.
16211         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
16212         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
16213         (trace, reg_or_mem_operand): Delete, unused function.
16214         (calc_address_cost): Small offsets are cheaper than large ones.
16215         (expand_block_move): Generate more efficient code when bytes is a
16216         known at compile time.
16217         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
16218         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
16219         instead of reg_or_mem_operand.
16220
16221         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
16222         not general_operand.  Similarly use "=rm" or stricter, not "=g".
16223         For input operands, use stricter constraints than "g" if not
16224         general_operand.  Similarly use stricter predicate than
16225         "general_operand" when stricter constraints than "g" are present,
16226         except for matching constraints.
16227         (movstrsi): Use "memory_operand" for operands 0 and 1.
16228         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
16229         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
16230         not reg_or_mem_operand.
16231         (udivmoddisi4): Ditto.
16232         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
16233         Use nonimmediate_operand for operand 3, not register_operand.
16234         (udivmoddiqi4_internal): Use register_operand for operand 1, not
16235         reg_or_mem_operand.
16236
16237 2000-01-27  Fred Fish  <fnf@be.com>
16238
16239         * gthr-posix.h: Fix typo; compatibily -> compatibility.
16240         * gthr-single.h: Likewise.
16241         * gthr-solaris.h: Likewise.
16242         * gthr-vxworks.h: Likewise.
16243         * gthr-win32.h: Likewise.
16244         * gthr.h: Likewise.
16245
16246 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
16247
16248         * cppinit.c: Add " (cpplib)" to end of string printed by
16249         -v / --version.
16250
16251 2000-01-27  Richard Henderson  <rth@cygnus.com>
16252
16253         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
16254         testing for a signed comparison.
16255         (alpha_emit_floatuns): New.
16256         * alpha-protos.h: Declare it.
16257         * alpha.md (floatunsdisf2, floatunsdidf2): New.
16258         (extendsfdf2): Tidy.
16259
16260 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
16261
16262         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
16263         no -g option specifying debugging format, default to -gstabs+.
16264
16265 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
16266
16267         * calls.c (special_function_p): New argument fork_or_exec.
16268         (expand_call): When profile_arc_flag is set and the function
16269         is in the fork_or_exec group, call __bb_fork_func first.
16270         * libgcc2.c, _bb module (__bb_fork_func): New function.
16271         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
16272         output file.
16273         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
16274         * tree.h (special_function_p): Update prototype.
16275
16276 2000-01-26  Richard Henderson  <rth@cygnus.com>
16277
16278         * alpha.c (alpha_split_tfmode_pair): New.
16279         * alpha-protos.h: Declare it.
16280         * alpha.md (abstf2, negtf2): New.
16281         (movtf insn): Add input G constraint.
16282         (movtf splitter): Use alpha_split_tfmode_pair.
16283
16284 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16285
16286         * i386/cygwin.h: PROTO -> PARAMS.
16287
16288 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
16289
16290         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
16291         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
16292         using _Qp_cmp/_Q_cmp and testing the return value.
16293         (print_operand): Call reverse_condition_maybe_unordered if
16294         we are handling CCFPmode or CCFPEmode.
16295         Handle ORDERED, UN* and LTGT comparisons.
16296         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
16297         if not TARGET_HARD_QUAD.
16298         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
16299         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
16300         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
16301         Adjust gen_b* calls so that they reflect return comparison of
16302         sparc_emit_float_lib_cmp.
16303
16304 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16305
16306         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
16307         incoming operands array is large enough for one more operand.
16308         (alpha_emit_xfloating_arith): Likewise.
16309
16310 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16311
16312         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
16313         file with one line and no trailing newline.
16314         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
16315         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
16316         checking if the match is on the line.
16317         * fixinc/gnu-regex.c: Provide regerror not __regerror.
16318
16319 2000-01-25  Richard Henderson  <rth@cygnus.com>
16320
16321         * sparc.c (output_cbranch): Fix accidental squashing of the
16322         fp branch pre-delay nop.
16323
16324 2000-01-25  Richard Henderson  <rth@cygnus.com>
16325
16326         * tree.def (UNNE_EXPR): Remove.
16327         * c-typeck.c (build_binary_op): Don't handle it.
16328         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
16329
16330         * rtl.def (UNNE): Remove.
16331         (LTGT): Add.
16332         * jump.c (reverse_condition): Update accordingly.
16333         (swap_condition): Likewise.
16334         (comparison_dominates_p): Handle unordered comparisons.
16335         (reverse_condition_maybe_unordered): New.
16336         * rtl.h (reverse_condition_maybe_unordered): Declare.
16337
16338         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
16339         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
16340         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
16341         * sparc.md (bltgt): New.
16342
16343 2000-01-25  Nick Clifton  <nickc@redhat.com>
16344
16345         * emit-rtl.c (emit_insn): Only check machine class insns for
16346         improper emission of a RETURN.
16347
16348 2000-01-25  Richard Henderson  <rth@cygnus.com>
16349
16350         * Makefile.in (flow.o): Depend on $(EXPR_H).
16351         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
16352         duplicate the structure of diddle_return_value for keeping regs live.
16353
16354 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16355
16356         * loop.c (current_loop_info): Delete.
16357         (consec_sets_invariant_p): Add loop argument, update callers.
16358         (get_condition_for_loop): Likewise.
16359         (count_nonfixed_reads, update_giv_derive): Likewise.
16360         (simplify_giv_expr, general_induction_var): Likewise.
16361         (consec_sets_giv, recombine_givs): Likewise.
16362         (move_movables): Delete loop_start and loop_end arguments,
16363         add loop argument, and update callers.
16364         (find_mem_givs, check_final_value): Likewise.
16365         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
16366         (loop_invariant_p): Rename from invariant_p, add loop argument, and
16367         update callers.
16368         (basic_induction_var): Add loop argument, delete loop_level argument,
16369         and update callers.
16370         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
16371         add loop argument, and update callers.
16372         (find_splittable_regs, find_splittable_givs): Likewise.
16373         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
16374         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
16375         (biv_total_increment): Delete loop_start and loop_end arguments;
16376         update callers.
16377         (precondition_loop_p): Delete loop_start and loop_info arguments;
16378         update callers.
16379         * loop.h (get_condition_for_loop): Add loop argument.
16380         (biv_total_increment): Delete loop_start and loop_end arguments.
16381         (precondition_loop_p): Delete loop_start and loop_info arguments;
16382         add loop argument.
16383         (final_biv_value): Delete loop_start and loop_end arguments;
16384         add loop argument.
16385         (final_giv_value, back_branch_in_range_p): Likewise.
16386
16387 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16388
16389         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
16390
16391 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16392
16393         * Makefile.in (c-gperf.h) : Change the "See" pointer to
16394         point to the new "generated_files" doc.
16395
16396 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16397
16398         * config/fp-bit.c (_unord_f2): Fix typo.
16399
16400 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16401
16402         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
16403         c-typeck.c, objc/objc-act.c: Remove all references to obstack
16404         functions obsoleted by GC, such as push_obstacks_nochange,
16405         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
16406         and code which existed only to decide whether or not to call
16407         them.  Remove now-unused NESTED argument from start_function;
16408         all callers changed.  Do not change behavior based on ggc_p.
16409         The use of the ixp_obstack in c-iterate.c and the util_obstack
16410         in objc/objc-act.c remain; these are not obsoleted by garbage
16411         collection.
16412         * c-tree.h: Update prototype for start_function.
16413
16414         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
16415
16416 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16417
16418         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
16419         mips16.
16420
16421 2000-01-25  Richard Henderson  <rth@cygnus.com>
16422
16423         * sparc-protos.h (select_cc_mode): Declare.
16424         * sparc.c (select_cc_mode): New.  Handle unordered compares.
16425         (output_cbranch): Always reverse via code change.  Handle
16426         unordered compares.  Factor tests and string updates.
16427         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
16428         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
16429         * sparc.md (bunordered, bordered): New.
16430         (bungt, bunlt, buneq, bunge, bunle): New.
16431
16432 2000-01-25  Richard Henderson  <rth@cygnus.com>
16433
16434         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
16435         * ggc-common.c (ggc_add_rtx_varray_root): New.
16436         (ggc_mark_rtx_varray): New.
16437         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
16438         functions down below ggc_mark_foo.
16439         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
16440
16441 2000-01-25  Richard Henderson  <rth@cygnus.com>
16442
16443         * alpha.c (secondary_reload_class): Don't allocate a secondary
16444         for integral mode memories into FLOAT_REGS.  Rearrange the more
16445         complicated memory expression inward.
16446
16447 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16448
16449         * inclhack.def: Fixes to play nicer with FreeBSD, and
16450         corrections to comments.
16451         (cxx_unready): Add select expression.
16452         (irix_sockaddr): Add bypass expression.
16453         (machine_ansi_h_va_list): New fix.
16454         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16455         Split out addition of "#include <stdarg.h>" to...
16456         (stdio_stdarg_h): ... here.
16457         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16458         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16459         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16460         size_t.
16461         (ultrix_ifdef): Tighten up select expression.
16462
16463         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16464         re_ct and max_mach to avoid use of shell.  Make printed names
16465         match names in inclhack.def.  Use static copyright date.
16466         Don't count c_test and test expressions as requiring regex_t
16467         slots.  Add some commentary.
16468         * inclhack.tpl: Do not include the 'This script contains N
16469         fixup scripts' line if PROGRAM is defined.  Use static
16470         copyright date.
16471
16472 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16473
16474         * dwarf2out.c: include "varray.h", not dyn-string.h.
16475         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16476         (addr_const_to_string, addr_to_string): Lose.
16477         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16478         (struct dw_val_struct): val_addr is now an rtx.
16479         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16480         (used_rtx_varray): New varray.
16481         (dwarf2out_init): Initialize it.
16482         (save_rtx): New fn.
16483         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16484         addr_to_string.
16485         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16486         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16487         * Makefile.in (dwarf2out.o): Update dependencies.
16488
16489 2000-01-24  Richard Henderson  <rth@cygnus.com>
16490
16491         * i386.c (i386_dwarf_output_addr_const): New.
16492         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16493
16494         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16495         if defined.
16496         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16497         * i386.c (i386_simplify_dwarf_addr): New.
16498         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16499
16500 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16501
16502         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16503         TYPE_STUB_DECL is NULL.
16504
16505 2000-01-24  Richard Henderson  <rth@cygnus.com>
16506
16507         * builtins.c (expand_tree_builtin): Move ...
16508         * c-common.c (expand_tree_builtin): ... here.
16509
16510 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16511
16512         * loop.h (LOOP_INFO): New accessor macro.
16513         * basic-block.h (struct loop): Rename field `info' to `aux'.
16514         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16515         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16516         * unroll.c (loop_iterations, unroll_loop): Likewise.
16517
16518 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16519
16520         * config/i386/t-cygwin: Accomodate new winsup directory layout
16521         when searching for include files.
16522
16523 2000-01-24  Richard Henderson  <rth@cygnus.com>
16524
16525         * rtl.def: Add unordered fp comparisions.
16526         * tree.def: Likewise.
16527         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16528
16529         * builtins.c (expand_tree_builtin): New function.
16530         * c-typeck.c (build_function_call): Use it.
16531         (build_binary_op): Support unordered compares.
16532         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16533
16534         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16535         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16536         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16537         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16538         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16539         return UNKNOWN.
16540         (swap_condition): Handle unordered compares.
16541         (thread_jumps): Check can_reverse before reversing.
16542         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16543         reversed for FP.
16544
16545         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16546         setcc is present before acking for cmp_optab.  Update all callers.
16547         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16548         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16549         * expr.c (expand_expr): Likewise.  Support unordered compares.
16550         (do_jump, do_store_flag): Likewise.
16551         * expr.h (enum libfunc_index): Add unordered compares.
16552
16553         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16554         (DPBIT_FUNCS): Add _unord_df.
16555         * config/fp-bit.c (_unord_f2): New.
16556         * fp-test.c (main): Try unordered compare builtins.
16557
16558         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16559         * alpha.c (alpha_comparison_operator): Check mode properly.
16560         (alpha_swapped_comparison_operator): Likewise.
16561         (signed_comparison_operator): Likewise.
16562         (alpha_fp_comparison_operator): New.
16563         (alpha_emit_conditional_branch): Handle unordered compares.
16564         * alpha.h (PREDICATE_CODES): Update.
16565         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16566         (bunordered, bordered): New.
16567
16568 2000-01-24  Richard Henderson  <rth@cygnus.com>
16569
16570         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16571         * alpha.md (movtf): New expander, insn, and splitter.
16572
16573 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16574
16575         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16576         dead registers.
16577
16578 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16579
16580         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16581         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16582          REG_ALLOC_ORDER): Add frame pointer
16583         (FRAME_POINTER_REGNUM): Set to 20
16584         (HARD_FRAME_POINTER_REGNUM): New macro.
16585         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16586         to HARD_FRAME_POINTER.
16587         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16588         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16589         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16590         (HI_REGISTER_NAMES): Add "frame".
16591         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16592         (debug_reg): Handle FRAME_POINTER_REGNUM.
16593         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16594         GENERAL_REGS and INDEX_REGS.
16595         * i386.c (SAVED_REGS_FIRST): new macro.
16596         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16597         (ix86_decompose_address, memory_address_length): Likewise.
16598         (regclass_map): Add frame pointer.
16599         (call_insn_operand): Handle frame_pointer_rtx.
16600         (reg_no_sp_operand): Likewise.
16601         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16602         (print_operand, legitimize_pic_address): Fix formating.
16603         (ix86_compute_frame_size): Make static, update prototype, new
16604         parameters padding1, padding2, use ix86_nsaved_regs, use
16605         stack_alignment_needed.
16606         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16607         to HARD_FRAME_POINTER_REGNUM conversions.
16608         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16609         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16610         (print_reg): Abort on FRAME_POINTER_REGNUM
16611
16612 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16613
16614         * i386.h (PREDICATE_CODES): Add aligned_operand.
16615         * i386.c (aligned_operand): New function.
16616         (ix86_aligned_p): Kill.
16617         * i386.md (movhi_1): Emit mov for aligned operands.
16618         (promoting peep2s): Use aligned_operand.
16619
16620 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16621
16622         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16623         expression to allow underscores in macro names.
16624         (fix_char_macro_defines): Increment scanning pointer.
16625
16626 2000-01-23  Richard Henderson  <rth@cygnus.com>
16627
16628         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16629         * alpha/osf5.h: New file.
16630         * configure.in (alpha-*-osf5): Add it to tm_file.
16631
16632         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16633
16634         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16635         (alpha_emit_xfloating_cvt, function_arg): Declare.
16636         * alpha.c (alpha_emit_conditional_branch): Call
16637         alpha_emit_xfloating_compare for TFmode compares.
16638         (alpha_lookup_xfloating_lib_func): New.
16639         (alpha_compute_xfloating_mode_arg): New.
16640         (alpha_emit_xfloating_libcall): New.
16641         (alpha_emit_xfloating_arith): New.
16642         (alpha_emit_xfloating_compare): New.
16643         (alpha_emit_xfloating_cvt): New.
16644         (print_operand): Add default abort case.
16645         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16646         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16647         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16648         (RETURN_IN_MEMORY): True for TF/TCmode.
16649         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16650         (FUNCTION_ARG): Move to function_arg.
16651         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16652         (ASM_OUTPUT_LONG_DOUBLE): New.
16653         (ASM_OUTPUT_DOUBLE): Always output bits.
16654         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16655         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16656         (extenddftf2, trunctfdf2): New.
16657
16658 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16659
16660         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16661         * config/sparc/sol2.h: ... here.
16662
16663 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16664
16665         * basic-block.h (struct loops): New field `levels'.
16666         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16667         (flow_loop_level_compute): Initialise level to 1.
16668         (flow_loops_find): Set loops->levels.
16669         (flow_loops_dump): Print loops->levels.
16670
16671 2000-01-23  Richard Henderson  <rth@cygnus.com>
16672
16673         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16674         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16675
16676 2000-01-23  Richard Henderson  <rth@cygnus.com>
16677
16678         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16679         * i386.h (DBX_REGISTER_NUMBER): Use them.
16680         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16681         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16682         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16683         * i386/sequent.h: Kill incorrect comment.
16684
16685 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16686
16687         * ggc-page.c (struct page_entry): Make `context_depth' an
16688         `unsigned short'.
16689         (struct globals): Likewise.
16690
16691 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16692
16693         * loop.c (check_dbra_loop): When checking a loop for
16694         reversability, check the source of any stores to ensure
16695         they don't depend on an initial value.
16696
16697 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16698
16699         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16700
16701 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16702
16703         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16704         'pz_scan' into scope of entire function.  Only affects
16705         compiles with -DDEBUG.
16706
16707 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16708
16709         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16710         section naming to that prior to 2000-01-07 patch.
16711         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16712         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16713         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16714         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16715         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16716
16717 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16718
16719         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16720         constant.
16721
16722 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16723
16724         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16725         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16726
16727 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16728
16729         * cpphash.c (change_newlines): Delete function.
16730         (struct argdata): Delete 'newlines' and 'use_count' fields.
16731         (macroexpand): Remove code referencing those fields.
16732
16733 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16734
16735         * loop.c (loops_info): New variable.
16736         (loop_optimize): Allocate loops->array and free it on exit.
16737         Allocate memory for loops_info and assign to each loop,
16738         replacing alloca.
16739         (find_and_verify_loops): Do not allocate loops->array.
16740
16741 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16742
16743         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16744
16745 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16746
16747         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16748         pseudos if expanded after first flow.
16749         (movdi_pic_label_ref): Likewise.
16750
16751 2000-01-20  Richard Henderson  <rth@cygnus.com>
16752
16753         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16754
16755 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16756
16757         * Makefile.in (fixinc.sh): Depend on specs.
16758         * fixinc/Makefile.in: Add rule to create machname.h.
16759         (fixlib.o): Depend on machname.h.
16760         * fixinc/fixtests.c (machine_name): New test.
16761         * fixinc/fixfixes.c (machine_name): New fix.
16762         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16763         the machine_name test and fix.
16764         * fixinc/fixlib.h: Prototype it.
16765         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16766         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16767
16768         * gcc.c (do_spec_1) [case P]: Take care not to create
16769         identifiers with three leading or trailing underscores.
16770
16771         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16772         (fixincl): Don't specify libraries twice on link line.
16773         (gnu-regex.o): Remove special rule.
16774         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16775         defined by config.h.  Do not define _REGEX_RE_COMP.
16776         (regcomp): Allocate and initialize a fastmap.
16777         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16778
16779 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16780
16781         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16782
16783 2000-01-19  Richard Henderson  <rth@cygnus.com>
16784
16785         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16786         arguments with BB.  Update all callers.  Tidy line wrapping.
16787
16788 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16789
16790         * emit-rtl.c (try_split): Return last_insn if we split the
16791         last_insn.
16792
16793 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16794
16795         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16796         (ix86_initial_elimination_offset): Declare.
16797         * i386.c (ix86_nsaved_regs): Break out from ...
16798         (ix86_can_use_return_insn_p): ... here.
16799         (ix86_emit_save_regs): Break out from ...
16800         (ix86_expand_prologue): ... here.
16801         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16802         out from ...
16803         (ix86_expand_epilogue): ... here.
16804         (ix86_compute_frame_size): Make static, add prototype.
16805         (ix86_initial_elimination_offset): Break out from ...
16806         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16807
16808 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16809
16810         * recog.h (OUT_FCN): Delete.
16811
16812         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16813
16814 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16815
16816         * cppalloc.c: PROTO -> PARAMS.
16817         * cpperror.c: Likewise.
16818         * cppfiles.c: Likewise.
16819         * cpplib.c: Likewise.
16820         * cpplib.h: Likewise.
16821
16822         * config/arm/arm-protos.h: PROTO -> PARAMS.
16823         * config/arm/arm.c: Likewise.
16824         * config/c4x/c4x.c: Likewise.
16825         * config/fr30/fr30-protos.h: Likewise.
16826         * config/nextstep.c: Likewise.
16827         * config/pa/pa.c: Likewise.
16828         * config/pj/pj.c: Likewise.
16829         * config/rs6000/rs6000.c: Likewise.
16830         * config/v850/v850-protos.h: Likewise.
16831         * config/v850/v850.c: Likewise.
16832
16833 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16834
16835         * i370-protos.h: New file.
16836
16837         * i370.c: Include tm_p.h.  Fix compile time warnings.
16838
16839         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16840         warnings.
16841
16842         * i370.md: Likewise.
16843
16844 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16845
16846         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16847         (target_isinf, target_isnan, eisnan): Mark parameter with
16848         ATTRIBUTE_UNUSED.
16849         (eiisinf): Wrap in INFINITY.
16850         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16851         (ibmtoe): Remove unused variable `rndsav'.
16852
16853 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16854
16855         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16856         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16857
16858 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16859
16860         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16861         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16862         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16863
16864         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16865         Recognize Emacs mode markers also.
16866         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16867         C++ comments in C++ headers.  Call is_cxx_header only if
16868         necessary.
16869
16870         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16871         bypass for ncurses.
16872         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16873         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16874         ... these, which use the new C fixes.
16875         (math_exception): Escape literal '+' in bypass expression.
16876
16877         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16878         Regenerate.
16879
16880 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16881
16882         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16883         inside the MEM.
16884
16885 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16886
16887         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16888         prior to calling scan_loop.
16889
16890 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16891
16892         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16893         (split_branches, calc_live_regs): Likewise.
16894
16895 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16896
16897         * sh.md (fpu_single, fp_mode): New attributes.
16898
16899 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16900
16901         * loop.c (current_loop_info): Renamed from loop_info_data
16902         and changed to a pointer.
16903         (loop_optimize): Allocate loop_info structure for each loop
16904         and initialise to zero.
16905         (scan_loop): Set current_loop_info.
16906
16907         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16908         on iteration_var.
16909
16910 2000-01-19  Richard Henderson  <rth@cygnus.com>
16911
16912         * stupid.c: Die die die.
16913         * Makefile.in (OBJS): Remove stupid.o.
16914         (stupid.o): Likewise.
16915
16916         * except.c (emit_eh_context): Don't emit USEs for stupid.
16917         * explow.c (probe_stack_range): Likewise.
16918         * flags.h (obey_regdecls): Remove.
16919         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16920         when not optimizing.
16921         (life_analysis): Limit data collection when not optimizing.
16922         (mark_regs_live_at_end): Always mark the return value registers.
16923         (mark_used_regs): Remove dummy RETURN case.
16924         (print_rtl_with_bb): Don't consult obey_regdecls.
16925         * function.c (use_variable, use_variable_after): Remove.
16926         (assign_parms): Consult optimize not obey_regdecls.
16927         (expand_function_start): Don't emit USEs for stupid.
16928         (expand_function_end): Likewise.
16929         * global.c (build_insn_chain): Export.
16930         * integrate.c (expand_inline_function): Kill return-value USE
16931         handling code.
16932         * jump.c (jump_optimize_1): Do simple jump optimizations and
16933         dead code elimination.
16934         (calculate_can_reach_end): Remove check_deleted argument.
16935         (delete_insn): Patch out insns even when not optimizing.
16936         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16937         * rtl.h (use_variable, use_variable_after): Remove declarations.
16938         (build_insn_chain): Declare.
16939         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16940         (expand_end_bindings): Likewise.
16941         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16942         * toplev.c (obey_regdecls): Remove.
16943         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16944         flow1, local-alloc, and reload.
16945         (main): Don't set obey_regdecls.
16946
16947         * config/nextstep.c (handle_pragma): Likewise.
16948
16949         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16950
16951         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16952
16953 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16954
16955         * alpha-protos.h: PROTO -> PARAMS.
16956         * alpha.c: Likewise.
16957         * elf.h: Likewise.
16958         * h8300.c: Likewise.
16959         * i386-protos.h: Likewise.
16960         * i386.c: Likewise.
16961         * m32r-protos.h: Likewise.
16962         * m32r.c: Likewise.
16963         * mips.c: Likewise.
16964         * mips.md: Likewise.
16965         * gmon-sol2.c: Likewise.
16966         * sparc.c: Likewise.
16967
16968 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16969
16970         * ns32k-protos.h: New file.
16971
16972         * ns32k.c: Fix compile time warnings.
16973
16974         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16975         warnings.
16976
16977         * ns32k.md: Likewise.
16978
16979 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16980
16981         * vax-protos.h: New file.
16982
16983         * vax.c: Fix compile time warnings.
16984
16985         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16986         warnings.
16987
16988         * vax.md: Likewise.
16989
16990         * vaxv.md: Likewise.
16991
16992 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16993
16994         * romp-protos.h: New file.
16995
16996         * romp.c: Fix compile time warnings.
16997
16998         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16999         warnings.
17000
17001         * romp.md: Likewise.
17002
17003 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17004
17005         * we32k-protos.h: New file.
17006
17007         * we32k.c: Fix compile time warnings.
17008
17009         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
17010         warnings.
17011
17012 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17013
17014         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
17015
17016         * except.c (eh_regs): Likewise.
17017
17018         * final.c (output_operand): Likewise.
17019
17020         * fold-const.c (target_isinf, target_isnan): Likewise.
17021
17022 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17023
17024         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
17025         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
17026
17027         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
17028         when optimize_size.
17029         (clrstrsi): Rewrite.
17030         (strsethi, strsetqi): New expanders.
17031         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
17032         (cmpstrsi): Emit compare insn before cmpstrsi_1
17033         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
17034         (strlensi_1): Likewise.
17035         (cmpstrsi_1): Likewise; do not output compare.
17036         (strlen expander): Do not unroll when optimizing for size.
17037         (*subsi3_carry): Rename to subsi3_carry
17038         (addqi3_cc): New pattern.
17039         * i386.h (processor_costs): Add move_ratio field.
17040         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
17041         * i386.c (*_cost): Set move_ratio.
17042         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
17043         (x86_expand_strlensi_1): Rewrite the main loop.
17044
17045 2000-01-17  Richard Henderson  <rth@cygnus.com>
17046
17047         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
17048         * cse.c (find_comparison_args, fold_rtx): Likewise.
17049         * integrate.c (subst_constants): Likewise.
17050         * loop.c (get_condition): Likewise.
17051
17052         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
17053
17054         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
17055
17056 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
17057
17058         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
17059         (RESTORE_WARN_FLAGS): Unpack it.
17060         Change semantic type of extension to ttype.
17061         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
17062         * c-parse.y, c-parse.c, objc/objc-parse.y,
17063         objc/objc-parse.c: Regenerate.
17064
17065 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
17066
17067         * fixinc/fixlib.c: Add copyright notice.
17068         (compile_re): New function.
17069         * fixinc/fixlib.h: Prototype compile_re.
17070
17071         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
17072         Use compile_re to compile regular expressions.
17073
17074         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
17075         where the pattern matched.
17076
17077         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
17078         use 'replace'.
17079         (ultrix_ansi_compat): Likewise.
17080         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
17081         add egrep test.
17082         (interactv_add2, interactv_add3): Delete.
17083         (x11_sprintf): Don't use filename glob.
17084         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
17085         Regenerate.
17086
17087 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17088
17089         * print-rtl.c: PROTO -> PARAMS.
17090         * real.c: Likewise.
17091         * reg-stack.c: Likewise.
17092         * resource.c: Likewise.
17093         * sdbout.h: Likewise.
17094         * simplify-rtx.c: Likewise.
17095         * stor-layout.c: Likewise.
17096         * stupid.c: Likewise.
17097         * xcoffout.c: Likewise.
17098         * xcoffout.h: Likewise.
17099
17100 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17101
17102         * toplev.c: PROTO -> PARAMS.
17103         * toplev.h: Likewise.
17104         * tree.c: Likewise.
17105         * tree.h: Likewise.
17106         * unroll.c: Likewise.
17107         * varasm.c: Likewise.
17108         * varray.c: Likewise.
17109         * varray.h: Likewise.
17110
17111 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17112
17113         * reload.c: PROTO -> PARAMS.
17114         * reload.h: Likewise.
17115         * reload1.c: Likewise.
17116         * reorg.c: Likewise.
17117         * resource.h: Likewise.
17118         * rtl.c: Likewise.
17119         * rtl.h: Likewise.
17120         * rtlanal.c: Likewise.
17121         * sbitmap.h: Likewise.
17122         * sdbout.c: Likewise.
17123         * stack.h: Likewise.
17124         * stmt.c: Likewise.
17125         * system.h: Likewise.
17126
17127 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17128
17129         * machmode.h: PROTO -> PARAMS.
17130         * mbchar.h: Likewise.
17131         * mips-tdump.c: Likewise.
17132         * mips-tfile.c: Likewise.
17133         * optabs.c: Likewise.
17134         * output.h: Likewise.
17135         * prefix.c: Likewise.
17136         * profile.c: Likewise.
17137         * protoize.c: Likewise.
17138         * real.h: Likewise.
17139         * recog.c: Likewise.
17140         * recog.h: Likewise.
17141         * regclass.c: Likewise.
17142         * regmove.c: Likewise.
17143         * regs.h: Likewise.
17144
17145 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17146
17147         * ggc-common.c: PROTO -> PARAMS.
17148         * ggc-page.c: Likewise.
17149         * ggc-simple.c: Likewise.
17150         * ggc.h: Likewise.
17151         * global.c: Likewise.
17152         * graph.c: Likewise.
17153         * gthr-win32.h: Likewise.
17154         * haifa-sched.c: Likewise.
17155         * halfpic.h: Likewise.
17156         * integrate.c: Likewise.
17157         * integrate.h: Likewise.
17158         * jump.c: Likewise.
17159         * lcm.c: Likewise.
17160         * local-alloc.c: Likewise.
17161         * loop.c: Likewise.
17162         * loop.h: Likewise.
17163
17164 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17165
17166         * genattr.c: PROTO -> PARAMS.
17167         * genattrtab.c: Likewise.
17168         * gencheck.c: Likewise.
17169         * gencodes.c: Likewise.
17170         * genconfig.c: Likewise.
17171         * genemit.c: Likewise.
17172         * genextract.c: Likewise.
17173         * genflags.c: Likewise.
17174         * gengenrtl.c: Likewise.
17175         * genopinit.c: Likewise.
17176         * genoutput.c: Likewise.
17177         * genpeep.c: Likewise.
17178         * genrecog.c: Likewise.
17179
17180 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
17181
17182         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
17183
17184 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17185
17186         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
17187         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
17188         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
17189         * configure, config.in: Rebuilt.
17190
17191 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
17192
17193         * config/i386/i386.md: Add peephole to merge successive stack
17194         adjusts.
17195
17196 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
17197
17198         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
17199         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
17200         when walking backwards to find all the parameter loads when
17201         the basic block ends in a call.
17202
17203 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17204
17205         * loop.c (this_loop_info): Delete.
17206         (uid_loop): Add in place of uid_loop_num.  All uses updated.
17207         (loop_number_exit_count): Delete and replace with entry in loop
17208         structure.  All uses updated.
17209         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17210         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17211         (loop_outer_loop): Likewise.
17212         (loop_invalid, loop_number_exit_labels): Likewise.
17213         (loop_used_count_register): Delete and replace with entry in
17214         loop_info structure.
17215         (find_and_verify_loops): Add loops argument.
17216         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
17217         loop_end, etc. arguments with loop structure pointer.  All callers
17218         changed.
17219         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
17220         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
17221         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
17222         (insert_bct): Likewise.
17223         (basic_induction_var): New argument level.
17224         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
17225         vtop, and cont.  Add used_count_register.
17226         (uid_loop): Delete declaration.
17227         (loop_number_exit_count): Likewise.
17228         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
17229         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
17230         (loop_outer_loop, loop_used_count_register): Likewise.
17231         (loop_invalid, loop_number_exit_labels): Likewise.
17232         (unroll_loop): Replace loop_start and loop_end arguments
17233         with loop structure pointer.
17234         (loop_precondition_p, loop_iterations): Likewise.
17235         Include basic-block.h.
17236         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
17237         with loop structure pointer.
17238         (loop_precondition_p, loop_iterations): Likewise.
17239         * basic-block.h (struct loop): New entries vtop, cont,
17240         cont_dominator, start, end, top, scan_start, exit_labels,
17241         exit_count.
17242         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
17243
17244 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17245
17246         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
17247
17248 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
17249
17250         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
17251
17252 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17253
17254         * pdp11-protos.h: New file.
17255
17256         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
17257         time warnings.
17258
17259         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
17260         warnings.
17261
17262         * pdp11.md: Likewise.
17263
17264         * 2bsd.h: Likewise.
17265
17266 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17267
17268         * mn10300-protos.h: New file.
17269
17270         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17271         time warnings.
17272
17273         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
17274         warnings.
17275
17276         * mn10300.md: Likewise.
17277
17278 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17279
17280         * mn10200-protos.h: New file.
17281
17282         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
17283         time warnings.
17284
17285         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
17286         warnings.
17287
17288         * mn10200.md: Likewise.
17289
17290 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17291
17292         * h8300-protos.h: New file.
17293
17294         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
17295         time warnings.
17296
17297         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
17298         warnings.
17299
17300         * h8300.md: Likewise.
17301
17302 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17303
17304         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
17305         (asm_emit_uninitialised): Likewise.
17306
17307 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
17308
17309         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
17310         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
17311
17312 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17313
17314         * config/mips/mips.c (override_options): Don't turn on extra
17315         alignment for mips16.
17316
17317 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17318
17319         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
17320         eabi, and make sure queued POSTINCREMENT rtl is emitted at
17321         the right point.
17322
17323 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17324
17325         * builtins.c (PAD_VARARGS_DOWN): Define.
17326         (std_expand_builtin_va_arg): Use the above macro.
17327         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
17328         * tm.texi (Register Arguments): Document the above macro.
17329
17330 2000-01-14  Nick Clifton  <nickc@cygnus.com>
17331
17332         * emit-rtl.c (emit_insn): If checking is enabled, make sure
17333         that this function has not been used to emit a jump
17334         instruction.
17335
17336         * jump.c (return_jump_1): Cope with being passed a null rtx.
17337
17338 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17339
17340         * eh-common.h: PROTO -> PARAMS.
17341         * emit-rtl.c: Likewise.
17342         * errors.c: Likewise.
17343         * errors.h: Likewise.
17344         * except.c: Likewise.
17345         * except.h: Likewise.
17346         * explow.c: Likewise.
17347         * expmed.c: Likewise.
17348         * expr.c: Likewise.
17349         * expr.h: Likewise.
17350         * final.c: Likewise.
17351         * fix-header.c: Likewise.
17352         * flow.c: Likewise.
17353         * fold-const.c: Likewise.
17354         * function.c: Likewise.
17355         * function.h: Likewise.
17356         * gcc.c: Likewise.
17357         * gcov-io.h: Likewise.
17358         * gcov.c: Likewise.
17359         * gcse.c: Likewise.
17360
17361 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17362
17363         * sh-protos.h: New file.
17364
17365         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
17366         Add static prototypes.  Fix compile time warnings.
17367
17368         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
17369         * sh.md: Likewise.
17370         * elf.h: Likewise.
17371
17372 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17373
17374         * arc-protos.h: New file.
17375
17376         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
17377         time warnings.
17378
17379         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
17380         warnings.
17381
17382         * arc.md: Likewise.
17383
17384 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17385
17386         * dsp16xx-protos.h: New file.
17387
17388         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
17389         time warnings.
17390
17391         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
17392         warnings.
17393
17394         * dsp16xx.md: Likewise.
17395
17396 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17397
17398         * convex-protos.h: New file.
17399
17400         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
17401         time warnings.
17402
17403         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
17404         warnings.
17405
17406 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17407
17408         * elxsi-protos.h: New file.
17409
17410         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
17411         time warnings.
17412
17413         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
17414         warnings.
17415
17416         * elxsi.md: Likewise.
17417
17418 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17419
17420         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
17421         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
17422         match the comment for MIPS16.
17423
17424 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
17425
17426         * flow.c (split_edge): Do not call set_block_for_insn if we
17427         do not have a basic_block_for_insn structure.
17428
17429         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
17430         and destination functions are 32bit aligned within the trampoline.
17431         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
17432         (TRAMPOLINE_ALIGNMENT): Define.
17433
17434         * cse.c (cse_insn): When changing (set (pc) (reg)) to
17435         (set (pc) (label_ref)), verify the change creates a valid insn.
17436
17437         * fr30.c (call_operand): Tighten and rework to match rules for
17438         call RTL expressions.
17439         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
17440         * fr30.md (call patterns): Improve constraints.
17441
17442 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
17443
17444         * fr30.c (fr30_expand_epilogue): Revert last change.
17445         Use emit_jump_insn for the return insn.
17446
17447 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17448                           Stan Cox  <scox@cygnus.com>
17449
17450         * predict.c: New file. Preliminary infrastructure work for static
17451         branch prediction and basic block reordering.
17452         * basic-block.h: Add prototype for estimate_probability.
17453         * Makefile.in: Add rules for predict.o.
17454
17455 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17456
17457         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17458         * fixinc/*: Likewise.
17459
17460 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17461
17462         * cccp.c: PROTO -> PARAMS.
17463         * cexp.y: Likewise.
17464         * collect2.c: Likewise.
17465         * combine.c: Likewise.
17466         * convert.h: Likewise.
17467         * cse.c: Likewise.
17468         * dbxout.c: Likewise.
17469         * dbxout.h: Likewise.
17470         * diagnostic.c: Likewise.
17471         * doprint.c: Likewise.
17472         * dwarf2out.c: Likewise.
17473         * dwarf2out.h: Likewise.
17474         * dwarfout.c: Likewise.
17475         * dwarfout.h: Likewise.
17476         * dyn-string.h: Likewise.
17477
17478 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17479
17480         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17481         macro conditionals guarding use.
17482
17483         * dwarf2out.c: Include "tm_p.h".
17484
17485         * function.c (locate_and_pad_parm): Mark parameter with
17486         ATTRIBUTE_UNUSED.
17487         (expand_function_end): Likewise for variable `context'.
17488
17489         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17490
17491 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17492
17493         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17494         register to prevent compile time warnings.
17495
17496 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17497
17498         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17499         to avoid -Wtraditional warning.
17500
17501 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17502
17503         * 1750a-protos.h: New file.
17504
17505         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17506         time warnings.
17507
17508         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17509         warnings.
17510
17511         * 1750a.md: Likewise.
17512
17513 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17514
17515         * a29k-protos.h: New file.
17516
17517         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17518         time warnings.
17519
17520         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17521         warnings.
17522
17523 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17524
17525         * clipper-protos.h: New file.
17526
17527         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17528         time warnings.
17529
17530         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17531         warnings.
17532
17533 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17534
17535         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17536
17537 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17538
17539         * configure.in (--enable-new-gxx-abi): New option.
17540         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17541         * Makefile.in (GXX_ABI_FLAG): New variable.
17542         * configure: Regenerate.
17543
17544 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17545
17546         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17547         * tm.texi (FORCE_STRUCT_BLK): Document.
17548         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17549
17550 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17551
17552         * config/ns32k/ns32k.md: Revert Jan 9 change.
17553
17554         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17555         to a mode-test, if the predicate is address_operand.
17556
17557 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17558
17559         * combine.c (if_then_else_cond): Be careful about what kinds
17560         of RTL expressions are passed to operand_subword.
17561
17562         * flow.c (split_edge): If we have to insert a new jump, make
17563         sure to associate it with a basic block.
17564
17565         * flow.c (commit_one_edge_insertion): A block with one successor
17566         can end in a JUMP_INSN that is not a simplejump.
17567
17568 2000-01-12  Robert Lipe  <robertl@sco.com>
17569
17570         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17571         (BUILD_VA_LIST_TYPE): Define.
17572         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17573         with crtstuff.c.
17574
17575 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17576
17577         * cccp.c (do_pragma): Add cast to (char *).
17578
17579 2000-01-12  Richard Henderson  <rth@cygnus.com>
17580             Fred Fish  <fnf@be.com>
17581             Jason Merrill  <jason@cygnus.com>
17582
17583         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17584         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17585         * i386/beos-elf.h, i386/beos-pe.h: New files.
17586
17587         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17588         * cross-make (SYSTEM_HEADER_DIR): Define using
17589         CROSS_SYSTEM_HEADER_DIR.
17590
17591         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17592         (process_command): Use it.
17593         (main): Likewise.  Kill trailing = from env vars.
17594         (build_search_list): Put it back.
17595         * collect2.c (main): Use LIBRARY_PATH_ENV.
17596
17597         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17598         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17599
17600         * tm.texi (Frame Layout): Document SMALL_STACK.
17601         * c-common.c (c_common_nodes_and_builtins): Check it.
17602
17603         * system.h: Undef alloca after including glibc's <stdlib.h>,
17604         if USE_C_ALLOCA is defined.
17605
17606         * gcc.c (set_input): New fn.
17607         (main): After all input files are compiled, reset the input file
17608         info to the first.
17609
17610         * aclocal.m4 (rindex, index): If already defined, don't attempt
17611         to redefine.
17612
17613         * ginclude/varargs.h: (__va_list__): Define ifndef.
17614         * ginclude/stdarg.h: Likewise.
17615
17616         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17617         instead of unsigned char.
17618
17619         * hash.h (true, false, boolean): Undef before enum.
17620
17621         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17622         proper type of "HOST_WIDE_INT *", rather than their natural type of
17623         "unsigned HOST_WIDE_INT *".
17624
17625 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17626
17627         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17628
17629         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17630
17631         * regclass.c (choose_hard_reg_mode): Likewise.
17632
17633         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17634
17635         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17636
17637 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17638
17639         * c-common.c: PROTO -> PARAMS.
17640         * c-common.h: Likewise.
17641         * c-decl.c: Likewise.
17642         * c-iterate.c: Likewise.
17643         * c-lang.c: Likewise.
17644         * c-lex.c: Likewise.
17645         * c-lex.h: Likewise.
17646         * c-parse.in: Likewise.
17647         * c-pragma.c: Likewise.
17648         * c-pragma.h: Likewise.
17649         * c-tree.h: Likewise.
17650         * c-typeck.c: Likewise.
17651         * objc/objc-act.c: Likewise.
17652         * objc/objc-act.h: Likewise.
17653
17654 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17655
17656         * m88k-protos.h: New file.
17657
17658         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17659         time warnings.
17660
17661         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17662
17663         * m88k.md: Likewise.
17664
17665         * tekXD88.h: Likewise.
17666
17667 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17668
17669         * m68k-protos.h: New file.
17670
17671         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17672         time warnings.
17673
17674         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17675
17676         * mot3300.h: Likewise.
17677
17678 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17679
17680         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17681         extract_bitlst.
17682         (extract_bitlist): Declare bitlen.
17683
17684 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17685
17686         * cccp.c: Accept and ignore -lang-fortran.
17687
17688         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17689         qualifiers don't match at any level of pointerness.
17690
17691 2000-01-12  Robert Lipe  <robertl@sco.com>
17692
17693         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17694
17695 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17696
17697         * reload1.c (reload_reg_unavailable): New static variable.
17698         (reload_reg_free_p): Test it.
17699         (reload_reg_free_for_value_p): Test it instead of
17700         reload_reg_used.
17701         (choose_reload_regs_init): Compute it.
17702
17703 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17704
17705         * reorg.c (fill_slots_from_thread): Check modified_in_p
17706         before replacing.
17707
17708 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17709
17710         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17711         these nodes even if INTERNALS is not set.
17712
17713 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17714
17715         * gcse.c (delete_null_pointer_checks_1): Cope when
17716         get_condition cannot determine the condition.
17717
17718 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17719
17720         * toplev.h (set_message_length): Declare.
17721
17722         * diagnostic.c (obstack_chunk_alloc): Define macro.
17723         (obstack_chunk_free): Likewise.
17724         (struct output_buffer): New data structure.
17725         (vmessage): Remove.
17726         (output_maximum_width): New variable.
17727         (doing_line_wrapping, set_message_length, init_output_buffer,
17728         get_output_prefix, output_space_left, emit_output_prefix,
17729         output_newline, output_append, output_puts, dump_output,
17730         vbuild_message_string, build_message_string, build_location_prefix,
17731         voutput_notice, output_printf, line_wrapper_printf,
17732         vline_wrapper_message_with_location):  New functions. Implement
17733         automatic line wrapping.
17734         (v_message_with_decl): Make it handle automatic line wrapping.
17735         (v_error_with_file_and_line): Likewise.
17736         (v_warning_with_file_and_line): Likewise.
17737         (announce_function): Likewise.
17738         (default_print_error_function): Likewise.
17739
17740 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17741
17742         * cpplib.h (struct cpp_options): Change lang_asm to char.
17743         Add lang_fortran.
17744         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17745         done in cpp_handle_option now.
17746         (initialize_builtins): Take out special case code used only by
17747         __STDC_VERSION__.
17748         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17749         if -traditional.  Recognize -lang-fortran and set
17750         lang_fortran, also turn off cplusplus_comments.
17751         (print_help): Document -lang-fortran.
17752         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17753         lang_asm. Ignore all directives other than `# 123 "file"' if
17754         CPP_PREPROCESSED.
17755         (cpp_get_token): If -traditional, don't recognize directives
17756         unless the # is in column 1.
17757         (parse_string): If lang_fortran or lang_asm, silently
17758         terminate strings ('' or "") at end of line.
17759         Remove unnecessary braces.
17760
17761 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17762             Richard Henderson  <rth@cygnus.com>
17763
17764         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17765         as used.
17766         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17767         strict_low_part when possible.
17768
17769 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17770
17771         * alias.c: PROTO -> PARAMS.
17772         * basic-block.h: Likewise.
17773         * bitmap.c: Likewise.
17774         * bitmap.h: Likewise.
17775         * builtins.c: Likewise.
17776         * c-aux-info.c: Likewise.
17777         * caller-save.c: Likewise.
17778         * calls.c: Likewise.
17779
17780 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17781
17782         * Makefile.in (toplev.o): Depend on regs.h.
17783
17784         * output.h (tdesc_section): Prototype.
17785
17786         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17787
17788         * sdbout.c: Include "tm_p.h".
17789
17790         * toplev.c: Include "regs.h".
17791
17792 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17793
17794         * unroll.c (unroll_loop): Add EH support.
17795
17796 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17797
17798         * pa-protos.h: New file.
17799
17800         * pa.c: Include recog.h and tm_p.h.
17801         (compute_zdepwi_operands, compute_movstrsi_length,
17802         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17803         find_addr_reg, import_milli): Add static prototypes.
17804         (pa_cpu_string, pa_arch_string): Constify a char*.
17805         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17806         (read_only_operand): Add argument `mode'.
17807         (singlemove_string, output_move_double, output_fp_move_double,
17808         output_block_move, output_and, output_ior, output_ascii,
17809         remove_useless_addtr_insns, milli_names, output_mul_insn,
17810         output_div_insn, output_mod_insn, output_arg_descriptor,
17811         output_cbranch, output_bb, output_bvb, output_dbra, ,
17812         output_millicode_call, output_call, hppa_encode_label,
17813         output_parallel_movb, output_parallel_addb): Constify a char*.
17814         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17815         (output_parallel_addb): Remove extra arg to `constrain_operands'
17816
17817         * pa.h:  Move all prototypes to pa-protos.h.
17818         (pa_cpu_string, pa_arch_string): Constify a char*.
17819         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17820
17821         * pa.md: Call `function_label_operand' with mode argument.
17822         Likewise for `read_only_operand'.
17823         Fix nesting of parens in call to `symbolic_operand'.
17824
17825 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17826
17827         * i860-protos.h: New file.
17828
17829         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17830         time warnings.
17831
17832         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17833
17834         * i860.md: Likewise.
17835
17836 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17837
17838         * i386.md (movstrsi expander): Rewrite.
17839         (movstrsi_1 insn): Deleted.
17840         (strmovhi, strmovqi expander): New expanders.
17841         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17842         * i386.c (x86_single_stringop): New global variable.
17843         * i386.h (x86_single_stringop): Declare.
17844         (TARGET_SINGLE_STRINGOP): New macro.
17845
17846 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17847
17848         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17849         integer vararg POSTINCREMENT before the destination of the jump
17850         for the hard fp case.
17851         (function_arg_pass_by_reference): Pass a copy of CUM to
17852         FUNCTION_ARG.
17853
17854         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17855         for CONSTANT_ADDRESS_P above while loop for subreg.
17856
17857 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17858
17859         * flow.c (propagate_block): When a prologue/epilogue insn
17860         is marked dead, unconditionally clear libcall_is_dead and
17861         insn_is_dead, and only dump rtl if warnings aren't being
17862         suppressed.
17863
17864 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17865
17866         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17867         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17868         (FIXED_REGISTERS): Set dirflag as fixed.
17869         (CALL_USED_REGISTERS): Set dirflag as used.
17870         (REG_ALLOC_ORDER): Set dirflag as last one.
17871         (DIRFLAG_REG): New macro.
17872         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17873         (HI_REGISTER_NAMES): Add dirflag.
17874         (DEBUF_PRINT_REG): Handle dirflag.
17875         * i386.md (type attribute): New cld and str types.
17876         (length_opcode attribute): Set cld and str to 1.
17877         (memory attribute): Set str to unknown - it is not clear from the
17878         patterns.
17879         (pent_np function unit): Prefixed string operations takes 12 cycles
17880         minimally; cld takes 2 cycles.
17881         (ppro_uops attribute): Str is "many" and cld is "few".
17882         (ppro_p0 unit): Handle cld here.
17883         (k6_alux unit): Handle cld and str types.
17884         (k6_load unit): It is ocupied by str opcodes.
17885         (k6_store unit): It is ocupied by str opcodes.
17886         (athlon_decode): Str is vector decoded.
17887         (athlon_ieu): Handle str and cld.
17888         (cld pattern): New.
17889         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17890         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17891         cmpstrsi_nz_1 insn): Do not output cld instruction
17892
17893 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17894
17895         * gcc.texi (G++ and GCC): Add Java and Chill.
17896         (Bug Critera): Don't list languages.
17897
17898         * gcc.texi (Incompatibilities): No longer claim most C compilers
17899         are K&R.
17900
17901         * gcc.texi (G++ and GCC): Update other front-ends list.
17902
17903 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17904
17905         * i386.c (ix86_expand_setcc): Fix typo.
17906         (ix86_expand_movcc): Similarly.
17907
17908         * Band-aid until haifa's bitset implementation is nuked.
17909         * haifa-sched.c (extract_bitlst): New parameter for size of the
17910         bitset in bits.  All callers changed.  Avoid looking at undefined
17911         bits in the bitset.
17912         (edgeset_bitsize): New variable.
17913         (schedule_region): Initialize edgeset_bitsize.
17914
17915 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17916
17917         * Makefile.in (optabs.o): Depend on real.h
17918         (resource.o): Depend on insn-attr.h
17919
17920         * builtins.c (result_vector): Wrap prototype in macro conditions
17921         governing definition and use.
17922
17923         * c-common.c: Include tm_p.h.
17924
17925         * c-lex.c: Likewise.
17926
17927         * elfos.h: Constify a char*.
17928
17929         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17930         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17931         parameter with ATTRIBUTE_UNUSED.
17932
17933         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17934         CHECK_FLOAT_VALUE.
17935
17936         * haifa-sched.c (schedule_insns): Mark parameter with
17937         ATTRIBUTE_UNUSED.
17938
17939         * optabs.c: Include real.h.
17940
17941         * real.h (ereal_atof): Add prototype arguments.
17942
17943         * resource.c: Include insn-attr.h.
17944
17945         * sdbout.c (sdbout_queue_anonymous_type,
17946         sdbout_dequeue_anonymous_types): Wrap in macro
17947         SDB_ALLOW_FORWARD_REFERENCES.
17948         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17949         ATTRIBUTE_UNUSED.
17950
17951         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17952
17953         * stupid.c: Include tm_p.h.
17954
17955         * tree.c (real_value_from_int_cst): Mark parameter with
17956         ATTRIBUTE_UNUSED.
17957
17958 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17959
17960         * i960-protos.h: New file.
17961
17962         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17963         time warnings.
17964
17965         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17966
17967 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17968
17969         * combine.c (expand_field_assignment): Do not discard SUBREGs
17970         while computing nonzero_bits.
17971
17972 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17973
17974         * config/arm/arm.c: Fix compile time warnings about signed vs
17975         unsigned constants.
17976         * config/arm/arm.h: Fix compile time warnings about signed vs
17977         unsigned constants.
17978
17979 2000-01-09  Philip Blundell  <philb@gnu.org>
17980
17981         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17982         than `ldm' with only one register.
17983         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17984         only one register.
17985
17986         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17987         clobbered.
17988
17989 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17990
17991         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17992         must have SImode.
17993
17994 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17995
17996         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17997         assignment used as truth value.
17998
17999         * function.c (assign_temp): Mark parameter `dont_promote' with
18000         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
18001         PROMOTE_FOR_CALL_ONLY.
18002
18003         * genrecog.c (write_subroutine): Mark variable `operands' with
18004         ATTRIBUTE_UNUSED.
18005
18006         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
18007         ATTRIBUTE_UNUSED.
18008
18009         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
18010         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
18011
18012         * toplev.c (note_deferral_of_defined_inline_function): Likewise
18013         for `decl'.
18014
18015 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18016
18017         * config/c4x.h: Tidy up comments.
18018         * config/c4x.c: Likewise.
18019
18020 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
18021
18022         * fold-const.c (lshift_double, rshift_double): Handle
18023         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
18024
18025 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
18026
18027         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
18028         in prepare_function_start().
18029
18030 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
18031
18032         * config/v850/v850.c (expand_epilogue): Interrupt functions no
18033         longer allocate extra stack for function calls.
18034
18035 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18036
18037         * config/c4x/c4x.md (*subqf3_set): Fix typo.
18038
18039 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18040
18041         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
18042
18043 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
18044
18045         * rs6000.c (processor_target_table): Add power3 as alias for 630.
18046         * aix43.h: Revert Aug 2 change.
18047         (HAS_INIT_SECTION): Define, not visible yet.
18048         (LD_INIT_SWITCH): Define, not visible yet.
18049         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
18050
18051         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
18052
18053         * collect2.c (main): Expand ld2 size further.
18054         (export_object_lst): Cast assignment to avoid warning.
18055         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
18056         (scan_prog_file, COFF): Do not collect initialization or
18057         finalization functions generated for entire shared object if
18058         init/fini support present.
18059
18060 2000-01-07  Nick Clifton  <nickc@cygnus.com>
18061
18062         * config/elfos.h: Tidy up formatting of marcos.  Make sure
18063         that .section directives are always prefixed by a tab.
18064
18065         * config/svr4.h: Add #include "elfos.h" and remove duplicate
18066         definitions.
18067
18068 2000-01-07  Matt Austern  <austern@sgi.com>
18069
18070         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
18071         expon.
18072
18073 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
18074
18075         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
18076         crtstuff.c.
18077         (crtbegin.o, s-crtS): Likewise.
18078
18079 2000-01-06  Richard Henderson  <rth@cygnus.com>
18080
18081         * alpha.md (adddi_2+1): Limit offset such that it will be
18082         loadable with a single ldah+lda pair.
18083         (adddi_2+2): Explicitly fail split if we can't make it work.
18084
18085 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
18086
18087         * protoize.c: Conditionally include unistd.h.
18088         (IS_SAME_PATH_CHAR): New macro.
18089         (IS_SAME_PATH): New macro.
18090         (CPLUS_FILE_SUFFIX): New macro.
18091         (cplus_suffix): New static variable.
18092         (is_abspath): New static function.
18093         (in_system_include_dir): Handle DOS style pathnames.
18094         (file_could_be_converted): Likewise.
18095         (file_normally_convertible): Likewise.
18096         (directory_specified_p): Likewise.
18097         (file_excluded_p): Likewise.
18098         (abspath): Likewise.
18099         (shortpath): Likewise.
18100         (referenced_file_is_newer): Likewise.
18101         (save_def_or_dec): Likewise.
18102         (do_processing): Likewise.
18103         (main): Likewise.
18104         (edit_file): Likewise. Use rename instead of link.
18105         (rename_c_file): Likewise. Don't rename syscalls file.
18106         (munge_compile_params): Define null device for DOS based systems.
18107         (process_aux_info_file): Use binary mode if appliable.
18108         (edit_file): Likewise.
18109         * invoke.texi (Running Protoize): Document C++ suffixes used.
18110
18111         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
18112         IS_DIR_SEPARATOR macros.
18113         * collect2.c: Likewise.
18114         * cppinit.c: Likewise.
18115         * dwarf2out.c: Likewise.
18116         * gcc.c: Likewise.
18117         * gcov.c: Likewise.
18118         * prefix.c: Likewise.
18119         * rtl.c: Likewise.
18120         * toplev.c: Likewise.
18121         * system.h: And move to here.
18122
18123         * prefix.c (update_path): Fix typo in variable name.
18124
18125 2000-01-06  Richard Henderson  <rth@cygnus.com>
18126
18127         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
18128         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
18129         (count_reg_sets_1, count_reg_references): Likewise.
18130         (flow_loops_level_compute): Start counting actual loop depth at 1.
18131         (flow_loops_find): Likewise.
18132         * local-alloc.c (update_equiv_regs): Likewise.
18133         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
18134
18135 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
18136
18137         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
18138         FIRST_PSEUDO_REGISTER
18139         * dwarf2out.c: Don't include frame.h
18140         * dwarfout.c: Likewise
18141         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
18142         frame.h
18143
18144 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
18145
18146         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
18147         dead registers.
18148
18149         * i386.c (movsf splitter): Fix typo in my last checkin.
18150
18151 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18152
18153         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
18154         own definition of this macro.
18155         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
18156         flag_data_sections or UNIQUE_SECTION_P are true.
18157
18158         * tm.texi (UNIQUE_SECTION): Document that it can be called for
18159         unitialised data decls.
18160
18161         * config/i386/winnt.c (i386_pe_unique_section): Cope with
18162         being called for uninitialised data.
18163
18164         * config/i386/interix.c (i386_pe_unique_section): Cope with
18165         being called for uninitialised data.
18166
18167         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
18168         for uninitialised data.
18169
18170         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
18171         for uninitialised data.
18172
18173         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
18174         for uninitialised data.
18175
18176         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
18177         (UNIQUE_SECTION_P): Always generate a unique section if
18178         flag_data_sections is true.
18179         (UNIQUE_SECTION): Also generate unique sections for
18180         uninitialised data.
18181         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
18182         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
18183         named_section().
18184
18185 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18186
18187         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
18188         SI, or DI.
18189
18190 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18191
18192         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
18193         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
18194         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
18195         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
18196         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
18197
18198         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
18199
18200 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
18201
18202         * c-decl.c (finish_enum): Simplify code to determine minimum and
18203         maximum values of the enum, and calculate the type.  Remove check
18204         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
18205         the DECL_INITIAL of each enumeration constant with a copy converted
18206         to the enumeration type.  When updating variant types, don't bother
18207         updating the type itself.
18208
18209         * c-typeck.c (build_binary_op): Simplify conditional expressions
18210         when weeding out spurious signed-unsigned warnings.  Add new
18211         spurious warning category: if the unsigned quantity is an enum
18212         and its maximum value fits in signed_type(result_type).  Update
18213         commentary.
18214         (build_conditional_expr): Warn here if one alternative is signed
18215         and the other is unsigned.
18216
18217 2000-01-05  Nick Clifton  <nickc@cygnus.com>
18218
18219         * config/fr30/fr30.h: Remove extraneous comments.
18220
18221 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
18222
18223         * reload1.c (choose_reload_regs): When disabling a reload, also
18224         set reload_spill_index to -1.
18225
18226 2000-01-04  Joel Sherrill (joel@OARcorp.com>
18227
18228         * configure.in (m68*-*-rtemscoff*): New target, formal name for
18229         old m68*-*-rtems*.
18230         (m68*-*-rtemself*): New target.
18231         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
18232         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
18233         (sparc*-*-rtemself*): New target.
18234         (sparc*-*-rtems*): Now elf not a.out.
18235         * config/i386/rtems.h: Include config/rtems.h.
18236         * config/i386/rtemself.h: Include config/rtems.h.
18237         * config/i960/rtems.h: Include config/rtems.h.
18238         * config/m68k/rtems.h: Include config/rtems.h.
18239         * config/m68k/rtemself.h: Include config/rtems.h.
18240         * config/mips/rtems64.h: Include config/rtems.h.
18241         * config/pa/rtems.h: Include config/rtems.h.
18242         * config/rs6000/rtems.h: Include config/rtems.h.
18243         * config/sh/rtems.h: Include config/rtems.h.
18244         * config/sh/rtemself.h: Include config/rtems.h.
18245         * config/sparc/rtems.h: Include config/rtems.h.
18246         * config/sparc/rtemself.h: Include config/rtems.h
18247
18248 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
18249
18250         * final.c (shorten_branches): Correctly compute length of
18251         asms without operands.
18252
18253 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
18254
18255         * configure.in: Add pj target.
18256         * configure: Regenerate.
18257         * config/pj: New directory.
18258         * config/pj/lib1funcs.S: New file.
18259         * config/pj/linux.h: New file.
18260         * config/pj/pj.c: New file.
18261         * config/pj/pj.md: New file.
18262         * config/pj/pjl.h: New file.
18263         * config/pj/t-pj: New file.
18264         * config/pj/xm-pj.h: New file
18265
18266 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
18267
18268         * toplev.c (rest_of_compilation): Run shorten-branches before
18269         reg-stack for now.
18270
18271 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18272
18273         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
18274         macros so that they're consistent with their names.
18275         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18276         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
18277
18278 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18279
18280         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
18281         modified inadvertently.
18282
18283 2000-01-04  Joel Sherrill <joel@OARcorp.com>
18284
18285         * configure.in (v850*-*-rtems*): New target.
18286         * configure: Regenerate.
18287         * config/v850/rtems.h: New file.
18288
18289 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
18290
18291         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
18292         (__gthread_key_create): Likewise.
18293         (__gthread_key_dtor):  Likewise.
18294         (__gthread_once): Fix logic.
18295         (__gthread_key_delete): Cast away constness.
18296
18297         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
18298         * invoke.texi: Document.
18299         * i386/mingw32.h (CPP_SPEC): Use.
18300         (LIBGCC_SPEC): Likewise.
18301         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
18302
18303 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18304
18305         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
18306         (HANDLE_PRAGMA_PACK): Undefine.
18307         (SLOW_UNALIGNED_ACCESS): Define.
18308
18309 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
18310
18311         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18312         to default definition.
18313         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
18314         (store_fixed_bit_field): Call macro with word_mode and alignment.
18315         (extract_bit_field): Call macro with relevant mode and alignment.
18316         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
18317         to default definition.
18318         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
18319         and alignment.
18320         (move_by_pieces_ninsns): Likewise.
18321         (clear_by_pieces): Likewise.
18322         (emit_push_insn): Likewise.
18323         (store_field): Call macro with relevant mode and alignment.
18324         (expand_expr): Likewise.
18325         (expand_expr_unaligned): Likewise.
18326
18327         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
18328         (SLOW_UNALIGNED_ACCESS): Define.
18329         (CASE_VECTOR_MODE): Always use 32-bit offsets.
18330         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
18331         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
18332         (toc_section): Likewise and .toc pseudo-op.
18333         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
18334         64-bit mode.
18335         (TEXT_SECTION_ASM_OP): Likewise.
18336         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
18337         32-bit offsets.
18338
18339         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
18340         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
18341         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
18342         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
18343         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
18344
18345 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
18346
18347         * regclass.c: Revert my Jan 4 change to loop cost computation.
18348
18349 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18350
18351         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
18352         compilation.
18353
18354 2000-01-04  Stan Cox  <scox@cygnus.com>
18355
18356         * haifa-sched.c (build_control_flow): Change unreachable simple
18357         loop test to check if current block has only one predecessor.
18358         (find_rgns): Initialize degree.  Use dest as degree index, not src.
18359
18360 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18361
18362         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
18363
18364         * calls.c (expand_call): Likewise for
18365         `old_stack_arg_under_construction'.
18366
18367         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
18368
18369         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
18370         `save_constant'.
18371
18372         * gcc.c (execute): Likewise for `ut' and `st'.
18373
18374         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
18375
18376         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
18377
18378         * jump.c (jump_optimize_1): Likewise for `temp2'.
18379
18380         * local-alloc.c (block_alloc): Likewise for `r1'.
18381
18382         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
18383
18384         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
18385         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
18386
18387         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
18388         and `set2'.
18389
18390         * reload.c (find_reloads): Likewise for `goal_alternative_number'
18391         and `goal_earlyclobber'.
18392
18393         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
18394
18395         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
18396
18397         * stupid.c (stupid_life_analysis): Likewise for `chain'.
18398
18399         * unroll.c (copy_loop_body): Likewise for `copy'.
18400
18401         * varasm.c (output_constructor): Likewise for `byte'.
18402
18403 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18404
18405         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
18406         all FP constants for constant->reg moves.
18407         (ix86_split_to_parts): Try to convert memory address into immediate
18408         when available in the constant pool.
18409         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
18410         moves.
18411         (LEGITIMATE_CONSTANT_P): Return 1.
18412         * i386.md (pushsf): New splitter to convert constant pool memory
18413         reference to immediate.
18414         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
18415         reload.
18416
18417 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
18418
18419         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
18420         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
18421         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
18422         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
18423         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
18424
18425 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
18426
18427         * ginclude/stdbool.h:  Support compilation as C++.
18428
18429 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
18430
18431         * fold-const.c (make_range): Don't try to reverse an unbounded range.
18432
18433 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
18434
18435         * regclass.c (regclass): Properly compute loop_cost.  Adjust
18436         comments.
18437
18438         * regclass.c: Fix minor whitespace problems.
18439
18440 2000-01-03  Anthony Green  <green@cygnus.com>
18441
18442         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
18443         Restore the pic register if required.
18444
18445 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18446
18447         * c-common.c (format_char_info): Update comment.
18448         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18449         was recognized.  Emit warning for formats new in ISO C99 only
18450         if flag_isoc9x is not set.
18451
18452 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18453
18454         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18455
18456 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18457
18458         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18459         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18460         (make_compound_operation): Choose cheaper alternative between
18461         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18462
18463         * regclass.c (op_costs): Remove global variable.
18464         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18465         (record_operand_costs): Break out from ...
18466         (scan_one_insn): ... here.
18467         (dump_regclass): Make dumps nicer.
18468         (regclass): Dump preferrences choosed and changes done during passes.
18469
18470 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18471
18472         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18473
18474 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18475
18476         * config/sparc/sparc.c (gen_df_reg): New function.
18477         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18478         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18479         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18480         movtf_cc_reg_sp64+1): Use it.
18481
18482 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18483
18484         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18485         copied LABEL_DECLs.
18486
18487 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18488
18489         * config/i386/i386.c (ix86_expand_unary_operator): Function
18490         definition made void.
18491         (ix86_expand_binary_operator): Update outdated preceding comment.
18492         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18493         prototype.
18494
18495         * config/i386/i386.c (override_options): Fix option-name typo.
18496
18497 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18498
18499         * system.h (CEIL): Define.
18500         * builtins.c (CEIL): Remove.
18501         * expmed.c (CEIL): Likewise.
18502         * expr.c (CEIL): Likewise.
18503         * stor-layout.c (CEIL): Likewise.
18504
18505 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18506
18507         * expr.c (store_constructor_field): Fix typo introduced with last
18508         gcc2 merge.
18509
18510 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18511
18512         * tree.h (BINFO_N_BASETYPES): New macro.
18513
18514 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18515
18516         * expmed.c (emit_store_flag): Prevent losing a pending stack
18517         adjust the same way we prevent losing queued increments.
18518
18519 See ChangeLog.2 for earlier changes.