OSDN Git Service

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