OSDN Git Service

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