OSDN Git Service

a9cf24dab96581abfc0a25588f03af532f2ae9c0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-10-29  Michael Hayes  <mhayes@redhat.com>
2
3         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
4
5 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
6
7         * cpphash.c (cpp_forall_identifiers): Add context variable
8         for callback routine.
9         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
10         change.
11         (main): Call cpp_forall_identifiers with null context.
12         * cpplib.h (cpp_forall_identifiers): Update prototype.
13
14         * cppmain.c: Make `parse_in' and `print' static.
15
16 2000-10-28  Alan Modra <alan@linuxcare.com.au>
17
18         * c-decl.c (finish_function): Clear c_function_name_declared_p.
19
20 2000-10-28  Richard Henderson  <rth@redhat.com>
21
22         * regrename.c (scan_rtx_address): Frob action, not class,
23         when trying to disable optimization.
24
25 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
26
27         * c-semantics.c (make_rtl_for_local_static): Don't clobber
28         DECL_ASSEMBLER_NAME.
29
30 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
31
32         * configure.in: Determine and substitute gcc_version_full.
33         * configure: Regenerate.
34         * gccbug.in: Use it to give full version.  Don't allow
35         confidential PRs.
36
37 2000-10-28  Richard Henderson  <rth@redhat.com>
38
39         * recog.c (split_all_insns): Run cleanup_subreg_operands
40         after reload.
41
42         * regrename.c (regrename_optimize): Verify that all registers of
43         a multiple register mode are available.
44         (scan_rtx_address): Accept the mode of the address; all callers
45         changed.
46
47         * cpplib.c (run_directive): Fix prototype.
48
49 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
50
51         * reload.c (find_reloads): Distinguish "wins" so that we know whether
52         a given operand won because of a matching constraint or not; then use
53         that information to compute goal_alternative_matched properly.
54         * reload1.c (choose_reload_regs): Never set reload_override_in for an
55         optional reload.
56
57         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
58         accurate value for MULT.
59         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
60         2% or > 98% before using static branch prediction bits.
61
62 2000-10-28  Neil Booth  <neilb@earthling.net>
63
64         New macro expander.
65         
66         * cpplib.c (struct answer): New.
67         (struct if_stack): Use cpp_lexer_pos rather than line and col.
68         Rename cmacro mi_cmacro.
69         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
70         IN_I): New directive and flags.
71         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
72         parse_answer, parse_assertion, find_answer): New functions.
73         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
74         (lex_macro_node): New function to replace parse_ifdef and
75         get_define_node.
76
77         (_cpp_handle_directive): New function, combines _cpp_check_directive
78         and _cpp_check_linemarker.
79
80         (do_define, do_undef, parse_include, do_include, do_import,
81         do_include_next, read_line_number, do_line, do_ident, do_pragma,
82         do_pragma_once, do_pragma_poison, do_pragma_dependency):
83         Update for new token getting interface.
84
85         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
86         : Update for new multiple-include optimisation technique.
87         (do_elif): Don't forget to invalidate controlling macros.
88
89         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
90         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
91         Functions to handle assertions with the new token interface.
92         (do_assert, do_unassert): Use them.
93
94         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
95         Use run_directive.
96
97         (_cpp_init_stacks): Register directive names.  Don't register special
98         nodes.
99
100         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
101         new position recording regime.
102         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
103         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
104         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
105         (cpp_type2name): Move to cpplex.c.
106
107         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
108         (parse_defined): Update to handle new multiple include optimisation
109         method.  Remove poisoned identifier warning.
110         (parse_assertion, TYPE_NAME): Delete.
111         (lex): Update for multiple include optimisation, removal of
112         CPP_DEFINED, to use _cpp_test_assertion for assertions and
113         cpp_token_as_text.
114         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
115         (op_as_text): New function, to wrap cpp_token_as_text.
116
117         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
118         Update for MI optimisation.
119         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
120         segfault on diagnostic.
121         (_cpp_compare_file_date): Take a token rather than 3 args.
122         (cpp_read_file): Work correctly for zero-length files.
123
124         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
125         _cpp_init_hashtable and _cpp_cleanup_hashtable.
126         (cpp_lookup): Place identifiers at front of identifier pool
127         for _cpp_lookup_with_hash.
128         (_cpp_lookup_with_hash): Require identifiers to be at the front of
129         the identifier pool.  Commit the memory if not already in the
130         hash table.
131
132         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
133         Initialise various members of cpp_reader, memory pools, and the
134         special nodes.
135         (cpp_printer_init): Delete.
136         (cpp_cleanup): Update.
137         (struct builtin, builtin_array, initialize_builtins): Update for new
138         hashnode definition and builtin handling.
139         (cpp_start_read, cpp_finish): Don't take or initialise a
140         printer.  Update.
141
142         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
143         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
144         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
145         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
146         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
147         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
148         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
149         struct toklist, struct cpp_context, struct specnodes,
150         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
151         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
152         enum builtin_type, cpp_can_paste): New.
153         (struct cpp_token): Delete line and col members.
154         (struct cpp_buffer): New member output_lineno.
155         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
156         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
157         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
158         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
159         base_context, context, directive, mi_state, mi_if_not_defined,
160         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
161         mlstring_pos, macro_buffer, macro_buffer_len.
162         Delete members mls_line, mls_column, token_list, potential_control_macro,
163         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
164         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
165         save_parameter_spellings, need_newline, .
166         Change type of date, time and spec_nodes members.
167         Change prototypes for include and ident callbacks.
168         (struct cpp_hashnode): Change type of name.  Remove union members
169         expansion and code.  Add members macro, operator and builtin.
170
171         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
172         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
173         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
174         cpp_stop_lookahead): New prototypes.
175         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
176
177         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
178         Move from cpphash.h.
179
180         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
181         ufputs): Move to cpplib.h.
182         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
183         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
184         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
185         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
186         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
187         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
188         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
189         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
190         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
191         _cpp_parse_assertion, _cpp_find_answer): Delete.
192         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
193         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
194         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
195         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
196         _cpp_handle_directive, DSC): New.
197         (struct include_file): New member defined.
198
199         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
200         _cpp_compare_file_date): Update.
201         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
202         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
203         _cpp_cleanup_hashtable.
204
205         * Makefile.in: Remove cppoutput.c.
206         
207         * cppoutput.c: Delete
208
209         * fixheader.c (read_scan_file): Update for new cpp_get_token
210         prototype.
211         (recognized_function): New argument LINE.
212
213         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
214         new cpp_get_token prototype.
215
216         * scan.h (recognized_function): Update prototype.
217
218         * po/POTFILES.in: Remove cppoutput.c.
219         
220 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
221
222         * c-typeck.c (check_init_type_bitfields): Remove.
223         (constructor_incremental): Likewise.
224         (struct constructor_stack): Remove incremental bit.
225         (struct initializer_stack): Likewise.
226         (start_init): Don't play with constructor_incremental.
227         (finish_init): Likewise.
228         (really_start_incremental_init): Likewise.
229         (push_init_level): Likewise.
230         (pop_init_level): Likewise.
231         (output_init_level): Likewise.
232         (output_pending_init_elements): Likewise.
233
234 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
235
236         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
237         Improve error messages.  Correct parsing of 
238         #pragma pack(pop [,id]).  Do not check the user-supplied
239         alignment if we're popping.
240
241         * gcc.dg/pack-test-1.c: New test case.
242         * gcc.dg/pack-test-2.c: New test case.
243         * gcc.dg/pack-test-1.h: New file.
244
245 2000-10-27  Neil Booth  <neilb@earthling.net>
246
247         * cpp.texi: Update.
248
249 2000-10-27  Kelley Cook <kelley.cook@home.com>
250
251         * invoke.texi: Document -mintel-syntax
252
253 2000-10-27  Richard Henderson  <rth@redhat.com>
254
255         * invoke.texi: Document -frename-registers.  Add it to -O3.
256         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
257         (enum dump_file_index, dump_file): Update order.
258         (main): Set flag_rename_registers at -O3.
259
260 2000-10-27  Richard Henderson  <rth@redhat.com>
261
262         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
263         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
264         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
265         * config/alpha/alpha.md (call_osf_1): Use it.
266         (call_value_osf_1): Likewise.
267
268         * config/ia64/ia64.c: Revert 10-23 patch.
269         (ia64_hard_regno_rename_ok): New.
270         * config/ia64/ia64-protos.h: Declare it.
271         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
272
273 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
274             Richard Henderson  <rth@redhat.com>
275
276         * regrename.c: Rewrite to handle multi-register modes and
277         cond_exec instructions.
278         * Makefile.in (regrename.o): Update dependancies.
279         * recog.h (struct operand_alternative): Add is_address.
280         * recog.c (preprocess_constraints) [case 'p']: Set it.
281
282 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
283
284         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
285         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
286         top level.  Kill oldstyle_subdirs.  Do not include
287         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
288         $outputs.  Do not run configure.lang from config.status.
289         Rearrange warning-flag logic to correspond to what the
290         makefile wants.  Put special vax stage1 options in
291         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
292         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
293         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
294         switch is given, nothing otherwise.
295         * configure.lang: Delete.
296
297         * Makefile.in: Expunge all traces of extra_c_objs,
298         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
299         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
300         warning options via a three level scheme so that -pedantic and
301         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
302         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
303         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
304         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
305         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
306         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
307         generation rules.  Wrap all rules that change the current
308         directory in parentheses; pmake doesn't spawn a new shell for
309         each command.  Expunge all references to $(P).  When one
310         command depends on another and they're run all at once, use &&
311         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
312         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
313         and beyond.
314
315         * objc/Make-lang.in: Wrap all rules that change the current
316         directory in parentheses.  Expunge all references to $(P).
317         When one command depends on another and they're run all at
318         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
319         all object-file generation rules.  Delete obsolete variables.
320         * objc/Makefile.in: Delete.
321
322 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
323
324         * calls.c (expand_call): If sibcall_failure is set during pass 1,
325         clear tail_call_insns as well.
326
327 2000-10-27  Nick Clifton  <nickc@redhat.com>
328
329         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
330         prototype.
331
332 2000-10-26  Richard Henderson  <rth@redhat.com>
333
334         * calls.c (expand_call): Supress sibcall if we have a
335         BLKmode return in registers.
336
337 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
338
339         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
340         into memory.
341
342 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
343
344         * tree.c (make_node, case 't'): Set alignment to that of
345         char_type_node.
346         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
347
348 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
349
350         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
351         * configure.in (enable-libstdcxx-v3): Arrange to have
352         HAVE_LIBSTDCXX_V3 substituted into the output files.
353
354 2000-10-25  Richard Henderson  <rth@redhat.com>
355
356         * recog.c (constrain_operands): Initialize which_alternative
357         before no alternatives early exit.
358
359         * cse.c (find_comparison_args): Check that we can reverse a
360         comparison if needed before accepting the substitution.
361
362         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
363
364         * simplify-rtx.c (simplify_relational_operation): Sign extend
365         low words before sign extending to high words.
366
367 2000-10-25  Nick Clifton  <nickc@redhat.com>
368
369         * config/mcore/mcore.c: Include config.h before system.h.
370
371 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
372
373         * config/mcore/mcore.md (return): Force function epilogue to
374         always be generated to work around epilogue suppression bug in
375         M*Core backend.
376
377 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
378
379         * c-decl.c (grokdeclarator): Move warning for qualified void
380         return types with -pedantic to when the function type is
381         constructed.  At -W, warn in general for qualified function return
382         types, except for volatile void.
383         * invoke.texi: Document this new warning at -W.
384
385 2000-10-25  Neil Booth  <neilb@earthling.net>
386
387         * cpp.texi: Update with implementation-defined behavior and
388         internal limits.
389
390 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
391
392         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
393         incomplete type force it into alias set 0.
394
395 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
396
397         * alias.c: Include basic-block.h.
398         (loop_p): New function.
399         (mark_constant_function): Use it.
400         * Makefile.in (alias.o): Update dependencies.
401
402 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
403
404         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
405         like memory.
406
407 2000-10-24  Jim Wilson  <wilson@cygnus.com>
408
409         * expmed.c (store_bit_field): Move integer pun code down after
410         code that calls emit_move_insn for entire register move.
411         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
412         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
413
414 2000-10-24  Richard Henderson  <rth@cygnus.com>
415
416         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
417         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
418
419 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
420
421         * gcse.c (cprop_insn): do not propagate constants into jump_insn
422         for machines with CC0 more than once.
423
424 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
425
426         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
427         pseudos just like memory.
428
429 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
430
431         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
432         when deleting libcall sequence collapsed to a single instruction.
433
434 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
435
436         * expr.c (do_store_flag): Don't crash if either side of a
437         comparison is error_mark_node.
438
439 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
440
441         * sibcall.c (purge_mem_unchanging_flag): New function.
442         (optimize_sibling_and_tail_recursive_calls): Call it.
443
444 2000-10-24  Philipp Thomas  <pthomas@suse.de>
445
446         * Makefile.in (check-po): New target for doing checks in the po
447         subdir if all languages configured.
448         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
449         configure if NLS is enabled.
450         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
451         otherwise leave empty.
452         * configure: Regenerate.
453
454 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
455
456         * i386.c (print_operand): Handle new 'A' formatting code.
457         387 opcodes need suffixes even with -mintel-syntax.
458         Check for explicit size override (codes 'b', 'w' and 'k').
459         (print_operand_address): Check if register prefix is needed when
460         emitting `ds' segment override.
461         * i386.h: Add comment about new 'A' formatting code.
462         * i386.md (jump and call patterns): Emit absolute references using %A.
463
464 2000-10-23  Richard Henderson  <rth@cygnus.com>
465
466         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
467         output registers as fixed.
468         (ia64_function_epilogue): Undo output fixation.
469
470 2000-10-23  Richard Henderson  <rth@cygnus.com>
471
472         * config/alpha/alpha.md: Add names for all unnamed insns; use
473         define_insn_and_split in some obvious places.
474         (lda): Remove.
475         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
476         (zero_extendqisi2, zero_extendqidi2): Likewise.
477         (zero_extendhisi2, zero_extendhidi2): Likewise.
478         (abs splitters): Fix match_scratch operand number.
479         (bcc_reverse): Swap pc & label instead of non-canonical compare.
480
481 2000-10-23  Jim Wilson  <wilson@cygnus.com>
482
483         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
484         CONST_INT.
485         * ia64.md (cmpsi_adjusted): Use %r3.
486         (cmpdi_adjusted): Likewise.
487
488 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
489
490         * config/i386/att.h (ASM_FILE_START): Define.
491
492 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
493
494         * config/i386/linux.h (ASM_FILE_START): Define.
495
496 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
497
498         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
499         since this (only) drags in a crt0.o reference that the .ld files
500         also introduce.
501
502 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
503
504         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
505         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
506         reloads just like an RELOAD_FOR_OUTPUT would.
507
508         * local-alloc.c (update_equiv_regs): Add an abort().  When
509         deleting or moving insns, update reg_equiv[regno].init_insns.
510
511 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
512
513         * c-tree.texi: Improve documentation for IF_STMTs and related
514         conditional statements.
515
516 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
517
518         * expr.c (do_preexpand_calls): Remove.
519         (same_from_p): Don't use CALL_EXPR_RTL.
520         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
521         (preexpand_calls): Remove.
522         * tree.c (first_rtl_op): Remove CALL_EXPR case.
523         (unsave_expr_1): Likewise.
524         * tree.def (CALL_EXPR): Give it only two slots.
525         * tree.h (CALL_EXPR_RTL): Remove.
526
527 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
528
529         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
530         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
531         New functions.
532
533 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
534
535         * calls.c (combine_pending_stack_adjustment_and_call): Don't
536         adjust stack when unadjusted_alignment ends up as zero.
537
538 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
539
540         * fixinc/genfixes: Remove EGCS reference.
541         * install.texi: Remove EGCS reference.
542         * INSTALL: Regenerate.
543
544 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
545
546         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
547
548 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
549
550         * diagnostic.c: Remove EGCS reference in comment.
551
552 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
553
554         * loop.c (strength_reduce): Fix error in last change.
555
556 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
557
558         * Makefile.in (SHLIB_NM_FLAGS): New.
559         (libgcc.mk): Pass it.
560         * mklibgcc.in (libgcc.map): Use it.
561
562         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
563         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
564
565 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
566
567         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
568
569         * sparc.c (load_pic_register): Delete unused varaible.
570
571         * libgcc2.c (__addvsi3): Delete unused variable.
572
573         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
574         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
575         __negvdi2): Prototype.
576
577         * ssa.c (apply_delayed_renames): Avoid undefined operation.
578
579         * toplev.c (display_target_options): Make static to match
580         prototype.  Delete empty declaration.
581
582 2000-10-20  Tom Tromey  <tromey@cygnus.com>
583
584         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
585         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
586
587 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
588
589         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
590         returned MEM.
591         (expand_expr_unaligned, case ARRAY_REF): Check that index is
592         a constant before comparing it; use tree_low_cst.
593         * tree.c (save_expr): Set TREE_READONLY.
594         (substitute_expr): Return inside of NON_LVALUE_EXPR.
595         (build, build1): Set TREE_READONLY if all operands are.
596         (build_index_type): If upper bound is a negative number, lower
597         bound is zero and sizetype is unsigned, use upper bound of one and
598         lower of zero.
599
600 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
601
602         * gcc.c (process_command, main): Use "because" instead of
603         "since" in error messages.
604
605 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
606
607         * stor-layout.c (compute_record_mode): Use tree_low_cst.
608         Don't use mode of field for record unless sizes are the same.
609         (layout_type, case ARRAY_TYPE): Remove special bounds handling
610         previously added for Ada; also change to using host_integerp
611         and tree_low_cst.
612
613         * loop.c (strength_reduce): Show when new register made for
614         giv is known to be a pointer and its aligment if so and known.
615         (loop_dump_aux): Show VERBOSE parameter unused.
616
617         * gcse.c (set_hash_table_size): Now unsigned.
618         * sdbout.c (template_name_p): Add "const" to avoid warnings.
619         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
620         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
621         (sdbout_end_epilogue): Remove variable NAME.
622         * system.h (getopt): Add default definition.
623         * config/alpha/alpha.c (print_operand): Don't continue processing
624         after issuing error.
625         (summarize_insn): Avoid use of UL in constant.
626
627         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
628
629         * fold-const.c (force_fit_type): Unsigned values can overflow
630         if they are sizetype.
631         (int_const_binop): Don't use cache if overflows.
632
633 2000-10-20  Richard Henderson  <rth@cygnus.com>
634
635         * function.c (locate_and_pad_parm): Zero alignment_pad.
636
637         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
638         perform substitutions, and apply_change_group to see if it worked.
639
640 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
641
642         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
643
644         * combine.c (struct undo): Change int to unsigned int.
645         (do_SUBST_INT): Args are unsigned int.
646         (make_extraction, force_to_mode): Use proper type when forming mask.
647         (make_field_assignment): Likewise.
648
649 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
650
651         * c-common.c (check_format_info_recurse): Extract string constant
652         initializers from non-volatile constant arrays and check them as
653         formats.
654         * c-typeck.c (decl_constant_value): Don't check pedantic or check
655         for DECL_MODE (decl) != BLKmode.
656         (decl_constant_value_for_broken_optimization): New function which
657         includes these checks.
658         (default_conversion, convert_for_assignment, digest_init): Use
659         decl_constant_value_for_broken_optimization instead of
660         decl_constant_value.
661
662 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
663
664         * tree.h (DECL_ALIGN_UNIT): New macro.
665
666 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
667
668         * config/avr/avr-protos.h (avr_output_bld): New.
669         (out_shift_with_cnt): Add t_len argument.
670         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
671         (output_movqi, output_movhi, output_movsisf): Optimize loading
672         any constant with exactly one bit set to NO_LD_REGS.
673         (out_shift_with_cnt): Optimize output code for size or speed,
674         depending on optimize_size.  Handle small shift counts as well
675         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
676         with or without a scratch register, with help of __tmp_reg__
677         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
678         length of TEMPLATE in words, return total insn length in *LEN.
679         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
680         out_shift_with_cnt to work with the above change.
681         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
682         lshrsi3_out): Likewise.  Optimize more known shift count cases.
683         Remove cases already well optimized in out_shift_with_cnt.
684         (avr_output_bld): New function.
685         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
686         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
687         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
688         Add reload_completed to insn condition - only for peepholes.
689         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
690         in a register or memory.
691         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
692         Do not require a scratch register.
693         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
694         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
695         Optimize shifts by known count using a scratch register, but only
696         if one is still available after register allocation.
697
698 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
699
700         * t-vax: New file.  Don't build modules from libgcc1.c.
701
702 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
703
704         * alias.c: (mark_constant_function): Don't check pure functions.
705         Initialize and end alias analysis.
706         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
707         Don't make a special exception for recursion.  Handle
708         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
709         unless it's volatile.
710
711         * local-alloc.c (equivalence): New structure.
712         (reg_equiv): Define.
713         (contains_replace_regs): Remove array and use
714         field in reg_equiv.
715         (memref_referenced_p): Likewise.
716         (no_equiv): Likewise.
717         (update_equiv_regs): Likewise.
718
719         (equiv_init_varies_p,
720         equiv_init_movable_p): New functions.
721         (update_equiv_regs): Use them.  Use rtx_varies_p
722         instead of function_invariant_p.  Process insns
723         from end to beginning.  Allow a REG_EQUIV insn
724         within the same loop as a use to be moved, also
725         allow it to be moved out of a loop.  Update
726         REG_DEAD notes when substituting into an insn.
727
728 2000-10-19  Jim Wilson  <wilson@cygnus.com>
729
730         * c-decl.c (start_decl): Check for error_mark_node type before using
731         COMPLETE_TYPE_P.
732         (finish_decl): Likewise.  Don't give an error if decl type is
733         already error_mark_node.
734
735         * haifa-sched.c (compute_trg_info): Add explanatory comments.
736         New local update_blocks.  Use update_blocks to remove duplicates
737         when computing update blocks.  Check for bblst_table overflow.
738         (schedule_block): Add explanatory comment.  Reduce bblst_size by
739         factor of 2.
740         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
741         notes.
742
743 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
744
745         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
746
747 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
748
749         * expmed.c: Minor corrections in comments.
750         * invoke.texi: Added desciption for the new option -ftrapv.
751
752 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
753
754         * libgcc2.c: Added the missing #endif.
755
756 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
757
758         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
759
760 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
761
762         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
763         Use smulv_optab for -ftrapv.
764         (expand_mult_highpart): Use unsigned multiply.
765         (expand_divmod): Special-case division by -1.
766         For EXACT_DIV_EXPR, do right shift first, then the multiply.
767         For complex divide, use abs with unsigned result.
768         * expr.c (force_operand): Use unsigned multiply.
769         (expand_expr): Use overflow-trapping optabs for signed types if
770         flag_trapv.
771         If flag_trapv, don't generate a recursive call with EXPAND_SUM
772         if the type is signed and the original call wasn't EXPAND_SUM or
773         EXPAND_INITIALIZER.
774         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
775         (negv_optab, absv_optab): Declare.
776         * flags.h (flag_trapv): Declare.
777         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
778         smulv_optab, sdivv_optab, negv_optab and absv_optab.
779         (gen_insn): Interpret '$P' as requiring an integer mode,
780         including partial integer modes.
781         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
782         (product_cheap_p): Use unsigned expand_mult.
783         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
784         (negv_optab, absv_optab): Define.
785         (expand_binop): Use overflow-trapping optabs for signed types if
786         flag_trapv.
787         Handle negv_optab libe neg_optab.
788         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
789         Use overflow-trapping optabs for signed result if flag_trapv.
790         (expand_complex_abs): Use overflow-trapping optabs for signed types if
791         flag_trapv.
792         Don't open-code complex absolute-value operation for flag_trapv.
793         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
794         sdivv_optab, negv_optab and absv_optab.
795         * toplev.c (flag_trapv): Define.
796         (lang_independent_options f_options): Include flag_trapv.
797         * tree.h (TYPE_TRAP_SIGNED): Define.
798         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
799         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
800         New functions.
801         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
802         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
803
804 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
805             David V. Henkel-Wallace  <gumby@cygnus.com>
806
807         * config/i386/t-netware: Bring in from the Red Hat tree.
808         * config/i386/netware.h: Likewise.
809         * config/netware.h: Likewise.
810         * config/rs6000/netware.h: Delete.
811         * configure.in: Add i[34567]86-*-netware.
812         * configure: Hand-edit to match configure.in change.
813
814 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
815
816         * c-common.h (flag_no_builtin): Declare.
817         (flag_no_nonansi_builtin): Likewise.
818         (c_common_nodes_and_builtins): Change prototype.
819         * c-common.c (flag_no_builtin): New variable.
820         (flag_no_nonansi_builtin): Likewise.
821         (c_common_nodes_and_builtins): Remove parameters.  Adjust
822         accordingly.
823         * c-decl.c (flag_no_builtin): Remove.
824         (flag_no_nonansi_builtin): Likewise.
825         (init_decl_processing): Adjust call to
826         c_common_nodes_and_builtins.
827
828 2000-10-18  Marc Espie <espie@openbsd.org>
829
830         * tm.texi (LIBGCC_SPEC): Synch with reality.
831
832 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
833
834         * c-common.c (check_format_types): Check for writing through a
835         NULL pointer argument.
836
837 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
838
839         * tm.texi (Exception Region Output): Document
840         DWARF_CIE_DATA_ALIGNMENT.
841         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
842         #ifndef.
843         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
844         DWARF_CIE_DATA_ALIGNMENT.
845
846 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
847
848         * basic-block.h (struct loop): Delete fields pre_header_root
849         and pre_header_trace and replace with pre_header_edges
850         and num_pre_header_edges.
851         * flow.c (flow_loop_dump): Dump pre_header_edges.
852         (flow_loops_free): Free pre_header_edges.
853         (flow_loop_pre_header_scan): Calculate pre_header_edges.
854
855 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
856
857         * contrib.texi: Update references to steering committee members
858         and Jeff Law's entry.
859
860 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
861
862         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
863         (maybe_read_dollar_number, check_format_info_main): Use them for
864         pedantic warning messages.
865
866 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
867
868         * c-common.c (check_format_info_main): Minor cleanup: move
869         variables into inner scopes; initialize declarations where
870         appropriate; don't hardcode "scanf" name on warning for zero
871         width.
872
873 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
874
875         * c-common.c (back_end_hook): New variable.
876         * c-common.h (back_end_hook): Declare it.
877         * c-lang.c (finish_file): Use it.
878
879         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
880         earlier.
881
882 2000-10-18  Jan Hubicka  <jh@suse.cz>
883
884         * i386.c (ix86_comparison_operator, put_condition_code,
885         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
886         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
887         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
888         * i386.md (adddi and negdi splitter): Use CCRCmode.
889         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
890         (subsi3_carry): add '*'
891         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
892         (cmp to add peep2): Use CCRCmode; swap operands.
893
894 2000-10-18  Kazu Hirata  <kazu@hxi.com>
895
896         * h8300.c: Fix a comment typo.
897         (round_frame_size): New.
898         (compute_saved_regs): Likewise.
899         (push): Likewise.
900         (pop): Likewise.
901         (push_order): Remove.
902         (pop_order): Likewise.
903         (function_prologue): Rearrange code for readability.
904         (function_epilogue): Likewise.
905
906         * config/h8300/h8300.md: Remove an unnecessary sign_extend
907         expander that is used when not optimizing.  Output a tab after
908         each assembly insns.
909
910         * reorg.c: Fix formatting.
911
912 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
913
914         * reload1.c (move2add_note_store): Check for simple
915         auto-inc in destination.
916
917 2000-10-17  Michael Chastain  <chastain@redhat.com>
918
919         * config/i386/i386-aout.h: define INT_ASM_OP.
920
921 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
922
923         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
924
925 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
926
927         * i370.md: Fix spelling typo.
928
929 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
930
931         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
932         Fixes execute/20001017-1.c on powerpc-linux-gnu.
933
934         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
935         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
936         LABEL_REF.
937
938         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
939         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
940         here...
941         * rs6000/aix.h: ...to here.
942         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
943
944 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
945
946         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
947
948         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
949         sure linker can relax even the delay slot mov %g1,%o7, fix output
950         formating.
951
952 2000-10-17  Kazu Hirata  <kazu@hxi.com>
953
954         * config/h8300/h8300.md: Remove an unnecessary zero_extend
955         expander that is used when not optimizing.  Output a tab after
956         each assembly insns.
957
958 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
959
960         * gcc.c: New options --target-help.
961         (process_command): Added code to parse this new option.
962         * toplev.c (display_target_options): New function to support the
963         above new option.
964         * cppinit.c (new_pending_directive) : New option OPT_target__help.
965         (cpp_handle_option): Support this new option.
966         * invoke.texi: Added notes about --target-help option.
967
968 2000-10-17  Graham Stott  <grahams@redhat.com>
969
970         * config/i386/i386.md (testqi_1): Add missing operand prefix
971         for operand 0.
972         * config/i386/i386-protos.h: Add missing prototype.
973
974 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
975
976         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
977         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
978         using -mintel-syntax.
979
980 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
981
982         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
983         (format_types): Use it for printf.
984         (maybe_read_dollar_number): Add parameter for the kind of format
985         involved.  Warn for multiple use for arguments if this is
986         inappropriate for the kind of format involved.
987         (check_format_info_main): Update calls to maybe_read_dollar_number.
988
989 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
990
991         * inclhack.def (hpux_maxint): Also apply fix to values.h.
992         * fixincl.x: Rebuilt.
993
994 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
995
996         * genrecog.c (write_switch): Return the first condition that needs a
997         label.
998
999 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
1000
1001         * c-tree.h (warn_sequence_point): Move declaration to...
1002         * c-common.h (warn_sequence_point): ... here.
1003         * c-decl.c (warn_sequence_point): Move definition to...
1004         * c-common.c (warn_sequence_point): ... here.
1005         (struct reverse_tree): New.
1006         (reverse_list, reverse_max_depth): New static variables.
1007         (build_reverse_tree, common_ancestor, modify_ok
1008         verify_sequence_points): New functions.
1009         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
1010         * c-typeck.c (check_modify_expr): Delete.
1011         (build_modify_expr): Don't call it.
1012
1013 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1014
1015         * c-common.h (warn_missing_format_attribute): New variable.
1016         * c-decl.c (warn_missing_format_attribute): New variable.
1017         (c_decode_option): Decode -Wmissing-format-attribute and
1018         -Wno-missing-format-attribute.
1019         * c-common.c (check_function_format): If
1020         -Wmissing-format-attribute, give a warning where a vprintf or
1021         vscanf function is called by a function without its own printf or
1022         scanf attribute.
1023         * toplev.c (documented_lang_options): Add
1024         -Wmissing-format-attribute.
1025         * invoke.texi: Document -Wmissing-format-attribute.
1026
1027 2000-10-17  Marc Espie <espie@openbsd.org>
1028
1029         * invoke.texi (-shared): Insist on requiring code generation flags
1030         to be used along with -shared, and document the subtle failure that
1031         may occur otherwise.
1032
1033 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1034
1035         * pa.md (return_internal): Move `use' after `return'.
1036
1037 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1038
1039         * machmode.def: Correct comment.
1040
1041 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
1042
1043         * print-rtl.c (print_rtx_head): Constify.
1044         * rtl.h (print_rtx_head): Similarly.
1045
1046         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
1047         Constify char * return value.
1048         * config/pa/pa/pa.c
1049         (output_64bit_and, output_64bit_ior): Constify char * return value.
1050         (pa_can_combine_p): Make static.
1051         (function_arg): Decorate unused `named' argument. Fix comment typo.
1052         (function_arg_partial_nregs): Decorate unused `named' argument.
1053
1054 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
1055
1056         * c-common.c (format_check_results): New structure.
1057         (finish_dollar_format_checking): Adjust to take a
1058         format_check_results * parameter.
1059         (check_format_info, check_format_info_recurse,
1060         check_format_info_main): Split check_format_info into three
1061         functions, the main checking going in check_format_info_main.
1062         Recurse when any reduction of the format string argument towards a
1063         string literal is done; go down both branches of a conditional
1064         expression.  Don't warn for extra format arguments or empty format
1065         strings if they only occur in some branches of a conditional
1066         expression.
1067
1068 2000-10-16  Kazu Hirata  <kazu@hxi.com>
1069
1070         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
1071
1072 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
1073
1074         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
1075
1076 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
1077
1078         * i386.md (*movsi_or): Switch operand order for intel syntax.
1079
1080 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1081
1082         * PROBLEMS: Remove.
1083
1084         * gcc.texi (Contributing): Update.
1085
1086 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
1087
1088         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
1089         appropriate assembler dialect.
1090
1091 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
1092
1093         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
1094
1095 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
1096
1097         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
1098         constants 1 and 2 to NO_LD_REGS.
1099
1100 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1101
1102         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
1103
1104         * objc/Make-lang.in (objc-parse.c): Likewise.
1105
1106 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1107
1108         * arm.c: Include obstack.h
1109         (minipool_obstack, minipool_startobj): Define.
1110         (arm_add_gc_roots): Initialize them.
1111         (create_fix_barrier): Use our new obstack.
1112         (push_minipool_barrier, push_minipool_fix): Likewise.
1113         (arm_reorg): Release obstack memory.
1114
1115 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
1116
1117         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
1118         (prologue, exception_receiver, builtin_setjmp_receiver): New
1119         patterns.
1120         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
1121         * config/sparc/sparc-protos.h (finalize_pic): Remove.
1122         (load_pic_register): New prototype.
1123         * config/sparc/sparc.c (pic_setup_code): Remove.
1124         (finalize_pic): Rename to...
1125         (load_pic_register): ...this function.
1126         Don't look for nonlocal_goto_receivers and emit pic setup code
1127         directly.  Don't check current_function_uses_pic_offset_table.
1128
1129 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1130
1131         * tree.h (struct obstack): Declare.
1132
1133 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
1134
1135         Remove obstacks.
1136         * Makefile.in (ggc-callbacks.o): Remove target.
1137         (flow.o): Depend on GGC_H.
1138         * alias.c (init_alias_analysis):
1139         Remove ggc_p conditionals.
1140         (end_alias_analysis): Likewise.
1141         * basic-block.h (init_flow): New function.
1142         (allocate_reg_life_data): Declare.
1143         * bb-reorder.c  (function_obstack): Replace with ...
1144         (flow_obstack): ... new variable.
1145         (fixup_reorder_chain): Use it.
1146         * c-decl.c (ggc_p): Remove.
1147         (caller-save.c): Don't call oballoc/obfree.
1148         * combine.c (struct
1149         undobuf): Remove storage.
1150         (try_combine): Don't call oballoc.
1151         (undo_all): Don't call obfree.
1152         * cse.c (insert): Use xmalloc, not
1153         oballoc.
1154         (cse_main): Adjust accordingly.
1155         * dwarf2out.c (save_rtx): Remove
1156         obstack code.
1157         (dwarf2out_init): Remove ggc_p conditionals.
1158         * emit-rtl.c (rtl_obstack): Remove.
1159         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
1160         (make_insn_raw): Likewise.
1161         (emit_insn_before): Likewise.
1162         (emit_insn_after): Likewise.
1163         (emit_insn): Likewise.
1164         (gen_sequence): Likewise.
1165         (copy_insn_1): Remove handling of `b' RTL components.
1166         (init_emit_once): Remove ggc_p conditionals.
1167         * except.c (create_rethrow_ref): Don't fool with obstacks.
1168         (add_partial_entry): Likewise.
1169         (call_get_eh_context): Likewise.
1170         (begin_protect_partials): Likewise.
1171         (protect_with_terminate): Likewise.
1172         * explow.c
1173         (plus_constant_wide): Likewise.
1174         * expr.c (init_expr_once):
1175         Likewise.
1176         (emit_block_move): Likewise.
1177         (clear_storage): Likewise.
1178         (expand_expr): Likewise.
1179         * flow.c (function_obstack): Remove.
1180         (flow_obstack): New variable.
1181         (flow_firstobj): Likewise.
1182         (create_base_block): Use the flow_obstack.
1183         (split_block): Likewise.
1184         (split_edge): Likewise.
1185         (calculate_global_regs_live): Likewise.
1186         (allocate_bb_life_data): Make it static.  Likewiwse.
1187         (init_flow): New function.
1188         (size_int_type_wide): Remove ggc_p conditionals.
1189         * function.c
1190         (push_function_context_to): Don't call save_tree_status.
1191         (pop_function_context_from): Or restore_tree_status.
1192         (assign_stack_local_1): Don't call push_obstacks.
1193         (find_fixup_replacement): Use xmalloc.
1194         (fixup_var_refs_insns): Free the storage.
1195         (insns_for_mem_walk): Don't mess with obstacks.
1196         (instantiate_decls): Likewise.
1197         (trampoline_address): Likewise.
1198         (expand_function_end): Likewise.
1199         * function.h (sturct function):
1200         Remove obstack-related variables.
1201         (save_tree_status): Don't declare.
1202         (restore_tree_status): Likewise.
1203         * gcse.c (compute_can_copy):
1204         Don't call oballoc/obfree.
1205         * genattrtab.c (operate_exp): Remove
1206         ggc_p conditionals.
1207         (simplify_cond): Likewise.
1208         (simplify_test_exp): Don't mess with obstacks.
1209         (optimize_attrs): Likewise.
1210         * gengenrtl.c (gendef): Don't include
1211         ggc_p conditionals.
1212         * ggc-callbacks.c (ggc_p): Remove.
1213         * ggc-none.c (ggc_p): Remove.
1214         * ggc.h (ggc_p): Don't declare.
1215         * integrate.c (save_for_inline): Don't mess with obstacks.
1216         (integrate_decl_tree): Likewise.
1217         (output_inline_function): Likewise.
1218         * lists.c
1219         (init_EXPR_INSN_LIST_cache): Likewise.
1220         * loop.c (temp_obstack):
1221         Remove.
1222         (rtl_obstack): Likewise.
1223         (init_loop): Don't mess with obstacks.
1224         (reg_address_cost): Free BIVs and GIVs.
1225         (check_insns_for_bivs): Use xmalloc, not oballoc.
1226         (find_mem_givs): Likewise.
1227         (record_biv): Likewise.
1228         (general_induction_var): Likewise.
1229         (product_cheap_p): Likewse.
1230         * optabs.c (init_one_libfunc): Remove
1231         ggc_p conditional.
1232         * print-tree.c (debug_tree): Don't use
1233         oballoc/obfree.
1234         (print_node): Likewise.
1235         * profile.c (output_func_start_profiler):
1236         Remove call to temporary_allocation.
1237         * reload1.c
1238         (eliminate_regs_in_insn): Don't mess with obstacks.
1239         * resource.c
1240         (mark_target_live_regs): Use xmalloc.
1241         (free_resource_info): Free the memory.
1242         * rtl.c (rtl_obstack):
1243         Remove.
1244         (rtvec_alloc): Don't mess with obstacks.
1245         (rtx_alloc): Likewise.
1246         (rtx_free): Remove.
1247         (copy_rtx): Don't handle `b' cases.
1248         (read_rtx): Use a local rtl_obstack.
1249         * rtl.h (oballoc): Remove.
1250         (obfree): Likewise.
1251         (pop_obstacks): Likewise.
1252         (push_obstacks): Likewise.
1253         (allocate_bb_life_data): Likewise.
1254         (allocate_reg_life_data): Likewise.
1255         (rtx_free): Likewise.
1256         * sdbout.c (sdbout_queue_anonymous_type):
1257         Use tree_cons, not saveable_tree_cons.
1258         * simplify-rtx.c
1259         (cselib_init): Don't mess with obstacks.
1260         * stmt.c
1261         (mark_block_nesting): Mark the label_chain.
1262         (epxand_label): Use ggc_alloc, not oballoc.
1263         (clear_last_expr): Don't mess with obstacks.
1264         (expand_decl_cleanup): Likewise.
1265         (expand_dcc_cleanup): Likewise.
1266         (expand_dhc_cleanup): Likewise.
1267         (expand_anon_union_decl): Likewise.
1268         (add_case_node): Use xmalloc, not oballoc.
1269         (free_case_nodes): New function.
1270         (expand_end_case): Call it.
1271         * stor-layout.c (layout_type): Don't
1272         mess with obstacks.
1273         (layout_type): Likewise.
1274         * toplev.c (wrapup_global_declarations):
1275         Likewise.
1276         (compile_file): Remove ggc_p conditionals.
1277         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
1278         (decode_f_option): Remove ggc_p conditionals.
1279         * tree.c
1280         (function_maybepermanent_obstack): Remove.
1281         (maybepermanent_obstack): Likewise.
1282         (function_obstack): Likewise.
1283         (tmeporary_obstack): Likewise.
1284         (momentary_obstack): Likewise.
1285         (temp_decl_obstack): Likewise.
1286         (saveable_obstack): Likewise.
1287         (rtl_obstack): Likewise.
1288         (current_obstack): Likewise.
1289         (expression_obstack): Likewise.
1290         (struct obstack_stack): Likewise.
1291         (obstack_stack): Likewise.
1292         (obstack_stack_obstack): Likewise.
1293         (maybepermanent_firstobj): Likewise.
1294         (temporary_firstobj): Likewise.
1295         (momentary_firstobj): Likewise.
1296         (temp_decl_firstobj): Likewise.
1297         (momentary_function_firstobj): Likewise.
1298         (all_types_permanent): Likewise.
1299         (struct momentary_level): Likewise.
1300         (momentary_stack): Likewise.
1301         (init_obstacks): Remove initialization of removed obstacks.
1302         (save_tree_status): Remove.
1303         (restore_tree_status): Likewise.
1304         (temporary_allocation): Liekwise.
1305         (end_temporary_allocation): Liekwise.
1306         (resume_temporary_allocation): Likewise.
1307         (saveable_allocation): Likewise.
1308         (push_obstacks): Likewise.
1309         (push_obstacks_nochange): Likewise.
1310         (pop_obstacks): Likewise.
1311         (allocation_temporary_p): Likewise.
1312         (permanent_allocation): Likewise.
1313         (preserve_data): Likewise.
1314         (preserve_initializer): Likewise.
1315         (rtl_in_current_obstack): Likewise.
1316         (rtl_in_saveable_obstack): Likewise.
1317         (oballoc): Likewise.
1318         (obfree): Likewise.
1319         (savealloc): Likewise.
1320         (expralloc): Likewise.
1321         (print_obstack_name): Likewise.
1322         (debug_obstack): Likewise.
1323         (object_permanent_p): Likewise.
1324         (push_momentary): Likewise.
1325         (perserve_momentary): Likewise.
1326         (clear_momentary): Likewise.
1327         (pop_momentary): Likewise.
1328         (pop_momentary_nofree): Likewise.
1329         (suspend_momentary): Likewise.
1330         (resume_momentary): Likewise.
1331         (make_node): Don't set TREE_PERMANENT.
1332         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
1333         Don't set TREE_PERMANENT.
1334         (get_identifier): Remove ggc_p conditionals.
1335         (build_string): Likewise.
1336         (make_tree_vec): Likewise.
1337         (build_decl_list): Remove.
1338         (build_expr_list): Likewise.
1339         (tree_cons): Remove ggc_p conditionals.
1340         (decl_tree_cons): Remove.
1341         (expr_tree_cons): Likewise.
1342         (perm_tree_cons): Likewise.
1343         (temp_tree_cons): Likewise.
1344         (saveable_tree_cons): Likewise.
1345         (build1): Remove ggc_p conditionals.
1346         (build_parse_node): Likewise.
1347         (build_type_attribute_variant): Don't mess with obstacks.
1348         (build_type_copy): Likewise.
1349         (type_hash_canon): Likewise.
1350         (build_pointer_type): Likewise.
1351         (build_reference_type): Likewise.
1352         (build_index_type): Likewise.
1353         (build_range_type): Likewise.
1354         (dump_tree_statistics): Don't print obstack information.
1355         * tree.h
1356         (struct tree_common): Remove permanent_flag.
1357         (TREE_PERMANENT): Remove.
1358         (TREE_SET_PERMANENT): Likewise.
1359         (TYPE_OBSTACK): Likewise.
1360         (struct tree_type): Remove obstack.
1361         (oballoc): Remove.
1362         (savealloc): Likewise.
1363         (build_decl_list): Likewise.
1364         (build_expr_list): Likewise.
1365         (perm_tree_cons): Likewise.
1366         (temp_tree_cons): Likewise.
1367         (saveable_tree_cons): Likewise.
1368         (decl_tree_cons): Likewise.
1369         (expr_tree_cons): Likewise.
1370         (suspend_momentary): Likewise.
1371         (allocation_temporary_p): Likewise.
1372         (resume_momentary): Likewise.
1373         (push_obstacks_nochange): Likewise.
1374         (permanent_allocation): Likewise.
1375         (push_momentary): Likewise.
1376         (clear_momentary): Likewise.
1377         (pop_momentary): Likewise.
1378         (end_temporary_allocation): Likewise.
1379         (pop_obstacks): Likewise.
1380         (push_obstacks): Likewise.
1381         (pop_momentary_nofree): LIkewise.
1382         (preserve_momentary): Likewise.
1383         (saveable_allocation): Likewise.
1384         (temporary_allocation): Likewise.
1385         (resume_temporary_allocation): Likewise.
1386         (perserve_initializer): Likewise.
1387         (debug_obstack): Likewise.
1388         (rtl_in_current_obstack): Likewise.
1389         (rtl_in_saveable_obstack): Likewise.
1390         (obfree): Likewise.
1391         * varasm.c (current_obstack): Remove.
1392         (saveable_obstack): Remove.
1393         (rtl_obstack): Remove.
1394         (immed_double_const): Don't mess with obstacks.
1395         (immed_real_cons): Likewise.
1396         (output_constant_def): Likewise.
1397         (init_varasm_status): Use xcalloc.
1398         (mark_pool_constant): Mark the pool constant itself.
1399         (free_varasm_status): Free memory.
1400         (decode_rtx_const): Call bzero directly, rather than expanding it
1401         inline.
1402         (record_rtx_const): Don't mess with obstacks.
1403         (force_const_mem): Likewise.
1404         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
1405         conditionals.
1406         (aof_pic_entry): Likewise.
1407         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1408         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
1409         * config/pa/pa.c (saveable_obstack): Remove.
1410         (rtl_obstack): Likewise.
1411         (current_obstack): Likewise.
1412         (output_call): Don't mess with obstacks.
1413         (hppa_encode_label): Remove ggc_p conditionals.
1414         * config/romp/romp.c (get_symref): Don't mess with obstacks.
1415         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
1416         (rs6000_encode_section_info): Likewise.
1417         * config/sh/sh.c (get_fpscr_rtx): Likewise.
1418
1419 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
1420
1421         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
1422         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
1423         (addsi3_carry): Canonicalize.
1424         (addqi_5): Remove '*'.
1425         (sbb pattern): Canonicalize.
1426
1427         * i386.md (cmp to inc/add peep2): New.
1428
1429 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
1430
1431         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
1432         the exit block.
1433
1434 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1435
1436         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
1437         * README.TRAD, TESTS.FLUNK: Remove.
1438
1439 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1440
1441         * c-common.c (decl_attributes): Don't allow strftime formats with
1442         first_arg_num nonzero.
1443         (check_format_info): Set wanted_type and wanted_type_name to zero
1444         before they are possibly assigned and used.
1445
1446 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1447
1448         * c-common.c (scanf_flag_specs): Add flags ' and I.
1449         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
1450         or the ^ and # flags together.
1451         (scan_char_table): Handle the ' and I flags.
1452         (format_types): Add ' and I flags for scanf.
1453
1454 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1455
1456         * c-common.c (print_char_table): Use the unpromoted type for
1457         lengths "h" and "hh" with conversions dioxXu.
1458         (check_format_types): Apply the default argument promotions where
1459         the wanted type is not a pointer target.
1460
1461 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
1462             Joseph S. Myers  <jsm28@cam.ac.uk>
1463
1464         * c-typeck.c (check_modify_expr): New function.
1465         (build_modify_expr): Call it if warn_sequence_point.
1466         * c-decl.c (warn_sequence_point): New variable.
1467         (c_decode_option): Handle -Wsequence-point and
1468         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
1469         * c-tree.h (warn_sequence_point): Declare.
1470         * invoke.texi (-Wsequence-point): Document.
1471         * toplev.c (documented_lang_options): Add -Wsequence-point and
1472         -Wno-sequence-point.
1473         Original work by Michael Meeks, 16 Jun 1998.
1474
1475 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1476
1477         * tree.c (get_narrower): Don't look at precision of field if
1478         not laid out yet.
1479
1480 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
1481
1482         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
1483         declaration for data with "progmem" attribute.
1484
1485 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
1486
1487         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
1488         Correct insn length if shift count is a memory operand.
1489         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
1490         (*iorhi3_clobber): Change lo8 to hi8.
1491         (zero_extendhisi2): Change %B0 to %A1.
1492         (ashlhi3, ashrhi3): Correct insn length.
1493         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
1494         from "clobber" to "set_n" in some alternatives.
1495
1496 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
1497
1498         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
1499         remove its insn_chain structure as well.
1500
1501 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1502
1503         * dbxout.c (dbxout_source_line): Remove extra tab.
1504
1505 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
1506
1507         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
1508
1509 2000-10-09  Richard Henderson  <rth@cygnus.com>
1510
1511         * Makefile.in (LANG_LIB2FUNCS): Remove.
1512         (LIB2FUNCS): Remove _pure.
1513         (LIB2ADD): Remove LANG_LIB2FUNCS.
1514         (stage_a): Don't set LANG_LIB2FUNCS.
1515         * libgcc2.c (__terminate): Mark noreturn.
1516         (__pure_virtual): Remove.
1517         * mklibgcc.in: Remove LIB2ADD .txt processing.
1518
1519 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1520
1521         * arm.md (push_multi): Revert unintended change.
1522
1523 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1524
1525         * arm.c: Miscellaneous white space and comment clean-ups.  No
1526         functional change.
1527         * arm.md: Likewise.
1528
1529 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1530
1531         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
1532         STRING_CST by calling combine_strings.
1533
1534 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1535
1536         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
1537         (thumb_output_move_mem_multiple): Support new insn format.
1538         * arm.md (movmem12b): Use SSA compatible format.
1539         (movmem8b): Likewise.
1540
1541 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1542
1543         * arm.md (predicable): New attribute, default to "no".
1544         (all patterns): Mark as predicable if appropriate.
1545         (conditional execution splits): Split using predication format.
1546         (define_cond_exec): Define.
1547         * arm.c (arm_print_operand): handle insn predicate.
1548
1549 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1550
1551         * README.NS32K: Remove file.
1552
1553 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1554
1555         * README-bugs: Remove file.
1556
1557 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1558         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
1559         for test.
1560         * configure: Rebuilt.
1561
1562 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1563         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
1564         disable catalog building if no suitable program was found.
1565         Move warning message from here
1566         (AM_GNU_GETTEXT): To here.
1567         * configure: Rebuilt.
1568
1569 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1570         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
1571         different cache variables.
1572         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
1573         uses different cache variables.
1574         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
1575         * configure: Regenerated.
1576
1577 2000-10-08  Richard Henderson  <rth@cygnus.com>
1578
1579         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
1580         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
1581         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
1582         Use SHLIB_EXT.
1583
1584         * config/t-linux (SHLIB_EXT): New.
1585         (SHLIB_LINK): Use the entire build command, with substitutions.
1586         (SHLIB_LIBS): Remove.
1587         * config/alpha/t-osf4: Likewise.
1588         * config/mips/t-iris6: Likewise.
1589         * config/sparc/t-sol2: Likewise, but move shlib stuff...
1590         * config/sparc/t-slibgcc-sld: ...here.
1591         * config/sparc/t-slibgcc: New file.
1592
1593 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1594
1595         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
1596         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
1597         CTI_UINTMAX_TYPE.
1598         (intmax_type_node, uintmax_type_node): Define.
1599         * c-common.c (decl_attributes): If pedantic, warn if `mode'
1600         attributes create a type wider than intmax_t.
1601         (T_IM, T_UIM): Define properly.
1602         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
1603         defined.
1604         (init_decl_processing): Initialize intmax_type_node and
1605         uintmax_type_node.
1606         * c-lex.c (lex_number): When pedantic and warning for integer
1607         constants that are too large, in C99 mode warn for those that have
1608         a type wider than long long.
1609
1610 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1611
1612         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
1613         FMT_FLAG_FANCY_PERCENT_OK): Define.
1614         (format_char_info): Add flag "4" to comment.
1615         (format_flag_spec, format_flag_pair): New structures.
1616         (format_kind_info): Add additional fields to control format
1617         checking.
1618         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
1619         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
1620         arrays.
1621         (time_char_table): Use "4" flag to handle %Ey.
1622         (format_types): Add entries for new fields.
1623         (get_flag_spec): New function.
1624         (check_format_info): Increase size of flag_chars[] to 256.
1625         Control format checking using the new fields of a format_kind_info
1626         and the new tables; remove all conditionals on printf_format_type,
1627         scanf_format_type or strftime_format_type.  Handle all details of
1628         bad combinations of flags (including width, precision and strftime
1629         modifiers) through data rather than ad hoc code.  Handle all
1630         details of standard versions in which flags appeared through
1631         data.  Use the "4" flag.
1632
1633 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
1634
1635         * config/h8300/h8300.md: Remove the memory alternative and correct
1636         the insn lengths in the templates for sign extention and zero
1637         extention.
1638
1639 2000-10-07  Richard Henderson  <rth@cygnus.com>
1640
1641         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
1642         * flow.c (make_edges): Revert last change.
1643
1644         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
1645         TREE_THIS_VOLATILE.
1646         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
1647
1648 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
1649
1650         * config/alpha/elf.h: Standardize the formatting.
1651
1652 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
1653
1654         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
1655         #undef.
1656
1657 2000-10-06  Richard Henderson  <rth@cygnus.com>
1658
1659         * function.c (diddle_return_value): Examine
1660         current_function_return_rtx instead of the DECL_RESULT.
1661         (expand_function_end): Handle reloading DECL_RESULT from memory
1662         into a hard register.  Query promote_mode for sign of mismatched
1663         modes.
1664
1665 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1666
1667         * haifa-sched.c (schedule_insns): Fix typo in freeing
1668         forward_dependency_cache.
1669
1670 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
1671
1672         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
1673         `TARGET_SH2' as a condition.
1674
1675 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1676
1677         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
1678         forward_dependency_cache): New variables.
1679         (add_dependence, remove_dependence): Use anti_dependency_cache and
1680         output_dependency_cache.
1681         (compute_block_forward_dependences): Use forward_dependency_cache.
1682         (schedule_insns): Allocate and free memory for anti/output/forward
1683         dependencies caches.
1684
1685 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
1686
1687         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
1688         `! TARGET_SH1'.  Reindent.
1689
1690 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1691
1692         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
1693         Move functions from here ...
1694
1695         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
1696         ... to here.
1697         (c_expand_builtin): New function.
1698         (init_function_format_info): Don't set `check_function_format_ptr'.
1699         (c_common_nodes_and_builtins): Set built_in_class type for
1700         printf/__builtin_printf to BUILT_IN_FRONTEND.
1701         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
1702
1703         * c-common.h (build_function_call): Declare.
1704
1705         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
1706         to `lang_expand_expr' rather than `expand_builtin'.
1707
1708         * tree.c (check_function_format_ptr): Delete.
1709
1710         * tree.h (check_function_format_ptr): Likewise.
1711
1712 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
1713
1714         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
1715         DW_OP_bregx when cfa->reg > 31.
1716
1717         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
1718         break.
1719
1720 2000-10-05  Richard Henderson  <rth@cygnus.com>
1721
1722         * c-decl.c (warn_missing_noreturn): Remove.
1723         (c_expand_body): Don't set or check can_reach_end.
1724         * c-tree.h (warn_missing_noreturn): Move ...
1725         * flags.h: ... here.
1726         (can_reach_end): Remove.
1727         * flow.c (check_function_return_warnings): New.
1728         (make_edges): No edge to exit for noreturn sibcalls.
1729         * function.c (expand_function_end): Save the return value
1730         clobber instruction.
1731         (mark_function_status): Mark it.
1732         * function.h (struct function): Add x_clobber_return_insn.
1733         * jump.c (can_reach_end): Remove.
1734         (calculate_can_reach_end): Remove.
1735         (jump_optimize_1): Don't call it.
1736         * output.h (check_function_return_warnings): Declare.
1737         * toplev.c (warn_missing_noreturn): Move from c-decl.c
1738         (rest_of_compilation): Call check_function_return_warnings.
1739
1740 2000-10-05  Richard Henderson  <rth@cygnus.com>
1741
1742         * Makefile.in (NM_FOR_TARGET): New.
1743         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
1744         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
1745         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
1746         shared library build on that and EXTRA_MULTILIB_PARTS.
1747         * mkmap-flat.awk: New file.
1748         * mkmap-symver.awk: New file.
1749         * libgcc-std.ver: New file.
1750         * config/libgcc-glibc.ver: New file.
1751         * config/ia64/libgcc-ia64.ver: New file.
1752         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
1753         (SHLIB_LINK): Add --version-script.
1754         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
1755         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
1756         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
1757         (SHLIB_LINK): Add -M.
1758
1759 2000-10-05  Richard Henderson  <rth@cygnus.com>
1760
1761         * Makefile.in (LIB2FUNCS): Add _clz.
1762         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
1763         (__clz_tab): Put in its own unit, non-static.
1764         * libgcc2.h: Always include longlong.h.
1765
1766         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
1767         a zero instead of -1.
1768         (count_trailing_zeros): Likewise.
1769
1770 2000-10-05  Richard Henderson  <rth@cygnus.com>
1771
1772         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
1773         when second op1 is const0_rtx.  Validate op0 as a register.
1774         * config/alpha/alpha.md (setcc_internal): Don't allow constants
1775         in the first argument of the compare.
1776         (setcc_swapped_internal): Likewise.
1777         (setne_internal): Likewise.
1778
1779 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
1780
1781         * tree.c (tree_size): New function split out of copy_node.
1782         (make_node): Remove obstack handling.  Use tree_size.
1783         (copy_node): Use tree_size.
1784         * tree.h: Prototype tree_size.
1785
1786 2000-10-05  Richard Henderson  <rth@cygnus.com>
1787
1788         * diagnostic.c (output_format): Add missing break.
1789
1790 2000-10-05  Jim Wilson  <wilson@cygnus.com>
1791
1792         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
1793         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
1794         sequence insn to INSN, and delete last sequence insn.
1795
1796 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
1797
1798         * gcc.c (main): Include generated configargs.h header
1799         and use arguments in '-v' output.
1800
1801 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1802
1803         * gcc.c: Move data on prefixes forward in file and reorganize.
1804         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
1805         Always define, but make null if no value.
1806         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
1807         and "md_startfile_prefix_1".
1808         (main): Check whether md_exec_prefix and the others are the
1809         null string rather than whether the macro is defined.
1810
1811 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1812
1813         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
1814         from PSImode to SImode.
1815
1816 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
1817
1818         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
1819         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
1820         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
1821         sizeof(long).
1822
1823 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1824
1825         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
1826         negation in proper type.a
1827
1828 2000-10-04  Richard Henderson  <rth@cygnus.com>
1829
1830         * configure.in (enable-shared): New.
1831         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
1832         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
1833         * mklibgcc.in: Use them to link shared a libgcc.
1834         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
1835         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
1836         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
1837         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
1838
1839         * configure.in (alpha-osf*): Use t-osf and x-osf.
1840         * config/alpha/t-osf: New file.
1841         * config/alpha/t-osf4: New file.
1842         * config/alpha/x-osf: New file.
1843         * config/alpha/x-alpha: Remove file.
1844
1845 2000-10-04  Will Cohen  <wcohen@redhat.com>
1846
1847         * c-typeck.c (process_init_element): Added warning for zero-length
1848         array.
1849
1850         * extend.texi (Zero Length): State that static initializers for
1851         zero-length arrays are not allowed.
1852
1853 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1854
1855         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
1856         to come last.
1857
1858 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1859
1860         * config/float-c4x.h: New.
1861         * configure.in (c4x-*): Set float_format to c4x.
1862         * configure: Regenerate.
1863
1864 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1865
1866         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
1867         compilation for solaris versions 2.7 and greater.
1868
1869 2000-10-02  Marc Espie <espie@openbsd.org>
1870
1871         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
1872         instead of redefining from scratch.
1873
1874 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
1875
1876         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
1877
1878 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
1879
1880         * config/ns32k/genix.h: Remove.
1881         * config/ns32k/x-genix: Likewise.
1882         * config/ns32k/xm-genix.h: Likewise.
1883         * config/fx80: Remove all filee in directory.
1884         * config/pyr: Likewise.
1885         * config/tahoe: Likewise.
1886         * config/gmicro: Likewise.
1887         * config/spur: Likewise.
1888         * configure.in: Remove configury bits for above targets.
1889         * configure: Regenerated.
1890
1891         * configure.in: Don't configure chill by default.
1892         * configure: Regenerated.
1893
1894         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
1895         (lang_mark_false_label_stack): Remove.
1896         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
1897         <top level> string in GC area.
1898         (mark_splay_tree_node): New function.
1899         (mark_splay_tree): Likewise.
1900         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
1901         if it exists.
1902         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
1903         * ggc-common.c (lang_mark_false_label_stack): Change type.
1904         * ggc.h (ggc_alloc_string): Add comment.
1905         (ggc_strdup): New function.
1906
1907 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
1908
1909         * config/avr/avr.h (BRANCH_COST): Define as 0.
1910
1911         * config/pdp11/pdp11.c: #include "tree.h" added.
1912
1913 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
1914
1915         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
1916         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
1917         with known shift count.
1918         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
1919         New alternative for shift count 2 with no scratch register.
1920         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
1921         "set_n" for shift counts 1 and 2.
1922
1923 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
1924
1925         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
1926         the mask value from the individual SET operations.
1927         (return_internal_si): Move the USE after the RETURN.
1928         (return_internal_di): Likewise.
1929         (return_and_restore_fpregs_si): Likewise.
1930         (return_and_restore_fpregs_di): Likewise.
1931         (return_eh_si): Likewise.
1932         (return_eh_di): Likewise.
1933         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
1934         or check, the USE.
1935         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
1936         Don't generate a PARALLEL around a single operation movsi_to_cr.
1937         Generate the RETURN first in any PARALLELs.
1938
1939         * rtlanal.c (single_set_1): Use fatal_insn to display the
1940         invalid insn.  Check for more cases when a USE or CLOBBER occurs
1941         before a SET.
1942         * Makefile.in: Update dependencies for rtlanal.o.
1943
1944 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
1945
1946         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
1947
1948 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
1949
1950         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
1951         Consistently use @email for formatting email addresses.
1952
1953 2000-09-29  Richard Henderson  <rth@cygnus.com>
1954
1955         * cse.c (notreg_cost): New argument outer.
1956         (COST): Pass in SET to notreg_cost
1957         (COST_IN): New.
1958         (fold_rtx): Use COST_IN.  Prefer constants when costs
1959         are the same.
1960
1961 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
1962
1963         * fixinc/inclhack.def (broken_cabs): Generalize regex.
1964         * fixinc/fixincl.x: Regenerate.
1965
1966 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1967
1968         * loop.c (check_final_value): A GIV is not replaceable if used
1969         before set.
1970
1971 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
1972
1973         * version.c: Bump to gcc-2.97.
1974
1975 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1976
1977         * final.c (final_scan_insn): Remove extra extract_insn call;
1978         Use caching for constrain_operands.
1979         (cleanup_subreg_operands): Use caching for extract_insn.
1980         * recog.c (constrain_operands_cached): New.
1981         * recog.h (constrain_operands_cached): Declare.
1982         * i386.c (ix86_attr_length_immediate_default,
1983         ix86_attr_length_address_default, ix86_agi_dependant): Cache
1984         extract_insn call.
1985
1986         * recog.c (asm_noperands): Tweak.
1987         (extract_insn): Do not call asm_noperads for non-asm instructions.
1988
1989 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1990
1991         * recog.c (recog_memoized): Rename to recog_memoized_1.
1992         * recog.h (recog_memoized): Rename to recog_memoized_1.
1993         (recog_memoized): New macro.
1994         * rtl.h (single_set): Rename to single_set_1
1995         (single_set): New macro.
1996         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
1997         to be last.
1998
1999         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
2000         Do not use match_dup of input operands at outputs.
2001         Use register_operand for memory expression.
2002         (rep_movsi): Put use last, canonicalize.
2003         Use register_operand for memory expression.
2004         (rep_movqi): Put use last.
2005         Use register_operand for memory expression.
2006         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
2007         of input operands at outputs.  Use register_operand for memory
2008         expression.
2009         (rep_stossi): Put use last; canonicalize; fix match_dup in
2010         the address expression
2011         (rep_stosqi): Likewise.
2012         (memcmp expander): Update calls.
2013         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
2014         the clobbers.
2015
2016         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
2017         VOIDmode.
2018         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
2019
2020 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
2021
2022         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
2023         Contains the old contents of config/i386/freebsd.h
2024         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
2025         Contains the old contents of config/i386/freebsd-elf.h
2026         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
2027         config/i386/freebsd.h.
2028         * configure.in: Adjust for above changes.
2029         * po/POTFILES.in: Likewise.
2030         * po/en_GB.po: Likewise.
2031         * po/gcc.pot: Likewise.
2032         * configure: Rebuilt.
2033
2034 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2035
2036         * doloop.c (doloop_modify): Prevent delete_insn() from
2037         deleting too much.  Prefer loop->top over loop->start as
2038         target for the new JUMP insn.
2039         (doloop_valid_p): Ignore loop with exit_count != 0.
2040
2041 2000-09-28  Philipp Thomas  <pthomas@suse.de>
2042
2043         * invoke.texi (i386 Options): Add athlon to table of possible
2044         choices for -mcpu=.
2045
2046 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
2047
2048         * diagnostic.h (output_clear_message_text): New function.
2049         (output_message_text): New macro.
2050
2051         * diagnostic.c (clear_text_info): Rename to
2052         output_clear_message_text.
2053         (output_clear): Adjust.
2054         (output_finish): Rename to output_finalize_message.  Tweek.
2055         (output_to_stream): Adjust.
2056
2057 2000-09-28  Neil Booth  <neilb@earthling.net>
2058
2059         * cpperror.c (_cpp_begin_message):  Do the test for suppression
2060         of warnings and pedantic warnings before the "is a warning an
2061         error" tests.
2062         * cppinit.c (cpp_handle_option): Remove surplus \n.
2063         * cpplex.c (ON_REST_ARG): Delete.
2064         (skip_block_comment): Initialise prevc.
2065         (parse_args): Improve error messages.
2066         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
2067         than ON_REST_ARG.
2068         * cpplib.c (cpp_push_buffer): Fix grammar in message.
2069         * cppmain.c (main): Set callbacks for #ident and #pragma
2070         only if no_output option is false.
2071         (do_pragma_implementation): Only call the #pragma handler
2072         if it is set in the cpp_reader structure.
2073
2074 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
2075
2076         * integrate.c (copy_insn_list): if an ignored return value
2077         is being clobbered, skip cloning that into the inline copy.
2078
2079 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
2080
2081         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
2082         use @uref for formatting URLs.
2083
2084 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
2085
2086         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
2087         name and prefix.
2088
2089 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
2090
2091         * gcc.c (cpp_options): Add spec for -ftabstop=.
2092         (invoke_as): New spec that handles invoking as.
2093         Update specs to handle -save-temps and -traditional.
2094         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
2095         Use invoke_as.
2096         * cp/lang-specs.h, objc/lang-specs.h: Update to use
2097         invoke_as, and handle -save-temps and -traditional (if
2098         appropriate).
2099
2100 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
2101
2102         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
2103         op0 is a SUBREG.
2104         (function_arg_slotno): Accept TImode/CTImode.
2105         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
2106         to UNITS_PER_WORD.
2107
2108 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
2109
2110         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
2111         from entry block.
2112
2113 2000-09-25  Jim Wilson  <wilson@cygnus.com>
2114
2115         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
2116         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
2117         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
2118         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
2119
2120 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
2121
2122         * cpplex.c (parse_args): Don't set VOID_REST flag.
2123         (CONTEXT_VARARGS): New flag.
2124         (maybe_paste_with_next): Set context earlier in loop.  Use
2125         it.  Do varargs test with CONTEXT_VARARGS flag.
2126         (push_arg_context): Set CONTEXT_VARARGS flag if we're
2127         pushing an argument context for a varargs argument.
2128         * cpplib.h (VOID_REST): Delete.
2129         * gcc.dg/cpp/vararg1.c: Add test case.
2130
2131 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
2132
2133         * flags.h:  Declare warning flag warn_system_headers.
2134         * toplev.c:  Define it.
2135         (W_options): Add option -Wsystem-headers.
2136         * diagnostic.c (count_error): Test warn_system_headers.
2137         * invoke.texi:  Add description for -Wsystem-headers.
2138         * cpplib.h (cpp_options): New member warn_system_headers.
2139         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
2140         CPP_IN_SYSTEM_HEADER.
2141         * cpplib.c (do_import, do_pragma_once): Likewise.
2142         * cpperror.c (_cpp_begin_message): Test warn_system_headers
2143         and CPP_IN_SYSTEM_HEADER.
2144         * cppinit.c (handle_option): Recognize -Wsystem_headers.
2145         (print_help): Describe -Wsystem_headers.
2146         * cpplex.c (lex_line): Reorganize condition so that warnings
2147         about C++ comments in system headers can be enabled. Remove
2148         label do_line_comment.
2149
2150 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
2151
2152         * cpplex.c (save_comment): Only store the initial '/'
2153         now.
2154         (lex_token): Combine handling of the two comment types.
2155         Pass everything but the initial '/' to save_comment.
2156
2157 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
2158
2159         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
2160         _cpp_can_paste): New library-internal prototypes.
2161         * cpplex.c (dump_param_spelling, output_line_command,
2162         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
2163         cpp_printf, cpp_output_list): Move to cppoutput.c.
2164         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
2165         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
2166         cppoutput.c.
2167         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
2168         dump_param_spelling, output_line_command, cpp_scan_buffer,
2169         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
2170         from elsewhere.
2171         * Makefile.in: Add cppoutput.c.
2172         * po/POTFILES.in: Add cppoutput.c.
2173
2174 2000-09-25  Richard Henderson  <rth@cygnus.com>
2175
2176         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
2177         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
2178         split until after reload.
2179         (rotlsi3, rotldi3): New.
2180
2181 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2182
2183         * diagnostic.c (output_last_position): Define.
2184         (set_real_maximum_length): Tweek.
2185         * diagnostic.h (output_last_position): Declare.
2186
2187 2000-09-25  Kazu Hirata  <kazu@hxi.com>
2188
2189         * config/i386/i386.c: Fix formatting.
2190
2191 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
2192
2193         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
2194         UNITS_PER_WORD is small.
2195
2196 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2197
2198         * c-common.c (format_char_info): Add flags2; update comments.
2199         (print_char_table, scan_char_table, time_char_table): Split some
2200         flags out into flags2.
2201         (check_format_info): Use flags2 for those flags, for identifying
2202         the initial character of a scanf scanset, and for identifying
2203         printf formats where the '0' flag is ignored with precision.
2204
2205 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
2206
2207         Changes below marked "here" add TABs on either or both sides,
2208         covering start of line, up to any operand for all noted .*ASM.*_OP
2209         definitions.  All callers changed.
2210         * tm.texi: Make documented *_ASM.*_OP:s include spacing
2211         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
2212         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2213         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2214         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
2215         Fix typos in description for LONG_LONG_TYPE_SIZE and
2216         FINI_SECTION_ASM_OP.
2217         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
2218         why these defaults don't have leading spacing.
2219         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
2220         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2221         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
2222         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
2223         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
2224         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
2225         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
2226         * varasm.c (ASM_STABS_OP): Here.
2227         * xcoffout.h (ASM_STABS_OP): Here.
2228         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2229         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2230         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
2231         STRING_ASM_OP): Here.
2232         * config/freebsd.h (IDENT_ASM_OP): Here.
2233         * config/linux-aout.h (SET_ASM_OP): Here.
2234         * config/linux.h (SET_ASM_OP): Here.
2235         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2236         INT_ASM_OP): Here.
2237         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2238         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
2239         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2240         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2241         INT_ASM_OP): Here.
2242         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2243         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2244         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
2245         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2246         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
2247         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2248         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
2249         * config/a29k/udi.h (INT_ASM_OP): Here.
2250         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
2251         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2252         SET_ASM_OP): Here.
2253         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
2254         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2255         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2256         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
2257         ASM_STABD_OP): Here.
2258         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
2259         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
2260         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2261         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
2262         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
2263         SIZE_ASM_OP, STRING_ASM_OP): Here.
2264         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
2265         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
2266         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
2267         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
2268         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
2269         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
2270         Here.
2271         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2272         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
2273         * config/arm/coff.h (INT_ASM_OP): Here.
2274         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2275         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
2276         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
2277         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
2278         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2279         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2280         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
2281         STRING_ASM_OP): Here.  Update documentation copy in comments.
2282         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
2283         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
2284         DATA_SECTION_ASM_OP): Here.
2285         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
2286         Here.
2287         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
2288         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2289         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2290         BSS_SECTION_ASM_OP): Here.
2291         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2292         BSS_SECTION_ASM_OP): Here.
2293         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2294         Here.
2295         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
2296         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2297         * config/h8300/h8300.h (ASM_WORD_OP): Here.
2298         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2299         BSS_SECTION_ASM_OP): Here.
2300         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
2301         * config/i386/bsd.h (ASM_BYTE_OP): Here.
2302         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
2303         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
2304         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
2305         Here.
2306         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
2307         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
2308         Here.
2309         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
2310         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2311         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
2312         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2313         SET_ASM_OP): Here.
2314         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
2315         * config/i386/netbsd.h (INT_ASM_OP): Here.
2316         * config/i386/openbsd.h (INT_ASM_OP): Here.
2317         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
2318         IDENT_ASM_OP): Here.
2319         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
2320         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
2321         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
2322         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
2323         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
2324         SHARED_BSS_SECTION_ASM_OP): Here.
2325         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
2326         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2327         DATA_SECTION_ASM_OP): Here.
2328         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2329         CONST_SECTION_ASM_OP): Here.
2330         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
2331         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2332         BSS_SECTION_ASM_OP): Here.
2333         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
2334         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
2335         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
2336         BSS_ASM_OP): Here, but use trailing spaces.
2337         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2338         DATA_SECTION_ASM_OP): Here.
2339         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
2340         Here.
2341         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
2342         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
2343         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2344         TDESC_SECTION_ASM_OP): Here.
2345         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
2346         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2347         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2348         Here.
2349         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2350         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2351         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2352         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
2353         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
2354         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
2355         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2356         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
2357         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
2358         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
2359         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2360         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2361         SET_ASM_OP): Here.
2362         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2363         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2364         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
2365         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
2366         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
2367         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
2368         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
2369         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2370         GLOBAL_ASM_OP): Here.
2371         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
2372         BSS_SECTION_ASM_OP): Here.
2373         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
2374         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2375         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
2376         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
2377         SKIP_ASM_OP): Here.
2378         * config/m68k/newsgas.h (SET_ASM_OP): Here.
2379         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
2380         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
2381         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2382         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2383         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
2384         but use trailing spaces.
2385         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
2386         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
2387         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
2388         Here.
2389         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2390         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
2391         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2392         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2393         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2394         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
2395         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
2396         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
2397         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
2398         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
2399         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2400         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
2401         ASM_BYTE_OP): Here.
2402         * config/m88k/openbsd.h (SET_ASM_OP): Here.
2403         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2404         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
2405         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
2406         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
2407         DTORS_SECTION_ASM_OP): Here.
2408         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
2409         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2410         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
2411         BSS_SECTION_ASM_OP): Here.
2412         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
2413         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
2414         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
2415         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
2416         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
2417         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
2418         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
2419         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
2420         Here.
2421         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
2422         Here.
2423         * config/mips/osfrose.h (SET_ASM_OP): Here.
2424         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
2425         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
2426         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
2427         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2428         Here.
2429         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
2430         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
2431         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
2432         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
2433         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
2434         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2435         Here.
2436         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2437         Here.
2438         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
2439         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
2440         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
2441         Here.
2442         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
2443         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
2444         * config/sparc/linux.h (COMMON_ASM_OP): Here.
2445         * config/sparc/linux64.h (COMMON_ASM_OP,
2446         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
2447         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
2448         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2449         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
2450         * config/sparc/pbd.h (ASM_INT_OP): Here.
2451         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
2452         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2453         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
2454         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
2455         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
2456         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
2457         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
2458         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
2459         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
2460         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2461         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2462         EH_FRAME_SECTION_ASM_OP): Here.
2463         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
2464         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2465         Here.
2466         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2467         Here.
2468         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
2469         TCOMMON_ASM_OP): Here.
2470         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2471         Here.
2472         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2473         ASM_BYTE_OP): Here.
2474
2475 2000-09-25  Richard Henderson  <rth@cygnus.com>
2476
2477         * expmed.c (store_bit_field): Adjust last change to not consider
2478         any word-sized field naturally aligned.
2479
2480 2000-09-24  Richard Henderson  <rth@cygnus.com>
2481
2482         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
2483         TFmode unordered compares properly.  Revalidate integer compare
2484         operands.
2485         (alpha_emit_setcc): New.
2486         (alpha_emit_conditional_move): Revalidate integer compare operands.
2487         * config/alpha/alpha-protos.h: Update.
2488         * config/alpha/alpha.md (cmpdi): Allow general operands.
2489         (sne): Use alpha_emit_setcc.
2490         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
2491         (sunordered, sordered): New.
2492
2493 2000-09-24  Richard Henderson  <rth@cygnus.com>
2494
2495         * config/ia64/ia64-protos.h: Update.
2496         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
2497         (ia64_expand_call): New.
2498         (ia64_expand_prologue): Emit an alloc if we need extra input
2499         registers.
2500         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
2501         instruction if true.
2502         (struct reg_flags): Add is_sibcall.
2503         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
2504         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
2505         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
2506         * config/ia64/ia64.h (PREDICATE_CODES): Update.
2507         * config/ia64/ia64.md (call): Use ia64_expand_call.
2508         (call_value): Likewise.
2509         (sibcall, sibcall_value): New.
2510         (call patterns): Remove extra expanders; tidy.
2511         (sibcall_epilogue): New.
2512         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
2513
2514 2000-09-24  Richard Henderson  <rth@cygnus.com>
2515
2516         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
2517
2518         * sibcall.c (skip_pic_restore): New.
2519         (identify_call_return_value): Use it.
2520
2521 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
2522
2523         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
2524         functions.  Generalize to handle both C and C++.
2525         * Makefile.in (c-tree.info): New target.
2526         (info): Add c-tree.info.
2527
2528 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2529
2530         * expr.c (store_field): If BITSIZE is negative, use size of type.
2531         (expand_expr, case COMPONENT_EXPR): Likewise.
2532
2533 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
2534
2535         * cpplex.c: Update TODO comment.
2536         * cpplib.c (do_error, do_warning): Merge common code of
2537         do_error and do_warning into do_diagnostic.  Use it.
2538         (do_diagnostic): New function.
2539         * cpplib.h: Fix comment typo.
2540
2541 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
2542
2543         * c-common.c (check_format_info): Warn for a wide character string
2544         used as a non-wide format argument.
2545
2546 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
2547
2548         * builtins.def (BUILT_IN_LLABS): Add.
2549         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
2550         * c-common.c (c_common_nodes_builtins): Create builtin functions
2551         __builtin_llabs, and plain llabs unless no_nonansi_builtins
2552         outside of C99 mode.
2553         (expand_tree_builtin): Handle BUILT_IN_LLABS.
2554
2555 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
2556
2557         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
2558         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
2559         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
2560         _cpp_free_toklist): No need to worry about extra dummy token
2561         at the start of token lists any more.
2562         (trigraph_ok): Only warn outside comments.
2563         (skip_block_comment): Set and clear lexing_comment.
2564         (skip_line_comment): Take a cpp_reader not cpp_buffer.
2565         Set and clear lexing_comment.
2566         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
2567         (check_long_token): Delete.
2568         (lex_percent, lex_dot): New subroutines of lex_token to
2569         handle lexing of '.' and '%' without lookback.
2570         (lex_token): Use lex_dot and lex_percent.
2571         (lex_line): Don't check for LIST_OFFSET.
2572         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
2573         * cpplib.c (_cpp_parse_assertion): Similarly.
2574         (cpp_push_buffer): Initialize extra_char.
2575         * cpplib.h (LIST_OFFSET): Delete.
2576         (struct cpp_buffer): New member extra_char.
2577         (struct lexer_state): New members lexing_comment and seen_dot.
2578
2579 2000-09-23  Jason Merrill  <jason@redhat.com>
2580
2581         * config/rs6000/x-aix41 (CLIB): Define here.
2582         * config/rs6000/t-aix43: Not here.
2583         * config/rs6000/t-aix41: Or here.  Remove.
2584         * configure.in: Don't use it.
2585
2586 2000-09-22  Jason Merrill  <jason@redhat.com>
2587
2588         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
2589         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
2590         * config.in: Regenerate.
2591
2592         * configure.in: Fix checks for assembler features when using a
2593         one-tree assembler that has not yet been built.
2594         Fix --disable-threads.
2595
2596 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
2597
2598         * stmt.c (expand_asm_operands): Allow # in constraints.
2599
2600 2000-09-22  Jason Merrill  <jason@redhat.com>
2601
2602         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
2603
2604         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
2605         function-local names.
2606
2607 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
2608             Mark Mitchell  <mark@codesourcery.com>
2609
2610         * toplev.c (warn_disabled_optimization): Declare new warning flag.
2611         * flags.h (warn_disabled_optimization): Add it here.
2612         * gcse.c (gcse_main): Add warning when disabled.
2613         * invoke.texi: Document -Wdisabled-optimization.
2614
2615 2000-09-21  Jason Merrill  <jason@redhat.com>
2616
2617         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
2618
2619         * dwarf2out.c (tree_add_const_value_attribute): New fn.
2620         (gen_variable_die): Call it for non-definitions.
2621
2622         * dwarf2out.c (die_struct): Add die_mark field.
2623         (mark_dies, unmark_dies): New fns.
2624         (clear_die_sizes): Remove.
2625         (print_die): Check die_symbol rather than die_offset.
2626         (build_abbrev_table, output_pubnames, output_aranges): Check
2627         die_mark rather than die_offset.
2628         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
2629         Call mark_dies.
2630
2631 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
2632
2633         * cppfiles.c (lookup_include_file): Rename to open_file.
2634         Always create a splay tree value, even on syscall failures.
2635         Negative entries indicated by fd == -2.
2636         Re-open files closed in the meantime.
2637         (_cpp_fake_include): Create a negative splay tree entry.
2638         (find_include_file, cpp_read_file): Update for function name
2639         change.
2640         * gcc.gd/cpp/mi4.c: Testcase.
2641
2642 2000-09-21  Nick Clifton  <nickc@redhat.com>
2643
2644         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
2645         ARM and THUMB modes.
2646
2647         * config/mcore/mcore.c: Fix compile time warnings.
2648         * config/mcore/mcore-protos.h: Fix compile time warnings.
2649
2650 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2651
2652         * configure.in: Correct test of gcc_cv_glibc.
2653         * configure: Rebuilt.
2654         * config.in: Rebuilt.
2655
2656 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2657
2658         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
2659         (expand_builtin): Handle BUILT_IN_FWRITE.
2660
2661         * builtins.def (BUILT_IN_FWRITE): New entry.
2662
2663         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
2664
2665 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2666
2667         * gcc.c (modify_target): New variable and struct.
2668         (process_command): Handle MODIFY_TARGET_NAME.
2669         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
2670         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
2671
2672         * c-decl.c (finish_decl): Add else's to avoid referencing
2673         TYPE_DOMAIN of an ERROR_MARK.
2674
2675 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
2676
2677         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
2678         `reload_in*' insns.
2679
2680 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
2681
2682         * config/avr/avr.md (neghi2): Add alternative for input and output
2683         operands in different registers, as in negsi2.
2684         (*negsi2): Remove '*' from the name.  Use "movw" if available.
2685
2686 2000-09-19  Jim Wilson  <wilson@cygnus.com>
2687
2688         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
2689         HAVE_GAS_HIDDEN macro.
2690
2691 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
2692
2693         * cpplex.c (lex_line): Drop the EOF token for unknown
2694         directives in assembler.
2695
2696 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
2697
2698         * configure.in: Allow enable_threads_flag value of "aix".  Define
2699         thread_file as "aix" for AIX 4.3 and above.
2700         * configure: Regenerated.
2701
2702         * gthr-aix.h: New file.
2703
2704         * rs6000/t-aix43: Replace soft-float multilib with pthread.
2705         Remove 403 processor multilib match.  Fix rios2 processor multilib
2706         match.
2707
2708         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
2709         to return to appropriate csect.
2710
2711 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2712
2713         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
2714         functions.
2715         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
2716         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
2717         BUILT_IN_PRINTF.
2718
2719         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
2720         New entries.
2721
2722         * c-common.c (init_function_format_info): Handle __builtin_printf.
2723         Set `check_function_format_ptr'.
2724         (c_common_nodes_and_builtins): Set `puts_ftype' and
2725         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
2726         __builtin_printf and printf.
2727
2728         * tree.c, tree.h (check_function_format_ptr): Declare.
2729
2730 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
2731
2732         * cppfiles.c (read_include_file): Take no special action for
2733         zero-length files.
2734
2735 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
2736
2737         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
2738         rather than that of branch.
2739         (shorten_branches): Don't increment insn_current_address twice.
2740
2741         Undo most of the Wed Jan 27 23:39:53 1999 patch:
2742         * loop.h (struct induction): Delete members derived, ix and last_use.
2743         (struct loop_ivs): Delete members first_increment_giv and
2744         last_increment_giv.
2745         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
2746         recombine_givs): Delete functions.
2747         (find_and_verify_loops): Don't initialize cont_dominator.
2748         (strength_reduce): Lose code to try to find bivs that can be
2749         expressed as givs of another biv, and to convert biv increments
2750         into givs.
2751         Lose loop_scan_start variable, always use loop->scan_start.
2752         Don't call recombine_givs.  Don't handle derived givs.
2753         (record_giv): Don't initialize derived and last_use fields.
2754         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
2755         givs.
2756         * unroll.c (derived_regs): Delete static variable.
2757         (unroll_loop): Don't initialize it.
2758         (copy_loop_body): Lose code to handle derived givs.
2759         (find_splittable_givs): Don't check for givs made from biv
2760         increments.
2761         Don't set derived_regs.
2762
2763         Fix misapplied earlier patch:
2764         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
2765         to fpul.
2766         (floatsisf2): Generate floatsisf_ie by default.
2767         (floatsisf_i4): Conditional on TARGET_SH4.
2768
2769         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
2770         predicate for the expanders.
2771
2772 2000-09-19  Richard Henderson  <rth@cygnus.com>
2773
2774         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
2775         in addition to pentium and pentiumpro symbols.
2776         (CPP_CPU_DEFAULT_SPEC): Likewise.
2777
2778         * c-typeck.c (c_expand_asm_operands): Restore the output tree
2779         after expanding.
2780
2781         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
2782         if the tree has side effects.
2783         (warn_if_unused_value): Do not warn about void constructs.
2784
2785         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
2786
2787         * unroll.c (copy_loop_body): Update LABEL_NUSES before
2788         calling invert_jump.
2789
2790 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
2791
2792         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
2793         into anything.
2794
2795 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2796
2797         * Makefile.in (c-common.o): Depend on diagnostic.h.
2798
2799         * c-common.c: Include diagnostic.h.
2800         (tfaff): Delete.
2801         (status_warning): New function.
2802         (check_format_info, maybe_read_dollar_number, check_format_types,
2803         finish_dollar_format_checking, check_function_format): Accept a
2804         `status' parameter.  All callers changed.
2805
2806         * c-common.h (check_function_format): Accept a `status' parameter.
2807
2808         * c-typeck.c: Update call to `check_function_format'.
2809
2810 2000-09-18  Richard Henderson  <rth@cygnus.com>
2811
2812         * c-decl.c (c_expand_body): Call mark_varargs before
2813         expand_function_start.
2814
2815 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
2816
2817         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
2818         * config/rs6000/eabi-ci.asm: Likewise.
2819
2820 2000-09-18  Richard Henderson  <rth@cygnus.com>
2821
2822         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
2823         for BImode.
2824
2825 2000-09-18  Jim Wilson  <wilson@cygnus.com>
2826
2827         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
2828         before passing it to fold_rtx_mult_add.
2829
2830         * unroll.c (final_giv_value): Pass increment through
2831         extend_value_for_giv before passing it to emit_iv_add_mult.
2832
2833         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
2834         paradoxical subreg, then directly substitute the replacement and
2835         return.
2836
2837 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
2838
2839         * cpp.texi: Update documentation, including some clarifications,
2840         the treatment of various newline combinations, and space between
2841         backslash and newline.
2842
2843 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2844
2845         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
2846         Replace ASM_OUTPUT_LABELREF with assemble_name.
2847
2848 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2849
2850         * sh.c (addsubcosts): CONST is not cheap.
2851         (find_barrier): For Sh1, take alignment after jumps into account.
2852
2853 2000-09-15  Andrew Haley  <aph@redhat.com>
2854
2855         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
2856         remove all SETs of SUBREGs of hard registers.
2857         * function.c (purge_hard_subreg_sets): New function.
2858         (purge_single_hard_subreg_set): New function.
2859         * rtl.h: (purge_hard_subreg_sets): New function.
2860
2861 2000-09-18  Richard Henderson  <rth@cygnus.com>
2862
2863         * config/ia64/ia64-protos.h: Update.
2864         * config/ia64/ia64.c (signed_inequality_operator): New.
2865         (ia64_expand_compare): New.
2866         (ia64_register_move_cost): Handle PR_REGS moves.
2867         (ia64_secondary_reload_class): Require a GR when moving to a PR.
2868         (struct reg_write_state): Add written_by_and/or.
2869         (struct reg_flags): Add is_and/or.
2870         (rws_update): Set them.
2871         (rws_access_regno): Test them to allow parallel comparisons.
2872         (rtx_needs_barrier): Recognize parallel comparisons.
2873         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
2874         Call recog_memoized; ignore pred_rel_mutex.
2875         (emit_predicate_relation_info): Don't call find_basic_blocks here.
2876         (ia64_reorg): Do it here instead.
2877         * config/ia64/ia64.h: s/CCmode/BImode/g
2878         (MODES_TIEABLE_P): Don't tie BImode.
2879         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
2880         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
2881         (RTX_COSTS): Make multiply 4 insns.
2882         (MEMORY_MOVE_COST): New.
2883         (PREDICATE_CODES): Update.
2884         * config/ia64/ia64.md: s/CCmode/BImode/g
2885         (movcci, movbi): New.
2886         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
2887         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
2888         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
2889         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
2890         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
2891         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
2892         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
2893         (mulsi, muldi): Use xmpy not xma.
2894         (cmpbi): New.
2895         (movcc, movcc_internal): Remove.
2896         (branch expanders): Use ia64_expand_compare.
2897         (setcc expanders): Likewise.
2898         (cmov insns): Use move_operand and ia64_move_ok.
2899         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
2900         scheduler from moving it past a use.
2901         * config/ia64/build.hacks: Remove.
2902
2903 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
2904
2905         * cpphash.h (HASHSTEP): Take character rather than pointer
2906         to character.
2907         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
2908
2909         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
2910
2911         * cpplex.c (auto_expand_name_space, trigraph_replace,
2912         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
2913         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
2914         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
2915         KNOWN_DIRECTIVE): Delete.
2916
2917         (handle_newline, check_long_token, skip_escaped_newlines,
2918         unterminated): New functions.
2919         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
2920
2921         (parse_identifier): Was parse_name, new implementation.
2922         (skip_line_comment, skip_block_comment, skip_whitespace,
2923         parse_number, parse_string, trigraph_ok, save_comment,
2924         adjust_column, _cpp_get_line): New implementations.
2925
2926         (lex_token): New function.  Lexes a token at a time, looking
2927         forwards.  Contains most of the guts of the old lex_line.
2928         (lex_line): New implementation, using lex_token to obtain
2929         individual tokens.
2930         (cpp_scan_buffer): Use the token's line, not the list's line.
2931
2932         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
2933          New implementations.
2934         (do_assert): Don't bother setting the answer's list's line.
2935         (cpp_push_buffer): Initialise new pfile and read_ahead members
2936         of struct cpp_buffer.
2937
2938         * cpplib.h (cppchar_t): New typedef.
2939         (struct cpp_buffer): read_ahead, pfile and col_adjust are
2940         new members.
2941         (struct lexer_state): New structure that determines the state
2942         and behaviour of the lexer.
2943         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
2944         (struct cpp_reader): New member "state". Rename
2945         multiline_string_line and multiline_string_column. Delete
2946         col_adjust, in_lex_line members.
2947         (CPP_BUF_COLUMN): Update.
2948
2949 2000-09-18  Richard Henderson  <rth@cygnus.com>
2950
2951         * combine.c (simplify_comparison): Shift a NOT out of a single
2952         bit test.
2953
2954         * combine.c (if_then_else_cond): Canonicalize BImode true to
2955         STORE_FLAG_VALUE.
2956         * explow.c (trunc_int_for_mode): Likewise.
2957
2958         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
2959         the NOT for De Morgan's rule.
2960         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
2961         of a comparison to the reverse comparison.
2962
2963         * combine.c (try_combine): Allow split to create a single insn.
2964
2965         * machmode.def: Add BImode.  Add a column for bitsize.
2966         * machmode.h (DEF_MACHMODE): Adjust for extra column.
2967         (GET_MODE_BITSIZE): Use it.
2968         * rtl.c (DEF_MACHMODE): Adjust for extra column.
2969         (mode_bitsize): New.
2970         (mode_mask_array): Use bitsize.
2971         * combine.c (combine_simplify_rtx): Require inner and outer
2972         modes to match on nonzero_bits optimizations.
2973
2974 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
2975
2976         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
2977         its entry in spill_reg_store.
2978         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
2979         * sh.c (reg_no_subreg_operand): New function.
2980         * sh-protos.h (reg_no_subreg_operand): Declare it.
2981         * sh.h (PREDICATE_CODES): Add it.
2982         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
2983         input operand that needs to be in fpul.
2984         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
2985         * sh.c (find_barrier): Take into account that machine_dependent_reorg
2986         might add new insns.
2987
2988 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
2989
2990         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
2991         MAYBE_DEAD.
2992         (sh_expand_epilogue): Take the PIC register into account when
2993         computing the frame size.
2994
2995         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
2996         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
2997         LABEL_REFs with a PIC-safe unspec.
2998
2999 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3000
3001         * c-common.c (check_format_info): Properly save the argument
3002         number and parameter for $ operand number formats in case width
3003         and precision arguments are also used.  Allow printf width and
3004         precision arguments to have operand numbers even if none was
3005         specified for the main format, since this is OK for %*.*m.  Only
3006         object to missing $ operand number if the format used requires an
3007         argument.
3008
3009 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3010
3011         * c-common.c (format_char_info): Add 'W' flag to comment.
3012         (print_char_table, scan_char_table): Use it.
3013         (check_format_info): Use the 'W' flag to determine whether a
3014         format argument is written into.
3015
3016 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3017
3018         * c-common.c (check_format_types): Reorganise and clean up,
3019         checking earlier for ERROR_MARKs and making cur_type into its
3020         TYPE_MAIN_VARIANT where convenient.
3021
3022 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3023
3024         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
3025
3026 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
3027
3028         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
3029
3030         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
3031         * i386.c (struct builtin_description): New.
3032         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
3033         (mmx_reg_operand): Declare MODE arg as unused.
3034         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
3035         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
3036         ix86_expand_binop_builtin, ix86_expand_store_builtin,
3037         ix86_init_builtins, ix86_expand_builtin): New functions.
3038         * i386.h (ix86_builtins): New enumeration.
3039         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
3040         * i386.md (attr length_immediate): 0 for mmx/sse types.
3041         (attr prefix_0f): 1 for mmx/sse types.
3042         (setcc_2): Remove "*" so we get gen_setcc_2.
3043         (emms): Account for changed register numbering.  Set "memory" attr
3044         to unknown.
3045         (sfence): Set "memory" attr to unknown.
3046
3047 2000-09-18  Andreas Jaeger  <aj@suse.de>
3048
3049         * configure.in: Define _GNU_SOURCE only when using the GNU C
3050         Library.
3051         * configure: Regenerated.
3052         * config.in: Regenerated.
3053
3054 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
3055
3056         * cppinit.c (cpp_init): Don't use ANSI prototypes.
3057         * flow.c (flow_dump_loop): Likewise.
3058         (flow_loops_dump): Likewise.
3059
3060         * c-typeck.c (c_start_case): Fix typo.
3061
3062 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3063
3064         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
3065         to int for plain complex which defaults to complex double.  Do
3066         warn about defaulting to complex double if pedantic.  Warn about
3067         complex integer types if pedantic.  Warn about complex types if
3068         pedantic and not in C99 mode.
3069         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
3070         for complex conjugation.
3071
3072 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3073
3074         * contrib.texi: Update my entry.
3075
3076 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
3077
3078         * config/avr/avr.md (mcu_enhanced): New attribute.
3079         (mcu_mega): Likewise.
3080         (extendhisi2): Use mcu_enhanced.
3081         (zero_extendhisi2): Likewise.
3082         (call_insn): Use mcu_enhanced and mcu_mega.
3083         (call_value_insn): Likewise.
3084         (*sbrx_branch): Use mcu_mega.
3085         (*sbrx_and_branchsi): Likewise.
3086         (*sbrx_and_branchhi): Likewise.
3087         (*tablejump_lib): Likewise.
3088
3089 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3090
3091         * alias.c (true_dependence): Allow non-unchanging read to conflict
3092         with unchanging write.
3093
3094         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
3095         (store_constructor): Pass alias_set to it.
3096
3097         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
3098         TYPE_MAIN_VARIANT of ERROR_MARK.
3099         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
3100
3101         * simplify-rtx.c (simplify_unary_operation): Add cases
3102         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
3103
3104 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
3105
3106         * expr.h (emit_library_call, emit_library_call_value): Delete
3107         declarations.
3108         * rtl.h (enum libcall_type): New.
3109         (emit_library_call, emit_library_call_value): Change fn_type arg to
3110         be of type enum libcall_type.
3111         * calls.c: Likewise for the function definitions.  Several callers
3112         throughout changed to use the new enumeration appropriately.
3113         (emit_library_call_value_1): Likewise.  Put back code to make libcall
3114         blocks of equal form, but only use it for the two new higher
3115         enumeration values.
3116
3117 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
3118
3119         Convert the C front-end to use function-at-a-time mode.
3120         * c-common.h: Include splay-tree.h.
3121         (C_DECLARED_LABEL_FLAG): New macro.
3122         (struct language_function): Add x_scope_stmt_stack and
3123         x_function_name_declared_p.
3124         (RECHAIN_STMTS): Move definition.
3125         (lang_statment_code_p): Likewise.
3126         (lang_expand_stmt): Likewise.
3127         (lang_expand_decl_stmt): New variable.
3128         (lang_expand_function_end): Likewise.
3129         (current_scope_stmt_stack): New function.
3130         (add_decl_stmt): Likewise.
3131         (add_scope_stmt): Likewise.
3132         (mark_stmt_tree): Likewise.
3133         (struct c_lang_decl): New structure.
3134         (DECL_SAVED_TREE): Define.
3135         (c_mark_lang_decl): New function.
3136         (c_expand_start_cond): Change prototype.
3137         (c_finish_then): New function.
3138         (c_finish_else): Likewise.
3139         (current_function_name_declared): Remove.
3140         (set_current_function_name_declared): Likewise.
3141         (mark_c_language_function): Declare.
3142         (case_compare): Likewise.
3143         (c_add_case_label): Likewise.
3144         (c_expand_expr): Likewise.
3145         (c_safe_from_p): Likewise.
3146         * c-common.c (lang_expand_function_end): New variable.
3147         (struct if_elt): Add if_stmt.
3148         (c_expand_start_cond): Add the if-statement to the statement-tree,
3149         rather than generating RTL.
3150         (c_finish_then): New function.
3151         (c_expand_start_else): Don't generate RTL.
3152         (c_finish_else): New function.
3153         (c_expand_expr_stmt): Don't generate RTL.
3154         (statement_code_p): Add SCOPE_STMT.
3155         (case_compare): New function.
3156         (c_add_case_label): Likewise.
3157         (mark_stmt_tree): Likewise.
3158         (c_mark_lang_decl): Likewise.
3159         (mark_c_language_function): Likewise.
3160         (c_expand_expr): Likewise.
3161         (c_safe_from_p): Likewise.
3162         * c-decl.c (c_stmt_tree): New variable
3163         (c_scope_stmt_stack): Likewise.
3164         (c_function_name_declared_p): Likewise.
3165         (lang_expand_expr_stmt): Remove.
3166         (poplevel): Don't call output_inline_function for nested
3167         functions.
3168         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
3169         `extern' function.
3170         (redeclaration_error_message): Change means of computing whether
3171         or not a function is nested.
3172         (lookup_label): Don't call label_rtx.
3173         (init_decl_processing): Add more GC roots.
3174         (start_decl): Add DECL_STMTs to the statement-tree, rather than
3175         calling rest_of_decl_compilation.
3176         (finish_decl): Don't call expand_decl.
3177         (store_parm_decls): Begin the statement-tree, but don't generate
3178         RTL.
3179         (finish_function): Tie off the statement-tree.  Call c_expand_body
3180         if appropriate.
3181         (c_expand_body): New function.
3182         (push_c_function_context): Save more information.
3183         (pop_c_function_contxt): Likewise.
3184         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
3185         (lang_mark_tree): Mark it.
3186         (current_stmt_tree): Adjust.
3187         (current_scope_stmt_stack): New function.
3188         (do_case): Remove.
3189         (set_current_name_declared): Likewise.
3190         (c_begin_compound_stmt): Define.
3191         (c_expand_decl_stmt): Likewise.
3192         * c-lang.c: Include rtl.h and expr.h.
3193         (lang_init): Set more language-specific hooks.
3194         * c-lex.c: Include expr.h.
3195         * c-parse.in: Changes throughout to add statements to the
3196         statement-tree, rather than generating RTL after every statement.
3197         * c-semantics.c (lang_expand_decl_stmt): Define.
3198         (add_decl_stmt): New function.
3199         (add_scope_stmt): Likewise.
3200         (finish_stmt_tree): Tweak.
3201         (genrtl_expr_stmt): Likewise.
3202         (genrtl_decl_stmt): Handle local labels, and call
3203         lang_expand_decl_stmt if required.
3204         (genrtl_for_stmt): Fix line-number handling.
3205         (genrtl_case_label): Handle cleanups.
3206         (genrtl_asm_stmt): Don't call combine_strings.
3207         (genrtl_compound_stmt): Simplify.
3208         (expand_stmt): Handle SCOPE_STMTs.
3209         * c-tree.h (struct lang_decl): New structure.
3210         (C_DECLARED_LABEL_FLAG): Remove.
3211         (c_begin_compound_stmt): Declare.
3212         (c_expand_decl_stmt): Likewise.
3213         (c_expand_start_case): Rename to c_start_case.
3214         (c_finish_case): New function.
3215         * c-typeck.c (start_init): Tweak setting of
3216         constructor_incremental.
3217         (c_expand_asm_operands): Tweak error-handling.  Add to the
3218         statement-tree.
3219         (c_expand_return): Add to the statement-tree.
3220         (c_expand_start_case): Rename to ...
3221         (c_start_case): ... this.
3222         (struct c_switch): New type.
3223         (switch_stack): New variable.
3224         (do_case): Simplify.
3225         (c_finish_case): New function.
3226         * dependence.c: Include expr.h.
3227         (enum dependence_type): Change spelling of enumerals.
3228         (check_node_dependence): Adjust.
3229         * expr.h (lang_safe_from_p): Declare.
3230         (safe_from_p): Likewise.
3231         * expr.c (lang_safe_from_p): New variable.
3232         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
3233         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
3234         * toplev.c (rest_of_decl_compilation): Robustify.
3235         * tree.c (contains_placeholder_p): Likewise.
3236         * Makefile.in: Update dependencies.
3237         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
3238         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
3239         (objc_expand_function_end): New function.
3240         (finish_method_def): Use it.
3241         (init_objc): Initialize more language-specific hooks.
3242         * objc/Make-lang.in: Update dependencies.
3243
3244 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
3245
3246         * configure.in: Define macros that affect features before
3247         testing for features.  Don't define _XOPEN_SOURCE.
3248         * configure: Regenerated.
3249         * config.in: Regenerated.
3250
3251 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
3252
3253         * rtlanal.c (rtx_varies_p): Volatile asms vary.
3254         (rtx_unstable_p): Restructure code.  Volatile asms
3255         are unstable.
3256
3257 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3258
3259         * function.h (no_debugging_symbols): New field.
3260         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
3261         Initialize no_debugging_symbols.
3262         (output_inline_function): Save and restore write_symbols and set from
3263         no_debugging_symbols.
3264         * toplev.c (rest_of_compilation): Call save_for_inline.
3265         * tree.h: Update comment.
3266
3267         * stor-layout.c (place_field): Don't do anything if field or
3268         its type are ERROR_MARK.
3269
3270 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
3271
3272         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
3273         (read_include_file): Ensure inc->mmaped is initialized.
3274
3275 2000-09-16  Richard Henderson  <rth@cygnus.com>
3276
3277         * cppiles.c (purge_cache): Use PTR not caddr_t.
3278
3279 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
3280
3281         * gcc.c: In description for %{<S}, say the option removed is -S.
3282         * invoke.texi (Spec Files): Ditto.
3283
3284 2000-09-16  Andreas Jaeger  <aj@suse.de>
3285
3286         * configure.in: Always define _GNU_SOURCE to make interfaces
3287         visible that were hidden by only defining _GNU_SOURCE.
3288         * configure: Regenerated.
3289
3290 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
3291
3292         * cpplex.c (push_macro_context): Set an argument's level after
3293         calling parse_args.  We could loop infinitely otherwise.
3294
3295 2000-09-15  Tom Tromey  <tromey@cygnus.com>
3296
3297         * configure, config.in: Rebuilt.
3298         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
3299
3300 2000-09-15  Greg McGary  <greg@mcgary.org>
3301
3302         * cppmacro.c (check_trad_stringification): Check token
3303         text pointers against limit before dereferencing.
3304
3305 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3306
3307         * c-common.c (format_wanted_type): New structure.
3308         (check_format_types): New function.
3309         (check_format_info): Pass all checking of types of format
3310         arguments, including width and precision arguments, to this new
3311         function.
3312
3313 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3314
3315         * BUGS: Remove file.
3316
3317 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
3318
3319         * config/alpha/alpha.c (override_options): ev6 cache latencies
3320         from Richard Henderson.  Don't allow -mmemory-latency=L0.
3321
3322         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
3323         (TARGET_OPTIONS): Add tune=.
3324         (alpha_tune_string): Declare.
3325         * config/alpha/alpha.c (override_options): Add cpu_table.
3326         Use alpha_cpu_string first to set both alpha_cpu and target_flags
3327         and then alpha_tune_string to set alpha_cpu only.
3328         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
3329         * config/alpha/elf.h (ASM_FILE_START): Likewise.
3330         * config/alpha/osf.h (ASM_FILE_START): Likewise.
3331         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
3332
3333 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3334
3335         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
3336         Remove.
3337         (ix86_comparison_operator, ix86_cc_mode): Declare
3338         * i386.h (CCGC, CCGCO): New modes.
3339         (SELECT_CC_MODE): Move offline to ....
3340         * i386.c (ix86_cc_mode): .... here; use new modes.
3341         (ix86_comparison_operator): New.
3342         (fcmov_comparison_operator): Ensure proper mode.
3343         (put_condition_mode): More sanity checking.
3344         (ix86_match_ccmode): Handle new modes.
3345         (ix86_expand_fp_compare): GEU requires CCmode.
3346         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
3347         doing it by hand.
3348         * i386.md (cmp?i_ccz_1): Remove
3349         (cmp?i_ccno_1): Use ix86_match_ccmode.
3350         (cmp?i_minus_1): New.
3351         (cmpsi_1): New expander.
3352         (cmpqi_ext_1): Use match_ccmode
3353         (cmpqi_ext_3): New expander.
3354         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
3355         (cmpqi_ext_4): Use match_ccmode.
3356         (add?i_?): Use match_ccmode.
3357         (add?i_6): New.
3358         (test?i_ccz_1): Remove
3359         (test?i_1): New.
3360         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
3361         (testqi_ext_0): Use ix86_match_ccmode.
3362         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
3363         (xorqi_cc_ext_1): New expander.
3364         (shift patterns): Use CCGOCmode for all shifts except for sar.
3365         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
3366         (setcc_3, jcc_3, miv?icc_c): Remove.
3367
3368 2000-09-15  Will Cohen  <wcohen@redhat.com>
3369
3370         * dwarf2out.c (add_const_value_attribute): Changed array into a
3371         xmalloced object, so it exists after function exit.
3372         (free_AT): Added case for dw_val_class_float to free allocated
3373         memory.
3374
3375 2000-09-15  Kazu Hirata  <kazu@hxi.com>
3376
3377         * config/i386/i386.md: Fix a comment typo.
3378         * gcc.c: Fix formatting.
3379
3380 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
3381
3382         * optabs.c (emit_libcall_block): If target is a user variable,
3383         copy to a temporary first.
3384         * expr.c (convert_move): When generating a libcall, make a libcall
3385         block.
3386         * calls.c (emit_library_call_value_1): Don't create a libcall
3387         sequence here; our caller will in most cases do it.
3388
3389         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
3390         MACH into FPUL.
3391         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
3392         * sh.md (reload_outsf): Generate recognizable patterns for
3393         TARGET_SH3E.
3394         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
3395         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
3396         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
3397         truncdfsf2_i4): Change not to use explicit references to fpul.
3398         (floatsisf2_ie): Remove USE of fpscr.
3399         (floatsisf2): Change default expansion to match this.
3400         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
3401         unused patterns.
3402
3403 2000-09-15  Richard Henderson  <rth@cygnus.com>
3404
3405         * expmed.c (store_bit_field): Consider naturally aligned
3406         memory for direct reference.
3407
3408 2000-09-15  Richard Henderson  <rth@cygnus.com>
3409
3410         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
3411         AND addresses into alias set 0.
3412         (alpha_expand_unaligned_store): Likewise.
3413         (alpha_expand_unaligned_load_words): Likewise.
3414         (alpha_expand_unaligned_store_words): Likewise.
3415
3416 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
3417
3418         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
3419         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
3420         is defined.
3421         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
3422         rsize of UNITS_PER_WORD.
3423
3424 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
3425
3426         * cpplex.c (ON_REST_ARG): Correct the test.
3427         (maybe_paste_with_next): Duplicate a token that fail pasting,
3428         and clear its PASTE_LEFT flag, so that nested pasting attempts
3429         do not occur.
3430
3431 2000-09-14  Richard Henderson  <rth@cygnus.com>
3432
3433         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
3434         * cse.c (rtx_cost): Likewise.
3435         * optabls.c (expand_binop): Likewise.
3436         (expand_twoval_binop, prepare_cmp_insn): Likewise.
3437         * regclass.c (copy_cost): Likewise.
3438         * reload1.c (reload_cse_move2add): Likewise.
3439
3440 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3441
3442         * c-parse.in (reswords): Add _Complex.
3443
3444 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3445
3446         * gcc.1: Delete documentation for -undef preprocessor option.
3447
3448 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
3449
3450         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3451         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
3452         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3453         Remove undefine before config/elfos.h.
3454         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
3455
3456 2000-09-14  Kazu Hirata  <kazu@hxi.com>
3457
3458         * invoke.texi (H8/300 Options): Add -ms2600.
3459         * config/h8300.c (h8300_init_once): Output an error when -ms2600
3460         is used without -ms.
3461         * config/h8300.h (TARGET_MAC): New.
3462         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
3463         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
3464         machine other than H8/S2600.
3465         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
3466         of the H8/S2000.
3467
3468 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
3469
3470         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
3471         pseudos that refer to the original pseudos, not only to their
3472         equivalent memory locations.
3473
3474 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3475
3476         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
3477         when making new MEM.
3478
3479         * Makefile.in (LN): Remove duplicate definition.
3480
3481 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3482
3483         From Joern Rennecke:
3484         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
3485         on an insn and function_invariant_p returns nonzero for the source,
3486         add a REG_EQUAL note.
3487
3488 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
3489
3490         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
3491         conflict with frame_pointer_rtx.
3492
3493 2000-09-13  Kazu Hirata  <kazu@hxi.com>
3494
3495         * loop.c: Fix formatting.
3496         * loop.h: Likewise.
3497
3498 2000-09-13  Richard Henderson  <rth@cygnus.com>
3499
3500         * config/ia64/ia64.md (divsf3): New.
3501         (divsf3_internal_lat, divsf3_internal_thr): New.
3502         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
3503         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
3504         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
3505         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
3506         (nmadddf4_alts, nmadddf4_trunc): New.
3507         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
3508         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
3509         (multf3_truncsf_alts, multf3_truncdf_alts): New.
3510         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
3511         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
3512         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
3513         (nmaddtf4_truncdf_alts): New.
3514         (recip_approx): Don't predicate.
3515
3516 2000-09-13  Richard Henderson  <rth@cygnus.com>
3517
3518         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
3519
3520 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3521
3522         * flags.h (flag_dump_rtl_in_asm): Declare.
3523         * toplev.c (flag_dump_rtl_in_asm): Define.
3524         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
3525         if -dP is specified.
3526         * rtl.h (print_rtx_head): Declare.
3527         * print-rtl.c (print_rtx_head): Define.
3528         (print_rtx): Print the string pointed to by print_rtx_head
3529         at beginning of each dump line.
3530         (print_rtl): Likewise.
3531         (print_rtl_single): Likewise.
3532         * final.c (final_scan_insn): Dump the insn in the assembly
3533         file for debugging.
3534         * gcc.1: Document -dP option.
3535         * invoke.texi (Debugging Options): Likewise.
3536
3537 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3538
3539         * md.texi (Machine Constraints): Document the 68HC11 constraints.
3540         * install.texi (Configurations): Document the 68HC11&68HC12 port.
3541         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
3542
3543 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
3544
3545         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
3546         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
3547         (*clrstrqi): Likewise.
3548         (xorhi3,xorsi3,absqi2): Likewise.
3549         (one_cmplhi2,one_cmplsi2): Likewise.
3550         (addsi3): Two stupid constraint alternatives removed.
3551         (extendhisi2): Use `movw' for enhanced avr cores.
3552         (zero_extendhisi2): Likewise.
3553
3554 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
3555
3556         * alias.c (find_base_term): Use frame_pointer_rtx
3557         when handling an ADDRESSOF.
3558
3559         * cse.c (canon_hash): Handle USE of BLKmode memory.
3560         (cse_insn): Outgoing arguments for a libcall don't
3561         affect any recorded expressions.
3562
3563 2000-09-12  Tom Tromey  <tromey@cygnus.com>
3564
3565         * configure, config.in: Rebuilt.
3566         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
3567
3568 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
3569
3570         * c-lex.c (lex_string): Use charwidth to compute bytemask.
3571         * expr.c (expand_expr): Don't optimize constant array references
3572         initialized with wide string constants.
3573
3574 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
3575
3576         * loop.c (note_set_pseudo_multiple_uses): Correct.
3577
3578 2000-09-12  Jim Wilson  <wilson@cygnus.com>
3579
3580         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
3581         else block, and X has side-effects, then fail.
3582
3583 2000-09-12  Greg McGary  <greg@mcgary.org>
3584
3585         * config/mips/mips-protos.h
3586         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
3587         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
3588         (PREDICATE_CODES): Add "trap_cmp_op".
3589         * config/mips/mips.c
3590         (trap_cmp_op, mips_gen_conditional_trap): New functions.
3591         * config/mips/mips.md (trap, conditional_trap): New patterns.
3592
3593 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3594
3595         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
3596         pointer.
3597
3598 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3599
3600         * builtins.c (built_in_decls): New array.
3601         (expand_builtin_fputs): New function.
3602         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
3603
3604         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
3605
3606         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
3607
3608         * tree.h (built_in_decls): New array.
3609
3610 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
3611
3612         * convex.md: Use "+" instead of "=" for outputs wrapped in a
3613         STRICT_LOW_PART.
3614         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
3615
3616 2000-09-12  Kazu Hirata  <kazu@hxi.com>
3617
3618         * haifa-sched.c: Fix formatting.
3619
3620         * genattrtab.c: Fix formatting.
3621
3622         * unroll.c: Fix formatting.
3623
3624 2000-09-12  Bruce Korb  <bkorb@gnu.org>
3625
3626         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
3627         remove obsolete code
3628         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
3629         * fixinc/fixincl.tpl: make non-exported arrays static scope
3630         * fixinc/fixincl.x: regenerate
3631         * fixinc/fixlib.h: Use PARAMS, not _P_
3632         * fixinc/fixtests.c: make a type for the test proc & use it
3633         * fixinc/server.h: Use PARAMS, not _P_
3634
3635 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3636
3637         * c-typeck.c (process_init_element): Avoid union init warnings on
3638         floating point zero.  Don't crash on unions containing structs.
3639
3640 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
3641
3642         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
3643         general_movsrc_operand, and remove CONST_INT from
3644         general_movdst_operand.
3645
3646 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3647
3648         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
3649         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
3650         regs with a higher cost.
3651         (preferrable): Deal with cases where either cost or regcost is
3652         MAX_COST.
3653         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
3654         regcost values.
3655         (COSTS_N_INSNS): Move definition...
3656         * rtl.h: ...here.
3657         (MAX_COST): New macro.
3658         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
3659         constant.
3660
3661 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
3662
3663         * c-common.h (genrtl_clear_out_block): Remove.
3664         * c-semantics.c (genrtl_clear_out_block): Remove.
3665         (genrtl_while_stmt): Don't call it.
3666         (genrtl_for_stmt): Likewise.
3667
3668 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
3669
3670         * cppfiles.c: Move all default-#defines to top of file.
3671         (open_include_file): Replace by lookup_include_file.
3672         (read_with_read, read_file): Merged into read_include_file.
3673         (stack_include_file, purge_cache): New functions.
3674         (close_cached_fd): Delete.
3675         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
3676         Cache the in-memory buffer, not the file descriptor.
3677
3678         * cpphash.h (struct include_file): Add buffer, st, refcnt,
3679         mapped fields.
3680         (xcnew): New utility macro.
3681         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
3682         * cpplib.h (struct cpp_buffer): Remove mapped field.
3683
3684 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
3685
3686         * cpplex.c (parse_string): Accept backslash space newline as a
3687         line continuation.
3688         (lex_line): Likewise.
3689         (_cpp_get_token): Remove hard limit on macro nesting.
3690
3691 2000-09-12  Philipp Thomas  <pthomas@suse.de>
3692
3693         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
3694         * configure: Rebuilt.
3695
3696 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
3697
3698         * flow.c (split_block): Fix update of registers live at
3699         end of split block.
3700
3701 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3702
3703         * i386.md (add?i_3, add?i_5): New.
3704         (add?i_4): Rename from add?i_3;  Fix compare pattern.
3705         (sub?i_3, xor?i_3, ior?i_3): New.
3706
3707         * genrecog.c (write_tree): Output code to clear insn_extract cache.
3708         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
3709         instead of extract_insn and extract_constrain_insn_cache instead of
3710         extract_insn and constrain_operands.
3711         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
3712         New functions.
3713         (extract_insn): Clear which_alternative.
3714         (constrain_operands): Set which_alternative to -1 when failed.
3715         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
3716         Declare.
3717
3718 2000-09-11  Matthew Hiller  <hiller@redhat.com>
3719
3720         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
3721         on operand 0 to '+'.
3722         (movstricthi): Likewise.
3723
3724 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
3725
3726         * loop.h (LOOP_IVS): New macro.
3727         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
3728         (struct loop_ivs): New.
3729         (struct loop_info): Add ivs field.
3730         (reg_iv_type, reg_iv_info): Delete prototype.
3731         (reg_biv_class, loop_iv_list): Likewise.
3732         * loop.c (record_biv, find_life_end): Pass loop argument.
3733         (reg_iv_type): Remove global array and use
3734         field in loop_regs structure within loop_ivs structure.
3735         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
3736         (first_increment_giv, last_increment_giv): Use entry in
3737         loop_ivs structure.
3738         (record_initial): Pass ivs pointer.
3739         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
3740
3741 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
3742
3743         * loop.h (LOOP_REGS): New macro.
3744         (struct loop_regs): New.
3745         (struct loop_info): Add regs field.
3746         * loop.c (set_in_loop): Remove global array and store
3747         in loop_regs structure as part of loop_info structure.
3748         (n_times_set, may_not_optimize): Likewise.
3749         (reg_single_usage, moved_once): Likewise.
3750         (count_one_set): Add regs argument.
3751         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
3752         (set_pseudo_multiple_uses): Pass regs pointer.
3753
3754 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
3755
3756         * unroll.c (iteration_info): Subsume into loop_iterations.
3757         * loop.h (loop_info): New field iv.
3758
3759 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
3760
3761         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
3762         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
3763         (flow_loops_update): New prototype.
3764         (flow_loops_find): Add flags to prototype.
3765         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
3766         * flow.c (flow_loop_pre_header_scan): New.
3767         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
3768         (flow_loop_free): Free pre-header root and trace and exit dominators.
3769         (flow_loops_find): New argument flags.
3770         (flow_loops_update): New function.
3771         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
3772
3773 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
3774
3775         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
3776         * flow.c (split_block, update_bb_for_insn): New functions.
3777
3778 2000-09-11  Richard Henderson  <rth@cygnus.com>
3779
3780         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
3781
3782 2000-09-11  Richard Henderson  <rth@cygnus.com>
3783
3784         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
3785         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
3786         (ia64_override_options): Prevent optimizing division for both
3787         latency and throughput.
3788         (rtx_needs_barrier): Handle frcpa.
3789         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
3790         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
3791         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
3792         (TARGET_SWITCHES): Add -minline-divide-min-latency and
3793         -minline-divide-max-throughput.
3794         (PREDICATE_CODES): Update.
3795         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
3796         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
3797         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
3798         (extendsftf2): Likewise.
3799         (extenddftf2): Likewise.
3800         (fix_trunctfdi2_alts): New.
3801         (fixuns_trunctfdi2_alts): New.
3802         (madd*4): Rename from madd*3.
3803         (divsi3, modsi3, udivsi3, umodsi3): New.
3804         (divsi3_internal): New.
3805         (divdi3, moddi3, udivdi3, umoddi3): New.
3806         (divdi3_internal_lat, divdi3_internal_thr): New.
3807         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
3808         (recip_approx): New.
3809
3810 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
3811
3812         * print-rtl.c (debug_call_placeholder_verbose): New variable.
3813         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
3814         set.
3815         * integrate.c (copy_rtx_and_substitute): Don't share
3816         LEAF_REG_REMAPpable registers with the inlined function.  Don't
3817         share the function value with calling sequences.
3818
3819 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
3820
3821         * c-decl.c (do_case): Fix a typo.
3822
3823         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
3824         to a if the comparison is floating mode and not -ffast-math.
3825         * simplify-rtx.c (simplify_ternary_operation): Likewise.
3826
3827 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
3828
3829         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
3830         gen_ic_invalidate_line.
3831
3832 2000-09-11  Philip Blundell  <pb@futuretv.com>
3833
3834         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
3835
3836 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
3837
3838         * install.texi (LANGUAGES): Update to include new languages.
3839         * INSTALL: Rebuilt.
3840
3841 2000-09-11  DJ Delorie  <dj@redhat.com>
3842
3843         * gcc.c (main): Don't warn about unused -B prefixes
3844         (unused_prefix_warnings): remove
3845
3846 2000-09-11  Kazu Hirata  <kazu@hxi.com>
3847
3848         * final.c: Fix formatting.
3849
3850         * integrate.c: Fix formatting.
3851
3852 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
3853
3854         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
3855
3856 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
3857
3858         * reload.c (regno_clobbered_p): Fix thinko in previous change.
3859
3860 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3861
3862         * gcc.1: Document 68hc11 specific options.
3863
3864 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
3865
3866         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
3867         (TARGET_LONG_DOUBLE_128): Define.
3868         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
3869         (LONG_DOUBLE_TYPE_SIZE): Redefine.
3870         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
3871         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
3872         of __LONG_DOUBLE_128__.
3873         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
3874         passed.
3875         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
3876         (CPP_SYSV_DEFAULT_SPEC): Define.
3877         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
3878         (INIT_TARGET_OPTABS): Define.
3879
3880         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
3881         (RS6000_UITRUNC): Likewise.
3882         (INIT_TARGET_OPTABS): New macro.
3883         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
3884         (trunc_defined): Delete.
3885         (output_prolog): Don't output .extern definitions for fp->int
3886         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
3887         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
3888         (trunc_defined): Delete.
3889         (RS6000_ITRUNC): Moved to aix.h.
3890         (RS6000_UITRUNC): Likewise.
3891         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
3892         only emit a libcall.
3893         (fixuns_truncdfsi2): Delete.
3894         (trunc_call): Delete.
3895         (trunc_call_rtl): Delete.
3896
3897 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
3898
3899         * varasm.c (make_decl_rtl): Restore leading star on
3900         DECL_ASSEMBLER_NAME set for decls with an asmspec.
3901
3902 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
3903
3904         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
3905         won't give a spurious error for '#pragma pack()'.  Simplify
3906         control flow for readability.  'reset' action is not necessary.
3907
3908 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
3909
3910         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
3911         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
3912         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
3913         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
3914
3915         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
3916         profile.c, sdbout.c, tradcif.y, tree.c:
3917         Include defaults.h if not already included.
3918         Don't define the above macros.
3919
3920         * Makefile.in: Update dependencies.
3921
3922 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
3923
3924         * c-common.h (add_stmt): Change prototype.
3925         (RECHAIN_STMTS): New macro.
3926         (CASE_LABEL_DECL): Likewise.
3927         (genrtl_case_label): Change prototype.
3928         (c_expand_start_case): Remove prototype.
3929         (build_case_label): Change prototype.
3930         (decl_constant_value): Declare.
3931         * c-common.c (check_case_value): Handle C++'s extensions to C
3932         semantics.
3933         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
3934         field.
3935         * c-parse.in (stmt): Adjust handling of return statements and case
3936         laels.
3937         * c-semantics.c (add_stmt): Return the new statement.
3938         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
3939         returned expression.  Directly generate RTL, rather than calling
3940         c_expand_return.
3941         (genrtl_switch_stmt): Don't call c_expand_start_case.
3942         (build_case_label): Take the LABEL_DECL as input, too.
3943         (genrtl_case_label): Just call add_case_node.
3944         (expand_stmt): Adjust calls to genrtl_return_stmt and
3945         genrtl_case_label.
3946         * c-tree.h (c_expand_start_case): Declare.
3947         * c-typeck.c (decl_constant_value): Give it external linkage.
3948         (c_expand_return): Don't call expand_return or expand_null_return;
3949         use genrtl_return_stmt instead.
3950         * stmt.c (struct nesting): Remove num_ranges field.
3951         (add_case_node): Give it external linkage.
3952         (expand_start_case): Don't set num_ranges.
3953         (expand_start_case_dummy): Don't clear it.
3954         (pushcase): Rely on add_case_node to handle `default' labels.
3955         (add_case_node): Handle `default' labels.
3956         * tree.c (tree_int_cst_compare): New function.
3957         * tree.h (tree_int_cst_compare): Declare.
3958         (add_case_node): Likewise.
3959
3960 2000-09-10  Richard Henderson  <rth@cygnus.com>
3961
3962         * c-parse.in: Revert last change.
3963         (init_reswords): Do not enter disabled keywords into the ridpointers
3964         table, modulo objc weirdness.
3965         (_yylex): Return the canonical spelling for a keyword.
3966
3967 2000-09-10  Philip Blundell  <philb@gnu.org>
3968
3969         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
3970         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
3971
3972 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
3973
3974         * alias.c (find_base_term): Handle ADDRESSOF.
3975         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
3976
3977 2000-09-10  Denis Chertykov  <denisc@overta.ru>
3978
3979         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
3980         outputting templates with many lines.
3981
3982 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3983
3984         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
3985         to decide whether 64-bit support must be generated.
3986
3987 2000-09-10  Richard Henderson  <rth@cygnus.com>
3988
3989         * c-parse.in (asm patterns): Fix volatile check.
3990
3991 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3992
3993         * cppmacro.c (check_trad_stringification): New function.
3994         (save_expansion): If -Wtraditional, warn about stringification of
3995         macro arguments.
3996
3997 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
3998
3999         * loop.h (struct loop_mem_info): Move from loop.c
4000         (struct loop_info): Add fields store_mems, mems, mems_idx,
4001         mems_allocated, unknown_address_altered,
4002         unknown_constant_address_altered, num_mem_sets, and
4003         first_loop_store_insn.
4004
4005         * loop.c (loop_store_mems): Replace with field in loop_info struct.
4006         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
4007         (unknown_address_altered, unknown_constant_address_altered): Likewise.
4008         (num_mem_sets): Likewise.
4009         (replace_loop_mems, replace_loop_regs): New.
4010         (struct loop_replace_args): New.
4011         (load_mems): Use replace_loop_mems.
4012         (try_copy_prop): Use replace_loop_regs.
4013         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
4014
4015 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4016
4017         * configure.in: Recognize m6811-elf and m6812-elf.
4018         * configure: Regenerate.
4019
4020 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
4021
4022         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
4023         to operand_subword.
4024
4025 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
4026
4027         * loop.c (struct movables): New.
4028         (num_movables): Move into struct movables.
4029         (the_movables): Change type to struct movables.
4030         (ignore_some_movables): Change struct movable arg to struct movables.
4031         (force_movables, combine_movables, regs_match_p): Likewise.
4032         (rtx_equal_for_loop_p, move_movables): Likewise.
4033         (scan_loop): Change movables to be of type struct movables.
4034         Replace last_movable with field in movables structure.
4035
4036 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
4037
4038         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
4039         (init_pragma): Avoid warning if pfile happens to be unused.
4040         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
4041         define init_pragma to nothing.  Always prototype
4042         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
4043
4044         * c-lex.c (process_directive): Always call dispatch_pragma.
4045         Initialize entering_c_header to 0.
4046
4047 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4048
4049         * config/m68hc11/m68hc11.md: New file, machine description for
4050         68HC11 & 68HC12.
4051         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
4052         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
4053         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
4054         * config/m68hc11/m68hc11-protos.h: New file.
4055         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
4056         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
4057         * config/m68hc11/xm-m68hc11.h: New file, target defs.
4058         * config/m68hc11/larith.asm: New file, libgcc routines.
4059
4060 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4061
4062         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
4063         (FPBIT_FUNCS): Add _usi_to_sf.
4064         * config/fp-bit.c (usi_to_float): New function.
4065         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
4066         (usi_to_float): Add appropriate #define.
4067
4068 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4069
4070         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
4071         new functions.
4072         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
4073         * i386.md (attr "type"): Add sse and mmx types.
4074         (attr "memory"): Handle them without a crash.
4075         (movsi_1, movdi_2): Allow MMX regs.
4076         (movdi splits): Don't split moves involving MMX regs.
4077         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
4078         (movv4sf_internal, movv4si_internal, movv8qi_internal,
4079         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
4080         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
4081         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
4082         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
4083         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
4084         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
4085         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
4086         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
4087         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
4088         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4089         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4090         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
4091         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
4092         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4093         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4094         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
4095         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
4096         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
4097         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
4098         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
4099         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4100         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4101         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
4102         mmx_clrdi): New patterns.
4103
4104 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
4105
4106         * arm.c: Don't include tm.h directly.
4107
4108 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4109
4110         * recog.c (validate_replace_rtx_1): Fix confusion about equality
4111         testing; simplify subregs of constants and nested subregs.
4112
4113 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
4114
4115         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
4116
4117 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4118
4119         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
4120         VEC_CONCAT.
4121         * rtl.texi (description of USE): Add note about possible pitfalls
4122         with this rtx.
4123         From Richard Henderson:
4124         * reload1.c (choose_reload_regs): Compute need_mode properly.
4125
4126 2000-09-07  Richard Henderson  <rth@cygnus.com>
4127
4128         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
4129         (__modsi3, __umodsi3): Likewise.
4130         (__udivsi3): Likewise.  Normalize the TFmode values.
4131
4132 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
4133
4134         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
4135         with a prototype.
4136         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
4137         warning.
4138
4139 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4140
4141         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
4142         (cmpeqdi_t): Add output pattern.
4143         (cmpeqdi_t+1): Don't split when not optimizing.
4144         Restore proper splitting operation.
4145
4146 2000-09-07  Richard Henderson  <rth@cygnus.com>
4147
4148         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
4149         do not call dispatch_pragma.
4150
4151 2000-09-07  Jim Wilson  <wilson@cygnus.com>
4152
4153         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
4154         to CLASS_CANNOT_CHANGE_MODE.
4155         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
4156         mode classes are different.
4157
4158 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4159
4160         * cpplib.h (struct cpp_options): Add user_label_prefix member,
4161         left out of commit which removed cppulp.c.
4162
4163 2000-09-07  Richard Henderson  <rth@cygnus.com>
4164
4165         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
4166         after switch for CASE_DROPS_THROUGH.
4167
4168 2000-09-07  Richard Henderson  <rth@cygnus.com>
4169
4170         * loop.c (strength_reduce): Call check_ext_dependant_givs.
4171         Properly extend the biv initial value for the giv.
4172         (record_biv): Zero ext_dependant.
4173         (record_giv): New argument ext_val.  Update all callers.
4174         (general_induction_var): Likewise.
4175         (consec_sets_giv): Likewise.
4176         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
4177         a sign-extend, zero-extend, or truncate.
4178         (combine_givs_p): Make sure modes are compatible.
4179         (check_ext_dependant_givs): New.
4180         (extend_value_for_giv): New.
4181         * loop.h (struct induction): Add ext_dependant.
4182         * unroll.c (iteration_info): Extend the biv initial value for the giv.
4183         (find_splittable_givs): Likewise.
4184         (final_giv_value): Likewise.
4185
4186 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4187
4188         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
4189         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
4190         definitions from cpplib.h.
4191         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
4192         already done it.
4193         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
4194         documentation for REGISTER_TARGET_PRAGMAS.
4195
4196         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
4197         default-pragma callback to implement -Wunknown-pragmas if
4198         USE_CPPLIB.
4199         * c-parse.in: Move all includes to top of file.
4200         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
4201         tm_p.h.
4202         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
4203         warning.
4204         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
4205
4206         * arm.h, arm-protos.h, arm.c,
4207           c4x.h, c4x-protos.h, c4x.c,
4208           h8300.h, h8300-protos.h, h8300.c,
4209           i370.h, i370-protos.h, i370.c,
4210           i960.h, i960-protos.h, i960.c,
4211           sh.h, sh-protos.h, sh.c,
4212           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
4213         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
4214
4215         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
4216         multiple include guard.
4217         * i370.md (untyped_call): Use GEN_CALL.
4218         (umodsi3): Remove unused variable.
4219         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
4220         * v850.c (output_move_single, output_move_double): Constify
4221         return value.
4222         (print_operand): Constify a char *.
4223         * v850.h (struct small_memory_info): Constify name member.
4224
4225 2000-09-07  Kazu Hirata  <kazu@hxi.com>
4226
4227         * config/h8300.h: Fix comment typos.
4228         * config/h8300/h8300.md: Likewise.
4229         * config/h8300/lib1funcs.asm: Likewise.
4230
4231 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
4232
4233         * Makefile.in: Remove references to cppulp.{c,o}.
4234         * cppinit.c (initialize_builtins, cpp_start_read,
4235         cpp_handle_option): Update to use cpp_options structure.
4236         * cppulp.c: Remove.
4237
4238 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4239
4240         * c-common.c (time_char_table): Allow %#b and %#h.
4241
4242 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4243
4244         * reorg.c (find_end_label): If the basic block reorder pass moves the
4245         return insn to some other place try to locate it again and put our
4246         end_of_function_label there.
4247         * reorg.c (relax_delay_slots): Check if find_end_label created a
4248         new label that invalidates the current optimazation.
4249
4250 2000-09-07  Catherine Moore  <clm@redhat.com>
4251
4252         * unroll.c (unroll_loop): Check for unconditional jumps
4253         to loop continuation.  Delete if n_iterations is 1.
4254         (ujump_to_loop_cont): New routine.
4255
4256 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
4257
4258         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
4259         MODE_VECTOR_FLOAT.
4260         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
4261         to handle multiword modes correctly.  All callers and the declaration
4262         changed.
4263
4264 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4265
4266         * c-common.h (prep_stmt): Declare.
4267         (lang_expand_stmt): Likewise.
4268         * c-decl.c (lang_expand_stmt): Remove.
4269         * c-semantics.c (lang_expand_stmt): Define.
4270         (prep_stmt): New function.
4271         (expand_stmt): Handle common statement types here.
4272
4273 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
4274
4275         * configure.in (sh-*-linux*): Added.
4276         * configure: Rebuilt.
4277         * config/sh/t-linux: New file.
4278         * config/sh/sh.h (USERMODE_BIT): Define.
4279         (TARGET_USERMODE): Likewise.
4280         (TARGET_SWITCHES): New switches for the bits above.
4281         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
4282         * config/sh/linux.h: New file.
4283         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
4284         underscore on linux.
4285         (L_sdivsi3, L_udivsi3): Define for linux.
4286         (L_ic_invalidate): Define.
4287         * invoke.texi (SH Options): Document -musermode.
4288
4289 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
4290
4291         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
4292         CSE unless generating PIC.
4293
4294         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
4295         the PIC register.
4296
4297 2000-09-06  H.J. Lu  (hjl@gnu.org)
4298
4299         * Makefile.in (clean_s1): Depend on stage_b.
4300         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
4301         stage2. They are used for "make compare".
4302
4303 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4304
4305         Move statement-tree facilities from C++ to C front-end.
4306         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
4307         (void_zero_node): New macro.
4308         (struct stmt_tree_s): New type.
4309         (stmt_tree): New typedef.
4310         (struct language_function): New type.
4311         (last_tree): New macro.
4312         (last_expr_type): Likewise.
4313         (walk_tree_fn): New typedef.
4314         (current_stmt_tree): New function.
4315         (begin_stmt_tree): Likewise.
4316         (add_stmt): Likewise.
4317         (finish_stmt_tree): Likewise.
4318         (statement_code_p): Likewise.
4319         (lang_statement_code_p): New variable.
4320         (walk_stmt_tree): New function.
4321         (STMT_IS_FULL_EXPR_P): New macro.
4322         * c-common.c (lang_statement_code_p): New variable.
4323         (c_common_nodes_and_builtins): Initialize void_zero_node.
4324         (statement_code_p): New function.
4325         (walk_stmt_tree): Likewise.
4326         * c-decl.c (language_function): Rename to ...
4327         (c_language_function): ... this.  Include language_function.
4328         (push_c_function_context): Adjust accordingly.
4329         (pop_c_function_context): Likewise.
4330         (mark_c_function_context): Likewise.
4331         (current_stmt_tree): Define.
4332         * c-semantics.c (begin_stmt_tree): New function.
4333         (add_stmt): Likewise.
4334         (prune_unused_decls): Likewise.
4335         (finish_stmt_tree): Likewise.
4336
4337 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4338
4339         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
4340
4341 2000-09-06  Kazu Hirata  <kazu@hxi.com>
4342
4343         * calls.c: Fix formatting.
4344
4345 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
4346
4347         * config/i386/i386.h (ADDRESS_COST): Fix typo.
4348
4349 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4350
4351         Integrated preprocessor.
4352
4353         * Makefile.in: Remove all references to c-parse.gperf,
4354         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
4355         generating c-parse.c.  Update dependencies.
4356         * c-parse.gperf, c-gperf.h: Delete.
4357
4358         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
4359         yy_lim, or yy_get_token.  Don't define get_directive_line if
4360         USE_CPPLIB.
4361         * c-common.h: Add multiple include guard.  Define RID values
4362         for every keyword in C, C++, and Objective C.  Put all the
4363         modifiers first.
4364         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
4365         * c-decl.c (c_decode_option): Handle -lang-objc here.
4366         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
4367         (grokdeclarator): Adjust for new RID scheme.
4368         (extract_interface_info): New stub.
4369         * c-lang.c: Don't declare yy_cur or parse_options.
4370         (lang_init_options): Call cpp_init.  Don't call
4371         cpp_options_init.
4372         (lang_init): Don't call check_newline if USE_CPPLIB.
4373
4374         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
4375         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
4376         rendered unnecessary by new architecture.  Move routines not
4377         shared with C++ to c-parse.in.  Maintain a local idea of the
4378         line number.    Handle C++ as well as C.
4379         [USE_CPPLIB]: Declare and register callbacks for #ident and
4380         for entering/leaving files.
4381         (init_c_lex, c_lex): Are now the entry points to this file.
4382         (check_newline): Break out directive handling to
4383         process_directive.
4384         (read_ucs, is_extended_char, utf8_extend_token): Moved here
4385         from C++ front end.
4386         (readescape, parse_float): Overhaul.
4387         (lex_number, lex_string, lex_charconst): Break out of c_lex
4388         (n'ee yylex).
4389         (get_fileinfo, update_header_times, dump_one_header,
4390         dump_time_statistics): New and/or moved here from C++.
4391         Support per-file data needed by C++ and per-header timing
4392         statistics (C++ only, at the moment).
4393         * c-lex.h: Update prototypes.  Add multiple include guard.
4394         * c-tree.h (struct lang_identifier): Add rid_code field.
4395         (C_IS_RESERVED_WORD, C_RID_CODE): New.
4396
4397         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
4398         reinit_parse_for_function and/or position_after_white_space.
4399         (save_filename, save_lineno): Look ahead before saving.
4400         (label -> identifier ':'): Save file and line before shifting ':'.
4401         (reservedwords): No need to call get_identifier.
4402         (init_parse, finish_parse, yyerror, yylex, yyprint,
4403         make_pointer_declarator): Are now here for C/ObjC.
4404         (rid_to_yy): Conversion table from RID constants to Yacc codes.
4405
4406         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
4407         #pragma registry.  Provide dummy implementation of that
4408         interface if !USE_CPPLIB.
4409         * c-pragma.h: Update to match.
4410
4411         * flags.h: Add multiple include guard.
4412         (flag_detailed_statistics): Moved here from C++.
4413         * toplev.c: Define flag_detailed_statistics.
4414
4415         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
4416         #if USE_CPPLIB.
4417         * timevar.def (TV_CPP, TV_LEX): New.
4418         * timevar.h: Add multiple include guard.
4419
4420         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
4421         #if USE_CPPLIB.
4422         * objc/objc-act.c: Don't mention yy_cur or parse_options.
4423         Initialize cpplib properly.  Force lineno to 0 after first
4424         call to check_newline.  Don't handle -lang-objc here.
4425         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
4426
4427 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
4428
4429         * rs6000.md: Correct function unit definitions for cr_logical and
4430         mtjmpr.
4431         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
4432         and use portable method for >=0 and floating point >=.  Remove
4433         associated matchers.
4434
4435 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4436
4437         * extend.texi: Mark named return value extension as deprecated.
4438
4439 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
4440
4441         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
4442         the result.
4443
4444 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
4445
4446         * toplev.c (display_help): Fix thinko in documentation.
4447
4448         * diagnostic.h (output_buffer::indent_skip): New fields.
4449         (output_indentation): New macro.
4450
4451         * diagnostic.c (output_indent): New function.
4452         (output_set_prefix, clear_diagnostic_info): Use.
4453         (output_emit_prefix): Predict future indentation.
4454
4455 2000-09-06  DJ Delorie  <dj@redhat.com>
4456
4457         * Makefile.in (stage_*): add more dependencies to ensure parallel
4458         builds build correctly
4459
4460 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
4461
4462         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
4463         not bootstrap-lean_f.
4464
4465 2000-09-06  Andreas Schwab  <schwab@suse.de>
4466
4467         * mklibgcc.in: Emit rule for libgcc-stage-start.
4468         * Makefile.in (stage1-start, stage2-start, stage3-start,
4469         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
4470
4471 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
4472
4473         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
4474         (update_equiv_regs): Likewise, except for the mn10200 kludge.
4475         (combine_regs): Likewise.
4476
4477         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
4478         * cse.c: Include "basic-block.h".
4479         (struct table_elt): New field REGCOST.
4480         (CHEAP_REG): Delete macro.
4481         (COST): Return 0 for REGs.
4482         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
4483         (notreg_cost): Return 0 for appropriate SUBREGs.
4484         (COSTS_N_INSNS): Return N * 2.
4485         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
4486         SUBREGs.
4487         (CHEAPER): Use new function preferrable.
4488         (insert): Initialize REGCOST member.
4489         (find_best_addr): Use approx_reg_cost for estimation of register
4490         usage.
4491         (cse_insn): Likewise.
4492         * loop.c (iv_add_mult_cost): New function.
4493         (add_cost, shift_cost, mult_cost): Delete variables.
4494         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
4495         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
4496         Make code that detects autoinc opportunities slightly less optimistic.
4497         (simplify_giv_expr): If expression contains other reg that is also a
4498         giv, only increment benefit if this is the only use of that reg.
4499         (consec_sets_giv): Take that change into account.
4500         (combine_givs): Slightly more verbose output.
4501
4502         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
4503         not the cost of an equivalent shift.
4504         * sh-protos.h (addsubcosts): Declare.
4505         * sh.c (addsubcosts): New function.
4506         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
4507         (RTX_COSTS): Tweak.  Use addsubcosts.
4508         (ADDRESS_COST): Return higher cost for reg+reg addressing.
4509
4510 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
4511
4512         * config/rs6000/rs6000.c (validate_condition_mode): New function.
4513         (branch_comparison_operator): Call validate_condition_mode to
4514         abort rather than returning 0.
4515         (branch_positive_comparison_operator): New function.
4516         (scc_comparison_operator): Call validate_condition_mode to abort
4517         rather than returning 0.
4518         (ccr_bit): Call validate_condition_mode.  Update for
4519         new branch scheme.
4520         (print_operand): Delete %C modifier.  Update %E case
4521         to use EQ bit not SO bit.
4522         (rs6000_reverse_condition): New function.
4523         (rs6000_generate_compare): New function.
4524         (rs6000_emit_sCOND): New function.
4525         (rs6000_emit_cbranch): New function.
4526         (output_cbranch): The length of a long branch insn is
4527         now only 8 bytes.  Add validate_condition_mode.  Use
4528         rs6000_reverse_condition.  Remove cror generation.
4529
4530         * config/rs6000/rs6000.h: Update comments.
4531         (PREDICATE_CODES): Add new predicate.  Update codes used
4532         by branch_comparison_operator and scc_comparison_operator.
4533         * config/rs6000/rs6000-protos.h: Add prototypes for
4534         new external functions.
4535         * config/rs6000/rs6000.md: Add new scheduling parameters
4536         for cr_logical instructions.  Change length of branch
4537         instructions.
4538         (bCOND patterns): Call rs6000_emit_cbranch.
4539         (sCOND patterns): Call rs6000_emit_sCOND.
4540         (branch patterns): Change lengths to 4.
4541         (cr logical patterns): New.
4542
4543 2000-09-06  Richard Henderson  <rth@cygnus.com>
4544
4545         * config/i386/i386.md (call_pop): Fix test for setting
4546         current_function_uses_pic_offset_table.
4547         (call, call_value_pop, call_value): Likewise.
4548
4549 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4550
4551         * timevar.c (timevar_add): Delete.
4552         (timevar_get): Also count time since the selected timer was
4553         last updated.  Do not examine the timevar stack if the
4554         selected timer is standalone.
4555
4556 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4557
4558         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
4559
4560 2000-09-05  Jason Merrill  <jason@redhat.com>
4561
4562         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
4563         for 'extern' arrays.
4564
4565 2000-09-05  Richard Henderson  <rth@cygnus.com>
4566
4567         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
4568         Eliminate final copy from non-trapping case.
4569         (__divdf3, __divsf3): Likewise.
4570
4571 2000-09-05  Richard Henderson  <rth@cygnus.com>
4572
4573         * config/ia64/ia64.md (mulhi3): Fix typo last change.
4574         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
4575
4576 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
4577
4578         * Makefile.in: Restructure bootstrap stages to allow clean
4579         restart after failure.
4580
4581 2000-09-05  Richard Henderson  <rth@cygnus.com>
4582
4583         * config/ia64.md (movsi and movdi patterns): Allow moves from
4584         8-bit constants to AR registers.
4585
4586 2000-09-05  Richard Henderson  <rth@cygnus.com>
4587
4588         * config/ia64/ia64.md (mulhi3): New.
4589
4590 2000-09-05  Richard Henderson  <rth@cygnus.com>
4591
4592         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
4593         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
4594         Optimization Guide, minimum latency alternative.
4595         (__moddi3, __udivdi3, __umoddi3): Likewise.
4596         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
4597
4598 2000-09-05  Bruce Korb  <bkorb@gnu.org>
4599
4600         * fixinc/fixincl.c (load_file): always read header files
4601         with sizes that are a multiple of the page size.
4602         & use libiberty's getpagesize for determining that.
4603
4604 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
4605
4606         * gcse.c (hash_string_1): Add prototype.
4607         * cse.c (canon_hash_string): Likewise.
4608
4609 2000-09-04  Craig Newell  <CraigN@ieee.org>
4610
4611         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
4612
4613 2000-09-04  Andreas Schwab  <schwab@suse.de>
4614
4615         * Makefile.in (STAGESTUFF): Remove libgcc.
4616         (stage1-start, stage2-start, stage3-start): Copy the contents of
4617         the libgcc directory explicitly.
4618         (mostlyclean): Clean libgcc.
4619
4620 2000-09-04  Andrew Haley  <aph@redhat.com>
4621
4622         * dwarf2out.c: (stack_adjust_offset): New prototype.
4623
4624 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
4625
4626         * combine.c (make_extraction): Fix rtx_cost comparison to
4627         match the comment.
4628
4629 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
4630
4631         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
4632         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
4633         Add '*' to insn pattern name.
4634
4635 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
4636
4637         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
4638         use posn - 1 to index into tokens array.
4639         (maybe_paste_with_next): Adjust caller.
4640
4641 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
4642
4643         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
4644
4645         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
4646         (REGNO_REG_CLASS): Use symbolic register
4647         names.
4648
4649 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
4650
4651         * arm.c (final_prescan_insn): If the form of a jump insn isn't
4652         recognized, don't try to conditionally execute it.
4653
4654 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
4655
4656         * config/avr/avr.md ("*tablejump_lib"): New pattern.
4657         (call_value_insn): Right length claculation.
4658         (call_insn): Likewise.
4659
4660 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
4661
4662         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
4663         gas_output_limited_string, gas_output_ascii, output_movqi,
4664         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
4665         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
4666         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
4667         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
4668         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
4669         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
4670         Add "const" as needed to remove warnings.
4671
4672         * config/avr/avr.c (avr_override_options, avr_init_once,
4673         function_prologue, function_epilogue, frame_pointer_required_p,
4674         class_likely_spilled_p, order_regs_for_local_alloc,
4675         avr_address_cost, avr_ret_register): Use K&R style arguments.
4676         (initial_elimination_offset, gas_output_limited_string):
4677         Remove ATTRIBUTE_UNUSED from the used arguments.
4678         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
4679         Use local variables src, dest, base to access operands[].
4680         Rename reg_dest to reg_src if that's what it is.
4681         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
4682         constants to LD_REGS if reg_was_0.
4683         (output_reload_insisf): Change arg 3 to insn length and set it.
4684         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
4685         access to 16-bit I/O register pairs.
4686         (avr_address_cost): Lower cost for the above case.
4687         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
4688         may be clobbered, also for LD_REGS.
4689         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
4690         with a CONST_INT.
4691
4692         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
4693
4694         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
4695         macro to test_hard_reg_class function.
4696         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
4697         for loading immediate constants to LD_REGS.
4698         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
4699
4700
4701 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
4702
4703         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
4704         * config/avr/libgcc.S: Lost part of the previous patch.
4705
4706 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4707
4708         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
4709         object before calling pthread_mutex_init.
4710
4711 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
4712
4713         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
4714         config/sh/crtn.asm: New files.
4715         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
4716         (crt1.o, crti.o, crtn.o): New targets.
4717         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
4718         sh/t-elf.
4719         * configure: Rebuilt.
4720         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
4721         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
4722         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
4723         Undefine for config/elfos.h to redefine.
4724         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
4725
4726 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
4727
4728         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
4729         legitimize_pic_address, output_pic_addr_const): Declare.
4730         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
4731         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
4732         (TARGET_SWITCHES): New switch -mprefergot.
4733         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
4734         (PIC_OFFSET_TABLE_REGNUM): Define.
4735         (GOT_SYMBOL_TABLE): Likewise.
4736         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
4737         (ENCODE_SECTION_INFO): Define.
4738         (FINALIZE_PIC): New macros.
4739         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
4740         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
4741         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
4742         (prepare_move_operands): Call emit_pic_move or
4743         emit_pic_const_move if appropriate.
4744         (output_far_jump): For PIC, use braf and output long offset.
4745         (machine_dependent_reorg):
4746         (sh_expand_prologue): Save and initialize the PIC register.
4747         (sh_expand_epilogue): Restore it.
4748         (initial_elimination_offset): Account for it.
4749         (nonpic_symbol_mentioned_p): New function.
4750         (legitimize_pic_address): Likewise.
4751         (output_pic_addr_const): Likewise.
4752         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
4753         (call, call_value): Use them.
4754         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
4755         symPLT_label2reg): New expands.
4756         * invoke.texi (SH Options): Document -mprefergot.
4757
4758 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
4759
4760         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
4761         * gcse.c (hash_string_1): New function.
4762         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
4763         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
4764         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
4765         (canon_hash_string): New function.
4766         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
4767         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
4768         (fold_rtx): Use ASM_OPERANDS accessor macros.
4769         * emit-rtl.c (copy_insn_1): Likewise.
4770         * integrate.c (copy_rtx_and_substitute): Likewise.
4771         * stmt.c (expand_asm_operands): Likewise.  Give an
4772         ASM_OPERANDS rtx the mode of the output reg being set from it.
4773
4774 2000-09-01  Fred Fish  <fnf@be.com>
4775
4776         * fix-header.c (write_rbrac): Add putc and getc to list of
4777         functions to protect against prior definition as a macro.
4778
4779 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
4780
4781         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
4782         (c_size_type_node): Define.
4783         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
4784         * c-common.c (enum format_lengths, enum format_std_version,
4785         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
4786         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
4787         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
4788         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
4789         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
4790         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
4791         format_types): Define.
4792         (format_char_info, print_char_table, scan_char_table,
4793         time_char_table): Rearrange for new organization of information
4794         about format length modifiers and standard versions.
4795         (T_ST): Redefine to use c_size_type_node.
4796         (check_format_info): Obtain information about length modifiers and
4797         standard versions from tables.  Adjust warning message wordings.
4798         Use the name from the user's program for `ll' and `hh' length
4799         modifiers in warning messages.  Use more informative names for
4800         wanted types where available (for wchar_t, wint_t, size_t, signed
4801         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
4802
4803 2000-09-01  Jim Wilson  <wilson@cygnus.com>
4804
4805         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
4806         * combine.c (distribute_notes): Handle REG_NORETURN.
4807         * rtl.c (reg_note_name): Add REG_NORETURN.
4808         * rtl.h (enum reg_note): Likewise.
4809
4810         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
4811         ia64_file_start.
4812         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
4813         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
4814         (emit_predicate_relation_info): Handle conditional calls with
4815         REG_NORETURN.
4816         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
4817         instead of ia64_file_start.
4818         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
4819         * config/ia64/ia64.md (safe_across_calls_all,
4820         save_across_calls_normal): New patterns.
4821
4822         * loop.c (check_final_value): Check for biv use before checking for
4823         giv use.  Check for both biv and giv uses.  Always set last_giv_use
4824         if there is a giv use.
4825
4826 2000-09-01  Richard Henderson  <rth@cygnus.com>
4827
4828         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
4829         (madddi3): Likewise.
4830         (maddsi3): New.
4831
4832 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4833
4834         * expr.c (clear_storage): Don't use emit_move_insn unless
4835         either BLKmode or proper size.
4836         (store_constructor): Don't call clear_storage if REG of wrong size.
4837
4838         * flow.c (init_propagate_block_info): Don't mark frame dead at end
4839         of function if returns wiht stack pointer depressed.
4840
4841 2000-09-01  Andrew Haley  <aph@redhat.com>
4842
4843         * dwarf2out.c (stack_adjust_offset): New function.
4844         (dwarf2out_stack_adjust): Break out stack adjust logic into
4845         new stack_adjust_offset function.  Look inside parallels and
4846         sequences for stack adjustments.
4847
4848 2000-08-31  Jeff Law <law@cygnus.com>
4849
4850         * arm.md: Use no_new_pseudos to determine when it is safe
4851         to create new pseudo registers.
4852
4853         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
4854         when we can safely allocate new registers.
4855
4856 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
4857
4858         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
4859         so that CONCATs are not generated for ASMs.
4860         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
4861         not generating_concat_p.
4862         * function.c (pop_function_context_from): Reset
4863         generating_concat_p.
4864         (prepare_function_start): Likewise.
4865         * rtl.c (generating_concat_p): Define.
4866         * rtl.h (generating_concat_p): Declare.
4867         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
4868
4869 2000-08-22  Philipp Thomas  <pthomas@suse.de>
4870             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
4871
4872         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
4873         for translation.
4874
4875 2000-08-30  Greg McGary  <greg@mcgary.org>
4876
4877         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
4878         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
4879         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
4880
4881 2000-08-30  Greg McGary  <greg@mcgary.org>
4882
4883         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
4884         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
4885         (TREE_INT_CST): New macro.
4886         * varasm.c (const_hash, compare_constant_1, record_constant_1):
4887         Use new macro TREE_INT_CST.
4888
4889 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
4890
4891         * contrib.texi: Add self.
4892
4893 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
4894
4895         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
4896         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
4897         and labels.
4898
4899 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4900
4901         * fixinc/gnu-regex.c: Don't define `const'.
4902
4903 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4904
4905         * expr.c (store_constructor): Allow variable bounds of array type.
4906         (expand_expr): Don't blow up if type is ERROR_MARK.
4907         * varasm.c (output_constructor): Don't access lower bound of array
4908         type unless need it if index is supplied (so it can be a variable
4909         if no index is supplied).
4910         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
4911         Other minor cleanups.
4912
4913 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4914
4915         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
4916         for compilations in stage 1 and subsequent stages, respectively.
4917         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
4918         * configure: Rebuilt.
4919         * x-vax, x-vax-gcc: Deleted.
4920
4921 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
4922
4923         * c-common.c (declare_function_name): Use func_id_node,
4924         function_id_node, and pretty_function_id_node.  Do not make
4925         __func__ visible at file scope.
4926         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
4927         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
4928         (function_id_node, pretty_function_id_node, func_id_node): New
4929         macros.
4930         * c-decl.c (init_decl_processing): Initialize function_id_node,
4931         pretty_function_id_node, and func_id_node.
4932         (c_make_fname_decl): Correct comment.
4933
4934         * tree.h (struct tree_identifier): Constify pointer member.
4935
4936         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
4937         * c-pragma.h (struct weak_syms): Constify name and value members.
4938         (add_weak): Constify arguments.
4939
4940         * calls.c (special_function_p): Constify a char *.
4941         (expand_call): Remove variable which is initialized and then
4942         never used.
4943         * dependence.c (struct def_use, struct induction, struct subscript):
4944         Constify 'variable' member.
4945         (get_low_bound, have_induction_variable): Constify char * argument.
4946         (find_induction_variable): Add braces to avoid dangling else.
4947         (classify_dependence): Constify char * arrays.
4948         * profile.c (output_func_start_profiler): Constify a char *.
4949         * stor-layout.c (finalize_record_size): Constify a char *.
4950         * tree.c (is_attribute_p): Constify a char *.
4951         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
4952
4953         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
4954         for comprehensibility.  Do not call get_identifier if we did
4955         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
4956         create temporary string constants, not ggc_alloc_string.  No
4957         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
4958         char * to hold IDENTIFIER_POINTERs.
4959
4960 2000-08-29  Richard Henderson  <rth@cygnus.com>
4961
4962         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
4963         for the inputs.
4964
4965 2000-08-29  Richard Henderson  <rth@cygnus.com>
4966
4967         * reload.c (push_secondary_reload): Allow class == reload_class
4968         if we're using a reload_in/out pattern.
4969
4970         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
4971         the half that does not conflict with the reload register.
4972         (reload_outti): Likewise.
4973
4974 2000-08-29  Kazu Hirata  <kazu@hxi.com>
4975
4976         * reload.c: Fix formatting.
4977
4978         * stmt.c: Fix formatting.
4979
4980         * gcc.c: Fix formatting.
4981
4982 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
4983
4984         * flags.h (time_report, mem_report): New global flags.
4985         * toplev.c: Define time_report and mem_report.
4986         (f_options): Add -ftime-report and -fmem-report.
4987         (compile_file): Turn on time_report if quiet_flag is off.
4988         Call ggc_print_statistics at very end if mem_report is on.
4989         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
4990
4991         * ggc-common.c (ggc_print_statistics): Rename to
4992         ggc_print_common_statistics; all callers changed.  Scale
4993         quantities above 10K to kilobytes and above 10M to megabytes.
4994         * ggc-page.c (ggc_page_print_statistics): Rename to
4995         ggc_print_statistics.  Report memory consumed by internal data
4996         structures for each allocation bucket.  Scale quantities above
4997         10K to kilobytes and above 10M to megabytes.
4998         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
4999         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
5000         Define tally_leaves always.
5001         (ggc_print_statistics): New function.
5002         * ggc.h: Adjust for renamed functions.
5003
5004 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
5005
5006         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
5007         output_movsisf instead of which_alternative.
5008
5009         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
5010
5011 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
5012
5013         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
5014         (avr_progmem_p): New prototype.
5015         (output_movsisf): Prototype declaration changed.
5016         (output_movqi): New prototype.
5017         (output_movhi): New prototype.
5018         (call_insn_operand): Likewise.
5019         (final_prescan_insn): Likewise.
5020         (avr_simplify_comparision_p): Likewise.
5021         (avr_normalize_condition): Likewise.
5022         (compare_eq_p): Likewise.
5023         (out_shift_with_cnt): Likewise.
5024         (const_int_pow2_p): Likewise.
5025         (output_reload_inhi): Prototype declaration changed.
5026
5027         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
5028         (ldi_reg_rtx): New. rtx for r31.
5029         (avr_init_stack): Initialize as "__stack".
5030         (function_prologue): Use it.
5031         Replace all TARGET_ENHANCED with AVR_ENHANCED.
5032         (avr_mcu_name): Initialize as "avr2".
5033         (avr_enhanced_p, avr_mega_p): New variables.
5034         (mcu_types, avr_override_options): Handle all known MCU types.
5035         Also handle avr1 (only preprocess, assemble and link).
5036         (print_operand): Using of `%K' in output template removed.
5037         (out_movqi_r_mr): Optimized.
5038         (out_movhi_r_mr): Likewise.
5039         (output_movqi): New function.
5040         (output_movhi): Likewise.
5041         (out_movsi_r_mr): Optimized.
5042         (output_movsisf): Compute insn length for `adjust_insn_length'
5043         (out_movqi_mr_r): Optimized.
5044         (out_movhi_mr_r): Optimized.
5045         (adjust_insn_length): Use output_movsisf, output_movqi,
5046         output_movhi for insn length adjusting.
5047         (reg_unused_after): Use dead_or_set_p.
5048         (preferred_reload_class): Now havn't any restriction.
5049         (reg_was_0): New function.
5050         (io_address_p): Likewise.
5051         (const_int_pow2_p): Likewise.
5052         (output_reload_inhi): Likewise.
5053         (output_reload_insisf): Likewise.
5054
5055         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
5056         (LIB_SPEC): Use -lc for all supported devices.
5057         (LIBGCC_SPEC): Use -lgcc for all supported devices.
5058         (AVR_MEGA): Define as avr_mega_p.
5059         (AVR_ENHANCED): New, define as avr_enhanced_p.
5060         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
5061         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
5062         (CRT_BINUTILS_SPECS): Handle all known MCU types.
5063         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
5064         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
5065         (ASM_SPEC): Pass -mmcu=... to the assembler.
5066         Change all -DAVR_* to -D__AVR_*__.
5067         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
5068         Rename library functions to start with two underscores.
5069         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
5070         alignment.
5071         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
5072         (SUPPORTS_WEAK): Likewise.
5073         (LDI_REG_REGNO): New. Register r31 will be used as temporary
5074         register for loading constants to r0-r14.
5075
5076         * config/avr/avr.md: Replace all TARGET_ENHANCED with
5077         AVR_ENHANCED.
5078         (*mov_r_sp): Removed. Handled by output_movhi.
5079         (*mov_sp_r): Likewise.
5080         (*mov_sp_r_no_interrupts): Likewise
5081         (*mov_sp_r_tiny): Likewise.
5082         (*movqi): Use output_movqi.
5083         (*reload_inqi): New.
5084         (*movhi): Use output_movhi.
5085         (*reload_inhi): New.
5086         (*negsi2): Optimized.
5087         (*negsf2): Likewise.
5088         Added peepholes (define_peephole2) for loading constants to r0-r14
5089         and for using `cpse' command.
5090
5091         * config/avr/libgcc.S: Rename library functions to start with two
5092         underscores.
5093         Add support for enhanced core.
5094         (_moqhi3): Fix typo, now _modqi3.
5095         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
5096         (__prologue_saves__): Remove test for stack adjust by 0.
5097         (__tablejump__): New.
5098
5099         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
5100         Add multilib support.
5101
5102 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
5103
5104         * loop.c (prescan_loop): Don't check unknown_address_altered
5105         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
5106         to loop_store_mems as necessary.
5107         (loop_invariant_p): Don't check unknown_address_altered
5108         or unknown_constant_address_altered.
5109
5110 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5111
5112         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
5113
5114 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5115
5116         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
5117         print just the filename.
5118         * cpplex.c (_cpp_run_directive): Add additional argument, the
5119         name to give the synthetic buffer.  This defaults to
5120         translated "<command line>".
5121         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
5122         Adjust to match.
5123         (_cpp_define_builtin): New function.
5124         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
5125         * cpphash.h: Update prototypes.
5126
5127         * tradcpp.c (main): Process -D and -U simultaneously, in the
5128         order they appeared on the command line.
5129
5130 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5131
5132         * c-decl.c (define_label): Call warning_with_file_and_line and
5133         error_with_file_and_line instead of plain warning or error.
5134
5135         * c-parse.in (label): Use save_filename/save_lineno to ensure
5136         correct values for calls to define_label.
5137
5138 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
5139
5140         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
5141         away.
5142         * expr.c (expand_expr, case TARGET_EXPR): Don't call
5143         mark_addressable.
5144         * tree.h (get_file_function_name): Remove two duplicate
5145         declarations.
5146
5147 2000-08-28  Kazu Hirata  <kazu@hxi.com>
5148
5149         * tree.c: Fix formatting.
5150
5151         * xcoffout.c: Fix formatting.
5152
5153 2000-08-28  Jason Merrill  <jason@redhat.com>
5154
5155         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
5156
5157 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5158
5159         * dwarf2out.c (dwarf2out_finish): Don't bother calling
5160         break_out_includes if it won't do anything.
5161
5162 2000-08-28  Richard Henderson  <rth@cygnus.com>
5163
5164         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
5165         (find_reloads): Likewise.
5166         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
5167         (reload_inhi): Likewise.
5168
5169 2000-08-28  Richard Henderson  <rth@cygnus.com>
5170
5171         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
5172         (call_insn_operand): Don't expect a surrounding mem.
5173         (constant_call_address_operand): Likewise.
5174         * config/i386/i386.h (PREDICATE_CODES): Update.
5175         * config/i386/i386.md (call patterns): Move the match_operand
5176         for the call destination inside the mem.
5177
5178 2000-08-28  Richard Henderson  <rth@cygnus.com>
5179
5180         * local-alloc.c (requires_inout): Don't use reserved range for
5181         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
5182         * recog.c (asm_operand_ok): Likewise.
5183         (preprocess_constraints, constrain_operands): Likewise.
5184         * regclass.c (record_reg_classes): Likewise.
5185         * reload.c (find_reloads): Likewise.
5186         * reload1.c (maybe_fix_stack_asms): Likewise.
5187         (reload_cse_simplify_operands): Likewise.
5188         * stmt.c (expand_asm_operands): Likewise.
5189
5190         * md.texi: Update constraints documentation.
5191         * tm.texi (EXTRA_CONSTRAINT): Update.
5192
5193 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5194
5195         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
5196         (print_die): If we don't know the offset of the
5197         target die, try the symbol.  Add a trailing newline.
5198         (reverse_all_dies): New fn.
5199         (dwarf2out_finish): Call it.
5200         (break_out_includes): Reorganize for clarity.
5201         (add_sibling_attributes): Don't call reverse_die_lists.
5202         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
5203         primary CU, too.
5204         * flags.h: Add flag_eliminate_dwarf2_dups.
5205         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
5206
5207 2000-08-28  Jason Merrill  <jason@redhat.com>
5208
5209         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
5210         * dwarf2out.c: #include "md5.h".
5211         (DIE_LABEL_PREFIX): New macro.
5212         (dw_val_struct): Add 'external' flag to val_die_ref.
5213         (add_AT_die_ref, AT_ref): Adjust.
5214         (AT_ref_external, set_AT_ref_external): New fns.
5215         (build_abbrev_table): Call set_AT_ref_external.
5216         (value_format): Call AT_ref_external.
5217         (die_struct): Add die_symbol field.
5218         (new_die): Clear it.
5219         (dwarf_tag_name): Handle BINCL/EINCL.
5220         (dwarf2out_start_source_file): Add BINCL DIE.
5221         (dwarf2out_end_source_file): Add EINCL DIE.
5222         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
5223         (loc_checksum, attr_checksum, die_checksum): New fns.
5224         (is_type_die, is_comdat_die, is_symbol_die): New fns.
5225         (compute_section_prefix, assign_symbol_names): New fns.
5226         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
5227         (output_die): Call output_die_symbol and AT_ref_external.
5228         (output_comdat_comp_unit): New fn, split out from...
5229         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
5230         secondary CUs.
5231         (output_pubnames, output_aranges): Abort if we see entries from
5232         secondary CUs.
5233         * toplev.h: Declare file_name_nondirectory.
5234         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
5235         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
5236         (debug_start_source_file): Call dwarf2out_start_source_file
5237         regardless of debug verbosity.
5238         (debug_end_source_file): Similarly.
5239         * tree.h: Declare clean_symbol_name.
5240         * tree.c (clean_symbol_name): Split out from...
5241         (get_file_function_name_long): ...here.
5242
5243         * dwarf2out.c (new_loc_descr): Use calloc.
5244         (splice_child_die): Remove the die from the right parent.
5245         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
5246
5247 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5248
5249         * toplev.c (decode_g_option): Don't give warning for unknown -g
5250         option; return 0 instead.
5251         (main): If -g option is not recognized by front end or
5252         language-independent code, give warning.
5253
5254 2000-08-28  Greg McGary  <greg@mcgary.org>
5255
5256         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
5257         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
5258         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
5259
5260 2000-08-27  Greg McGary  <greg@mcgary.org>
5261
5262         * cpplex.c (parse_string): Don't look for backslash
5263         before first char in `namebuf'.
5264         * loop.c (strength_reduce): Skip NOTEs.
5265
5266 2000-08-27  Jason Merrill  <jason@redhat.com>
5267
5268         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
5269         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
5270         TREE_ASM_WRITTEN, either.
5271         (finish_decl): Adjust.
5272
5273 2000-08-28  Philipp Thomas  <pthomas@suse.de>
5274
5275         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
5276         they have been incorporated into the gettext CVS. Change the text to
5277         reflect the current status of NLS. Add instructions for accessing
5278         the gettext CVS and add the patch from Martin v. Loewis.
5279
5280 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
5281
5282         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
5283         by using gen_lowpart_common.
5284         (movdi_internal64+6): Likewise.
5285
5286 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
5287
5288         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
5289         Document.
5290
5291         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
5292         numbers to the ranges used by GDB.
5293
5294 2000-08-25  Richard Henderson  <rth@cygnus.com>
5295
5296         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
5297         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
5298         (ia64_expand_prologue): Likewise.
5299         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
5300         argument for stdargs.
5301
5302 2000-08-25  Jason Merrill  <jason@redhat.com>
5303
5304         * integrate.c (expand_inline_function): Pull out the original decl.
5305
5306 2000-08-25  Jim Wilson  <wilson@cygnus.com>
5307
5308         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
5309
5310         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
5311
5312 2000-08-25  Greg McGary  <greg@mcgary.org>
5313
5314         * flow.c (dump_edge_info): Use ARRAY_SIZE.
5315         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
5316
5317 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
5318
5319         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
5320
5321 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
5322
5323         * i386.c (ix86_find_base_term): New.
5324         * i386-protos.h (ix86_find_base_term): Prototype.
5325         * i386.h (FIND_BASE_TERM): Define.
5326         * alias.c (find_base_term): Use it.
5327         * tm.texi (FIND_BASE_TERM): Document it.
5328
5329         * alias.c (true_dependence, write_dependence_p): Unchanging
5330         memory can't conflict with non-unchanging memory.
5331
5332         * alias.c (memrefs_conflict_p): A BLKmode reference
5333         to a symbol (or CONST_INT address) always conflicts
5334         with a reference to another symbol.
5335
5336 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5337
5338         * c-common.c (time_char_table): Don't allow width and flags with
5339         "z" format.
5340
5341 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
5342
5343         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
5344         way as LT and LTU when the second operand has 0 in low word.
5345
5346 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5347
5348         * basic-block.h (struct loop): Rename `exits' field to
5349         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
5350
5351         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
5352         (flow_loop_entry_edges_find): Add.
5353         (flow_edge_list_print): Rename from flow_exits_print.
5354         (flow_loops_find): Call flow_loop_entry_edges_find.
5355         (flow_loop_dump): Dump entry_edges list.
5356         (flow_loops_free): Free entry_edges.
5357
5358 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5359
5360         * loop.c (loop_dump_aux, debug_loop): New functions.
5361         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
5362
5363         * flow.c (flow_loops_dump): Add callback parameter.
5364         (flow_loop_dump): Add callback parameter and call it.  Move
5365         loop note debugging code to loop_dump_aux.
5366
5367         * basic-block.h (flow_loop_dump): Add callback parameter
5368         (flow_loops_dump): Likewise.
5369
5370         * toplev.c (rest_of_compilation): Add NULL callback function pointer
5371         to call to flow_loops_dump.
5372
5373 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5374
5375         * loop.c (count_loop_regs_set): Replace start and end arguments
5376         with loop argument.  All callers udated.
5377
5378 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5379
5380         * loop.c (constant_high_bytes): Delete.
5381
5382 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5383
5384         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
5385         and NOTE_INSN_LOOP_VTOP to...
5386         (find_and_verify_loops) ...here.
5387
5388 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
5389
5390         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
5391         (fini_dummy, init_dummy): Use it.
5392
5393 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
5394
5395         * cpplex.c (is_macro_disabled): Caller has already checked
5396         that we're not a preprocessed file.
5397
5398 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
5399
5400         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
5401         (c-iterate.o): Remove target.
5402         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
5403         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
5404         (finish_decl): Don't handle iterators.
5405         (grokdeclarator): Likewise.
5406         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
5407         * gcc/c-gperf.h: Regenerated.
5408         * gcc/c-iterate.c: Removed.
5409         * gcc/c-lex.c (init_lex): Don't handle iterators.
5410         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
5411         (compstmt_primary_start): Remove push_iterator_stack call.
5412         (stmt): Don't allow iterator statements.  Replace iterator_expand
5413         with expand_expr_stmt.
5414         (all_iter_stmt): Remove.
5415         (all_iter_stmt_simple): Likewise.
5416         (all_iter_stmt_with_decl): Likewise.
5417         * gcc/c-tree.h (ITERATOR_P): Remove.
5418         (ITERATOR_BOUND_P): Likewise.
5419         (init_iterators): Remove declaration.
5420         (iterator_expand): Likewise.
5421         (iterator_for_loop_start): Likewise.
5422         (iterator_for_loop_end): Likewise.
5423         (iterator_for_loop_record): Likewise.
5424         (push_iterator_stack): Likewise.
5425         (pop_iterator_stack): Likewise.
5426         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
5427         (readonly_warning): Likewise.
5428         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
5429
5430 2000-08-24  Jim Wilson  <wilson@cygnus.com>
5431
5432         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
5433         Copy type in a TYPE_DECL, just like pushdecl does.
5434
5435 2000-08-24  Richard Henderson  <rth@cygnus.com>
5436
5437         * toplev.c (main): Enable flag_reorder_blocks at -O2.
5438
5439 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
5440
5441         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
5442         asked for one page, allocate GGC_QUIRE_SIZE of them and put
5443         the extras on the free list.
5444         (release_pages): Clean up.
5445         (ggc_set_mark): Don't adjust G.allocated here...
5446         (sweep_pages): ... do it here.
5447
5448 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
5449
5450         * cppfiles.c (read_include_file): Rearrange initializations.
5451
5452 2000-08-24  Richard Henderson  <rth@cygnus.com>
5453
5454         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
5455
5456         * config/ia64/ia64-protos.h: Update.
5457         * config/ia64/ia64.c (gr_register_operand): New.
5458         (fr_register_operand, grfr_register_operand): New.
5459         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
5460         (grfr_reg_or_8bit_operand): New.
5461         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
5462         use gr_register_operand.
5463         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
5464         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
5465         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
5466         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
5467         (fr_reg_or_fp01_operand): Likewise.
5468         (not_postinc_memory_operand): New.
5469         (ia64_split_timode): Remove unused variables.
5470         (rtx_needs_barrier): Check arguments to cmpxchg.
5471         (builtin_description): Remove.
5472         (bdesc_2argsi, bdesc_2argdi): Remove.
5473         (ia64_init_builtins): Declare all builtins directly.
5474         (ia64_expand_fetch_and_op): Rewrite to be called from
5475         ia64_expand_builtin directly.  Use expand_binop and co.
5476         (ia64_expand_op_and_fetch): Likewise.
5477         (ia64_expand_compare_and_swap): Likewise.
5478         (ia64_expand_binop_builtin): Remove.
5479         (ia64_expand_lock_test_and_set): New.
5480         (ia64_expand_lock_release): New.
5481         (ia64_expand_builtin): Use them.
5482         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
5483         (EXTRA_CONSTRAINT): Use it.
5484         (PREDICATE_CODES): Update.
5485         * config/ia64/ia64.md (*): Use gr_register_operand and co.
5486         (mf): Indicate that we set memory as well as use it.
5487         (fetchadd_acq_si): Show memory being modified as well.
5488         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
5489         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
5490         (lock_test_and_set_si, lock_test_and_set_di): Remove.
5491         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
5492         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
5493         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
5494         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
5495         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
5496         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
5497         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
5498         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
5499         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
5500         return type.  Pretty print definitions.
5501
5502 2000-08-24  Jim Wilson  <wilson@cygnus.com>
5503
5504         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
5505         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
5506
5507 2000-08-24  Jason Merrill  <jason@redhat.com>
5508
5509         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
5510         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
5511         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
5512         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
5513
5514 2000-08-24  Greg McGary  <greg@mcgary.org>
5515
5516         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
5517         and extendtab within their proper array boundaries.
5518         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
5519         for the entire array.
5520
5521         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
5522         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
5523         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
5524         * config/fr30/fr30.c (fr30_print_operand): Likewise.
5525         * config/i386/dgux.c (output_options): Likewise.
5526         * config/i386/dgux.h (ASM_FILE_START): Likewise.
5527         * config/m88k/m88k.c (output_options): Likewise.
5528         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
5529         * config/mcore/mcore.c (mcore_output_inline_const_forced,
5530         layout_mcore_frame, handle_structs_in_regs): Likewise.
5531         * config/mips/mips.c (output_block_move): Likewise.
5532         * config/rs6000/rs6000.c (rs6000_override_options,
5533         rs6000_file_start): Likewise.
5534         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
5535         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
5536         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
5537         * builtins.c (expand_builtin_setjmp): Likewise.
5538         * expr.c (safe_from_p): Likewise.
5539         * flow.c (life_analysis): Likewise.
5540         * fold-const.c (size_int_type_wide): Likewise.
5541         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
5542         * genattrtab.c (make_length_attrs): Likewise.
5543         * genopinit.c (gen_insn): Likewise.
5544         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
5545         * global.c (global_alloc): Likewise.
5546         * local-alloc.c (find_free_reg): Likewise.
5547         * mips-tdump.c (print_symbol): Likewise.
5548         * mips-tfile.c (parse_def, parse_input): Likewise.
5549         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
5550         * stmt.c (expand_nl_goto_receiver): Likewise.
5551         * stor-layout.c (set_sizetype): Likewise.
5552         * varasm.c (decode_reg_name): Likewise.
5553         * toplev.c (decode_f_option, decode_W_option,
5554         set_target_switch, print_switch_values): Likewise.
5555         (NUM_ELEM): Remove macro.
5556         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
5557
5558 2000-08-24  Greg McGary  <greg@mcgary.org>
5559
5560         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
5561         (MAIN_NAME_P, main_identifier_node): New macros.
5562         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
5563         * c-decl.c (start_decl, grokdeclarator, start_function,
5564         store_parm_decls, finish_function): Use MAIN_NAME_P.
5565         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
5566         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
5567         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
5568         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
5569
5570 2000-08-24  Greg McGary  <greg@mcgary.org>
5571
5572         * cppfiles.c (actual_directory): Don't write beyond `dir'
5573         when it contains "".
5574         * real.c (asctoeg): Stay within bounds of etens[][].
5575
5576 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5577
5578         * dependence.c (dependence_string, direction_string,
5579         dump_one_node, dump_node_dependence): Hide unused identifiers.
5580         (get_low_bound, normalize_coefficients): Match definition to
5581         static prototype.
5582         (get_one_coefficient): Initialize variables `value0_is_idx' and
5583         `value1_is_idx'.
5584         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
5585         (ziv_test): Delete variable `idx', use parameter `sub' instead.
5586         (direction_merge): Avoid automatic aggregate initialization.
5587         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
5588         Initialize variables `dest_idx' and `src_idx'.
5589         (end_dependence_analysis): Avoid C89 style function definition.
5590
5591 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5592
5593         * c-common.c (time_char_table): Don't allow width with %F.
5594         (check_format_info): Don't allow "Z" length with scanf.
5595
5596 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
5597
5598         * diagnostic.c (finish_diagnostic): Define.
5599         (output_do_printf): Use wrap_text instead of output_add_string.
5600         (default_print_error_function): Avoid embedded '\n'.
5601
5602         * diagnostic.h (flush_diagnostic_buffer): Declare.
5603
5604 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
5605
5606         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
5607
5608 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
5609
5610         * Makefile.in (GCC_PASSES): Add specs.
5611
5612 2000-08-23  Jim Wilson  <wilson@cygnus.com>
5613
5614         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
5615         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
5616         EHANDLER nor UHANDLER bit is set.
5617         (__get_except_table): Likewise.
5618
5619 2000-08-23  Nick Clifton  <nickc@redhat.com>
5620
5621         * config/arm/lib1funcs.asm: Replace upper case condition codes
5622         with lower case versions.
5623
5624         * config/arm/arm.h (STRUCT_VALUE): Define.
5625         (STRUCT_VALUE_REGNUM): Delete.
5626
5627 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
5628
5629         * cpphash.h (IN_I): New flag for directive table.
5630         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
5631         #pragma with IN_I.
5632         (_cpp_check_directive): If -fpreprocessed, execute directives
5633         marked with IN_I.  Issue no warnings in this case.
5634         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
5635
5636 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5637
5638         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
5639         %u.
5640         (check_format_info): Support printf 'I' flag; warn about it with
5641         -pedantic.
5642
5643 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
5644
5645         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
5646         barrier can't be ignored by the alias analysis code.
5647
5648 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
5649
5650         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
5651         works inside fixincl.
5652
5653 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
5654
5655         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
5656         simplify_relational_operation() unless both operands are of
5657         VOIDmode.
5658         * cse.c (fold_rtx): Likewise.
5659
5660 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
5661
5662         * rtlanal.c (rtx_unstable_p): The pic register is stable
5663         (within one function) and the actual rtx should be used
5664         when checking the registers.
5665         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
5666
5667         * alias.c (true_dependence, write_dependence_p): Fix
5668         bug in previous patch.
5669
5670         * i386.c (ix86_GOT_alias_set): New.
5671         (legitimize_pic_address): Use it.
5672
5673         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
5674         only stable if its address is stable.
5675         (rtx_varies_p): An unchanging MEM can't vary if
5676         its address doesn't vary.
5677
5678 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5679
5680         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
5681
5682 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5683
5684         * vax.h (ASM_SPEC): Pass `-J' to assembler.
5685         * x-vax-gcc: New file for bootstrapping with gcc.
5686         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
5687         * configure.in: Use x-vax-gcc with gcc.
5688         * configure: Rebuilt.
5689
5690 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5691
5692         * toplev.c (rest_of_compilation): Rebuild label notes after
5693         post-reload splitting pass if new labels have been created.
5694
5695 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
5696
5697         * diagnostic.h (output_buffer_state): New macro.
5698         * diagnostic.c (diagnostic_for_decl, sorry,
5699         default_print_error_function, output_do_verbatim,
5700         report_diagnostic, report_problematic_module): Use it.
5701         (wrap_text): Tweak.
5702         (output_format): Use wrap_text instead of maybe_wrap_text.
5703
5704 2000-08-22  Nick Clifton  <nickc@redhat.com>
5705
5706         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
5707         Common code for ARM divide and modulus functions.
5708         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
5709         ARM_DIV_MOD_BODY.
5710         (FUNC_END): New macro: Common code at the end of the division and
5711         modulo functions.
5712         (THUMB_FUNCTION_START): New macro:  Common code at the start of
5713         Thumb functions.
5714         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
5715
5716 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
5717
5718         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
5719
5720         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
5721         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
5722         const0_rtx.
5723
5724 2000-08-22  Nick Clifton  <nickc@redhat.com>
5725
5726         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
5727         restorative additions, test for bottom bits of IP being set,
5728         rather than relying upon the RORs not matching.
5729         (__modsi3): Ditto.
5730
5731 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
5732
5733         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
5734         text_section() as appropriate instead of emitting text csect
5735         pseudo-op directly.
5736         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
5737         (UNIQUE_SECTION): Define macro.
5738         (ASM_OUTPUT_SECTION_NAME): Define macro.
5739         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
5740         on AIX if debugging and -fdata-sections always.
5741
5742 2000-08-22  Steven King  <sxking@uswest.net>
5743
5744         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
5745         machinery.
5746         (LDBL_MAX): Same here.
5747
5748 2000-08-22  Richard Henderson  <rth@cygnus.com>
5749
5750         * flow.c (tidy_fallthru_edge): Update b->end properly.
5751
5752 2000-08-22  Stan Cox  <scox@redhat.com>
5753
5754         * Makefile.in (OBJS): Add dependence.o.
5755         * dependence.c: New file.
5756
5757 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
5758
5759         * calls.c (check_sibcall_argument_overlap_1): Adjust for
5760         ARGS_GROW_DOWNWARD.
5761         (check_sibcall_argument_overlap): Likewise.
5762
5763 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
5764
5765         * invoke.texi (SH Options): Document -m4-nofpu,
5766         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
5767         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
5768
5769 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
5770
5771         * c-common.c (check_format_info): Give the 'some locales' warning
5772         for strftime %Ey rather than the unconditional 'only last 2 digits
5773         of year' one.
5774
5775 2000-08-22  Richard Henderson  <rth@cygnus.com>
5776
5777         * alias.c (init_alias_analysis): Do not register
5778         struct_value_incoming_rtx or static_chain_rtx as pointing
5779         to stack memory.
5780
5781 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
5782
5783         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
5784
5785 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
5786
5787         * diagnostic.h (report_problematic_module): Declare.
5788         * diagnostic.c (report_problematic_module): New function.
5789         (report_error_function): Tweak.
5790
5791 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5792
5793         * stmt.c (expand_goto_internal, fixup_gotos): Only check
5794         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
5795
5796 2000-08-21  Richard Henderson  <rth@cygnus.com>
5797
5798         * flow.c (calculate_global_regs_live): Mark frame pointer live
5799         everywhere before reload.
5800
5801 2000-08-21  Jim Wilson  <wilson@cygnus.com>
5802
5803         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
5804         INTEL_EXTENDED_IEEE_FORMAT.
5805         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
5806         clear last two bytes of output FP value.
5807
5808 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
5809
5810         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
5811
5812 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
5813
5814         * unroll.c (loop_find_equiv_value): If ret is modified between
5815         insn and loop_start, ret might not be equivalent to reg.
5816
5817 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5818
5819         * c-common.c (init_dollar_format_checking,
5820         maybe_read_dollar_number, finish_dollar_format_checking): New
5821         functions.
5822         (dollar_arguments_used, dollar_arguments_count,
5823         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
5824         New variables.
5825         (check_format_info): Support $ formats for scanf and printf width
5826         and precision.  Always increment format_chars to advance past the
5827         '*' of precision, not just when the format parameters are
5828         available to check.
5829
5830 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5831
5832         * mips.c (block_move_loop, expand_block_move,
5833         function_arg_partial_nregs, save_restore_insns, function_prologue,
5834         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
5835         constant suffix.
5836         (function_arg_advance, function_arg): Match argument to format
5837         specifier `%p'.
5838
5839 2000-08-21  Nix  <nix@esperi.demon.co.uk>
5840
5841         * gcc.c (do_spec_1): Implement %j spec flag.
5842         Remove dead comment.
5843
5844         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
5845         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
5846         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
5847         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
5848
5849         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
5850         writable) instead of hardcoded value.
5851
5852         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
5853
5854         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
5855         MKTEMP_EACH_FILE.
5856
5857         * gcc.c (cc1_options): Do not process -o or run the assembler if
5858         -fsyntax-only.
5859         * objc/lang-spec.h: Likewise.
5860
5861 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
5862
5863         * fixinc/fixincl.c (fix_with_system): Pipe the output of
5864         "external" fixes through `cat', to avoid truncating the input
5865         file by redirection.
5866
5867 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
5868
5869         * config/i386/i386.md (lea_general_1): Copy insn condition to split
5870         condition.
5871         (lea_general_2, lea_general_3): Likewise.
5872
5873 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5874
5875         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
5876         warnings to user code.
5877
5878         * c-lex.c (readescape, yylex): Likewise.
5879
5880         * c-typeck.c (store_init_value, process_init_element): Likewise
5881         (c_expand_start_case): Format.
5882
5883 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5884
5885         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
5886
5887         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
5888         and linker_endian_spec to endian_spec.
5889         (ENDIAN_SPEC): Add %{EB} and %{EL}.
5890         (LINK_SPEC): Remove %{EB} and %{EL}.
5891         (ASM_SPEC): Likewise.  Use %(endian_spec).
5892
5893 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5894
5895         * c-tree.h (flag_hosted): Move declaration from here...
5896         * c-common.h (flag_hosted): ... to here.
5897         (flag_noniso_default_format_attributes): New declaration.
5898         * c-decl.c (flag_noniso_default_format_attributes): New variable.
5899         (c_decode_option): Set it appropriately for options choosing
5900         language standard variant.
5901         * c-common.c (init_function_format_info): Only provide default
5902         format attributes if flag_hosted.  Only provide the gettext
5903         formats if flag_noniso_default_format_attributes.  Update
5904         comments.
5905         (check_format_info): Disable treatment of %a as a scanf flag in
5906         C99 mode.
5907
5908 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5909
5910         * c-common.c (scan_char_table): Add 'w' to flags for all formats
5911         except 'n'.
5912         (check_format_info): Set 'wide' for scanf format widths.  Warn for
5913         a zero scanf width.  Make the check for writing into a constant
5914         object at the first level of indirection; at later levels, warn if
5915         any type qualifiers are encountered.
5916
5917 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
5918
5919         * reload.c (reload_inner_reg_of_subreg): New function broken out of
5920         push_reload.
5921         (push_reload): Use reload_inner_reg_of_subreg.
5922         (combine_reloads): Do not combine reloads if the input reload
5923         is a SUBREG in which the inner part will need reloading.
5924
5925         * global.c (global_alloc): Avoid passing dumpfile argument to
5926         reload routines.
5927         * toplev.c (rest_of_compilation): Likewise.
5928         * reload.h (reload): Remove dumpfile argument.  Callers changed.
5929         (debug_reload, debug_reload_to_stream): Move prototypes here.
5930         * rtl.h  (reload): Remove dumpfile argument.
5931         * reload.c (debug_reload): Remove prototype.
5932         (debug_reload_to_stream): Likewise.
5933         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
5934         instead.
5935
5936 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5937
5938         * diagnostic.c (context_as_prefix): Export.
5939         (need_error_newline): Remove.
5940         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
5941         (error_module_changed, record_last_error_module,
5942         error_function_changed, record_last_error_function): New functions.
5943         (initialize_diagnostics): Default intialize
5944         lang_diagnostic_starter, lang_diagnostic_finalizer.
5945         (init_output_buffer): Tweak.
5946         (file_name_as_prefix): New function.
5947         (announce_function, default_print_error_function,
5948         report_error_function, set_diagnostic_context): Tweak.
5949
5950 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
5951
5952         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
5953         condition expression.
5954
5955 2000-08-20  Richard Henderson  <rth@cygnus.com>
5956
5957         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
5958
5959 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
5960
5961         * cppinit.c (cpp_init): Set global flag when called.
5962         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
5963
5964 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
5965
5966         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
5967         before `process_directive' so that newlines won't be missed
5968         for directives.
5969         (cpp_printf): Increment `print->lineno' when newline is emitted.
5970
5971         * cppmain.c (cb_ident): Likewise.
5972         (cb_define): Likewise.
5973         (cb_undef): Likewise.
5974         (cb_include): Likewise.
5975         (cb_def_pragma): Likewise.
5976         (dump_macros_helper): Likewise.
5977
5978 2000-08-20  Richard Henderson  <rth@cygnus.com>
5979
5980         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
5981         assigned before a loop.
5982
5983         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
5984         (ashrsi3, lshrsi3): Likewise.
5985
5986 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
5987
5988         * c-lang.c: #include diagnostic.h
5989         (c_tree_printer): New function.
5990         (lang_init): Initialize lang_printer.
5991
5992         * Makefile.in (c-lang.o): Depends on diagnostic.h
5993
5994 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
5995
5996         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
5997
5998         * diagnostic.c (default_diagnostic_starter,
5999         default_diagnostic_finalizer): New functions.
6000         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
6001         (pedwarn, pedwarn_with_file_and_line, error,
6002         error_with_file_and_line, fatal, warning,
6003         warning_with_file_and_line): Adjust call to report_diagnostic.
6004         (report_diagnostic): Rework.
6005         (set_diagnostic_context): New function.
6006
6007         * diagnostic.h (struct diagnostic_context): New data structure.
6008         (diagnostic_message, diagnostic_argument_list,
6009         diagnostic_file_location, diagnostic_line_location,
6010         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
6011         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
6012         (set_diagnostic_context): Declare.
6013         (report_diagnostic): Change prototype.
6014
6015 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
6016
6017         * fix-header.c (main): Initialize cpplib.
6018
6019 2000-08-19  Michael Meissner  <meissner@redhat.com>
6020
6021         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
6022         instructions in it before checking for indirect jumps.
6023
6024         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
6025         in a indirect jump as a potential for conditional execution.
6026
6027         * d30v.h (d30v_init_expanders): Don't declare here.
6028         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
6029         prototype.
6030
6031 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
6032
6033         * cpp.texi: Add @section for assertions.
6034
6035 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
6036
6037         * loop.c (scan_loop): Use CONST_CALL_P instead of
6038         checking for REG_LIBCALL / REG_RETVAL.
6039
6040 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
6041
6042         * reload1.c (reload_as_needed): Accept dumpfile argument,
6043         pass it to emit_reload_insns.
6044         (emit_reload_insns): Add new dumpfile argument.  If non-null
6045         then dump the reloads for each insn into the dumpfile.
6046         (reload): Pass dumpfile to reload_as_needed.
6047
6048         * invoke.texi: Clean up linux-gnu vs linux comments.
6049
6050 2000-08-19  Richard Henderson  <rth@cygnus.com>
6051
6052         * config/ia64/ia64.c (reg_or_5bit_operand): New.
6053         (ia64_depz_field_mask): New.
6054         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
6055         (PREDICATE_CODES): Update.
6056         * config/ia64/ia64.md: Update commentary.
6057         (depz_internal): New.
6058         (ashlsi3): Implement directly.
6059         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
6060         (ashldi3): Use shladd.
6061         * config/ia64/ia64-protos.h: Update.
6062
6063 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6064
6065         * toplev.c (independent_decode_option): Always process -g.
6066         Remove third argument, now unused.  Adjust caller to match.
6067
6068 2000-08-18  Richard Henderson  <rth@cygnus.com>
6069
6070         * combine.c (make_compound_operation): Break after creating
6071         the extraction.
6072
6073 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6074
6075         * cpplib.c (cpp_register_pragma_space): Just return if the
6076         namespace is already registered.
6077
6078 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
6079
6080         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
6081         constant amount.  Do not generate ROTL instruction.
6082
6083 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
6084
6085         * config/sh/elf.h: Do not include sh/sh.h.
6086         * config/sh/rtems.h: Likewise.
6087         * config/sh/rtemself.h: Do not include sh/elf.h.
6088         * configure.in: Get them included with `tm_file's.
6089         * configure: Rebuilt.
6090
6091         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
6092         * config/sh/sh.c (fpscr_set_from_mem): Use them.
6093
6094 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6095
6096         * stor-layout.c (compute_record_type): Don't use mode of single
6097         field as mode of record if not integer mode of same type.
6098
6099         * regmove.c (perhaps_ends_bb_p): New function.
6100         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
6101         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
6102         (fixup_match_1): Likewise.
6103         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
6104         avoid signed/unsigned warnings.
6105
6106         * function.c (fixup_var_refs_1, case MEM): Update CODE after
6107         updating X.
6108
6109 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
6110
6111         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
6112         (_cpp_trigraph_map): Declaration moved from cpplex.c
6113
6114         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
6115         instead of 256.  Use consistent test for designated initializers.
6116         (cpp_init): Initialize trigraph_map.
6117         (initialize_standard_includes, parse_option):  Use memcmp
6118         instead of strncmp.
6119
6120         * cpplex.c (init_trigraph_map): Remove.
6121         (trigraph_ok, trigraph_replace, lex_line): Refer to
6122         _cpp_trigraph_map.
6123
6124         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
6125         (do_unassert): Remove unused "next" local.
6126
6127         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
6128
6129 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
6130
6131         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
6132         insn.
6133
6134 2000-08-17  Richard Henderson  <rth@cygnus.com>
6135
6136         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
6137         the first insn in a sequence.
6138
6139 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
6140
6141         * alias.c (true_dependence, write_dependence_p): A read
6142         involving a label_ref or the constant pool doesn't create
6143         a dependency.
6144
6145         * rtl.h (unchanging): Improve documentation.
6146
6147 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
6148
6149         * cse.c (insert_regs): Remove unused `regno'.
6150
6151 2000-08-17  Neil Booth  <NeilB@earthling.net>
6152
6153         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
6154         remove_dup_dirs.  If qtail == brack, remove brack not
6155         qtail.
6156         (remove_dup_dir, remove_dup_dirs): New functions.
6157
6158 2000-08-17  Neil Booth  <NeilB@earthling.net>
6159
6160         * cppinit.c (cpp_cleanup): Free include dir chains.
6161         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
6162         (do_unassert): Free the assert with _cpp_free_definition.
6163         * cppmacro.c (_cpp_free_definition): Free memory allocated for
6164         assertions.  Make the node a T_VOID node.
6165
6166 2000-08-17  Neil Booth  <NeilB@earthling.net>
6167
6168         * cppinit.c (path_include, append_include_chain):
6169         Remove 2nd parameter (struct cpp_pending *).
6170         (path_include, initialize_standard_includes, cpp_handle_option):
6171         Update callers appropriately.
6172         (cpp_handle_option): Use pend.
6173
6174 2000-08-17  Neil Booth  <NeilB@earthling.net>
6175
6176         * cppinit.c (sort_options): Remove, put functionality in
6177         cpp_init.
6178         (cpp_init): New.
6179         (initialize_builtins): Free memory.
6180         (cpp_start_read): Move init_IStable to cpp_init.
6181
6182         * cpplib.h (cpp_init): New prototype.
6183         * cppmain.c (main): Call cpp_init.
6184
6185 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
6186
6187         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
6188         (rtx_unstable_p, rtx_varies_p): Process vectors.
6189
6190 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
6191
6192         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
6193         references to GLOBAL symbols.  Use LOCAL where appropriate.
6194
6195 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6196
6197         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
6198         use t-aix41 when host == target.
6199
6200 2000-08-16  Richard Henderson  <rth@cygnus.com>
6201
6202         * reload.c (push_secondary_reload): Revert last change.
6203         If we use a reload_in/out pattern, make the when the same
6204         as the primary reload.
6205         (find_reloads): Likewise.
6206
6207 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
6208
6209         * configure.in (libstdcxx-v3): Fix test.
6210         * configure: Regenerate.
6211
6212 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6213
6214         * calls.c (calls_function_1, expand_call): Only test
6215         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
6216         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6217
6218 2000-08-16  Richard Henderson  <rth@cygnus.com>
6219
6220         * combine.c (simplify_shift_const): Revert previous two
6221         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
6222         before the main loop.
6223
6224 2000-08-15  Richard Henderson  <rth@cygnus.com>
6225
6226         * combine.c (simplify_shift_const): Bound shift count when
6227         combining shifts.
6228
6229 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6230
6231         * calls.c (ECF_SP_DEPRESSED): New macro.
6232         (calls_function_1): Treat calling sp-depressed function as alloca.
6233         (emit_call_1): Don't adjust SP if calling sp-depressed function.
6234         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
6235         If sp-depressed, ensure block saves and restores SP.
6236         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
6237         for INTEGER_TYPE.
6238         * function.c (keep_stack_depressed): New function.
6239         (thread_prologue_and_epilogue_insns): Call it.
6240         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
6241         to print DECL_OFFSET_ALIGN.
6242         Print no-force-blk and transparent-union flags properly.
6243         * stmt.c (expand_goto_internal): Don't restore stack if last block
6244         and function returns with sp depressed.
6245         (fixup_gotos): Likewise.
6246         (save_stack_pointer): New function, from code in expand_decl.
6247         (expand_decl): Call new function.
6248         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
6249         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
6250         (save_stack_pointer): New declaration.
6251
6252         * diagnostic.c (fatal_function): New variable.
6253         (set_fatal_function): New function.
6254         (fatal): Call it.
6255         * diagnostic.h (set_fatal_function): New declaration.
6256
6257 2000-08-15  William Cohen  <wcohen@redhat.com>
6258
6259         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
6260         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
6261         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
6262
6263 2000-08-15  Richard Henderson  <rth@cygnus.com>
6264
6265         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
6266
6267 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6268
6269         * arm.c (arm_function_ok_for_sibcall): New function.
6270         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
6271         * arm.md (call expanders): Don't check here for calls that can't
6272         be sibling calls.
6273
6274 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6275
6276         * arm.md (splits generating cond_exec): Disable.
6277
6278 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6279
6280         * arm/linux-elf.h (text_section): Delete declaration.
6281
6282 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6283
6284         ARM support for unordered FP operations.
6285         * arm-protos.h (arm_comparison_operator): Declare.
6286         * arm.c (arm_comparison_operator): New function.
6287         (arm_select_cc_mode): Add unordered comparison codes.
6288         (get_arm_condition_code): Likewise.
6289         (arm_final_prescan_insn): Can't handle unordered jumps that can't
6290         be done in one insn.
6291         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
6292         * arm.md (all uses of comparison_operator): Replace with
6293         arm_comparison_operator.
6294         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
6295         expands.
6296         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
6297         patterns.
6298
6299 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6300
6301         * gthr-posix.h: Conditionally include <sched.h>; include
6302         <config.h> from libobjc/.
6303
6304 2000-08-14  Richard Henderson  <rth@cygnus.com>
6305
6306         * config/i386/i386.c (legitimize_pic_address): Use Pmode
6307         for all CONSTs.
6308
6309 2000-08-14  Richard Henderson  <rth@cygnus.com>
6310
6311         * configure.in (ia64-*): Set float_format for i386 long double.
6312
6313         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
6314         as we would for i386 XFmode.
6315         (PUT_REAL): Likewise.
6316         (endian, ereal_atof, real_value_truncate): Likewise.
6317         (ereal_isneg, toe64, etens, make_nan): Likewise.
6318         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
6319
6320         * config/ia64/ia64-protos.h: Update.
6321         * config/ia64/ia64.c (general_tfmode_operand): New.
6322         (destination_tfmode_operand): New.
6323         (tfreg_or_fp01_operand): New.
6324         (ia64_split_timode): New.
6325         (spill_tfmode_operand): New.
6326         (ia64_expand_prologue): Use TFmode not XFmode.
6327         (ia64_expand_epilogue): Likewise.
6328         (ia64_function_arg): Likewise.
6329         (ia64_function_arg_advance): Likewise.
6330         (ia64_return_in_memory): Likewise.
6331         (ia64_function_value): Likewise.
6332         (ia64_print_operand): Likewise.
6333         (ia64_register_move_cost): Set GR<->FR to 5.
6334         (ia64_secondary_reload_class): Get GR for TImode memory op.
6335         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
6336         (ROUND_TYPE_ALIGN): Remove.
6337         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
6338         (INTEL_EXTENDED_IEEE_FORMAT): Define.
6339         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
6340         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
6341         (MODES_TIEABLE_P): Use TFmode, not XFmode.
6342         (CLASS_MAX_NREGS): Likewise.
6343         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
6344         (PREDICATE_CODES): Update.
6345         * config/ia64/ia64.md (movti): New.
6346         (movti_internal): Use a clobber for memory alternatives.
6347         (reload_inti, reload_outti): New.
6348         (movsfcc_astep): Predicate properly.
6349         (movdfcc_astep): Likewise.
6350         (movxf): Remove.
6351         (movtf): New.
6352         (extendsftf2, extenddftf2): New.
6353         (trunctfsf2, trunctfdf2): New.
6354         (floatditf2, fix_trunctfdi2): New.
6355         (floatunsditf2, fixuns_trunctfdi2): New.
6356         (addtf3, subtf3, multf3, abstf2): New.
6357         (negtf2, nabstf2, mintf3, maxtf3): New.
6358         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
6359         (cmptf): New.
6360         (fr_spill): Use TFmode, not XFmode.
6361         (fr_restore): Likewise.
6362         * config/ia64/lib1funcs.asm (__divtf3): New.
6363         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
6364
6365 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6366
6367         * cse.c (fold_rtx): Avoid empty body in an if-statement.
6368
6369         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
6370         `U' integer constant suffix.
6371
6372         * dwarf2out.c (add_subscript_info): Avoid empty body in an
6373         else-statement.
6374
6375         * sparc/sol2.h (__enable_execute_stack): Prototype.
6376
6377 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
6378
6379         * collect2.c: Remove use of AIX import file.
6380
6381         * longlong.h: Test ARCH_PWR not ARCH_POWER.
6382
6383         * rs6000.c (print_operand, case 'E'): Add else.
6384
6385 2000-08-14  Richard Henderson  <rth@cygnus.com>
6386
6387         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
6388         (movdi_symbolic): New.
6389
6390 2000-08-14  Jim Wilson  <wilson@cygnus.com>
6391
6392         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6393         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
6394         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6395         to GNU as.
6396
6397 2000-08-14  Richard Henderson  <rth@cygnus.com>
6398
6399         * expr.c (emit_group_load): Don't force constants into registers.
6400         Special case source already in the correct mode.
6401
6402 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
6403
6404         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
6405         * fixinc/inclhack.def: Likewise.
6406         * fixinc/mkfixinc.sh: Likewise.
6407         * configure: Regenerate.
6408         * fixinc/fixincl.x: Regenerate.
6409         * install.texi: Document equivalence of linux and linux-gnu.
6410
6411 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6412
6413         * cse.c (insert_regs): Also in REG case: When finding an invalid
6414         value, and we make a new quantity, make sure that it won't be
6415         mistaken by for a valid one by mention_regs.
6416
6417 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
6418
6419         * h8300.md: Remove obsolete peepholes.
6420
6421 2000-08-13  Kazu Hirata  <kazu@hxi.com>
6422
6423         * invoke.texi (H8/300 Options): Fix typos.
6424         * config/h8300.c: Fix formatting.
6425         * config/h8300.h: Fix comment typos.
6426         (OVERRIDE_OPTIONS): Fix formatting.
6427
6428         * function.c: Fix formatting.
6429
6430         * cse.c: Fix formatting.
6431
6432 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
6433
6434         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
6435         (attempt_auto_inc): Suppress parentheses warning.
6436         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
6437         * loop.c (load_mems): Remove `u' suffix in two places.
6438         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
6439         hex constants.
6440         * config/rs6000/rs6000.h: Likewise.
6441         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
6442         __eabi dummy routine.
6443         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
6444         variable `buf_ptr'.
6445
6446         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
6447         not put stuff in .sdata unnecessarily.
6448         (rs6000_unique_section): New function.
6449         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
6450         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
6451
6452         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
6453         arrays in C99.  Don't try to look at DECL_REGISTER of a
6454         COMPONENT_REF.  Don't complain twice about the same error.
6455
6456         * fixinc/inclhack.def (aix_pthread): New fix.
6457         (aix_sysmachine): New fix.
6458         * fixinc/fixincl.x: Regenerate.
6459
6460         * expr.c (expand_expr): Call convert_modes when turning a large
6461         multiply into a small one.
6462
6463 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
6464
6465         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
6466         the tree structure an exponent rather than an explicit alignment
6467         so it doesn't overflow.
6468         (SET_DECL_OFFSET_ALIGN): New macro.
6469         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
6470         rather than DECL_OFFSET_ALIGN.
6471         (place_field): Likewise.
6472         * expmed.c (store_bit_field): Abort on align==0 to avoid
6473         antisocial machine behaviour.
6474
6475 2000-08-12  Richard Henderson  <rth@cygnus.com>
6476
6477         * sibcall.c (uses_addressof): Accept both addressof and
6478         current_function_internal_arg_pointer inside a mem.
6479         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
6480         if current_function_uses_addressof.
6481         * stmt.c (expand_return): Kill tail recursion and HAVE_return
6482         optimizations.
6483
6484 2000-08-11  Richard Henderson  <rth@cygnus.com>
6485
6486         * config/ia64/ia64.md (addsi3): Remove expander.
6487         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
6488         (*addsi3_shladd): New.
6489
6490 2000-08-11  Richard Henderson  <rth@cygnus.com>
6491
6492         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
6493         (do_restore): Likewise.
6494         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
6495         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
6496         (rtx_needs_barrier): Track actual bit manipulation for
6497         ar.unat moves, gr_spill, and gr_restore.
6498         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
6499         (process_set): Don't handle varargs spills.
6500         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
6501         .mem.offset here instead of in process_set.
6502         (gr_restore): Likewise.
6503
6504 2000-08-11  Richard Henderson  <rth@cygnus.com>
6505
6506         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
6507
6508 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
6509
6510         * gcc.texi (The Configuration File): Document
6511         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
6512         UPDATE_PATH_HOST_CANONICALIZATION.
6513
6514 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6515
6516         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
6517         unprototyped function pointer casts on integer constants.
6518
6519 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
6520
6521         * fixproto: Recognize DOS paths with drive letters as absolute paths.
6522
6523 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
6524
6525         * extend.texi (Volatiles): Fix typos.
6526
6527 2000-08-11  Kazu Hirata  <kazu@hxi.com>
6528
6529         * flow.c: Fix formatting.
6530
6531 2000-08-11  Richard Henderson  <rth@cygnus.com>
6532
6533         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
6534         pattern, always allocate a tertiary scratch register.
6535
6536         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
6537         (reload_inhi): Likewise.
6538
6539 2000-08-11  Richard Henderson  <rth@cygnus.com>
6540
6541         * function.c (put_reg_into_stack): Allow type to be NULL.
6542         (schedule_fixup_var_refs): Likewise.
6543         (gen_mem_addressof): Allow decl to be NULL.
6544         (put_addressof_into_stack): Likewise.
6545
6546         * flow.c (merge_blocks_nomove): Be more careful about
6547         locating the beginning of block A.
6548
6549         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
6550
6551 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6552
6553         * configure.in:
6554         * configure:
6555         * gthr-posix.h:
6556         * config.in: Reverted the check for <sched.h>.
6557
6558 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
6559
6560         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
6561         macros define the name of CTOR and DTOR sections.
6562         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
6563         DTOR_LIST_END): Change to use attributes to specify
6564         sections.
6565         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
6566         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
6567         DTOR_LIST_END): Same as in mips/elf.h.
6568
6569 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
6570
6571         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
6572         disabling just crt0.o.
6573
6574 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
6575
6576         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
6577         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
6578         (EXTRA_SPECS): Add them.
6579         * arm/lib1funcs.asm: Support builds for interworking.
6580         Use macros to eliminate duplicated pieces of code.
6581
6582 2000-08-10  Kazu Hirata  <kazu@hxi.com>
6583
6584         * h8300.c (expand_a_rotate): New.
6585         (emit_a_rotate): Likewise.
6586         (h8300_adjust_insn_length): Add support for the rotate insns.
6587         * h8300.md (rotlqi3): New.
6588         (*rotlqi3_1): Likewise.
6589         (rotlhi3): Likewise.
6590         (*rotlhi3_1): Likewise.
6591         (rotlhi3): Likewise.
6592         (*rotlhi3_1): Likewise.
6593         * h8300-proto.h: Add prototypes for expand_a_rotate and
6594         emit_a_rotate.
6595
6596         * h8300.c: Fix comment typos.
6597         (dosize): Declare the variable amount as unsigned.
6598         (get_shift_alg): Fix a comparison between signed and unsigned.
6599         (emit_a_shift): Likewise.
6600         (h8300_adjust_insn_length): Simplify the code.
6601
6602         * c-decl.c: Fix formatting.
6603
6604 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6605
6606         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
6607         warning about non-traditional numeric constant suffixes.
6608
6609         * cppexp.c (parse_number): Likewise.
6610
6611         * invoke.texi: (-Wtraditional): Document new behavior.
6612
6613 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6614
6615         * gthr-posix.h: Include auto-host.h. Conditionally include
6616         <sched.h>.
6617         * configure.in: Check for the <sched.h> header file.
6618         * config.in: Added define for HAVE_SCHED_H.
6619
6620 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6621
6622         * c-typeck.c (process_init_element): For -Wtraditional, warn about
6623         initialization of unions.
6624
6625         * invoke.texi (-Wtraditional): Document new behavior.
6626
6627 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
6628
6629         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
6630         instead of extra_c_flags.
6631         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
6632         * configure: Regenerate.
6633         * config.in: Regenerate.
6634
6635         * cpperror.c (cpp_type2name): New function.
6636         * cpplex.c (lex_line): If we issued an error for an invalid
6637         preprocessing directive, discard that logical line.
6638         * cpplib.c (do_line): Call a hook function if the current file
6639         is renamed by #line.
6640         (do_ident): Pass the contents of the string, not the entire
6641         token, to the callback function.
6642         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
6643         (cb.rename_file): New hook function.
6644         (cb.ident): Adjust prototype.
6645         (cpp_type2name): Prototype.
6646         * cppmacro.c (dump_macro_args): Correct precedence lossage.
6647
6648         * cppmain.c (cb_ident): Update for changed interface.
6649         (cb_rename_file): New function.
6650         (main): Set rename callback.
6651
6652 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
6653
6654         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
6655         multi-word registers.
6656
6657 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6658
6659         * c-common.c (combine_strings, check_format_info): Refer to ISO C
6660         or ISO C89 instead of ANSI C.
6661         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
6662         build_enumerator, do_case): Likewise.
6663         * c-lex.c (parse_float, yylex): Likewise.
6664         * c-parse.in: Likewise.
6665         * c-typeck.c (common_type, build_array_ref, build_binary_op,
6666         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
6667         build_c_cast, convert_for_assignment, set_init_index,
6668         set_init_label, c_expand_start_case): Likewise.
6669         * toplev.c (documented_lang_options, display_help): Likewise.
6670
6671 2000-08-08  Kazu Hirata  <kazu@hxi.com>
6672
6673         * h8300.c: Fix formatting.
6674         * h8300.h: Likewise.
6675         * h8300.md: Likewise.
6676         (movsi_h8300hs): Fix formatting of the resulting assembly code.
6677
6678         * reload1.c: Fix formatting.
6679
6680 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
6681
6682         * alpha/alpha.c (alpha_emit_xfloating_libcall):
6683         Use GEN_CALL_VALUE define.
6684         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
6685         * clipper/clipper.md (untyped_call): Likewise.
6686         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
6687         * fx80/fx80.md (untyped_call): Likewise.
6688         * mips/mips.md (untyped_call): Likewise.
6689         * ns32k/ns32k.md (untyped_call): Likewise.
6690         * pa/pa.md (untyped_call): Likewise.
6691         * romp/romp.md (untyped_call): Likewise.
6692         * sparc/sparc.md (untyped_call): Likewise.
6693
6694 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
6695
6696         * config/i860/i860.c (singlemove_string): Do not generate assembler
6697         pseudo instructions that must be expanded (that is, with signed
6698         constants larger than 16 bits).
6699
6700 2000-08-08  Richard Henderson  <rth@cygnus.com>
6701
6702         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
6703         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
6704         (init_propagate_block_info): Don't kill memory stores at -O0.
6705         (mark_set_1, mark_used_regs): Likewise.
6706
6707 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
6708
6709         * rs6000.c (optimization_options): Decorate 'level' as
6710         ATTRIBUTE_UNUSED.
6711         (mask64_operand): Remove sign-extend thinko.
6712         (rldic_operand): New function.
6713         (load_multiple_operation): regno's are unsigned ints.
6714         (store_multiple_operation): Likewise.
6715         (lmw_operation): Likewise.
6716         (stmw_operation): Likewise.
6717         (includes_lshift_p): shift_mask is unsigned int.
6718         (includes_lshift64_p): New function.
6719         (addrs_ok_for_quad_peep): unsigned int reg1.
6720         (print_operand): Consistently add "else" after
6721         output_operand_lossage().
6722         (print_operand, case 'b'): Fold in case 'W'.
6723         (print_operand, case 'W'): Print rldic MB value.
6724         (output_epilogue): Update Objective-C language string.
6725         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
6726         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
6727         * rs6000.md (ashldi3): Add rldic instruction.
6728         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
6729         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
6730         modifier.
6731
6732 2000-08-08  Richard Henderson  <rth@cygnus.com>
6733
6734         * config/ia64/ia64-protos.h: Remove duplicates.  Update
6735         for massive code rearrangements.
6736         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
6737         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
6738         (ia64_local_regs, ia64_need_regstk): Remove.
6739         (ar_ccv_reg_operand): New.
6740         (ia64_gp_save_reg): New.
6741         (struct ia64_frame_info): Combine most of the size elements;
6742         add new gr save elements.
6743         (find_gr_spill): New.
6744         (next_scratch_gr_reg): New.
6745         (mark_reg_gr_used_mask): New.
6746         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
6747         to GR backing store regs when possible.
6748         (ia64_initial_elimination_offset): New.
6749         (ia64_rap_fp_offset): Remove.
6750         (save_restore_insns): Remove.
6751         (setup_spill_pointers): New.
6752         (finish_spill_pointers): New.
6753         (spill_restore_mem): New.
6754         (do_spill, do_restore): New.
6755         (ia64_expand_prologue): Rewrite to use them.
6756         (ia64_expand_epilogue): Likewise.
6757         (ia64_direct_return): Update for current_frame_info changes.
6758         (ia64_function_prologue): Simplify .prologue emission.  Emit
6759         .spill when needed.
6760         (ia64_setup_incoming_varargs): Don't ever emit rtl.
6761         (ia64_dbx_register_number): New.
6762         (ia64_initialize_trampoline): New.
6763         (ia64_secondary_reload_class): Request GR_REGS for integer
6764         arithmetic destined for FR_REGS.
6765         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
6766         (ia64_mark_machine_status): Mark ia64_gp_save.
6767         (rws_access_regno): Rename from rws_access_reg; don't treat
6768         predicates specially.
6769         (rws_access_reg): New.  Update all callers.
6770         (rtx_needs_barrier): Remove dead unspecs.
6771         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
6772         (ia64_encode_section_info): Silence signed/unsigned warnings.
6773         (spill_offset, sp_offset, spill_offset_emitted): Remove.
6774         (tmp_reg, tmp_saved): Remove.
6775         (process_set): Rewrite to expect complicated bits via
6776         REG_FRAME_RELATED_EXPR.
6777         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
6778         in the use of ar.ccv; never set RTX_UNCHANGING_P.
6779         (ia64_expand_op_and_fetch): Likewise.
6780         (ia64_expand_compare_and_swap): Likewise.
6781         (ia64_expand_builtin): Likewise.
6782         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
6783         (FIRST_PSEUDO_REGISTER): Update.
6784         (AR_M_REGNO_P): Update.
6785         (FIXED_REGS): Don't mark three local registers as used.
6786         (EXTRA_CC_MODES): New.
6787         (SELECT_CC_MODE): New.
6788         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
6789         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
6790         (FRAME_GROWS_DOWNWARD): Unset.
6791         (STARTING_FRAME_OFFSET): Zero.
6792         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
6793         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
6794         (HARD_FRAME_POINTER_REGNUM): New.
6795         (CAN_DEBUG_WITHOUT_FP): Define.
6796         (TRAMPOLINE_TEMPLATE): Remove.
6797         (TRAMPOLINE_SIZE): Lower to 32.
6798         (TRAMPOLINE_ALIGNMENT): Lower to 64.
6799         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
6800         (PREDICATE_CODES): Update.
6801         (struct machine_function): Add ia64_gp_save.
6802         * config/ia64/ia64.md: Purge unused unspecs.
6803         (movsi patterns): Allow moves to/from AR_M_REGS.
6804         (movdi patterns): Allow moves to/from p0.
6805         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
6806         (gr_spill, gr_restore): Indicate ar.unat read/written.
6807         (nonlocal_goto): Don't pass old frame_pointer.
6808         (nonlocal_goto_receiver): Remove.
6809         (exception_receiver): New.
6810         (builtin_setjmp_setup): New.
6811         (builtin_setjmp_receiver): New.
6812         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
6813         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
6814         (__ia64_restore_stack_nonlocal): Likewise.
6815         (__ia64_trampoline): New.
6816         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
6817         function.
6818         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
6819
6820 2000-08-08  Richard Henderson  <rth@cygnus.com>
6821
6822         * frame.h (ia64_frame_state): Add my_psp.
6823         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
6824         (__throw): Pass it in.  Don't clobber r7.
6825         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
6826         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
6827         and nothing to do with sp.
6828         (normalize_reg_loc): Use frame->my_psp.
6829         (frame_translate): Handle frame-pointer-less functions.  Set
6830         spill_base correctly, in absence of being told.
6831         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
6832         (__ia64_backtrace_helper): New sp argument.  Use
6833         builtin_return_address instead of label addresses.
6834         (print_record) [mem_stack_v]: No size member.
6835
6836 2000-08-08  Richard Henderson  <rth@cygnus.com>
6837
6838         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
6839
6840 2000-08-08  Richard Henderson  <rth@cygnus.com>
6841
6842         * tm.texi (LOCAL_REGNO): Document.
6843         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
6844         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
6845         * reload1.c (reload): Likewise when considering nonlocal labels.
6846
6847         * config/ia64/ia64.h (LOCAL_REGNO): New.
6848         * config/sparc/sparc.h (LOCAL_REGNO): New.
6849
6850 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6851
6852         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
6853
6854 2000-08-07  Nick Clifton  <nickc@redhat.com>
6855
6856         * config/mips/mips.c: Fix compile time warning messages.
6857         * config/mips/mips-protos.h: Add prototype for equality_op.
6858
6859         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
6860
6861 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
6862
6863         * mn10300.md: Use nonimmediate_operand instead of general_operand
6864         on output operands.
6865
6866         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
6867
6868 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
6869
6870         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
6871         * sh.c (expand_block_move): Break long lines.
6872         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
6873         * sh.md (mulsi3): Likewise.
6874         (movdi): Adjust spacing.
6875
6876 2000-08-07  Richard Henderson  <rth@cygnus.com>
6877
6878         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
6879         * expr.c (emit_group_store): Don't set it.
6880
6881 2000-08-07  Kazu Hirata  <kazu@hxi.com>
6882
6883         * invoke.texi (Options for Debugging Your Program or GCC): Remove
6884         duplicate entries for 'w' and 'z'.
6885
6886         * flow.c: Fix a comment typo.
6887
6888 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6889
6890         * c-parse.in: Changed the language string for Objective-C to "GNU
6891         Objective-C".
6892
6893 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6894
6895         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
6896         to improve the Posix thread support for Objective-C.
6897
6898 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
6899
6900         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
6901         CTI_UNSIGNED_PTRDIFF_TYPE.
6902         (signed_size_type_node): Define.
6903         (unsigned_ptrdiff_type_node): Define.
6904         * c-decl.c (init_decl_processing): Create the
6905         signed_size_type_node and unsigned_ptrdiff_type_node types.
6906         * c-common.c (T_SC): Define.
6907         (T_SST): Define.
6908         (T_UPD): Define.
6909         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
6910         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
6911         %s and %p.
6912         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
6913         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
6914         flags for %c, %s and %[.
6915         (check_format_info): Only allow leniency for signedness of targets
6916         of character pointers (when pedantic) for formats flagged with
6917         "c", so for strings but not for %hh formats.  When pedantic, don't
6918         allow character pointers to substitute for void pointers if a
6919         second level of indirection is present.
6920
6921 2000-08-06  Kazu Hirata  <kazu@hxi.com>
6922
6923         * invoke.texi (Options for Debugging Your Program or GCC): Update
6924         the names of dump files.
6925
6926         * h8300.c (dosize): Rearrange code for conciseness.
6927         (split_adds_subs): Likewise.
6928
6929         * loop.c: Fix formatting.
6930
6931         * dwarf2out.c: Fix formatting.
6932
6933         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
6934
6935         * expr.c: Fix formatting.
6936
6937 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6938
6939         * rs6000.c (rs6000_maybe_dead): Prototype.
6940
6941 2000-08-06  Richard Henderson  <rth@cygnus.com>
6942
6943         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
6944         HAVE_nonlocal_goto as well.
6945         * config/i960/i960.md (nonlocal_goto): Don't do it here.
6946         * config/pj/pj.md (nonlocal_goto): Likewise.
6947
6948 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
6949
6950         * loop.c (try_swap_copy_prop): New function.
6951         (load_mems): Rename copies to load_copies and add new regset
6952         store_copies.  Check for sets of shadow registers and mark
6953         in store_copies.   Call try_swap_copy_prop for registers
6954         marked in store_copies.
6955
6956 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6957
6958         * objc/objc-act.c: New command line option -fconstant-string-class
6959         to allow specifying a user defined constant string class,
6960         different from NXConstantString.
6961
6962         * toplev.c: Moved the Objective-C specific options to
6963         objc/lang-options.h.
6964
6965         * objc/lang-options.h: Moved the Objective-C specific options from
6966         toplev.c. Added -fconstant-string-class.
6967
6968 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
6969
6970         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
6971         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
6972         __CTOR_LIST__ from func_ptr array to just func_ptr, to
6973         avoid extra alignment imposed on arrays.
6974         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
6975         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
6976
6977         * mips.h: Clean up comments and spacing near MASKs.
6978         (TARGET_UNIX_ASM): Delete.
6979         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
6980         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
6981         values contiguous.
6982
6983 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
6984
6985         * c-common.c (print_char_table): Add entries for the X/Open '
6986         format flag (print decimals with locale's thousands grouping
6987         character).  Make %C expect wint_t.
6988         (check_format_info): If pedantic, warn when the %n$ operand
6989         number form is used.  Allow for the ' flag; warn about it if
6990         pedantic.
6991
6992 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
6993
6994         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
6995         type is a float mode, cfun->decl's return type is not, and
6996         TARGET_FLOAT_RETURNS_IN_80387.
6997
6998 2000-08-04  Andreas Schwab  <schwab@suse.de>
6999
7000         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
7001         token list, which are always `#' and `pragma'.
7002
7003 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
7004
7005         * tree.c (tree_expr_nonnegative_p): Move to...
7006         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
7007         (rtl_expr_nonnegative_p): New.
7008         * tree.h: Add prototype for rtl_expr_nonnegative_p.
7009
7010         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
7011         CONST_DOUBLE_CHAIN: Move to...
7012         * rtl.h: ...here.  Use XCINT/XCEXP.
7013
7014         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
7015         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
7016         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
7017         to VOL_FILES.
7018
7019         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
7020
7021 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7022
7023         * config/c4x/c4x.md (return_indirect_internal): New.
7024         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
7025
7026 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7027
7028         * c-common.c (time_char_table): Mark up formats added in C99 and
7029         make other corrections.  %D and %g were added in C99.  %Og is an
7030         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
7031         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
7032         C99 rather than GNU extensions, but %OG and %Oz are extensions.
7033         %h was added in C99.  %C was added in C99.  %OY and %OC are
7034         extensions.  Add the C99 format %F.
7035         (check_format_info): If pedantic and not in C99 mode, warn for C99
7036         formats, %E and %O.
7037
7038 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7039
7040         * function.c (schedule_fixup_var_refs): New function, broken out
7041         of put_reg_into_stack.
7042         (put_reg_into_stack): Use it.
7043         (put_var_into_stack): In CONCAT case, fixup up references for
7044         components only after fixing up references to the whole concat.
7045
7046 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
7047
7048         * alias.c (mark_constant_function): Use INSN_P.
7049         (init_alias_analysis): Likewise.
7050         * combine.c (combine_instructions): Use INSN_P.
7051         (can_combine_p): Likewise.
7052         (try_combine): Likewise.
7053         (distribute_notes): Likewise.
7054         (distribute_links): Likewise.
7055         * cse.c (cse_around_loop): Use INSN_P.
7056         (invalidate_skipped_block): Likewise.
7057         (cse_set_around_loop): Likewise.
7058         (cse_end_of_basic_block): Likewise.
7059         (delete_trivially_dead_insns): Likewise.
7060         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
7061         (unshare_all_rtl_1): Likewise.
7062         (next_cc0_user): Likewise.
7063         (try_split make_insn_raw): Likewise.
7064         (remove_unnecessary_notes): Likewise.
7065         * final.c (shorten_branches): Use INSN_P.
7066         (leaf_renumber_regs): Likewise.
7067         (leaf_renumber_regs_insn): Likewise.
7068         * flow.c (find_label_refs): Use INSN_P.
7069         (verify_wide_reg): Likewise.
7070         (notice_stack_pointer_modification): Likewise.
7071         (count_or_remove_death_notes): Likewise.
7072         (verify_flow_info): Likewise.
7073         (clear_log_links): Likewise.
7074         * function.c (fixup_var_refs_insns): Use INSN_P.
7075         (compute_insns_for_mem): Likewise.
7076         * gcse.c (alloc_gcse_mem): Use INSN_P.
7077         (compute_sets): Likewise.
7078         (compute_hash_table): Likewise.
7079         (classic_gcse): Likewise.
7080         (cprop): Likewise.
7081         (insert_insn_end_bb): Likewise.
7082         (delete_null_pointer_checks_1): Likewise.
7083         * global.c (expand_preferences): Use INSN_P.
7084         (build_insn_chain): Likewise.
7085         * graph.c (node_data): Use INSN_P.
7086         * haifa-sched.c (priority): Use INSN_P.
7087         (rm_line_notes): Likewise.
7088         (rm_other_notes): Likewise.
7089         (find_insn_reg_weight): Likewise.
7090         (init_target_units): Likewise.
7091         (schedule_block): Likewise.
7092         (compute_block_forward_dependences): Likewise.
7093         (debug_dependencies): Likewise.
7094         (set_priorities): Likewise.
7095         * integrate.c (function_cannot_inline_p): Use INSN_P.
7096         (save_parm_insns): Likewise.
7097         (copy_insn_list): Likewise.
7098         * jump.c (mark_all_labels): Use INSN_P.
7099         (never_reached_warning): Likewise.
7100         * lcm.c (optimize_mode_switching): Use INSN_P.
7101         * local-alloc.c (validate_equiv_mem): Use INSN_P.
7102         (memref_used_between_p): Likewise.
7103         (update_equiv_regs): Likewise.
7104         (block_alloc): Likewise.
7105         (no_conflict_p): Likewise.
7106         * loop.c (scan_loop): Use INSN_P.
7107         (find_and_verify_loops): Likewise.
7108         (count_loop_regs_set): Likewise.
7109         (loop_reg_used_before_p): Likewise.
7110         (strength_reduce): Likewise.
7111         (recombine_givs): Likewise.
7112         (check_dbra_loop): Likewise.
7113         (load_mems): Likewise.
7114         (try_copy_prop): Likewise.
7115         * print-rtl.c (print_rtx): Use INSN_P.
7116         * recog.c (find_single_use): Use INSN_P.
7117         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
7118         (next_flags_user): Likewise.
7119         (swap_rtx_condition): Likewise.
7120         * regmove.c (mark_flags_life_zones): Use INSN_P.
7121         (optimize_reg_copy_1): Likewise.
7122         (optimize_reg_copy_2): Likewise.
7123         (optimize_reg_copy_3): Likewise.
7124         (reg_is_remote_constant_p): Likewise.
7125         (fixup_match_2): Likewise.
7126         (regmove_optimize): Likewise.
7127         (fixup_match_1): Likewise.
7128         * regrename.c (build_def_use): Use INSN_P.
7129         (replace_reg_in_block): Likewise.
7130         (consider_use): Likewise.
7131         * reload.c (find_equiv_reg): Use INSN_P.
7132         * reload1.c (reload): Use INSN_P.
7133         (maybe_fix_stack_asms): Likewise.
7134         (calculate_needs_all_insns): Likewise.
7135         (reload_as_needed): Likewise.
7136         (emit_output_reload_insns): Likewise.
7137         (delete_address_reloads_1): Likewise.
7138         (reload_cse_regs_1): Likewise.
7139         (reload_combine): Likewise.
7140         (reload_cse_move2add): Likewise.
7141         * reorg.c (redundant_insn): Use INSN_P.
7142         (dbr_schedule): Likewise.
7143         * resource.c (find_dead_or_set_registers): Use INSN_P.
7144         (mark_target_live_regs): Likewise.
7145         * rtlanal.c (reg_used_between_p): Use INSN_P.
7146         (reg_referenced_between_p): Likewise.
7147         (reg_set_between_p): Likewise.
7148         (reg_set_p): Likewise.
7149         (single_set): Likewise.
7150         (multiple_sets): Likewise.
7151         (find_last_value): Likewise.
7152         (reg_set_last): Likewise.
7153         (find_reg_note): Likewise.
7154         (find_regno_note): Likewise.
7155         * sibcall.c (sequence_uses_addressof): Use INSN_P.
7156         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
7157         * ssa.c (find_evaluations): Use INSN_P.
7158         (rename_block): Likewise.
7159         (rename_equivalent_regs): Likewise.
7160         * unroll.c (loop_find_equiv_value): Use INSN_P.
7161         (set_dominates_use): Likewise.
7162         * varasm.c (mark_constant_pool): Use INSN_P.
7163         (mark_constants): Likewise.
7164         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
7165         (alphaev4_next_group): Likewise.
7166         (alphaev5_next_group): Likewise.
7167         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
7168         (c4x_rptb_rpts_p): Likewise.
7169         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
7170         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
7171         (rs6000_adjust_priority): Likewise.
7172         * config/sh/sh.c (sh_loop_align): Use INSN_P.
7173         (machine_dependent_reorg): Likewise.
7174         (split_branches): Likewise.
7175         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
7176
7177 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
7178
7179         * combine.c (recog_for_combine): Remove the old notes
7180         prior to attempting to recognize the new pattern.
7181         (distribute_notes): Ignore REG_NONNEG notes.
7182
7183 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
7184
7185         * varasm.c (output_constructor): Add .align 0 for packed vars.
7186
7187 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7188
7189         * configure.in: Use default thread_file even when enable_threads is
7190         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
7191         * configure: Rebuilt.
7192
7193         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
7194
7195 2000-08-04  Donn Terry (donnte@microsoft.com)
7196
7197         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
7198
7199 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
7200
7201         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
7202         Delete code that conditionally modifies 'version'.
7203         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
7204         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
7205         * gcc.c (main): Use it.
7206         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
7207         * prefix.c (update_path): Use it.
7208         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
7209         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
7210         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
7211         code.
7212         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
7213         (SUBTARGET_SWITCHES): Adjust.
7214         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
7215         defining.
7216         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
7217
7218 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7219
7220         * c-common.h (flag_isoc94): Declare.
7221         * c-decl.c (flag_isoc94): Define.
7222         (c_decode_option): Set flag_isoc94 as appropriate.
7223         * c-common.c (T_PD, T_IM, T_UIM): Define.
7224         (format_char_info): Add tlen and jlen.
7225         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
7226         %F.  Allow %lf.
7227         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
7228         %l[.
7229         (time_char_table): Add NULL entries for %t and %j.
7230         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
7231         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
7232         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
7233         precision.  Allow precision argument to be unsigned int.  If
7234         pedantic, warn for %p passed an argument not a pointer to possibly
7235         qualified void or a possibly qualified character type, and for
7236         pointer targets of the wrong sign, except for character pointers.
7237
7238 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7239
7240         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
7241         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
7242         (wint_type_node): Define.
7243         * c-decl.c (WINT_TYPE): Define.
7244         (init_decl_processing): Create the wint_type_node type.
7245         * c-common.c (T_WI): Define.
7246         (print_char_table): Use T_WI for %lc format.
7247
7248 2000-08-04  Bruce Korb  <bkorb@gnu.org>
7249
7250         * fixinc/:  Verified that the MSDOS patch does not break
7251         the UNIX functionality and applied the next three patches
7252         from July:
7253
7254 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
7255
7256         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
7257         output file with the temporary one by appending ".X" to generate
7258         the temporary fuile's name.  If the output file already has an
7259         extension, replace it with ".X".
7260
7261         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
7262         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
7263         reallocate the command buffer while copying the command-line
7264         argument.  Redirect the output directly to the temporary file,
7265         instead of going through another temporary file.
7266         (process): Close the temporary file before unlinking it.
7267         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
7268         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
7269         (run_compiles): Pass p_fixd argument to machine_matches, as it
7270         expects.
7271
7272         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
7273         environment, assume there are no symlinks in the include
7274         directory.  When cleaning up the DONE files, look for them
7275         case-insensitively.  Don't try to remove symlinks if they aren't
7276         there.
7277
7278         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
7279         all callers changed.  Declare pz "const char *", to avoid compiler
7280         warnings.
7281
7282         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
7283         Change prototype of make_raw_shell_str.
7284
7285 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
7286
7287         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
7288         (initialize) [__MSDOS__]: Use tempnam.
7289         (initialize): Don't use SIGPIPE if it is not defined.
7290
7291         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
7292         return stdout.
7293
7294 2000-07-25  Bruce Korb  <bkorb@gnu.org>
7295
7296         * fixinc/fix*.[ch]: substantially reworked to make it possible
7297         to run this program without using fork(2) or pipe(2) (i.e. in
7298         a DOS environment).
7299
7300 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7301
7302         * cppdefault.h (WINT_TYPE): Define.
7303         * cppinit.c (builtin_array): Define __WINT_TYPE__.
7304         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
7305         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
7306
7307 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
7308
7309         * (mips_legitimate_address_p): Don't allow register+offset
7310         if the offset is large and negative, and we are compiling
7311         for 64 bit registers.
7312
7313 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7314
7315         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
7316         insn_code_number + 1.
7317
7318 2000-08-04  Kazu Hirata  <kazu@hxi.com>
7319
7320         * h8300.c (function_prologue): Rearrange code for conciseness.
7321         (function_epilogue): Likewise.
7322         * h8300.h (OK_FOR_U): Fix formatting.
7323
7324         * cse.c: Fix a comment typo. Fix formatting.
7325
7326 2000-08-03  Richard Henderson  <rth@cygnus.com>
7327
7328         * config/i386/i386.md (return_indirect_internal): New.
7329         * config/i386/i386.c (ix86_expand_epilogue): Use it.
7330
7331 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
7332
7333         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
7334         before the name.
7335         (lex_line): Glue @ onto the beginning of identifiers and
7336         string constants, in Objective-C mode.
7337         (output_token, spell_token): Handle CPP_OSTRING.
7338         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
7339         beginning of a NAME or a STRING, in objc mode.
7340
7341         * cpplib.c (get_define_node): Do not permit identifiers that
7342         begin with @ to be #defined.
7343         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
7344         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
7345
7346         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
7347         * c-tree.h (build_objc_string): Delete prototype.
7348         * objc/objc-tree.def: Delete OBJC_STRING_CST.
7349         * c-lex.c (yylex): Use build_string for all three kinds of strings.
7350
7351         * c-parse.in, objc/objc-act.c: Update commentary.
7352
7353 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
7354
7355         * extend.texi: Fix typo in last change.
7356
7357         * extend.texi: Add commentary on statement-expressions and their
7358         interactions with C++.
7359
7360 2000-08-03  Nick Clifton  <nickc@cygnus.com>
7361
7362         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
7363         * dwarf.h (LANG_JAVA): Change value to 0x000b.
7364
7365 2000-08-03  Anthony Green  <green@cygnus.com>
7366
7367         * dwarf2out.c (gen_compile_unit_die): Add java language support.
7368         (add_bound_info): Check for java language.
7369         (is_java): New function.
7370         * dwarfout.c (output_compile_unit_die): Ditto.
7371         * dwarf.h (dwarf_source_language): Add java source language type.
7372         * dwarf2.h (dwarf_source_language): Ditto.
7373
7374 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7375
7376         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
7377         operands.
7378
7379         * i386.c (ix86_expand_branch): Mode of comparison in
7380         IF_THEN_ELSE is VOIDmode.
7381
7382 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
7383
7384         * gengenrtl.c, rtl.c: Avoid #elif.
7385
7386 2000-08-03  Michael Poole  <poole@troilus.org>
7387
7388         * tm.texi (Register Classes): Clarify order of sub-initializers
7389         in REG_CLASS_CONTENTS.
7390
7391 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7392
7393         From SAITOH Masanobu:
7394         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
7395
7396 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
7397
7398         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
7399         is not supported by tradcpp and isn't actually needed for cygwin.
7400
7401 2000-08-03  Kazu Hirata  <kazu@hxi.com>
7402
7403         * h8300.c: Fix a comment typo.
7404         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
7405
7406         * jump.c: Fix formatting.
7407
7408         * toplev.c: Fix formatting.
7409
7410 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
7411
7412         * flow.c (find_auto_inc): Verify that we've got a REG before
7413         peeking at its regno.  Fail, don't abort if we can't find
7414         the increment of the desired register.
7415
7416         * pa.md (shadd height reduction patterns/splitters): Remove.
7417
7418 2000-08-02  Jim Wilson  <wilson@cygnus.com>
7419
7420         * config/ia64/ia64-protos.h (flag_ssa): Declare.
7421         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
7422
7423 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
7424
7425         * dce.c: Remove all uses of assert.
7426         * dwarf2out.c: Likewise.
7427         * dwarfout.c: Likewise.
7428         * ssa.c: Likewise.
7429
7430 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7431
7432         * gcc.h (lang_specific_driver): Constify second argument.
7433         * gcc.c (translate_options, process_command, main): Likewise.
7434         Constify variables to match.  Cast second argument to
7435         pexecute.
7436
7437         * cppspec.c, gccspec.c: Adjust type of second argument to
7438         lang_specific_driver, and update code as necessary.
7439
7440 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
7441
7442         * loop.c (scan_loop): Ensure update_end label does not
7443         go away until reg_scan_update is run.
7444
7445 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7446
7447         * c-common.h: Prototype min_precision and c_build_qualified_type here...
7448         * c-tree.h: ... not here.
7449         * errors.h: Prototype fancy_abort.
7450
7451         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
7452         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
7453         * regrename.c (regrename_optimize): Make control flow explicit.
7454         (replace_reg_in_block): Initialize reg_use to 0.
7455
7456         * i386.c (legitimate_address_p): Rename error label to
7457         report_error to avoid namespace clash.
7458
7459 2000-08-02  Kazu Hirata  <kazu@hxi.com>
7460
7461         * fold-const.c: Fix formatting.
7462
7463 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7464
7465         * i386.c (legitimate_address_p): Accept other bases than
7466         pic_offset_table_rtx for GOTOFF constructs.
7467
7468 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7469
7470         * i386.md (shift to lea splitter): Use const_int_operand.
7471
7472 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7473
7474         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
7475         cppspec.c: Do not use 'legal' or 'illegal' in error messages
7476         and comments.
7477
7478         * cppmain.c (cb_define, cb_undef): Don't generate any output
7479         if not done_initializing.
7480         * cpplex.c (maybe_paste_with_next): When the token after a ##
7481         is an omitted rest argument, only delete the token before it
7482         if that token is a comma.  Do not warn about bogus token
7483         pastes for , ## rest_arg.
7484
7485         * cpp.texi: Update.
7486         * cpp.1: Regenerate.
7487
7488 2000-08-02  Fred Fish  <fnf@be.com>
7489
7490         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
7491         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
7492         and later.
7493
7494         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
7495         Be directories to search path.
7496
7497         Remove support for __declspec(dllimport) and __declspec(dllexport).
7498         This is leftover cruft from the earlier BeOS gcc port when BeOS
7499         used Microsoft's PE object file format.
7500         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
7501         * config/i386/t-beos (winnt.o): Remove Makefile frag.
7502         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
7503         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
7504         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
7505         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
7506         (REDO_SECTION_INFO_P): Remove.
7507         (ASM_EXPORT_DECL): Remove.
7508         (ASM_DECLARE_FUNCTION_NAME): Remove.
7509         (ASM_DECLARE_OBJECT_NAME): Remove.
7510         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
7511         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
7512         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
7513         (STRIP_NAME_ENCODING): Remove.
7514
7515         Remove support for obsolete version of BeOS that is no longer
7516         supported by Be.
7517         * configure.in (i*86-*-beospe*): Remove.
7518         * config/i386/beos-pe.h: Remove.
7519
7520 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
7521             Mark Mitchell <mark@codesourcery.com>
7522
7523         * Makefile.in (OBJS): Added dce.o.
7524         (ssa.o): Updated target to include ssa.h.
7525         (flow.o): Likewise.
7526         (toplev.o): Likewise.
7527         (dce.o): Created target.
7528         * basic-block.h: Added comments.
7529         (INVALID_BLOCK): Added definition.
7530         (connect_infinite_loops_to_exit): Added declaration.
7531         Moved SSA declarations to ssa.h.
7532         * flow.c: Added inclusion of ssa.h.
7533         (struct depth_first_search_dsS, depth_first_search_ds):
7534         Added definitions.
7535         (compute_immediate_postdominators): Added definition.
7536         (connect_infinite_loops_to_exit): Likewise.
7537         (flow_dfs_compute_reverse_init): Likewise.
7538         (flow_dfs_compute_reverse_add_bb): Likewise.
7539         (flow_dfs_compute_reverse_execute): Likewise.
7540         (flow_dfs_compute_reverse_finish): Likewise.
7541         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
7542         (LABEL_P): Added definition.
7543         (JUMP_P): Likewise.
7544         (NOTE_P): Likewise.
7545         (BARRIER_P): Likewise.
7546         (JUMP_TABLE_DATA_P): Likewise.
7547         (INSN_DEAD_CODE_P): Likewise.
7548         * ssa.c: Replaced inclusions with ssa.h inclusion.
7549         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
7550         (rename_registers): Removed unnecessary variables.
7551         * ssa.h: Created by moving declarations from ssa.c and
7552         basic-block.h.
7553         * timevar.def: Defined TV_DEAD_CODE_ELIM.
7554         * toplev.c: Added ssa.h inclusion.
7555         (dump_file_index): Added DFI_dce.
7556         (dump_file): Added "dce" entry.
7557         Defined flag_ssa.
7558         (f_options): Added dce entry.
7559         * invoke.texi: Document -fdce.  Emphasize experimental status of
7560         -fssa.
7561         * dce.c: New file.
7562
7563 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
7564
7565         * cpperror.c (v_message): Split into _cpp_begin_message and
7566         v_message macro.  All callers updated.
7567         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
7568         checks here.
7569
7570         * cppfiles.c (cpp_syshdr_flags): New function.
7571         (read_include_file): Don't call cpp_output_tokens.  Call
7572         enter_file hook.
7573         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
7574         (cpp_reader_init): Don't initialize token_buffer.  Call
7575         _cpp_init_internal_pragmas.
7576         (cpp_cleanup): Don't clear token_buffer.
7577         (cpp_start_read): Don't worry about output from -D processing.
7578         Don't call cpp_output_tokens.
7579         (cpp_finish): Don't dump macros here.  Don't call
7580         cpp_output_tokens.
7581         * cppmacro.c (_cpp_dump_definition): Rename
7582         cpp_dump_definition.  Write directly to a FILE *.
7583         (dump_funlike_macro): Delete.
7584         (dump_macro_args): New.
7585
7586         * cpplex.c (TOKEN_LEN): Convert to inline function.
7587         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
7588         cpp_scan_line, _cpp_dump_list): Delete.
7589         (cpp_printf, cpp_output_list): New.
7590         (output_line_command): Don't worry about entering or leaving files.
7591         (cpp_scan_buffer): Just output each token as we hit it.
7592         (process_directive): Don't call cpp_output_tokens.
7593         (_cpp_glue_header_name): Don't use token_buffer.
7594         (output_token, dump_param_spelling): Write directly to a FILE *.
7595
7596         * cpplib.c (pass_thru_directive, dump_macro_name,
7597         pragma_dispatch, do_pragma_gcc): Delete.
7598         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
7599         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
7600         functions.
7601         (do_error, do_warning, pragma_dependency): Call
7602         _cpp_begin_message, then cpp_output_list.
7603         (cpp_register_pragma, cpp_register_pragma_space,
7604         _cpp_init_internal_pragmas): New.
7605         (do_pragma): Walk the pragmas table here.
7606         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
7607         do_pragma_dependency): Return void.
7608         (do_pragma_implementation): Moved to cppmain.c.
7609
7610         * cpplib.h: Update prototypes.
7611          (struct cpp_reader): Remove printer, token_buffer,
7612         token_buffer_size, and limit.  Add struct cb, and pragmas.
7613         (struct cpp_printer): Remove last_id and written.
7614         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
7615         CPP_ADJUST_WRITTEN): Delete.
7616         * cpphash.h: Update prototypes.
7617         (ufputs): New wrapper.
7618
7619         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
7620         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
7621         (main): Set up callbacks.  Register #pragma implementation.
7622         Dump macros from here.
7623
7624 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
7625
7626         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
7627         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
7628         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
7629         insns if they have a REG_MAYBE_DEAD note attached.
7630         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
7631         (rs6000_emit_load_toc_table): TOC loads may go dead.
7632
7633 2000-08-01  Jim Wilson  <wilson@cygnus.com>
7634
7635         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
7636         type exists before using it.  Use number of words as alignment
7637         otherwise.
7638         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
7639         ia64_va_arg): Propagate ia64_function_args changes here.
7640
7641 2000-08-01  Richard Henderson  <rth@cygnus.com>
7642
7643         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
7644         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7645
7646 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
7647
7648         From Joern Rennecke:
7649         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
7650         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
7651         unless TARGET_SH3E is set.
7652         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
7653
7654         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
7655         (ashlsi3_std): New pattern.
7656         (ashlsi3 expander): Use it for TARGET_SH3.
7657         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
7658
7659 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7660
7661         * loop.c (canonicalize_condition):  Use destination, not source to
7662         determine SET's mode.
7663
7664 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
7665
7666         * flow.c (clear_log_links): Fix typo.
7667
7668 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
7669
7670         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
7671         on targets which need more than one insn for a compare/cbranch
7672         operation.
7673
7674 2000-07-31  Jim Wilson  <wilson@cygnus.com>
7675
7676         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
7677         when computing offset.
7678
7679 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
7680
7681         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
7682
7683 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
7684
7685         * flow.c (clear_log_links): Nuke global_live_at_start and
7686         global_live_at_end data, since if the log_links stuff is invalid
7687         so is global_live_at_*.
7688
7689 2000-07-31  Richard Henderson  <rth@cygnus.com>
7690
7691         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
7692
7693 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
7694
7695         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
7696         (_cpp_get_token): Don't macro expand a just pasted token if it
7697         was pasted at no_expand_level.
7698
7699 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7700
7701         * cppmacro.c (find_param, count_params, save_expansion):
7702         Permit 'defined' as a macro parameter name.
7703
7704 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7705
7706         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
7707         xcpp to cpp throughout.
7708         (native): Remove unnecessary dependency on cpp.
7709
7710         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
7711         tradcpp to tradcpp0.
7712         (.i spec): Add missing output-file spec to cc1 command line.
7713         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
7714
7715 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7716
7717         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
7718         (implicit_decl_warning): New function.
7719         (implicitly_declare): Use it.
7720         * c-typeck.c (build_external_ref): Use implicit_decl_warning
7721         to complain about implicit decls of builtins.
7722
7723         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
7724         based on pedantic && flag_isoc99, if not already set.
7725         * c-tree.h: Declare mesg_implicit_function_declaration.
7726         Prototype implicit_decl_warning.
7727
7728 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
7729
7730         * Makefile.in (ssa.o): Updated header files in dependences.
7731         * basic-block.h: Added compute_immediate_postdominators declaration.
7732         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
7733         definition.
7734         * flow.c (compute_immediate_dominators): Updated comment.
7735         (compute_immediate_postdominators): Added definition.
7736         * rtl.h (HARD_REGISTER_P): Added definition.
7737         * ssa.c: Include additional header files.
7738         (assert): Added definition.
7739         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
7740         include select hard registers.
7741         (ssa_rename_to_insert): Likewise.
7742         (ssa_rename_from_initialize): Likewise.
7743         (ssa_rename_from_lookup): Likewise.
7744         (original_register): Likewise.
7745         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
7746         include select hard reigsters.
7747         (ssa_rename_from_traverse): Likewise.
7748         (ssa_rename_from_free): Likewise.
7749         (ssa_rename_from_print): Likewise.
7750         (ssa_rename_from_print_1): Likewise.
7751         (ssa_rename_from_hash_function): Likewise.
7752         (ssa_rename_from_equal): Likewise.
7753         (ssa_rename_from_delete): Likewise.
7754         (simplify_to_immediate_dominators): Removed in favor of
7755         flow.c:compute_immediate_dominators.
7756         (find_evaluations_1): Modified to work with hard registers.
7757         (insert_phi_node): Likewise.
7758         (insert_phi_nodes): Likewise.
7759         (struct rename_set_data): Updated prev_reg comment.
7760         (create_delayed_rename): Modified to work with hard registers.
7761         (RENAME_NO_RTX): Updated comment.
7762         (apply_delayed_renames): Modified to work with hard registers.
7763         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
7764         (rename_block): Updated to use revised ssa_rename_to interface.
7765         (rename_registers): Updated to use revised ssa_rename_to and
7766         ssa_rename_from interface.
7767         (convert_to_ssa): Revised to use compute_immediate_dominators and
7768         deal with hard registers.
7769         (make_regs_equivalent_over_bad_edges): Modified to work with hard
7770         registers.  Added check for illegal unification of hard register.
7771         (make_equivalent_phi_alternatives_equivalent): Modified to work
7772         with hard registers.
7773         (compute_conservative_reg_partition): Likewise.
7774         (coalesce_if_unconflicting): Modified to work with hard registers
7775         and check for conflicting hard registers.
7776         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
7777         registers.
7778         (rename_equivalent_regs_in_insn): Modified to work with hard
7779         registers.
7780         (record_canonical_element_1): Added definition.
7781         (check_hard_regs_in_partition): Added definition.
7782         (convert_from_ssa): Added data structure deallocation and check
7783         for illegal hard register unification.
7784         (conflict_hard_regs_p): Added definition.
7785         * toplev.c (rest_of_compilation): Added comment.
7786
7787 2000-07-31  Anthony Green  <green@redhat.com>
7788
7789         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
7790
7791 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
7792
7793         * builtins.c (expand_builtin_apply): Don't defer pop during
7794         argument setup.
7795
7796 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7797
7798         * calls.c (combine_pending_stack_adjustment_and_call): Only use
7799         preferred_unit_stack_boundary when it is > 1.
7800
7801 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7802
7803         * c-common.c (init_function_format_info): Add C99 format functions
7804         in C99 mode.
7805
7806         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
7807         void' or 'register void' as being the special case of 'void' alone
7808         in a parameter list.
7809
7810         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
7811         discarding qualifiers into a plain warning.
7812
7813 2000-07-31  Kazu Hirata  <kazu@hxi.com>
7814
7815         * combine.c: Fix formatting.
7816
7817         * h8300.md: Fix formatting.
7818
7819         * local-alloc.c: Fix formatting.
7820
7821         * h8300.c (get_shift_alg): Remove the variable alg.
7822         (emit_a_shift): Rearrange code to improve readability.
7823
7824         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
7825
7826         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
7827         HImode on all architectures and a combination of HImode and SImode
7828         on H8/300H and H8/S.
7829
7830         * h8300.c (split_adds_subs): Rearrange code for conciseness.
7831
7832 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7833
7834         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
7835         in my last checkin.
7836
7837 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7838
7839         * recog.c (extract_insn): Set operand_mode according to
7840         operand if match_operand is VOIDmode.
7841
7842 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7843
7844         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
7845
7846 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
7847
7848         * c-parse.in (extdefs): Call ggc_collect between external
7849         definitions.
7850
7851 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
7852             Richard Henderson  <rth@cygnus.com>
7853
7854         * Makefile.in (OBJS): Add doloop.o.
7855         * doloop.c: New file.
7856
7857         * final.c (insn_current_reference_address): Return 0 before final.
7858         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
7859         * jump.c (any_uncondjump_p): Likewise.
7860         * loop.c (indirect_jump_in_function): Make static.
7861         (strength_reduce): Call doloop_optimize.
7862         (insert_bct, instrument_loop_bct): Remove.
7863         * loop.h (doloop_optimize): Prototype.
7864         * recog.c (split_all_insns): Split all INSN_P.
7865         * toplev.c (flag_branch_on_count_reg): Default on.
7866
7867         * config/c4x/c4x.c (c4x_optimization_options): Don't set
7868         flag_branch_on_count_reg.
7869         * config/i386/i386.c (override_options): Likewise.
7870         * config/rs6000/rs6000.c (optimization_options): Likewise.
7871
7872         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
7873         (doloop_end): New.
7874         (dbra_ge): Remove, as well as all it's splitters.
7875
7876         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
7877         (doloop_end): New.
7878
7879         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
7880         (ia64_register_move_cost): Declare.
7881         * config/ia64/ia64.c (ar_lc_reg_operand): New.
7882         (struct ia64_frame_info): Add ar_size.
7883         (ia64_compute_frame_size): Set it.
7884         (save_restore_insns): Save and restore ar.lc.
7885         (ia64_register_move_cost): New, moved from header file.  Handle
7886         application registers.
7887         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
7888         (emit_insn_group_barriers): Special case doloop_end_internal.
7889         (ia64_epilogue_uses): Mark ar.lc live at end.
7890         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
7891         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
7892         (FIRST_PSEUDO_REGISTER): Make room.
7893         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
7894         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
7895         (REG_ALLOC_ORDER): Update.
7896         (HARD_REGNO_MODE_OK): Update.
7897         (REGISTER_NAMES): Update.
7898         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
7899         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
7900         (REGNO_REG_CLASS): Update.
7901         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
7902         (REGISTER_MOVE_COST): Move out of line.
7903         (PREDICATE_CODES): Update.
7904         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
7905         (addsi3_plus1_alt, adddi3_plus1_alt): New.
7906         (shladd_elim splitter): Allow constants in the predicate.
7907         (doloop_end, doloop_end_internal): New.
7908
7909 2000-07-30  Richard Henderson  <rth@cygnus.com>
7910
7911         * genattrtab.c (struct insn_def): Add lineno member.
7912         (struct insn_ent): Likewise.
7913         (struct attr_desc): Likewise.
7914         (struct delay_desc): Likewise.
7915         (struct function_unit_op): Likewise.
7916         (struct function_unit): Likewise.
7917         (check_attr_value): Use message_with_line.
7918         (check_defs): Likewise.
7919         (expand_units): Likewise.
7920         (check_attr_test): Take a lineno argument.
7921         (gen_attr): Likewise.
7922         (gen_insn): Likewise.
7923         (gen_delay): Likewise.
7924         (gen_unit): Likewise.
7925         (main): Give it to them.
7926         (convert_set_attr_alternative): Take an insn_def argument
7927         instead of num_alt and insn_index.
7928         (convert_set_attr): Likewise.
7929         (write_test_expr): Protect INSN_ADDRESSES load
7930         with INSN_ADDRESSES_SET_P.
7931
7932 2000-07-30  Richard Henderson  <rth@cygnus.com>
7933
7934         * flow.c (init_propagate_block_info): Use pc_set.
7935
7936 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7937
7938         * i386.md (*lea_general_[123]) New insns and splits.
7939         (addsi3 to lea splitter): Handle other modes too.
7940         (shlsi3 to lea splitter): Likewise.
7941         (addhi_1_lea, shlhi_1_lea): New patterns.
7942         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
7943
7944 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7945
7946         * recog.c (general_operand, nonimmediate_operand): Accept
7947         any mode for VOIDmode CONSTANT_P operands.
7948
7949 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7950
7951         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
7952         instead of replace_rtx.
7953         * recog.c (validate_replace_rtx_subexp): New function.
7954         * recog.h (validate_replace_rtx_subexp): Declare.
7955
7956 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7957
7958         * combine.c (simplify_set, make_extraction, make_compound_operation
7959         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
7960         as force_to_mode argument.
7961
7962 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7963
7964         * combine.c (if_then_else_cond): Be sure that mode fits in
7965         HOST_WIDE_INT.
7966
7967 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7968
7969         * combine.c (record_promoted_value):  Allow bitsize of mode
7970         to be equivalent to HOST_BITS_PER_WISE_INT.
7971
7972 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7973
7974         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
7975         Do not call gen_mode_alignment when mode is BLKmode.
7976
7977 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7978
7979         * loop.c (express_from_1): Fix call of simplify_gen_binary.
7980
7981 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7982
7983         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
7984         VOIDmode implies both operands to be VOIDmode.
7985         (simplify_ternary_operation): Compute properly the mode of comparison.
7986         * combine.c (combine_simplify_rtx): Likewise.
7987
7988 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
7989
7990         * basic-block.h (struct loops): New field rc_order.
7991         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
7992         (flow_loops_free): Free rc_order.
7993         (flow_depth_first_order_compute): New parameter rc_order.
7994         (flow_loops_find): Allocate rc_order and swap usage with
7995         dfs_order.
7996
7997 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7998            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7999
8000         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
8001         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
8002         (nodb_call, return_from_epilogue): Likewise.
8003         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
8004         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
8005         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
8006         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
8007         (c4x_valid_type_attribute_p): Likewise.
8008         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
8009         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
8010
8011 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8012
8013         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
8014         and loadhi_big_constant if applicable.
8015         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
8016         and add new splitter.s
8017
8018 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8019
8020         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
8021
8022 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8023
8024         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
8025
8026 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8027
8028         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
8029
8030 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8031
8032         * config/c4x/libgcc.S (divqf3): Improve accuracy.
8033
8034 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
8035
8036         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
8037         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
8038         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
8039         (get_prev_bb_note): Likewise.
8040         (remove_scope_notes): Likewise.
8041         * flow.c (commit_one_edge_insertion): Likewise.
8042         (merge_blocks_nomove): Likewise.
8043         (verify_flow_info): Likewise.
8044         * gcse.c (insert_insn_end_bb): Likewise.
8045         * reg-stack.c (emit_swap_insn): Likewise.
8046         * ssa.c (first_insn_after_basic_block_note): New function.
8047         (insert_phi_node): Use it.
8048         (rename_block): Likewise.
8049         (eliminate_phi): Likewise.
8050         (make_regs_equivalent_over_bad_edges): Likewise.
8051         (make_equivalent_phi_alternatives_equivalent): Likewise.
8052         (for_each_successor_phi): Likewise.
8053         (convert_from_ssa): Modify phi-node deletion algorithm.
8054
8055 2000-07-29  Andreas Jaeger  <aj@suse.de>
8056
8057         * configure.in (mips*-*-linux*): Use mips*el to check for little
8058         endian MIPS, add tmake_file.
8059
8060         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
8061         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
8062         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
8063
8064 2000-07-28  Richard Henderson  <rth@cygnus.com>
8065
8066         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
8067         Sign extend mode size before negating.
8068
8069 2000-07-28  Richard Henderson  <rth@cygnus.com>
8070
8071         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
8072
8073 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
8074
8075         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
8076         (cse_insn): Likewise.
8077         (addr_affects_sp_p): Likewise.
8078         * expr.c (move_by_pieces): Likewise.
8079         (clear_by_pieces): Likewise.
8080         * gcse.c (oprs_unchanged_p): Likewise.
8081         * haifa-sched.c (sched_analyze_2): Likewise.
8082         * recog.c (offsettable_address_p): Likewise.
8083         * regclass.c (record_address_regs): Likewise.
8084         * reload.c (find_reusable_reload): Likewise.
8085         (push_reload): Likewise.
8086         (operands_match_p): Likewise.
8087         (decompose): Likewise.
8088         (find_reloads_address_1): Likewise.
8089         (find_inc_amount): Likewise.
8090         * reload1.c (elimination_effects): Likewise.
8091         * resource.c (mark_set_resources): Likewise.
8092         * flow.c (attempt_auto_inc): New function; mostly broken out
8093         of find_auto_inc.
8094         (find_auto_inc): Split into two functions and enhanced to
8095         generate POST_MODIFY.
8096         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
8097         * rtl.h (count_all_occurrences):  Declare.
8098         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
8099         defined.
8100         * rtlanal.c (count_all_occurrences): New function.
8101         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
8102         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
8103
8104         * config/ia64/ia64-protos.h (destination_operand): Declare.
8105         * config/ia64/ia64.c (destination_operand): New function.
8106         (ia64_print_operand): Handle POST_MODIFY.
8107         (rtx_needs_barrier): Likewise.
8108         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
8109         (HAVE_POST_MODIFY_REG): Define to 1.
8110         (MAX_REGS_PER_ADDRESS): Change to 2.
8111         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
8112         (LEGITIMATE_ADDRESS_REG): New helper macro.
8113         (LEGITIMATE_ADDRESS_DISP): Likewise.
8114         (PREDICATE_CODES): Add entry for destination_operand.
8115         * config/ia64/ia64.md (all mov patterns): Use destination_operand
8116         predicate for operand 0.
8117
8118 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8119
8120         * dwarf2out.c: Indent #error directive.
8121
8122         * gbl-ctors.h: Fix typo in comment.
8123         (__do_global_ctors): Prototype.
8124
8125         * gcse.c (record_one_set, pre_delete): Remove unused variables.
8126
8127         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
8128         (print_operand): Initialize variable `t'.
8129
8130 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
8131
8132         * config/arm/arm.md ("call_value"): removed constraints.
8133         Constraints are ignored in expanders.
8134         (*call_value_reg): split =rf into various constraints.
8135         (*call_value_mem): same
8136         (*call_value_symbol): same
8137         (*sibcall_value_insn): same
8138
8139 2000-07-28  Philipp Thomas  <pthomas@suse.de>
8140
8141         * install.texi (--enable-nls): Change the description of the NLS
8142         related configure options to match the current state.
8143         (--with-included-gettext): Likewise.
8144         (--enable-maintainer-mode): New description added.
8145         * extend.texi (-fstrict-prototype): Add missing '.'.
8146
8147 2000-07-27  Jim Wilson  <wilson@cygnus.com>
8148
8149         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
8150         DECL_INITIAL (decl) == NULL_TREE.
8151
8152 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
8153
8154         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
8155         on insn-attr.h with it.
8156         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
8157         * insn-addr.h: New header.
8158         (insn_addresses_): Renamed from insn_addresses.
8159         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
8160         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
8161         INSN_ADDRESSES_NEW): New macros.
8162         * genattrtab.c (write_test_expr): Use new macros.
8163         * final.c (insn_addresses, init_insn_lengths): Likewise.
8164         (align_fuzz, shorten_branches): Likewise.
8165         (final): Likewise.  Do not reject new insns if their addresses
8166         have been added to INSN_ADDRESSES.
8167         * config/arm/arm.c, config/avr/avr.c: Use new macros.
8168         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
8169         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
8170         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
8171         * config/sh/sh.c: Likewise.
8172         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
8173
8174         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
8175
8176 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
8177
8178         * gcc.c (struct prefix_list): Add member priority.
8179         (enum path_prefix_priority): Declare.
8180         (add_prefix): Replace ``first'' with ``priority''.  Append new
8181         entry but keep list in priority order.
8182         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
8183         PREFIX_PRIORITY_LAST to add_prefix.
8184         (process_command): Move include kludge - foo/stageN - to before
8185         foo/include.
8186
8187 2000-07-27  Jason Merrill  <jason@redhat.com>
8188
8189         * dwarf2out.c (gen_typedef_die): Abort if we get identical
8190         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
8191
8192 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
8193
8194         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
8195         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
8196
8197 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
8198
8199         * c-decl.c (finish_function): Don't treat 'main' specially unless
8200         flag_hosted.  In C99 mode, return 0 from 'main' unless
8201         DEFAULT_MAIN_RETURN is otherwise defined.
8202
8203         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
8204         parameters defaulting to int in an old-style function definition.
8205
8206 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8207
8208         * c-parse.in (string): For -Wtraditional, warn about string
8209         concatenation only once per line.
8210
8211 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
8212
8213         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
8214         for HI-UX/WE2 systems.
8215
8216 2000-07-24  Bruce Korb  <bkorb@gnu.org>
8217
8218         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
8219         defining the __xxx_TYPE__ macros.
8220         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
8221         * fixincl/fixlib.h: don't need to include "tm.h" anymore
8222         * fixincl/inclhack.def(type_map): now obsolete
8223
8224 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
8225
8226         * cpp.texi: Append a trailing full-stop to xrefs where needed.
8227
8228 2000-07-26  Dave Pitts  <dpitts@cozx.com>
8229
8230         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
8231         routine constants.
8232         (mvs_hash_alias): New function.
8233         (mvs_add_alias): Change argument spacing.
8234         (mvs_need_alias): Change aliasing criteria. Added documentation.
8235         (mvs_get_alias): Change to use hashed name. The hashed name prevents
8236         CSECT name collisions.
8237         (mvs_check_alias): Likewise.
8238         (handle_pragma): Change documentation.
8239         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
8240         mode from SImode to DImode.
8241         (iorhi3): Changed LTORG size for insn.
8242
8243 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
8244
8245         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
8246         mem if the address is a mode_dependent_address_p.
8247
8248 2000-07-26  Kazu Hirata  <kazu@hxi.com>
8249
8250         * h8300.c (print_operand): Print ":8" when the 'R' operand is
8251         suitable for 8-bit absolute.
8252         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
8253         (OK_FOR_U): Add a case for the 8-bit constant address on the
8254         H8/300H.
8255
8256 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
8257
8258         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
8259         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
8260         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
8261         lack of implemented alignment.
8262
8263 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
8264
8265         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
8266         cross-compiling between 64-bit and 32-bit machines.
8267
8268 2000-07-27  Richard Henderson  <rth@cygnus.com>
8269
8270         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
8271         (movhicc_astep, movhi_internal_astep): New.
8272         (movsicc_astep, movsi_internal_astep): New.
8273         (movdicc_astep, movdi_internal_astep): New.
8274         (movsfcc_astep, movsf_internal_astep): New.
8275         (movdfcc_astep, movdf_internal_astep): New.
8276         (movxfcc_astep, movxf_internal_astep): New.
8277         (cmovdi_internal_astep, cmovsi_internal_astep): New.
8278         Unify the cmov[ds]i splitters.
8279
8280 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
8281
8282         * real.c (asctoeg): Rename `error' label to unexpected_char_error
8283
8284 2000-07-26  Nick Clifton  <nickc@cygnus.com>
8285
8286         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
8287         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
8288
8289         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
8290         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
8291
8292 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
8293
8294         * c-decl.c (finish_enum): Convert enumerations that fit in an
8295         `int' to `int'.
8296         (build_enumerator): In pedantic mode, cast to `int' those that
8297         don't.
8298
8299 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
8300
8301         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
8302
8303 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8304
8305         * sh.md (cmpgtdi_t): Must be split.
8306         (cmpgtdi_t+1): New splitter.
8307
8308 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8309
8310         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
8311         warnings for indented directives even if we are skipping.
8312
8313 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
8314
8315         * invoke.texi (strict-prototypes): Remove.
8316         * extend.texi (Deprecated Features): Add strict-prototypes.
8317         (Backwards Compatibility): New node.
8318
8319 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8320
8321         * config/i386/i386.md (andsi_1+1): Allow HImode.
8322         (andsi_1+2): Require q_regs_operand.
8323
8324 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8325
8326         * config/i386/i386.md (call_pop): Check operands[0],
8327         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8328         (call): Likewise.
8329         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8330         (call_value): Likewise.
8331
8332 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8333
8334         * toplev.c (pipe_closed): Delete.
8335         (crash_signal): New.  Generate ICE for a fatal signal.
8336         (float_signal): Call crash_signal outside a float-handler
8337         block, not abort.
8338         (main): Install crash_signal as handler for core-dumping signals.
8339
8340 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
8341
8342         * rs6000.c (print_operand, case 'T'): New case.
8343
8344         * rs6000.md (call_indirect_aix32): Convert to expander of
8345         scheduled instructions.
8346         (call_indirect_aix64): Likewise.
8347         (call_value_indirect_aix{32,64}): Likewise.
8348         (call, call_value): Invoke expanders for AIX.  Fall through to
8349         matchers for SysV.
8350         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
8351         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
8352         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
8353         only "g" constraint.
8354         (call_nonlocal_aix64): Likewise.
8355         (call_value_nonlocal_aix{32,64}): Likewise.
8356         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
8357         operands.
8358         (call_value_nonlocal_sysv): New pattern.
8359         (indirect_jump{si,di}): Use new 'T' modifier.
8360         (tablejump{si,di} matchers): Likewise.
8361         (return_internal_{si,di}): Likewise.
8362         (return_eh_{si,di}): Likewise.
8363
8364 2000-07-24  Richard Henderson  <rth@cygnus.com>
8365
8366         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
8367         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
8368         * config/ia64/ia64.md (movdi_internal): Use it.
8369
8370 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
8371
8372         * cppexp.c: Warn about unary + if -Wtraditional.
8373         * cpplex.c (lex_line): Always set BOL on the first token of a line.
8374
8375 2000-07-24  Michael Meissner  <meissner@redhat.com>
8376
8377         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
8378         unsupported macro.
8379
8380 2000-07-24  Nick Clifton  <nickc@cygnus.com>
8381
8382         * config/arm/arm.c (emit_multi_reg_push): Generate a
8383         REG_FRAME_RELEATED_NOTE that is compatable with the code in
8384         dwarf2out_debug_frame_expr.
8385
8386 2000-07-24  Jason Merrill  <jason@redhat.com>
8387
8388         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
8389         UNALIGNED_INT_ASM_OP.
8390         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
8391         a location expression.
8392         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
8393         assume indirect access if we're saving the CFA address exactly.
8394
8395         * Makefile.in (bootstrap): Move -BstageN/ to the end.
8396
8397 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
8398
8399         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
8400         as well.
8401
8402 2000-07-24  Michael Meissner  <meissner@redhat.com>
8403
8404         * invoke.texi (D30V Options): Add d30v options.
8405
8406 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
8407
8408         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
8409         needed by our gcse pass anymore.
8410         (free_pre_mem): Corresponding changes.
8411         (compute_pre_data): Do not call compute_transpout anymore.
8412
8413         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
8414         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
8415         changes.
8416
8417         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
8418         (compute_pre_data): Do it here instead.
8419
8420         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
8421         'temp_bitmap'.
8422         (pre_delete): Corresponding changes.
8423
8424 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
8425
8426         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
8427         to figure out whether or not a variable has already been emitted.
8428
8429 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
8430
8431         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
8432         instead of gen_call.
8433
8434 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
8435
8436         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
8437
8438 2000-07-23  Kazu Hirata  <kazu@hxi.com>
8439
8440         * h8300.c: Fix formatting.
8441
8442 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
8443
8444         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
8445         for `long' switch expression into a plain warning.
8446
8447         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
8448         (yylex): Don't pedwarn for "inline" in C99 mode.
8449
8450         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
8451         with %p.
8452         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
8453         ggc_alloc): Likewise.
8454         * bb-reorder.c (dump_scope_forest_1): Likewise.
8455
8456 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
8457
8458         * reload.c (find_reloads_toplev): Add new parameter
8459         "address_reloaded".
8460         (find_reloads): Add new parameter to find_reloads_toplev calls.
8461
8462 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
8463
8464         * collect2.c (main): Typo fixed.
8465         * diagnostic.c: Typo fixed.
8466         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
8467         * eh-common.h: Typo fixed.
8468         * emit-rtl.c (start_sequence): Typo fixed.
8469         * flow.c (find_label_refs): Typo fixed.
8470         (calculate_global_regs_live): Typo fixed.
8471         (mark_regno_cond_dead): Typo fixed.
8472         (create_edge_list): Typos fixed.
8473         (verify_edge_list): Typo fixed.
8474         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
8475         * loop.c (strength_reduce): Typo in function name fixed.
8476         * rtl.h: Added comments.  Typo in function name fixed.
8477         * rtlanal.c: Typo in function name fixed.
8478         (insn_dependant_p): Rename to ...
8479         (insn_dependent_p): ... this.
8480         (computed_jumo_p): Typo fixed.
8481
8482 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8483
8484         * system.h (__FUNCTION__): Wrap definition in #ifndef.
8485
8486 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
8487
8488         * rs6000.h (SIZE_TYPE): Define.
8489
8490 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
8491
8492         * ssa.c (rename_insn_1): Don't rename registers that are
8493         CLOBBERed.
8494
8495 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
8496
8497         * diagnostic.c (trim_filename, fancy_abort): Moved here from
8498         rtl.c.
8499         (fatal_function, set_fatal_function): Removed.
8500         (fatal): Don't prepare for or call the fatal_function.
8501         (diagnostic_lock, error_recursion): New.
8502         (diagnostic_for_decl, report_diagnostic): Guard against
8503         re-entering the error reporting routines.
8504         (fancy_abort): Assume function is not NULL.
8505
8506         * errors.c (fancy_abort): New.  Assume function is not NULL.
8507         * tradcpp.c (fancy_abort): Assume function is not NULL.
8508
8509         * system.h: Provide default definition of __FUNCTION__.
8510         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
8511         Always use __FUNCTION__ in definition of abort.
8512         * tree.h: Likewise.
8513         * varray.h: Likewise.
8514         * toplev.h: Likewise.  Don't prototype set_fatal_function.
8515
8516 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
8517
8518         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
8519         in 64-bit mode.
8520         * glimits.h: Don't do #if defined for ARCH_PPC.
8521
8522         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
8523         constants of size no larger than a pointer should go in the TOC.
8524         Add 'MODE' parameter.
8525         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
8526         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
8527         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
8528         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
8529         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
8530         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
8531         (rs6000_legitimize_address): Likewise.
8532         (rs6000_emit_move): Likewise.
8533         (rs6000_select_rtx_section): Likewise.
8534         (output_toc): Deal properly with outputting small constants like
8535         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
8536         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
8537         MODE parameter.  Put small constants in the TOC.
8538
8539         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
8540         easy in SImode.
8541         (rs6000_emit_move): When reload calls us with an illegitimate
8542         address, exit early.  Move the change_address calls to one place
8543         at the end of the routine.  Merge the SImode and DImode expanders.
8544         When called by reload to put an integer into a FP register, force
8545         it to memory.
8546
8547         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
8548         field.
8549         (rs6000_hash_constant): Hash mode too.
8550         (toc_hash_function): Allow for key_mode.
8551         (toc_hash_eq): Structures are different if key_mode differs.
8552         (output_toc): Add 'mode' parameter.  Save key_mode.
8553         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
8554         Pass 'mode' parameter.
8555         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
8556
8557         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
8558         for vtable references.
8559
8560         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
8561         choice, don't put integer values in FP regs.
8562
8563 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
8564
8565         * flow.c (verify_flow_info): Revamp code to verify that the
8566         head and end of each basic block are in the insn chain.
8567
8568 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
8569
8570         * gcse.c (record_one_set): Prepend instead of append onto
8571         reg_set_table, making it O(n) instead O(n^2).
8572         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
8573         Use a queue instead of a stack as worklist.
8574
8575 2000-07-20  Kazu Hirata  <kazu@hxi.com>
8576
8577         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
8578         * h8300.h (OK_FOR_T): New.
8579         (EXTRA_CONSTRAINT): Support OK_FOR_T.
8580         * h8300.md: Use inc/dec.[wl] for increment/decrement
8581         by 1 and 2 in HI and SI modes.
8582
8583 2000-07-20  Jim Wilson  <wilson@cygnus.com>
8584
8585         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
8586         larger than 14 bits.
8587
8588 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
8589
8590         * cppmacro.c (CAN_PASTE_AFTER): New macro.
8591         (count_params): Don't set GNU_REST_ARGS on anything.
8592         (save_expansion): Set PASTE_LEFT only on tokens for which
8593         CAN_PASTE_AFTER is true, or which are named operators.
8594
8595         * cpplex.c (parse_args): Distinguish between a rest argument
8596         given one empty argument, and a rest argument given zero arguments.
8597         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
8598         deletion of previous token based on that.
8599         (get_raw_token): Flatten some control structure.
8600
8601         * cpplib.h (CPP_LAST_EQ): Correct.
8602         (VOID_REST): New token flag.
8603         (GNU_REST_ARGS): Delete.
8604
8605         * tradcpp.c (main): Don't munge -D options.
8606         (make_definition): Bring -D handling in line with cpplib.
8607         (do_define): Strip all leading whitespace from macro definitions.
8608
8609 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
8610
8611         * Makefile.in (tradcpp): Depend on intl.o and version.o.
8612
8613 2000-07-20  Bruce Korb  <bkorb@gnu.org>
8614
8615         * fixincl/check.tpl: strip the platform specific types before testing
8616         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
8617         * fixincl/fixincl.tpl: use platform specific types
8618         * fixincl/fixlib.h: include the platform specific types
8619         * fixincl/inclhack.def(gnu_types): don't supply the types
8620         * fixincl/fixincl.x: regen
8621
8622 2000-07-19  Jim Wilson  <wilson@cygnus.com>
8623
8624         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
8625         GR_REGS.
8626
8627 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
8628
8629         * tradcpp.c (rescan): Do not recognize directives when the #
8630         is indented.
8631
8632 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
8633
8634         Implement C++ named operators.
8635
8636         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
8637         of operators allowed in #if and having an _EQ variant.  Add
8638         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
8639         (cpp_token flags): Add NAMED_OP.
8640         (enum node_type): Add T_OPERATOR.
8641         (struct cpp_hashnode): Add code slot to value union.
8642         * cpphash.h (spec_nodes): Remove n_defined.
8643
8644         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
8645         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
8646         (is_macro_disabled): Tweak error messages.
8647
8648         * cpplib.c (get_define_node): Disallow all named operators as
8649         macro names.  Tweak error messages.
8650         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
8651
8652         * cppinit.c (builtin_array): Add entries for the named operators.
8653         * cppexp.c (lex): Check for CPP_DEFINED token.
8654         (priority table): Add entries for CPP_MIN and CPP_MAX.
8655         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
8656
8657 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
8658
8659         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
8660         larger than the array of cuids.
8661         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
8662         cuids.
8663
8664 2000-07-19  Bruce Korb  <bkorb@gnu.org>
8665
8666         * fixinc/fixincl.c:  Convert to using a table of environment variables
8667         and activate the auto-edit marker on the fixed output files.
8668         * fixinc/fixlib.h:  Define the environment table
8669         * fixinc/fixincl.sh: export the ${INPUT} dir
8670         * fixinc/check.tpl: likewise
8671
8672 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
8673
8674         * gcc.c (.h spec): Fix typo.
8675
8676 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
8677
8678         * Makefile.in: Fix tradcif.c path.
8679
8680 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
8681
8682         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
8683           macros, not five.
8684
8685         * cpphash.h (TOKEN_NAME): New macro.
8686         (_cpp_spell_operator): Deleted.
8687         (token_spellings): Now _cpp_token_spellings.
8688
8689         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
8690         * cpplex.c: Use OP and TK macros when expanding the
8691         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
8692         store the stringification of the enumeration name (CPP_CHAR,
8693         etc.) in the name slot of token_spellings.
8694         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
8695         token_spellings directly.
8696         * cpplib.c: Use TOKEN_SPELL.
8697
8698         * cpplex.c (_cpp_push_token): If the token being pushed back
8699         is the previous token in this context, just subtract one from
8700         context->posn.
8701         * cppmacro.c (save_expansion): Clear aux field when storing a
8702         placemarker.
8703
8704 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
8705
8706         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
8707         buffer, provided it is not NULL.
8708
8709 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
8710
8711         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
8712         case of invalid volatile re-declaration.
8713
8714 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
8715
8716         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
8717         (expand_call): Adjust caller.
8718
8719 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
8720
8721         * diagnostic.h (report_diagnostic): Change prototype.
8722
8723         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
8724         diagnostic_for_decl):  Change prototype.
8725         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
8726         error, warning, error_with_file_and_line,
8727         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
8728         Adjust call to report_diagnostic, diagnostic_for_decl.
8729         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
8730         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
8731
8732         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
8733         varaible argument list.
8734
8735 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
8736
8737         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
8738         moved to cppmacro.c.
8739         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
8740         dump_hash_helper): Delete.
8741         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
8742         cpp_forall_identifiers): New. Implement specialized version of
8743         Vlad's expandable hash table.
8744         (cpp_lookup): Use new functions.
8745         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
8746         implementation.
8747         * cppmacro.c: New file.
8748         * cppinit.c (dump_macros_helper): New.
8749         (cpp_finish): Iterate over the identifier table directly.
8750         * cpplex.c (parse_name): Calculate the hash of the identifier
8751         while we scan it.  Use _cpp_lookup_with_hash when we can.
8752
8753         * cpphash.h: Update prototypes.
8754         (xcnewvec, HASHSTEP): New helper macros.
8755         * cpplib.h: Update prototypes.
8756         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
8757         (cppmacro.o): New rule.
8758         (cpphash.o): Update deps.
8759
8760         * cppmain.c: Do not set pfile->printer if no_output is on.
8761
8762 2000-07-15  Neil Booth  <neilb@earthling.net>
8763
8764         * cpplib.c: Change all directive-handler functions to return
8765         void, not int.
8766         * cpphash.h: Update typedefs.
8767
8768 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
8769
8770         * configure: Regenerate.
8771
8772         * extend.texi (Extended Asm): Mention that a memory clobber
8773         does not count as a side-effect.
8774
8775         * unroll.c (copy_loop_body): Fix one instance of using host
8776         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
8777         cross-compile.
8778
8779         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
8780
8781 2000-07-17  Richard Henderson  <rth@cygnus.com>
8782
8783         * config/ia64/ia64.md (movdi): Split out load address code.
8784         New post-reload splitter for symbolic operands.
8785         (movdi_internal): Abort if we didn't split symbolic operands
8786         when we should have.
8787         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
8788         (ia64_reorg): Split insns when not optimizing.
8789         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
8790
8791 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8792
8793         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
8794         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
8795
8796 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
8797
8798         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
8799
8800 2000-07-17  Jason Merrill  <jason@redhat.com>
8801
8802         * Makefile.in (clean): Remove libgcc directory.
8803
8804         * configure.in (-Wno-long-long check): Use higher-level macros.
8805
8806 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
8807
8808         * simplify-rtx.c (simplify_binary_operation): Recognize
8809            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
8810         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
8811            a CONST_INT, it will always be zero.
8812
8813 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
8814
8815         * loop.c (check_dbra_loop) : Return if more than one condition is
8816         present to control the loop.
8817
8818 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
8819
8820         * mips.c (mips_expand_prologue): Don't calculate the last argument
8821         register unless we need it.  When we are calculating this, make
8822         sure FUNCTION_ARG is giving us a REG.
8823
8824 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8825
8826         * flow.c (libcall_dead_p): Use single_set to verify the insn
8827         has only one set and get for analysis.
8828         (propagate_one_insn): Don't pass the PATTERN of the insn.
8829
8830 2000-07-17  Mark Klein <mklein@dis.com>
8831
8832          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
8833
8834 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8835
8836         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
8837         * configure.in (TARGET_GETGROUPS_T): Evaluate.
8838         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
8839         of second argument of getgroups.
8840         * configure, config.in: Rebuilt.
8841
8842 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
8843
8844         * simplify-rtx.c (simplify_relational_operation): Two signed
8845         values with equal high words are less/greater than each other if
8846         their low words are less/greater when considered as unsigned.
8847
8848 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
8849
8850         * configure.in (vax-*-openbsd):  Change to new style configuration,
8851         add collect2/float_format information.
8852         * configure:  Rebuilt.
8853         * config/vax/openbsd1.h:  New.
8854         * config/vax/openbsd.h:  New.
8855         * config/vax/t-openbsd:  New.
8856
8857 2000-07-17  Chip Salzenberg  <chip@valinux.com>
8858
8859         * c-common.c (shorten_compare): Quiet warnings about unsigned
8860         comparisons with zero when they occur in a system header.
8861
8862 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
8863
8864         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
8865         update to describe current practice.
8866
8867         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
8868
8869         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
8870         references to C9X.  Change references to -fstd and -flang-isoc9x
8871         to refer to -std.
8872
8873         * c-common.c (scan_char_table): Allow "z" length modifiers on
8874         diouxXn formats.
8875         (check_format_info): Use TYPE_DOMAIN on the type matched against
8876         for "z" formats, to retrieve the language size_t rather than the
8877         internal one.
8878
8879         * c-common.c (check_format_info): Do not make a pedantic objection
8880         to the 'L' length modifier if used with a floating point type
8881         character.
8882
8883         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
8884         constants in C99 mode.
8885
8886 2000-07-17  Kazu Hirata  <kazu@hxi.com>
8887
8888         * h8300.md: Fix the format of mac.
8889         (movsi_h8300hs): Output a tab after stmac instead of a space.
8890
8891         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
8892         profitable adds/subs sequences.
8893
8894         * fold-const.c: Fix comment typos.
8895
8896 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
8897
8898         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
8899
8900 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8901
8902         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
8903
8904 2000-07-16  Neil Booth  <NeilB@earthling.net>
8905
8906         * cpplex.c: Update comments.
8907         * README.Portability: Small update.
8908
8909 2000-07-16  Neil Booth  <NeilB@earthling.net>
8910
8911         * README.Portability:  Small update.
8912
8913 2000-07-15  Richard Henderson  <rth@cygnus.com>
8914
8915         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
8916         * config/ia64/ia64.c (ia64_move_ok): New function.
8917         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
8918         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
8919
8920 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
8921
8922         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
8923         immediately following a paste operator.
8924         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
8925         (cpp_reader_init): Call it, if HOST_EBCDIC.
8926         (cpp_handle_options): Do not sort option list here.
8927         (handle_option): Rename to cpp_handle_option and export.
8928         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
8929         _cpp_get_token directly.
8930         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
8931         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
8932         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
8933         cpp_scan_line.
8934
8935 2000-07-15  Richard Henderson  <rth@cygnus.com>
8936
8937         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
8938         cast around an expression.  Tidy other unsigned tests.
8939
8940 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
8941
8942         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
8943         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
8944         (v_message_with_decl): Rename to ...
8945         (format_with_decl): ... this. Tweak
8946         (diagnostic_for_decl): New function.
8947         (fatal_io_error): Use verbatim in lieu of notice.
8948         (announce_function): Use verbatim.
8949         (default_print_error_function): Likewise.
8950         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
8951         infratructure.
8952
8953 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8954
8955         * mips.c (function_arg_pass_by_reference): Don't do automatic
8956         aggregate initialization.
8957         (machine_dependent_reorg): Initialize variable `mode'.
8958
8959         * mips.md (absdi2): Change variable `regno1' to unsigned int.
8960         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
8961         conflicts with sys/param.h macro of the same name.
8962         (reload_outdi): Likewise.
8963
8964 2000-07-15  Michael Meissner  <meissner@redhat.com>
8965
8966         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
8967         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
8968         create a new node instead.
8969
8970 2000-07-15  Neil Booth  <NeilB@earthling.net>
8971
8972         * README.Portability: Correct example about calling a function
8973         through a pointer to function.  Format wide paragraphs.
8974
8975 2000-07-15  Michael Meissner  <meissner@redhat.com>
8976
8977         * README.Portability: Update integer suffixes and function
8978         prototype sections.
8979
8980 2000-07-15  Neil Booth  <NeilB@earthling.net>
8981
8982         * README.Portability: Small update.
8983
8984 2000-07-15  Neil Booth  <NeilB@earthling.net>
8985
8986         * README.Portability: New file.
8987
8988 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
8989
8990         * INSTALL: Give special instructions for building GCC on Irix 6.
8991         * config/mips/x-iris6 (CC): Don't set it.
8992         (OLDCC): Likewise.
8993
8994 2000-07-14  Jason Merrill  <jason@redhat.com>
8995
8996         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
8997         register in the stack and later in another register, use the new
8998         register.
8999
9000 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
9001
9002         * config/mips/mips.md: (absdi2): Handle sign_extend for
9003         second operand.
9004
9005 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
9006
9007         * cpplib.c (do_pragma_dependency): Tidy warning messages.
9008
9009 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
9010
9011         * .cvsignore: Correct typo.
9012
9013 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
9014
9015         * .cvsignore: Add generated YACC files.
9016         * objc/.cvsignore: New file.
9017
9018 2000-07-14  Neil Booth  <NeilB@earthling.net>
9019
9020         * cpplex.c (adjust_column): New funcion.
9021         (skip_whitespace): Use it.
9022         (skip_block_comment): Use it, and warn about /*/* with
9023         -Wcomments.
9024
9025 2000-07-14  Neil Booth  <NeilB@earthling.net>
9026
9027         * cpphash.c (struct macro_info): Add new members.
9028         (_cpp_free_definition): Delete the macro directly.
9029         (count_params): Return void, with first token of
9030         expansion in struct macro_info on success.
9031         (parse_define): Return int.  Hoist syntax checking from
9032         save_macro_expansion.  Leave call to save_expansion to
9033         _cpp_create_definition.
9034         (alloc_macro): Needs just 2 arguments.
9035         (free_macro): Delete.
9036         (save_expansion): Don't perform syntax check.
9037         (_cpp_create_definition): Call save_expansion.
9038
9039 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9040
9041         * genrecog.c (write_header): Split long string.
9042
9043         * cpphash.c (macro_info): Don't use the `signed' keyword.
9044
9045         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
9046
9047 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
9048
9049         * calls.c (stored_args_map): New variable.
9050         (check_sibcall_argument_overlap_1): New.
9051         (check_sibcall_argument_overlap): New.
9052         (expand_call): Initialize stored_args_map.
9053         Call check_sibcall_argument_overlap.
9054
9055 2000-07-13  Bruce Korb  <bkorb@gnu.org>
9056
9057         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
9058         (emit_gnu_type): utility procedure for gnu_type_fix
9059         (gnu_type_fix): implement various pre-processor guards around
9060         standard types so these types can be defined over and over
9061         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
9062         types alluded to above will have GNU-compliant base types
9063         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
9064         * fixinc/inclhack.def: add test_text entries and utilize the new
9065         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
9066         * fixinc/fixincl.x: regenerate
9067
9068 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9069
9070         * diagnostic.c (vline_wrapper_message_with_location,
9071         v_message_with_file_and_line, v_error_with_file_and_file,
9072         v_error_for_asm, v_warning_for_asm, vfatal,
9073         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
9074         vsorry, verror, vwarning, vpedwarn): Remove.
9075         (diagnostic_for_asm): New function.
9076         (pedwarn, error, warning, pedwarn_with_file_and_line,
9077         error_with_file_and_line, warning_with_file_and_line, sorry,
9078         error_for_asm, warning_for_asm, fatal): Reimplement.
9079         (finish_diagnostic): Clear diagnostic info as well.
9080
9081 2000-07-13  Neil Booth  <NeilB@earthling.net>
9082
9083         * c-common.h (flag_digraphs): New.
9084         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
9085         * c-lex.c (yylex): Use flag_digraphs to decide whether to
9086         honour digraphs.
9087
9088 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
9089
9090         * gcc.c (do_spec_1): Add new %B operator.
9091         (set_input): Prepare for %B.
9092
9093         (link_command_spec): Move up with the other tm.h-
9094         overrideable specs.  Factor out the portion conditional on
9095         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
9096         (struct compiler): Just have a single spec string.  All users
9097         updated.
9098         (default_compilers): Remove unnecessary braces.
9099         (static_specs): Update.
9100
9101         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
9102         named specs.
9103         (C and assembly specs): Use the new named specs, as appropriate.
9104
9105         * objc/lang-specs.h: Use the new named specs.
9106         Remove unnecessary braces.
9107
9108 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9109
9110         * gcc.c (execute): If a subprocess gets a fatal signal, report
9111         strsignal() of the signal number, and ask for a bug report.
9112         Do not do this for SIGPIPE if there's already been an error.
9113
9114         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
9115         Delete pipe_closed.
9116
9117         * tradcif.c: Remove.
9118
9119 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9120
9121         * final.c (profile_function): Do not emit profile counters in
9122         the data section, if NO_PROFILE_COUNTERS is defined.
9123         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
9124         FUNCTION_PROFILER.
9125
9126         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
9127         (FUNCTION_PROFILER): Just emit a call to mcount.
9128
9129 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9130
9131         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
9132
9133         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
9134         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
9135         traditional, lang_chill, or lang_fortran.
9136
9137         * cppfiles.c: #undef strcmp to suppress warning about macros
9138         used without arguments.
9139         (_cpp_execute_include): Use f, not fname, in "No include path"
9140         error.
9141         (_cpp_pop_file_buffer): New function.
9142         * cpplib.c: Don't include <sys/mman.h>.
9143         (cpp_push_buffer): Set line_base and lineno in new buffer.
9144         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
9145
9146         * cpplex.c: Move all prototypes and structure declarations to the
9147         top of the file.  Properly parenthesise some macro arguments.
9148         (cpp_scan_line): New function.
9149         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
9150         don't need to walk up the stack counting.
9151
9152 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9153
9154         * c-common.c (combine_strings): Emit a pedantic warning when a
9155         string length is greater than the minimum ANSI C is required
9156         to support.
9157
9158 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
9159
9160         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
9161         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
9162
9163 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9164
9165         * c-decl.c (define_label): Warn about identifier conflicts with
9166         labels in traditional C.
9167
9168         * c-parse.in (unop +): Warn about the unary plus operator for
9169         traditional C.
9170
9171         * c-typeck.c (store_init_value): Warn about automatic aggregate
9172         initialization for traditional C.
9173
9174         * invoke.texi (-Wtraditional): Document new warnings.
9175
9176 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9177
9178         * Makefile.in (c-errors.o): Fix thinko in dependency.
9179
9180 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9181
9182         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
9183         -traditional, -ftraditional, or -traditional-cpp was given.
9184         Do not pass -traditional to the preprocessor.
9185         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
9186         preprocessor does it automatically.
9187         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
9188
9189         * ch/lang-specs.h: Always use tradcpp.  Do not pass
9190         -traditional, -trigraphs, or -pedantic to the preprocessor.
9191         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
9192         _LANGUAGE_FORTRAN.
9193
9194 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9195
9196         * cppexp.c (LOGICAL): Delete macro.
9197         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
9198         and && directly.
9199
9200         * cpphash.c (HASHSIZE): Increase to 4096.
9201         (struct hashdummy): Add hash field.
9202         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
9203         the string values using memcmp.
9204         (cpp_lookup): Set dummy.hash.
9205
9206 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
9207
9208         * configure.in (m88k-openbsd): Express configuration using new fragment
9209         style.
9210         * configure: Rebuilt.
9211         * m88k/aout-dbx.h: New.
9212         * m88k/openbsd.h: New.
9213         * m88k/xm-openbsd.h: New.
9214
9215 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9216
9217         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
9218
9219 2000-07-12  Richard Henderson  <rth@cygnus.com>
9220
9221         * reload.c (push_secondary_reload): Make sure to add the new
9222         reload at the end, after acquiring secondary memory.
9223
9224 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9225
9226         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
9227
9228         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
9229         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
9230
9231         * c-parse.in (stmt): Delete unused variables.
9232
9233         * convert.c (convert_to_vector): Likewise.
9234
9235         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
9236
9237         * tree.c (finish_vector_type): Prototype.
9238
9239 2000-07-12  Bruce Korb  <bkorb@gnu.org>
9240
9241         * fixinc/fixfixes.c: use xmalloc
9242         * fixinc/fixincl.c(initialize): set program name for xmalloc
9243         * fixinc/fixlib.c(must_malloc): obsolete
9244         (is_cxx_header): no longer used - disabled
9245         (skip_quote): inserted and disabled for future use
9246         * fixinc/fixlib.h: reflects above
9247         * fixinc/fixtests.c: removed dinkleberries
9248
9249 2000-07-12  Neil Booth  <NeilB@earthling.net>
9250
9251         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
9252         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
9253
9254         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
9255         struct toklist_dummy): New.
9256         (cpp_free_definition): Free macros with free_macro.
9257         (count_params): Don't save paramter spellings.  Save macro
9258         information in a struct macro_info.
9259         (parse_define): Don't allocate a token list.
9260         (save_expansion): Allocate the macro's token list, and
9261         save parameter spellings if necessary.  Use TOKEN_SPELL.
9262         (cpp_create_definition): Make list const.
9263
9264 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9265
9266         * c-typeck.c (pedwarn_c99): Move to
9267         * c-errors.c: ... Here.
9268         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
9269         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
9270         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
9271         (c-errors.o): List dependency.
9272
9273 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
9274
9275         * c-parse.c: Remove.
9276         * c-parse.h: Likewise.
9277         * c-parse.y: Likewise.
9278         * objc/objc-parse.c: Likewise.
9279         * objc/objc-pasre.y: Likewise.
9280
9281 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
9282
9283         * gcc.texi: Fix minor typos
9284         * extend.texi: Fix minor typos
9285
9286 2000-07-11  Marc Espie <espie@openbsd.org>
9287
9288         * collect2.c (main): Recognize .lo as object files.
9289
9290 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9291
9292         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
9293         true.
9294
9295         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
9296         with MAP_ANONYMOUS and MAP_ANON.
9297         * configure, config.in: Rebuilt.
9298
9299 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9300
9301         * diagnostic.c (save_output_state): Remove.
9302         (restore_output_state): Likewise.
9303         (clear_text_info): New function.
9304         (clear_diagnostic_info): Likewise.
9305         (output_text_length, is_starting_newline, output_prefix,
9306         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
9307         prefixing_policy, output_buffer_ptr_to_format_args): New macros
9308         (set_real_maximum_length, output_set_maximum_length,
9309         output_set_prefix, output_get_prefix, output_set_maximum_length,
9310         output_destroy_prefix, init_output_buffer,
9311         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
9312         output_add_newline, output_add_character, output_add_space,
9313         output_append_r, output_append, wrap_text, output_format,
9314         output_do_printf, output_printf, output_do_verbatim,
9315         output_verbatim, verbatim): Use them.
9316         (output_clear): Split into cleat_text_info and
9317         clear_diagnostic_info.
9318         (struct output_state): Move to...
9319
9320         * diagnostic.h: ...Here
9321         (struct output_buffer): Adjust.
9322
9323 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
9324
9325         * cpplex.c (parse_name): No longer inline (premature optimization).
9326         (do_pop_context): Fold into pop_context.
9327         (pop_context): Returns int.
9328         (lex_next): Hoist test for end of directive into pop_context.
9329         (push_macro_context): Returns int; takes just reader and token.
9330         Hoist test for excessive nesting to caller.
9331         (push_arg_context): Returns void; takes just reader and token.
9332         Do not call stringify_arg or get_raw_token.
9333         (get_raw_token): Convert tail recursion through push_arg_context
9334         to a loop at this level.  Call stringify_arg here if appropriate.
9335         (maybe_paste_with_next): Convert tail recursion to a while loop.
9336         Hoist test of paste_level to caller.
9337
9338         (stringify_arg): Push arg context at beginning.
9339         (cpp_get_token): Split out core into _cpp_get_token.  Call
9340         process_directive here.  Throw away CPP_PLACEMARKER tokens.
9341         (_cpp_get_token): Convert tail recursion through
9342         push_macro_context to a loop at this level.
9343         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
9344         _cpp_get_raw_token): Use _cpp_get_token.
9345         (_cpp_skip_rest_of_line): Drop the context stack directly; do
9346         not call pop_context.
9347         (_cpp_run_directive): Call lex_next directly.
9348
9349         * cpphash.h: Prototype _cpp_get_token.
9350         * cppexp.c (lex): Use it.
9351         * cpphash.c (parse_define): Use it.
9352         * cpplib.c (get_define_node, do_undef, parse_include,
9353         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
9354         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
9355         parse_ifdef, validate_else): Use it.
9356         (cpp_push_buffer): Tweak error message; abort if anyone tries
9357         to push a buffer while macro expansions are stacked.
9358
9359 2000-07-11  Donn Terry  <donnte@microsoft.com>
9360
9361         * cpplex.c (free_macro_args, save_token): Cast arg of free
9362         and/or xrealloc to PTR.
9363         (_cpp_init_input_buffer): Clear all fields of the base context.
9364
9365 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
9366
9367         * gensupport.c (process_rtx): Make rtl checking stop
9368         complaining about the define_insn while it is being
9369         converted from a define_insn_and_split.
9370
9371 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
9372
9373         * config/mips/mips.c (simple_memory_operand): Access the
9374         INTVAL of the address, not it's containing MEM.
9375
9376 2000-07-11  Bruce Korb  <bkorb@gnu.org>
9377
9378         * fixinc/fixtests.c(double_slash): obsolete
9379         (else_endif_label): likewise
9380         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
9381         (libc1_ifdefd_memx): correct initial comment
9382         and omit the #if/#endif pair from the memxxx declarations
9383         * fixinc/fixincl.x: regen
9384
9385 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9386
9387         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
9388
9389 2000-07-11  Neil Booth  <NeilB@earthling.net>
9390
9391         * cpp.texi: Update.
9392
9393 2000-07-11  Neil Booth  <NeilB@earthling.net>
9394
9395         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
9396         (handle_option): Set digraphs according to standard.
9397         Merge OPT_lang_c89 handler with OPT_std_c89.
9398
9399         * cpplex.c: (lex_line, can_paste): Honour digraphs in
9400         accordance with the digraphs flag.
9401
9402         * cpplib.h: (struct cpp_options): New option digraphs.
9403
9404 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
9405             Bruce Korb  <bkorb@gnu.org>
9406
9407         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
9408         * fixinc/fixincl.x: Regenerate.
9409         * fixinc/tests/base/testing.h: Add testcase.
9410
9411 2000-07-10  Richard Henderson  <rth@cygnus.com>
9412
9413         * config/ia64/ia64.c (got_symbolic_operand): New.
9414         (symbolic_operand, move_operand): Revert 0701 change.
9415         * config/ia64/ia64.h (PREDICATE_CODES): Update.
9416         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
9417         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
9418         split the offset into a 14-bit low part instead of a 13-bit low part.
9419         (load_fptr): Mark the mem as unchanging.
9420         (load_symptr): Use got_symbolic_operand.
9421
9422 2000-07-10  Nick Clifton  <nickc@cygnus.com>
9423
9424         * libgcc2.c (next_stack_level): Cast result of computation to
9425         (void **) so that the assignment does not generate a warning.
9426
9427 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
9428
9429         * flags.h : Add new variable flag_single_precision_constant.
9430         * toplev.c (display_help) : Add -fsingle-precision-constant option.
9431         (flag_single_precision_constant): New.
9432         * c-lex.c (yylex): Convert floating point constant to single
9433         precision constant.
9434         * invoke.texi : Add documentation for this new option.
9435
9436 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
9437
9438         * diagnostic.c (output_octal): Second parameter is unsigned.
9439         (output_long_octal): Likewise.
9440         (output_hexadecimal): Likewise.
9441         (output_long_hexadecimal): Likewise.
9442         (output_format): Adjust arguments extraction. Tweak.
9443         (output_verbatim, verbatim): End variable argument list.
9444         (report_diagnostic): Improve documentation.
9445
9446 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
9447
9448         * c-common.h (build_stmt): Declare.
9449         (build_continue_stmt): Likewise.
9450         (build_break_stmt): Likewise.
9451         (build_return_stmt): Likewise.
9452
9453         * c-decl.c (do_case): Rewrite to do what previously done in
9454         c-parse.in.
9455
9456         * c-semantics.c (build_stmt): Define.
9457         (build_return_stmt): Likewise.
9458         (build_break_stmt): Likewise.
9459         (build_continue_stmt): Likewise.
9460         (build_case_label): Likewise.
9461
9462         * c-parse.in (BREAK): Change to build tree, then generate RTL.
9463         (CONTINUE): Likewise.
9464         (RETURN): Likewise.
9465         (CASE): Likewise.
9466         (DEFAULT): Likewise.
9467
9468         * c-parse.y: Regenerate.
9469         * c-pasre.c: Likewise.
9470
9471 2000-07-09  Jason Merrill  <jason@redhat.com>
9472
9473         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
9474
9475         * tree.h (STRIP_NOPS): Check for error_mark_node.
9476         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
9477         (dwarf2out_*): Remove duplicate declarations.
9478
9479         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
9480         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
9481
9482 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
9483
9484         * diagnostic.c (wrap_text): New function.
9485         (maybe_wrap_text): Likewise.
9486         (output_add_string): Use it.
9487         (output_format): Likewise.
9488         (count_error): Use verbatim instead of notice.
9489         (report_error_function): Likewise. Don't use plain fprintf.
9490         (finish_diagnostic): New function.
9491         (output_do_verbatim): Tweak.  Commonalize functionalities in
9492         output_verbatim and verbatim.
9493         (output_verbatim): Adjust.
9494         (verbatim): Likewise.
9495         (report_diagnostic): Define.
9496
9497         * diagnostic.h (report_diagnostic): Prototype.
9498
9499 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
9500
9501         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
9502
9503 2000-07-09  Neil Booth  <NeilB@earthling.net>
9504
9505         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
9506         IShspace, ISspace: Update.
9507
9508         * cppinit.c: ISTABLE: Update.
9509         V: New.
9510
9511         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
9512         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
9513         (skip_block_comment, skip_line_comment, parse_string,
9514         lex_line): Use is_vspace rather than IS_NEWLINE.
9515         (skip_whitespace, lex_line): Clean up to use is_nvspace.
9516         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
9517         gets a BOL flag.
9518         (lex_next): Unconditionally stop if within a directive.
9519         Treat directives within macro invocations as directives
9520         (after parse_args emits error), not as the argument.
9521
9522 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
9523
9524         * diagnostic.c (diagnostic_args): New macro.
9525         (diagnostic_msg): Likewise.
9526         (output_formatted_integer): Likewise.
9527         (output_state): New data type.
9528         (digit_buffer): Make global.
9529         (output_add_integer): Rename to output_decimal. Squeeze
9530         digit_buffer.
9531         (output_long_decimal, output_unsigned_decimal,
9532         output_long_unsigned_decimal, output_octal, output_long_octal,
9533         output_hexadecimal, output_long_hexadecimal): New functions.
9534         (output_append_r): New function.
9535         (output_append): Tweak.
9536         (output_flush_on): Rename to output_to_stream.
9537         (output_format): Change prototype.  Improve documentation. Handle
9538         more format specifiers.
9539         (build_location_prefix): Rename to context_as_prefix.
9540         (output_notice): Rename to output_do_printf.
9541         (output_printf): Tweak.
9542         (line_wrapper_printf): Likewise.
9543         (vline_wrapper_message_with_location): Adjust call to renamed
9544         functions.
9545         (v_message_with_decl): Likewise.
9546         (default_print_error_function): Likewise.
9547         (save_output_state): New function.
9548         (restore_output_state): Likewise.
9549         (output_do_verbatim): Likewise.
9550         (output_verbatim): Define.
9551         (verbatim): Likewise.
9552
9553         * diagnostic.h (printer_fn): Change return type from void to int.
9554         Improve documentation.
9555         (output_add_integer): Rename to output_decimal.
9556         (output_flush_on, output_format): Don't export.
9557         (output_verbatim, verbatim): Declare.
9558
9559 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
9560
9561         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
9562         Check whether c divides op1 exactly if operation is not
9563         multiplication.
9564
9565 2000-07-08  Richard Henderson  <rth@cygnus.com>
9566
9567         * final.c (final): Do not abort when reg-stack introduces
9568         a new insn.
9569
9570 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
9571
9572         * cpplib.h (struct cpp_name): Now struct cpp_string.
9573         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
9574         CPP_HEADER_NAME): Change to type S.
9575         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
9576         field, a cpp_hashnode *.  All references to val.name updated
9577         to use val.str or val.node as appropriate.
9578         (struct cpp_reader): Add spec_nodes field.
9579         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
9580
9581         * cpphash.h (struct spec_nodes): New.
9582         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
9583         val.str.  All references to 'spelling > SPELL_NONE' updated to
9584         match.
9585
9586         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
9587         pfile->buffer->inc are not NULL before dereferencing them.
9588
9589         * cpplex.c (parse_name): Take a pointer to the current token,
9590         plus current position and limit as args; return the new
9591         position; don't copy the text of a name into the string
9592         buffer, instead call cpp_lookup and store the node pointer.
9593         If extending a token, copy out the text of the old into a
9594         scratch buffer, append the new, look that up and store the new
9595         node pointer.  Inline.
9596         (maybe_paste_with_next): If the result of paste is a NAME,
9597         then look up the pasted text and store its node pointer.
9598         (lex_line): Adjust for new parse_name interface.
9599         Check for L"str", L'str' using spec_nodes->n_L.
9600         (spell_token): SPELL_IDENT tokens have their spelling in
9601         val.node->name.  Handle SPELL_STRING tokens that don't have
9602         string delimiters.
9603         (_cpp_expand_name_space,
9604         (can_paste): Check for L ## "str" using spec_nodes->n_L.
9605         (cpp_get_token, special_symbol): No need to call cpp_lookup.
9606         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
9607         return 1=equal 0=not, not a tristate.
9608
9609         * cpphash.c (var_args_str): Delete.
9610         (find_param): Compare node fields directly.
9611         (is__va_args__): Use CPP_PEDANTIC.  Just compare
9612         token->val.node with spec_nodes->n__VA_ARGS__.
9613         (dump_funlike_macro): Don't use var_args_str.
9614
9615         * cpplib.c (_cpp_check_directive): Just walk through
9616         spec_nodes->dirs comparing pointers.
9617         (get_define_node, do_pragma_poison, detect_if_not_defined,
9618         parse_ifdef): The identifier has already been looked up.
9619         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
9620         node.
9621         (do_if): Only call detect_if_not_defined at beginning of file.
9622         (_cpp_parse_assertion): Only copy string pointers for
9623         SPELL_STRING tokens.
9624         (pragma_dispatch): Take a node pointer and examine its name
9625         field.
9626         (_cpp_init_stacks): Also initialize the spec_nodes structure.
9627
9628         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
9629         _cpp_init_macros.
9630         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
9631         reverse order from the corresponding _cpp_init_* routines.
9632
9633         * cppexp.c (parse_number, parse_charconst, parse_defined,
9634         lex): Check val.node->type instead of calling cpp_defined.
9635         Use spec_nodes entries where appropriate.
9636
9637         * fix-header.c, scan-decls.c: Update for interface changes.
9638
9639 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
9640
9641         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
9642         emitting aux_truncdfsf2.
9643
9644 2000-07-03  Donn Terry  (donnte@microsoft.com)
9645
9646         * cppinit.c (print_help): split overlong line into ISO C89
9647         maximum chunks.
9648
9649 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
9650
9651         * cppexp.c: Update all code for new lexer interface.
9652         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
9653         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
9654         * cpplex.c (token_names): Trim leading CPP_ from names; make
9655         the strings unsigned.
9656         (_cpp_spell_operator): New.
9657         (is_macro_disabled): Disable all macros if rescanning
9658         preprocessed text.
9659         (_cpp_get_directive_token): Remove.
9660
9661         * cppinit.c: Don't set no_macro_expand.
9662         * cpplib.c (read_line_number, do_line): Check only for EOF,
9663         not VSPACE.
9664         * cpphash.h: Update prototypes.
9665         * cpplib.h (CPP_VSPACE): Remove.
9666         (struct cpp_reader): Remove no_macro_expand.
9667
9668 2000-07-08  Neil Booth  <NeilB@earthling.net>
9669
9670         * cpphash.c (is__va_args__): New function.
9671         (count_params): Fix line reported in error messages.  Use
9672         is__va_args__.  Don't return ')' on error.  Flag GNU style
9673         rest args macro definitions.
9674         (parse_define): Check macro name is not __VA_ARGS__.
9675         (save_expansion): Check identifier in non-varargs-macro is
9676         not __VA_ARGS__.  Don't flag GNU_VARARGS.
9677         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
9678         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
9679          than per-token GNU_VARARGS.
9680         * cpplib.h (GNU_VARARGS): Remove.
9681         (GNU_REST_ARGS): New.
9682
9683 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9684
9685         * i386.md (call_pop, call, call_value_pop): Do not set
9686         current_function_uses_pic_offset_table for calls to static
9687         functions or indirect calls.
9688
9689 2000-07-07  Jim Wilson  <wilson@cygnus.com>
9690
9691         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
9692         is_predicate_reg, then take max write_count of register pair.
9693
9694 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9695
9696         * tradcpp.c (main): Rename label `include' to `add_include' to
9697         avoid conflicts with variable `include' in traditional C.
9698
9699 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
9700
9701         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
9702
9703 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
9704
9705         * sibcall.c (uses_addressof): Add INMEM argument, check for
9706         current_function_internal_arg_pointer outside of MEM rtxs in addition
9707         to ADDRESSOFs.
9708         (sequence_uses_addressof): Update caller.
9709
9710 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
9711
9712         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
9713         and friends.
9714
9715 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9716
9717         * system.h (UNION_INIT_ZERO): New macro for initializing union
9718         members in structs.
9719
9720         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
9721
9722 2000-07-07  Neil Booth  <NeilB@earthling.net>
9723
9724         * cpp.texi: Update.
9725
9726 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
9727
9728         * final.c (final): Detect out of bounds array access to
9729         the insn_lengths array.
9730
9731 2000-07-07  Kazu Hirata  <kazu@hxi.com>
9732
9733         * fold-const.c (fold): Fix a comment typo.
9734
9735 2000-07-07  Neil Booth  <NeilB@earthling.net>
9736
9737         * cpp.texi: Update to new lexer.
9738
9739 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
9740
9741         * tradcpp.c: New file.
9742         * tradcif.y: New file.
9743         * tradcif.c: New generated file.
9744
9745         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
9746         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
9747         dependencies of C.  Install tradcpp from install-common, in
9748         $(libsubdir).
9749
9750 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
9751
9752         * cppinit.c: Include cppdefault.h.  Refer to
9753         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
9754         to GCC_INCLUDE_DIR and its length.
9755         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
9756         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
9757         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
9758         cppdefault.h.
9759         (include_defaults_array): Move to cppdefault.c.
9760
9761         * cppdefault.h: New file.
9762         * cppdefault.c: New file.
9763
9764         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
9765         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
9766         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
9767         this file.
9768
9769 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9770
9771         * reload.c (push_reload): When seeing if can reuse a register,
9772         check extra registers against widest of INMODE and OUTMODE.
9773
9774 2000-07-06  Neil Booth  <NeilB@earthling.net>
9775
9776         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
9777         based on full length of predicate.
9778
9779 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
9780
9781         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
9782         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
9783
9784 2000-07-05  Kazu Hirata  <kazu@hxi.com>
9785
9786         * h8300-proto.h: Fix formatting.
9787         * h8300.c: Likewise.
9788         * h8300.h: Likewise.
9789
9790 2000-07-05  Jim Wilson  <wilson@cygnus.com>
9791
9792         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
9793         CCmode.
9794
9795 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
9796
9797         * invoke.texi: Fix minor typos
9798         * md.texi: Fix minor typos
9799
9800 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
9801
9802         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
9803
9804 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
9805
9806         * cpplex.c: Don't include sys/mman.h.
9807         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
9808
9809         * cpplib.c: Include sys/mman.h and obstack.h.
9810         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
9811         obstack.
9812         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
9813         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
9814         bother freeing if stack entries (they will be freed with their buffer).
9815         (do_endif): Free if stack entries from the buffer obstack.
9816         (push_conditional): Allocate if stack entries from the buffer obstack.
9817
9818         (find_answer): Rename to _cpp_find_answer.
9819         (do_assert, do_unassert): Update.
9820
9821         * cpphash.h: Update prototypes.
9822         (xobnew): New convenience macro.
9823         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
9824         Update comments.
9825         (struct cpp_hashnode): Remove disabled field.
9826
9827         * cppinit.c: Don't include hashtab.h or splay-tree.h.
9828         (report_missing_guard): Moved to cppfiles.c.
9829         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
9830         cpp_init_includes.
9831         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
9832         cpp_cleanup_includes.  Don't destroy hashtab or
9833         all_include_files here.
9834         (cpp_finish): Use _cpp_report_missing_guards.
9835
9836         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
9837         (_cpp_init_include_table): Rename _cpp_init_includes.
9838         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
9839
9840         * cppexp.c (parse_assertion): Update for new name of
9841         find_answer.
9842
9843         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
9844
9845 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
9846
9847         * cpplib.c (do_ident): s/VSPACE/EOF/
9848
9849 2000-07-05  Neil Booth  <NeilB@earthling.net>
9850
9851         * cpplex.c: Fix trigraph replacement within strings.
9852
9853 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9854
9855         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
9856
9857         * xcoffout.c (assign_type_number): Constify.
9858         (xcoffout_source_file): Add static prototype.  Don't needlessly
9859         cast away const-ness.
9860
9861 2000-07-04  Jason Merrill  <jason@redhat.com>
9862
9863         * frame.h (frame_state): Move base_offset to end.
9864
9865 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
9866
9867         * calls.c (emit_library_call_value_1): Revert previous change.
9868
9869 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
9870
9871         * fix-header.c (struct partial_proto): Remove unnecessary fields.
9872         (recognized_extern, recognized_function, read_scan_file):
9873         Update for new scheme.
9874         (check_protection): It's still a multiple include guard even
9875         if it doesn't always trigger.
9876         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
9877         new scheme.
9878         * scan.h: Declare struct cpp_token.  Update prototypes.
9879
9880 2000-07-03  Neil Booth  <neilb@earthling.net>
9881             Zack Weinberg  <zack@wolery.cumb.org>
9882
9883         Complete overhaul of the lexer and macro expander.
9884
9885         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
9886         arg, arglist, argdata, reflist, collect_objlike_expansion,
9887         collect_funlike_expansion, collect_params,
9888         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
9889         unsafe_chars, macarg, compare_defs, special_symbol,
9890         scan_arguments, stringify, funlike_macroexpand,
9891         _cpp_quote_string, monthnames): Delete.
9892         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
9893         _cpp_create_definition, _cpp_dump_definition,
9894         dump_hash_helper): Adjust.
9895         (find_param, count_params, parse_define, var_args_str,
9896         check_macro_redefinition, save_expansion): New.
9897
9898         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
9899         parse_string, output_line_command, trigraph_replace,
9900         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
9901         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
9902         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
9903         _cpp_skip_rest_of_line): Modify.
9904
9905         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
9906         find_position, null_warning, bump_column, expand_name_space,
9907         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
9908         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
9909         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
9910         _cpp_prescan): Delete.
9911
9912         (dump_param_spelling, process_directive, lex_next,
9913         is_macro_disabled, stringify_arg, expand_context_stack,
9914         output_token, make_string_token, alloc_number_token,
9915         special_symbol, duplicate_token, maybe_paste_with_next,
9916         can_paste, prevent_macro_expansion, restore_macro_expansion,
9917         get_temp_token, release_temp_tokens, quote_string,
9918         token_names, token_spellings, _cpp_expand_name_space,
9919         _cpp_glue_header_name, _cpp_reserve_name_space,
9920         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
9921         placemarker_token, eof_token, cpp_context, macro_args,
9922         get_raw_token, parse_arg, parse_args, save_token,
9923         push_arg_context, push_macro_context, pop_context,
9924         do_pop_context, free_macro_args, _cpp_get_line,
9925         _cpp_run_directive): New.
9926
9927         * cpplib.c (validate_else, parse_include, push_conditional,
9928         pass_thru_directive, read_line_number, parse_ifdef,
9929         detect_if_not_defined, _cpp_check_directive, do_define,
9930         do_undef, do_include, do_import, do_include_next, do_error,
9931         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
9932         top_pragmas, do_pragma_gcc, do_pragma_implementation,
9933         do_pragma_poison, do_pragma_system_header,
9934         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
9935         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
9936         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
9937         cpp_defined): Update for new scheme.
9938         (strtoul_for_line, get_define_node, dump_macro_name,
9939         _cpp_check_linemarker, _cpp_parse_assertion): New.
9940         (_cpp_handle_directive, do_pragma_default): Delete.
9941
9942         * cpphash.h (struct predicate): Now struct answer.
9943         (enum spell_type, struct token_spelling, struct directive,
9944         directive_handler): New.
9945         Update prototypes.  Remove unused macros.
9946         * cpplib.h: Update prototypes.  Remove unused macros,
9947         structure definitions, and fields.
9948
9949         * cpperror.c (print_containing_files, v_message): Adjust.
9950         * cppexp.c (parse_assertion, lex, parse_escape,
9951         _cpp_parse_expr): Adjust.
9952         * cppfiles.c (open_include_file, _cpp_execute_include,
9953         _cpp_compare_file_date, cpp_read_file, read_include_file):
9954         Adjust.
9955         * cppinit.c (dump_special_to_buffer): Delete.
9956         (append_include_chain, merge_include_chains, cpp_reader_init,
9957         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
9958         cpp_finish, handle_option, print_help): Adjust.
9959         * cppmain.c (main): Adjust.
9960
9961 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
9962
9963         * cppspec.c (lang_specific_driver): Use double quotes in error
9964         message.
9965
9966 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
9967
9968         * calls.c (emit_library_call_value_1): Use valreg instead
9969         of hard_libcall_value.
9970
9971 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
9972
9973         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
9974         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
9975         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
9976         (movhi): Likewise.
9977         (movqi): Likewise.
9978         (movdf): Likewise.
9979         (movsf): Likewise.
9980         (movdi): Likewise.
9981         (movti): Likewise.
9982
9983         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
9984         mode instead of wider_mode is being used.
9985
9986 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
9987
9988         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
9989         of 'r'. Use q_regs_operand.
9990         (andsi_1+2): Use q_regs_operand.
9991
9992 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
9993
9994         * builtins.c (get_memory_rtx): Always put into alias set 0.
9995
9996 2000-07-03  Nick Clifton  <nickc@cygnus.com>
9997
9998         * config/arm/arm.md: Fix post increment and pre increment
9999         peepholes so that they do not generate UNPREDICATBLE opcodes.
10000         (ie ones where the increment clobbers the source/destination).
10001
10002 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
10003
10004         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
10005         change too big for -mtiny-stack" a warning, if larger than 63.
10006         (out_set_stack_ptr): Change the logic so -mno-interrupts is
10007         always safe to use on possible future devices.
10008         (function_prologue): Write SPH before SPL, for consistency.
10009         If interrupt_func_p true, we know we have enabled interrupts.
10010         (avr_num_arg_regs): New function.  Round up to even number of
10011         bytes if no -mpack-args or if calling a libgcc function.
10012         (function_arg, function_arg_advance): Use it.
10013         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
10014         Output "movw" if available.
10015         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
10016         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
10017         (asm_output_section_name): Add blanks for consistent output.
10018         (encode_section_info): Set TREE_READONLY for progmem data to
10019         avoid gas warnings about changed section attributes.
10020         (avr_hard_regno_mode_ok): Force non-QImode data to start in
10021         even numbered registers on devices with "movw".
10022         * config/avr/avr.h (MASK_*): Define bits for target_flags.
10023         (TARGET_SWITCHES): Mark help strings for translation.
10024         Add new -mpack-args and -menhanced switches.
10025         (TARGET_OPTIONS): Mark help strings for translation.
10026         (progmem_section): Add section attributes.
10027         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
10028         Output "movw" if available.
10029         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
10030         New patterns.
10031         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
10032         call convention (arguments aligned on even registers).
10033         (_cleanup, _exit): Make weak symbols libc can override.
10034
10035 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10036
10037         * fp-bit.h: New file.
10038
10039         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
10040         Comment #endif statements.
10041         (__thenan_sf, __thenan_df): Add missing braces around initializer.
10042
10043 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
10044
10045         * gcse.c (compute_pre_data): Compute ae_kill using other local
10046         properties instead of calling compute_ae_kill.
10047
10048         * alias.c (init_alias_analysis): Do not call
10049         prologue_epilogue_contains until after reload has completed.
10050
10051 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
10052
10053         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
10054         (genrtl_finish_compound_stmt): Likewise.
10055         (genrtl_compound_stmt): Change to return void.
10056
10057         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
10058         move code from here to ...
10059         (genrtl_compound_stmt): ... here.
10060         (genrtl_finish_compound_stmt): Remove.
10061         (expand_stmt): Add comment.
10062
10063 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
10064
10065         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
10066         and VOID_TYPE_P.
10067
10068 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
10069
10070         * cpplib.h (struct cpp_reader): New field include_depth.
10071         (struct cpp_printer): Rename last_bsd to last_id.
10072         * cppfiles.c (read_include_file): Bump include_depth.
10073         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
10074         (output_line_command): Output correct #line if a header
10075         is including itself and is not protected against multiple inclusion.
10076         Use include_depth instead of buffer_stack_depth, last_id instead of
10077         last_bsd.
10078         * cppinit.c (cpp_start_read): Initialize last_id instead of
10079         last_bsd.
10080
10081 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
10082
10083         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
10084         (c-semantics.o): New target.
10085
10086         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
10087         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
10088         (genrtl_clear_out_block): Likewise.
10089         (genrtl_goto_stmt): Likewise.
10090         (genrtl_expr_stmt): Likewise.
10091         (genrtl_decl_stmt): Likewise.
10092         (genrtl_if_stmt): Likewise.
10093         (genrtl_while_stmt): Likewise.
10094         (genrtl_do_stmt): Likewise.
10095         (genrtl_return_stmt): Likewise.
10096         (genrtl_for_stmt): Likewise.
10097         (genrtl_break_stmt): Likewise.
10098         (genrtl_continue_stmt): Likewise.
10099         (genrtl_scope_stmt): Likewise.
10100         (genrtl_switch_stmt): Likewise.
10101         (genrtl_case_label): Likewise.
10102         (genrtl_begin_compound_stmt): Likewise.
10103         (gerntl_finish_compound_stmt): Likewise.
10104         (genrtl_compound_stmt): Likewise.
10105         (genrtl_asm_stmt): Likewise.
10106         (genrtl_decl_cleanup): Likewise.
10107         (DECL_ANON_UNION_ELEMS): Likewise.
10108         (emit_local_var): Likewise.
10109         (make_rtl_for_local_static): Likewise.
10110         (expand_cond): Likewise.
10111         (expand_stmt): Likewise.
10112         (c_expand_return): Likewise.
10113         (c_expand_start_case): Likewise.
10114         (do_case): Likewise.
10115         (COMPOUND_STMT_NO_SCOPE): Likewise.
10116         (c_expand_asm_operands): Likewise.
10117         (NEW_FOR_SCOPE_P): New macro.
10118         (expand_expr_stmt_fn): New type.
10119
10120         (set_current_function_name_declared): Likewise.
10121         (current_function_name_declared): Likewise.
10122         (lang_expand_stmt): Likewise.
10123         (stmts_are_full_exprs_p): Likewise.
10124         (anon_aggr_type_p): Likewise.
10125         (lang_expand_expr_stmt): Likewise.
10126         (build_case_label): Likewise.
10127
10128         * c-decl.c (lang_expand_expr_stmt): Initialize.
10129         (stmts_are_full_exprs_p): Define.
10130         (current_function_name_declared): Likewise.
10131         (do_case): Likewise.
10132         (lang_expand_stmt): Likewise.
10133         (set_current_function_name_declared): Likewise.
10134         (anon_aggr_type_p): Likewise.
10135
10136         * c-semantics.c: New file.
10137         (expand_cond): Moved from cp/semantics.c.
10138         (genrtl_do_pushlevel): Likewise.
10139         (genrtl_clear_out_block): Likewise.
10140         (genrtl_goto_stmt): Likewise.
10141         (genrtl_expr_stmt): Likewise.
10142         (genrtl_decl_stmt): Likewise.
10143         (genrtl_if_stmt): Likewise.
10144         (genrtl_while_stmt): Likewise.
10145         (genrtl_do_stmt): Likewise.
10146         (genrtl_return_stmt): Likewise.
10147         (genrtl_for_stmt): Likewise.
10148         (genrtl_break_stmt): Likewise.
10149         (genrtl_continue_stmt): Likewise.
10150         (genrtl_scope_stmt): Likewise.
10151         (genrtl_switch_stmt): Likewise.
10152         (genrtl_case_label): Likewise.
10153         (genrtl_begin_compound_stmt): Likewise.
10154         (genrtl_finish_compound_stmt): Likewise.
10155         (genrtl_compound_stmt): Likewise.
10156         (genrtl_asm_stmt): Likewise.
10157         (genrtl_decl_cleanup): Likewise.
10158         (make_rtl_for_local_static): Moved from cp/decl.c.
10159         (emit_local_var): Likewise.
10160         (expand_stmt): Define.
10161
10162         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
10163         (c_expand_return): Likewise.
10164         (c_expand_start_case): Likewise.
10165
10166 2000-07-01  Richard Henderson  <rth@cygnus.com>
10167
10168         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
10169         with the low 13 bits set.
10170         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
10171         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
10172         of the low 13 bits into a CONST plus an adddi3.
10173         (load_symptr): Set RTX_UNCHANGING_P.
10174
10175 See ChangeLog.3 for earlier changes.