OSDN Git Service

* haifa-sched.c (schedule_block): Provide empty source statement
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-12-20  Robert Lipe <robertlipe@usa.net>
2
3         * haifa-sched.c (schedule_block): Provide empty source statement
4         if not MD_SCHED_REORDER2.
5
6 2000-12-20  Richard Henderson  <rth@redhat.com>
7
8         * rtl.h (REG_NON_LOCAL_GOTO): New.
9         * rtl.c (reg_note_name): Update.
10         * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note.
11         * builtins.c (expand_builtin_longjmp): Likewise.
12         * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do
13         not emit an edge.
14
15 2000-12-20  Marek Michalkiewicz  <marekm@linux.org.pl>
16
17         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r):
18         Do not output undefined opcodes where source or destination register
19         overlaps with modified pointer register.  Handle (X + d) addresses.
20         * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length
21         in alternatives with memory operand.
22
23 2000-12-20  Richard Henderson  <rth@redhat.com>
24
25         * c-typeck.c (build_asm_stmt): New, broken out from ...
26         (c_expand_asm_operands): ... here.  Just do rtl expansion.
27         (c_expand_return): Return the new stmt node.
28         (c_start_case, do_case): Likewise.
29         * c-common.c (c_expand_expr_stmt): Likewise.
30         * c-common.h: Update declarations.
31         * c-tree.h: Likewise.
32         * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
33         * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace.
34         (nested_function, notype_nested_function): Likewise.
35         (compstmt): Return the compound statement not the binding level.
36         (lineno_labeled_stmt): Simplify.
37         (lineno_stmt, lineno_label): Set STMT_LINENO.
38         (stmt, label): Return the new stmt node.
39
40 2000-12-20  Bernd Schmidt  <bernds@redhat.com>
41
42         * Makefile.in (OBJS): Add sched-ebb.o.
43         (sched-ebb.o): New rule.
44         (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H).
45         (haifa-sched.o): Depend on insn-flags.h.
46         * haifa-sched.c: Include "insn-flags.h".
47         (priority): Don't access BLOCK_NUM, use the new contributes_to_priority
48         callback.
49         * rtl.h (schedule_ebbs): Declare.
50         * sched-int.h (struct sched_info): Add new members
51         contributes_to_priority and compute_jump_reg_dependencies.
52         * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies):
53         New functions.
54         (region_sched_info): Add them.
55         * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h".
56         * sched-ebb.c: New file.
57         * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs.
58
59         * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly
60         handle all relational operators.
61
62 2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
63
64         * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
65         * tm.texi: Document it.
66
67 2000-12-19  Benjamin Kosnik  <bkoz@redhat.com>
68
69         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir
70         instead of gcc_tooldir.
71
72 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
73
74         * system.h (getopt): Update prototype to match include/getopt.h.
75
76 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
77
78         From Jeff Law.
79         * pa.c (basereg_operand): Simplify.
80
81 2000-12-19  Bernd Schmidt  <bernds@redhat.co.uk>
82
83         * haifa-sched.c (rm_line_notes): Arguments are now head and tail,
84         not block number.  All callers and prototype changed.
85         (set_priorities): Likewise.
86         (save_line_notes): Add head and tail arguments; all callers and
87         prototype changed.
88         (restore_line_notes): Likewise.  Don't crash on insns generated
89         during scheduling.
90         (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros.
91         Call MD_SCHED_INIT with additional argument.
92         When starting a new cycle, emit cycle_display insns if available.
93         Don't stop scheduling when encountering a JUMP_INSN, but add another
94         call to schedule_more_p in the inner loop.
95         Call MD_SCHED_REORDER2 after scheduling an insn.
96         Call MD_SCHED_FINISH once all insns are scheduled.
97         (sched_init): Compensate for the fact that get_block_head_tail
98         doesn't include leading notes.
99         * sched-deps.c (free_deps): Free vectors here.
100         * sched-rgn.c (compute_block_backward_dependencies): Not here.
101         (last_was_jump): New static variable.
102         (schedule_more_p): Test it.
103         (init_ready_list): Initialize it.
104         (can_schedule_ready_p): Set it if we have a JUMP_INSN.
105
106         * config/i386/i386.h (MD_SCHED_INIT): Add new arg.
107         * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg.
108         * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg.
109
110         * md.texi (cycle_display): Document.
111         * tm.texi (MD_SCHED_INIT): Document new arg.
112         (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document.
113
114         * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite
115         to use different representation.  All callers changed.
116         (and_reg_cond): Renamed from nand_reg_cond; caller changed.
117         (init_propagate_block_info): Don't test flags to determine
118         whether to compute conditional lifetimes.
119         Adjust code for new representation of conditional lifetimes.
120         (mark_regno_cond_dead): Similar adjustment.
121         (free_reg_cond_life_info): Similar adjustment.
122         (elim_reg_cond): New function.
123         (flush_reg_cond_1): Use it.
124
125 2000-12-19  Catherine Moore  <clm@redhat.com>
126
127         * reload1.c (reload_combine): Take multi-hard-regs into account
128         when processing CALL_INSN_FUNCTION_USAGE.
129
130 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
131
132         * invoke.texi (-print-search-dirs): Make references to cpp refer
133         to cpp0 instead.
134
135 2000-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
136
137         * fold-const.c (tree_expr_nonnegative_p): Treat truth values as
138         non-negative.
139
140 Tue Dec 19 00:37:08 2000  J"orn Rennecke <amylaar@redhat.com>
141
142         * reload.c (push_reload): When using a dying register for the reload
143         register in an in-out reload, use outmode if wider than inmode.
144
145 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
146
147         * config/d30v/d30v.h (EXIT_BODY): Update comment.
148
149 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
150
151         * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING.
152         * tm.texi (EXIT_BODY): Update documentation.
153         * config/freebsd.h, config/netware.h, config/arm/coff.h,
154         config/arm/conix-elf.h, config/arm/unknown-elf.h,
155         config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h,
156         sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some
157         commented out) and associated comments.
158
159 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
160
161         * c-common.c (STD_C9L, ADJ_STD): Define.
162         (printf_length_specs, scanf_length_specs): Mark "ll" as standard
163         STD_C9L.
164         (T99_LL): Rename to T9L_LL.
165         (T99_ULL): Rename to T9L_ULL.
166         (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL
167         instead of T99_LL and T99_ULL.
168         (check_format_info_main): Use ADJ_STD on all format standard
169         versions being compared.
170         * c-common.h: Declare warn_long_long.
171         * c-tree.h: Don't declare warn_long_long.
172
173 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
174
175         * COPYING: Update to current
176         ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
177         to 19yy as example year in copyright notice).
178
179 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
180
181         * c-lex.c (cb_file_change): Treat in_system_header as strictly
182         boolean (0 or 1).
183
184 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
185
186         * cppmain.c: Update print.lineno with -P.
187
188 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
189
190         * c-lex.c: s/change_file/file_change.
191         * cpplib.h: Similarly.
192         * cppmain.c: Similarly.
193         * fix-header.c: Similarly.
194         * cppfiles.c (stack_include_file): Pass the buffer location and
195         size to cpp_push_buffer.  Generate the file_change callback,
196         so that sysp is already set.
197         * cpphash.h: Add _cpp_do_file_change.
198         * cpplib.c (do_line): Set buffer->sysp directly. Generate the
199         file_change callback after setting sysp.
200         (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception
201         here.
202         (cpp_push_buffer): Don't generate a callback.  Clear sysp.
203         (cpp_pop_buffer): Clean up logic.
204
205 2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>
206
207         * configure.in (gcc_gxx_include_dir): Simplify.
208         (libstdcxx_incdir): Export.
209         * configure: Regenerate.
210         * Makefile.in (PREPROCESSOR_DEFINES): Add in
211         GPLUSPLUS_TOOL_INCLUDE_DIR bits here..
212         (libstdcxx_incdir): Add.
213         * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path.
214
215 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
216
217         * c-lex.c (lex_lineno): Remove.
218         (init_c_lex, c_lex): Remove lex_lineno.
219         (cb_change_file): Update lineno correctly, both before calling
220         push_srcloc and before leaving the function.
221         (cb_def_pragma): Set lineno before outputting diagnostics.
222
223 Sun Dec 17 18:45:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
224
225         * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
226         Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE.
227         Use print_node_brief to print bounds.
228
229 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
230
231         * cpplib.h (struct cpp_reader): Remove references to string_pool
232         and temp_string_pool.
233         * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using
234         ident_pool in place.
235         * cpplex.c (parse_number, unescaped_terminator_p, parse_string,
236         save_comment, cpp_token_as_text): Similarly.
237         * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly.
238         * cppmacro.c (make_number_token, builtin_macro, lock_pools,
239         unlock_pools, stringify_arg, paste_tokens): Similarly.
240
241 Sun Dec 17 12:41:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
242
243         * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case.
244         (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise.
245         (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise.
246
247 2000-12-17  Richard Earnshaw  <rearnsha@arm.com>
248
249         * Makefile.in (check-po): Use $(MAKE).
250         (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise.
251
252 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
253
254         * cppmain.c (check_multiline_token): New function.
255         (scan_buffer): Use it.
256         (cb_change_file): Restructure to avoid warning.
257         * cpperror.c (print_location): Initialize col.
258
259 2000-12-14  Philipp Thomas  <pthomas@suse.de>
260
261         * protoize.c (main): Correctly set locale categories.
262         * gcc.c (main): Likewise.
263         * cppmain.c (general_init): Likewise.
264         * toplev.c (main): Likewise.
265         * gcov.c (main): Likewise.
266         * collect2.c (main): Likewise.
267
268 2000-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
269
270         * c-common.c (c_common_nodes_and_builtins): Create a
271         cstring_endlink, use it.  Rename int_ftype_string_string to
272         int_ftype_cstring_cstring, string_ftype_string_int to
273         string_ftype_cstring_int, and string_ftype_string_string to
274         string_ftype_cstring_cstring.  Prefer sizetype_endlink and
275         int_endlink to manually recreating them.  Fix the prototype
276         set for __builtin_strspn/__builtin_strcspn.
277
278 2000-12-12  Marek Michalkiewicz  <marekm@linux.org.pl>
279
280         * config/avr/avr.c (out_set_stack_ptr): Update comment.
281         (print_operand): Add support for %~ and %o.
282
283 2000-12-17 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
284
285         * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code.
286
287 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
288
289         * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
290         * cpperror.c (print_containing_files): Get right line number.
291         (print_location): Output column of 1 if 0.
292         * cppfiles.c (stack_include_file): cpp_push_buffer handles
293         the callback.
294         * cpphash.h (_cpp_do_file_change): No longer external.
295         * cpplib.c (do_file_change): Now local to cpplib.c.
296         (do_line): Fake a buffer stack for preprocessed files.
297         (cpp_push_buffer): Create a file_change callback.  Handle faked
298         buffers.
299         (cpp_pop_buffer): Similarly.
300         * cpplib.h: BUF_FAKE: New buffer type.
301         * cppmain.c: Update to handle correct file renaming where a
302         #line is the first line of the main file, and produce only
303         the renamed file, not the original file, as output.
304
305 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
306
307         * config/c4x/c4x.md: Remove redundant @s from output patterns.
308
309 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
310             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
311
312         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
313
314         * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
315
316         * config/c4x/c4x.c (c4x_init_pragma): New function.
317         (c_lex_func): New variable.
318         (c4x_parse_pragma): Use c_lex_func.
319
320 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
321             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
322
323         * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument
324           to c4x_init_builtins.
325
326         * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
327
328         * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.      
329         (c4x_output_ascii):  Fix.
330         
331 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
332             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
333
334         * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define.
335
336         * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype.
337         (c4x_expand_builtin): Likewise.
338
339         * config/c4x/c4x.c (c4x_init_builtins): New function.
340         (c4x_expand_builtin): Likewise.
341
342         * config/c4x/c4x.md (floatunsqihf2): New pattern.
343         (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise.
344         (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise.
345         (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise.
346         (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
347
348 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
349         
350         * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
351         * libgcc2.c (__absvsi2): Use Wtype and DWtype.
352         (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
353         (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.
354
355 2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
356
357         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block
358         statement in do/while(0).
359
360 Sat Dec 16 19:56:24 MET 2000  Jan Hubicka  <jh@suse.cz>
361
362         * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno,
363         lshrhi3_cmpno): Remove redundant '@' from the template.
364
365         * i386.md (cmpstrsi_1): Fix type of the compare.
366
367         * genattrtab.c (attr_rtx_cost): New function.
368         (simplify_test_exp): Avoid overactive inlining; use temporary
369         obstacks for tests.
370
371 Sat Dec 16 10:41:11 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
372
373         * diagnostic.c (finish_abort): Deleted.
374         (fatal): Add code from finish_abort.
375         (error_recursion, fancy_abort): Call fatal, not finish_abort.
376         (trim_filename): Remove leading "../".
377         * diagnostic.h (finish_abort): Deleted.
378         * toplev.c (crash_signal): Call fatal, not finish_abort.
379
380         * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
381         as if size were variable.
382
383         * expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
384
385 2000-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
386
387         * tradcpp.c: T_WARNING: New.
388         (do_warning): New function.
389         (finclude): Skip past the newline and increase the line number
390         before calling output_line_command.
391         (do_line): Skip the new line after output_line_command.  Don't  
392         pre-decrement the line number.   
393
394 2000-12-15  Diego Novillo  <dnovillo@redhat.com>
395
396         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to
397         _GLOBAL_OFFSET_TABLE_ when using Intel syntax.
398
399 2000-12-15  Jakub Jelinek  <jakub@redhat.com>
400
401         * gcc.c (cpp_options): Pass -fno-operator-names.
402         * cpplib.h (struct cpp_options): Add operator_names.
403         * cppinit.c (cpp_create_reader): Initialize it.
404         (initialize_builtins): If -fno-operator-names, don't add
405         C++ alternate operator names.
406         (COMMAND_LINE_OPTIONS): Add -fno-operator-names.
407         (cpp_handle_option): Clear operator_names.
408
409 2000-12-15  Jason Merrill  <jason@redhat.com>
410
411         * jump.c (jump_optimize_1): Don't delete the line note after the
412         prologue even if it seems redundant.
413
414         * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P
415         on all insns used to adjust the stack.
416
417 Fri Dec 15 15:32:16 MET 2000  Jan Hubicka  <jh@suse.cz>
418
419         * combine.c (cant_combine_insn_p): Get around SUBREGs when determining
420         hardreg<->reg moves.
421
422 Fri Dec 15 14:48:37 MET 2000  Jan Hubicka  <jh@suse.cz>
423
424         * genrecog.c (add_to_sequence): Remove special case for
425         const_int_operand.
426         (maybe_both_true): Return 1 when falling out of sequence when
427         trying to find common possition in the pattern.
428
429 Fri Dec 15 14:44:51 MET 2000  Jan Hubicka  <jh@suse.cz>
430
431         * integrate.c (copy_rtx_and_substitute): Copy mode too.
432
433 Fri Dec 15 14:11:57 MET 2000  Jan Hubicka  <jh@suse.cz>
434
435         * flow.c (notice_stack_pointer_modification_1): Cleanup.
436
437 2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
438
439         * function.c (adjust_trampoline_addr): New function.
440         (trampoline_address): Call it instead of round_trampoline_addr().
441         * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it.
442
443 2000-12-14  Zack Weinberg  <zack@wolery.stanford.edu>
444
445         * cppfiles.c (hack_vms_include_specification): Delete function
446         (not used since 1998).
447
448 Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
449
450         * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER.
451
452 2000-12-14  Jim Wilson  <wilson@redhat.com>
453
454         * alias.c (get_alias_set): Call record_component_aliases for
455         COMPLEX_TYPE.
456         (record_component_aliases): Handle COMPLEX_TYPE.
457         
458 2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
459
460         * fixinc/gnu-regex.c: Disable NLS.
461
462 2000-12-14  Richard Henderson  <rth@redhat.com>
463
464         * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
465         comparison operands when that would create non-canonical rtl.
466
467         * config/i386/i386.md (umulsi3_highpart): Remove * from name.
468         (smulsi3_highpart): Likewise.
469
470 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
471
472         * gcc.c (cpp_options): Add -remap.
473
474 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
475
476        * gcc.c (cpp_options): Update to use '&'.
477        (struct switchstr): Change type of validated to save space.
478        New member 'ordering'.
479        (handle_braces, validate_switches): Update to handle '&'.       
480
481 2000-12-13  Laurynas Biveinis  <lauras@softhome.net>
482
483         * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list
484         found in a header.
485         * fixinc/fixincl.x: regenerated.
486
487 2000-12-13  DJ Delorie  <dj@redhat.com>
488
489         * config.gcc (cygwin, win32, mingw32): Use float-i386.h.
490
491 2000-12-13  Tom Tromey  <tromey@redhat.com>
492
493         * gcc.c (handle_braces): Handle %{<S*} spec correctly.
494
495 2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
496
497         * function.c (assign_parms): Optimize incoming PARALLELs into
498         REGs if possible.
499
500 2000-12-13  Bruce Korb  <bkorb@gnu.org>
501
502         * fixinc/Makefile.in(*): substantial rewrite to accommodate systems
503         that cannot handle bi-directional pipes, viz. BeOS and DOS.
504         * fixinc/fixlib.h(IGNORE_ARG): new macro
505         (STATIC): define for all of fixinc to use
506         * fixinc/fixfixes.c(*): eliminate unused arg warnings
507         * fixinc/fixtests.c(*): ditto
508         * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
509         * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
510         warning.  Also, eliminate the ``#ifdef emacs'' stuff.
511         (re_syntax_options): make global as it is declared so.
512         * fixinc/mkfixinc.sh: process the argument list more consistently
513         (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
514         * fixinc/procopen.c(globals): include "fixlib.h" for std defs
515         * fixinc/server.c(globals): ditto
516         * fixinc/server.h(defines): ditto
517
518 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
519
520         * tradcpp.c (special_symbol): Improve test for definedness,
521         though it is still not perfect.
522         (do_define): Don't define illegal macro names.
523         
524 2000-12-07  Aldy Hernandez  <aldyh@redhat.com>
525
526         * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
527         if changing into .bss section.
528         * config/mips/elf64.h: same.
529         * config/mips/iris6.h: same.
530         * config/mips/netbsd.h: same.
531         * config/mips/openbsd.h: same.
532
533 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
534
535         * cppfiles.c (read_name_map): Return null if open () fails.
536         (remap_filename): Simplify logic.  Add ICE if it doesn't work
537         as expected. Perform secondary lookup attempt on base filename
538         only.
539
540 Wed Dec 13 19:48:04 MET 2000  Jan hubicka  <jh@suse.cz>
541
542         * flow.c (notice_stack_pointer_modification_1): Notice midifications
543         using PRE_MODIFY and POST_MODIFY.
544
545 Wed Dec 13 17:25:32 MET 2000  Jan Hubicka  <jh@suse.cz>
546
547         * genoutput.c (process_template): Add sanity checking for '@' templates.
548
549 2000-12-13  Bernd Schmidt  <bernds@redhat.co.uk>
550
551         * simplify-rtx.c (cselib_finish): Free reg_values and used_regs
552         varrays.
553
554 2000-12-12  Mike Stump  <mrs@wrs.com>
555
556         * Makefile.in (distclean): Remove safe-ctype.c as well.
557
558 2000-12-12  Brad Lucier <lucier@math.purdue.edu>
559
560         * tradcpp.c (do_error): Cast difference of pointers to int
561         for error message.
562
563 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
564
565         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here...
566         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here.
567
568 2000-12-12  Jim Wilson  <wilson@redhat.com>
569
570         * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT.
571
572 2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
573
574         * configure.in: Simplify language enabling/disabling code.
575         * configure: Rebuilt.
576         * ch/config-lang.in (target_libs): Set.
577         (build_by_default): Set to no.
578         * cp/config-lang.in (target_libs): Set.
579         * f/config-lang.in (target_libs): Set.
580         * java/config-lang.in (target_libs): Set.
581         * objc/config-lang.in (target_libs): Set.
582
583 2000-12-12  Neil Booth  <neil@daikokuya.demon.co.uk>
584
585         * tradcpp.c (enum node_type): Add T_ERROR.
586         (do_error): New function.
587         (directive_table): Add #error handler.
588
589 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
590
591         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check
592         for powerpc*-*-*.
593         * configure: Regenerated.
594         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
595         * config/rs6000/rs6000.c (rs6000_unique_section): Use
596         STRIP_NAME_ENCODING.
597
598 Mon Dec 11 13:51:09 2000  Jeffrey A Law  (law@cygnus.com)
599
600         * pa.c (cmpib_comparison_operator): Remove GEU and LTU.
601         * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding
602         changes.
603
604 2000-12-11  Bruce Korb  <bkorb@gnu.org>
605
606         * fixinc/fixincl.tpl: initialize all fields for warnings
607         * fixinc/fixincl.x: regenerate
608
609 2000-12-11  Neil Booth  <neilb@earthling.net>
610
611         * tradcpp.h: For tradcpp, NUL is not whitespace.
612
613 2000-12-11  Neil Booth  <neilb@earthling.net>
614
615         * fix-header.c (read_scan_file): Macro expansion is not a file buffer.
616
617 2000-12-05  Marek Michalkiewicz  <marekm@linux.org.pl>
618
619         * config/avr/avr.c (compare_condition, compare_sign_p): New functions.
620         (compare_diff_p, compare_eq_p): Call compare_condition.
621         (out_tsthi, out_tstsi): Call compare_sign_p.
622         (avr_progmem_p): Check for error_mark_node.
623
624 2000-12-11  Neil Booth  <neilb@earthling.net>
625
626         * cpperror.c (print_location): New function.
627         (print_containing_files): Simplify.
628         (_cpp_begin_message): Simplify and use print_location.
629         * cppfiles.c (stack_include_file): Update.
630         (_cpp_pop_file_buffer): Update.
631         * cpphash.h (struct cpp_buffer): New members
632         include_stack_listed and type.   
633         * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
634         (run_directive): Take buffer type.  cpp_push_buffer cannot fail.
635         (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
636         handle_assertion): Update.
637         (cpp_push_buffer): Take a buffer type and file name.
638         (cpp_pop_buffer): Update.  Clear include_stack_listed.
639         * cpplib.h (input_stack_listing_current): Remove.
640         (enum cpp_buffer_type): New.
641         (cpp_push_buffer): New prototype.
642         * cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
643         * fix-header.c (read_scan_file): Update.
644
645 2000-12-10  Robert Lipe <robertlipe@usa.net>
646
647         * install.texi (i*86-*-sco3.2v5*): Remove information duplicated
648         in html version.
649
650 2000-12-10  Richard Henderson  <rth@redhat.com>
651
652         * genrecog.c (find_operand): Handle 'V' format code.
653         (find_matching_operand): New.
654         (validate_pattern): Accept '=' for an in-out operand if there
655         is another operand with a matching constraint.
656
657         * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint
658         for op1 to op0.
659
660 2000-12-10  Richard Henderson  <rth@redhat.com>
661
662         * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.
663
664 2000-12-09  Richard Henderson  <rth@redhat.com>
665
666         * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and 
667         STRICT_LOW_PART as SET_DEST have in-out constraints.
668
669 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
670
671         * c-common.c (check_function_format): Don't suggest adding format
672         attributes to functions with no parameter to which to add them.
673
674 2000-12-09  Nick Clifton  <nickc@redhat.com>
675
676         * config/arm/arm.c (arm_expand_prologue): Mark the generated
677         insn not the set as being DWARF2_FRAME_RELATED_P.
678
679 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
680
681         * Makefile.in: use $(build_exeext) for all build
682         system executable targets.
683
684 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
685
686         * install.texi: remove i[345]86-*-winnt3.5 section.
687         * configur.bat: removed.
688         * config/msdos: directory removed.
689
690 2000-12-09  Neil Booth  <neilb@earthling.net>
691
692         * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h.
693         * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete.
694         * cpplex.c (parse_identifier): Improve diagnostic.
695         (_cpp_lex_token): Return unconditionally at the end of a directive.
696         * cpplib.c (read_flag): Verify legality of each flag.
697         (end_directive): Resotre pfile->skipping before skip_rest_of_line.
698         (do_line): Use the new read_flag.
699         * cppmacro.c (struct cpp_macro, parse_arg, replace_args,
700         check_macro_redefinition, parse_params): Rename var_args to
701         variadic.
702
703 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
704
705         * .cvsignore: Add info files.
706
707 2000-12-08 Laurynas Biveinis <lauras@softhome.net>
708
709         * config/winnt: Remove obsolete directory.
710         * install.texi (Configurations): Remove obsolete documentation for
711         Windows NT.
712
713 2000-12-08  Joseph S. Myers  <jsm28@cam.ac.uk>
714
715         * configure.in: Don't define INSTALL_INFO.
716         * configure: Regenerate.
717         * Makefile.in (INSTALL_INFO): Remove.
718         (info): Depend on info files in source directory.
719         (cpp.info, gcc.info, c-tree.info): Build info files in source
720         directory.
721         (distclean): Don't remove info files.
722         (maintainer-clean): Remove info files from source directory.
723         (install-normal): Depend on install-info.
724         (install-info): Install info files from source directory, if they
725         exist.
726         * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org.
727
728 2000-12-08  Alexandre Oliva  <aoliva@redhat.com>
729
730         * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE
731         before taking its NOTE_LINE_NUMBER.
732
733 2000-12-08  Nick Clifton  <nickc@redhat.com>
734
735         * config/arm/arm.md (load_indirect_jump): Add pool ranges.
736
737         * extend.texi: Document ARM "interrupt" function attribute.
738         Mention that the ARM also support the "naked" function
739         attribute.
740
741         * config/arm/arm-protos.h (arm_current_func_type): Add
742         prototype.
743
744         * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define.
745         (struct machine_function): Add 'func_type' field.
746         Define bit values for 'func_type' field.
747         (ARM_FUNC_TYPE): New macro.
748         (IS_INTERRUPT): New macro.
749         (IS_VOLATILE): New macro.
750         (IS_NAKED): New macro.
751         (IS_NESTED): New macro.
752         (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE.
753
754         * config/arm/arm.c (isr_attribute_args): New Structure.  A
755         list of "interrupt" function attribute modifiers.
756         (arm_isr_value): New Function: Returns the type of the current
757         interrupt function.
758         (arm_compute_func_type): New Function: Computes the type of
759         the current function.
760         (arm_current_func_type): New Function: Returns the type of the
761         current function.
762         (use_return_insn): Use arm_current_func_type.
763         (arm_valid_type_attribute_p): Accept "interrupt" function
764         attribute.
765         (arm_comp_type_attributes): Check "interrupt" attributes.
766         (arm_valid_machine_decl): Accept "interrupt" function
767         attribute.
768         (arm_function_ok_for_sibcall): Do not allow interrupt
769         functions to use sibcalls.
770         (arm_naked_function_p): Delete.
771         (print_multi_reg): Remove redundant parameter 'hat'.
772         (arm_compute_save_reg_mask): New Function: Compute a bit mask
773         of registers saved during the current function's prologue.
774         (output_arm_return_instruction): Use arm_current_func_type.
775         Generate return instruction when LR is not poppsed off the
776         stack.
777         (arm_volatile_func): Delete.
778         (output_arm_prologue): Use arm_current_func_type and
779         arm_compute_save_reg_mask.
780         Note presernce of interrupt functions.
781         (arm_output_epilogue): Use arm_current_func_type and
782         arm_compute_save_reg_mask.
783         (arm_expand_prologue): Use arm_current_func_type and
784         arm_compute_save_reg_mask.
785         (arm_init_machine_status): Initialise func_type field, if
786         necessary.
787         (thumb_expand_prologue): Use arm_current_func_type.
788         (output_thumb_prologue): Use arm_current_func_type.
789
790 2000-12-08  Brad Lucier <lucier@math.purdue.edu>
791
792         * tradcpp.c (do_include): Make pointer differences 64-bit clean.
793
794 Fri Dec  8 08:23:29 2000  J"orn Rennecke <amylaar@redhat.com>
795
796         * fp-bit.c (_fpmul_parts): Use USItype variables as inputs
797         for multiplies.
798
799 2000-12-07  Mike Stump  <mrs@wrs.com>
800
801         * Makefile.in (distclean): Remove alloca.c hashtab.c.
802
803 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
804
805         * Makefile.in (HOST_RTL): Add safe-ctype.o.
806         (safe-ctype.o): New rule.
807         * system.h: Include safe-ctype.h, not ctype.h.  No need to
808         wrap ctype macros.
809
810         * cpphash.h: Zap IStable and related macros.  Define is_* in
811         terms of safe-ctype.h macros.
812         * cppinit.c: Delete the IStable and all related code.
813
814         * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
815         is_space arrays.  Delete initialize_char_syntax.  Change all
816         references to the above arrays to use macros instead.
817         * tradcpp.h: Define is_idchar, is_idstart, is_space, and
818         is_nvspace in terms of safe_ctype.h's macros.
819         * tradcif.y: is_idchar, is_idstart are macros not arrays.
820
821         * config/i370/i370.c, config/winnt/dirent.c,
822         config/winnt/fixinc-nt.c, config/winnt/ld.c:
823         Use uppercase ctype macros.  If we included ctype.h,
824         include safe-ctype.h instead.
825
826         * fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
827         ISLOWER(c) before calling TOUPPER(c).
828         * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
829         * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
830         wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
831
832 2000-12-07  DJ Delorie  <dj@redhat.com>
833
834         * c-decl.c (grokdeclarator): preserve previous alignments when
835         rebuilding array types.
836
837 2000-12-07  Neil Booth  <neilb@earthling.net>
838
839         * cppfiles.c (struct include_file): Move from cpphash.h.
840         (_cpp_never_reread): New function.
841         (open_file, read_include_file): Use it.
842         (stack_include_file): Set the buffer's sysp according to the
843         path in which the file was found.
844         (find_include_file): Don't set sysp.
845         (cpp_make_system_header, actual_directory): Update.
846         (_cpp_execute_include): Do #include_next lookup handling here,
847         not in cpplib.c.  Use _cpp_never_reread.
848         * cpphash.h (struct_include_file): Remove.
849         (struct cpp_buffer): New member sysp.
850         (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
851         (_cpp_never_reread): New.
852         * cpplib.c (read_line_number): Rename read_flag.  Rework slightly.
853         (end_directive): Clear line_extension flag.
854         (_cpp_handle_directive): Set line_extension flag for #number.
855         (do_include_next): Handle path lookup in _cpp_execute_include.
856         (do_line): Cleanup to use read_flag.  Don't allow flags in #line.
857         (_cpp_do_file_change): Update.
858         (do_pragma_once): Use cpp_never_reread.  Clean up.
859         * cpplib.h (struct lexer_state): New member line_extension.
860
861 2000-12-07  Richard Henderson  <rth@redhat.com>
862
863         * flow.c (calculate_global_regs_live): Force the stack pointer live
864         after reload as well.
865
866 2000-12-07  Bruce Korb  <bkorb@gnu.org>
867
868         * fixinc/Makefile.*(exeext): the variables are exeext, the
869         substitution expression is build_exeext.
870
871 2000-12-07  Neil Booth  <neilb@earthling.net>
872
873         * c-common.c (parse_in): Make a cpp_reader *.
874         * cppfiles.c (_cpp_fake_include): Remove.
875         * cpphash.h: Similarly.
876         * cpplib.c (do_line): Don't call _cpp_fake_include.  A valid
877         #line always creates a callback; FC_RENAME if there are no
878         #line flags.
879         * fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
880         The first EOF must be our get_char buffer.
881
882 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
883
884         * c-common.c (warn_format_security): New variable.
885         (check_format_info): Warn about non-literal formats with no format
886         arguments if either -Wformat-nonliteral or -Wformat-security is
887         specified.
888         (set_Wformat): Set warn_format_security for settings other than 1.
889         * c-common.h (warn_format_security): Declare.
890         * c-decl.c (c_decode_option): Decode -Wformat-security and
891         -Wno-format-security.
892         * invoke.texi: Document -Wformat-security.
893         * toplev.c (documented_lang_options): Include -Wformat-security
894         and -Wno-format-security.
895
896 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
897
898         * c-common.c (check_format_info): Warn for non-constant format
899         strings with strftime formats if -Wformat-nonliteral.  Where the
900         format can convert arguments, if the format is not a string
901         literal and there are no arguments to the format, give a different
902         warning message from the general non-string-literal case.
903
904 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
905
906         * c-common.c (format_wanted_type): Add reading_from_flag.
907         (print_char_table): Mark %s and %S formats with flag "R".
908         (check_format_info_main): Set up reading_from_flag appropriately.
909         If aflag, always set writing_in_flag rather than relying on the
910         format used being a scanf format and so having it set.
911         (check_format_types): Check for formats reading through null
912         pointers.
913
914 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
915
916         * invoke.texi (-Wformat): Document what format features are
917         checked.
918
919 2000-12-06  Kazu Hirata  <kazu@hxi.com>
920
921         * config/h8300/h8300.h: Fix formatting.
922
923 2000-12-06      Joel Sherrill <joel@OARcorp.com>
924
925         * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
926         h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
927         * config.gcc (*-rtems*): Add support for gthr-rtems.h.
928         * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
929         config/h8300/rtems.h, config/mips/rtems.h: New files.
930
931 2000-12-06  Mark Kettenis  <kettenis@gnu.org>
932
933         * config.gcc: Reorganize handling of *-*-gnu*, to share target
934         specific make details with Linux.  Update comments to clarify
935         the distinction between GNU/Linux and GNU/Hurd.
936
937 Wed Dec  6 19:22:02 2000  Jeffrey A Law  (law@cygnus.com)
938
939         * contrib.texi: Fix my email address.  Update Per's
940         list of contributions.
941
942 2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
943
944         * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX.
945         * collect2.c (scan_libraries): Remove unused `ch'.
946         (COFF specific stuff): Prototype ldgetname.  Declare and prototype
947         ldbtread and ldclose.
948
949         * config/alpha/osf.h: Standarize copyright statement.
950         * config/arc/arc.h: Likewise.
951         * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise.
952         * config/arm/arm.c config/arm/arm.h: Likewise.
953         * config/elxsi/elxsi.h: Likewise.
954         * config/i386/sco.h: Likewise.
955         * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise.
956         * config/m68k/m68kv4.h config/m68k/next21.h: Likewise.
957         * config/m68k/sun3.h: Likewise.
958         * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise.
959         * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise.
960         * config/romp/romp.h: Likewise.
961         * config/rs6000/aix41.h: Likewise.
962         * config/sparc/sysv4.h: Likewise.
963         * config/we32k/we32k.c config/we32k/we32k.h: Likewise.
964         * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise.
965         * cpplib.h cppexp.c cselib.h profile.c: Likewise.
966         * longlong.h: Likewise.
967         * libgcc2.c: Likewise.
968
969 2000-12-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
970
971         * machmode.def: Use correct definition for BITSIZE on targets where
972         BITS_PER_UNIT != 8.
973
974 2000-12-06  Bruce Korb  <bkorb@gnu.org>
975
976         * fixinc/Makefile.*: Reduce differences to (ultimately) reduce
977         the number of them.
978
979 2000-12-06  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
980
981         * pa.c: Include expr.h before c-tree.h.
982         (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered
983         instead of reverse_condition.
984         (print_operand): Correct predicates for GT, GE, LT and LE.  Add
985         predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and
986         ORDERED.
987         (cmpib_comparison_operator): Add GEU and LTU codes.
988         * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator.
989         * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered,
990         bordered): New float conditional branch patterns.
991
992 Wed Dec  6 21:03:41 2000  J"orn Rennecke <amylaar@redhat.com>
993
994         * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
995
996 2000-12-06  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
997
998         * cpplex.c (skip_escaped_newlines): Don't warn for spaces between
999         backslash and newline, when inside a comment.
1000
1001 2000-12-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1002
1003         * invoke.texi: Use @table @samp instead of @itemize @minus for
1004         table of language standards.  Fix use of @pxref.  From Zack
1005         Weinberg.  Also exclude specs documentation from generated
1006         manpage, and create separate ENVIRONMENT section.
1007
1008 2000-12-06  Michael Matz  <matzmich@cs.tu-berlin.de>
1009
1010         * gcse.c (compute_pre_data): Kill trapping expressions in
1011         destination blocks of abnormal edges.
1012
1013 2000-12-05  Richard Sandiford  <r.sandiford@redhat.com>
1014
1015         * config/mn10300/mn10300.c (mn10300_print_reg_list): Added.
1016         (mn10300_get_live_callee_saved_regs): Likewise.
1017         (mn10300_gen_multiple_store): Likewise.
1018         (store_multiple_operation): Likewise.
1019         (expand_prologue): Use mn10300_gen_multiple_store().
1020         * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added.
1021         (mn10300_get_live_callee_saved_regs): Likewise.
1022         (mn10300_gen_multiple_store): Likewise.
1023         (store_multiple_operation): Likewise.
1024         * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL
1025         tied to store_multiple_operation().
1026
1027 Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
1028
1029         * builtins.c (expand_builtin_setjmp_setup): Set
1030         current_function_has_nonlocal_label.
1031
1032 2000-12-05  Neil Booth  <neilb@earthling.net>
1033
1034         * cppfiles.c (stack_include_file): Push zero-length buffers
1035         in case of failure.  Return void, as we don't fail any more.
1036         (read_include_file): Check for files we shouldn't re-read.
1037         Don't return an error code; errors are implied by marking the
1038         file NEVER_REREAD.
1039         (_cpp_execute_include): Move the recursion and in-macro checks
1040         here.  Update for stack_include_file not failing.
1041         * cpplib.c (cpp_push_buffer): Always succeed, since
1042         _cpp_execute_include performs the recursion check.  Tidy up.
1043         * cpplib.h (cpp_push_buffer): Update prototype.
1044
1045 2000-12-05  Alexandre Oliva  <aoliva@redhat.com>
1046
1047         * sched-vis.c (visual_tbl_line_length): New variable.
1048         (get_visual_tbl_length): Set it.
1049         (visualize_stall_cycles): Don't let stalls overrun
1050         visual_tbl_line_length.
1051
1052 2000-12-05  Geoffrey Keating  <geoffk@redhat.com>
1053
1054         * global.c (global_conflicts): Allow for a REG_UNUSED note
1055         with a different mode to the REG set in the insn.
1056
1057 2000-12-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1058
1059         * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir.
1060
1061         * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS).
1062
1063 2000-12-05  Bruce Korb  <bkorb@gnu.org>
1064
1065         * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and
1066         GNU/Linux.
1067
1068 2000-12-05  Richard Earnshaw  <rearnsha@arm.com>
1069
1070         * fixinc/mkfixinc.sh: Run fixinc on netbsd.
1071         * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files,
1072         to cope with aliased copies.
1073         * fixinc/fixincl.x: Regenerate.
1074
1075 2000-12-05  Bernd Schmidt  <bernds@redhat.co.uk>
1076
1077         * sched-vis.c: Guard with #ifdef INSN_SCHEDULING.
1078         * sched-rgn.c: Likewise.
1079         (rgn_print_insn): Fix output.
1080
1081 2000-12-05  Bruce Korb  <bkorb@gnu.org>
1082
1083         * fixinc/Makefile.*: make these more consistent
1084         * fixinc/mkfixincl.sh: enable BeOS fixincludes
1085
1086 2000-12-05  Richard Henderson  <rth@redhat.com>
1087
1088         * stmt.c (warn_if_unused_value): Move side effects test earlier.
1089
1090 2000-12-05  Alan Modra <alan@linuxcare.com.au>
1091
1092         * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even
1093         when using sjlj.
1094
1095 2000-12-05  Richard Henderson  <rth@redhat.com>
1096
1097         * flow.c (calculate_global_regs_live): Only force stack pointer
1098         live before reload.  Force pic register live before reload.
1099         (insn_dead_p): Don't protect pic references from deletion.
1100
1101 2000-12-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1102
1103         * invoke.texi: Add support for using texi2pod.pl.  Don't use
1104         @multitable.
1105
1106 2000-12-04  Nick Clifton  <nickc@redhat.com>
1107
1108         * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
1109         'tune_flags' for XScale nature.
1110         Remove spurious test of HARD_FLOAT and XScale flags.
1111
1112         * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
1113         contraint, accidentally changed during XScale contribution.
1114
1115         * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
1116         not create these functions if the target architecture does not
1117         support Thumb instructions.
1118
1119 2000-12-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1120
1121         * ONEWS: New file with the current contents of NEWS up to EGCS
1122         1.1.
1123         * NEWS: Generate automatically from online release notes from EGCS
1124         1.0 to GCC 2.95.2, using ../contrib/gennews.
1125
1126 2000-12-04  Neil Booth  <neilb@earthling.net>
1127
1128         * tradcif.y: Move lexptr to top of file.  Add rule to handle
1129         assertions in conditional expressions.
1130         * tradcpp.c (parse_answer): Assertions do not need to go to
1131         end of line in conditional directives.
1132         (parse_assertion): Get first character of identifiers correct.
1133         (test_assertion): New function.
1134         * tradcpp.h (test_assertion): New prototype.
1135
1136 2000-12-01  Rodney Brown  <RodneyBrown@mynd.com>
1137
1138         * config.gcc: Fix typo for UnixWare 7.
1139
1140 2000-12-03  Phil Edwards  <pme@sources.redhat.com>
1141
1142         * invoke.texi:  Replace `pedwarns' with clearer text.
1143
1144 2000-12-04  Bruce Korb  <bkorb@gnu.org>
1145
1146         * fixinc/Makefile.*(clean):  don't clean autogenerated files.
1147         (mainainer-clean): clean autogenerated files
1148
1149 2000-12-04  DJ Delorie  <dj@redhat.com>
1150
1151         * md.texi: Add overview, clarify match_dup and define_expand.
1152
1153 2000-12-04  DJ Delorie  <dj@redhat.com>
1154
1155         * print-tree.c (print_node): Target-specific builtins print
1156         numbers, not names.
1157
1158 2000-12-04  Jason Merrill  <jason@redhat.com>
1159
1160         * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
1161         MODE_VECTOR_FLOAT.
1162
1163         * diagnostic.c (report_problematic_module): s/function/module/.
1164
1165         * c-lex.h: Remove decl for check_newline.
1166
1167 2000-12-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1168
1169         * README.APOLLO: Remove obsolete file.
1170
1171 2000-12-04  Neil Booth  <neilb@earthling.net>
1172
1173         * cppinternals.texi: New file.
1174
1175 2000-12-04  Neil Booth  <neilb@earthling.net>
1176
1177         * cppfiles.c (cpp_make_system_header): Take 2 booleans,
1178         and operate on current buffer.
1179         (cpp_read_file): Rename _cpp_read_file.
1180         * cpplib.c (do_line, do_pragma_system_header): Update calls to
1181         cpp_make_system_header.
1182         * fix-header.c: Similarly.
1183         * cpphash.h (_cpp_read_file): Move from...
1184         * cpplib.h: ... here.
1185         * cppinit.c (do_includes, cpp_start_read): Update appropriately.
1186
1187 2000-12-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1188
1189         * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
1190         Handle another transformation.
1191
1192 2000-12-03  Nick Clifton  <nickc@redhat.com>
1193
1194         * config.gcc: Add support for StrongARM targets.
1195         * config/arm/t-strongarm-elf: New file.
1196         * config/arm/t-strongarm-coff: New file.
1197         * config/arm/t-strongarm-pe: New file.
1198         * config/arm/strongarm-pe.h: New file.
1199
1200 2000-12-03  Nick Clifton  <nickc@redhat.com>
1201
1202         * NEWS: Mention XScale has been added.
1203         * config.gcc: Add support for XScale targets.
1204         * config/arm/arm.h: Add support for XScale processor.
1205         * config/arm/arm.c: Add support for XScale processor.
1206         * config/arm/arm.md: Add support for XScale processor.
1207         * config/arm/t-xscale-elf: New file.
1208         * config/arm/t-xscale-coff: New file.
1209         * config/arm/xscale-elf.h: New file.
1210         * config/arm/xscale-coff.h: New file.
1211
1212 2000-12-03  Richard Henderson  <rth@redhat.com>
1213
1214         * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
1215         unless exception handling is enabled, and if not using sjlj.
1216
1217         * builtins.c (expand_builtin_setjmp_setup): New.
1218         (expand_builtin_setjmp_receiver): New.
1219         (expand_builtin_setjmp): Split out _setup and _receiver functions.
1220         Move argument parsing in from ...
1221         (expand_builtin): ... here.
1222         * except.c (receive_exception_label): Branch around receiver
1223         unless new-style exceptions.  Call expand_builtin_setjmp_receiver.
1224         (start_dynamic_handler): Call expand_builtin_setjmp_setup.
1225         * expr.h: Update builtin setjmp decls.
1226
1227 2000-12-03  Bruce Korb  <bkorb@gcc.org>
1228
1229         * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
1230         build machine name.  Default to the target.
1231
1232 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
1233
1234         * Makefile.in: use $(build_canonical), not $(canonical_build).
1235
1236 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
1237
1238         * Makefile.in (OBJS): Add sched-rgn.o.
1239         (sched-rgn.o): New rule.  * haifa-sched.c (sched_verbose): No
1240         longer static.
1241         (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
1242         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
1243         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
1244         MAX_BLOCKAGE_COST): Move to sched-int.h.
1245         (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
1246         IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
1247         FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
1248         OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
1249         rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
1250         RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
1251         debug_regions, find_single_block_region, find_rgns, too_large,
1252         init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
1253         bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
1254         extract_bitlst, bblst, struct candidate, candidate_table,
1255         bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
1256         SRC_PROB, target_bb, split_edges, compute_trg_info,
1257         debug_candidate, debug_candidates, bbset, bbset_size, dom,
1258         IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
1259         rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
1260         EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
1261         compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
1262         IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
1263         MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
1264         update_live, set_spec_fed, is_pfree, find_conditional_protection,
1265         is_conditionally_protected, may_trap_exp, haifa_classify_insn,
1266         is_prisky, is_exception_free, add_branch_dependences,
1267         propagate_deps, compute_block_backward_dependences,
1268         debug_dependencies, is_cfg_nonregular, build_control_flow,
1269         new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
1270         BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
1271         UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
1272         CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
1273         target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
1274         can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
1275         rgn_rank, region_sched_info): Move to sched-rgn.c.
1276         (debug_reg_vector): Delete useless function.
1277         (get_bb_head_tail): Likewise.
1278         (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
1279         no_real_insns_p, rm_line_notes, save_line_notes,
1280         restore_line_notes, rm_redundant_line_notes, sched_init): No
1281         longer static.
1282         (rm_line_notes, save_line_notes, restore_line_notes,
1283         schedule_block, set_priorities): Change argument to be a real
1284         basic block, not one of haifa's "bb"s.  All callers changed
1285         (rm_other_notes): Initialize note_list here, not in
1286         schedule_region.
1287         (sched_finish): New function, called from schedule_insn.  * *
1288         sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
1289         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
1290         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
1291         MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
1292         (get_block_head_tail, no_real_insns_p, rm_line_notes,
1293         save_line_notes, restore_line_notes, rm_redundant_line_notes,
1294         rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
1295         sched_init, sched_finish, ready_add, insn_cost): Declare.
1296
1297 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
1298             Bruce Korb  <bkorb@gnu.org>
1299
1300         * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
1301         * fixinc/mkfixinc.sh: accept build system name as an argument.
1302         Use it for choosing the fix build method.  Use the target for
1303         selecting special fix rules.
1304
1305 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
1306
1307         * Makefile.in (OBJS): Add sched-deps.o.
1308         (sched-deps.o): New rule.
1309         * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
1310         sched-int.h.
1311         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
1312         sched-int.h.
1313         (SIZE_FOR_MODE): Delete unused macro.
1314         (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
1315         reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
1316         anti_dependency_cache, output_dependency_cache,
1317         forward_dependency_cache): Variables moved to sched-deps.c.
1318         (add_dependence, remove_dependence, find_insn_list,
1319         find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
1320         sched_analyze_insn, sched_analyze_1, sched_analyze_2,
1321         sched_analyze, group_leader, compute_forward_dependences,
1322         init_deps, free_deps, init_dependency_caches, free_dependency_caches):
1323         Functions moved to sched-deps.c.
1324         (schedule_region): Call init_deps_global and finish_deps_global
1325         instead of directly manipulating dependency data structures.
1326         * sched-deps.c: New file.
1327         (init_deps_global, finish_deps_global): New functions.
1328         * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
1329         haifa-sched.c.
1330         (h_i_d): Declare.
1331         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
1332         from haifa-sched.c.
1333
1334         * Makefile.in (OBJS): Add sched-vis.o.
1335         (sched-vis.o): New rule.
1336         * haifa-sched.c (get_unit_last_insn): New function.
1337         (sched_dump, insn_unit, actual_hazard_this_instance): No longer
1338         static.
1339         (schedule_block): Call visualize_alloc and visualize_free.  Delete
1340         spurious return statement.
1341         (init_target_units, insn_print_units, get_visual_tbl_length,
1342         init_block_visualization, print_block_visualization, safe_concat,
1343         visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
1344         print_exp, print_value, print_pattern, print_insn, target_units,
1345         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
1346         n_vis_no_unit, vis_no_unit): Move scheduling visualization
1347         functions/variables...
1348         * sched-vis.c: ...here.  New file.
1349         (visualize_alloc, visualize_free): New functions.
1350         (visualize_scheduled_insns, visualize_stall_cycles,
1351         print_block_visualization): Lose basic block argument.  All callers
1352         changed.
1353         (visualize_scheduled_insns): Use new function get_unit_last_insn.
1354         * sched-int.h (current_sched_info, sched_dump): Declare.
1355         (init_target_units, insn_print_units, init_block_visualization,
1356         print_block_visualization, visualize_scheduled_inns,
1357         visualize_no_unit, visualize_stall_cycles, visualize_alloc,
1358         visualize_free): Declare functions.
1359
1360         * sched-int.h: New file.
1361         * Makefile.in (haifa-sched.o): Depend on it.
1362         * haifa-sched.c: Include it.
1363         (no_real_insns_p): New function.
1364         (current_sched_info): New static variable.
1365         (__inline, HAIFA_INLINE): Moved to sched-int.h.
1366         (get_block_head_tail): Minor cleanup.
1367         (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
1368         rgn_print_insn, rgn_rank): New functions, broken out of
1369         rank_for_schedule, schedule_insn and schedule_block, where they
1370         are now called through function pointers in current_sched_info.
1371         (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
1372         print_insn): To display uid and block number, call the print_insn
1373         function pointer in current_schedule_info.
1374         (region_sched_info): New static variable.
1375         (sched_target_n_insns, sched_n_insns, target_n_insns): New global
1376         variables, moved out of schedule_block.
1377         (schedule_block): Return void.  All callers changed.
1378         Move some of the setup code into schedule_region.  Get head/tail
1379         from current_sched_info, and update it when done.
1380         (schedule_region): Slightly rearranged, some code moved here from
1381         schedule_block.  Call no_real_insns_p to avoid doing work for a
1382         block that consists only of notes and labels.
1383         (schedule_insns): Initialize current_sched_info.
1384
1385 2000-12-03  Neil Booth  <neilb@earthling.net>
1386
1387         * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
1388         by contexts drops AFTER argument pre-expansion, so that they
1389         remain enabled during argument pre-expansion.
1390         (_cpp_pop_context): Unconditionally re-enable a macro when
1391         dropping a context level.
1392
1393 2000-12-03  Manfred Hollstein  <manfredh@redhat.com>
1394
1395         * arm/t-linux (MULTILIB_OPTIONS): Comment.
1396         (MULTILIB_DIRNAMES): Likewise.
1397         (EXTRA_MULTILIB_PARTS): Likewise.
1398         (LIBGCC): Likewise.
1399         (INSTALL_LIBGCC): Likewise.
1400
1401 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1402
1403         * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
1404         expand_builtin_strspn, expand_builtin_strcspn): New functions.
1405         (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
1406         BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
1407
1408         * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
1409         BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
1410
1411         * c-common.c (c_common_nodes_and_builtins): Declare builtin
1412         strcat, strncat, strspn and strcspn.
1413         (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
1414
1415         * extend.texi (strcat, strcspn, strncat, strspn): Document new
1416         builtins.
1417
1418 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420         * builtins.c (expand_builtin_strcmp): Use const*_rtx when
1421         expanding strcmp at compile-time.  Add another transformation.
1422         (expand_builtin_strncmp): Add more transformations.  Call
1423         expand_builtin_memcmp, not expand_builtin_strcmp, under
1424         appropriate conditions if HAVE_cmpstrsi.
1425
1426 2000-12-02  David Edelsohn  <edelsohn@gnu.org>
1427
1428         * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
1429         instruction.
1430         (cr logic): Really make operands sequential.
1431
1432 2000-12-02  Geoffrey Keating  <geoffk@redhat.com>
1433
1434         * c-common.c (combine_strings): When the ISO C standard specifies
1435         the maximum length of a string, it doesn't include the trailing
1436         zero byte.
1437
1438         * cpplib.c (do_ifdef): Add check_eol() call.
1439         (do_ifndef): Likewise.
1440
1441 2000-12-02  Daniel Berlin  <dberlin@redhat.com>
1442             Bruce Korb  <bkorb@gnu.org>
1443
1444         * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
1445         * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
1446         * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
1447         * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
1448         use the "__need_" hackery.  It breaks them.
1449         * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
1450         Sometimes on DOS and BeOS the temp output file cannot be opened.
1451         Skip the file noisily.  Ought to be fixed instead.
1452
1453 2000-12-02  Bruce Korb  <bkorb@gnu.org>
1454
1455         From: 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1456
1457         * fixfixes.c (emit_gnu_type, format_write): Prototype.
1458         (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
1459         custom uppercase ctype macros.
1460         * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
1461         Use gcc's custom uppercase ctype macros.
1462         (main): Prototype.
1463         (machine_matches): Add static prototype and constify variable.
1464         (create_file, test_test, egrep_test): Add static prototype.
1465         (quoted_file_exists): Likewise, and constify parameters.
1466         (extract_quoted_files, internal_fix, start_fixer, fix_applies,
1467         write_replacement, test_for_changes): Add static prototype.
1468         (write_replacement, test_for_changes): Delete excess argument to
1469         `create_file'.
1470         * fixtests.c (test): Make static.
1471         * server.c (load_data, sig_handler, server_setup, find_shell): Add
1472         static prototype.
1473         (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
1474
1475 2000-12-02  Bruce Korb  <bkorb@gnu.org>
1476
1477         * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
1478         (per Laurynas Biveinis  <lauras@softhome.net>)
1479
1480 2000-12-02  Richard Earnshaw  <rearnsha@arm.com>
1481
1482         * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
1483         macros.
1484         (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
1485         (REGNO_OK_FOR_FOR_BASE_P): Delete.
1486         (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
1487         both strict and non-strict uses.
1488         (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
1489         (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
1490         (REG_OK_FOR_INDEX_P): Define in terms of above.
1491         (REG_OK_FOR_BASE_P): Delete.
1492         (REG_OK_FOR_PRE_POST_P): Delete.
1493         (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
1494         (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
1495         (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
1496         (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
1497         (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes.  Use ARM
1498         specific variants rather than general ones.  Use ARM_REG_OK_FOR_BASE_P
1499         in pre/post increment cases.
1500         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
1501         (ARM_LEGITIMIZE_ADDRESS): Similarly.
1502         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
1503         * arm.c (legitimate_pic_address): Similarly.
1504
1505 2000-12-02  Neil Booth  <neilb@earthling.net>
1506
1507         * tradcpp.c (struct answer, parse_assertion, parse_answer,
1508         canonicalize_text, find_answer): New.
1509         (do_assert, do_unassert): Provide appropriate function bodies.
1510         (union hashval): New member answers.
1511
1512 2000-11-23  Marek Michalkiewicz  <marekm@linux.org.pl>
1513
1514         * config/avr/avr.md: Document UNSPEC usage.
1515         (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
1516         Make operand 0 input only, clobber it.  Use UNSPEC, not a bogus
1517         MEM for program memory word reference.  Do not add the label to
1518         the table index in each of the asm output templates, instead ...
1519         (casesi): ... do it in RTL.  Adjust to match the above change.
1520
1521 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
1522
1523         * c-common.c (PTRDIFF_TYPE): Provide default here, ...
1524         * c-decl.c: ... not here.
1525
1526         * haifa-sched.c (sched_dump): Renamed from dump.  All users changed.
1527         (old_max_uid): New variable.
1528         (compute_forward_dependences): Renamed from
1529         compute_block_forward_dependences; changed to accept block head and
1530         tail instead of block number.  Caller changed.
1531         (free_deps, init_dependency_caches, free_dependency_caches,
1532         init_regions, sched_init): New functions, split out from
1533         schedule_insns and compute_block_backward_dependences.
1534
1535 2000-12-02  Neil Booth  <neilb@earthling.net>
1536
1537         * cppexp.c (parse_number): Update diagnostic test.
1538
1539 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
1540
1541         * reload1.c (free_for_value_p): New function, frontend to
1542         reload_reg_free_for_value_p.  All callers of the latter now call
1543         this function with an additional mode argument.
1544
1545 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1546
1547         * install.texi (Configurations): Remove obsolete documentation for
1548         hppa*-*-*.
1549
1550 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1551
1552         * install.texi (Installation): Remove obsolete description for
1553         libstdc++ which is now an integral part of GCC.
1554
1555 2000-12-01  Jim Blandy  <jimb@redhat.com>
1556
1557         * dbxout.c (dbxout_parms): Correctly describe parameters passed by
1558         invisible reference in registers, but then spilled to the stack.
1559         Remove code to emit a second stab for such parameters; it attempts
1560         to describe the value's location by introducing a synthetic C++
1561         `reference' type, and then saying the stack slot has that
1562         reference type.  This loses type information (breaking GDB's
1563         `ptype' command, among other things) just to describe a location
1564         which stabs can represent correctly in other ways.
1565
1566 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1567
1568         * final.c (output_addr_const) <PLUS>: Don't assume at least one
1569         operand is a CONST_INT.
1570
1571         * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
1572         (machine_dependent_reorg): Split all insns.
1573         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
1574         reg_class_contents[SIBCALL_REGS].
1575         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
1576         * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
1577         call_value_pcrel, call, call_value, sibcall): Match even when
1578         not optimizing.
1579         (sibcalli_pcrel, sibcall_pcrel): Likewise.  Use constraint `k'
1580         for call address.
1581         (sibcalli): Likewise.
1582
1583 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1584
1585         * c-common.c (warn_format, warn_format_y2k,
1586         warn_format_extra_args, warn_format_nonliteral): Define.
1587         (check_format_info): Check warn_format_nonliteral and
1588         warn_format_extra_args.
1589         (check_format_info_main): Check warn_format_y2k.
1590         (set_Wformat): New function.
1591         * c-common.h (warn_format_y2k, warn_format_extra_args,
1592         warn_format_nonliteral, set_Wformat): Declare.
1593         * c-decl.c (warn_format): Remove definition.
1594         (c_decode_option): Handle -Wformat-nonliteral,
1595         -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
1596         Use set_Wformat.
1597         * invoke.texi: Document these new options and -Wformat=2.
1598         * toplev.c (documented_lang_options): Add these new options.
1599
1600 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1601
1602         * builtins.def (BUILT_IN_IMAXABS): Add.
1603         * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
1604         * c-common.c (c_common_nodes_and_builtins): Create builtin
1605         functions __builtin_imaxabs, and plain imaxabs unless
1606         flag_no_nonansi_builtin outside C99 mode.
1607         (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
1608         * extend.texi: Document builtin imaxabs.
1609
1610 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1611
1612         * c-common.c: Include "defaults.h".
1613         (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
1614         (c_common_nodes_and_builtins): Create string_type_node,
1615         const_string_type_node, wint_type_node, intmax_type_node,
1616         uintmax_type_node, default_function_type, ptrdiff_type_node and
1617         unsigned_ptrdiff_type_node.
1618         * c-common.h (identifier_global_value): Declare.
1619         * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
1620         (init_decl_processing): Don't create string_type_node,
1621         const_string_type_node, wint_type_node, intmax_type_node,
1622         uintmax_type_node, default_function_type, ptrdiff_type_node and
1623         unsigned_ptrdiff_type_node.
1624         (identifier_global_value): New function.
1625
1626 2000-12-01  Neil Booth  <neilb@earthling.net>
1627
1628         * cppinit.c (initialize): Forgotten prototype.
1629         * cpplex.c (_cpp_lex_token): Loop until not skipping.
1630         Always clear PREV_WHITE upon meeting a new line.
1631         * cpplib.c (end_directive): Set pfile->skipping after
1632         skip_rest_of_line.
1633         * cpplib.h (cpp_reader): Remove macro_pos.
1634         * cppmacro.c (cpp_get_line): Don't do anything special inside
1635         macros.
1636         (parse_arg): Add PREV_WHITE if a token appears after new lines.
1637         (funlike_invocation_p): Save and restore the output position
1638         over a successful check for a '('.
1639         (enter_macro_context): Delete uses of macro_pos.
1640         (cpp_get_token): Don't use pfile->skipping.
1641
1642 2000-12-01  Phil Edwards  <pme@sources.redhat.com>
1643
1644         * diagnostic.c:  Fix typos in comments.
1645         * diagnostic.h:  Likewise.
1646
1647 2000-11-30  Phil Edwards  <pme@sources.redhat.com>
1648
1649         * rtl.texi (Machine Modes):  Document BImode and OImode.
1650
1651 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1652
1653         * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
1654         .FPP.
1655
1656 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1657
1658         * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
1659         incomplete element type.
1660         (grokparms): Before checking for incomplete parameter type, check
1661         the type isn't error_mark_node.
1662
1663 2000-12-01  Jakub Jelinek  <jakub@redhat.com>
1664
1665         * builtins.c (target_char_cast): New function.
1666         (expand_builtin_strchr): Use it.
1667         (expand_builtin_strrchr): Use it.
1668         (builtin_memset_read_str): New function.
1669         (expand_builtin_memset): Use target_char_cast.
1670         Try to optimize memset with second argument non-zero using
1671         store_by_pieces.
1672
1673 2000-11-30  Marek Michalkiewicz  <marekm@linux.org.pl>
1674
1675         * install.texi (avr): Replace incomplete list of supported MCU
1676         types with a link to the current one ...
1677         * invoke.texi (AVR Options): ... here.  Update -mmcu= to list
1678         all supported MCU types.  Document -minit-stack= default.
1679         Document new options -mno-tablejump, -mtiny-stack.
1680         * md.texi (AVR family):  Fix typo in 'w' constraint letter
1681         description.  Document 'q'.  Update 'O'.
1682
1683 2000-12-01  Bernd Schmidt  <bernds@redhat.co.uk>
1684
1685         * combine.c (cant_combine_insn_p): Only disallow insns involving
1686         hard regs if they are reg-reg moves.
1687         (try_combine, can_combine_p, combinable_i3pat): Delete old
1688         SMALL_REGISTER_CLASSES tests.
1689
1690 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1691
1692         * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
1693         whether X is a CONST_INT.
1694         (addsubcosts): Likewise.
1695
1696         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
1697         mis-used XINT.
1698         (ARG_POINTER_REGNUM): Set to AP_REG.
1699
1700 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
1701
1702         * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
1703         splits): Only match on TARGET_SH4.
1704
1705         * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
1706         of subsequent insns.
1707
1708 2000-11-30  Richard Henderson  <rth@redhat.com>
1709
1710         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
1711         * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
1712
1713 2000-11-30  Richard Henderson  <rth@redhat.com>
1714
1715         * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
1716         (DO_SELECT_SECTION): New.
1717         (SELECT_SECTION): Use it.
1718         (UNIQUE_SECTION_P): New.
1719         (UNIQUE_SECTION): New.
1720
1721 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
1722
1723         * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
1724         from va_list before using it.
1725
1726 2000-11-30  Michael Matz  <matzmich@cs.tu-berlin.de>
1727
1728         * flow.c (make_edge): Early out, if no flags to set.
1729         (calculate_global_regs_live): Clear out garbage only when necessary.
1730
1731         * simplify-rtx.c (varray_type used_regs): New.
1732         (clear_table): Use it to only clear necessary items.
1733         (cselib_lookup, cselib_record_set): Remember newly set items.
1734         (cselib_update_varray_sizes, cselib_init): Initialize and grow
1735         used_regs.
1736
1737         * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
1738         Move clearing of dead regs out of insn-loop.
1739
1740 2000-11-30  Richard Henderson  <rth@redhat.com>
1741
1742         * calls.c (expand_call): Emit queued insns before creating
1743         the tail recursion sequence.
1744
1745 2000-11-30  J. David Anglin  <dave.anglin@nrc.ca>
1746             Bruce Korb  <bkorb@gnu.org>
1747
1748         * fixinc/inclhack.def(): prevent dual double definition protection
1749         * fixinc/fixincl.x: regenerate
1750
1751 2000-11-29  Loren J. Rittle  <ljrittle@acm.org>
1752
1753         * fixinc/Makefile.in (fixincl.x): Explicitly state the
1754         location of the generated file.
1755
1756 2000-11-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1757
1758         * README.FRESCO: Remove obsolete file.
1759
1760 2000-11-30  Mark Kettenis  <kettenis@gnu.org>
1761
1762         * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
1763         TARGET_LIBGCC2_CFLAGS): Remove.  We now use the settings from
1764         config/t-linux for the Hurd.
1765
1766 2000-11-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1767
1768         * config/mn10200/udivmod.c, config/mn10200/divmod.c,
1769         config/mn10200/udivmodsi4.c: Moved from here.
1770         * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
1771         * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
1772         C division functions.
1773         * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
1774
1775 Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
1776
1777         * pa.md (conditional moves): Avoid holes in operand list.
1778         (mod, umod patterns): Similarly.
1779         (variable extract/shift patterns): Similarly.
1780
1781 2000-11-30  Neil Booth  <neilb@earthling.net>
1782
1783         * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
1784         maybe_objc_check_decl, build_objc_string_object,
1785         objc_declare_alias, objc_declare_class, build_message_expr,
1786         build_protocol_expr, build_selector_expr, build_encode_expr,
1787         get_class_ivars, start_class, start_protocol): Remove
1788         redundant code, assuming doing_objc_thang is true.
1789
1790 2000-11-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1791
1792         * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
1793         (record_unscaled_index_insn_codes): Likewise.
1794         (unscaled_index_insn_codes): Delete.
1795         (max_unscaled_index_insn_codes_uid): Delete.
1796         (output_function_prologue, output_function_epilogue, pa_reorg):
1797         Don't use the unscaled index insn hack.
1798
1799         * pa.md: Remove hack from all index insns to reverse the operand
1800         order of frame and stack pointer references incorrectly created
1801         in the reload pass.
1802
1803         * function.h (emit_status): Delete member regno_pointer_flag and
1804         rename regno_pointer_flag_length to regno_pointer_align_length.
1805         Delete define for REGNO_POINTER_FLAG.
1806         * integrate.h (inline_remap): Delete member regno_pointer_flag.
1807         Add member x_regno_reg_rtx.
1808         * rtl.h (rtx_def): Use frame_related bit to indicate register is
1809         a pointer in REG expressions.  Define REG_POINTER macro.
1810         * alias.c (find_base_value, find_base_term): Use REG_POINTER
1811         instead of REGNO_POINTER_FLAG.
1812         * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
1813         * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
1814         of regno_pointer_flag_length.  Remove code which refers to
1815         regno_pointer_flag.
1816         (mark_reg_pointer): Use REG_POINTER.
1817         (free_emit_status): Remove code which refers to regno_pointer_flag.
1818         (init_emit, mark_emit_status): Likewise.
1819         * flow.c (dump_flow_info): Likewise.
1820         * function.c (preserve_temp_slots): Likewise.
1821         * integrate.c (expand_inline_function, copy_rtx_and_substitute):
1822         Use x_regno_reg_rtx instead of regno_pointer_flag for function
1823         pointer determination in map.
1824         * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
1825         * predict.c (estimate_probability): Likewise.
1826         * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
1827         * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
1828         regno_pointer_flag for function pointer determination in map.
1829         * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
1830         REG_POINTER.
1831         * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
1832         Use REG_POINTER.
1833         (restore_unscaled_index_insn_codes): Revise comment.
1834
1835         * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
1836
1837 2000-11-30  Joseph S. Myers  <jsm28@cam.ac.uk>
1838
1839         * extend.texi: Update documentation for attributes.
1840
1841 2000-11-29  David O'Brien  <obrien@FreeBSD.org>
1842
1843         * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
1844         (ASM_DECLARE_OBJECT_NAME): Same.
1845         (ASM_FILE_END): Same.
1846         (ASM_FINISH_DECLARE_OBJECT): Same.
1847         (ASM_IDENTIFY_GCC): Same.
1848         (ASM_IDENTIFY_LANGUAGE): Same.
1849         (ASM_OUTPUT_CONSTRUCTOR): Same.
1850         (ASM_OUTPUT_DEF): Same.
1851         (ASM_OUTPUT_DESTRUCTOR): Same.
1852         (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
1853         (ASM_OUTPUT_SECTION_NAME): Same.
1854         (ASM_WEAKEN_LABEL): Same.
1855         (BSS_SECTION_ASM_OP): Same.
1856         (COMMON_ASM_OP): Same.
1857         (CONST_SECTION_ASM_OP): Same.
1858         (CONST_SECTION_FUNCTION): Same.
1859         (CTORS_SECTION_ASM_OP): Same.
1860         (DTORS_SECTION_ASM_OP): Same.
1861         (ESCAPES): Same.
1862         (FINI_SECTION_ASM_OP): Same.
1863         (IDENT_ASM_OP): Same.
1864         (IDENT_ASM_OP): Same.
1865         (INIT_SECTION_ASM_OP): Same.
1866         (INT_ASM_OP): Same.
1867         (MAX_OFILE_ALIGNMENT): Same.
1868         (SBSS_SECTION_ASM_OP): Same.
1869         (SDATA_SECTION_ASM_OP): Same.
1870         (SECTION_FUNCTION_TEMPLATE): Same.
1871         (SELECT_SECTION): Same.
1872         (SE_CONST_SECTION): Same.
1873         (SIZE_ASM_OP): Same.
1874         (SKIP_ASM_OP): Same.
1875         (STRING_ASM_OP): Same.
1876         (STRING_LIMIT): Same.
1877         (TYPE_ASM_OP): Same.
1878         (TYPE_OPERAND_FMT): Same.
1879
1880 2000-11-29  Neil Booth  <neilb@earthling.net>
1881
1882         * c-decl.c (c_decode_option): Don't handle -lang-objc.
1883         * objc/lang-options.h: Remove -lang-objc.
1884         * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
1885         * objc/objc-act.c (lang_init_options): Set c_language.
1886
1887 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
1888
1889         * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
1890         tests.
1891
1892 2000-11-29  Neil Booth  <neilb@earthling.net>
1893
1894         * c-pragma.c (init_pragma): Update for parse_in type change.
1895
1896 2000-11-29  Laurynas Biveinis  <lauras@softhome.net>
1897
1898         * configure.in: recognize DOS-style absolute paths.
1899
1900 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
1901
1902         * expr.h (store_by_pieces): Add prototype.
1903         (can_store_by_pieces): Likewise.
1904         * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
1905         (can_store_by_pieces): New.
1906         (store_by_pieces): New.
1907         (clear_by_pieces): New.
1908         (clear_by_pieces_1): New.
1909         (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
1910         arbitrary compiler generated constants into memory block.
1911         (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
1912         * builtins.c (c_readstr): New.
1913         (builtin_memcpy_read_str): New.
1914         (expand_builtin_memcpy): If src is string constant and
1915         emit_block_move would move it by pieces, compute integer constants
1916         from the string and store it into memory block instead.
1917         (builtin_strncpy_read_str): New.
1918         (expand_builtin_strncpy): If N is not constant zero and c_strlen does
1919         not return INTEGER_CST, don't optimize.
1920         If N is larger than strlen(src) + 1, try to copy the string
1921         including padding with store_by_pieces.
1922         (expand_builtin_strcmp): If both arguments have side effects, don't
1923         optimize.
1924         (expand_builtin_fputs): If STR has side effects, don't optimize.
1925
1926 2000-11-29  Richard Earnshaw  <rearnsha@arm.com>
1927
1928         * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
1929         Add use of link register.
1930
1931 2000-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1932
1933         * extend.texi: Update documentation for default format attributes.
1934
1935 Tue Nov 28 21:56:45 2000  Jeffrey A Law  (law@cygnus.com)
1936
1937         * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
1938         a list, to keep track of the sections.
1939
1940 2000-11-28  Nick Clifton  <nickc@redhat.com>
1941
1942         * config/arm/arm.md (pic_load_addr): Split into
1943         pic_load_addr_arm and pic_load_addr_thumb.
1944
1945         * config/arm/arm.c (legitimize_pic_address): Generate either
1946         ARM or Thumb versions of pic_load_addr.
1947         (arm_finalize_pic): Generate either ARM or Thumb versions of
1948         pic_load_addr.
1949
1950 2000-11-28  Richard Henderson  <rth@redhat.com>
1951
1952         * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
1953         after sibcall do_pending_stack_adjust.
1954
1955 Wed Nov 29 00:08:23 2000  J"orn Rennecke <amylaar@redhat.com>
1956
1957         * jump.c (delete_insn): Check that REG_LABEL note actually contains
1958         a CODE_LABEL.
1959
1960 2000-11-28  Neil Booth  <neilb@earthling.net>
1961
1962         * c-common.h: Remove flag_digraphs.
1963         * c-decl.c: Remove flag_digraphs.
1964         (c_decode_option): Don't set it.
1965         * c-lex.c (init_c_lex): Don't do anything for digraphs.
1966
1967 2000-11-28  Richard Henderson  <rth@redhat.com>
1968
1969         * c-parse.in (finish_parse): Update for parse_in type change.
1970         (_yylex): Likewise.
1971
1972 2000-11-28  Neil Booth  <neilb@earthling.net>
1973
1974         * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
1975         indicating whether to scan all buffers on the stack or
1976         just one.
1977         * cppinit.c (do_includes): Update.
1978         * cppmain.c (main): Update.
1979         * cpplib.h: Update prototype.
1980
1981 2000-11-28  Richard Henderson  <rth@redhat.com>
1982
1983         * genoutput.c (validate_insn_operands): New.
1984         (gen_insn): Call it.
1985
1986         * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
1987         (divmoddi_internal): Likewise.
1988         * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
1989         * config/i960/i960.md (branch patterns): Likewise.
1990         * config/ia64/ia64.md (tbit_and_0): Likewise.
1991         (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
1992         * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
1993         * config/mips/mips.md (divmodsi4_internal): Likewise.
1994         (divmoddi4_internal): Likewise.
1995         * config/rs6000/rs6000.md (call patterns): Likewise.
1996         * config/sh/sh.md (movsi_y): Likewise.
1997         * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
1998
1999 2000-11-28  Richard Henderson  <rth@redhat.com>
2000
2001         * config.gcc: Kill residual pyramid support.
2002
2003 2000-11-28  Neil Booth  <neilb@earthling.net>
2004
2005         * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
2006         * c-decl.c (c_decode_option): Update to match.
2007         * c-lex.c (init_c_lex, yyparse): Update to match.
2008         * c-lang.c (lang_init_options): Use cpp_create_reader.
2009         * cppinit.c (cpp_init): Rename initialize.
2010         (cpp_reader_init): Rename cpp_create_reader.  Create the
2011         reader.  Initialize cpplib if appropriate.
2012         * cpplib.h (cpp_create_reader) New prototype.
2013         (cpp_init, cpp_reader_init): Delete prototypes.
2014         * cppmain.c (general_init, setup_callbacks): New functions.
2015         (main): Use them.
2016         * fix-header.c (scan_in): Change type to cpp_reader *.
2017         (read_scan_file): Update for new cpplib interface and scan_in type.
2018
2019         * cp/decl.c (parse_in): Change to cpp_reader *.
2020         (lang_decode_option): Update.
2021         * cp/lex.c (lang_init_options): Use new cpplib interface.
2022         (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
2023         * cp/spew.c (read_token): Update.
2024         * objc/objc-act.c (lang_init_options): Update new cpplib interface.
2025
2026 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
2027
2028         * loop.c (load_mems): Avoid using next_label to find end_label. If
2029         jumping outside of the loop (other than loop end), don't hoist MEMs
2030         out of loop.
2031
2032 2000-11-28  Jan Hubicka  <jh@suse.cz>
2033
2034         * calls.c (expand_call): Don't disable tail recursion based
2035         on the loop nest.
2036
2037 2000-11-28  Neil Booth  <neilb@earthling.net>
2038
2039         * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
2040         (struct directive): Drop 4th argument from handlers.
2041         (do_define, do_line, do_include, do_undef, do_else, do_elif,
2042         do_endif): Similarly.
2043         (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
2044         (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
2045         (make_definition, make_undef): Take a const char*.
2046         (make_assertion): New function.
2047         (struct directive_table): Update.
2048         (main): Handle -A command line argument.
2049         (handle_directive): Drop fourth handler argument.
2050
2051 2000-11-28  Bernd Schmidt  <bernds@redhat.co.uk>
2052
2053         * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
2054         is anything but REG or MEM, but look inside STRICT_LOW_PART.
2055
2056 Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2057
2058         * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
2059         (IS_ABSOLUTE_PATHNAME): New macro.
2060         * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
2061
2062 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
2063
2064         * config/i386/i386.md (truncxfsf2_2): Fix predicate.
2065
2066 2000-11-27  Jim Wilson  <wilson@redhat.com>
2067
2068         * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
2069
2070 2000-11-27  Matthias Klose  <doko@cs.tu-berlin.de>
2071
2072         * extend.texi (Nested Functions): Update URL of Usenix paper.
2073
2074 2000-11-27  Mark Mitchell  <mark@codesourcery.com>
2075
2076         * function.c (free_after_compilation): Clear x_clobber_return_insn.
2077
2078 2000-11-27  Neil Booth  <neilb@earthling.net>
2079
2080         * cppinit.c (cpp_reader_init): Remove handling of warn_paste
2081         command line options.
2082         (cpp_handle_option): Similarly.
2083         * cpplib.h (struct cpp_options): Remove warn_paste.
2084         * cppmacro.c (paste_tokens): Apart from assembler, make
2085         unpasteable token warning mandatory.
2086
2087 2000-11-27  Neil Booth  <neilb@earthling.net>
2088
2089         * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
2090         (main): Allocate a pending directive set of these.  Use it.
2091         Merge handling of -D and -U.  Update handling of pending
2092         directives.  Free the memory after use.
2093
2094 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
2095
2096         * flow.c (entry_exit_blocks): Add entry for cond_local_set.
2097         (struct propagate_block_info): Add new member cond_local_set.
2098         (propagate_block): Accept new arg cond_local_set.  All callers
2099         changed.
2100         (init_propagate_block_info): Likewise.
2101         (calculate_global_regs_live): Allocate & free cond_local_set.  Always
2102         rescan if there's overlap between cond_local_set and new_live_at_end.
2103         (mark_set_1): Set bits either in cond_local_set or local_set, as
2104         appropriate.
2105         * basic-block.h (struct basic_block_def): New field cond_local_set.
2106         (propagate_block, init_propagate_block_info): Update prototypes.
2107
2108 Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
2109
2110         * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
2111         T register.
2112
2113 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
2114
2115         * arm.c (select_dominance_cc_mode): Handle new way that combine
2116         canonicalizes conditional compares.
2117         (arm_select_cc_mode): Likewise.
2118         * arm.md: Garbage collect some dead code.
2119         (cmp_and, cmp_ior): New patterns.
2120         (splitter for conditional move with inverted false): Use cond_exec
2121         and handle unordered comparisons.
2122
2123 Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
2124
2125         * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
2126         * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
2127         * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
2128         ix86_force_to_memory and ix86_free_from_memory.
2129
2130 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
2131
2132         * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
2133         arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
2134         anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
2135         one_cmpldi2): Merge with splitters to create define_insn_and_split
2136         patterns.  Remove redundant splits.
2137         (peephole2 for add:SI of invalid immediate): New.
2138         (peephole2 for minus:SI of invalid immediate): New.
2139         (peephole2 for ior:SI of invalid immediate): New.
2140         (peephole for merge of move and compare): Convert ot peephole2.
2141         (addsf3, adddf3): Mark as commutative.
2142
2143         * arm.md (thumb peephole for merging stack adjustments): Convert to
2144         peephole2.
2145
2146 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
2147
2148         * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
2149
2150         * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
2151         (reload_cse_simplify_operands): Do nothing about operands where both
2152         the operand and the match_operand fail to give us a mode.
2153         * simplify-rtx.c (wrap_constant): New function.
2154         (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
2155         CONST describing the proper mode.
2156         (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
2157         cselib_lookup.
2158         (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
2159         htab_find_slot_with_hash.
2160         (cselib_lookup): Likewise.
2161
2162         Based on a patch from Geoff Keating <geoffk@redhat.com>:
2163         * loop.c (basic_induction_var): If a REG is set from something
2164         that is not a biv, then the REG is not a biv.  Even if it is
2165         earlier set from something that is a biv.
2166
2167 2000-11-27  Alexandre Oliva  <aoliva@redhat.com>
2168
2169         * configure.in (extra_objs): Enclose extra_headers in quotes.
2170         * configure: Rebuilt.
2171
2172 2000-11-27  Neil Booth  <neilb@earthling.net>
2173
2174         * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
2175         Combine into the new function cb_change_file.
2176         (init_c_lex): Update.
2177         * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
2178         (cpp_syshdr_flags): Delete.
2179         * cpphash.h (_cpp_do_file_change): New prototype.
2180         Move struct cpp_buffer here from...
2181         * cpplib.h (struct cpp_buffer): ... here.
2182         (enum cpp_fc_reason, struct cpp_file_loc,
2183         struct_cpp_file_change, change_file): New.
2184         (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
2185         * cpplib.c (do_line): Update for new cb_change_file callback.
2186         (_cpp_do_file_change): New function.
2187         (_cpp_pop_buffer): Update to use it.
2188         * cppmain.c (move_printer): Delete.
2189         (main): Set up single callback cb_change_file.
2190         (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
2191         (cb_change_file): New.
2192         * fix-header.c (cur_file, cb_change_file): New.
2193         (recognized_function, read_scan_file): Update.
2194         * scan-decls.c (scan_decls): Update.
2195         * scan.h (recognized_function): Update prototype.
2196
2197 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
2198
2199         * tree.h (mark_tree_hashtable): New function.
2200         * tree.c (mark_tree_hashtable_entry): New function.
2201         (mark_tree_hashtable): Likewise.
2202
2203 2000-11-27  Michael Meissner  <meissner@redhat.com>
2204
2205         * d30v-protos.h (srelational_si_operator): Correctly spell
2206         function.
2207         (urelational_si_operator): Ditto.
2208         (relational_si_operator): Ditto.
2209         (d30v_expand_prologue): Add prototype.
2210         (d30v_expand_epilogue): Ditto.
2211
2212         * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
2213
2214         * d30v.md (movcccc_*): Delete now unused patterns.
2215         (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
2216         IF_THEN_ELSE.
2217         (define_cond_exec): Use 'b' to select branch flags.
2218
2219 2000-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2220
2221         * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
2222         functions.
2223         (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
2224
2225         * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
2226
2227         * c-common.c (c_common_nodes_and_builtins): Declare builtin
2228         strncpy and strncmp.
2229
2230         * extend.texi (strncmp, strncpy): Document new builtins.
2231
2232 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
2233
2234         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
2235         a list, to keep track of the sections.
2236         * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
2237         parameter provided will always be a canonical string.
2238
2239 2000-11-26  Neil Booth  <neilb@earthling.net>
2240
2241         * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
2242         current buffer.
2243
2244 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2245
2246         * makefile.vms: Remove EGCS references.
2247
2248 2000-11-26  Ulrich Drepper  <drepper@redhat.com>
2249
2250         * dwarf2out.c (output_file_names): New function.  Compute minimal
2251         combination of directory and file name table and emit them.
2252         (output_line_info): Remove code to emit directory and file name
2253         table and call output_file_names instead.
2254         (file_info_cmp): Helper function to sort directory names.
2255
2256 2000-11-26  Neil Booth  <neilb@earthling.net>
2257
2258         * cpplib.h (struct cpp_reader): Remove lang_asm.
2259         (struct cpp_options): Remove c89. New members lang,
2260         extended_numbers.
2261         * cppexp.c (parse_number): Use them.
2262         * cpphash.h (VALID_SIGN): Use them.
2263         * cppinit.c (set_lang, cpp_start_read): Update.
2264         * cpplex.c (parse_string, _cpp_lex_token): Update.
2265         * cpplib.c (_cpp_handle_directive): Update.
2266         * cppmacro.c (parse_args): Update.
2267         * cppmain.c (scan_buffer): Update.
2268
2269 Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2270
2271         * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
2272         proper type.
2273
2274 2000-11-26  Neil Booth  <neilb@earthling.net>
2275
2276         * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
2277         * c-decl.c: Remove parse_in declaration.
2278         * c-lang.c: Similarly.
2279         * c-lex.c: Similarly.
2280         * c-parse.in: Similarly.
2281         * c-pragma.c: Similarly.
2282         * configure.in: Similarly.
2283         * cp/Make-lang.in: Similarly.
2284         * cp/spew.c: Similarly.
2285         * cp/decl2.c: Remove check for lang-c++ option.
2286         * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
2287         * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
2288         * c-lex.h: Add declaration of parse_in.
2289         * cppinit.c: Call set_lang after allocating pfile->pending.
2290         * configure: Regenerate.
2291
2292 2000-11-25  Zack Weinberg  <zack@wolery.stanford.edu>
2293
2294         * combine.c (try_combine): Remove redundant test.
2295
2296 2000-11-25  Richard Henderson  <rth@redhat.com>
2297
2298         * c-common.h (DECL_C_HARD_REGISTER): New.
2299         * c-decl.c (finish_decl): Set it for asm register variables.
2300         * c-semantics.c (emit_local_var): Test it when instantiating one.
2301
2302 2000-11-25  Richard Henderson  <rth@redhat.com>
2303
2304         * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
2305         lineno for the start of the function.
2306
2307 2000-11-25  Richard Henderson  <rth@redhat.com>
2308
2309         * dwarf2out.c (file_table, file_table_allocated): Remove.
2310         (file_table_allocated): Remove.
2311         (struct file_table): New.
2312         (decl_file_table, line_file_table): New.
2313         (print_dwarf_line_table): Use them.
2314         (size_of_line_prolog): Likewise.
2315         (output_line_info): Likewise.
2316         (add_src_coords_attributes): Likewise.
2317         (gen_subprogram_die): Likewise.
2318         (gen_variable_die): Likewise.
2319         (dwarf2out_add_library_unit_info): Likewise.
2320         (dwarf2out_line): Likewise.
2321         (lookup_filename): Take a struct file_table argument.
2322         (init_file_table): New.
2323         (dwarf2out_init): Use it.
2324
2325 2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2326
2327         * invoke.texi: Update sequence points references.
2328
2329 2000-11-25  Neil Booth  <neilb@earthling.net>
2330
2331         * c-common.c: Remove USE_CPPLIB conditional inclusions.
2332         * c-common.h: Similarly.
2333         * c-decl.c: Similarly.
2334         * c-lang.c: Similarly.
2335         * c-lex.c: Similarly.
2336         * c-parse.in: Similarly.
2337         * c-pragma.c: Similarly.
2338         * c-pragma.h: Similarly.
2339         * gcc.c: Similarly.
2340         * toplev.c: Similarly.
2341         * cp/cp-tree.h: Similarly.
2342         * cp/decl2.c: Similarly.
2343         * cp/lang-specs.h: Similarly.
2344         * cp/lex.c: Similarly.
2345         * cp/lex.h: Similarly.
2346         * cp/spew.c: Similarly.
2347         * java/lang-options.h: Similarly.
2348         * objc/lang-specs.h: Similarly.
2349         * objc/objc-act.c: Similarly.
2350
2351         * configure.in: Remove configure option.
2352         * config.in: Regenerate.
2353         * configure: Regenerate.
2354
2355 2000-11-25  Richard Henderson  <rth@redhat.com>
2356
2357         * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
2358         Revert 2000-11-22 change.
2359
2360 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
2361
2362         * config/i386/i386.h (FIXED_REGS): Make the three flags registers
2363         fixed.
2364
2365 2000-11-25  Philipp Thomas  <pthomas@suse.de>
2366         * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
2367         * configure: Rebuilt.
2368
2369 2000-11-25  Jakub Jelinek  <jakub@redhat.com>
2370
2371         * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
2372         Handle CONST_INT as second argument.
2373         * config/sparc/sparc.c (set_extends): Remove first argument.
2374         Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
2375         MOV.
2376         (sparc_check_64): Abort if first argument is not REG.
2377         If it is DImode REG, look at the lower register of the register
2378         pair.
2379
2380         * config/sparc/sparc.c (load_pic_register, restore_regs,
2381         output_return, sparc_v8plus_shift, sparc_function_profiler,
2382         sparc_function_block_profiler, sparc_block_profiler): Fix output
2383         formatting.
2384
2385 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>
2386
2387         * config/sh/sh.h (TARGET_NONE): New.
2388         (TARGET_SWITCHES): For all variant-selecting switch, use
2389         TARGET_NONE to reset all other variant-selecting switch.  Added
2390         empty strings to avoid warnings.
2391         (TARGET_DEFAULT): Set to SH1_BIT.
2392
2393         * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
2394         insn-codes.h.
2395
2396         * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
2397         (sibcall_pcrel): New insn_and_split.
2398         (sibcall, sibcall_value, sibcall_epilogue): New expands.
2399
2400         * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
2401         symPLT_label2reg, call, call_value): Don't set
2402         current_function_uses_pic_offset_table.
2403         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
2404         PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
2405         takes it into account.
2406         (FINALIZE_PIC): Delete, useless.
2407         (LEGITIMATE_CONSTANT_P): Delete, unused.
2408         * config/sh/sh.c (sh_expand_prologue): Don't use
2409         current_function_uses_pic_offset_table.  Don't special-case
2410         PIC_OFFSET_TABLE_REGNUM.  Initialize it if it's ever live and
2411         PIC is enabled.
2412         (sh_expand_epilogue, initial_elimination_offset): Don't
2413         special case PIC_OFFSET_TABLE_REGNUM.
2414
2415 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>, NIIBE Yutaka  <gniibe@m17n.org>
2416
2417         * config/sh/sh-protos.h (symbol_ref_operand): Declare.
2418         * config/sh/sh.md (UNSPEC_CALLER): New constant.
2419         (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
2420         (call_pcrel, call_value_pcrel): New insn_and_splits.
2421         (call, call_value): Use them.
2422         (call_site): New expand.
2423         (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
2424         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
2425         Output call_site label.
2426         (PREDICATE_CODES): Added symbol_ref_operand.
2427         * config/sh/sh.c (symbol_ref_operand): Define.
2428         * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
2429         to CALL_INSNs in the split sequence.
2430
2431 2000-11-24  Nick Clifton  <nickc@redhat.com>
2432
2433         * config.gcc (v850-*-*): Define c_target_objs and
2434         cxx_target_objs.
2435
2436         * config/v850/t-v850: Define how to build v850-c.o
2437
2438         * config/v850/v850.h (struct data_area_stack_element): Move
2439         definition here from v850.c.
2440
2441         * config/v850v850.c: Include gcc.h to avoid compile time
2442         warning.
2443         (push_data_area): Move to v850-c.c.
2444         (pop_data_area): Move to v850-c.c.
2445         (mark_current_function_as_interrupt): Move to v850-c.c.
2446         (GHS_default_section_names): Allow to be exported.
2447         (GHS_current_section_names): Allow to be exported.
2448         (data_area_stack_elements): Allow to be exported.
2449         (ghs_pragma_section): Move to v850-c.c.
2450         (ghs_pragma_interrupt): Move to v850-c.c.
2451         (ghs_pragma_starttda): Move to v850-c.c.
2452         (ghs_pragma_startsda): Move to v850-c.c.
2453         (ghs_pragma_startzda): Move to v850-c.c.
2454         (ghs_pragma_endtda): Move to v850-c.c.
2455         (ghs_pragma_endsda): Move to v850-c.c.
2456         (ghs_pragma_endzda): Move to v850-c.c.
2457
2458         * config/v850/v850-c.c: New file: Contains v850 specific
2459         pragma parsing functions.
2460
2461 2000-11-24  Nick Clifton  <nickc@redhat.com>
2462
2463         * config.gcc (extra_objs): Remove duplicate description.
2464         (c_target_objs): New variable.  Contains target specific
2465         object files for the gcc C compiler only.
2466         (cxx_target_objs): New variable.  Contains target specific
2467         object files for the gxx C++ compiler only.
2468
2469         * configure.in (c_target_objs): Substitute in the makefile.
2470         (cxx_target_objs): Substitute in the makefile.
2471         * configure: Regenerate.
2472
2473         * Makefile.in (C_TARGET_OBJS): Define and initialise from
2474         c_target_objs.
2475         (CXX_TARGET_OBJS): Define and initialise from
2476         cxx_target_objs.
2477         (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
2478
2479         * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
2480
2481         * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
2482         about how the use of the 'c_lex' function requires the use of
2483         the target specific, language specific object files feature of
2484         the configuration mechanism.
2485
2486 Fri Nov 24 18:50:58 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2487
2488         * gcc.c (process_command): Use F_OK, not R_OK.
2489
2490 2000-11-24  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
2491
2492         * flow.c (print_rtl_and_abort): Remove ANSIism.
2493
2494 Fri Nov 24 19:54:36 2000  Alexandre Oliva  <aoliva@redhat.com>
2495
2496         * config/sh/sh.h (GENERAL_REGISTER_P,
2497         GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
2498         FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros.  Use them
2499         all over.
2500         (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
2501         * config/sh/sh.c: Use new macros.
2502         * config/sh/sh.md: Likewise.
2503
2504 Fri Nov 24 19:46:16 2000  Alexandre Oliva  <aoliva@redhat.com>
2505
2506         * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
2507         instead of just MACH_REG in DImode.  Always refer to FPSCR_REG
2508         in PSImode.
2509
2510 Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
2511
2512         * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
2513         fixed.
2514         (machine_dependent_reorg): Wrong optimization based on
2515         NOTICE_UPDATE_CC removed.
2516
2517 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
2518
2519         * jump.c (delete_computation): Re-instate deletion of feeding insn.
2520         (delete_insn): Look for REG_LABEL notes.
2521         (redirect_tablejump): Delete feeding insns.
2522
2523 2000-11-24  Bernd Schmidt  <bernds@redhat.co.uk>
2524
2525         * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
2526         call_value_pop_1): Make sure operand numbers are contiguous.
2527
2528         * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
2529
2530         * reload1.c (conflicts_with_override): New function.
2531         (emit_input_reload_insns): Use it to tighten test for validity
2532         of substituting into output of previous insn.
2533
2534         * haifa-sched.c (struct ready_list): New.
2535         (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
2536         functions.
2537         (schedule_insn): Replace args READY and N_READY with a pointer to a
2538         ready_list; return void.  Use the new functions to access the ready
2539         list.  All callers changed.
2540         (queue_to_ready, debug_ready_list): Likewise.
2541         (schedule_block): Initialize a ready_list structure.  Use new
2542         functions to access it.
2543         (max_priority): Remove unused variable.
2544         (schedule_insn): Don't set it.
2545
2546         * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
2547
2548         * combine.c (cant_combine_insn_p): New function.
2549         (try_combine): Use it.
2550
2551         * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
2552         * c-common.c (c-obstack.c): Include "obstack.h".
2553         (struct reverse_tree): Delete.
2554         (reverse_list, reverse_max_depth): Delete.
2555         (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
2556         (struct tlist, struct tlist_cache): New.
2557         (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
2558         (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
2559         warn_for_collisions, warn_for_collisions_1, new_tlist): New
2560         static functions.
2561         (verify_sequence_points): Rewritten.
2562         * fold-const.c (fold): Don't lose possibly important sequence
2563         points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
2564
2565 2000-11-24  Richard Sandiford  <rsandifo@redhat.com>
2566
2567         * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
2568         when reversing a register-to-register copy.  Reversal now disabled
2569         when the previous instruction has a REG_EQUIV.
2570
2571 2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
2572
2573         * c-parse.in (unary_expr): Move VA_ARG from here ...
2574         (primary): ... to here.
2575
2576 2000-11-23  Graham Stott  <grahams@redhat.com>
2577
2578         * expr.c (store_constructor): If a field is non addressable and
2579         the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
2580
2581 2000-11-23  Bernd Schmidt  <bernds@redhat.co.uk>
2582
2583         * flow.c (print_rtl_and_abort): New function.
2584         (verify_wide_reg, verify_local_live_at_start): Try to dump more
2585         information before aborting.
2586
2587 2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
2588
2589         * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
2590         is narrower than requested mode.
2591         (gen_highpart): Abort if register mode is narrower than
2592         requested mode.
2593
2594 2000-11-23  Graham Stott  <grahams@redhat.com>
2595
2596         * cse.c (cse_insn): Initialise all regcost variables.
2597         Fix a typo add missing '='.
2598         Only compare costs if there is a replacement insn.
2599
2600 Thu Nov 23 04:33:33 2000  Alexandre Oliva  <aoliva@redhat.com>
2601
2602         * final.c (output_addr_const) [LABEL_REF]: Simplify.
2603         [MINUS]: Enclose non-CONST_INTs in parentheses.
2604         [default]: Try OUTPUT_ADDR_CONST_EXTRA.
2605         * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
2606         * varasm.c (decode_rtx_const) [CONST]: If it's not something
2607         PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
2608         instead of abort()ing.
2609         * sh.c (output_pic_addr_const): Removed.  Fixed all callers.
2610         * sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
2611         formerly handled in output_pic_addr_const.
2612         * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
2613         operands of MINUS in CONSTs so that decode_rtx_const() will
2614         accept them.
2615
2616 Thu Nov 23 04:10:30 2000  Alexandre Oliva  <aoliva@redhat.com>
2617
2618         * config/sh/sh.md (mova_const): New pattern.
2619         (GOTaddr2picreg): Use it.
2620         * config/sh/sh.c (broken_move): Match it.
2621         (mova_p): Don't match it.
2622         (machine_dependent_reorg): Adjust it.
2623
2624 Thu Nov 23 02:09:09 2000  Alexandre Oliva  <aoliva@redhat.com>
2625
2626         * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
2627         Moved most register-number #defines...
2628         * config/sh/sh.md (define_constants): ... here.  Use macros to
2629         refer to registers and unspecs.
2630         * config/sh/sh.c: Likewise.
2631
2632 Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
2633
2634         * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
2635         (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
2636         (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
2637         (splay-tree.o, hash.o): Likewise.
2638         GCONFIG_H: New.
2639         (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
2640         (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
2641         (hashtab.o): Likewise.
2642         (gcov.o): Depend on $(CONFIG_H).
2643         * configure.in: #include insn-codes.h in tm.h.
2644
2645 2000-11-22  Nick Clifton  <nickc@redhat.com>
2646
2647         * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
2648         const char * to avoid a compile time warning.
2649
2650         * config/arm/arm.md (define_constants): Define symbolic names for
2651         the link register, last integer register and the fake CC register.
2652         Update patterns to use these symbolic names.
2653
2654 2000-11-22  Neil Booth  <neilb@earthling.net>
2655
2656         * cpplex.c (trigraph_ok): Ensure we don't warn twice.
2657         * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
2658
2659 2000-11-22  Richard Henderson  <rth@redhat.com>
2660
2661         * haifa-sched.c (sched_analyze_1): Don't special-case calls
2662         for clobbering registers.
2663         (sched_analyze_2): Likewise.
2664         (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
2665
2666 2000-11-22  Chris Demetriou  <cgd@sibyte.com>
2667             Neil Booth  <neilb@earthling.net>
2668
2669         * gcc.c (validate_switches): Validate multiple switches named
2670         in '|' (or) expressions in specs.
2671         (handle_braces): If more than 1 alternative in a '|' spec
2672         matches, call do_spec1 just once.
2673
2674 2000-11-22  Michael Meissner  <meissner@redhat.com>
2675
2676         * d30v.h (TARGET_SWITCHES): Add documentation strings.
2677         (TARGET_OPTIONS): Ditto.
2678         (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
2679         -O3.
2680
2681 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
2682
2683         * pa.c (hppa_encode_label): Account for addition of encoding
2684         character when allocating persistent space for the new label
2685         name.
2686
2687 2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
2688
2689         * Makefile.in, config.gcc, configure.in: Expunge remaining
2690         traces of facility for running MD files through C preprocessor.
2691
2692 2000-11-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2693
2694         * gcov.texi: Add magic comments for texi2pod.pl.
2695         * Makefile.in: Add rules to generate and install gcov.1.
2696         * gcov.1: New (generated) file.
2697
2698 2000-11-21  Richard Henderson  <rth@redhat.com>
2699
2700         * regrename.c (scan_rtx_reg): Terminate the chain rather than
2701         abort on mark_read with NO_REGS.
2702
2703 2000-11-21  Mike Stump  <mrs@wrs.com>
2704
2705         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
2706         compilation with older compilers, such as /bin/cc on SunOS.
2707         * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
2708
2709 2000-11-21  Richard Henderson  <rth@redhat.com>
2710
2711         * varasm.c (record_constant): Pad the constructed
2712         constant_descriptor appropriately.
2713
2714 Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
2715
2716         * rtl.h (traverse_md_constants): Declare.
2717         (struct md_constant): Define.
2718         * Makefile.in (HOST_RTL): Add hashtab.o .
2719         (OBJS): Add hashtab.o .
2720         (hashtab.o): New rule.
2721         (rtl.o): Depends on HASHTAB_H.
2722         * rtl.c (hashtab.h): #include.
2723         (md_constants): New static variable.
2724         (def_hash, def_name_eq_p, read_constants): New static functions.
2725         (traverse_md_constants): New function.
2726         (read_name): Do constant expansion.
2727         (read_rtx): Recognize define_constants.
2728         * gencodes.c (print_md_constant): New function.
2729         (main): Emit #defines for all constant definitions encountered.
2730         * md.texi (Constant Definitions): New node.
2731         * gensupport.c (xcalloc): New function.
2732
2733 2000-11-21  Richard Henderson  <rth@redhat.com>
2734
2735         * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
2736         * config/alpha/alpha-protos.h: Declare it.
2737         * config/alpha/alpha.md (abstf_internal): Use it.
2738         (negtf_internal): Likewise.
2739         (andnotdi3): Unstar the name.
2740         (movtf_internal): Add o/G alternative.
2741
2742 2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
2743
2744         * stringpool.c (stringpool_statistics): Also report number and
2745         percentage of entries which are identifiers.
2746
2747 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
2748
2749         * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
2750         visited before visiting it.
2751
2752 2000-11-21  Nick Clifton  <nickc@redhat.com>
2753
2754         * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
2755         TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
2756
2757         * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
2758
2759 2000-11-21  Richard Henderson  <rth@redhat.com>
2760
2761         * c-common.c (c_unsafe_for_reeval): New function.
2762         (add_c_tree_codes): Register it.
2763         * c-common.h: Declare it.
2764         * tree.c (lang_unsafe_for_reeval): New hook.
2765         (unsafe_for_reeval): Call it.
2766         * tree.h: Declare it.
2767
2768 2000-11-21  Richard Henderson  <rth@redhat.com>
2769
2770         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
2771         references as well.
2772
2773 2000-11-21  Neil Booth  <neilb@earthling.net>
2774
2775         * do_includes: Revert to using cpp_read_file.
2776
2777 2000-11-21  Bernd Schmidt  <bernds@redhat.co.uk>
2778
2779         * loop.c (consec_sets_giv): If the reg we're examining is anything
2780         but UNKNOWN_INDUCT, do nothing.
2781         Reset the reg's type to UNKNOWN_INDUCT before returning.
2782
2783         Mostly from Vladimir Makarov (vmakarov@redhat.com)
2784         * ia64.md (attr itanium_class): Define insn types as described in
2785         Itanium docs.
2786         (all insn patterns): Use itanium_class, not type attributes.
2787         Occasionally split alternatives as necessary.
2788         (attr type): Compute from new attr itanium_class.
2789
2790 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2791
2792         * tradcpp.c (output_line_command): Mark system headers as such in
2793         `line' commands.
2794
2795 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
2796
2797         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
2798         support in as as well.
2799         * configure: Regenerate.
2800
2801 2000-11-20  Richard Henderson  <rth@redhat.com>
2802
2803         * c-lex.c (orig_filename): New variable.
2804         (init_c_lex): Set it.  Move call to cpp_start_read ...
2805         (yyparse): ... here.  New function.
2806         * c-parse.in (yyparse_1): Rename the parser entry point.
2807         * c-tree.h: Declare it.
2808
2809 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
2810
2811         * expr.c (do_compare_and_jump): If op0 was replaced by promoted
2812         integer constant, use type of op1 for comparison.
2813
2814 2000-11-20  Stan Shebs  <shebs@apple.com>
2815
2816         * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
2817         * config/rs6000/x-darwin: New file, Darwin host fragment.
2818         * config.gcc (powerpc-*-darwin*): New host.
2819         * system.h (HAVE_DESIGNATED_INITIALIZERS):  Allow this to be
2820         overridden by a config file.
2821
2822 2000-11-20  Neil Booth  <neilb@earthling.net>
2823
2824         * cppmacro.c (paste_tokens): Rename from paste_payloads.
2825         Change token type after pasting spellings.
2826         (paste_all_tokens): Use it.
2827         * gcc.dg/cpp/paste2.c: Update test.
2828         * objc/execute/paste.m: New test.
2829
2830 2000-11-20  Richard Henderson  <rth@redhat.com>
2831
2832         * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
2833         dwarf_subscr_data_formats bits.
2834         * dwarfout.c (simple_type_size_in_bits): Handle a type with
2835         no computed size as size zero.
2836         (field_byte_offset): Likewise.
2837         (subscript_data_attribute): Handle a range with no upper bound.
2838
2839 2000-11-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2840
2841         * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
2842
2843 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2844
2845         * c-typeck.c (build_conditional_expr): When merging type
2846         qualifiers for conditional expressions between a pointer and a
2847         pointer to a void type, merge the qualifiers on the target types
2848         rather than the pointer type.  Remove obsolete conditioned out
2849         code.
2850
2851 2000-11-20  Neil Booth  <neilb@earthling.net>
2852
2853         * c-lang.c (lang_init_options): Update call to
2854         cpp_reader_init.
2855         * cppmain.c (main): Similarly.
2856         * fix-header.c (read_scan_file): Similarly.
2857         * cp/lex.c (lang_init_options): Similarly.
2858         * objc/objc-act.c (lang_init_options): Similarly.
2859         * cppexp.c (parse_number): Only warn for unextended C89.
2860         * cppinit.c (set_lang): New function.
2861         (cpp_reader_init): Take a LANG argument and pass it to set_lang.
2862         (COMMAND_LINE_OPTIONS): New option std=c++98.
2863         (cpp_handle_option): Use set_lang.
2864         * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
2865         * cppib.h (enum_c_lang): New enumeration.  Update comments.
2866
2867 2000-11-20  Will Cohen  <wcohen@redhat.com>
2868
2869         * calls.c (expand_call): Clear target only when target is in
2870         hard register and current_function_check_memory_usage is set.
2871
2872 2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
2873
2874         * toplev.c (rest_of_compilation): Run optimize_mode_switching even
2875         if not optimizing.
2876         * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
2877
2878 2000-11-19  Richard Henderson  <rth@redhat.com>
2879
2880         * crtstuff.c (force_to_data): Use array size 1 not 0.
2881
2882         * dwarf2out.c (simple_type_size_in_bits): Handle a type with
2883         no computed size as size zero.
2884         (field_byte_offset): Likewise.
2885
2886 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2887
2888         * config.gcc: Fix another typo.
2889
2890 2000-11-19  Richard Henderson  <rth@redhat.com>
2891
2892         * c-decl.c (grokdeclarator): Support flexible array members.
2893         Use open-ended ranges for these and zero-length arrays.
2894         * c-typeck.c (push_init_level): Validate the context of
2895         initialization of a zero-length array.
2896         * tree.c (int_fits_type_p): Be prepared for missing bounds.
2897         * varasm.c (array_size_for_constructor): New.
2898         (output_constructor): Use it for arrays of unspecified length.
2899         * extend.texi (Zero Length): Mention C99 flexible array members.
2900         Document initialization in a top-level struct as valid.
2901
2902 2000-11-19  Joseph S. Myers  <jsm28@cam.ac.uk>
2903
2904         * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
2905
2906         * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
2907         stdarg and varargs functions.
2908
2909 2000-11-19  Zack Weinberg  <zack@wolery.stanford.edu>
2910
2911         * gcc.c (process_command): Define 'j' variable when
2912         MODIFY_TARGET_NAME is defined.
2913
2914 2000-11-19  Richard Henderson  <rth@redhat.com>
2915
2916         * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
2917
2918 2000-11-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2919
2920         * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
2921         calculation and allocation.
2922
2923 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2924
2925         * builtins.c (c_getstr): Constify variable.
2926         * gmon-sol2.c (_mcleanup): Comment out #endif labels.
2927         * conflict.c (const_conflict_graph_arc): New typedef.
2928         (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
2929         * cppmacro.c (builtin_macro): Likewise.
2930         * dwarf2out.c (output_comp_unit): Constify variable.
2931         * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
2932         * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
2933         * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
2934         away const-ness.
2935         * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
2936         ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
2937         * varasm.c (const_str_htab_hash, const_str_htab_eq,
2938         compare_constant_1, record_constant_1): Constify.
2939
2940 2000-11-18  Richard Henderson  <rth@redhat.com>
2941
2942         * c-decl.c (grokdeclarator): Special case the creation of an
2943         index for a zero-length array.
2944         * tree.c (build_index_type): Revert Oct 20 change.
2945
2946 2000-11-18  Marek Michalkiewicz  <marekm@linux.org.pl>
2947
2948         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
2949         * config/avr/avr.c (jump_tables_size): New variable.
2950         (function_prologue): Initialize it as 0.
2951         (function_epilogue): Add it to function_size.
2952         (avr_output_addr_vec_elt): New function.  Count words in jump
2953         tables in jump_tables_size.  Move code ...
2954         * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
2955         Call avr_output_addr_vec_elt instead.
2956         * config/avr/avr.md (tablejump): Remove disabled define_expand.
2957
2958 2000-11-18  Mark Mitchell  <mark@codesourcery.com>
2959
2960         * configure.in: Make --enable-new-gxx-abi the default.
2961         * configure: Likewise.
2962
2963 2000-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2964
2965         * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
2966
2967         * tradcif.y: Include tradcpp.h.  Constify.  Make functions static.
2968         Move extern function declarations to tradcpp.h.
2969
2970         * tradcpp.c: Likewise.
2971
2972         * tradcpp.h: New file.
2973
2974 2000-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
2975
2976         * c-decl.c (check_for_loop_decls): New function.
2977         * c-parse.in (for_init_stmt): New.
2978         (select_or_iter_stmt): Use for_init_stmt.
2979         * c-tree.h (check_for_loop_decls): New declaration.
2980
2981 2000-11-18  Neil Booth  <neilb@earthling.net>
2982
2983         * cppinit.c: Update comments.
2984         (cpp_reader_init): Make -imacro and -include use the standard
2985         #include "" search path.
2986         (do_includes): New function.
2987
2988 2000-11-18  Ben Elliston  <bje@redhat.com>
2989
2990         * config/sh/crt1.asm (start_l): Move PC-relative move instruction
2991         out of a branch delay slot.
2992
2993 2000-11-17  Richard Henderson  <rth@redhat.com>
2994
2995         * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2996         (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
2997         (ASM_FILE_START): Only write out ecoff .file directive if
2998         emitting mdebug debugging.
2999
3000 2000-11-17  Richard Henderson  <rth@redhat.com>
3001
3002         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New.  Detect
3003         whether as accepts .file/.loc and produces dwarf2 line info.
3004         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
3005         the assembler supports it.
3006         * config.in, configure: Regenerate.
3007
3008 2000-11-17  Richard Henderson  <rth@redhat.com>
3009
3010         * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
3011
3012 2000-11-17  Jim Wilson  <wilson@redhat.com>
3013
3014         * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
3015         Don't clear need_barrier is next_insn is a CALL_INSN, or has
3016         instruction type B or UNKNOWN.
3017
3018 2000-11-17  Neil Booth  <neilb@earthling.net>
3019
3020         * cpperror.c (print_file_and_line): Don't display line number if 0.
3021
3022 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
3023
3024         * ggc.h: Delete ggc_add_string_root and ggc_mark_string.  Add
3025         digit_vector and digit_string.
3026         * stringpool.c (digit_vector): New.
3027         (ggc_alloc_string): Use digit_string.
3028
3029         * stmt.c (digit_strings): Delete.
3030         (init_stmt): Do not initialize digit_strings.
3031         (expand_asm_operands): Use ggc.h's digit_string macro.
3032         * toplev.c (mark_file_stack): Delete.
3033         (compile_file): Don't call init_tree_codes.
3034         (main): No need to make the file stack a GC root.
3035         * tree.c (init_tree_codes): Delete.
3036         * tree.h (init_tree_codes): Delete.
3037
3038         * c-lex.c: Don't include ggc.h.
3039         (mark_splay_tree_node, mark_splay_tree): Delete.
3040         (init_c_lex): No need to ggc_strdup string constant.  Don't add
3041         file_info_tree to GGC roots.
3042         (cb_enter_file, cb_rename_file): No need to ggc_strdup
3043         ip->nominal_fname.
3044
3045         * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
3046
3047         * dbxout.c (dbxout_init),
3048         dwarf2out.c (dwarf2out_line),
3049         ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
3050         varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
3051         xcoffout.c (xcoffout_source_file),
3052         i386.c (load_pic_register):
3053         Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
3054
3055         * except.c (create_rethrow_ref),
3056         profile.c (init_edge_profiler),
3057         toplev.c (compile_file),
3058         varasm.c (named_section, assemble_static_space,
3059         assemble_trampoline_template, output_constant_def, force_const_mem),
3060         i386.c (load_pic_register),
3061         ia64.c (ia64_encode_section_info),
3062         rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
3063         rs6000_emit_prologue, rs6000_emit_epilogue),
3064         rs6000.md (load_toc_aix_si, load_toc_aix_di):
3065         Change ggc_alloc_string (var, -1) to ggc_strdup (var).
3066
3067         * profile.c (output_func_start_profiler),
3068         tree.c (make_node),
3069         i386.c (load_pic_register): No need to ggc_strdup string constant.
3070
3071 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
3072
3073         * Makefile.in (config.status): Depend on config.gcc.
3074         * configure.in <for machine in $build $host $target>: Move
3075         contents of loop into config.gcc, removing autoconf quoting.
3076         Fix changequote bug for alpha*-*-vxworks*.
3077         * configure: Regenerate.
3078         * config.gcc: New.
3079
3080 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
3081
3082         * c-parse.in (if_prefix): Find the filename and line number at
3083         $-2 and $-1 respectively.
3084         * diagnostic.c (error_recursion): Add missing newline, use
3085         fputs, translate string.
3086
3087 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
3088
3089         * stringpool.c: New file.
3090         * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
3091         (ggc_alloc_string): Now in stringpool.o.
3092         * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
3093         * ggc.h: Delete prototype of ggc_add_string_root.  #define
3094         ggc_add_string_root and ggc_mark_string to nothing.  Prototype
3095         init_stringpool and stringpool_statistics.
3096         (ggc_alloc_string): Returns a const char *.
3097         * tree.c (hash_table, do_identifier_warnings): Delete.
3098         (init_obstacks): Don't initialize the identifier hash table.
3099         (get_identifier, maybe_get_identifier, start_identifier_warnings,
3100         set_identifier_size): Now in stringpool.c.
3101         * tree.h (struct tree_string): Constify pointer field.
3102         (approx_sqrt): Prototype.
3103
3104         * Makefile.in (stringpool.o): Add rule, mention in OBJS.
3105
3106         * toplev.c (approx_sqrt): New function.
3107         (compile_file): Call stringpool_statistics if mem_report is on.
3108         (main): Call init_stringpool.
3109
3110         * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
3111         (process_directive), c-typeck.c (constructor_asmspec, struct
3112         initializer_stack, start_init), except.c (create_rethrow_ref),
3113         stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
3114         (built_in_filename), varasm,c (in_named_name,
3115         assemble_static_space, struct constant_descriptor, struct
3116         deferred_string, struct pool_constant, force_const_mem),
3117         i386.c (pic_label_name, global_offset_table_name), rs6000.c
3118         (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
3119
3120         * c-common.c (combine_strings): Combine strings in scratch
3121         buffer, then pass to build_string.
3122         * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
3123         output_func_start_profiler), stmt.c (init_stmt), alpha.c
3124         (alpha_need_linkage), arm.c (arm_encode_call_attribute),
3125         i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
3126         rs6000.c (rs6000_encode_section_info): Create string in
3127         scratch buffer, then pass to ggc_alloc_string.
3128
3129         * stmt.c (expand_asm_operands): If we must adjust the
3130         constraint strings, do so by creating a new one, not by
3131         modifying the old one in place.  Constify some char *s.
3132         * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
3133         argument.  Create string in scratch buffer, then pass to
3134         ggc_alloc_string.
3135         * config/pa/pa-protos.h: Update prototype.
3136         * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
3137         hppa_encode_label takes only one argument.
3138
3139 2000-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3140
3141         * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
3142         malloc/realloc.
3143
3144         * cpplib.c (glue_header_name): Likewise.
3145
3146         * fixincl.c (run_compiles, start_fixer): Likewise.
3147
3148         * fixlib.c (load_file_data): Likewise.
3149
3150         * mkdeps.c (munge): Likewise.
3151
3152 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
3153
3154         * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
3155         trailing ';'.  Fix formatting.
3156
3157 2000-11-16  Jim Wilson  <wilson@redhat.com>
3158
3159         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
3160         Shift masks left by one to avoid conflict.
3161
3162         * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
3163         DECL_EXTERNAL set.
3164
3165 2000-11-16  Nick Clifton  <nickc@redhat.com>
3166
3167         * config/arm/arm.c (output_arm_prologue): Note nested functions.
3168         (arm_expand_prologue): For nested functions preserve the
3169         static chain register during stack frame creation.
3170
3171         * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
3172         (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
3173         with a stack frame there is a 4 byte gap between the arg
3174         pointer and the hard frame pointer (used to preserve the
3175         static chain register during stack frame creation).
3176
3177 2000-11-16  DJ Delorie  <dj@redhat.com>
3178
3179         * rtl.c (read_rtx): Provide suitable names for unnamed
3180         define_insn and define_insn_and_split patterns, based on file
3181         and line numbers.
3182
3183 2000-11-15  Neil Booth  <neilb@earthling.net>
3184
3185         * cpplib.c (start_directive, end_directive): New functions.
3186         (_cpp_handle_directive, run_directive): Use them.
3187         (_cpp_handle_directive): Don't -Wtraditional on indented
3188         null directives.
3189         (_cpp_push_buffer): Don't re-clear was_skipping.
3190         * cpplib.h (struct cpp_reader): New member la_saved.
3191         * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
3192         directives.
3193
3194         gcc.dg/cpp/_Pragma1.c: Update.
3195         gcc.dg/cpp/_Pragma2.c: New test.
3196
3197 2000-11-15  Mark Mitchell  <mark@codesourcery.com>
3198
3199         * toplev.c (wrapup_global_declarations): Don't write out
3200         artificial static variables that aren't needed.
3201
3202 2000-11-15  Bernd Schmidt  <bernds@redhat.co.uk>
3203
3204         * ia64.c (struct group): New structure.
3205         (last_group): New static array.
3206         (group_idx): New static variable.
3207         (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
3208         New static functions.
3209         (emit_insn_group_barriers): Initialize and keep track of group_idx
3210         and last_group.
3211         Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
3212         Replace all calls to emit_insn_after that emit a group barrier to use
3213         emit_group_barrier_after.
3214         * ia64.h (MASK_B_STEP): New.
3215         (other MASK_XXX macros): Renumbered.
3216         (TARGET_B_STEP): New.
3217         (TARGET_SWITCHES): Add -mb-step.
3218
3219 2000-11-15  Fred Fish  <fnf@be.com>
3220
3221         * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
3222         machines for which fixincludes is not needed.
3223         * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
3224
3225 2000-11-15  Jason Merrill  <jason@redhat.com>
3226
3227         * diagnostic.c (finish_abort): New fn.
3228         (fancy_abort, error_recursion): Use it.
3229         * toplev.c (crash_signal): Likewise.
3230         * diagnostic.h: Declare it.
3231
3232 2000-11-13  Andrew Haley  <aph@redhat.com>
3233
3234         * tree.c (build_type_no_quals): New function.
3235         * tree.h (build_type_no_quals): Declare.
3236         * c-common.c (c_get_alias_set): When considering type
3237         compatibility for pointer types, ignore cv-qualifiers anywhere in
3238         a pointer chain.
3239
3240 2000-11-15  Graham Stott  <grahams@redhat.com>
3241
3242         * regrename.c (scan_rtx_rtx): Skip to the next chain on
3243         encountering a terminated chain.
3244
3245 2000-11-14  Mark Mitchell  <mark@codesourcery.com>
3246
3247         * configure.in: Move check for V3 above check for C++ header-file
3248         directory.
3249         * configure: Regenerated.
3250
3251 2000-11-14  DJ Delorie  <dj@redhat.com>
3252
3253         * config/v850/v850.c: Remove obstacks.
3254
3255 Tue Nov 14 21:54:31 2000  Marek Michalkiewicz  <marekm@linux.org.pl> & Denis Chertykov  <denisc@overta.ru>
3256
3257         * config/avr/avr.c (avr_case_values_threshold): New.
3258         (avr_override_options): Set it depending on options, make it large
3259         when not optimizing to work around "unable to generate reloads".
3260
3261         * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
3262         (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
3263         executable if not AVR_MEGA.  Make sure jump tables are word-aligned.
3264         (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
3265         (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
3266         (avr_case_values_threshold): Declare as extern int.
3267         (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
3268
3269         * config/avr/avr.md (tablejump): Removed.
3270         (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
3271         (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
3272         index in the table, not multiplied by 2.
3273         (casesi): Change to match the above insns.  Always enable.
3274
3275         * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
3276         Change to expect the word address of the table, multiply it by 2
3277         here and not in the caller.  Change "adiw" to faster "inc".
3278
3279 2000-11-14  Neil Booth  <neilb@earthling.net>
3280
3281         * cppexp.c (parse_defined): Call cpp_get_token not
3282         _cpp_get_token.
3283         (lex): Similarly.
3284         * cpplex.c (cpp_output_line): Similarly.
3285         * cpplib.c (glue_header_name, do_line, do_ident,
3286         parse_answer, parse_assertion): Similarly.
3287         (_cpp_handle_diretive): Don't save to lookaheads
3288         when processing directives.
3289         * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
3290         _cpp_get_token.
3291         (funlike_invocation_p): Don't save to lookaheads
3292         when pre-expanding arguments.
3293         (_cpp_get_token): Delete.
3294         (cpp_get_token): Merge contents of _cpp_get_token.
3295
3296 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3297
3298         * builtins.c (expand_builtin_setjmp): Set
3299         current_function_calls_setjmp.
3300         (expand_builtin_longjmp): Set current_function_calls_longjmp.
3301
3302         * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
3303         (do_builtin_setjmp_setup): New insn.
3304
3305 Tue Nov 14 12:34:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3306
3307         * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
3308         (int_fits_type_p): For variable bounds, call force_fit_type.
3309
3310 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3311
3312         * varasm.c (struct deferred_string): New structure.
3313         (const_str_htab): New variable.
3314         (STRHASH): New macro.
3315         (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
3316         constr_str_htab_eq, const_str_htab_del): New functions.
3317         (output_constant_def): Add DEFER argument, defer string
3318         constants until mark_constant_pool time if requested.
3319         (mark_constant_pool): Walk the insn chain even if const_str_htab is
3320         not empty.
3321         (mark_constants): If a SYMBOL_REF for deferred string is found,
3322         output it and remove from hash table.
3323         (output_addressed_constants): Set DEFER to 0 in call to
3324         output_constant_def.
3325         * rtl.h (STRING_POOL_ADDRESS_P): Define.
3326         (output_constant_def): Adjust prototype.
3327         * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
3328
3329 2000-11-14  Chandrakala Chavva  <cchavva@redhat.com>
3330
3331         * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
3332         signed types if flag_trapv.
3333
3334 2000-11-14  Zack Weinberg  <zack@wolery.stanford.edu>
3335
3336         * tradcpp.c, tradcif.y: Update FSF mailing address, delete
3337         reference to GPLv1.
3338
3339 2000-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3340
3341         * c-common.h (CTI_C_SIZE_TYPE): Update comment.
3342
3343 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3344
3345         * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
3346         to array of pool_constnat pointers.
3347         (struct pool_constant): Add next_sym and label members.
3348         (struct pool_sym): Remove.
3349         (init_varasm_status): Change pool_sym into pool_constant.
3350         (mark_pool_constant): Mark pc->label string as well.
3351         (mark_pool_sym_hash_table): Remove.
3352         (mark_varasm_status): Remove it from caller as well.
3353         (free_varasm_status): Don't free pool_sym structures.
3354         (force_const_mem): Don't allocate pool_sym structure, instead
3355         fill pool->label and chain it into rtx_sym hash table.
3356         (find_pool_constant, mark_constant_pool): Use pool_constant instead
3357         of pool_sym.
3358
3359 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3360
3361         * reload1.c (emit_input_reload_insns): Honour forcing of constants
3362         into memory by PREFERRED_RELOAD_CLASS NO_REGS.
3363
3364 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
3365
3366         * dominance.c: New file.
3367         * Makefile.in (OBJS): Add dominance.o.
3368
3369         * flow.c (compute_flow_dominators): Remove.
3370         (compute_immediate_dominators): Remove.
3371         (compute_immediate_postdominators): Remove.
3372         * basic-block.h: Remove their prototypes.
3373         (calculate_dominance_info): Add prototype.
3374
3375         * dce.c (eliminate_dead_code): Change calls to above functions.
3376         Don't compute dominators but only immediate dominators.
3377         * flow.c (flow_loops_find): Change callers.
3378         * gcse.c (compute_code_hoist_data): Likewise.
3379         * haifa-sched.c (schedule_insns): Likewise.
3380         * ifcvt.c (if_convert): Likewise.
3381         * ssa.c (convert_to_ssa): Likewise, and only compute immediate
3382         dominators.
3383
3384 2000-11-14  Richard Henderson  <rth@redhat.com>
3385
3386         * stmt.c (warn_if_unused_value): Don't warn if the expression
3387         has side effects.
3388
3389         * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
3390         (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
3391
3392 2000-11-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3393
3394         * loop.c (basic_induction_var): Revert accidental checkin.
3395
3396 2000-11-13  Hans-Peter Nilsson  <hp@axis.com>
3397
3398         * c-lex.c (cb_leave_file): Harmonize conditions and order of
3399         statements to those of process_directive for (action == act_pop).
3400
3401         * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
3402
3403         * local-alloc.c (equiv_init_movable_p): References to CC0 are not
3404         movable.
3405
3406 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3407
3408         * c-parse.in (stmts_and_decls): Deprecate use of label at end of
3409         compound statement.
3410
3411 2000-11-13  Neil Booth  <neilb@earthling.net>
3412
3413         * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
3414         cases return without MI check.
3415         * cpplib.c (do_diagnostic): Take boolean of whether to
3416         print the directive name.
3417         (do_error, do_warning): Update.
3418         (do_pragma_dependency): Use it.
3419         * cpplib.h (VARARGS_FIRST): Delete.
3420         (struct cpp_token): Delete integer.
3421         * cppmacro.c (enter_macro_context): Move disabled check
3422         to _cpp_get_token.
3423         (_cpp_get_token): Simplify into a single loop.
3424
3425 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3426
3427         * configure.in:  Use 'test -f' not '[ -e'.
3428         * configure: Regenerated.
3429
3430 2000-11-13  DJ Delorie  <dj@redhat.com>
3431
3432         * config/mn10300/mn10300.md (store_movm): Note which registers are
3433         really used or clobbered.
3434
3435 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3436
3437         * c-parse.in (ends_in_label): Remove from %union and %type.
3438         (decls, stmts, lineno_stmt_or_labels, xstmts,
3439         lineno_stmt_or_label, stmt_or_label): Remove.
3440         (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
3441         lineno_stmt_decl_or_labels_ending_decl,
3442         lineno_stmt_decl_or_labels_ending_label,
3443         lineno_stmt_decl_or_labels_ending_error,
3444         lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
3445         lineno_stmt, lineno_label): New.
3446         (compstmt_nostart): Use compstmt_contents_nonempty.
3447
3448 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3449
3450         * c-common.c (boolean_increment): New function.
3451         * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
3452         CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
3453         (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
3454         (boolean_increment): Declare.
3455         * c-convert.c (convert): Allow for BOOLEAN_TYPE.
3456         * c-decl.c (init_decl_processing): Create boolean nodes.
3457         (finish_struct): Allow for _Bool bitfields.
3458         * c-parse.in (reswords): Add _Bool.
3459         (rid_to_yy): Allow for RID_BOOL.
3460         * c-typeck.c (default_conversion): Make booleans promote to int.
3461         (convert_arguments, build_unary_op, build_modify_expr,
3462         convert_for_assignment): Allow for booleans.
3463         * ginclude/stdbool.h: Make conforming to C99.
3464
3465 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3466
3467         * c-parse.in (c99_block_start, c99_block_end,
3468         c99_block_lineno_labeled_stmt): New.
3469         (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
3470         (stmt): Split off selection and iteration statements into...
3471         (select_or_iter_stmt): New.  Use c99_block_lineno_labeled_stmt.
3472
3473 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3474
3475         * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
3476         -time): Update.
3477
3478 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3479
3480         * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
3481         Rewrite to avoid use of match_dup.  Don't try to tie registers that
3482         are not in the same mode.
3483
3484 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3485
3486         * invoke.texi: Update lists of languages and suffixes supported.
3487
3488 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3489
3490         * configure.in: Take toplevel configure arguments from the
3491         environment to create configargs.h and substitute
3492         gcc_config_arguments, taking account of any existing configargs.h
3493         if reconfiguring.
3494         * configure: Regenerate.
3495         * gccbug.in: Include toplevel configure arguments in gccbug.
3496
3497 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3498
3499         * varasm.c (struct constant_descriptor): Put CONTENTS inside a
3500         union to make it well-aligned.  Update all uses.
3501
3502 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3503
3504         * c-parse.in (initelt): Give appropriate pedantic warnings,
3505         depending on flag_isoc99, for non-ISO syntax and for C99 syntax
3506         outside C99 mode.
3507         (designator): If pedantic, pedwarn for a designator specifying a
3508         range of elements.
3509         * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
3510         these cases.
3511         * extend.texi: Document the C99 syntax as the preferred syntax,
3512         and the pre-2.5 syntax as obsolete.  Mention use of designator
3513         lists for nested subobjects.
3514
3515 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3516
3517         * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
3518         Add ATTRIBUTE_PRINTF.
3519         * tradcpp.c (v_message, warning, error, fatal, error_with_line):
3520         Add ATTRIBUTE_PRINTF*.
3521
3522 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3523
3524         * function.c (assign_parms): When calling put_var_into_stack, make
3525         sure that there are no hidden pending sequences.
3526
3527 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3528
3529         * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
3530         BUILT_IN_RINDEX.  Add missing checks for BUILT_IN_STRCHR and
3531         BUILT_IN_STRRCHR.
3532
3533         * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
3534
3535         * c-common.c (c_common_nodes_and_builtins): Declare index and
3536         rindex when nonansi builtins are allowed.
3537
3538         * extend.texi (index, rindex): Document new builtins.
3539
3540 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3541
3542         * configure.in: Turn on libstdc++ V3 by default.
3543         * configure: Regenerated.
3544
3545         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
3546
3547 2000-11-12  Jakub Jelinek  <jakub@redhat.com>
3548
3549         * reload1.c (set_label_offsets): Go inside of PARALLELs.
3550
3551 2000-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3552
3553         * invoke.texi: Clean up option summary.
3554
3555 2000-11-12  Nick Clifton  <nickc@redhat.com>
3556
3557         * config/mcore/mcore.c: Fix comment formating, and adjust sequence
3558         of #include headers.
3559
3560 2000-11-12  Marc Espie <espie@openbsd.org>
3561
3562         * configure.in: Fix filds test.
3563         * configure: Regen.
3564
3565 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3566
3567         * jump.c (delete_computation): Don't assume that just becuase an
3568         instruction sets a register, that register is dead.
3569
3570 2000-11-12  Neil Booth  <neilb@earthling.net>
3571
3572         * cppexp.c: Don't worry about pfile->skipping.
3573         * cpplib.c (struct if_stack): Make was_skipping unsigned char.
3574         (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
3575         for handled directives.
3576         (skip_rest_of_line): Use _cpp_lex_token after popping contexts
3577         and releasing lookaheads.
3578         (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
3579         (do_else, do_elif, push_conditional): Update logic.
3580         (do_endif): Set buffer->was_skipping rather than pfile->skipping.
3581         (unwind_if_stack): Inline into cpp_pop_buffer.
3582         (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
3583         * cpplex.c (_cpp_lex_token): Clear skipping on EOF.  Handle
3584         multiple-include optimisation.
3585         * cpplib.h (struct cpp_buffer): New member was_skipping.
3586         * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping.  This
3587         works because skipping == 0 in directives.
3588         (_cpp_release_lookahead): Renamed from release_lookahead.
3589         (cpp_get_token): No need to check skipping as _cpp_get_token does
3590         this for us.  No need to handle MI optimisation.
3591
3592 Sat Nov 11 21:14:02 2000  Mark P Mitchell  <mark@codesourcery.com>
3593
3594         * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
3595         declarations that use `__MATH_EXCEPTION' in their prototypes, too.
3596         * fixinc/fixincl.x: Regenerated.
3597
3598 2000-11-11  Bruce Korb  <bkorb@gnu.org>
3599
3600         * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
3601         (avoid_wchar_t_type): ditto
3602         * fixinc/fixinc.irix: obsoleted
3603
3604 2000-11-11  Zack Weinberg  <zack@wolery.stanford.edu>
3605
3606         * configure.in: Don't add $outputs to all_lang_makefiles.  Add
3607         $srcdir/$s/Makefile.in if it exists.
3608         * configure: Regenerate.
3609
3610 Sat Nov 11 18:41:20 2000  Mark P Mitchell  <mark@codesourcery.com>
3611
3612         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
3613
3614 2000-11-11  Jason Merrill  <jason@redhat.com>
3615
3616         * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
3617         give the parm a register and then call put_var_into_stack.
3618         * stmt.c (expand_decl): Likewise.
3619
3620 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3621
3622         * gcc.texi: Adjust wording.
3623
3624 2000-11-11  Mark Mitchell  <mark@codesourcery.com>
3625
3626         * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
3627         * fininc/fixincl.x: Regenerated.
3628
3629 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3630
3631         * invoke.texi: Correct spelling of -foptimize-register-move.
3632
3633 2000-11-11  Neil Booth  <neilb@earthling.net>
3634
3635         Remove CPP_PLACEMARKERs.
3636
3637         * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
3638         * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
3639         * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
3640                    Similarly.
3641         * cpplib.h: Remove CPP_PLACEMARKER.
3642         (struct lexer_state): Rename skip_newlines to next_bol.
3643         * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
3644         Simplify prev_white handling as a result.
3645         (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
3646         (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
3647         (parse_args): Similarly.  Update argument count tests.
3648         (enter_macro_context): Return 2 to indicate an empty macro.
3649         (replace_args): Don't bother pre-expanding an empty argument.
3650         Handle placemarkers and ## extension during pre-expansion.
3651         (cpp_get_token): Handle empty macro expansions.  Don't worry
3652         about CPP_PLACEMARKERs.
3653         (_cpp_create_definition): Empty macros are now empty.
3654         (cpp_macro_defintion): Don't special case empty macros.
3655         * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
3656         * c-lex.c: Similarly.
3657
3658 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3659
3660         * gcc.texi, invoke.texi: Add new section discussing language
3661         standards; link to it where appropriate; refer to ISO C instead of
3662         ANSI C.
3663
3664 2000-11-11  Alexandre Oliva  <aoliva@redhat.com>
3665
3666         * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
3667         into account.
3668
3669         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
3670         modes.
3671
3672 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3673
3674         * gcc.texi, gcov.texi: Update dates and version numbers.
3675
3676 2000-11-10  Zack Weinberg  <zack@wolery.stanford.edu>
3677
3678         * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.  Look for
3679         flex and bison, specifically, first in a unified build and
3680         then installed on the system.
3681         * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@.  Rename
3682         LEXFLAGS to FLEXFLAGS.  Adjust ORDINARY_FLAGS_TO_PASS to
3683         match.
3684
3685         (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
3686         cppdefault.o): Remove pointless sed munging of source file
3687         name.
3688
3689 2000-11-10  Bernd Schmidt  <bernds@redhat.co.uk>
3690
3691         * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
3692         for address reloads.  Push replacements for REG_INC notes.
3693         (regno_clobbered_p): New arg SETS.  Examine SETs if it's nonzero.  All
3694         callers changed.
3695         * reload1.c (choose_reload_regs): Registers set in the insn can't be
3696         used for RELOAD_OTHER reloads.
3697
3698 2000-11-10  Mark Mitchell  <mark@codesourcery.com>
3699
3700         * c-dump.h: New file.
3701
3702 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3703
3704         * alpha.c (check_float_value): Use memcpy, not bcopy.
3705         * arm.c (output_move_double): Likewise.
3706         * arm.md: Likewise.
3707         * m88k.c (legitimize_operand): Likewise.
3708         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3709         * m88k.md: Likewise.
3710         * mips.c (override_options): Likewise.
3711         * mips.md: Likewise.
3712         * romp.c (output_fpops): Likewise.
3713         * rs6000.c (rs6000_override_options): Likewise.
3714         * sh.md: Likewise.
3715         * vax.c (check_float_value): Likewise.
3716
3717         * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
3718         * expmed.c (synth_mult): Likewise.
3719         * final.c (add_bb_string): Likewise.
3720         * genattr.c (main): Likewise.
3721         * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
3722         Likewise.
3723         * jump.c (thread_jumps): Likewise.
3724         * prefix.c (save_string): Likewise.
3725         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
3726         * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
3727         * reload1.c (reload, eliminate_regs): Likewise.
3728
3729 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3730
3731         * gcc.texi (Service): Update to reflect current practice and
3732         location of the GNU service directory.
3733
3734 2000-11-09  Bernd Schmidt  <bernds@redhat.co.uk>
3735
3736         * regrename.c (build_def_use): Mark contents of REG_INC notes as
3737         needing replacement.
3738
3739         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
3740         a no-op move if regs are equal.
3741         * toplev.c (rest_of_compilation): Do the noop moves elimination pass
3742         when calling jump after post-reload splitting.
3743
3744 2000-11-09  Jan van Male  <jan.vanmale@fenk.wau.nl>
3745
3746         * c-tree.texi: Fix typos.
3747         * extend.texi: Likewise
3748         * gcov.texi: Likewise
3749         * rtl.texi: Likewise
3750         * tm.texi: Likewise
3751
3752 2000-11-09  Hans-Peter Nilsson  <hp@axis.com>
3753
3754         * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
3755         in_system_header and flags[1] before dereferencing flags[2].
3756
3757 2000-11-09  Matthew Hiller <hiller@redhat.com>
3758
3759         * reload1.c (reload_combine): Fixed calculation of
3760         first_index_reg, last_index_reg.
3761
3762 2000-11-09  Mark Mitchell  <mark@codesourcery.com>
3763
3764         * c-dump.c (dequeue_and_dump): Dump function bodies.
3765
3766         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
3767         (c-dump.o): New target.
3768         * c-common.h (flag_dump_translation_unit): New variable.
3769         (C_TYPE_QUALS): New macro.
3770         (strip_array_types): New function.
3771         (DECL_C_BIT_FIELD): New macro.
3772         (SET_DECL_C_BIT_FIELD): Likewise.
3773         (CLEAR_DECL_C_BIT_FIELD): Likewise.
3774         (dump_info_p): New typedef.
3775         (dump_tree_fn): Likewise.
3776         (lang_dump_tree): New variable.
3777         (dump_node_to_file): New function.
3778         * c-common.c (flag_dump_translation_unit): Define it.
3779         (strip_array_types): New function.
3780         * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
3781         * c-lang.c (finish_file): Call dump_node_to_file if
3782         flag_dump_translation_unit.
3783         * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
3784         * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
3785         * c-dump.c: New file.
3786
3787 2000-11-09  Christopher Faylor <cgf@cygnus.com>
3788
3789         * config/i386/cygwin.h: Add mingw startfile prefix.
3790
3791 2000-11-09  Richard Henderson  <rth@redhat.com>
3792
3793         * flow.c (invalidate_mems_from_set): Split out from ...
3794         (mark_set_1): ... here.
3795         (try_pre_increment_1): Use it.  Use propagate_block_delete_insn
3796         instead of turning insn into a NOTE_INSN_DELETED.
3797
3798 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3799
3800         * extend.texi, invoke.texi: Move documentation of builtin versions
3801         of C library functions to one place and update.
3802
3803 2000-11-09  Richard Henderson  <rth@redhat.com>
3804
3805         * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
3806         the types themselves to discover type equivalence.
3807
3808 2000-11-09  Mike Stump  <mrs@wrs.com>
3809
3810         * Makefile.in (distclean): Remove a few extra leftovers.
3811
3812 2000-11-09  Richard Henderson  <rth@redhat.com>
3813
3814         * recog.c (validate_replace_rtx_1): Consider subregs when
3815         replacing a register with a constant inside a sign/zero_extend.
3816
3817         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3818
3819 2000-11-09  Geoffrey Keating  <geoffk@redhat.com>
3820
3821         * c-decl.c (finish_struct): When a structure is completed,
3822         check all its variant types for completeness.
3823
3824 2000-11-09  Neil Booth  <neilb@earthling.net>
3825
3826         * cpphash.c: Move cpp_defined here from cpplib.c.
3827         * cpplib.c: Update comments, move cpp_defined to cpphash.c.
3828         * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
3829         * cppmacro.c (cpp_get_token): Update comments, no need now
3830         to catch the CPP_EOF meaning EOL case.
3831
3832 2000-11-08  Geoffrey Keating  <geoffk@redhat.com>
3833
3834         * config/sparc/sparc.c (sparc_va_arg): When the required alignment
3835         is more than that provided, copy to a temporary.
3836
3837 2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
3838
3839         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
3840         interpreting $out as a macro assignment.
3841         * Makefile.in (T_TARGET): New auxiliary macro and target.
3842         (all): Add a target right in the beginning, so that we don't build
3843         T_TARGET by default.
3844
3845 2000-11-09  Graham Stott  <grahams@redhat.com>
3846
3847         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
3848         order for -mintel-syntax.  Remove comment now that the operand
3849         order has been checked.
3850         (mmx_pextrw): Likewise.
3851         (mmx_pshufw): Likewise.
3852
3853 2000-11-09  Jakub Jelinek  <jakub@redhat.com>
3854
3855         * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
3856         (c_getstr): New function.
3857         (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
3858         If both arguments are constant string, optimize out.
3859         (expand_builtin_strchr, expand_builtin_strrchr): New functions.
3860         (expand_builtin_strpbrk): Use c_getstr, do nothing if
3861         -fcheck-memory-usage.
3862         (expand_builtin_fputs): Likewise.
3863         (expand_builtin_strcmp): Add MODE argument.
3864         Use even if !HAVE_cmpstrsi.
3865         Optimize the case when both arguments are constant strings.
3866         (expand_builtin): Adjust expand_builtin_strcmp caller.
3867         Call expand_builtin_strchr and expand_builtin_strrchr.
3868         * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
3869         builtins.
3870         * builtins.def (BUILT_IN_STRRCHR): Add.
3871
3872 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3873
3874         * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
3875
3876 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
3877
3878         * calls.c (expand_call, emit_library_call_value_1), collect2.c
3879         (scan_prog_file), config/a29k/a29k.c (print_operand),
3880         config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
3881         instead of bcopy ().
3882         * real.h: Use memcmp () instead of bcmp ().
3883         * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
3884         (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
3885         ultrasparc_sched_init, ultrasparc_sched_reorder),
3886         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
3887         instead of bzero ().
3888         * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
3889         instead of rindex ().
3890         * configure.in: Don't check for bzero, bcmp, index or rindex.
3891         * configure, config.in: Regenerate.
3892         * system.h: Don't include declarations for bzero, bcmp, index or
3893         rindex.
3894         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
3895         bzero, bcmp, index or rindex.
3896
3897 Wed Nov  8 21:58:20 2000  Christopher Faylor <cgf@cygnus.com>
3898
3899         * config/i386/cygwin.h: Add -no-win32 switch.  Separate -mno-cygwin
3900         include and library paths from -mcygwin case.  Parameterize some
3901         declarations to avoid warnings.  Use standard locations for include and
3902         lib dirs.
3903
3904 2000-11-08  Nick Clifton  <nickc@redhat.com>
3905
3906         * config/arm/arm.md (mulsidi3adddi): Change output operand
3907         constraint from "=&" to "+&".
3908         (umulsidi3adddi): Change output operand constraint from "=&" to
3909         "+&".
3910
3911 2000-11-08  Richard Henderson  <rth@redhat.com>
3912
3913         * flow.c (init_propagate_block_info): Protect the rtx stored in
3914         mem_set_list from modification by find_auto_inc.
3915         (mark_set_1): Likewise.
3916
3917 2000-11-08  Neil Booth  <neilb@earthling.net>
3918
3919         Move directive handling into the lexer itself.
3920
3921         * cpplex.c (_cpp_lex_token): Handle directives directly.
3922         In the case of a directive interrupting a function-like
3923         macro invocation, use extra_char since read_ahead is
3924         used to store the '#'.  Return a CPP_EOF in this case.
3925         * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
3926         (cpp_get_token): Don't handle directives here.
3927         * cpplib.h: Remove CPP_DHASH token type.
3928
3929 Wed Nov  8 21:53:41 MET 2000  Jan Hubicka  <jh@suse.cz>
3930
3931         * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
3932         formed using PRE_MODIFY too.
3933
3934 2000-11-08  Mark Mitchell  <mark@codesourcery.com>
3935
3936         * c-tree.texi (VAR_DECL): Describe representation of GCC's
3937         extension for placing variables in particular registers.
3938
3939         * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
3940         unprototyped C functions with no parameters.
3941
3942 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
3943
3944         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
3945         before passing to fprintf.
3946
3947 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
3948
3949         * function.c (expand_function_start): Cast GET_MODE_SIZE to
3950         HOST_WIDE_INT before negating it.
3951
3952 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
3953
3954         * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
3955         passed in multiple non-contiguous locations.
3956
3957 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3958
3959         * README.gnat: Remove file.
3960
3961 2000-11-08  Alexandre Oliva  <aoliva@redhat.com>
3962
3963         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
3964         in-place.
3965
3966 2000-11-07  Richard Henderson  <rth@redhat.com>
3967
3968         * dwarfout.c (INSN_LABEL_FMT): Remove.
3969         (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
3970         (dwarfout_label): Remove.
3971         * dwarfout.h: Remove it's prototype.
3972         * dwarf2out.c (INSN_LABEL_FMT): Remove.
3973         (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
3974         (dwarf2out_label): Remove.
3975         * dwarf2out.h: Remove it's prototype.
3976         * final.c (final_scan_insn): Don't call dwarf[2]out_label.
3977
3978 2000-11-07  Richard Henderson  <rth@redhat.com>
3979
3980         * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
3981         search on the unwind region section.
3982
3983         * config/ia64/ia64.md (movbi): Add r/r alternative.
3984         (cmovdi_internal_astep): Describe all combinations of register
3985         classes for sources & destinations; remove matching constraints.
3986         (cmovdi_internal): Likewise.
3987
3988         * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
3989
3990 2000-11-07  Richard Henderson  <rth@redhat.com>
3991
3992         * c-lang.c (start_cdtor, finish_cdtor): New functions.
3993         (finish_file): Use them in building constructor/destructor functions.
3994
3995         * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
3996         LD_FINI_SWITCH): Move ...
3997         * config/alpha/osf.h: ... here.
3998         * config/alpha/alpha-interix.h: Don't undef them.
3999
4000 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
4001
4002         * config/mips/t-iris6 (FPBIT): New.  Added so that __unorddf2 is
4003         included in libgcc.a.
4004         (DPBIT): Likewise.
4005         (dp-bit.c): Likewise.
4006         (fp-bit.c): Likewise.
4007
4008 2000-11-07  Nick Clifton  <nickc@redhat.com>
4009
4010         * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
4011         (INTERNAL_ASM_OP): Add missing tab.
4012
4013 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4014
4015         * alias.c (init_alias_analysis), calls.c (expand_call,
4016         emit_library_call_value_1), combine.c (init_reg_last_arrays),
4017         cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
4018         (init_output_buffer, set_diagnostic_context), dwarf2out.c
4019         (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
4020         (init_emit_once), fold-const.c (mul_double, div_and_round_double),
4021         function.c (assign_parms), gcse.c (compute_can_copy,
4022         alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
4023         compute_hash_table, compute_set_hash_table,
4024         compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
4025         (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
4026         clear_units, schedule_block), integrate.c (initialize_for_inline,
4027         expand_inline_function), jump.c (thread_jumps), local-alloc.c
4028         (local_alloc), loop.c (combine_movables, count_loop_regs_set,
4029         load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
4030         regclass.c (init_reg_sets, init_reg_sets_1, regclass,
4031         record_reg_classes, allocate_reg_info), reload.c
4032         (get_secondary_mem, remove_address_replacements, find_reloads),
4033         reload1.c (reload, set_initial_label_offsets, finish_spills,
4034         reload_as_needed, choose_reload_regs_init,
4035         reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
4036         (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
4037         (rename_registers), stmt.c (expand_end_case), unroll.c
4038         (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
4039         () instead of bzero ().
4040
4041 2000-11-07  Neil Booth  <neilb@earthling.net>
4042
4043        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
4044
4045 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4046
4047         * c-common.c (combine_strings): Only warn about long strings for C.
4048
4049 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
4050
4051         * combine.c (distribute_notes): Fix typo in last change.
4052
4053 2000-11-07  Geoff Keating  <geoffk@redhat.com>
4054
4055         * config/rs6000/rs6000.md (movdi_internal32+1): Use
4056         operand_subreg_force rather than gen_rtx_SUBREG.
4057         (movdi_internal32+2): Likewise.
4058
4059 2000-11-07  Philip Blundell  <philb@gnu.org>
4060
4061         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
4062         * config/arm/linux-aout.h: Likewise.
4063         * configure: Regenerate.
4064
4065 2000-11-07  Philipp Thomas  <pthomas@suse.de>
4066
4067         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
4068         accepted my the gettext maintainer.
4069
4070 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4071
4072         * builtins.c (expand_builtin_strpbrk): New function.
4073         (expand_builtin): Handle BUILT_IN_STRPBRK.
4074
4075         * builtins.def (BUILT_IN_STRPBRK): New entry.
4076
4077         * c-common.c (c_common_nodes_and_builtins): Declare builtin
4078         strpbrk.
4079
4080 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
4081
4082         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
4083         * POTFILES.in: Add config/alpha/freebsd.h
4084         * configure.in: Add alpha*-freebsd support.
4085         * configure: Regenerate.
4086
4087 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4088
4089         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
4090         copy of ptr_type_node rather than ptr_type_node itself.
4091
4092 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
4093
4094         * combine.c (recog_for_combine): Allocate uninitialized vector with
4095         rtvec_alloc.
4096         * recog.c (apply_change_group): Likewise.
4097
4098 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
4099
4100         * flow.c (verify_local_live_at_start): Back out last change.
4101         * combine.c (distribute_notes): When parts of a hard reg are
4102         neither set nor referenced in PLACE, search backwards for a
4103         place to put a REG_UNUSED note; if none found, ask for flow
4104         info refresh.
4105
4106 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
4107
4108         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
4109         with (clobber (match_scratch...)).
4110
4111 2000-11-06  Neil Booth  <neilb@earthling.net>
4112
4113         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
4114         error status.
4115
4116 2000-11-06  Neil Booth  <neilb@earthling.net>
4117
4118         * tradcpp.c (special_symbol): Assign an null string rather
4119         than writing to an unallocated buffer.
4120
4121 2000-11-06  Neil Booth  <neilb@earthling.net>
4122
4123         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
4124         CPP_MACRO_ARG case.
4125
4126 2000-11-06  Neil Booth  <neilb@earthling.net>
4127
4128         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
4129         tok.val.arg_no as appropriate.
4130         * cppexp.c (lex): Similarly.
4131         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
4132         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
4133         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
4134         cpp_macro_definition): Similarly.
4135         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
4136
4137 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4138
4139         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
4140         operands[1] is constant, calculate the sum and generate movdi.
4141         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
4142         (subsi3): Use SImode in call to arith_4096_operand.
4143
4144 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4145
4146         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
4147         adjust %o1, not %o0 if the return type is large structure.
4148
4149 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4150
4151         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
4152         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
4153
4154 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
4155
4156         * expmed.c (expand_divmod): For signed divide by 2, prefer
4157         a branch and fewer shifts if branches are very cheap.
4158
4159 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4160
4161         * Makefile.in: Remove all targets related to building
4162         distributions and diffs, or INSTALL.
4163         * INSTALL, install1.texi: Remove.
4164         * configure.in: Remove mention of distdir.
4165         * configure: Regenerate.
4166         * objc/Make-lang.in: Remove mention of distdir.
4167
4168 2000-11-04  Neil Booth  <neilb@earthling.net>
4169
4170         * cpp.texi: Update for _Pragma.
4171
4172 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4173
4174         * gcc.texi (Contributing): Update URL for projects web page.
4175
4176 2000-11-04  Neil Booth  <neilb@earthling.net>
4177
4178         * cpplex.c (parse_string): Don't allow multiline strings in
4179         #include family directives.
4180
4181 2000-11-04  Neil Booth  <neilb@earthling.net>
4182
4183         * cpplib.c (do_line): Only warn pedantically if not reading
4184         preprocessed input.
4185
4186 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
4187
4188         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
4189         RETURN_POPS_ARGS().
4190
4191 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
4192
4193         * builtins.c (expand_builtin_strlen): Remove unused mode
4194         argument.
4195         * gcc.c (process_command): Remove unused variable.
4196         * fold-const.c: Include expr.h.
4197         * recog.c: Include reload.h.
4198         * Makefile.in (recog.o, fold-const.o): Update deps.
4199
4200 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
4201
4202         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
4203
4204 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
4205
4206         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
4207         handling.
4208         (STARTFILE_SPEC): Likewise.
4209         (LINK_SPEC): Likewise.
4210
4211 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4212
4213         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
4214         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
4215         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
4216
4217 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
4218
4219         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
4220         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
4221         perm_calloc, get_identifier, maybe_get_identifier,
4222         real_value_from_int_cst, simple_cst_equal), varasm.c
4223         (assemble_name, assemble_real, immed_real_const_1,
4224         compare_constant_1, decode_rtx_const, output_constant_pool): Use
4225         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
4226         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
4227         bzero ().
4228
4229 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
4230
4231         * cppfiles.c (open_file): If already read, then don't reopen.
4232         Immediately close an empty file.
4233
4234 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
4235
4236         * expr.h (fold_builtin): Move declaration...
4237         * tree.h (fold_builtin): ... here.
4238
4239 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
4240
4241         * flow.c (verify_local_live_at_start): Allow hard regs to die.
4242
4243 2000-11-02  Neil Booth  <neilb@earthling.net>
4244
4245 config:
4246         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
4247         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
4248         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
4249         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
4250         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4251         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
4252         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
4253         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
4254         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
4255         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
4256         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
4257         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
4258         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
4259         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
4260         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
4261         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
4262         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
4263         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
4264         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
4265         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
4266         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
4267         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
4268         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
4269         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
4270         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
4271         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
4272         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
4273         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
4274         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
4275         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
4276         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
4277         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
4278         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
4279         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
4280         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
4281         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
4282         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
4283         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
4284         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
4285         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
4286         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
4287         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
4288         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
4289         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
4290         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
4291         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
4292         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
4293         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
4294         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
4295         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
4296         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
4297         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
4298         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
4299         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
4300         vax/vaxv.h, vax/vms.h, we32k/we32k.h
4301
4302         Replace -A() with -A=, the new assertion syntax.
4303
4304 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
4305
4306         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
4307         elim_i1.
4308         In REG_DEAD handling: When handling parts of multi-hard-reg hard
4309         registers, increment the loop counter by the size of the parts;
4310         use recursion to handle individual parts.
4311
4312 2000-11-02  Neil Booth  <neilb@earthling.net>
4313
4314         * configure.in: Make integrated CPP the default.
4315         * configure: Regenerate.
4316
4317 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
4318
4319         * reload.c (find_equiv_reg): Test all hard registers for membership
4320         in the requested class.
4321
4322 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4323
4324         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
4325         process_command, main), gcov.c (open_files, output_data), tlink.c
4326         (frob_extension, scan_linker_output), toplev.c
4327         (file_name_nondirectory): Use strchr () and strrchr () instead of
4328         index () and rindex ().
4329
4330 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4331
4332         * c-common.c (get_flag_spec, check_format_info_main,
4333         check_format_types): Use strchr () instead of index ().  Compare
4334         against error_mark_node instead of comparing the TREE_CODE against
4335         ERROR_MARK.
4336
4337 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
4338
4339         Integrated CPP.
4340
4341         * c-lex.c (init_c_lex): Update cpp_start_read call.
4342         (cb_ident): Update for new callback prototype.
4343         (cb_def_pragma): Update for new cpp_get_token prototype.
4344         (c_lex): Similarly.  Use cpp_get_line.
4345
4346         * c-parse.in (finish_parse): Update for new cpp_finish
4347         prototype.
4348
4349         * cp/lex.c (finish_parse): Similarly.
4350
4351 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
4352
4353         * machmode.def: Add V16QImode.
4354
4355 2000-11-01  Richard Henderson  <rth@redhat.com>
4356
4357         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
4358         from rtl_for_decl_location.
4359         (add_location_or_const_value_attribute): Likewise.
4360
4361 2000-11-01  Neil Booth  <neilb@earthling.net>
4362
4363         * cpplib.c (run_directive): Use correct line number for output
4364         of _Pragma.  Remember any in-progress directive.
4365
4366         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
4367
4368 2000-11-01  Richard Henderson  <rth@redhat.com>
4369
4370         * stmt.c (expand_start_null_loop): Set continue_label.
4371
4372 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
4373
4374         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
4375         (expand_builtin_constant_p): Move parts of the code into
4376         fold_builtin_constant_p.
4377         (expand_builtin_strlen): Move parts of the code into fold_builtin.
4378         * expr.h (fold_builtin): Declare.
4379         * fold-const.c (fold): Handle builtin calls.
4380
4381         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
4382
4383 2000-11-01  Richard Henderson  <rth@redhat.com>
4384
4385         * stmt.c (expand_start_null_loop): New.
4386         (expand_end_null_loop): New.
4387         * c-semantics.c (genrtl_do_stmt): Use them.
4388         * tree.h: Declare them.
4389
4390 2000-11-01  Richard Henderson  <rth@redhat.com>
4391
4392         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
4393
4394 2000-11-01  Neil Booth  <neilb@earthling.net>
4395
4396         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
4397         * cp/spew.c: Similarly.
4398         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
4399         * cppmacro.c (stringify_arg): Similarly.
4400         * cpplib.h (CPP_BACKSLASH): Delete.
4401
4402 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4403
4404         * builtins.c (expand_builtin_strstr): New function.
4405         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
4406
4407         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
4408
4409         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
4410         and builtin strchr.
4411
4412 2000-10-31  Richard Henderson  <rth@redhat.com>
4413
4414         * config/i386/i386.c (fcmov_comparison_operator): Check for
4415         CCFPmode or CCFPUmode instead of CCmode.
4416         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
4417         unordered operations as well.
4418
4419 2000-10-31  Richard Henderson  <rth@redhat.com>
4420
4421         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
4422         of integer_zero_node.
4423
4424 2000-10-31  Richard Henderson  <rth@redhat.com>
4425
4426         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
4427
4428 2000-10-31  Nick Clifton  <nickc@redhat.com>
4429
4430         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
4431         -fdata-sections to override the section attribute of a DECL.
4432
4433 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
4434
4435         * libgcc2.c (__shtab): Remove __shtab variable.
4436         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
4437         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
4438         members.
4439
4440 2000-10-31  Jim Wilson  <wilson@redhat.com>
4441
4442         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
4443         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
4444         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
4445         instead of ASM_OUTPUT_INTERNAL_LABEL.
4446         (dwarf2out_end_block, dwarf2out_label): Likewise.
4447         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
4448         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
4449
4450 2000-10-31  Richard Henderson  <rth@redhat.com>
4451
4452         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
4453         (size_of_locs): Set it.
4454         (output_loc_operands): Use it to compute branch displacement.
4455         (int_loc_descriptor): New.
4456         (mem_loc_descriptor): Dereference memory in the proper size.
4457         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
4458         (loc_descriptor_from_tree): New.
4459         (rtl_for_decl_location): Break out from ...
4460         (add_location_or_const_value_attribute): ... here.
4461         (add_bound_info): Use loc_descriptor_from_tree.
4462
4463 2000-10-31  Neil Booth  <neilb@earthling.net>
4464
4465         * cpp.texi: Update for new command line assertion syntax.
4466         * cpplib.c (cpp_define): Simplify a bit.
4467         (cpp_assert, cpp_unassert): Use handle_assertion.
4468         (handle_assertion): New function; accept new command line
4469         syntax with '='.
4470         * testsuite/gcc.dg/cpp/assert3.c: New tests.
4471
4472 2000-10-31  Neil Booth  <neilb@earthling.net>
4473
4474         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
4475         undefined.  Remove #ifdef check.
4476         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
4477         Define STDC_0_IN_SYSTEM_HEADERS to 1.
4478
4479 2000-10-31  Jan Hubicka  <jh@suse.cz>
4480             Jakub Jelinek  <jakub@redhat.com>
4481
4482         * config/i386/i386.h: Clarify CCNOmode description in comment.
4483         (EXTRA_CC_MODES): Remove CCRCmode.
4484         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
4485         (put_condition_code, ix86_match_ccmode): Likewise.
4486         (ix86_cc_mode): Likewise.  Fix comment.
4487         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
4488         * config/i386/i386.md: Add unspec 12 description.
4489         (adddi3 split): Use unspec 12 instead of CCRCmode.
4490         (addsi3_carry_rc): Remove.
4491         (addsi3_cc, addqi3_cc): New patterns.
4492         (addsi_3): Swap operands, match CCZmode.
4493         (addsi_4): Rewritten.
4494         (addsi_5): Renamed from addsi_6.
4495         (addsi_6): Removed.
4496         (addhi_3): Swap operands, match CCZmode.
4497         (addhi_4): Rewritten.
4498         (addhi_5): Renamed from addhi_6.
4499         (addhi_6): Removed.
4500         (addqi_3): Swap operands, match CCZmode.
4501         (addqi_4): Rewritten.
4502         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
4503         (subsi3_carry_rc): Removed.
4504         (iorqi_3): Use =q constraint for clobber.
4505         (xorqi_cc_2): Likewise.
4506         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
4507         (x86_movsicc_0_m1_rc): Removed.
4508         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
4509
4510 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
4511
4512         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
4513         and decrement of complex types.
4514
4515 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4516
4517         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
4518         builtin fputs, ensure we still evaluate the stream in case it
4519         has side-effects.
4520
4521 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
4522
4523         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
4524         to expand_shift.
4525
4526 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
4527
4528         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
4529         (fp_extended_operand, emit_fpscr_use): Likewise.
4530         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
4531         (fpul_operand): New function.
4532         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
4533         fp_extended_operand.  Add fpul_operand.
4534         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
4535         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
4536         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
4537         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
4538         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
4539         (divdf3_i): Likewise.
4540         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
4541         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
4542         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
4543         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
4544         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
4545
4546 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
4547
4548         * config/i386/i386.c (ix86_init_builtins): Correct return type
4549         building v4hi_ftype_v4hi_int_int tree node.
4550         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
4551         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
4552
4553         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
4554         for operand 1.
4555         (mmx__uavgv8qi3): Correct insn mnemonic.
4556         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
4557         (mmx_punpckhwd): Correct insn mnemonic.
4558         (mmx_punpckhdq): Likewise.
4559         (mmx_punpcklwd): Likewise.
4560         (mmx_punpckldq): Likewise.
4561         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
4562         Renumber case labels to match the _mm_prefetch constants defined in
4563         xmmintrin.h.
4564
4565         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
4566         if the splitter didn't emit new insns.
4567         Make sure we call cleanup_subreg_operands even when splitting the last
4568         insn in a basic block.
4569
4570         * invoke.texi (Debugging Options): Describe -do.
4571         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
4572         (dump_file): Likewise.
4573         (rest_of_compilation): Split .greg dump into .greg and .postreload.
4574
4575 2000-10-30  Neil Booth  <neilb@earthling.net>
4576
4577         * cppfiles.c (stack_include_file): Check for stacked contexts
4578         here.
4579         * cpphash.h (_cpp_do__Pragma): New prototype.
4580         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
4581
4582         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
4583         escaped newlines if !(buffer->from_stage3).
4584         (_cpp_lex_token): Warn about missing newlines iff
4585         !buffer->from_stage3.
4586
4587         * cpplib.c (get__Pragma_string, destringize,
4588         _cpp_do__Pragma): New functions.
4589         (run_directive): Set output_line for _Pragma to avoid line
4590         markers in output.  Set from_stage3 and prevent macro expansion
4591         for _Pragma and command-line options.  Check buffer exhaustion.
4592         (cpp_push_buffer): Don't check for stacked macro contexts, as
4593         this is perfectly legitimate for _Pragma.  Move the check to
4594         stack_include_file instead. Set from_stage3 iff buffer is
4595         preprocessed input.
4596
4597         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
4598         unsigned. New boolean from_stage3.
4599         (struct spec_nodes): Add n__Pragma.
4600
4601         * cppmacro.c (enter_macro_context): Flip sense of return value.
4602         (_cpp_get_token): Handle _Pragma operator.
4603
4604 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
4605
4606         * gcc.texi:  The C++ standard isn't "draft" anymore.
4607
4608 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
4609
4610         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
4611
4612 2000-10-29  Neil Booth  <neilb@earthling.net>
4613
4614         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
4615
4616 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
4617
4618         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
4619         fixinc/inclhack.def: Change comments mentioning C9X to refer to
4620         C99 instead.
4621
4622         * invoke.texi: Document that -V will only work for very similar
4623         versions of driver and compiler.
4624
4625 2000-10-29  Neil Booth  <neilb@earthling.net>
4626
4627         * cppmacro.c (_cpp_create_definition): Optimize the case of
4628         a macro defined to itself.
4629
4630 2000-10-29  Neil Booth  <neilb@earthling.net>
4631
4632         * cpplex.c (save_comment): Don't store new lines in C++ comments.
4633
4634 2000-10-29  Michael Hayes  <mhayes@redhat.com>
4635
4636         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
4637
4638 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
4639
4640         * cpphash.c (cpp_forall_identifiers): Add context variable
4641         for callback routine.
4642         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
4643         change.
4644         (main): Call cpp_forall_identifiers with null context.
4645         * cpplib.h (cpp_forall_identifiers): Update prototype.
4646
4647         * cppmain.c: Make `parse_in' and `print' static.
4648
4649 2000-10-28  Alan Modra <alan@linuxcare.com.au>
4650
4651         * c-decl.c (finish_function): Clear c_function_name_declared_p.
4652
4653 2000-10-28  Richard Henderson  <rth@redhat.com>
4654
4655         * regrename.c (scan_rtx_address): Frob action, not class,
4656         when trying to disable optimization.
4657
4658 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
4659
4660         * c-semantics.c (make_rtl_for_local_static): Don't clobber
4661         DECL_ASSEMBLER_NAME.
4662
4663 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
4664
4665         * configure.in: Determine and substitute gcc_version_full.
4666         * configure: Regenerate.
4667         * gccbug.in: Use it to give full version.  Don't allow
4668         confidential PRs.
4669
4670 2000-10-28  Richard Henderson  <rth@redhat.com>
4671
4672         * recog.c (split_all_insns): Run cleanup_subreg_operands
4673         after reload.
4674
4675         * regrename.c (regrename_optimize): Verify that all registers of
4676         a multiple register mode are available.
4677         (scan_rtx_address): Accept the mode of the address; all callers
4678         changed.
4679
4680         * cpplib.c (run_directive): Fix prototype.
4681
4682 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
4683
4684         * reload.c (find_reloads): Distinguish "wins" so that we know whether
4685         a given operand won because of a matching constraint or not; then use
4686         that information to compute goal_alternative_matched properly.
4687         * reload1.c (choose_reload_regs): Never set reload_override_in for an
4688         optional reload.
4689
4690         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
4691         accurate value for MULT.
4692         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
4693         2% or > 98% before using static branch prediction bits.
4694
4695 2000-10-28  Neil Booth  <neilb@earthling.net>
4696
4697         New macro expander.
4698
4699         * cpplib.c (struct answer): New.
4700         (struct if_stack): Use cpp_lexer_pos rather than line and col.
4701         Rename cmacro mi_cmacro.
4702         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
4703         IN_I): New directive and flags.
4704         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
4705         parse_answer, parse_assertion, find_answer): New functions.
4706         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
4707         (lex_macro_node): New function to replace parse_ifdef and
4708         get_define_node.
4709
4710         (_cpp_handle_directive): New function, combines _cpp_check_directive
4711         and _cpp_check_linemarker.
4712
4713         (do_define, do_undef, parse_include, do_include, do_import,
4714         do_include_next, read_line_number, do_line, do_ident, do_pragma,
4715         do_pragma_once, do_pragma_poison, do_pragma_dependency):
4716         Update for new token getting interface.
4717
4718         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
4719         : Update for new multiple-include optimisation technique.
4720         (do_elif): Don't forget to invalidate controlling macros.
4721
4722         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
4723         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
4724         Functions to handle assertions with the new token interface.
4725         (do_assert, do_unassert): Use them.
4726
4727         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
4728         Use run_directive.
4729
4730         (_cpp_init_stacks): Register directive names.  Don't register special
4731         nodes.
4732
4733         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
4734         new position recording regime.
4735         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4736         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4737         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
4738         (cpp_type2name): Move to cpplex.c.
4739
4740         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
4741         (parse_defined): Update to handle new multiple include optimisation
4742         method.  Remove poisoned identifier warning.
4743         (parse_assertion, TYPE_NAME): Delete.
4744         (lex): Update for multiple include optimisation, removal of
4745         CPP_DEFINED, to use _cpp_test_assertion for assertions and
4746         cpp_token_as_text.
4747         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
4748         (op_as_text): New function, to wrap cpp_token_as_text.
4749
4750         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
4751         Update for MI optimisation.
4752         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
4753         segfault on diagnostic.
4754         (_cpp_compare_file_date): Take a token rather than 3 args.
4755         (cpp_read_file): Work correctly for zero-length files.
4756
4757         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
4758         _cpp_init_hashtable and _cpp_cleanup_hashtable.
4759         (cpp_lookup): Place identifiers at front of identifier pool
4760         for _cpp_lookup_with_hash.
4761         (_cpp_lookup_with_hash): Require identifiers to be at the front of
4762         the identifier pool.  Commit the memory if not already in the
4763         hash table.
4764
4765         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
4766         Initialise various members of cpp_reader, memory pools, and the
4767         special nodes.
4768         (cpp_printer_init): Delete.
4769         (cpp_cleanup): Update.
4770         (struct builtin, builtin_array, initialize_builtins): Update for new
4771         hashnode definition and builtin handling.
4772         (cpp_start_read, cpp_finish): Don't take or initialise a
4773         printer.  Update.
4774
4775         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
4776         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
4777         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
4778         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
4779         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
4780         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
4781         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
4782         struct toklist, struct cpp_context, struct specnodes,
4783         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
4784         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
4785         enum builtin_type, cpp_can_paste): New.
4786         (struct cpp_token): Delete line and col members.
4787         (struct cpp_buffer): New member output_lineno.
4788         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
4789         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
4790         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
4791         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
4792         base_context, context, directive, mi_state, mi_if_not_defined,
4793         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
4794         mlstring_pos, macro_buffer, macro_buffer_len.
4795         Delete members mls_line, mls_column, token_list, potential_control_macro,
4796         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
4797         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
4798         save_parameter_spellings, need_newline, .
4799         Change type of date, time and spec_nodes members.
4800         Change prototypes for include and ident callbacks.
4801         (struct cpp_hashnode): Change type of name.  Remove union members
4802         expansion and code.  Add members macro, operator and builtin.
4803
4804         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
4805         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
4806         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
4807         cpp_stop_lookahead): New prototypes.
4808         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
4809
4810         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
4811         Move from cpphash.h.
4812
4813         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
4814         ufputs): Move to cpplib.h.
4815         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
4816         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
4817         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
4818         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
4819         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
4820         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
4821         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
4822         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
4823         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
4824         _cpp_parse_assertion, _cpp_find_answer): Delete.
4825         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
4826         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
4827         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
4828         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
4829         _cpp_handle_directive, DSC): New.
4830         (struct include_file): New member defined.
4831
4832         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
4833         _cpp_compare_file_date): Update.
4834         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
4835         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
4836         _cpp_cleanup_hashtable.
4837
4838         * Makefile.in: Remove cppoutput.c.
4839
4840         * cppoutput.c: Delete
4841
4842         * fixheader.c (read_scan_file): Update for new cpp_get_token
4843         prototype.
4844         (recognized_function): New argument LINE.
4845
4846         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
4847         new cpp_get_token prototype.
4848
4849         * scan.h (recognized_function): Update prototype.
4850
4851         * po/POTFILES.in: Remove cppoutput.c.
4852
4853 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
4854
4855         * c-typeck.c (check_init_type_bitfields): Remove.
4856         (constructor_incremental): Likewise.
4857         (struct constructor_stack): Remove incremental bit.
4858         (struct initializer_stack): Likewise.
4859         (start_init): Don't play with constructor_incremental.
4860         (finish_init): Likewise.
4861         (really_start_incremental_init): Likewise.
4862         (push_init_level): Likewise.
4863         (pop_init_level): Likewise.
4864         (output_init_level): Likewise.
4865         (output_pending_init_elements): Likewise.
4866
4867 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
4868
4869         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
4870         Improve error messages.  Correct parsing of
4871         #pragma pack(pop [,id]).  Do not check the user-supplied
4872         alignment if we're popping.
4873
4874         * gcc.dg/pack-test-1.c: New test case.
4875         * gcc.dg/pack-test-2.c: New test case.
4876         * gcc.dg/pack-test-1.h: New file.
4877
4878 2000-10-27  Neil Booth  <neilb@earthling.net>
4879
4880         * cpp.texi: Update.
4881
4882 2000-10-27  Kelley Cook <kelley.cook@home.com>
4883
4884         * invoke.texi: Document -mintel-syntax
4885
4886 2000-10-27  Richard Henderson  <rth@redhat.com>
4887
4888         * invoke.texi: Document -frename-registers.  Add it to -O3.
4889         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
4890         (enum dump_file_index, dump_file): Update order.
4891         (main): Set flag_rename_registers at -O3.
4892
4893 2000-10-27  Richard Henderson  <rth@redhat.com>
4894
4895         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
4896         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
4897         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
4898         * config/alpha/alpha.md (call_osf_1): Use it.
4899         (call_value_osf_1): Likewise.
4900
4901         * config/ia64/ia64.c: Revert 10-23 patch.
4902         (ia64_hard_regno_rename_ok): New.
4903         * config/ia64/ia64-protos.h: Declare it.
4904         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
4905
4906 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
4907             Richard Henderson  <rth@redhat.com>
4908
4909         * regrename.c: Rewrite to handle multi-register modes and
4910         cond_exec instructions.
4911         * Makefile.in (regrename.o): Update dependancies.
4912         * recog.h (struct operand_alternative): Add is_address.
4913         * recog.c (preprocess_constraints) [case 'p']: Set it.
4914
4915 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
4916
4917         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
4918         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
4919         top level.  Kill oldstyle_subdirs.  Do not include
4920         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
4921         $outputs.  Do not run configure.lang from config.status.
4922         Rearrange warning-flag logic to correspond to what the
4923         makefile wants.  Put special vax stage1 options in
4924         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
4925         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
4926         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
4927         switch is given, nothing otherwise.
4928         * configure.lang: Delete.
4929
4930         * Makefile.in: Expunge all traces of extra_c_objs,
4931         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
4932         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
4933         warning options via a three level scheme so that -pedantic and
4934         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
4935         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
4936         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
4937         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
4938         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
4939         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
4940         generation rules.  Wrap all rules that change the current
4941         directory in parentheses; pmake doesn't spawn a new shell for
4942         each command.  Expunge all references to $(P).  When one
4943         command depends on another and they're run all at once, use &&
4944         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
4945         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
4946         and beyond.
4947
4948         * objc/Make-lang.in: Wrap all rules that change the current
4949         directory in parentheses.  Expunge all references to $(P).
4950         When one command depends on another and they're run all at
4951         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
4952         all object-file generation rules.  Delete obsolete variables.
4953         * objc/Makefile.in: Delete.
4954
4955 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
4956
4957         * calls.c (expand_call): If sibcall_failure is set during pass 1,
4958         clear tail_call_insns as well.
4959
4960 2000-10-27  Nick Clifton  <nickc@redhat.com>
4961
4962         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
4963         prototype.
4964
4965 2000-10-26  Richard Henderson  <rth@redhat.com>
4966
4967         * calls.c (expand_call): Supress sibcall if we have a
4968         BLKmode return in registers.
4969
4970 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
4971
4972         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
4973         into memory.
4974
4975 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
4976
4977         * tree.c (make_node, case 't'): Set alignment to that of
4978         char_type_node.
4979         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
4980
4981 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
4982
4983         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
4984         * configure.in (enable-libstdcxx-v3): Arrange to have
4985         HAVE_LIBSTDCXX_V3 substituted into the output files.
4986
4987 2000-10-25  Richard Henderson  <rth@redhat.com>
4988
4989         * recog.c (constrain_operands): Initialize which_alternative
4990         before no alternatives early exit.
4991
4992         * cse.c (find_comparison_args): Check that we can reverse a
4993         comparison if needed before accepting the substitution.
4994
4995         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
4996
4997         * simplify-rtx.c (simplify_relational_operation): Sign extend
4998         low words before sign extending to high words.
4999
5000 2000-10-25  Nick Clifton  <nickc@redhat.com>
5001
5002         * config/mcore/mcore.c: Include config.h before system.h.
5003
5004 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
5005
5006         * config/mcore/mcore.md (return): Force function epilogue to
5007         always be generated to work around epilogue suppression bug in
5008         M*Core backend.
5009
5010 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5011
5012         * c-decl.c (grokdeclarator): Move warning for qualified void
5013         return types with -pedantic to when the function type is
5014         constructed.  At -W, warn in general for qualified function return
5015         types, except for volatile void.
5016         * invoke.texi: Document this new warning at -W.
5017
5018 2000-10-25  Neil Booth  <neilb@earthling.net>
5019
5020         * cpp.texi: Update with implementation-defined behavior and
5021         internal limits.
5022
5023 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
5024
5025         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
5026         incomplete type force it into alias set 0.
5027
5028 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
5029
5030         * alias.c: Include basic-block.h.
5031         (loop_p): New function.
5032         (mark_constant_function): Use it.
5033         * Makefile.in (alias.o): Update dependencies.
5034
5035 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
5036
5037         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
5038         like memory.
5039
5040 2000-10-24  Jim Wilson  <wilson@cygnus.com>
5041
5042         * expmed.c (store_bit_field): Move integer pun code down after
5043         code that calls emit_move_insn for entire register move.
5044         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
5045         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
5046
5047 2000-10-24  Richard Henderson  <rth@cygnus.com>
5048
5049         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
5050         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
5051
5052 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
5053
5054         * gcse.c (cprop_insn): do not propagate constants into jump_insn
5055         for machines with CC0 more than once.
5056
5057 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
5058
5059         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
5060         pseudos just like memory.
5061
5062 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
5063
5064         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
5065         when deleting libcall sequence collapsed to a single instruction.
5066
5067 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
5068
5069         * expr.c (do_store_flag): Don't crash if either side of a
5070         comparison is error_mark_node.
5071
5072 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
5073
5074         * sibcall.c (purge_mem_unchanging_flag): New function.
5075         (optimize_sibling_and_tail_recursive_calls): Call it.
5076
5077 2000-10-24  Philipp Thomas  <pthomas@suse.de>
5078
5079         * Makefile.in (check-po): New target for doing checks in the po
5080         subdir if all languages configured.
5081         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
5082         configure if NLS is enabled.
5083         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
5084         otherwise leave empty.
5085         * configure: Regenerate.
5086
5087 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5088
5089         * i386.c (print_operand): Handle new 'A' formatting code.
5090         387 opcodes need suffixes even with -mintel-syntax.
5091         Check for explicit size override (codes 'b', 'w' and 'k').
5092         (print_operand_address): Check if register prefix is needed when
5093         emitting `ds' segment override.
5094         * i386.h: Add comment about new 'A' formatting code.
5095         * i386.md (jump and call patterns): Emit absolute references using %A.
5096
5097 2000-10-23  Richard Henderson  <rth@cygnus.com>
5098
5099         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
5100         output registers as fixed.
5101         (ia64_function_epilogue): Undo output fixation.
5102
5103 2000-10-23  Richard Henderson  <rth@cygnus.com>
5104
5105         * config/alpha/alpha.md: Add names for all unnamed insns; use
5106         define_insn_and_split in some obvious places.
5107         (lda): Remove.
5108         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
5109         (zero_extendqisi2, zero_extendqidi2): Likewise.
5110         (zero_extendhisi2, zero_extendhidi2): Likewise.
5111         (abs splitters): Fix match_scratch operand number.
5112         (bcc_reverse): Swap pc & label instead of non-canonical compare.
5113
5114 2000-10-23  Jim Wilson  <wilson@cygnus.com>
5115
5116         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
5117         CONST_INT.
5118         * ia64.md (cmpsi_adjusted): Use %r3.
5119         (cmpdi_adjusted): Likewise.
5120
5121 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5122
5123         * config/i386/att.h (ASM_FILE_START): Define.
5124
5125 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5126
5127         * config/i386/linux.h (ASM_FILE_START): Define.
5128
5129 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
5130
5131         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
5132         since this (only) drags in a crt0.o reference that the .ld files
5133         also introduce.
5134
5135 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
5136
5137         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
5138         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
5139         reloads just like an RELOAD_FOR_OUTPUT would.
5140
5141         * local-alloc.c (update_equiv_regs): Add an abort().  When
5142         deleting or moving insns, update reg_equiv[regno].init_insns.
5143
5144 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
5145
5146         * c-tree.texi: Improve documentation for IF_STMTs and related
5147         conditional statements.
5148
5149 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
5150
5151         * expr.c (do_preexpand_calls): Remove.
5152         (same_from_p): Don't use CALL_EXPR_RTL.
5153         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
5154         (preexpand_calls): Remove.
5155         * tree.c (first_rtl_op): Remove CALL_EXPR case.
5156         (unsave_expr_1): Likewise.
5157         * tree.def (CALL_EXPR): Give it only two slots.
5158         * tree.h (CALL_EXPR_RTL): Remove.
5159
5160 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
5161
5162         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
5163         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
5164         New functions.
5165
5166 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
5167
5168         * calls.c (combine_pending_stack_adjustment_and_call): Don't
5169         adjust stack when unadjusted_alignment ends up as zero.
5170
5171 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
5172
5173         * fixinc/genfixes: Remove EGCS reference.
5174         * install.texi: Remove EGCS reference.
5175         * INSTALL: Regenerate.
5176
5177 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
5178
5179         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
5180
5181 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5182
5183         * diagnostic.c: Remove EGCS reference in comment.
5184
5185 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5186
5187         * loop.c (strength_reduce): Fix error in last change.
5188
5189 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
5190
5191         * Makefile.in (SHLIB_NM_FLAGS): New.
5192         (libgcc.mk): Pass it.
5193         * mklibgcc.in (libgcc.map): Use it.
5194
5195         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
5196         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
5197
5198 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5199
5200         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
5201
5202         * sparc.c (load_pic_register): Delete unused varaible.
5203
5204         * libgcc2.c (__addvsi3): Delete unused variable.
5205
5206         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
5207         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
5208         __negvdi2): Prototype.
5209
5210         * ssa.c (apply_delayed_renames): Avoid undefined operation.
5211
5212         * toplev.c (display_target_options): Make static to match
5213         prototype.  Delete empty declaration.
5214
5215 2000-10-20  Tom Tromey  <tromey@cygnus.com>
5216
5217         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
5218         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
5219
5220 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5221
5222         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
5223         returned MEM.
5224         (expand_expr_unaligned, case ARRAY_REF): Check that index is
5225         a constant before comparing it; use tree_low_cst.
5226         * tree.c (save_expr): Set TREE_READONLY.
5227         (substitute_expr): Return inside of NON_LVALUE_EXPR.
5228         (build, build1): Set TREE_READONLY if all operands are.
5229         (build_index_type): If upper bound is a negative number, lower
5230         bound is zero and sizetype is unsigned, use upper bound of one and
5231         lower of zero.
5232
5233 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
5234
5235         * gcc.c (process_command, main): Use "because" instead of
5236         "since" in error messages.
5237
5238 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5239
5240         * stor-layout.c (compute_record_mode): Use tree_low_cst.
5241         Don't use mode of field for record unless sizes are the same.
5242         (layout_type, case ARRAY_TYPE): Remove special bounds handling
5243         previously added for Ada; also change to using host_integerp
5244         and tree_low_cst.
5245
5246         * loop.c (strength_reduce): Show when new register made for
5247         giv is known to be a pointer and its aligment if so and known.
5248         (loop_dump_aux): Show VERBOSE parameter unused.
5249
5250         * gcse.c (set_hash_table_size): Now unsigned.
5251         * sdbout.c (template_name_p): Add "const" to avoid warnings.
5252         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
5253         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
5254         (sdbout_end_epilogue): Remove variable NAME.
5255         * system.h (getopt): Add default definition.
5256         * config/alpha/alpha.c (print_operand): Don't continue processing
5257         after issuing error.
5258         (summarize_insn): Avoid use of UL in constant.
5259
5260         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
5261
5262         * fold-const.c (force_fit_type): Unsigned values can overflow
5263         if they are sizetype.
5264         (int_const_binop): Don't use cache if overflows.
5265
5266 2000-10-20  Richard Henderson  <rth@cygnus.com>
5267
5268         * function.c (locate_and_pad_parm): Zero alignment_pad.
5269
5270         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
5271         perform substitutions, and apply_change_group to see if it worked.
5272
5273 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5274
5275         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
5276
5277         * combine.c (struct undo): Change int to unsigned int.
5278         (do_SUBST_INT): Args are unsigned int.
5279         (make_extraction, force_to_mode): Use proper type when forming mask.
5280         (make_field_assignment): Likewise.
5281
5282 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5283
5284         * c-common.c (check_format_info_recurse): Extract string constant
5285         initializers from non-volatile constant arrays and check them as
5286         formats.
5287         * c-typeck.c (decl_constant_value): Don't check pedantic or check
5288         for DECL_MODE (decl) != BLKmode.
5289         (decl_constant_value_for_broken_optimization): New function which
5290         includes these checks.
5291         (default_conversion, convert_for_assignment, digest_init): Use
5292         decl_constant_value_for_broken_optimization instead of
5293         decl_constant_value.
5294
5295 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
5296
5297         * tree.h (DECL_ALIGN_UNIT): New macro.
5298
5299 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
5300
5301         * config/avr/avr-protos.h (avr_output_bld): New.
5302         (out_shift_with_cnt): Add t_len argument.
5303         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
5304         (output_movqi, output_movhi, output_movsisf): Optimize loading
5305         any constant with exactly one bit set to NO_LD_REGS.
5306         (out_shift_with_cnt): Optimize output code for size or speed,
5307         depending on optimize_size.  Handle small shift counts as well
5308         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
5309         with or without a scratch register, with help of __tmp_reg__
5310         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
5311         length of TEMPLATE in words, return total insn length in *LEN.
5312         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
5313         out_shift_with_cnt to work with the above change.
5314         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
5315         lshrsi3_out): Likewise.  Optimize more known shift count cases.
5316         Remove cases already well optimized in out_shift_with_cnt.
5317         (avr_output_bld): New function.
5318         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
5319         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
5320         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
5321         Add reload_completed to insn condition - only for peepholes.
5322         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
5323         in a register or memory.
5324         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
5325         Do not require a scratch register.
5326         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
5327         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
5328         Optimize shifts by known count using a scratch register, but only
5329         if one is still available after register allocation.
5330
5331 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5332
5333         * t-vax: New file.  Don't build modules from libgcc1.c.
5334
5335 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
5336
5337         * alias.c: (mark_constant_function): Don't check pure functions.
5338         Initialize and end alias analysis.
5339         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
5340         Don't make a special exception for recursion.  Handle
5341         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
5342         unless it's volatile.
5343
5344         * local-alloc.c (equivalence): New structure.
5345         (reg_equiv): Define.
5346         (contains_replace_regs): Remove array and use
5347         field in reg_equiv.
5348         (memref_referenced_p): Likewise.
5349         (no_equiv): Likewise.
5350         (update_equiv_regs): Likewise.
5351
5352         (equiv_init_varies_p,
5353         equiv_init_movable_p): New functions.
5354         (update_equiv_regs): Use them.  Use rtx_varies_p
5355         instead of function_invariant_p.  Process insns
5356         from end to beginning.  Allow a REG_EQUIV insn
5357         within the same loop as a use to be moved, also
5358         allow it to be moved out of a loop.  Update
5359         REG_DEAD notes when substituting into an insn.
5360
5361 2000-10-19  Jim Wilson  <wilson@cygnus.com>
5362
5363         * c-decl.c (start_decl): Check for error_mark_node type before using
5364         COMPLETE_TYPE_P.
5365         (finish_decl): Likewise.  Don't give an error if decl type is
5366         already error_mark_node.
5367
5368         * haifa-sched.c (compute_trg_info): Add explanatory comments.
5369         New local update_blocks.  Use update_blocks to remove duplicates
5370         when computing update blocks.  Check for bblst_table overflow.
5371         (schedule_block): Add explanatory comment.  Reduce bblst_size by
5372         factor of 2.
5373         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
5374         notes.
5375
5376 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5377
5378         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
5379
5380 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5381
5382         * expmed.c: Minor corrections in comments.
5383         * invoke.texi: Added desciption for the new option -ftrapv.
5384
5385 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5386
5387         * libgcc2.c: Added the missing #endif.
5388
5389 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5390
5391         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
5392
5393 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
5394
5395         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
5396         Use smulv_optab for -ftrapv.
5397         (expand_mult_highpart): Use unsigned multiply.
5398         (expand_divmod): Special-case division by -1.
5399         For EXACT_DIV_EXPR, do right shift first, then the multiply.
5400         For complex divide, use abs with unsigned result.
5401         * expr.c (force_operand): Use unsigned multiply.
5402         (expand_expr): Use overflow-trapping optabs for signed types if
5403         flag_trapv.
5404         If flag_trapv, don't generate a recursive call with EXPAND_SUM
5405         if the type is signed and the original call wasn't EXPAND_SUM or
5406         EXPAND_INITIALIZER.
5407         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
5408         (negv_optab, absv_optab): Declare.
5409         * flags.h (flag_trapv): Declare.
5410         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
5411         smulv_optab, sdivv_optab, negv_optab and absv_optab.
5412         (gen_insn): Interpret '$P' as requiring an integer mode,
5413         including partial integer modes.
5414         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
5415         (product_cheap_p): Use unsigned expand_mult.
5416         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
5417         (negv_optab, absv_optab): Define.
5418         (expand_binop): Use overflow-trapping optabs for signed types if
5419         flag_trapv.
5420         Handle negv_optab libe neg_optab.
5421         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
5422         Use overflow-trapping optabs for signed result if flag_trapv.
5423         (expand_complex_abs): Use overflow-trapping optabs for signed types if
5424         flag_trapv.
5425         Don't open-code complex absolute-value operation for flag_trapv.
5426         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
5427         sdivv_optab, negv_optab and absv_optab.
5428         * toplev.c (flag_trapv): Define.
5429         (lang_independent_options f_options): Include flag_trapv.
5430         * tree.h (TYPE_TRAP_SIGNED): Define.
5431         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
5432         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
5433         New functions.
5434         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
5435         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
5436
5437 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
5438             David V. Henkel-Wallace  <gumby@cygnus.com>
5439
5440         * config/i386/t-netware: Bring in from the Red Hat tree.
5441         * config/i386/netware.h: Likewise.
5442         * config/netware.h: Likewise.
5443         * config/rs6000/netware.h: Delete.
5444         * configure.in: Add i[34567]86-*-netware.
5445         * configure: Hand-edit to match configure.in change.
5446
5447 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
5448
5449         * c-common.h (flag_no_builtin): Declare.
5450         (flag_no_nonansi_builtin): Likewise.
5451         (c_common_nodes_and_builtins): Change prototype.
5452         * c-common.c (flag_no_builtin): New variable.
5453         (flag_no_nonansi_builtin): Likewise.
5454         (c_common_nodes_and_builtins): Remove parameters.  Adjust
5455         accordingly.
5456         * c-decl.c (flag_no_builtin): Remove.
5457         (flag_no_nonansi_builtin): Likewise.
5458         (init_decl_processing): Adjust call to
5459         c_common_nodes_and_builtins.
5460
5461 2000-10-18  Marc Espie <espie@openbsd.org>
5462
5463         * tm.texi (LIBGCC_SPEC): Synch with reality.
5464
5465 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5466
5467         * c-common.c (check_format_types): Check for writing through a
5468         NULL pointer argument.
5469
5470 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
5471
5472         * tm.texi (Exception Region Output): Document
5473         DWARF_CIE_DATA_ALIGNMENT.
5474         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
5475         #ifndef.
5476         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
5477         DWARF_CIE_DATA_ALIGNMENT.
5478
5479 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
5480
5481         * basic-block.h (struct loop): Delete fields pre_header_root
5482         and pre_header_trace and replace with pre_header_edges
5483         and num_pre_header_edges.
5484         * flow.c (flow_loop_dump): Dump pre_header_edges.
5485         (flow_loops_free): Free pre_header_edges.
5486         (flow_loop_pre_header_scan): Calculate pre_header_edges.
5487
5488 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5489
5490         * contrib.texi: Update references to steering committee members
5491         and Jeff Law's entry.
5492
5493 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5494
5495         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
5496         (maybe_read_dollar_number, check_format_info_main): Use them for
5497         pedantic warning messages.
5498
5499 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5500
5501         * c-common.c (check_format_info_main): Minor cleanup: move
5502         variables into inner scopes; initialize declarations where
5503         appropriate; don't hardcode "scanf" name on warning for zero
5504         width.
5505
5506 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
5507
5508         * c-common.c (back_end_hook): New variable.
5509         * c-common.h (back_end_hook): Declare it.
5510         * c-lang.c (finish_file): Use it.
5511
5512         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
5513         earlier.
5514
5515 2000-10-18  Jan Hubicka  <jh@suse.cz>
5516
5517         * i386.c (ix86_comparison_operator, put_condition_code,
5518         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
5519         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
5520         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
5521         * i386.md (adddi and negdi splitter): Use CCRCmode.
5522         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
5523         (subsi3_carry): add '*'
5524         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
5525         (cmp to add peep2): Use CCRCmode; swap operands.
5526
5527 2000-10-18  Kazu Hirata  <kazu@hxi.com>
5528
5529         * h8300.c: Fix a comment typo.
5530         (round_frame_size): New.
5531         (compute_saved_regs): Likewise.
5532         (push): Likewise.
5533         (pop): Likewise.
5534         (push_order): Remove.
5535         (pop_order): Likewise.
5536         (function_prologue): Rearrange code for readability.
5537         (function_epilogue): Likewise.
5538
5539         * config/h8300/h8300.md: Remove an unnecessary sign_extend
5540         expander that is used when not optimizing.  Output a tab after
5541         each assembly insns.
5542
5543         * reorg.c: Fix formatting.
5544
5545 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
5546
5547         * reload1.c (move2add_note_store): Check for simple
5548         auto-inc in destination.
5549
5550 2000-10-17  Michael Chastain  <chastain@redhat.com>
5551
5552         * config/i386/i386-aout.h: define INT_ASM_OP.
5553
5554 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
5555
5556         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
5557
5558 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
5559
5560         * i370.md: Fix spelling typo.
5561
5562 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5563
5564         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
5565         Fixes execute/20001017-1.c on powerpc-linux-gnu.
5566
5567         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
5568         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
5569         LABEL_REF.
5570
5571         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
5572         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
5573         here...
5574         * rs6000/aix.h: ...to here.
5575         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
5576
5577 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
5578
5579         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
5580
5581         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
5582         sure linker can relax even the delay slot mov %g1,%o7, fix output
5583         formating.
5584
5585 2000-10-17  Kazu Hirata  <kazu@hxi.com>
5586
5587         * config/h8300/h8300.md: Remove an unnecessary zero_extend
5588         expander that is used when not optimizing.  Output a tab after
5589         each assembly insns.
5590
5591 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
5592
5593         * gcc.c: New options --target-help.
5594         (process_command): Added code to parse this new option.
5595         * toplev.c (display_target_options): New function to support the
5596         above new option.
5597         * cppinit.c (new_pending_directive) : New option OPT_target__help.
5598         (cpp_handle_option): Support this new option.
5599         * invoke.texi: Added notes about --target-help option.
5600
5601 2000-10-17  Graham Stott  <grahams@redhat.com>
5602
5603         * config/i386/i386.md (testqi_1): Add missing operand prefix
5604         for operand 0.
5605         * config/i386/i386-protos.h: Add missing prototype.
5606
5607 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
5608
5609         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
5610         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
5611         using -mintel-syntax.
5612
5613 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5614
5615         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
5616         (format_types): Use it for printf.
5617         (maybe_read_dollar_number): Add parameter for the kind of format
5618         involved.  Warn for multiple use for arguments if this is
5619         inappropriate for the kind of format involved.
5620         (check_format_info_main): Update calls to maybe_read_dollar_number.
5621
5622 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5623
5624         * inclhack.def (hpux_maxint): Also apply fix to values.h.
5625         * fixincl.x: Rebuilt.
5626
5627 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
5628
5629         * genrecog.c (write_switch): Return the first condition that needs a
5630         label.
5631
5632 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
5633
5634         * c-tree.h (warn_sequence_point): Move declaration to...
5635         * c-common.h (warn_sequence_point): ... here.
5636         * c-decl.c (warn_sequence_point): Move definition to...
5637         * c-common.c (warn_sequence_point): ... here.
5638         (struct reverse_tree): New.
5639         (reverse_list, reverse_max_depth): New static variables.
5640         (build_reverse_tree, common_ancestor, modify_ok
5641         verify_sequence_points): New functions.
5642         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
5643         * c-typeck.c (check_modify_expr): Delete.
5644         (build_modify_expr): Don't call it.
5645
5646 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5647
5648         * c-common.h (warn_missing_format_attribute): New variable.
5649         * c-decl.c (warn_missing_format_attribute): New variable.
5650         (c_decode_option): Decode -Wmissing-format-attribute and
5651         -Wno-missing-format-attribute.
5652         * c-common.c (check_function_format): If
5653         -Wmissing-format-attribute, give a warning where a vprintf or
5654         vscanf function is called by a function without its own printf or
5655         scanf attribute.
5656         * toplev.c (documented_lang_options): Add
5657         -Wmissing-format-attribute.
5658         * invoke.texi: Document -Wmissing-format-attribute.
5659
5660 2000-10-17  Marc Espie <espie@openbsd.org>
5661
5662         * invoke.texi (-shared): Insist on requiring code generation flags
5663         to be used along with -shared, and document the subtle failure that
5664         may occur otherwise.
5665
5666 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5667
5668         * pa.md (return_internal): Move `use' after `return'.
5669
5670 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
5671
5672         * machmode.def: Correct comment.
5673
5674 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
5675
5676         * print-rtl.c (print_rtx_head): Constify.
5677         * rtl.h (print_rtx_head): Similarly.
5678
5679         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
5680         Constify char * return value.
5681         * config/pa/pa/pa.c
5682         (output_64bit_and, output_64bit_ior): Constify char * return value.
5683         (pa_can_combine_p): Make static.
5684         (function_arg): Decorate unused `named' argument. Fix comment typo.
5685         (function_arg_partial_nregs): Decorate unused `named' argument.
5686
5687 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
5688
5689         * c-common.c (format_check_results): New structure.
5690         (finish_dollar_format_checking): Adjust to take a
5691         format_check_results * parameter.
5692         (check_format_info, check_format_info_recurse,
5693         check_format_info_main): Split check_format_info into three
5694         functions, the main checking going in check_format_info_main.
5695         Recurse when any reduction of the format string argument towards a
5696         string literal is done; go down both branches of a conditional
5697         expression.  Don't warn for extra format arguments or empty format
5698         strings if they only occur in some branches of a conditional
5699         expression.
5700
5701 2000-10-16  Kazu Hirata  <kazu@hxi.com>
5702
5703         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
5704
5705 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
5706
5707         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
5708
5709 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
5710
5711         * i386.md (*movsi_or): Switch operand order for intel syntax.
5712
5713 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5714
5715         * PROBLEMS: Remove.
5716
5717         * gcc.texi (Contributing): Update.
5718
5719 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
5720
5721         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
5722         appropriate assembler dialect.
5723
5724 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
5725
5726         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
5727
5728 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
5729
5730         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
5731         constants 1 and 2 to NO_LD_REGS.
5732
5733 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5734
5735         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
5736
5737         * objc/Make-lang.in (objc-parse.c): Likewise.
5738
5739 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
5740
5741         * arm.c: Include obstack.h
5742         (minipool_obstack, minipool_startobj): Define.
5743         (arm_add_gc_roots): Initialize them.
5744         (create_fix_barrier): Use our new obstack.
5745         (push_minipool_barrier, push_minipool_fix): Likewise.
5746         (arm_reorg): Release obstack memory.
5747
5748 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
5749
5750         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
5751         (prologue, exception_receiver, builtin_setjmp_receiver): New
5752         patterns.
5753         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
5754         * config/sparc/sparc-protos.h (finalize_pic): Remove.
5755         (load_pic_register): New prototype.
5756         * config/sparc/sparc.c (pic_setup_code): Remove.
5757         (finalize_pic): Rename to...
5758         (load_pic_register): ...this function.
5759         Don't look for nonlocal_goto_receivers and emit pic setup code
5760         directly.  Don't check current_function_uses_pic_offset_table.
5761
5762 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
5763
5764         * tree.h (struct obstack): Declare.
5765
5766 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
5767
5768         Remove obstacks.
5769         * Makefile.in (ggc-callbacks.o): Remove target.
5770         (flow.o): Depend on GGC_H.
5771         * alias.c (init_alias_analysis):
5772         Remove ggc_p conditionals.
5773         (end_alias_analysis): Likewise.
5774         * basic-block.h (init_flow): New function.
5775         (allocate_reg_life_data): Declare.
5776         * bb-reorder.c  (function_obstack): Replace with ...
5777         (flow_obstack): ... new variable.
5778         (fixup_reorder_chain): Use it.
5779         * c-decl.c (ggc_p): Remove.
5780         (caller-save.c): Don't call oballoc/obfree.
5781         * combine.c (struct
5782         undobuf): Remove storage.
5783         (try_combine): Don't call oballoc.
5784         (undo_all): Don't call obfree.
5785         * cse.c (insert): Use xmalloc, not
5786         oballoc.
5787         (cse_main): Adjust accordingly.
5788         * dwarf2out.c (save_rtx): Remove
5789         obstack code.
5790         (dwarf2out_init): Remove ggc_p conditionals.
5791         * emit-rtl.c (rtl_obstack): Remove.
5792         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
5793         (make_insn_raw): Likewise.
5794         (emit_insn_before): Likewise.
5795         (emit_insn_after): Likewise.
5796         (emit_insn): Likewise.
5797         (gen_sequence): Likewise.
5798         (copy_insn_1): Remove handling of `b' RTL components.
5799         (init_emit_once): Remove ggc_p conditionals.
5800         * except.c (create_rethrow_ref): Don't fool with obstacks.
5801         (add_partial_entry): Likewise.
5802         (call_get_eh_context): Likewise.
5803         (begin_protect_partials): Likewise.
5804         (protect_with_terminate): Likewise.
5805         * explow.c
5806         (plus_constant_wide): Likewise.
5807         * expr.c (init_expr_once):
5808         Likewise.
5809         (emit_block_move): Likewise.
5810         (clear_storage): Likewise.
5811         (expand_expr): Likewise.
5812         * flow.c (function_obstack): Remove.
5813         (flow_obstack): New variable.
5814         (flow_firstobj): Likewise.
5815         (create_base_block): Use the flow_obstack.
5816         (split_block): Likewise.
5817         (split_edge): Likewise.
5818         (calculate_global_regs_live): Likewise.
5819         (allocate_bb_life_data): Make it static.  Likewiwse.
5820         (init_flow): New function.
5821         (size_int_type_wide): Remove ggc_p conditionals.
5822         * function.c
5823         (push_function_context_to): Don't call save_tree_status.
5824         (pop_function_context_from): Or restore_tree_status.
5825         (assign_stack_local_1): Don't call push_obstacks.
5826         (find_fixup_replacement): Use xmalloc.
5827         (fixup_var_refs_insns): Free the storage.
5828         (insns_for_mem_walk): Don't mess with obstacks.
5829         (instantiate_decls): Likewise.
5830         (trampoline_address): Likewise.
5831         (expand_function_end): Likewise.
5832         * function.h (sturct function):
5833         Remove obstack-related variables.
5834         (save_tree_status): Don't declare.
5835         (restore_tree_status): Likewise.
5836         * gcse.c (compute_can_copy):
5837         Don't call oballoc/obfree.
5838         * genattrtab.c (operate_exp): Remove
5839         ggc_p conditionals.
5840         (simplify_cond): Likewise.
5841         (simplify_test_exp): Don't mess with obstacks.
5842         (optimize_attrs): Likewise.
5843         * gengenrtl.c (gendef): Don't include
5844         ggc_p conditionals.
5845         * ggc-callbacks.c (ggc_p): Remove.
5846         * ggc-none.c (ggc_p): Remove.
5847         * ggc.h (ggc_p): Don't declare.
5848         * integrate.c (save_for_inline): Don't mess with obstacks.
5849         (integrate_decl_tree): Likewise.
5850         (output_inline_function): Likewise.
5851         * lists.c
5852         (init_EXPR_INSN_LIST_cache): Likewise.
5853         * loop.c (temp_obstack):
5854         Remove.
5855         (rtl_obstack): Likewise.
5856         (init_loop): Don't mess with obstacks.
5857         (reg_address_cost): Free BIVs and GIVs.
5858         (check_insns_for_bivs): Use xmalloc, not oballoc.
5859         (find_mem_givs): Likewise.
5860         (record_biv): Likewise.
5861         (general_induction_var): Likewise.
5862         (product_cheap_p): Likewse.
5863         * optabs.c (init_one_libfunc): Remove
5864         ggc_p conditional.
5865         * print-tree.c (debug_tree): Don't use
5866         oballoc/obfree.
5867         (print_node): Likewise.
5868         * profile.c (output_func_start_profiler):
5869         Remove call to temporary_allocation.
5870         * reload1.c
5871         (eliminate_regs_in_insn): Don't mess with obstacks.
5872         * resource.c
5873         (mark_target_live_regs): Use xmalloc.
5874         (free_resource_info): Free the memory.
5875         * rtl.c (rtl_obstack):
5876         Remove.
5877         (rtvec_alloc): Don't mess with obstacks.
5878         (rtx_alloc): Likewise.
5879         (rtx_free): Remove.
5880         (copy_rtx): Don't handle `b' cases.
5881         (read_rtx): Use a local rtl_obstack.
5882         * rtl.h (oballoc): Remove.
5883         (obfree): Likewise.
5884         (pop_obstacks): Likewise.
5885         (push_obstacks): Likewise.
5886         (allocate_bb_life_data): Likewise.
5887         (allocate_reg_life_data): Likewise.
5888         (rtx_free): Likewise.
5889         * sdbout.c (sdbout_queue_anonymous_type):
5890         Use tree_cons, not saveable_tree_cons.
5891         * simplify-rtx.c
5892         (cselib_init): Don't mess with obstacks.
5893         * stmt.c
5894         (mark_block_nesting): Mark the label_chain.
5895         (epxand_label): Use ggc_alloc, not oballoc.
5896         (clear_last_expr): Don't mess with obstacks.
5897         (expand_decl_cleanup): Likewise.
5898         (expand_dcc_cleanup): Likewise.
5899         (expand_dhc_cleanup): Likewise.
5900         (expand_anon_union_decl): Likewise.
5901         (add_case_node): Use xmalloc, not oballoc.
5902         (free_case_nodes): New function.
5903         (expand_end_case): Call it.
5904         * stor-layout.c (layout_type): Don't
5905         mess with obstacks.
5906         (layout_type): Likewise.
5907         * toplev.c (wrapup_global_declarations):
5908         Likewise.
5909         (compile_file): Remove ggc_p conditionals.
5910         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
5911         (decode_f_option): Remove ggc_p conditionals.
5912         * tree.c
5913         (function_maybepermanent_obstack): Remove.
5914         (maybepermanent_obstack): Likewise.
5915         (function_obstack): Likewise.
5916         (tmeporary_obstack): Likewise.
5917         (momentary_obstack): Likewise.
5918         (temp_decl_obstack): Likewise.
5919         (saveable_obstack): Likewise.
5920         (rtl_obstack): Likewise.
5921         (current_obstack): Likewise.
5922         (expression_obstack): Likewise.
5923         (struct obstack_stack): Likewise.
5924         (obstack_stack): Likewise.
5925         (obstack_stack_obstack): Likewise.
5926         (maybepermanent_firstobj): Likewise.
5927         (temporary_firstobj): Likewise.
5928         (momentary_firstobj): Likewise.
5929         (temp_decl_firstobj): Likewise.
5930         (momentary_function_firstobj): Likewise.
5931         (all_types_permanent): Likewise.
5932         (struct momentary_level): Likewise.
5933         (momentary_stack): Likewise.
5934         (init_obstacks): Remove initialization of removed obstacks.
5935         (save_tree_status): Remove.
5936         (restore_tree_status): Likewise.
5937         (temporary_allocation): Liekwise.
5938         (end_temporary_allocation): Liekwise.
5939         (resume_temporary_allocation): Likewise.
5940         (saveable_allocation): Likewise.
5941         (push_obstacks): Likewise.
5942         (push_obstacks_nochange): Likewise.
5943         (pop_obstacks): Likewise.
5944         (allocation_temporary_p): Likewise.
5945         (permanent_allocation): Likewise.
5946         (preserve_data): Likewise.
5947         (preserve_initializer): Likewise.
5948         (rtl_in_current_obstack): Likewise.
5949         (rtl_in_saveable_obstack): Likewise.
5950         (oballoc): Likewise.
5951         (obfree): Likewise.
5952         (savealloc): Likewise.
5953         (expralloc): Likewise.
5954         (print_obstack_name): Likewise.
5955         (debug_obstack): Likewise.
5956         (object_permanent_p): Likewise.
5957         (push_momentary): Likewise.
5958         (perserve_momentary): Likewise.
5959         (clear_momentary): Likewise.
5960         (pop_momentary): Likewise.
5961         (pop_momentary_nofree): Likewise.
5962         (suspend_momentary): Likewise.
5963         (resume_momentary): Likewise.
5964         (make_node): Don't set TREE_PERMANENT.
5965         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
5966         Don't set TREE_PERMANENT.
5967         (get_identifier): Remove ggc_p conditionals.
5968         (build_string): Likewise.
5969         (make_tree_vec): Likewise.
5970         (build_decl_list): Remove.
5971         (build_expr_list): Likewise.
5972         (tree_cons): Remove ggc_p conditionals.
5973         (decl_tree_cons): Remove.
5974         (expr_tree_cons): Likewise.
5975         (perm_tree_cons): Likewise.
5976         (temp_tree_cons): Likewise.
5977         (saveable_tree_cons): Likewise.
5978         (build1): Remove ggc_p conditionals.
5979         (build_parse_node): Likewise.
5980         (build_type_attribute_variant): Don't mess with obstacks.
5981         (build_type_copy): Likewise.
5982         (type_hash_canon): Likewise.
5983         (build_pointer_type): Likewise.
5984         (build_reference_type): Likewise.
5985         (build_index_type): Likewise.
5986         (build_range_type): Likewise.
5987         (dump_tree_statistics): Don't print obstack information.
5988         * tree.h
5989         (struct tree_common): Remove permanent_flag.
5990         (TREE_PERMANENT): Remove.
5991         (TREE_SET_PERMANENT): Likewise.
5992         (TYPE_OBSTACK): Likewise.
5993         (struct tree_type): Remove obstack.
5994         (oballoc): Remove.
5995         (savealloc): Likewise.
5996         (build_decl_list): Likewise.
5997         (build_expr_list): Likewise.
5998         (perm_tree_cons): Likewise.
5999         (temp_tree_cons): Likewise.
6000         (saveable_tree_cons): Likewise.
6001         (decl_tree_cons): Likewise.
6002         (expr_tree_cons): Likewise.
6003         (suspend_momentary): Likewise.
6004         (allocation_temporary_p): Likewise.
6005         (resume_momentary): Likewise.
6006         (push_obstacks_nochange): Likewise.
6007         (permanent_allocation): Likewise.
6008         (push_momentary): Likewise.
6009         (clear_momentary): Likewise.
6010         (pop_momentary): Likewise.
6011         (end_temporary_allocation): Likewise.
6012         (pop_obstacks): Likewise.
6013         (push_obstacks): Likewise.
6014         (pop_momentary_nofree): LIkewise.
6015         (preserve_momentary): Likewise.
6016         (saveable_allocation): Likewise.
6017         (temporary_allocation): Likewise.
6018         (resume_temporary_allocation): Likewise.
6019         (perserve_initializer): Likewise.
6020         (debug_obstack): Likewise.
6021         (rtl_in_current_obstack): Likewise.
6022         (rtl_in_saveable_obstack): Likewise.
6023         (obfree): Likewise.
6024         * varasm.c (current_obstack): Remove.
6025         (saveable_obstack): Remove.
6026         (rtl_obstack): Remove.
6027         (immed_double_const): Don't mess with obstacks.
6028         (immed_real_cons): Likewise.
6029         (output_constant_def): Likewise.
6030         (init_varasm_status): Use xcalloc.
6031         (mark_pool_constant): Mark the pool constant itself.
6032         (free_varasm_status): Free memory.
6033         (decode_rtx_const): Call bzero directly, rather than expanding it
6034         inline.
6035         (record_rtx_const): Don't mess with obstacks.
6036         (force_const_mem): Likewise.
6037         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
6038         conditionals.
6039         (aof_pic_entry): Likewise.
6040         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
6041         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
6042         * config/pa/pa.c (saveable_obstack): Remove.
6043         (rtl_obstack): Likewise.
6044         (current_obstack): Likewise.
6045         (output_call): Don't mess with obstacks.
6046         (hppa_encode_label): Remove ggc_p conditionals.
6047         * config/romp/romp.c (get_symref): Don't mess with obstacks.
6048         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
6049         (rs6000_encode_section_info): Likewise.
6050         * config/sh/sh.c (get_fpscr_rtx): Likewise.
6051
6052 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
6053
6054         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
6055         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
6056         (addsi3_carry): Canonicalize.
6057         (addqi_5): Remove '*'.
6058         (sbb pattern): Canonicalize.
6059
6060         * i386.md (cmp to inc/add peep2): New.
6061
6062 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
6063
6064         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
6065         the exit block.
6066
6067 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6068
6069         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
6070         * README.TRAD, TESTS.FLUNK: Remove.
6071
6072 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6073
6074         * c-common.c (decl_attributes): Don't allow strftime formats with
6075         first_arg_num nonzero.
6076         (check_format_info): Set wanted_type and wanted_type_name to zero
6077         before they are possibly assigned and used.
6078
6079 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6080
6081         * c-common.c (scanf_flag_specs): Add flags ' and I.
6082         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
6083         or the ^ and # flags together.
6084         (scan_char_table): Handle the ' and I flags.
6085         (format_types): Add ' and I flags for scanf.
6086
6087 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6088
6089         * c-common.c (print_char_table): Use the unpromoted type for
6090         lengths "h" and "hh" with conversions dioxXu.
6091         (check_format_types): Apply the default argument promotions where
6092         the wanted type is not a pointer target.
6093
6094 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
6095             Joseph S. Myers  <jsm28@cam.ac.uk>
6096
6097         * c-typeck.c (check_modify_expr): New function.
6098         (build_modify_expr): Call it if warn_sequence_point.
6099         * c-decl.c (warn_sequence_point): New variable.
6100         (c_decode_option): Handle -Wsequence-point and
6101         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
6102         * c-tree.h (warn_sequence_point): Declare.
6103         * invoke.texi (-Wsequence-point): Document.
6104         * toplev.c (documented_lang_options): Add -Wsequence-point and
6105         -Wno-sequence-point.
6106         Original work by Michael Meeks, 16 Jun 1998.
6107
6108 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6109
6110         * tree.c (get_narrower): Don't look at precision of field if
6111         not laid out yet.
6112
6113 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
6114
6115         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
6116         declaration for data with "progmem" attribute.
6117
6118 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
6119
6120         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
6121         Correct insn length if shift count is a memory operand.
6122         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
6123         (*iorhi3_clobber): Change lo8 to hi8.
6124         (zero_extendhisi2): Change %B0 to %A1.
6125         (ashlhi3, ashrhi3): Correct insn length.
6126         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
6127         from "clobber" to "set_n" in some alternatives.
6128
6129 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
6130
6131         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
6132         remove its insn_chain structure as well.
6133
6134 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6135
6136         * dbxout.c (dbxout_source_line): Remove extra tab.
6137
6138 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
6139
6140         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
6141
6142 2000-10-09  Richard Henderson  <rth@cygnus.com>
6143
6144         * Makefile.in (LANG_LIB2FUNCS): Remove.
6145         (LIB2FUNCS): Remove _pure.
6146         (LIB2ADD): Remove LANG_LIB2FUNCS.
6147         (stage_a): Don't set LANG_LIB2FUNCS.
6148         * libgcc2.c (__terminate): Mark noreturn.
6149         (__pure_virtual): Remove.
6150         * mklibgcc.in: Remove LIB2ADD .txt processing.
6151
6152 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6153
6154         * arm.md (push_multi): Revert unintended change.
6155
6156 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6157
6158         * arm.c: Miscellaneous white space and comment clean-ups.  No
6159         functional change.
6160         * arm.md: Likewise.
6161
6162 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6163
6164         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
6165         STRING_CST by calling combine_strings.
6166
6167 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6168
6169         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
6170         (thumb_output_move_mem_multiple): Support new insn format.
6171         * arm.md (movmem12b): Use SSA compatible format.
6172         (movmem8b): Likewise.
6173
6174 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6175
6176         * arm.md (predicable): New attribute, default to "no".
6177         (all patterns): Mark as predicable if appropriate.
6178         (conditional execution splits): Split using predication format.
6179         (define_cond_exec): Define.
6180         * arm.c (arm_print_operand): handle insn predicate.
6181
6182 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6183
6184         * README.NS32K: Remove file.
6185
6186 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6187
6188         * README-bugs: Remove file.
6189
6190 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6191         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
6192         for test.
6193         * configure: Rebuilt.
6194
6195 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6196         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
6197         disable catalog building if no suitable program was found.
6198         Move warning message from here
6199         (AM_GNU_GETTEXT): To here.
6200         * configure: Rebuilt.
6201
6202 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6203         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
6204         different cache variables.
6205         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
6206         uses different cache variables.
6207         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
6208         * configure: Regenerated.
6209
6210 2000-10-08  Richard Henderson  <rth@cygnus.com>
6211
6212         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
6213         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
6214         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
6215         Use SHLIB_EXT.
6216
6217         * config/t-linux (SHLIB_EXT): New.
6218         (SHLIB_LINK): Use the entire build command, with substitutions.
6219         (SHLIB_LIBS): Remove.
6220         * config/alpha/t-osf4: Likewise.
6221         * config/mips/t-iris6: Likewise.
6222         * config/sparc/t-sol2: Likewise, but move shlib stuff...
6223         * config/sparc/t-slibgcc-sld: ...here.
6224         * config/sparc/t-slibgcc: New file.
6225
6226 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6227
6228         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
6229         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
6230         CTI_UINTMAX_TYPE.
6231         (intmax_type_node, uintmax_type_node): Define.
6232         * c-common.c (decl_attributes): If pedantic, warn if `mode'
6233         attributes create a type wider than intmax_t.
6234         (T_IM, T_UIM): Define properly.
6235         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
6236         defined.
6237         (init_decl_processing): Initialize intmax_type_node and
6238         uintmax_type_node.
6239         * c-lex.c (lex_number): When pedantic and warning for integer
6240         constants that are too large, in C99 mode warn for those that have
6241         a type wider than long long.
6242
6243 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6244
6245         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
6246         FMT_FLAG_FANCY_PERCENT_OK): Define.
6247         (format_char_info): Add flag "4" to comment.
6248         (format_flag_spec, format_flag_pair): New structures.
6249         (format_kind_info): Add additional fields to control format
6250         checking.
6251         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
6252         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
6253         arrays.
6254         (time_char_table): Use "4" flag to handle %Ey.
6255         (format_types): Add entries for new fields.
6256         (get_flag_spec): New function.
6257         (check_format_info): Increase size of flag_chars[] to 256.
6258         Control format checking using the new fields of a format_kind_info
6259         and the new tables; remove all conditionals on printf_format_type,
6260         scanf_format_type or strftime_format_type.  Handle all details of
6261         bad combinations of flags (including width, precision and strftime
6262         modifiers) through data rather than ad hoc code.  Handle all
6263         details of standard versions in which flags appeared through
6264         data.  Use the "4" flag.
6265
6266 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
6267
6268         * config/h8300/h8300.md: Remove the memory alternative and correct
6269         the insn lengths in the templates for sign extention and zero
6270         extention.
6271
6272 2000-10-07  Richard Henderson  <rth@cygnus.com>
6273
6274         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
6275         * flow.c (make_edges): Revert last change.
6276
6277         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
6278         TREE_THIS_VOLATILE.
6279         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
6280
6281 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
6282
6283         * config/alpha/elf.h: Standardize the formatting.
6284
6285 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
6286
6287         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
6288         #undef.
6289
6290 2000-10-06  Richard Henderson  <rth@cygnus.com>
6291
6292         * function.c (diddle_return_value): Examine
6293         current_function_return_rtx instead of the DECL_RESULT.
6294         (expand_function_end): Handle reloading DECL_RESULT from memory
6295         into a hard register.  Query promote_mode for sign of mismatched
6296         modes.
6297
6298 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6299
6300         * haifa-sched.c (schedule_insns): Fix typo in freeing
6301         forward_dependency_cache.
6302
6303 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
6304
6305         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
6306         `TARGET_SH2' as a condition.
6307
6308 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6309
6310         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
6311         forward_dependency_cache): New variables.
6312         (add_dependence, remove_dependence): Use anti_dependency_cache and
6313         output_dependency_cache.
6314         (compute_block_forward_dependences): Use forward_dependency_cache.
6315         (schedule_insns): Allocate and free memory for anti/output/forward
6316         dependencies caches.
6317
6318 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
6319
6320         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
6321         `! TARGET_SH1'.  Reindent.
6322
6323 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6324
6325         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
6326         Move functions from here ...
6327
6328         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
6329         ... to here.
6330         (c_expand_builtin): New function.
6331         (init_function_format_info): Don't set `check_function_format_ptr'.
6332         (c_common_nodes_and_builtins): Set built_in_class type for
6333         printf/__builtin_printf to BUILT_IN_FRONTEND.
6334         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
6335
6336         * c-common.h (build_function_call): Declare.
6337
6338         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
6339         to `lang_expand_expr' rather than `expand_builtin'.
6340
6341         * tree.c (check_function_format_ptr): Delete.
6342
6343         * tree.h (check_function_format_ptr): Likewise.
6344
6345 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
6346
6347         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
6348         DW_OP_bregx when cfa->reg > 31.
6349
6350         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
6351         break.
6352
6353 2000-10-05  Richard Henderson  <rth@cygnus.com>
6354
6355         * c-decl.c (warn_missing_noreturn): Remove.
6356         (c_expand_body): Don't set or check can_reach_end.
6357         * c-tree.h (warn_missing_noreturn): Move ...
6358         * flags.h: ... here.
6359         (can_reach_end): Remove.
6360         * flow.c (check_function_return_warnings): New.
6361         (make_edges): No edge to exit for noreturn sibcalls.
6362         * function.c (expand_function_end): Save the return value
6363         clobber instruction.
6364         (mark_function_status): Mark it.
6365         * function.h (struct function): Add x_clobber_return_insn.
6366         * jump.c (can_reach_end): Remove.
6367         (calculate_can_reach_end): Remove.
6368         (jump_optimize_1): Don't call it.
6369         * output.h (check_function_return_warnings): Declare.
6370         * toplev.c (warn_missing_noreturn): Move from c-decl.c
6371         (rest_of_compilation): Call check_function_return_warnings.
6372
6373 2000-10-05  Richard Henderson  <rth@cygnus.com>
6374
6375         * Makefile.in (NM_FOR_TARGET): New.
6376         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
6377         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
6378         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
6379         shared library build on that and EXTRA_MULTILIB_PARTS.
6380         * mkmap-flat.awk: New file.
6381         * mkmap-symver.awk: New file.
6382         * libgcc-std.ver: New file.
6383         * config/libgcc-glibc.ver: New file.
6384         * config/ia64/libgcc-ia64.ver: New file.
6385         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6386         (SHLIB_LINK): Add --version-script.
6387         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
6388         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6389         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6390         (SHLIB_LINK): Add -M.
6391
6392 2000-10-05  Richard Henderson  <rth@cygnus.com>
6393
6394         * Makefile.in (LIB2FUNCS): Add _clz.
6395         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
6396         (__clz_tab): Put in its own unit, non-static.
6397         * libgcc2.h: Always include longlong.h.
6398
6399         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
6400         a zero instead of -1.
6401         (count_trailing_zeros): Likewise.
6402
6403 2000-10-05  Richard Henderson  <rth@cygnus.com>
6404
6405         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
6406         when second op1 is const0_rtx.  Validate op0 as a register.
6407         * config/alpha/alpha.md (setcc_internal): Don't allow constants
6408         in the first argument of the compare.
6409         (setcc_swapped_internal): Likewise.
6410         (setne_internal): Likewise.
6411
6412 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
6413
6414         * tree.c (tree_size): New function split out of copy_node.
6415         (make_node): Remove obstack handling.  Use tree_size.
6416         (copy_node): Use tree_size.
6417         * tree.h: Prototype tree_size.
6418
6419 2000-10-05  Richard Henderson  <rth@cygnus.com>
6420
6421         * diagnostic.c (output_format): Add missing break.
6422
6423 2000-10-05  Jim Wilson  <wilson@cygnus.com>
6424
6425         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
6426         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
6427         sequence insn to INSN, and delete last sequence insn.
6428
6429 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
6430
6431         * gcc.c (main): Include generated configargs.h header
6432         and use arguments in '-v' output.
6433
6434 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6435
6436         * gcc.c: Move data on prefixes forward in file and reorganize.
6437         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
6438         Always define, but make null if no value.
6439         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
6440         and "md_startfile_prefix_1".
6441         (main): Check whether md_exec_prefix and the others are the
6442         null string rather than whether the macro is defined.
6443
6444 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6445
6446         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
6447         from PSImode to SImode.
6448
6449 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
6450
6451         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
6452         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
6453         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
6454         sizeof(long).
6455
6456 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6457
6458         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
6459         negation in proper type.a
6460
6461 2000-10-04  Richard Henderson  <rth@cygnus.com>
6462
6463         * configure.in (enable-shared): New.
6464         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
6465         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
6466         * mklibgcc.in: Use them to link shared a libgcc.
6467         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
6468         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
6469         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
6470         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
6471
6472         * configure.in (alpha-osf*): Use t-osf and x-osf.
6473         * config/alpha/t-osf: New file.
6474         * config/alpha/t-osf4: New file.
6475         * config/alpha/x-osf: New file.
6476         * config/alpha/x-alpha: Remove file.
6477
6478 2000-10-04  Will Cohen  <wcohen@redhat.com>
6479
6480         * c-typeck.c (process_init_element): Added warning for zero-length
6481         array.
6482
6483         * extend.texi (Zero Length): State that static initializers for
6484         zero-length arrays are not allowed.
6485
6486 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6487
6488         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
6489         to come last.
6490
6491 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6492
6493         * config/float-c4x.h: New.
6494         * configure.in (c4x-*): Set float_format to c4x.
6495         * configure: Regenerate.
6496
6497 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6498
6499         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
6500         compilation for solaris versions 2.7 and greater.
6501
6502 2000-10-02  Marc Espie <espie@openbsd.org>
6503
6504         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
6505         instead of redefining from scratch.
6506
6507 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
6508
6509         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
6510
6511 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
6512
6513         * config/ns32k/genix.h: Remove.
6514         * config/ns32k/x-genix: Likewise.
6515         * config/ns32k/xm-genix.h: Likewise.
6516         * config/fx80: Remove all filee in directory.
6517         * config/pyr: Likewise.
6518         * config/tahoe: Likewise.
6519         * config/gmicro: Likewise.
6520         * config/spur: Likewise.
6521         * configure.in: Remove configury bits for above targets.
6522         * configure: Regenerated.
6523
6524         * configure.in: Don't configure chill by default.
6525         * configure: Regenerated.
6526
6527         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
6528         (lang_mark_false_label_stack): Remove.
6529         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
6530         <top level> string in GC area.
6531         (mark_splay_tree_node): New function.
6532         (mark_splay_tree): Likewise.
6533         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
6534         if it exists.
6535         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
6536         * ggc-common.c (lang_mark_false_label_stack): Change type.
6537         * ggc.h (ggc_alloc_string): Add comment.
6538         (ggc_strdup): New function.
6539
6540 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
6541
6542         * config/avr/avr.h (BRANCH_COST): Define as 0.
6543
6544         * config/pdp11/pdp11.c: #include "tree.h" added.
6545
6546 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
6547
6548         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
6549         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
6550         with known shift count.
6551         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
6552         New alternative for shift count 2 with no scratch register.
6553         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
6554         "set_n" for shift counts 1 and 2.
6555
6556 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
6557
6558         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
6559         the mask value from the individual SET operations.
6560         (return_internal_si): Move the USE after the RETURN.
6561         (return_internal_di): Likewise.
6562         (return_and_restore_fpregs_si): Likewise.
6563         (return_and_restore_fpregs_di): Likewise.
6564         (return_eh_si): Likewise.
6565         (return_eh_di): Likewise.
6566         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
6567         or check, the USE.
6568         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
6569         Don't generate a PARALLEL around a single operation movsi_to_cr.
6570         Generate the RETURN first in any PARALLELs.
6571
6572         * rtlanal.c (single_set_1): Use fatal_insn to display the
6573         invalid insn.  Check for more cases when a USE or CLOBBER occurs
6574         before a SET.
6575         * Makefile.in: Update dependencies for rtlanal.o.
6576
6577 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
6578
6579         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
6580
6581 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
6582
6583         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
6584         Consistently use @email for formatting email addresses.
6585
6586 2000-09-29  Richard Henderson  <rth@cygnus.com>
6587
6588         * cse.c (notreg_cost): New argument outer.
6589         (COST): Pass in SET to notreg_cost
6590         (COST_IN): New.
6591         (fold_rtx): Use COST_IN.  Prefer constants when costs
6592         are the same.
6593
6594 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
6595
6596         * fixinc/inclhack.def (broken_cabs): Generalize regex.
6597         * fixinc/fixincl.x: Regenerate.
6598
6599 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6600
6601         * loop.c (check_final_value): A GIV is not replaceable if used
6602         before set.
6603
6604 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
6605
6606         * version.c: Bump to gcc-2.97.
6607
6608 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6609
6610         * final.c (final_scan_insn): Remove extra extract_insn call;
6611         Use caching for constrain_operands.
6612         (cleanup_subreg_operands): Use caching for extract_insn.
6613         * recog.c (constrain_operands_cached): New.
6614         * recog.h (constrain_operands_cached): Declare.
6615         * i386.c (ix86_attr_length_immediate_default,
6616         ix86_attr_length_address_default, ix86_agi_dependant): Cache
6617         extract_insn call.
6618
6619         * recog.c (asm_noperands): Tweak.
6620         (extract_insn): Do not call asm_noperads for non-asm instructions.
6621
6622 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6623
6624         * recog.c (recog_memoized): Rename to recog_memoized_1.
6625         * recog.h (recog_memoized): Rename to recog_memoized_1.
6626         (recog_memoized): New macro.
6627         * rtl.h (single_set): Rename to single_set_1
6628         (single_set): New macro.
6629         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
6630         to be last.
6631
6632         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
6633         Do not use match_dup of input operands at outputs.
6634         Use register_operand for memory expression.
6635         (rep_movsi): Put use last, canonicalize.
6636         Use register_operand for memory expression.
6637         (rep_movqi): Put use last.
6638         Use register_operand for memory expression.
6639         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
6640         of input operands at outputs.  Use register_operand for memory
6641         expression.
6642         (rep_stossi): Put use last; canonicalize; fix match_dup in
6643         the address expression
6644         (rep_stosqi): Likewise.
6645         (memcmp expander): Update calls.
6646         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
6647         the clobbers.
6648
6649         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
6650         VOIDmode.
6651         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
6652
6653 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
6654
6655         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
6656         Contains the old contents of config/i386/freebsd.h
6657         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
6658         Contains the old contents of config/i386/freebsd-elf.h
6659         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
6660         config/i386/freebsd.h.
6661         * configure.in: Adjust for above changes.
6662         * po/POTFILES.in: Likewise.
6663         * po/en_GB.po: Likewise.
6664         * po/gcc.pot: Likewise.
6665         * configure: Rebuilt.
6666
6667 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6668
6669         * doloop.c (doloop_modify): Prevent delete_insn() from
6670         deleting too much.  Prefer loop->top over loop->start as
6671         target for the new JUMP insn.
6672         (doloop_valid_p): Ignore loop with exit_count != 0.
6673
6674 2000-09-28  Philipp Thomas  <pthomas@suse.de>
6675
6676         * invoke.texi (i386 Options): Add athlon to table of possible
6677         choices for -mcpu=.
6678
6679 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
6680
6681         * diagnostic.h (output_clear_message_text): New function.
6682         (output_message_text): New macro.
6683
6684         * diagnostic.c (clear_text_info): Rename to
6685         output_clear_message_text.
6686         (output_clear): Adjust.
6687         (output_finish): Rename to output_finalize_message.  Tweek.
6688         (output_to_stream): Adjust.
6689
6690 2000-09-28  Neil Booth  <neilb@earthling.net>
6691
6692         * cpperror.c (_cpp_begin_message):  Do the test for suppression
6693         of warnings and pedantic warnings before the "is a warning an
6694         error" tests.
6695         * cppinit.c (cpp_handle_option): Remove surplus \n.
6696         * cpplex.c (ON_REST_ARG): Delete.
6697         (skip_block_comment): Initialise prevc.
6698         (parse_args): Improve error messages.
6699         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
6700         than ON_REST_ARG.
6701         * cpplib.c (cpp_push_buffer): Fix grammar in message.
6702         * cppmain.c (main): Set callbacks for #ident and #pragma
6703         only if no_output option is false.
6704         (do_pragma_implementation): Only call the #pragma handler
6705         if it is set in the cpp_reader structure.
6706
6707 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
6708
6709         * integrate.c (copy_insn_list): if an ignored return value
6710         is being clobbered, skip cloning that into the inline copy.
6711
6712 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
6713
6714         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
6715         use @uref for formatting URLs.
6716
6717 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
6718
6719         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
6720         name and prefix.
6721
6722 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
6723
6724         * gcc.c (cpp_options): Add spec for -ftabstop=.
6725         (invoke_as): New spec that handles invoking as.
6726         Update specs to handle -save-temps and -traditional.
6727         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
6728         Use invoke_as.
6729         * cp/lang-specs.h, objc/lang-specs.h: Update to use
6730         invoke_as, and handle -save-temps and -traditional (if
6731         appropriate).
6732
6733 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
6734
6735         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
6736         op0 is a SUBREG.
6737         (function_arg_slotno): Accept TImode/CTImode.
6738         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
6739         to UNITS_PER_WORD.
6740
6741 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
6742
6743         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
6744         from entry block.
6745
6746 2000-09-25  Jim Wilson  <wilson@cygnus.com>
6747
6748         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
6749         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
6750         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
6751         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
6752
6753 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
6754
6755         * cpplex.c (parse_args): Don't set VOID_REST flag.
6756         (CONTEXT_VARARGS): New flag.
6757         (maybe_paste_with_next): Set context earlier in loop.  Use
6758         it.  Do varargs test with CONTEXT_VARARGS flag.
6759         (push_arg_context): Set CONTEXT_VARARGS flag if we're
6760         pushing an argument context for a varargs argument.
6761         * cpplib.h (VOID_REST): Delete.
6762         * gcc.dg/cpp/vararg1.c: Add test case.
6763
6764 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
6765
6766         * flags.h:  Declare warning flag warn_system_headers.
6767         * toplev.c:  Define it.
6768         (W_options): Add option -Wsystem-headers.
6769         * diagnostic.c (count_error): Test warn_system_headers.
6770         * invoke.texi:  Add description for -Wsystem-headers.
6771         * cpplib.h (cpp_options): New member warn_system_headers.
6772         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
6773         CPP_IN_SYSTEM_HEADER.
6774         * cpplib.c (do_import, do_pragma_once): Likewise.
6775         * cpperror.c (_cpp_begin_message): Test warn_system_headers
6776         and CPP_IN_SYSTEM_HEADER.
6777         * cppinit.c (handle_option): Recognize -Wsystem_headers.
6778         (print_help): Describe -Wsystem_headers.
6779         * cpplex.c (lex_line): Reorganize condition so that warnings
6780         about C++ comments in system headers can be enabled. Remove
6781         label do_line_comment.
6782
6783 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
6784
6785         * cpplex.c (save_comment): Only store the initial '/'
6786         now.
6787         (lex_token): Combine handling of the two comment types.
6788         Pass everything but the initial '/' to save_comment.
6789
6790 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
6791
6792         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
6793         _cpp_can_paste): New library-internal prototypes.
6794         * cpplex.c (dump_param_spelling, output_line_command,
6795         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
6796         cpp_printf, cpp_output_list): Move to cppoutput.c.
6797         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
6798         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
6799         cppoutput.c.
6800         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
6801         dump_param_spelling, output_line_command, cpp_scan_buffer,
6802         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
6803         from elsewhere.
6804         * Makefile.in: Add cppoutput.c.
6805         * po/POTFILES.in: Add cppoutput.c.
6806
6807 2000-09-25  Richard Henderson  <rth@cygnus.com>
6808
6809         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
6810         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
6811         split until after reload.
6812         (rotlsi3, rotldi3): New.
6813
6814 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
6815
6816         * diagnostic.c (output_last_position): Define.
6817         (set_real_maximum_length): Tweek.
6818         * diagnostic.h (output_last_position): Declare.
6819
6820 2000-09-25  Kazu Hirata  <kazu@hxi.com>
6821
6822         * config/i386/i386.c: Fix formatting.
6823
6824 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
6825
6826         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
6827         UNITS_PER_WORD is small.
6828
6829 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
6830
6831         * c-common.c (format_char_info): Add flags2; update comments.
6832         (print_char_table, scan_char_table, time_char_table): Split some
6833         flags out into flags2.
6834         (check_format_info): Use flags2 for those flags, for identifying
6835         the initial character of a scanf scanset, and for identifying
6836         printf formats where the '0' flag is ignored with precision.
6837
6838 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
6839
6840         Changes below marked "here" add TABs on either or both sides,
6841         covering start of line, up to any operand for all noted .*ASM.*_OP
6842         definitions.  All callers changed.
6843         * tm.texi: Make documented *_ASM.*_OP:s include spacing
6844         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
6845         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
6846         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
6847         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
6848         Fix typos in description for LONG_LONG_TYPE_SIZE and
6849         FINI_SECTION_ASM_OP.
6850         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
6851         why these defaults don't have leading spacing.
6852         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
6853         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6854         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
6855         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
6856         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
6857         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
6858         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
6859         * varasm.c (ASM_STABS_OP): Here.
6860         * xcoffout.h (ASM_STABS_OP): Here.
6861         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
6862         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
6863         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
6864         STRING_ASM_OP): Here.
6865         * config/freebsd.h (IDENT_ASM_OP): Here.
6866         * config/linux-aout.h (SET_ASM_OP): Here.
6867         * config/linux.h (SET_ASM_OP): Here.
6868         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6869         INT_ASM_OP): Here.
6870         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
6871         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
6872         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
6873         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6874         INT_ASM_OP): Here.
6875         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
6876         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
6877         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
6878         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
6879         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
6880         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6881         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
6882         * config/a29k/udi.h (INT_ASM_OP): Here.
6883         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
6884         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
6885         SET_ASM_OP): Here.
6886         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
6887         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6888         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6889         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
6890         ASM_STABD_OP): Here.
6891         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
6892         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
6893         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6894         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
6895         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
6896         SIZE_ASM_OP, STRING_ASM_OP): Here.
6897         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
6898         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
6899         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
6900         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
6901         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
6902         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
6903         Here.
6904         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6905         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
6906         * config/arm/coff.h (INT_ASM_OP): Here.
6907         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
6908         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
6909         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
6910         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
6911         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
6912         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6913         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
6914         STRING_ASM_OP): Here.  Update documentation copy in comments.
6915         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
6916         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
6917         DATA_SECTION_ASM_OP): Here.
6918         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
6919         Here.
6920         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
6921         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
6922         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6923         BSS_SECTION_ASM_OP): Here.
6924         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6925         BSS_SECTION_ASM_OP): Here.
6926         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6927         Here.
6928         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
6929         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
6930         * config/h8300/h8300.h (ASM_WORD_OP): Here.
6931         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6932         BSS_SECTION_ASM_OP): Here.
6933         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
6934         * config/i386/bsd.h (ASM_BYTE_OP): Here.
6935         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
6936         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
6937         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
6938         Here.
6939         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
6940         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
6941         Here.
6942         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
6943         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
6944         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
6945         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
6946         SET_ASM_OP): Here.
6947         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
6948         * config/i386/netbsd.h (INT_ASM_OP): Here.
6949         * config/i386/openbsd.h (INT_ASM_OP): Here.
6950         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
6951         IDENT_ASM_OP): Here.
6952         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
6953         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
6954         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
6955         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
6956         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
6957         SHARED_BSS_SECTION_ASM_OP): Here.
6958         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
6959         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
6960         DATA_SECTION_ASM_OP): Here.
6961         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6962         CONST_SECTION_ASM_OP): Here.
6963         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
6964         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6965         BSS_SECTION_ASM_OP): Here.
6966         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
6967         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
6968         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
6969         BSS_ASM_OP): Here, but use trailing spaces.
6970         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
6971         DATA_SECTION_ASM_OP): Here.
6972         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
6973         Here.
6974         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
6975         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
6976         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6977         TDESC_SECTION_ASM_OP): Here.
6978         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
6979         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
6980         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
6981         Here.
6982         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
6983         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
6984         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
6985         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
6986         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
6987         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
6988         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
6989         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
6990         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
6991         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
6992         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
6993         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
6994         SET_ASM_OP): Here.
6995         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
6996         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
6997         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
6998         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
6999         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
7000         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
7001         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
7002         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7003         GLOBAL_ASM_OP): Here.
7004         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
7005         BSS_SECTION_ASM_OP): Here.
7006         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
7007         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7008         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
7009         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
7010         SKIP_ASM_OP): Here.
7011         * config/m68k/newsgas.h (SET_ASM_OP): Here.
7012         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
7013         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7014         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
7015         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
7016         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
7017         but use trailing spaces.
7018         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
7019         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
7020         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
7021         Here.
7022         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7023         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7024         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7025         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
7026         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7027         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
7028         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
7029         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
7030         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
7031         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
7032         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7033         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
7034         ASM_BYTE_OP): Here.
7035         * config/m88k/openbsd.h (SET_ASM_OP): Here.
7036         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7037         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7038         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
7039         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
7040         DTORS_SECTION_ASM_OP): Here.
7041         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
7042         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7043         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
7044         BSS_SECTION_ASM_OP): Here.
7045         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
7046         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
7047         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
7048         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
7049         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
7050         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7051         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
7052         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
7053         Here.
7054         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
7055         Here.
7056         * config/mips/osfrose.h (SET_ASM_OP): Here.
7057         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
7058         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
7059         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
7060         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7061         Here.
7062         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
7063         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
7064         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
7065         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
7066         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
7067         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7068         Here.
7069         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7070         Here.
7071         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
7072         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
7073         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
7074         Here.
7075         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
7076         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
7077         * config/sparc/linux.h (COMMON_ASM_OP): Here.
7078         * config/sparc/linux64.h (COMMON_ASM_OP,
7079         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
7080         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
7081         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7082         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
7083         * config/sparc/pbd.h (ASM_INT_OP): Here.
7084         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
7085         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7086         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
7087         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
7088         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
7089         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
7090         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
7091         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
7092         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
7093         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7094         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7095         EH_FRAME_SECTION_ASM_OP): Here.
7096         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
7097         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7098         Here.
7099         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7100         Here.
7101         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
7102         TCOMMON_ASM_OP): Here.
7103         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7104         Here.
7105         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7106         ASM_BYTE_OP): Here.
7107
7108 2000-09-25  Richard Henderson  <rth@cygnus.com>
7109
7110         * expmed.c (store_bit_field): Adjust last change to not consider
7111         any word-sized field naturally aligned.
7112
7113 2000-09-24  Richard Henderson  <rth@cygnus.com>
7114
7115         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
7116         TFmode unordered compares properly.  Revalidate integer compare
7117         operands.
7118         (alpha_emit_setcc): New.
7119         (alpha_emit_conditional_move): Revalidate integer compare operands.
7120         * config/alpha/alpha-protos.h: Update.
7121         * config/alpha/alpha.md (cmpdi): Allow general operands.
7122         (sne): Use alpha_emit_setcc.
7123         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
7124         (sunordered, sordered): New.
7125
7126 2000-09-24  Richard Henderson  <rth@cygnus.com>
7127
7128         * config/ia64/ia64-protos.h: Update.
7129         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
7130         (ia64_expand_call): New.
7131         (ia64_expand_prologue): Emit an alloc if we need extra input
7132         registers.
7133         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
7134         instruction if true.
7135         (struct reg_flags): Add is_sibcall.
7136         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
7137         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
7138         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
7139         * config/ia64/ia64.h (PREDICATE_CODES): Update.
7140         * config/ia64/ia64.md (call): Use ia64_expand_call.
7141         (call_value): Likewise.
7142         (sibcall, sibcall_value): New.
7143         (call patterns): Remove extra expanders; tidy.
7144         (sibcall_epilogue): New.
7145         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
7146
7147 2000-09-24  Richard Henderson  <rth@cygnus.com>
7148
7149         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
7150
7151         * sibcall.c (skip_pic_restore): New.
7152         (identify_call_return_value): Use it.
7153
7154 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
7155
7156         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
7157         functions.  Generalize to handle both C and C++.
7158         * Makefile.in (c-tree.info): New target.
7159         (info): Add c-tree.info.
7160
7161 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7162
7163         * expr.c (store_field): If BITSIZE is negative, use size of type.
7164         (expand_expr, case COMPONENT_EXPR): Likewise.
7165
7166 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
7167
7168         * cpplex.c: Update TODO comment.
7169         * cpplib.c (do_error, do_warning): Merge common code of
7170         do_error and do_warning into do_diagnostic.  Use it.
7171         (do_diagnostic): New function.
7172         * cpplib.h: Fix comment typo.
7173
7174 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7175
7176         * c-common.c (check_format_info): Warn for a wide character string
7177         used as a non-wide format argument.
7178
7179 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7180
7181         * builtins.def (BUILT_IN_LLABS): Add.
7182         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
7183         * c-common.c (c_common_nodes_builtins): Create builtin functions
7184         __builtin_llabs, and plain llabs unless no_nonansi_builtins
7185         outside of C99 mode.
7186         (expand_tree_builtin): Handle BUILT_IN_LLABS.
7187
7188 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
7189
7190         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
7191         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
7192         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
7193         _cpp_free_toklist): No need to worry about extra dummy token
7194         at the start of token lists any more.
7195         (trigraph_ok): Only warn outside comments.
7196         (skip_block_comment): Set and clear lexing_comment.
7197         (skip_line_comment): Take a cpp_reader not cpp_buffer.
7198         Set and clear lexing_comment.
7199         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
7200         (check_long_token): Delete.
7201         (lex_percent, lex_dot): New subroutines of lex_token to
7202         handle lexing of '.' and '%' without lookback.
7203         (lex_token): Use lex_dot and lex_percent.
7204         (lex_line): Don't check for LIST_OFFSET.
7205         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
7206         * cpplib.c (_cpp_parse_assertion): Similarly.
7207         (cpp_push_buffer): Initialize extra_char.
7208         * cpplib.h (LIST_OFFSET): Delete.
7209         (struct cpp_buffer): New member extra_char.
7210         (struct lexer_state): New members lexing_comment and seen_dot.
7211
7212 2000-09-23  Jason Merrill  <jason@redhat.com>
7213
7214         * config/rs6000/x-aix41 (CLIB): Define here.
7215         * config/rs6000/t-aix43: Not here.
7216         * config/rs6000/t-aix41: Or here.  Remove.
7217         * configure.in: Don't use it.
7218
7219 2000-09-22  Jason Merrill  <jason@redhat.com>
7220
7221         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
7222         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
7223         * config.in: Regenerate.
7224
7225         * configure.in: Fix checks for assembler features when using a
7226         one-tree assembler that has not yet been built.
7227         Fix --disable-threads.
7228
7229 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
7230
7231         * stmt.c (expand_asm_operands): Allow # in constraints.
7232
7233 2000-09-22  Jason Merrill  <jason@redhat.com>
7234
7235         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
7236
7237         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
7238         function-local names.
7239
7240 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
7241             Mark Mitchell  <mark@codesourcery.com>
7242
7243         * toplev.c (warn_disabled_optimization): Declare new warning flag.
7244         * flags.h (warn_disabled_optimization): Add it here.
7245         * gcse.c (gcse_main): Add warning when disabled.
7246         * invoke.texi: Document -Wdisabled-optimization.
7247
7248 2000-09-21  Jason Merrill  <jason@redhat.com>
7249
7250         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
7251
7252         * dwarf2out.c (tree_add_const_value_attribute): New fn.
7253         (gen_variable_die): Call it for non-definitions.
7254
7255         * dwarf2out.c (die_struct): Add die_mark field.
7256         (mark_dies, unmark_dies): New fns.
7257         (clear_die_sizes): Remove.
7258         (print_die): Check die_symbol rather than die_offset.
7259         (build_abbrev_table, output_pubnames, output_aranges): Check
7260         die_mark rather than die_offset.
7261         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
7262         Call mark_dies.
7263
7264 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
7265
7266         * cppfiles.c (lookup_include_file): Rename to open_file.
7267         Always create a splay tree value, even on syscall failures.
7268         Negative entries indicated by fd == -2.
7269         Re-open files closed in the meantime.
7270         (_cpp_fake_include): Create a negative splay tree entry.
7271         (find_include_file, cpp_read_file): Update for function name
7272         change.
7273         * gcc.gd/cpp/mi4.c: Testcase.
7274
7275 2000-09-21  Nick Clifton  <nickc@redhat.com>
7276
7277         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
7278         ARM and THUMB modes.
7279
7280         * config/mcore/mcore.c: Fix compile time warnings.
7281         * config/mcore/mcore-protos.h: Fix compile time warnings.
7282
7283 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7284
7285         * configure.in: Correct test of gcc_cv_glibc.
7286         * configure: Rebuilt.
7287         * config.in: Rebuilt.
7288
7289 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7290
7291         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
7292         (expand_builtin): Handle BUILT_IN_FWRITE.
7293
7294         * builtins.def (BUILT_IN_FWRITE): New entry.
7295
7296         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
7297
7298 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7299
7300         * gcc.c (modify_target): New variable and struct.
7301         (process_command): Handle MODIFY_TARGET_NAME.
7302         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
7303         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
7304
7305         * c-decl.c (finish_decl): Add else's to avoid referencing
7306         TYPE_DOMAIN of an ERROR_MARK.
7307
7308 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
7309
7310         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
7311         `reload_in*' insns.
7312
7313 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7314
7315         * config/avr/avr.md (neghi2): Add alternative for input and output
7316         operands in different registers, as in negsi2.
7317         (*negsi2): Remove '*' from the name.  Use "movw" if available.
7318
7319 2000-09-19  Jim Wilson  <wilson@cygnus.com>
7320
7321         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
7322         HAVE_GAS_HIDDEN macro.
7323
7324 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
7325
7326         * cpplex.c (lex_line): Drop the EOF token for unknown
7327         directives in assembler.
7328
7329 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
7330
7331         * configure.in: Allow enable_threads_flag value of "aix".  Define
7332         thread_file as "aix" for AIX 4.3 and above.
7333         * configure: Regenerated.
7334
7335         * gthr-aix.h: New file.
7336
7337         * rs6000/t-aix43: Replace soft-float multilib with pthread.
7338         Remove 403 processor multilib match.  Fix rios2 processor multilib
7339         match.
7340
7341         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
7342         to return to appropriate csect.
7343
7344 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7345
7346         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
7347         functions.
7348         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
7349         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
7350         BUILT_IN_PRINTF.
7351
7352         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
7353         New entries.
7354
7355         * c-common.c (init_function_format_info): Handle __builtin_printf.
7356         Set `check_function_format_ptr'.
7357         (c_common_nodes_and_builtins): Set `puts_ftype' and
7358         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
7359         __builtin_printf and printf.
7360
7361         * tree.c, tree.h (check_function_format_ptr): Declare.
7362
7363 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
7364
7365         * cppfiles.c (read_include_file): Take no special action for
7366         zero-length files.
7367
7368 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
7369
7370         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
7371         rather than that of branch.
7372         (shorten_branches): Don't increment insn_current_address twice.
7373
7374         Undo most of the Wed Jan 27 23:39:53 1999 patch:
7375         * loop.h (struct induction): Delete members derived, ix and last_use.
7376         (struct loop_ivs): Delete members first_increment_giv and
7377         last_increment_giv.
7378         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
7379         recombine_givs): Delete functions.
7380         (find_and_verify_loops): Don't initialize cont_dominator.
7381         (strength_reduce): Lose code to try to find bivs that can be
7382         expressed as givs of another biv, and to convert biv increments
7383         into givs.
7384         Lose loop_scan_start variable, always use loop->scan_start.
7385         Don't call recombine_givs.  Don't handle derived givs.
7386         (record_giv): Don't initialize derived and last_use fields.
7387         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
7388         givs.
7389         * unroll.c (derived_regs): Delete static variable.
7390         (unroll_loop): Don't initialize it.
7391         (copy_loop_body): Lose code to handle derived givs.
7392         (find_splittable_givs): Don't check for givs made from biv
7393         increments.
7394         Don't set derived_regs.
7395
7396         Fix misapplied earlier patch:
7397         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
7398         to fpul.
7399         (floatsisf2): Generate floatsisf_ie by default.
7400         (floatsisf_i4): Conditional on TARGET_SH4.
7401
7402         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
7403         predicate for the expanders.
7404
7405 2000-09-19  Richard Henderson  <rth@cygnus.com>
7406
7407         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
7408         in addition to pentium and pentiumpro symbols.
7409         (CPP_CPU_DEFAULT_SPEC): Likewise.
7410
7411         * c-typeck.c (c_expand_asm_operands): Restore the output tree
7412         after expanding.
7413
7414         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
7415         if the tree has side effects.
7416         (warn_if_unused_value): Do not warn about void constructs.
7417
7418         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
7419
7420         * unroll.c (copy_loop_body): Update LABEL_NUSES before
7421         calling invert_jump.
7422
7423 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
7424
7425         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
7426         into anything.
7427
7428 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7429
7430         * Makefile.in (c-common.o): Depend on diagnostic.h.
7431
7432         * c-common.c: Include diagnostic.h.
7433         (tfaff): Delete.
7434         (status_warning): New function.
7435         (check_format_info, maybe_read_dollar_number, check_format_types,
7436         finish_dollar_format_checking, check_function_format): Accept a
7437         `status' parameter.  All callers changed.
7438
7439         * c-common.h (check_function_format): Accept a `status' parameter.
7440
7441         * c-typeck.c: Update call to `check_function_format'.
7442
7443 2000-09-18  Richard Henderson  <rth@cygnus.com>
7444
7445         * c-decl.c (c_expand_body): Call mark_varargs before
7446         expand_function_start.
7447
7448 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
7449
7450         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
7451         * config/rs6000/eabi-ci.asm: Likewise.
7452
7453 2000-09-18  Richard Henderson  <rth@cygnus.com>
7454
7455         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
7456         for BImode.
7457
7458 2000-09-18  Jim Wilson  <wilson@cygnus.com>
7459
7460         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
7461         before passing it to fold_rtx_mult_add.
7462
7463         * unroll.c (final_giv_value): Pass increment through
7464         extend_value_for_giv before passing it to emit_iv_add_mult.
7465
7466         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
7467         paradoxical subreg, then directly substitute the replacement and
7468         return.
7469
7470 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
7471
7472         * cpp.texi: Update documentation, including some clarifications,
7473         the treatment of various newline combinations, and space between
7474         backslash and newline.
7475
7476 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
7477
7478         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
7479         Replace ASM_OUTPUT_LABELREF with assemble_name.
7480
7481 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
7482
7483         * sh.c (addsubcosts): CONST is not cheap.
7484         (find_barrier): For Sh1, take alignment after jumps into account.
7485
7486 2000-09-15  Andrew Haley  <aph@redhat.com>
7487
7488         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
7489         remove all SETs of SUBREGs of hard registers.
7490         * function.c (purge_hard_subreg_sets): New function.
7491         (purge_single_hard_subreg_set): New function.
7492         * rtl.h: (purge_hard_subreg_sets): New function.
7493
7494 2000-09-18  Richard Henderson  <rth@cygnus.com>
7495
7496         * config/ia64/ia64-protos.h: Update.
7497         * config/ia64/ia64.c (signed_inequality_operator): New.
7498         (ia64_expand_compare): New.
7499         (ia64_register_move_cost): Handle PR_REGS moves.
7500         (ia64_secondary_reload_class): Require a GR when moving to a PR.
7501         (struct reg_write_state): Add written_by_and/or.
7502         (struct reg_flags): Add is_and/or.
7503         (rws_update): Set them.
7504         (rws_access_regno): Test them to allow parallel comparisons.
7505         (rtx_needs_barrier): Recognize parallel comparisons.
7506         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
7507         Call recog_memoized; ignore pred_rel_mutex.
7508         (emit_predicate_relation_info): Don't call find_basic_blocks here.
7509         (ia64_reorg): Do it here instead.
7510         * config/ia64/ia64.h: s/CCmode/BImode/g
7511         (MODES_TIEABLE_P): Don't tie BImode.
7512         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
7513         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
7514         (RTX_COSTS): Make multiply 4 insns.
7515         (MEMORY_MOVE_COST): New.
7516         (PREDICATE_CODES): Update.
7517         * config/ia64/ia64.md: s/CCmode/BImode/g
7518         (movcci, movbi): New.
7519         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
7520         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
7521         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
7522         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
7523         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
7524         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
7525         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
7526         (mulsi, muldi): Use xmpy not xma.
7527         (cmpbi): New.
7528         (movcc, movcc_internal): Remove.
7529         (branch expanders): Use ia64_expand_compare.
7530         (setcc expanders): Likewise.
7531         (cmov insns): Use move_operand and ia64_move_ok.
7532         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
7533         scheduler from moving it past a use.
7534         * config/ia64/build.hacks: Remove.
7535
7536 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
7537
7538         * cpphash.h (HASHSTEP): Take character rather than pointer
7539         to character.
7540         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
7541
7542         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
7543
7544         * cpplex.c (auto_expand_name_space, trigraph_replace,
7545         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
7546         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
7547         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
7548         KNOWN_DIRECTIVE): Delete.
7549
7550         (handle_newline, check_long_token, skip_escaped_newlines,
7551         unterminated): New functions.
7552         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
7553
7554         (parse_identifier): Was parse_name, new implementation.
7555         (skip_line_comment, skip_block_comment, skip_whitespace,
7556         parse_number, parse_string, trigraph_ok, save_comment,
7557         adjust_column, _cpp_get_line): New implementations.
7558
7559         (lex_token): New function.  Lexes a token at a time, looking
7560         forwards.  Contains most of the guts of the old lex_line.
7561         (lex_line): New implementation, using lex_token to obtain
7562         individual tokens.
7563         (cpp_scan_buffer): Use the token's line, not the list's line.
7564
7565         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
7566          New implementations.
7567         (do_assert): Don't bother setting the answer's list's line.
7568         (cpp_push_buffer): Initialise new pfile and read_ahead members
7569         of struct cpp_buffer.
7570
7571         * cpplib.h (cppchar_t): New typedef.
7572         (struct cpp_buffer): read_ahead, pfile and col_adjust are
7573         new members.
7574         (struct lexer_state): New structure that determines the state
7575         and behaviour of the lexer.
7576         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
7577         (struct cpp_reader): New member "state". Rename
7578         multiline_string_line and multiline_string_column. Delete
7579         col_adjust, in_lex_line members.
7580         (CPP_BUF_COLUMN): Update.
7581
7582 2000-09-18  Richard Henderson  <rth@cygnus.com>
7583
7584         * combine.c (simplify_comparison): Shift a NOT out of a single
7585         bit test.
7586
7587         * combine.c (if_then_else_cond): Canonicalize BImode true to
7588         STORE_FLAG_VALUE.
7589         * explow.c (trunc_int_for_mode): Likewise.
7590
7591         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
7592         the NOT for De Morgan's rule.
7593         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
7594         of a comparison to the reverse comparison.
7595
7596         * combine.c (try_combine): Allow split to create a single insn.
7597
7598         * machmode.def: Add BImode.  Add a column for bitsize.
7599         * machmode.h (DEF_MACHMODE): Adjust for extra column.
7600         (GET_MODE_BITSIZE): Use it.
7601         * rtl.c (DEF_MACHMODE): Adjust for extra column.
7602         (mode_bitsize): New.
7603         (mode_mask_array): Use bitsize.
7604         * combine.c (combine_simplify_rtx): Require inner and outer
7605         modes to match on nonzero_bits optimizations.
7606
7607 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
7608
7609         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
7610         its entry in spill_reg_store.
7611         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
7612         * sh.c (reg_no_subreg_operand): New function.
7613         * sh-protos.h (reg_no_subreg_operand): Declare it.
7614         * sh.h (PREDICATE_CODES): Add it.
7615         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
7616         input operand that needs to be in fpul.
7617         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
7618         * sh.c (find_barrier): Take into account that machine_dependent_reorg
7619         might add new insns.
7620
7621 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
7622
7623         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
7624         MAYBE_DEAD.
7625         (sh_expand_epilogue): Take the PIC register into account when
7626         computing the frame size.
7627
7628         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
7629         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
7630         LABEL_REFs with a PIC-safe unspec.
7631
7632 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7633
7634         * c-common.c (check_format_info): Properly save the argument
7635         number and parameter for $ operand number formats in case width
7636         and precision arguments are also used.  Allow printf width and
7637         precision arguments to have operand numbers even if none was
7638         specified for the main format, since this is OK for %*.*m.  Only
7639         object to missing $ operand number if the format used requires an
7640         argument.
7641
7642 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7643
7644         * c-common.c (format_char_info): Add 'W' flag to comment.
7645         (print_char_table, scan_char_table): Use it.
7646         (check_format_info): Use the 'W' flag to determine whether a
7647         format argument is written into.
7648
7649 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7650
7651         * c-common.c (check_format_types): Reorganise and clean up,
7652         checking earlier for ERROR_MARKs and making cur_type into its
7653         TYPE_MAIN_VARIANT where convenient.
7654
7655 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7656
7657         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
7658
7659 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
7660
7661         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
7662
7663         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
7664         * i386.c (struct builtin_description): New.
7665         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
7666         (mmx_reg_operand): Declare MODE arg as unused.
7667         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
7668         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
7669         ix86_expand_binop_builtin, ix86_expand_store_builtin,
7670         ix86_init_builtins, ix86_expand_builtin): New functions.
7671         * i386.h (ix86_builtins): New enumeration.
7672         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
7673         * i386.md (attr length_immediate): 0 for mmx/sse types.
7674         (attr prefix_0f): 1 for mmx/sse types.
7675         (setcc_2): Remove "*" so we get gen_setcc_2.
7676         (emms): Account for changed register numbering.  Set "memory" attr
7677         to unknown.
7678         (sfence): Set "memory" attr to unknown.
7679
7680 2000-09-18  Andreas Jaeger  <aj@suse.de>
7681
7682         * configure.in: Define _GNU_SOURCE only when using the GNU C
7683         Library.
7684         * configure: Regenerated.
7685         * config.in: Regenerated.
7686
7687 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
7688
7689         * cppinit.c (cpp_init): Don't use ANSI prototypes.
7690         * flow.c (flow_dump_loop): Likewise.
7691         (flow_loops_dump): Likewise.
7692
7693         * c-typeck.c (c_start_case): Fix typo.
7694
7695 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7696
7697         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
7698         to int for plain complex which defaults to complex double.  Do
7699         warn about defaulting to complex double if pedantic.  Warn about
7700         complex integer types if pedantic.  Warn about complex types if
7701         pedantic and not in C99 mode.
7702         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
7703         for complex conjugation.
7704
7705 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7706
7707         * contrib.texi: Update my entry.
7708
7709 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
7710
7711         * config/avr/avr.md (mcu_enhanced): New attribute.
7712         (mcu_mega): Likewise.
7713         (extendhisi2): Use mcu_enhanced.
7714         (zero_extendhisi2): Likewise.
7715         (call_insn): Use mcu_enhanced and mcu_mega.
7716         (call_value_insn): Likewise.
7717         (*sbrx_branch): Use mcu_mega.
7718         (*sbrx_and_branchsi): Likewise.
7719         (*sbrx_and_branchhi): Likewise.
7720         (*tablejump_lib): Likewise.
7721
7722 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7723
7724         * alias.c (true_dependence): Allow non-unchanging read to conflict
7725         with unchanging write.
7726
7727         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
7728         (store_constructor): Pass alias_set to it.
7729
7730         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
7731         TYPE_MAIN_VARIANT of ERROR_MARK.
7732         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
7733
7734         * simplify-rtx.c (simplify_unary_operation): Add cases
7735         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
7736
7737 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
7738
7739         * expr.h (emit_library_call, emit_library_call_value): Delete
7740         declarations.
7741         * rtl.h (enum libcall_type): New.
7742         (emit_library_call, emit_library_call_value): Change fn_type arg to
7743         be of type enum libcall_type.
7744         * calls.c: Likewise for the function definitions.  Several callers
7745         throughout changed to use the new enumeration appropriately.
7746         (emit_library_call_value_1): Likewise.  Put back code to make libcall
7747         blocks of equal form, but only use it for the two new higher
7748         enumeration values.
7749
7750 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
7751
7752         Convert the C front-end to use function-at-a-time mode.
7753         * c-common.h: Include splay-tree.h.
7754         (C_DECLARED_LABEL_FLAG): New macro.
7755         (struct language_function): Add x_scope_stmt_stack and
7756         x_function_name_declared_p.
7757         (RECHAIN_STMTS): Move definition.
7758         (lang_statment_code_p): Likewise.
7759         (lang_expand_stmt): Likewise.
7760         (lang_expand_decl_stmt): New variable.
7761         (lang_expand_function_end): Likewise.
7762         (current_scope_stmt_stack): New function.
7763         (add_decl_stmt): Likewise.
7764         (add_scope_stmt): Likewise.
7765         (mark_stmt_tree): Likewise.
7766         (struct c_lang_decl): New structure.
7767         (DECL_SAVED_TREE): Define.
7768         (c_mark_lang_decl): New function.
7769         (c_expand_start_cond): Change prototype.
7770         (c_finish_then): New function.
7771         (c_finish_else): Likewise.
7772         (current_function_name_declared): Remove.
7773         (set_current_function_name_declared): Likewise.
7774         (mark_c_language_function): Declare.
7775         (case_compare): Likewise.
7776         (c_add_case_label): Likewise.
7777         (c_expand_expr): Likewise.
7778         (c_safe_from_p): Likewise.
7779         * c-common.c (lang_expand_function_end): New variable.
7780         (struct if_elt): Add if_stmt.
7781         (c_expand_start_cond): Add the if-statement to the statement-tree,
7782         rather than generating RTL.
7783         (c_finish_then): New function.
7784         (c_expand_start_else): Don't generate RTL.
7785         (c_finish_else): New function.
7786         (c_expand_expr_stmt): Don't generate RTL.
7787         (statement_code_p): Add SCOPE_STMT.
7788         (case_compare): New function.
7789         (c_add_case_label): Likewise.
7790         (mark_stmt_tree): Likewise.
7791         (c_mark_lang_decl): Likewise.
7792         (mark_c_language_function): Likewise.
7793         (c_expand_expr): Likewise.
7794         (c_safe_from_p): Likewise.
7795         * c-decl.c (c_stmt_tree): New variable
7796         (c_scope_stmt_stack): Likewise.
7797         (c_function_name_declared_p): Likewise.
7798         (lang_expand_expr_stmt): Remove.
7799         (poplevel): Don't call output_inline_function for nested
7800         functions.
7801         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
7802         `extern' function.
7803         (redeclaration_error_message): Change means of computing whether
7804         or not a function is nested.
7805         (lookup_label): Don't call label_rtx.
7806         (init_decl_processing): Add more GC roots.
7807         (start_decl): Add DECL_STMTs to the statement-tree, rather than
7808         calling rest_of_decl_compilation.
7809         (finish_decl): Don't call expand_decl.
7810         (store_parm_decls): Begin the statement-tree, but don't generate
7811         RTL.
7812         (finish_function): Tie off the statement-tree.  Call c_expand_body
7813         if appropriate.
7814         (c_expand_body): New function.
7815         (push_c_function_context): Save more information.
7816         (pop_c_function_contxt): Likewise.
7817         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
7818         (lang_mark_tree): Mark it.
7819         (current_stmt_tree): Adjust.
7820         (current_scope_stmt_stack): New function.
7821         (do_case): Remove.
7822         (set_current_name_declared): Likewise.
7823         (c_begin_compound_stmt): Define.
7824         (c_expand_decl_stmt): Likewise.
7825         * c-lang.c: Include rtl.h and expr.h.
7826         (lang_init): Set more language-specific hooks.
7827         * c-lex.c: Include expr.h.
7828         * c-parse.in: Changes throughout to add statements to the
7829         statement-tree, rather than generating RTL after every statement.
7830         * c-semantics.c (lang_expand_decl_stmt): Define.
7831         (add_decl_stmt): New function.
7832         (add_scope_stmt): Likewise.
7833         (finish_stmt_tree): Tweak.
7834         (genrtl_expr_stmt): Likewise.
7835         (genrtl_decl_stmt): Handle local labels, and call
7836         lang_expand_decl_stmt if required.
7837         (genrtl_for_stmt): Fix line-number handling.
7838         (genrtl_case_label): Handle cleanups.
7839         (genrtl_asm_stmt): Don't call combine_strings.
7840         (genrtl_compound_stmt): Simplify.
7841         (expand_stmt): Handle SCOPE_STMTs.
7842         * c-tree.h (struct lang_decl): New structure.
7843         (C_DECLARED_LABEL_FLAG): Remove.
7844         (c_begin_compound_stmt): Declare.
7845         (c_expand_decl_stmt): Likewise.
7846         (c_expand_start_case): Rename to c_start_case.
7847         (c_finish_case): New function.
7848         * c-typeck.c (start_init): Tweak setting of
7849         constructor_incremental.
7850         (c_expand_asm_operands): Tweak error-handling.  Add to the
7851         statement-tree.
7852         (c_expand_return): Add to the statement-tree.
7853         (c_expand_start_case): Rename to ...
7854         (c_start_case): ... this.
7855         (struct c_switch): New type.
7856         (switch_stack): New variable.
7857         (do_case): Simplify.
7858         (c_finish_case): New function.
7859         * dependence.c: Include expr.h.
7860         (enum dependence_type): Change spelling of enumerals.
7861         (check_node_dependence): Adjust.
7862         * expr.h (lang_safe_from_p): Declare.
7863         (safe_from_p): Likewise.
7864         * expr.c (lang_safe_from_p): New variable.
7865         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
7866         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
7867         * toplev.c (rest_of_decl_compilation): Robustify.
7868         * tree.c (contains_placeholder_p): Likewise.
7869         * Makefile.in: Update dependencies.
7870         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
7871         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
7872         (objc_expand_function_end): New function.
7873         (finish_method_def): Use it.
7874         (init_objc): Initialize more language-specific hooks.
7875         * objc/Make-lang.in: Update dependencies.
7876
7877 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
7878
7879         * configure.in: Define macros that affect features before
7880         testing for features.  Don't define _XOPEN_SOURCE.
7881         * configure: Regenerated.
7882         * config.in: Regenerated.
7883
7884 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
7885
7886         * rtlanal.c (rtx_varies_p): Volatile asms vary.
7887         (rtx_unstable_p): Restructure code.  Volatile asms
7888         are unstable.
7889
7890 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7891
7892         * function.h (no_debugging_symbols): New field.
7893         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
7894         Initialize no_debugging_symbols.
7895         (output_inline_function): Save and restore write_symbols and set from
7896         no_debugging_symbols.
7897         * toplev.c (rest_of_compilation): Call save_for_inline.
7898         * tree.h: Update comment.
7899
7900         * stor-layout.c (place_field): Don't do anything if field or
7901         its type are ERROR_MARK.
7902
7903 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
7904
7905         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
7906         (read_include_file): Ensure inc->mmaped is initialized.
7907
7908 2000-09-16  Richard Henderson  <rth@cygnus.com>
7909
7910         * cppiles.c (purge_cache): Use PTR not caddr_t.
7911
7912 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
7913
7914         * gcc.c: In description for %{<S}, say the option removed is -S.
7915         * invoke.texi (Spec Files): Ditto.
7916
7917 2000-09-16  Andreas Jaeger  <aj@suse.de>
7918
7919         * configure.in: Always define _GNU_SOURCE to make interfaces
7920         visible that were hidden by only defining _GNU_SOURCE.
7921         * configure: Regenerated.
7922
7923 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
7924
7925         * cpplex.c (push_macro_context): Set an argument's level after
7926         calling parse_args.  We could loop infinitely otherwise.
7927
7928 2000-09-15  Tom Tromey  <tromey@cygnus.com>
7929
7930         * configure, config.in: Rebuilt.
7931         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
7932
7933 2000-09-15  Greg McGary  <greg@mcgary.org>
7934
7935         * cppmacro.c (check_trad_stringification): Check token
7936         text pointers against limit before dereferencing.
7937
7938 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
7939
7940         * c-common.c (format_wanted_type): New structure.
7941         (check_format_types): New function.
7942         (check_format_info): Pass all checking of types of format
7943         arguments, including width and precision arguments, to this new
7944         function.
7945
7946 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7947
7948         * BUGS: Remove file.
7949
7950 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
7951
7952         * config/alpha/alpha.c (override_options): ev6 cache latencies
7953         from Richard Henderson.  Don't allow -mmemory-latency=L0.
7954
7955         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
7956         (TARGET_OPTIONS): Add tune=.
7957         (alpha_tune_string): Declare.
7958         * config/alpha/alpha.c (override_options): Add cpu_table.
7959         Use alpha_cpu_string first to set both alpha_cpu and target_flags
7960         and then alpha_tune_string to set alpha_cpu only.
7961         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
7962         * config/alpha/elf.h (ASM_FILE_START): Likewise.
7963         * config/alpha/osf.h (ASM_FILE_START): Likewise.
7964         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
7965
7966 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7967
7968         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
7969         Remove.
7970         (ix86_comparison_operator, ix86_cc_mode): Declare
7971         * i386.h (CCGC, CCGCO): New modes.
7972         (SELECT_CC_MODE): Move offline to ....
7973         * i386.c (ix86_cc_mode): .... here; use new modes.
7974         (ix86_comparison_operator): New.
7975         (fcmov_comparison_operator): Ensure proper mode.
7976         (put_condition_mode): More sanity checking.
7977         (ix86_match_ccmode): Handle new modes.
7978         (ix86_expand_fp_compare): GEU requires CCmode.
7979         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
7980         doing it by hand.
7981         * i386.md (cmp?i_ccz_1): Remove
7982         (cmp?i_ccno_1): Use ix86_match_ccmode.
7983         (cmp?i_minus_1): New.
7984         (cmpsi_1): New expander.
7985         (cmpqi_ext_1): Use match_ccmode
7986         (cmpqi_ext_3): New expander.
7987         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
7988         (cmpqi_ext_4): Use match_ccmode.
7989         (add?i_?): Use match_ccmode.
7990         (add?i_6): New.
7991         (test?i_ccz_1): Remove
7992         (test?i_1): New.
7993         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
7994         (testqi_ext_0): Use ix86_match_ccmode.
7995         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
7996         (xorqi_cc_ext_1): New expander.
7997         (shift patterns): Use CCGOCmode for all shifts except for sar.
7998         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
7999         (setcc_3, jcc_3, miv?icc_c): Remove.
8000
8001 2000-09-15  Will Cohen  <wcohen@redhat.com>
8002
8003         * dwarf2out.c (add_const_value_attribute): Changed array into a
8004         xmalloced object, so it exists after function exit.
8005         (free_AT): Added case for dw_val_class_float to free allocated
8006         memory.
8007
8008 2000-09-15  Kazu Hirata  <kazu@hxi.com>
8009
8010         * config/i386/i386.md: Fix a comment typo.
8011         * gcc.c: Fix formatting.
8012
8013 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
8014
8015         * optabs.c (emit_libcall_block): If target is a user variable,
8016         copy to a temporary first.
8017         * expr.c (convert_move): When generating a libcall, make a libcall
8018         block.
8019         * calls.c (emit_library_call_value_1): Don't create a libcall
8020         sequence here; our caller will in most cases do it.
8021
8022         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
8023         MACH into FPUL.
8024         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
8025         * sh.md (reload_outsf): Generate recognizable patterns for
8026         TARGET_SH3E.
8027         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
8028         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
8029         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
8030         truncdfsf2_i4): Change not to use explicit references to fpul.
8031         (floatsisf2_ie): Remove USE of fpscr.
8032         (floatsisf2): Change default expansion to match this.
8033         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
8034         unused patterns.
8035
8036 2000-09-15  Richard Henderson  <rth@cygnus.com>
8037
8038         * expmed.c (store_bit_field): Consider naturally aligned
8039         memory for direct reference.
8040
8041 2000-09-15  Richard Henderson  <rth@cygnus.com>
8042
8043         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
8044         AND addresses into alias set 0.
8045         (alpha_expand_unaligned_store): Likewise.
8046         (alpha_expand_unaligned_load_words): Likewise.
8047         (alpha_expand_unaligned_store_words): Likewise.
8048
8049 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
8050
8051         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
8052         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
8053         is defined.
8054         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
8055         rsize of UNITS_PER_WORD.
8056
8057 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
8058
8059         * cpplex.c (ON_REST_ARG): Correct the test.
8060         (maybe_paste_with_next): Duplicate a token that fail pasting,
8061         and clear its PASTE_LEFT flag, so that nested pasting attempts
8062         do not occur.
8063
8064 2000-09-14  Richard Henderson  <rth@cygnus.com>
8065
8066         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
8067         * cse.c (rtx_cost): Likewise.
8068         * optabls.c (expand_binop): Likewise.
8069         (expand_twoval_binop, prepare_cmp_insn): Likewise.
8070         * regclass.c (copy_cost): Likewise.
8071         * reload1.c (reload_cse_move2add): Likewise.
8072
8073 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
8074
8075         * c-parse.in (reswords): Add _Complex.
8076
8077 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8078
8079         * gcc.1: Delete documentation for -undef preprocessor option.
8080
8081 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
8082
8083         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8084         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
8085         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
8086         Remove undefine before config/elfos.h.
8087         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
8088
8089 2000-09-14  Kazu Hirata  <kazu@hxi.com>
8090
8091         * invoke.texi (H8/300 Options): Add -ms2600.
8092         * config/h8300.c (h8300_init_once): Output an error when -ms2600
8093         is used without -ms.
8094         * config/h8300.h (TARGET_MAC): New.
8095         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
8096         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
8097         machine other than H8/S2600.
8098         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
8099         of the H8/S2000.
8100
8101 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
8102
8103         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
8104         pseudos that refer to the original pseudos, not only to their
8105         equivalent memory locations.
8106
8107 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8108
8109         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
8110         when making new MEM.
8111
8112         * Makefile.in (LN): Remove duplicate definition.
8113
8114 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8115
8116         From Joern Rennecke:
8117         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
8118         on an insn and function_invariant_p returns nonzero for the source,
8119         add a REG_EQUAL note.
8120
8121 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
8122
8123         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
8124         conflict with frame_pointer_rtx.
8125
8126 2000-09-13  Kazu Hirata  <kazu@hxi.com>
8127
8128         * loop.c: Fix formatting.
8129         * loop.h: Likewise.
8130
8131 2000-09-13  Richard Henderson  <rth@cygnus.com>
8132
8133         * config/ia64/ia64.md (divsf3): New.
8134         (divsf3_internal_lat, divsf3_internal_thr): New.
8135         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
8136         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
8137         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
8138         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
8139         (nmadddf4_alts, nmadddf4_trunc): New.
8140         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
8141         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
8142         (multf3_truncsf_alts, multf3_truncdf_alts): New.
8143         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
8144         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
8145         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
8146         (nmaddtf4_truncdf_alts): New.
8147         (recip_approx): Don't predicate.
8148
8149 2000-09-13  Richard Henderson  <rth@cygnus.com>
8150
8151         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
8152
8153 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8154
8155         * flags.h (flag_dump_rtl_in_asm): Declare.
8156         * toplev.c (flag_dump_rtl_in_asm): Define.
8157         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
8158         if -dP is specified.
8159         * rtl.h (print_rtx_head): Declare.
8160         * print-rtl.c (print_rtx_head): Define.
8161         (print_rtx): Print the string pointed to by print_rtx_head
8162         at beginning of each dump line.
8163         (print_rtl): Likewise.
8164         (print_rtl_single): Likewise.
8165         * final.c (final_scan_insn): Dump the insn in the assembly
8166         file for debugging.
8167         * gcc.1: Document -dP option.
8168         * invoke.texi (Debugging Options): Likewise.
8169
8170 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8171
8172         * md.texi (Machine Constraints): Document the 68HC11 constraints.
8173         * install.texi (Configurations): Document the 68HC11&68HC12 port.
8174         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
8175
8176 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
8177
8178         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
8179         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
8180         (*clrstrqi): Likewise.
8181         (xorhi3,xorsi3,absqi2): Likewise.
8182         (one_cmplhi2,one_cmplsi2): Likewise.
8183         (addsi3): Two stupid constraint alternatives removed.
8184         (extendhisi2): Use `movw' for enhanced avr cores.
8185         (zero_extendhisi2): Likewise.
8186
8187 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
8188
8189         * alias.c (find_base_term): Use frame_pointer_rtx
8190         when handling an ADDRESSOF.
8191
8192         * cse.c (canon_hash): Handle USE of BLKmode memory.
8193         (cse_insn): Outgoing arguments for a libcall don't
8194         affect any recorded expressions.
8195
8196 2000-09-12  Tom Tromey  <tromey@cygnus.com>
8197
8198         * configure, config.in: Rebuilt.
8199         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
8200
8201 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
8202
8203         * c-lex.c (lex_string): Use charwidth to compute bytemask.
8204         * expr.c (expand_expr): Don't optimize constant array references
8205         initialized with wide string constants.
8206
8207 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
8208
8209         * loop.c (note_set_pseudo_multiple_uses): Correct.
8210
8211 2000-09-12  Jim Wilson  <wilson@cygnus.com>
8212
8213         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
8214         else block, and X has side-effects, then fail.
8215
8216 2000-09-12  Greg McGary  <greg@mcgary.org>
8217
8218         * config/mips/mips-protos.h
8219         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
8220         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
8221         (PREDICATE_CODES): Add "trap_cmp_op".
8222         * config/mips/mips.c
8223         (trap_cmp_op, mips_gen_conditional_trap): New functions.
8224         * config/mips/mips.md (trap, conditional_trap): New patterns.
8225
8226 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8227
8228         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
8229         pointer.
8230
8231 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8232
8233         * builtins.c (built_in_decls): New array.
8234         (expand_builtin_fputs): New function.
8235         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
8236
8237         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
8238
8239         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
8240
8241         * tree.h (built_in_decls): New array.
8242
8243 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
8244
8245         * convex.md: Use "+" instead of "=" for outputs wrapped in a
8246         STRICT_LOW_PART.
8247         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
8248
8249 2000-09-12  Kazu Hirata  <kazu@hxi.com>
8250
8251         * haifa-sched.c: Fix formatting.
8252
8253         * genattrtab.c: Fix formatting.
8254
8255         * unroll.c: Fix formatting.
8256
8257 2000-09-12  Bruce Korb  <bkorb@gnu.org>
8258
8259         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
8260         remove obsolete code
8261         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
8262         * fixinc/fixincl.tpl: make non-exported arrays static scope
8263         * fixinc/fixincl.x: regenerate
8264         * fixinc/fixlib.h: Use PARAMS, not _P_
8265         * fixinc/fixtests.c: make a type for the test proc & use it
8266         * fixinc/server.h: Use PARAMS, not _P_
8267
8268 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8269
8270         * c-typeck.c (process_init_element): Avoid union init warnings on
8271         floating point zero.  Don't crash on unions containing structs.
8272
8273 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
8274
8275         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
8276         general_movsrc_operand, and remove CONST_INT from
8277         general_movdst_operand.
8278
8279 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8280
8281         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
8282         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
8283         regs with a higher cost.
8284         (preferrable): Deal with cases where either cost or regcost is
8285         MAX_COST.
8286         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
8287         regcost values.
8288         (COSTS_N_INSNS): Move definition...
8289         * rtl.h: ...here.
8290         (MAX_COST): New macro.
8291         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
8292         constant.
8293
8294 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
8295
8296         * c-common.h (genrtl_clear_out_block): Remove.
8297         * c-semantics.c (genrtl_clear_out_block): Remove.
8298         (genrtl_while_stmt): Don't call it.
8299         (genrtl_for_stmt): Likewise.
8300
8301 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
8302
8303         * cppfiles.c: Move all default-#defines to top of file.
8304         (open_include_file): Replace by lookup_include_file.
8305         (read_with_read, read_file): Merged into read_include_file.
8306         (stack_include_file, purge_cache): New functions.
8307         (close_cached_fd): Delete.
8308         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
8309         Cache the in-memory buffer, not the file descriptor.
8310
8311         * cpphash.h (struct include_file): Add buffer, st, refcnt,
8312         mapped fields.
8313         (xcnew): New utility macro.
8314         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
8315         * cpplib.h (struct cpp_buffer): Remove mapped field.
8316
8317 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
8318
8319         * cpplex.c (parse_string): Accept backslash space newline as a
8320         line continuation.
8321         (lex_line): Likewise.
8322         (_cpp_get_token): Remove hard limit on macro nesting.
8323
8324 2000-09-12  Philipp Thomas  <pthomas@suse.de>
8325
8326         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
8327         * configure: Rebuilt.
8328
8329 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
8330
8331         * flow.c (split_block): Fix update of registers live at
8332         end of split block.
8333
8334 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8335
8336         * i386.md (add?i_3, add?i_5): New.
8337         (add?i_4): Rename from add?i_3;  Fix compare pattern.
8338         (sub?i_3, xor?i_3, ior?i_3): New.
8339
8340         * genrecog.c (write_tree): Output code to clear insn_extract cache.
8341         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
8342         instead of extract_insn and extract_constrain_insn_cache instead of
8343         extract_insn and constrain_operands.
8344         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
8345         New functions.
8346         (extract_insn): Clear which_alternative.
8347         (constrain_operands): Set which_alternative to -1 when failed.
8348         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
8349         Declare.
8350
8351 2000-09-11  Matthew Hiller  <hiller@redhat.com>
8352
8353         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
8354         on operand 0 to '+'.
8355         (movstricthi): Likewise.
8356
8357 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8358
8359         * loop.h (LOOP_IVS): New macro.
8360         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
8361         (struct loop_ivs): New.
8362         (struct loop_info): Add ivs field.
8363         (reg_iv_type, reg_iv_info): Delete prototype.
8364         (reg_biv_class, loop_iv_list): Likewise.
8365         * loop.c (record_biv, find_life_end): Pass loop argument.
8366         (reg_iv_type): Remove global array and use
8367         field in loop_regs structure within loop_ivs structure.
8368         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
8369         (first_increment_giv, last_increment_giv): Use entry in
8370         loop_ivs structure.
8371         (record_initial): Pass ivs pointer.
8372         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
8373
8374 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8375
8376         * loop.h (LOOP_REGS): New macro.
8377         (struct loop_regs): New.
8378         (struct loop_info): Add regs field.
8379         * loop.c (set_in_loop): Remove global array and store
8380         in loop_regs structure as part of loop_info structure.
8381         (n_times_set, may_not_optimize): Likewise.
8382         (reg_single_usage, moved_once): Likewise.
8383         (count_one_set): Add regs argument.
8384         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
8385         (set_pseudo_multiple_uses): Pass regs pointer.
8386
8387 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8388
8389         * unroll.c (iteration_info): Subsume into loop_iterations.
8390         * loop.h (loop_info): New field iv.
8391
8392 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8393
8394         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
8395         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
8396         (flow_loops_update): New prototype.
8397         (flow_loops_find): Add flags to prototype.
8398         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
8399         * flow.c (flow_loop_pre_header_scan): New.
8400         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
8401         (flow_loop_free): Free pre-header root and trace and exit dominators.
8402         (flow_loops_find): New argument flags.
8403         (flow_loops_update): New function.
8404         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
8405
8406 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8407
8408         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
8409         * flow.c (split_block, update_bb_for_insn): New functions.
8410
8411 2000-09-11  Richard Henderson  <rth@cygnus.com>
8412
8413         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
8414
8415 2000-09-11  Richard Henderson  <rth@cygnus.com>
8416
8417         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
8418         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
8419         (ia64_override_options): Prevent optimizing division for both
8420         latency and throughput.
8421         (rtx_needs_barrier): Handle frcpa.
8422         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
8423         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
8424         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
8425         (TARGET_SWITCHES): Add -minline-divide-min-latency and
8426         -minline-divide-max-throughput.
8427         (PREDICATE_CODES): Update.
8428         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
8429         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
8430         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
8431         (extendsftf2): Likewise.
8432         (extenddftf2): Likewise.
8433         (fix_trunctfdi2_alts): New.
8434         (fixuns_trunctfdi2_alts): New.
8435         (madd*4): Rename from madd*3.
8436         (divsi3, modsi3, udivsi3, umodsi3): New.
8437         (divsi3_internal): New.
8438         (divdi3, moddi3, udivdi3, umoddi3): New.
8439         (divdi3_internal_lat, divdi3_internal_thr): New.
8440         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
8441         (recip_approx): New.
8442
8443 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
8444
8445         * print-rtl.c (debug_call_placeholder_verbose): New variable.
8446         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
8447         set.
8448         * integrate.c (copy_rtx_and_substitute): Don't share
8449         LEAF_REG_REMAPpable registers with the inlined function.  Don't
8450         share the function value with calling sequences.
8451
8452 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
8453
8454         * c-decl.c (do_case): Fix a typo.
8455
8456         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
8457         to a if the comparison is floating mode and not -ffast-math.
8458         * simplify-rtx.c (simplify_ternary_operation): Likewise.
8459
8460 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
8461
8462         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
8463         gen_ic_invalidate_line.
8464
8465 2000-09-11  Philip Blundell  <pb@futuretv.com>
8466
8467         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
8468
8469 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
8470
8471         * install.texi (LANGUAGES): Update to include new languages.
8472         * INSTALL: Rebuilt.
8473
8474 2000-09-11  DJ Delorie  <dj@redhat.com>
8475
8476         * gcc.c (main): Don't warn about unused -B prefixes
8477         (unused_prefix_warnings): remove
8478
8479 2000-09-11  Kazu Hirata  <kazu@hxi.com>
8480
8481         * final.c: Fix formatting.
8482
8483         * integrate.c: Fix formatting.
8484
8485 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
8486
8487         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
8488
8489 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
8490
8491         * reload.c (regno_clobbered_p): Fix thinko in previous change.
8492
8493 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8494
8495         * gcc.1: Document 68hc11 specific options.
8496
8497 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
8498
8499         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
8500         (TARGET_LONG_DOUBLE_128): Define.
8501         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
8502         (LONG_DOUBLE_TYPE_SIZE): Redefine.
8503         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8504         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
8505         of __LONG_DOUBLE_128__.
8506         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
8507         passed.
8508         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
8509         (CPP_SYSV_DEFAULT_SPEC): Define.
8510         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
8511         (INIT_TARGET_OPTABS): Define.
8512
8513         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
8514         (RS6000_UITRUNC): Likewise.
8515         (INIT_TARGET_OPTABS): New macro.
8516         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
8517         (trunc_defined): Delete.
8518         (output_prolog): Don't output .extern definitions for fp->int
8519         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
8520         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
8521         (trunc_defined): Delete.
8522         (RS6000_ITRUNC): Moved to aix.h.
8523         (RS6000_UITRUNC): Likewise.
8524         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
8525         only emit a libcall.
8526         (fixuns_truncdfsi2): Delete.
8527         (trunc_call): Delete.
8528         (trunc_call_rtl): Delete.
8529
8530 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8531
8532         * varasm.c (make_decl_rtl): Restore leading star on
8533         DECL_ASSEMBLER_NAME set for decls with an asmspec.
8534
8535 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8536
8537         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
8538         won't give a spurious error for '#pragma pack()'.  Simplify
8539         control flow for readability.  'reset' action is not necessary.
8540
8541 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8542
8543         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
8544         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
8545         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
8546         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
8547
8548         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
8549         profile.c, sdbout.c, tradcif.y, tree.c:
8550         Include defaults.h if not already included.
8551         Don't define the above macros.
8552
8553         * Makefile.in: Update dependencies.
8554
8555 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
8556
8557         * c-common.h (add_stmt): Change prototype.
8558         (RECHAIN_STMTS): New macro.
8559         (CASE_LABEL_DECL): Likewise.
8560         (genrtl_case_label): Change prototype.
8561         (c_expand_start_case): Remove prototype.
8562         (build_case_label): Change prototype.
8563         (decl_constant_value): Declare.
8564         * c-common.c (check_case_value): Handle C++'s extensions to C
8565         semantics.
8566         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
8567         field.
8568         * c-parse.in (stmt): Adjust handling of return statements and case
8569         laels.
8570         * c-semantics.c (add_stmt): Return the new statement.
8571         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
8572         returned expression.  Directly generate RTL, rather than calling
8573         c_expand_return.
8574         (genrtl_switch_stmt): Don't call c_expand_start_case.
8575         (build_case_label): Take the LABEL_DECL as input, too.
8576         (genrtl_case_label): Just call add_case_node.
8577         (expand_stmt): Adjust calls to genrtl_return_stmt and
8578         genrtl_case_label.
8579         * c-tree.h (c_expand_start_case): Declare.
8580         * c-typeck.c (decl_constant_value): Give it external linkage.
8581         (c_expand_return): Don't call expand_return or expand_null_return;
8582         use genrtl_return_stmt instead.
8583         * stmt.c (struct nesting): Remove num_ranges field.
8584         (add_case_node): Give it external linkage.
8585         (expand_start_case): Don't set num_ranges.
8586         (expand_start_case_dummy): Don't clear it.
8587         (pushcase): Rely on add_case_node to handle `default' labels.
8588         (add_case_node): Handle `default' labels.
8589         * tree.c (tree_int_cst_compare): New function.
8590         * tree.h (tree_int_cst_compare): Declare.
8591         (add_case_node): Likewise.
8592
8593 2000-09-10  Richard Henderson  <rth@cygnus.com>
8594
8595         * c-parse.in: Revert last change.
8596         (init_reswords): Do not enter disabled keywords into the ridpointers
8597         table, modulo objc weirdness.
8598         (_yylex): Return the canonical spelling for a keyword.
8599
8600 2000-09-10  Philip Blundell  <philb@gnu.org>
8601
8602         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
8603         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
8604
8605 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
8606
8607         * alias.c (find_base_term): Handle ADDRESSOF.
8608         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
8609
8610 2000-09-10  Denis Chertykov  <denisc@overta.ru>
8611
8612         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
8613         outputting templates with many lines.
8614
8615 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8616
8617         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
8618         to decide whether 64-bit support must be generated.
8619
8620 2000-09-10  Richard Henderson  <rth@cygnus.com>
8621
8622         * c-parse.in (asm patterns): Fix volatile check.
8623
8624 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8625
8626         * cppmacro.c (check_trad_stringification): New function.
8627         (save_expansion): If -Wtraditional, warn about stringification of
8628         macro arguments.
8629
8630 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
8631
8632         * loop.h (struct loop_mem_info): Move from loop.c
8633         (struct loop_info): Add fields store_mems, mems, mems_idx,
8634         mems_allocated, unknown_address_altered,
8635         unknown_constant_address_altered, num_mem_sets, and
8636         first_loop_store_insn.
8637
8638         * loop.c (loop_store_mems): Replace with field in loop_info struct.
8639         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
8640         (unknown_address_altered, unknown_constant_address_altered): Likewise.
8641         (num_mem_sets): Likewise.
8642         (replace_loop_mems, replace_loop_regs): New.
8643         (struct loop_replace_args): New.
8644         (load_mems): Use replace_loop_mems.
8645         (try_copy_prop): Use replace_loop_regs.
8646         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
8647
8648 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8649
8650         * configure.in: Recognize m6811-elf and m6812-elf.
8651         * configure: Regenerate.
8652
8653 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
8654
8655         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
8656         to operand_subword.
8657
8658 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
8659
8660         * loop.c (struct movables): New.
8661         (num_movables): Move into struct movables.
8662         (the_movables): Change type to struct movables.
8663         (ignore_some_movables): Change struct movable arg to struct movables.
8664         (force_movables, combine_movables, regs_match_p): Likewise.
8665         (rtx_equal_for_loop_p, move_movables): Likewise.
8666         (scan_loop): Change movables to be of type struct movables.
8667         Replace last_movable with field in movables structure.
8668
8669 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
8670
8671         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
8672         (init_pragma): Avoid warning if pfile happens to be unused.
8673         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
8674         define init_pragma to nothing.  Always prototype
8675         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
8676
8677         * c-lex.c (process_directive): Always call dispatch_pragma.
8678         Initialize entering_c_header to 0.
8679
8680 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8681
8682         * config/m68hc11/m68hc11.md: New file, machine description for
8683         68HC11 & 68HC12.
8684         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
8685         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
8686         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
8687         * config/m68hc11/m68hc11-protos.h: New file.
8688         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
8689         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
8690         * config/m68hc11/xm-m68hc11.h: New file, target defs.
8691         * config/m68hc11/larith.asm: New file, libgcc routines.
8692
8693 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8694
8695         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
8696         (FPBIT_FUNCS): Add _usi_to_sf.
8697         * config/fp-bit.c (usi_to_float): New function.
8698         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
8699         (usi_to_float): Add appropriate #define.
8700
8701 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
8702
8703         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
8704         new functions.
8705         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
8706         * i386.md (attr "type"): Add sse and mmx types.
8707         (attr "memory"): Handle them without a crash.
8708         (movsi_1, movdi_2): Allow MMX regs.
8709         (movdi splits): Don't split moves involving MMX regs.
8710         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
8711         (movv4sf_internal, movv4si_internal, movv8qi_internal,
8712         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
8713         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
8714         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
8715         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
8716         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
8717         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
8718         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
8719         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
8720         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
8721         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
8722         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
8723         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
8724         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
8725         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
8726         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
8727         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
8728         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
8729         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
8730         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
8731         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
8732         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
8733         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
8734         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
8735         mmx_clrdi): New patterns.
8736
8737 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
8738
8739         * arm.c: Don't include tm.h directly.
8740
8741 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8742
8743         * recog.c (validate_replace_rtx_1): Fix confusion about equality
8744         testing; simplify subregs of constants and nested subregs.
8745
8746 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
8747
8748         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
8749
8750 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
8751
8752         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
8753         VEC_CONCAT.
8754         * rtl.texi (description of USE): Add note about possible pitfalls
8755         with this rtx.
8756         From Richard Henderson:
8757         * reload1.c (choose_reload_regs): Compute need_mode properly.
8758
8759 2000-09-07  Richard Henderson  <rth@cygnus.com>
8760
8761         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
8762         (__modsi3, __umodsi3): Likewise.
8763         (__udivsi3): Likewise.  Normalize the TFmode values.
8764
8765 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
8766
8767         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
8768         with a prototype.
8769         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
8770         warning.
8771
8772 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
8773
8774         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
8775         (cmpeqdi_t): Add output pattern.
8776         (cmpeqdi_t+1): Don't split when not optimizing.
8777         Restore proper splitting operation.
8778
8779 2000-09-07  Richard Henderson  <rth@cygnus.com>
8780
8781         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
8782         do not call dispatch_pragma.
8783
8784 2000-09-07  Jim Wilson  <wilson@cygnus.com>
8785
8786         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
8787         to CLASS_CANNOT_CHANGE_MODE.
8788         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
8789         mode classes are different.
8790
8791 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
8792
8793         * cpplib.h (struct cpp_options): Add user_label_prefix member,
8794         left out of commit which removed cppulp.c.
8795
8796 2000-09-07  Richard Henderson  <rth@cygnus.com>
8797
8798         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
8799         after switch for CASE_DROPS_THROUGH.
8800
8801 2000-09-07  Richard Henderson  <rth@cygnus.com>
8802
8803         * loop.c (strength_reduce): Call check_ext_dependant_givs.
8804         Properly extend the biv initial value for the giv.
8805         (record_biv): Zero ext_dependant.
8806         (record_giv): New argument ext_val.  Update all callers.
8807         (general_induction_var): Likewise.
8808         (consec_sets_giv): Likewise.
8809         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
8810         a sign-extend, zero-extend, or truncate.
8811         (combine_givs_p): Make sure modes are compatible.
8812         (check_ext_dependant_givs): New.
8813         (extend_value_for_giv): New.
8814         * loop.h (struct induction): Add ext_dependant.
8815         * unroll.c (iteration_info): Extend the biv initial value for the giv.
8816         (find_splittable_givs): Likewise.
8817         (final_giv_value): Likewise.
8818
8819 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
8820
8821         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
8822         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
8823         definitions from cpplib.h.
8824         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
8825         already done it.
8826         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
8827         documentation for REGISTER_TARGET_PRAGMAS.
8828
8829         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
8830         default-pragma callback to implement -Wunknown-pragmas if
8831         USE_CPPLIB.
8832         * c-parse.in: Move all includes to top of file.
8833         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
8834         tm_p.h.
8835         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
8836         warning.
8837         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
8838
8839         * arm.h, arm-protos.h, arm.c,
8840           c4x.h, c4x-protos.h, c4x.c,
8841           h8300.h, h8300-protos.h, h8300.c,
8842           i370.h, i370-protos.h, i370.c,
8843           i960.h, i960-protos.h, i960.c,
8844           sh.h, sh-protos.h, sh.c,
8845           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
8846         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
8847
8848         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
8849         multiple include guard.
8850         * i370.md (untyped_call): Use GEN_CALL.
8851         (umodsi3): Remove unused variable.
8852         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
8853         * v850.c (output_move_single, output_move_double): Constify
8854         return value.
8855         (print_operand): Constify a char *.
8856         * v850.h (struct small_memory_info): Constify name member.
8857
8858 2000-09-07  Kazu Hirata  <kazu@hxi.com>
8859
8860         * config/h8300.h: Fix comment typos.
8861         * config/h8300/h8300.md: Likewise.
8862         * config/h8300/lib1funcs.asm: Likewise.
8863
8864 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
8865
8866         * Makefile.in: Remove references to cppulp.{c,o}.
8867         * cppinit.c (initialize_builtins, cpp_start_read,
8868         cpp_handle_option): Update to use cpp_options structure.
8869         * cppulp.c: Remove.
8870
8871 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
8872
8873         * c-common.c (time_char_table): Allow %#b and %#h.
8874
8875 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8876
8877         * reorg.c (find_end_label): If the basic block reorder pass moves the
8878         return insn to some other place try to locate it again and put our
8879         end_of_function_label there.
8880         * reorg.c (relax_delay_slots): Check if find_end_label created a
8881         new label that invalidates the current optimazation.
8882
8883 2000-09-07  Catherine Moore  <clm@redhat.com>
8884
8885         * unroll.c (unroll_loop): Check for unconditional jumps
8886         to loop continuation.  Delete if n_iterations is 1.
8887         (ujump_to_loop_cont): New routine.
8888
8889 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
8890
8891         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
8892         MODE_VECTOR_FLOAT.
8893         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
8894         to handle multiword modes correctly.  All callers and the declaration
8895         changed.
8896
8897 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
8898
8899         * c-common.h (prep_stmt): Declare.
8900         (lang_expand_stmt): Likewise.
8901         * c-decl.c (lang_expand_stmt): Remove.
8902         * c-semantics.c (lang_expand_stmt): Define.
8903         (prep_stmt): New function.
8904         (expand_stmt): Handle common statement types here.
8905
8906 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
8907
8908         * configure.in (sh-*-linux*): Added.
8909         * configure: Rebuilt.
8910         * config/sh/t-linux: New file.
8911         * config/sh/sh.h (USERMODE_BIT): Define.
8912         (TARGET_USERMODE): Likewise.
8913         (TARGET_SWITCHES): New switches for the bits above.
8914         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
8915         * config/sh/linux.h: New file.
8916         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
8917         underscore on linux.
8918         (L_sdivsi3, L_udivsi3): Define for linux.
8919         (L_ic_invalidate): Define.
8920         * invoke.texi (SH Options): Document -musermode.
8921
8922 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
8923
8924         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
8925         CSE unless generating PIC.
8926
8927         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
8928         the PIC register.
8929
8930 2000-09-06  H.J. Lu  (hjl@gnu.org)
8931
8932         * Makefile.in (clean_s1): Depend on stage_b.
8933         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
8934         stage2. They are used for "make compare".
8935
8936 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
8937
8938         Move statement-tree facilities from C++ to C front-end.
8939         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
8940         (void_zero_node): New macro.
8941         (struct stmt_tree_s): New type.
8942         (stmt_tree): New typedef.
8943         (struct language_function): New type.
8944         (last_tree): New macro.
8945         (last_expr_type): Likewise.
8946         (walk_tree_fn): New typedef.
8947         (current_stmt_tree): New function.
8948         (begin_stmt_tree): Likewise.
8949         (add_stmt): Likewise.
8950         (finish_stmt_tree): Likewise.
8951         (statement_code_p): Likewise.
8952         (lang_statement_code_p): New variable.
8953         (walk_stmt_tree): New function.
8954         (STMT_IS_FULL_EXPR_P): New macro.
8955         * c-common.c (lang_statement_code_p): New variable.
8956         (c_common_nodes_and_builtins): Initialize void_zero_node.
8957         (statement_code_p): New function.
8958         (walk_stmt_tree): Likewise.
8959         * c-decl.c (language_function): Rename to ...
8960         (c_language_function): ... this.  Include language_function.
8961         (push_c_function_context): Adjust accordingly.
8962         (pop_c_function_context): Likewise.
8963         (mark_c_function_context): Likewise.
8964         (current_stmt_tree): Define.
8965         * c-semantics.c (begin_stmt_tree): New function.
8966         (add_stmt): Likewise.
8967         (prune_unused_decls): Likewise.
8968         (finish_stmt_tree): Likewise.
8969
8970 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8971
8972         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
8973
8974 2000-09-06  Kazu Hirata  <kazu@hxi.com>
8975
8976         * calls.c: Fix formatting.
8977
8978 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
8979
8980         * config/i386/i386.h (ADDRESS_COST): Fix typo.
8981
8982 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
8983
8984         Integrated preprocessor.
8985
8986         * Makefile.in: Remove all references to c-parse.gperf,
8987         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
8988         generating c-parse.c.  Update dependencies.
8989         * c-parse.gperf, c-gperf.h: Delete.
8990
8991         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
8992         yy_lim, or yy_get_token.  Don't define get_directive_line if
8993         USE_CPPLIB.
8994         * c-common.h: Add multiple include guard.  Define RID values
8995         for every keyword in C, C++, and Objective C.  Put all the
8996         modifiers first.
8997         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
8998         * c-decl.c (c_decode_option): Handle -lang-objc here.
8999         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
9000         (grokdeclarator): Adjust for new RID scheme.
9001         (extract_interface_info): New stub.
9002         * c-lang.c: Don't declare yy_cur or parse_options.
9003         (lang_init_options): Call cpp_init.  Don't call
9004         cpp_options_init.
9005         (lang_init): Don't call check_newline if USE_CPPLIB.
9006
9007         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
9008         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
9009         rendered unnecessary by new architecture.  Move routines not
9010         shared with C++ to c-parse.in.  Maintain a local idea of the
9011         line number.    Handle C++ as well as C.
9012         [USE_CPPLIB]: Declare and register callbacks for #ident and
9013         for entering/leaving files.
9014         (init_c_lex, c_lex): Are now the entry points to this file.
9015         (check_newline): Break out directive handling to
9016         process_directive.
9017         (read_ucs, is_extended_char, utf8_extend_token): Moved here
9018         from C++ front end.
9019         (readescape, parse_float): Overhaul.
9020         (lex_number, lex_string, lex_charconst): Break out of c_lex
9021         (n'ee yylex).
9022         (get_fileinfo, update_header_times, dump_one_header,
9023         dump_time_statistics): New and/or moved here from C++.
9024         Support per-file data needed by C++ and per-header timing
9025         statistics (C++ only, at the moment).
9026         * c-lex.h: Update prototypes.  Add multiple include guard.
9027         * c-tree.h (struct lang_identifier): Add rid_code field.
9028         (C_IS_RESERVED_WORD, C_RID_CODE): New.
9029
9030         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
9031         reinit_parse_for_function and/or position_after_white_space.
9032         (save_filename, save_lineno): Look ahead before saving.
9033         (label -> identifier ':'): Save file and line before shifting ':'.
9034         (reservedwords): No need to call get_identifier.
9035         (init_parse, finish_parse, yyerror, yylex, yyprint,
9036         make_pointer_declarator): Are now here for C/ObjC.
9037         (rid_to_yy): Conversion table from RID constants to Yacc codes.
9038
9039         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
9040         #pragma registry.  Provide dummy implementation of that
9041         interface if !USE_CPPLIB.
9042         * c-pragma.h: Update to match.
9043
9044         * flags.h: Add multiple include guard.
9045         (flag_detailed_statistics): Moved here from C++.
9046         * toplev.c: Define flag_detailed_statistics.
9047
9048         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
9049         #if USE_CPPLIB.
9050         * timevar.def (TV_CPP, TV_LEX): New.
9051         * timevar.h: Add multiple include guard.
9052
9053         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
9054         #if USE_CPPLIB.
9055         * objc/objc-act.c: Don't mention yy_cur or parse_options.
9056         Initialize cpplib properly.  Force lineno to 0 after first
9057         call to check_newline.  Don't handle -lang-objc here.
9058         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
9059
9060 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
9061
9062         * rs6000.md: Correct function unit definitions for cr_logical and
9063         mtjmpr.
9064         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
9065         and use portable method for >=0 and floating point >=.  Remove
9066         associated matchers.
9067
9068 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
9069
9070         * extend.texi: Mark named return value extension as deprecated.
9071
9072 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
9073
9074         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
9075         the result.
9076
9077 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
9078
9079         * toplev.c (display_help): Fix thinko in documentation.
9080
9081         * diagnostic.h (output_buffer::indent_skip): New fields.
9082         (output_indentation): New macro.
9083
9084         * diagnostic.c (output_indent): New function.
9085         (output_set_prefix, clear_diagnostic_info): Use.
9086         (output_emit_prefix): Predict future indentation.
9087
9088 2000-09-06  DJ Delorie  <dj@redhat.com>
9089
9090         * Makefile.in (stage_*): add more dependencies to ensure parallel
9091         builds build correctly
9092
9093 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
9094
9095         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
9096         not bootstrap-lean_f.
9097
9098 2000-09-06  Andreas Schwab  <schwab@suse.de>
9099
9100         * mklibgcc.in: Emit rule for libgcc-stage-start.
9101         * Makefile.in (stage1-start, stage2-start, stage3-start,
9102         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
9103
9104 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
9105
9106         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
9107         (update_equiv_regs): Likewise, except for the mn10200 kludge.
9108         (combine_regs): Likewise.
9109
9110         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
9111         * cse.c: Include "basic-block.h".
9112         (struct table_elt): New field REGCOST.
9113         (CHEAP_REG): Delete macro.
9114         (COST): Return 0 for REGs.
9115         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
9116         (notreg_cost): Return 0 for appropriate SUBREGs.
9117         (COSTS_N_INSNS): Return N * 2.
9118         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
9119         SUBREGs.
9120         (CHEAPER): Use new function preferrable.
9121         (insert): Initialize REGCOST member.
9122         (find_best_addr): Use approx_reg_cost for estimation of register
9123         usage.
9124         (cse_insn): Likewise.
9125         * loop.c (iv_add_mult_cost): New function.
9126         (add_cost, shift_cost, mult_cost): Delete variables.
9127         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
9128         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
9129         Make code that detects autoinc opportunities slightly less optimistic.
9130         (simplify_giv_expr): If expression contains other reg that is also a
9131         giv, only increment benefit if this is the only use of that reg.
9132         (consec_sets_giv): Take that change into account.
9133         (combine_givs): Slightly more verbose output.
9134
9135         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
9136         not the cost of an equivalent shift.
9137         * sh-protos.h (addsubcosts): Declare.
9138         * sh.c (addsubcosts): New function.
9139         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
9140         (RTX_COSTS): Tweak.  Use addsubcosts.
9141         (ADDRESS_COST): Return higher cost for reg+reg addressing.
9142
9143 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
9144
9145         * config/rs6000/rs6000.c (validate_condition_mode): New function.
9146         (branch_comparison_operator): Call validate_condition_mode to
9147         abort rather than returning 0.
9148         (branch_positive_comparison_operator): New function.
9149         (scc_comparison_operator): Call validate_condition_mode to abort
9150         rather than returning 0.
9151         (ccr_bit): Call validate_condition_mode.  Update for
9152         new branch scheme.
9153         (print_operand): Delete %C modifier.  Update %E case
9154         to use EQ bit not SO bit.
9155         (rs6000_reverse_condition): New function.
9156         (rs6000_generate_compare): New function.
9157         (rs6000_emit_sCOND): New function.
9158         (rs6000_emit_cbranch): New function.
9159         (output_cbranch): The length of a long branch insn is
9160         now only 8 bytes.  Add validate_condition_mode.  Use
9161         rs6000_reverse_condition.  Remove cror generation.
9162
9163         * config/rs6000/rs6000.h: Update comments.
9164         (PREDICATE_CODES): Add new predicate.  Update codes used
9165         by branch_comparison_operator and scc_comparison_operator.
9166         * config/rs6000/rs6000-protos.h: Add prototypes for
9167         new external functions.
9168         * config/rs6000/rs6000.md: Add new scheduling parameters
9169         for cr_logical instructions.  Change length of branch
9170         instructions.
9171         (bCOND patterns): Call rs6000_emit_cbranch.
9172         (sCOND patterns): Call rs6000_emit_sCOND.
9173         (branch patterns): Change lengths to 4.
9174         (cr logical patterns): New.
9175
9176 2000-09-06  Richard Henderson  <rth@cygnus.com>
9177
9178         * config/i386/i386.md (call_pop): Fix test for setting
9179         current_function_uses_pic_offset_table.
9180         (call, call_value_pop, call_value): Likewise.
9181
9182 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
9183
9184         * timevar.c (timevar_add): Delete.
9185         (timevar_get): Also count time since the selected timer was
9186         last updated.  Do not examine the timevar stack if the
9187         selected timer is standalone.
9188
9189 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9190
9191         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
9192
9193 2000-09-05  Jason Merrill  <jason@redhat.com>
9194
9195         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
9196         for 'extern' arrays.
9197
9198 2000-09-05  Richard Henderson  <rth@cygnus.com>
9199
9200         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
9201         Eliminate final copy from non-trapping case.
9202         (__divdf3, __divsf3): Likewise.
9203
9204 2000-09-05  Richard Henderson  <rth@cygnus.com>
9205
9206         * config/ia64/ia64.md (mulhi3): Fix typo last change.
9207         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
9208
9209 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
9210
9211         * Makefile.in: Restructure bootstrap stages to allow clean
9212         restart after failure.
9213
9214 2000-09-05  Richard Henderson  <rth@cygnus.com>
9215
9216         * config/ia64.md (movsi and movdi patterns): Allow moves from
9217         8-bit constants to AR registers.
9218
9219 2000-09-05  Richard Henderson  <rth@cygnus.com>
9220
9221         * config/ia64/ia64.md (mulhi3): New.
9222
9223 2000-09-05  Richard Henderson  <rth@cygnus.com>
9224
9225         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
9226         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
9227         Optimization Guide, minimum latency alternative.
9228         (__moddi3, __udivdi3, __umoddi3): Likewise.
9229         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
9230
9231 2000-09-05  Bruce Korb  <bkorb@gnu.org>
9232
9233         * fixinc/fixincl.c (load_file): always read header files
9234         with sizes that are a multiple of the page size.
9235         & use libiberty's getpagesize for determining that.
9236
9237 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
9238
9239         * gcse.c (hash_string_1): Add prototype.
9240         * cse.c (canon_hash_string): Likewise.
9241
9242 2000-09-04  Craig Newell  <CraigN@ieee.org>
9243
9244         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
9245
9246 2000-09-04  Andreas Schwab  <schwab@suse.de>
9247
9248         * Makefile.in (STAGESTUFF): Remove libgcc.
9249         (stage1-start, stage2-start, stage3-start): Copy the contents of
9250         the libgcc directory explicitly.
9251         (mostlyclean): Clean libgcc.
9252
9253 2000-09-04  Andrew Haley  <aph@redhat.com>
9254
9255         * dwarf2out.c: (stack_adjust_offset): New prototype.
9256
9257 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
9258
9259         * combine.c (make_extraction): Fix rtx_cost comparison to
9260         match the comment.
9261
9262 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
9263
9264         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
9265         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
9266         Add '*' to insn pattern name.
9267
9268 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
9269
9270         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
9271         use posn - 1 to index into tokens array.
9272         (maybe_paste_with_next): Adjust caller.
9273
9274 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
9275
9276         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
9277
9278         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
9279         (REGNO_REG_CLASS): Use symbolic register
9280         names.
9281
9282 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
9283
9284         * arm.c (final_prescan_insn): If the form of a jump insn isn't
9285         recognized, don't try to conditionally execute it.
9286
9287 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
9288
9289         * config/avr/avr.md ("*tablejump_lib"): New pattern.
9290         (call_value_insn): Right length claculation.
9291         (call_insn): Likewise.
9292
9293 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
9294
9295         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
9296         gas_output_limited_string, gas_output_ascii, output_movqi,
9297         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
9298         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
9299         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
9300         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
9301         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
9302         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
9303         Add "const" as needed to remove warnings.
9304
9305         * config/avr/avr.c (avr_override_options, avr_init_once,
9306         function_prologue, function_epilogue, frame_pointer_required_p,
9307         class_likely_spilled_p, order_regs_for_local_alloc,
9308         avr_address_cost, avr_ret_register): Use K&R style arguments.
9309         (initial_elimination_offset, gas_output_limited_string):
9310         Remove ATTRIBUTE_UNUSED from the used arguments.
9311         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
9312         Use local variables src, dest, base to access operands[].
9313         Rename reg_dest to reg_src if that's what it is.
9314         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
9315         constants to LD_REGS if reg_was_0.
9316         (output_reload_insisf): Change arg 3 to insn length and set it.
9317         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
9318         access to 16-bit I/O register pairs.
9319         (avr_address_cost): Lower cost for the above case.
9320         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
9321         may be clobbered, also for LD_REGS.
9322         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
9323         with a CONST_INT.
9324
9325         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
9326
9327         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
9328         macro to test_hard_reg_class function.
9329         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
9330         for loading immediate constants to LD_REGS.
9331         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
9332
9333
9334 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
9335
9336         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
9337         * config/avr/libgcc.S: Lost part of the previous patch.
9338
9339 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9340
9341         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
9342         object before calling pthread_mutex_init.
9343
9344 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
9345
9346         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
9347         config/sh/crtn.asm: New files.
9348         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
9349         (crt1.o, crti.o, crtn.o): New targets.
9350         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
9351         sh/t-elf.
9352         * configure: Rebuilt.
9353         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
9354         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
9355         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
9356         Undefine for config/elfos.h to redefine.
9357         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
9358
9359 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
9360
9361         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
9362         legitimize_pic_address, output_pic_addr_const): Declare.
9363         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
9364         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
9365         (TARGET_SWITCHES): New switch -mprefergot.
9366         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
9367         (PIC_OFFSET_TABLE_REGNUM): Define.
9368         (GOT_SYMBOL_TABLE): Likewise.
9369         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
9370         (ENCODE_SECTION_INFO): Define.
9371         (FINALIZE_PIC): New macros.
9372         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
9373         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
9374         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
9375         (prepare_move_operands): Call emit_pic_move or
9376         emit_pic_const_move if appropriate.
9377         (output_far_jump): For PIC, use braf and output long offset.
9378         (machine_dependent_reorg):
9379         (sh_expand_prologue): Save and initialize the PIC register.
9380         (sh_expand_epilogue): Restore it.
9381         (initial_elimination_offset): Account for it.
9382         (nonpic_symbol_mentioned_p): New function.
9383         (legitimize_pic_address): Likewise.
9384         (output_pic_addr_const): Likewise.
9385         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
9386         (call, call_value): Use them.
9387         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
9388         symPLT_label2reg): New expands.
9389         * invoke.texi (SH Options): Document -mprefergot.
9390
9391 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
9392
9393         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
9394         * gcse.c (hash_string_1): New function.
9395         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
9396         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
9397         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
9398         (canon_hash_string): New function.
9399         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
9400         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
9401         (fold_rtx): Use ASM_OPERANDS accessor macros.
9402         * emit-rtl.c (copy_insn_1): Likewise.
9403         * integrate.c (copy_rtx_and_substitute): Likewise.
9404         * stmt.c (expand_asm_operands): Likewise.  Give an
9405         ASM_OPERANDS rtx the mode of the output reg being set from it.
9406
9407 2000-09-01  Fred Fish  <fnf@be.com>
9408
9409         * fix-header.c (write_rbrac): Add putc and getc to list of
9410         functions to protect against prior definition as a macro.
9411
9412 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
9413
9414         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
9415         (c_size_type_node): Define.
9416         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
9417         * c-common.c (enum format_lengths, enum format_std_version,
9418         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
9419         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
9420         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
9421         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
9422         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
9423         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
9424         format_types): Define.
9425         (format_char_info, print_char_table, scan_char_table,
9426         time_char_table): Rearrange for new organization of information
9427         about format length modifiers and standard versions.
9428         (T_ST): Redefine to use c_size_type_node.
9429         (check_format_info): Obtain information about length modifiers and
9430         standard versions from tables.  Adjust warning message wordings.
9431         Use the name from the user's program for `ll' and `hh' length
9432         modifiers in warning messages.  Use more informative names for
9433         wanted types where available (for wchar_t, wint_t, size_t, signed
9434         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
9435
9436 2000-09-01  Jim Wilson  <wilson@cygnus.com>
9437
9438         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
9439         * combine.c (distribute_notes): Handle REG_NORETURN.
9440         * rtl.c (reg_note_name): Add REG_NORETURN.
9441         * rtl.h (enum reg_note): Likewise.
9442
9443         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
9444         ia64_file_start.
9445         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
9446         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
9447         (emit_predicate_relation_info): Handle conditional calls with
9448         REG_NORETURN.
9449         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
9450         instead of ia64_file_start.
9451         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
9452         * config/ia64/ia64.md (safe_across_calls_all,
9453         save_across_calls_normal): New patterns.
9454
9455         * loop.c (check_final_value): Check for biv use before checking for
9456         giv use.  Check for both biv and giv uses.  Always set last_giv_use
9457         if there is a giv use.
9458
9459 2000-09-01  Richard Henderson  <rth@cygnus.com>
9460
9461         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
9462         (madddi3): Likewise.
9463         (maddsi3): New.
9464
9465 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9466
9467         * expr.c (clear_storage): Don't use emit_move_insn unless
9468         either BLKmode or proper size.
9469         (store_constructor): Don't call clear_storage if REG of wrong size.
9470
9471         * flow.c (init_propagate_block_info): Don't mark frame dead at end
9472         of function if returns wiht stack pointer depressed.
9473
9474 2000-09-01  Andrew Haley  <aph@redhat.com>
9475
9476         * dwarf2out.c (stack_adjust_offset): New function.
9477         (dwarf2out_stack_adjust): Break out stack adjust logic into
9478         new stack_adjust_offset function.  Look inside parallels and
9479         sequences for stack adjustments.
9480
9481 2000-08-31  Jeff Law <law@cygnus.com>
9482
9483         * arm.md: Use no_new_pseudos to determine when it is safe
9484         to create new pseudo registers.
9485
9486         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
9487         when we can safely allocate new registers.
9488
9489 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
9490
9491         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
9492         so that CONCATs are not generated for ASMs.
9493         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
9494         not generating_concat_p.
9495         * function.c (pop_function_context_from): Reset
9496         generating_concat_p.
9497         (prepare_function_start): Likewise.
9498         * rtl.c (generating_concat_p): Define.
9499         * rtl.h (generating_concat_p): Declare.
9500         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
9501
9502 2000-08-22  Philipp Thomas  <pthomas@suse.de>
9503             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
9504
9505         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
9506         for translation.
9507
9508 2000-08-30  Greg McGary  <greg@mcgary.org>
9509
9510         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
9511         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
9512         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
9513
9514 2000-08-30  Greg McGary  <greg@mcgary.org>
9515
9516         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
9517         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
9518         (TREE_INT_CST): New macro.
9519         * varasm.c (const_hash, compare_constant_1, record_constant_1):
9520         Use new macro TREE_INT_CST.
9521
9522 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
9523
9524         * contrib.texi: Add self.
9525
9526 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
9527
9528         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
9529         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
9530         and labels.
9531
9532 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9533
9534         * fixinc/gnu-regex.c: Don't define `const'.
9535
9536 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9537
9538         * expr.c (store_constructor): Allow variable bounds of array type.
9539         (expand_expr): Don't blow up if type is ERROR_MARK.
9540         * varasm.c (output_constructor): Don't access lower bound of array
9541         type unless need it if index is supplied (so it can be a variable
9542         if no index is supplied).
9543         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
9544         Other minor cleanups.
9545
9546 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9547
9548         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
9549         for compilations in stage 1 and subsequent stages, respectively.
9550         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
9551         * configure: Rebuilt.
9552         * x-vax, x-vax-gcc: Deleted.
9553
9554 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9555
9556         * c-common.c (declare_function_name): Use func_id_node,
9557         function_id_node, and pretty_function_id_node.  Do not make
9558         __func__ visible at file scope.
9559         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
9560         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
9561         (function_id_node, pretty_function_id_node, func_id_node): New
9562         macros.
9563         * c-decl.c (init_decl_processing): Initialize function_id_node,
9564         pretty_function_id_node, and func_id_node.
9565         (c_make_fname_decl): Correct comment.
9566
9567         * tree.h (struct tree_identifier): Constify pointer member.
9568
9569         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
9570         * c-pragma.h (struct weak_syms): Constify name and value members.
9571         (add_weak): Constify arguments.
9572
9573         * calls.c (special_function_p): Constify a char *.
9574         (expand_call): Remove variable which is initialized and then
9575         never used.
9576         * dependence.c (struct def_use, struct induction, struct subscript):
9577         Constify 'variable' member.
9578         (get_low_bound, have_induction_variable): Constify char * argument.
9579         (find_induction_variable): Add braces to avoid dangling else.
9580         (classify_dependence): Constify char * arrays.
9581         * profile.c (output_func_start_profiler): Constify a char *.
9582         * stor-layout.c (finalize_record_size): Constify a char *.
9583         * tree.c (is_attribute_p): Constify a char *.
9584         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
9585
9586         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
9587         for comprehensibility.  Do not call get_identifier if we did
9588         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
9589         create temporary string constants, not ggc_alloc_string.  No
9590         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
9591         char * to hold IDENTIFIER_POINTERs.
9592
9593 2000-08-29  Richard Henderson  <rth@cygnus.com>
9594
9595         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
9596         for the inputs.
9597
9598 2000-08-29  Richard Henderson  <rth@cygnus.com>
9599
9600         * reload.c (push_secondary_reload): Allow class == reload_class
9601         if we're using a reload_in/out pattern.
9602
9603         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
9604         the half that does not conflict with the reload register.
9605         (reload_outti): Likewise.
9606
9607 2000-08-29  Kazu Hirata  <kazu@hxi.com>
9608
9609         * reload.c: Fix formatting.
9610
9611         * stmt.c: Fix formatting.
9612
9613         * gcc.c: Fix formatting.
9614
9615 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9616
9617         * flags.h (time_report, mem_report): New global flags.
9618         * toplev.c: Define time_report and mem_report.
9619         (f_options): Add -ftime-report and -fmem-report.
9620         (compile_file): Turn on time_report if quiet_flag is off.
9621         Call ggc_print_statistics at very end if mem_report is on.
9622         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
9623
9624         * ggc-common.c (ggc_print_statistics): Rename to
9625         ggc_print_common_statistics; all callers changed.  Scale
9626         quantities above 10K to kilobytes and above 10M to megabytes.
9627         * ggc-page.c (ggc_page_print_statistics): Rename to
9628         ggc_print_statistics.  Report memory consumed by internal data
9629         structures for each allocation bucket.  Scale quantities above
9630         10K to kilobytes and above 10M to megabytes.
9631         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
9632         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
9633         Define tally_leaves always.
9634         (ggc_print_statistics): New function.
9635         * ggc.h: Adjust for renamed functions.
9636
9637 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
9638
9639         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
9640         output_movsisf instead of which_alternative.
9641
9642         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
9643
9644 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
9645
9646         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
9647         (avr_progmem_p): New prototype.
9648         (output_movsisf): Prototype declaration changed.
9649         (output_movqi): New prototype.
9650         (output_movhi): New prototype.
9651         (call_insn_operand): Likewise.
9652         (final_prescan_insn): Likewise.
9653         (avr_simplify_comparision_p): Likewise.
9654         (avr_normalize_condition): Likewise.
9655         (compare_eq_p): Likewise.
9656         (out_shift_with_cnt): Likewise.
9657         (const_int_pow2_p): Likewise.
9658         (output_reload_inhi): Prototype declaration changed.
9659
9660         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
9661         (ldi_reg_rtx): New. rtx for r31.
9662         (avr_init_stack): Initialize as "__stack".
9663         (function_prologue): Use it.
9664         Replace all TARGET_ENHANCED with AVR_ENHANCED.
9665         (avr_mcu_name): Initialize as "avr2".
9666         (avr_enhanced_p, avr_mega_p): New variables.
9667         (mcu_types, avr_override_options): Handle all known MCU types.
9668         Also handle avr1 (only preprocess, assemble and link).
9669         (print_operand): Using of `%K' in output template removed.
9670         (out_movqi_r_mr): Optimized.
9671         (out_movhi_r_mr): Likewise.
9672         (output_movqi): New function.
9673         (output_movhi): Likewise.
9674         (out_movsi_r_mr): Optimized.
9675         (output_movsisf): Compute insn length for `adjust_insn_length'
9676         (out_movqi_mr_r): Optimized.
9677         (out_movhi_mr_r): Optimized.
9678         (adjust_insn_length): Use output_movsisf, output_movqi,
9679         output_movhi for insn length adjusting.
9680         (reg_unused_after): Use dead_or_set_p.
9681         (preferred_reload_class): Now havn't any restriction.
9682         (reg_was_0): New function.
9683         (io_address_p): Likewise.
9684         (const_int_pow2_p): Likewise.
9685         (output_reload_inhi): Likewise.
9686         (output_reload_insisf): Likewise.
9687
9688         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
9689         (LIB_SPEC): Use -lc for all supported devices.
9690         (LIBGCC_SPEC): Use -lgcc for all supported devices.
9691         (AVR_MEGA): Define as avr_mega_p.
9692         (AVR_ENHANCED): New, define as avr_enhanced_p.
9693         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
9694         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
9695         (CRT_BINUTILS_SPECS): Handle all known MCU types.
9696         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
9697         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
9698         (ASM_SPEC): Pass -mmcu=... to the assembler.
9699         Change all -DAVR_* to -D__AVR_*__.
9700         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
9701         Rename library functions to start with two underscores.
9702         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
9703         alignment.
9704         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
9705         (SUPPORTS_WEAK): Likewise.
9706         (LDI_REG_REGNO): New. Register r31 will be used as temporary
9707         register for loading constants to r0-r14.
9708
9709         * config/avr/avr.md: Replace all TARGET_ENHANCED with
9710         AVR_ENHANCED.
9711         (*mov_r_sp): Removed. Handled by output_movhi.
9712         (*mov_sp_r): Likewise.
9713         (*mov_sp_r_no_interrupts): Likewise
9714         (*mov_sp_r_tiny): Likewise.
9715         (*movqi): Use output_movqi.
9716         (*reload_inqi): New.
9717         (*movhi): Use output_movhi.
9718         (*reload_inhi): New.
9719         (*negsi2): Optimized.
9720         (*negsf2): Likewise.
9721         Added peepholes (define_peephole2) for loading constants to r0-r14
9722         and for using `cpse' command.
9723
9724         * config/avr/libgcc.S: Rename library functions to start with two
9725         underscores.
9726         Add support for enhanced core.
9727         (_moqhi3): Fix typo, now _modqi3.
9728         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
9729         (__prologue_saves__): Remove test for stack adjust by 0.
9730         (__tablejump__): New.
9731
9732         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
9733         Add multilib support.
9734
9735 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
9736
9737         * loop.c (prescan_loop): Don't check unknown_address_altered
9738         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
9739         to loop_store_mems as necessary.
9740         (loop_invariant_p): Don't check unknown_address_altered
9741         or unknown_constant_address_altered.
9742
9743 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9744
9745         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
9746
9747 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9748
9749         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
9750         print just the filename.
9751         * cpplex.c (_cpp_run_directive): Add additional argument, the
9752         name to give the synthetic buffer.  This defaults to
9753         translated "<command line>".
9754         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
9755         Adjust to match.
9756         (_cpp_define_builtin): New function.
9757         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
9758         * cpphash.h: Update prototypes.
9759
9760         * tradcpp.c (main): Process -D and -U simultaneously, in the
9761         order they appeared on the command line.
9762
9763 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9764
9765         * c-decl.c (define_label): Call warning_with_file_and_line and
9766         error_with_file_and_line instead of plain warning or error.
9767
9768         * c-parse.in (label): Use save_filename/save_lineno to ensure
9769         correct values for calls to define_label.
9770
9771 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
9772
9773         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
9774         away.
9775         * expr.c (expand_expr, case TARGET_EXPR): Don't call
9776         mark_addressable.
9777         * tree.h (get_file_function_name): Remove two duplicate
9778         declarations.
9779
9780 2000-08-28  Kazu Hirata  <kazu@hxi.com>
9781
9782         * tree.c: Fix formatting.
9783
9784         * xcoffout.c: Fix formatting.
9785
9786 2000-08-28  Jason Merrill  <jason@redhat.com>
9787
9788         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
9789
9790 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
9791
9792         * dwarf2out.c (dwarf2out_finish): Don't bother calling
9793         break_out_includes if it won't do anything.
9794
9795 2000-08-28  Richard Henderson  <rth@cygnus.com>
9796
9797         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
9798         (find_reloads): Likewise.
9799         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
9800         (reload_inhi): Likewise.
9801
9802 2000-08-28  Richard Henderson  <rth@cygnus.com>
9803
9804         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
9805         (call_insn_operand): Don't expect a surrounding mem.
9806         (constant_call_address_operand): Likewise.
9807         * config/i386/i386.h (PREDICATE_CODES): Update.
9808         * config/i386/i386.md (call patterns): Move the match_operand
9809         for the call destination inside the mem.
9810
9811 2000-08-28  Richard Henderson  <rth@cygnus.com>
9812
9813         * local-alloc.c (requires_inout): Don't use reserved range for
9814         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
9815         * recog.c (asm_operand_ok): Likewise.
9816         (preprocess_constraints, constrain_operands): Likewise.
9817         * regclass.c (record_reg_classes): Likewise.
9818         * reload.c (find_reloads): Likewise.
9819         * reload1.c (maybe_fix_stack_asms): Likewise.
9820         (reload_cse_simplify_operands): Likewise.
9821         * stmt.c (expand_asm_operands): Likewise.
9822
9823         * md.texi: Update constraints documentation.
9824         * tm.texi (EXTRA_CONSTRAINT): Update.
9825
9826 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
9827
9828         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
9829         (print_die): If we don't know the offset of the
9830         target die, try the symbol.  Add a trailing newline.
9831         (reverse_all_dies): New fn.
9832         (dwarf2out_finish): Call it.
9833         (break_out_includes): Reorganize for clarity.
9834         (add_sibling_attributes): Don't call reverse_die_lists.
9835         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
9836         primary CU, too.
9837         * flags.h: Add flag_eliminate_dwarf2_dups.
9838         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
9839
9840 2000-08-28  Jason Merrill  <jason@redhat.com>
9841
9842         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
9843         * dwarf2out.c: #include "md5.h".
9844         (DIE_LABEL_PREFIX): New macro.
9845         (dw_val_struct): Add 'external' flag to val_die_ref.
9846         (add_AT_die_ref, AT_ref): Adjust.
9847         (AT_ref_external, set_AT_ref_external): New fns.
9848         (build_abbrev_table): Call set_AT_ref_external.
9849         (value_format): Call AT_ref_external.
9850         (die_struct): Add die_symbol field.
9851         (new_die): Clear it.
9852         (dwarf_tag_name): Handle BINCL/EINCL.
9853         (dwarf2out_start_source_file): Add BINCL DIE.
9854         (dwarf2out_end_source_file): Add EINCL DIE.
9855         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
9856         (loc_checksum, attr_checksum, die_checksum): New fns.
9857         (is_type_die, is_comdat_die, is_symbol_die): New fns.
9858         (compute_section_prefix, assign_symbol_names): New fns.
9859         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
9860         (output_die): Call output_die_symbol and AT_ref_external.
9861         (output_comdat_comp_unit): New fn, split out from...
9862         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
9863         secondary CUs.
9864         (output_pubnames, output_aranges): Abort if we see entries from
9865         secondary CUs.
9866         * toplev.h: Declare file_name_nondirectory.
9867         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
9868         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
9869         (debug_start_source_file): Call dwarf2out_start_source_file
9870         regardless of debug verbosity.
9871         (debug_end_source_file): Similarly.
9872         * tree.h: Declare clean_symbol_name.
9873         * tree.c (clean_symbol_name): Split out from...
9874         (get_file_function_name_long): ...here.
9875
9876         * dwarf2out.c (new_loc_descr): Use calloc.
9877         (splice_child_die): Remove the die from the right parent.
9878         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
9879
9880 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9881
9882         * toplev.c (decode_g_option): Don't give warning for unknown -g
9883         option; return 0 instead.
9884         (main): If -g option is not recognized by front end or
9885         language-independent code, give warning.
9886
9887 2000-08-28  Greg McGary  <greg@mcgary.org>
9888
9889         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
9890         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
9891         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
9892
9893 2000-08-27  Greg McGary  <greg@mcgary.org>
9894
9895         * cpplex.c (parse_string): Don't look for backslash
9896         before first char in `namebuf'.
9897         * loop.c (strength_reduce): Skip NOTEs.
9898
9899 2000-08-27  Jason Merrill  <jason@redhat.com>
9900
9901         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
9902         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
9903         TREE_ASM_WRITTEN, either.
9904         (finish_decl): Adjust.
9905
9906 2000-08-28  Philipp Thomas  <pthomas@suse.de>
9907
9908         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
9909         they have been incorporated into the gettext CVS. Change the text to
9910         reflect the current status of NLS. Add instructions for accessing
9911         the gettext CVS and add the patch from Martin v. Loewis.
9912
9913 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
9914
9915         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
9916         by using gen_lowpart_common.
9917         (movdi_internal64+6): Likewise.
9918
9919 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
9920
9921         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
9922         Document.
9923
9924         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
9925         numbers to the ranges used by GDB.
9926
9927 2000-08-25  Richard Henderson  <rth@cygnus.com>
9928
9929         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
9930         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
9931         (ia64_expand_prologue): Likewise.
9932         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
9933         argument for stdargs.
9934
9935 2000-08-25  Jason Merrill  <jason@redhat.com>
9936
9937         * integrate.c (expand_inline_function): Pull out the original decl.
9938
9939 2000-08-25  Jim Wilson  <wilson@cygnus.com>
9940
9941         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
9942
9943         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
9944
9945 2000-08-25  Greg McGary  <greg@mcgary.org>
9946
9947         * flow.c (dump_edge_info): Use ARRAY_SIZE.
9948         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
9949
9950 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
9951
9952         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
9953
9954 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
9955
9956         * i386.c (ix86_find_base_term): New.
9957         * i386-protos.h (ix86_find_base_term): Prototype.
9958         * i386.h (FIND_BASE_TERM): Define.
9959         * alias.c (find_base_term): Use it.
9960         * tm.texi (FIND_BASE_TERM): Document it.
9961
9962         * alias.c (true_dependence, write_dependence_p): Unchanging
9963         memory can't conflict with non-unchanging memory.
9964
9965         * alias.c (memrefs_conflict_p): A BLKmode reference
9966         to a symbol (or CONST_INT address) always conflicts
9967         with a reference to another symbol.
9968
9969 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
9970
9971         * c-common.c (time_char_table): Don't allow width and flags with
9972         "z" format.
9973
9974 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
9975
9976         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
9977         way as LT and LTU when the second operand has 0 in low word.
9978
9979 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
9980
9981         * basic-block.h (struct loop): Rename `exits' field to
9982         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
9983
9984         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
9985         (flow_loop_entry_edges_find): Add.
9986         (flow_edge_list_print): Rename from flow_exits_print.
9987         (flow_loops_find): Call flow_loop_entry_edges_find.
9988         (flow_loop_dump): Dump entry_edges list.
9989         (flow_loops_free): Free entry_edges.
9990
9991 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
9992
9993         * loop.c (loop_dump_aux, debug_loop): New functions.
9994         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
9995
9996         * flow.c (flow_loops_dump): Add callback parameter.
9997         (flow_loop_dump): Add callback parameter and call it.  Move
9998         loop note debugging code to loop_dump_aux.
9999
10000         * basic-block.h (flow_loop_dump): Add callback parameter
10001         (flow_loops_dump): Likewise.
10002
10003         * toplev.c (rest_of_compilation): Add NULL callback function pointer
10004         to call to flow_loops_dump.
10005
10006 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10007
10008         * loop.c (count_loop_regs_set): Replace start and end arguments
10009         with loop argument.  All callers udated.
10010
10011 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10012
10013         * loop.c (constant_high_bytes): Delete.
10014
10015 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10016
10017         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
10018         and NOTE_INSN_LOOP_VTOP to...
10019         (find_and_verify_loops) ...here.
10020
10021 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
10022
10023         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
10024         (fini_dummy, init_dummy): Use it.
10025
10026 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
10027
10028         * cpplex.c (is_macro_disabled): Caller has already checked
10029         that we're not a preprocessed file.
10030
10031 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
10032
10033         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
10034         (c-iterate.o): Remove target.
10035         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
10036         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
10037         (finish_decl): Don't handle iterators.
10038         (grokdeclarator): Likewise.
10039         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
10040         * gcc/c-gperf.h: Regenerated.
10041         * gcc/c-iterate.c: Removed.
10042         * gcc/c-lex.c (init_lex): Don't handle iterators.
10043         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
10044         (compstmt_primary_start): Remove push_iterator_stack call.
10045         (stmt): Don't allow iterator statements.  Replace iterator_expand
10046         with expand_expr_stmt.
10047         (all_iter_stmt): Remove.
10048         (all_iter_stmt_simple): Likewise.
10049         (all_iter_stmt_with_decl): Likewise.
10050         * gcc/c-tree.h (ITERATOR_P): Remove.
10051         (ITERATOR_BOUND_P): Likewise.
10052         (init_iterators): Remove declaration.
10053         (iterator_expand): Likewise.
10054         (iterator_for_loop_start): Likewise.
10055         (iterator_for_loop_end): Likewise.
10056         (iterator_for_loop_record): Likewise.
10057         (push_iterator_stack): Likewise.
10058         (pop_iterator_stack): Likewise.
10059         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
10060         (readonly_warning): Likewise.
10061         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
10062
10063 2000-08-24  Jim Wilson  <wilson@cygnus.com>
10064
10065         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
10066         Copy type in a TYPE_DECL, just like pushdecl does.
10067
10068 2000-08-24  Richard Henderson  <rth@cygnus.com>
10069
10070         * toplev.c (main): Enable flag_reorder_blocks at -O2.
10071
10072 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
10073
10074         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
10075         asked for one page, allocate GGC_QUIRE_SIZE of them and put
10076         the extras on the free list.
10077         (release_pages): Clean up.
10078         (ggc_set_mark): Don't adjust G.allocated here...
10079         (sweep_pages): ... do it here.
10080
10081 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
10082
10083         * cppfiles.c (read_include_file): Rearrange initializations.
10084
10085 2000-08-24  Richard Henderson  <rth@cygnus.com>
10086
10087         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
10088
10089         * config/ia64/ia64-protos.h: Update.
10090         * config/ia64/ia64.c (gr_register_operand): New.
10091         (fr_register_operand, grfr_register_operand): New.
10092         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
10093         (grfr_reg_or_8bit_operand): New.
10094         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
10095         use gr_register_operand.
10096         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
10097         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
10098         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
10099         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
10100         (fr_reg_or_fp01_operand): Likewise.
10101         (not_postinc_memory_operand): New.
10102         (ia64_split_timode): Remove unused variables.
10103         (rtx_needs_barrier): Check arguments to cmpxchg.
10104         (builtin_description): Remove.
10105         (bdesc_2argsi, bdesc_2argdi): Remove.
10106         (ia64_init_builtins): Declare all builtins directly.
10107         (ia64_expand_fetch_and_op): Rewrite to be called from
10108         ia64_expand_builtin directly.  Use expand_binop and co.
10109         (ia64_expand_op_and_fetch): Likewise.
10110         (ia64_expand_compare_and_swap): Likewise.
10111         (ia64_expand_binop_builtin): Remove.
10112         (ia64_expand_lock_test_and_set): New.
10113         (ia64_expand_lock_release): New.
10114         (ia64_expand_builtin): Use them.
10115         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
10116         (EXTRA_CONSTRAINT): Use it.
10117         (PREDICATE_CODES): Update.
10118         * config/ia64/ia64.md (*): Use gr_register_operand and co.
10119         (mf): Indicate that we set memory as well as use it.
10120         (fetchadd_acq_si): Show memory being modified as well.
10121         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
10122         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
10123         (lock_test_and_set_si, lock_test_and_set_di): Remove.
10124         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
10125         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
10126         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
10127         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
10128         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
10129         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
10130         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
10131         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
10132         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
10133         return type.  Pretty print definitions.
10134
10135 2000-08-24  Jim Wilson  <wilson@cygnus.com>
10136
10137         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
10138         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
10139
10140 2000-08-24  Jason Merrill  <jason@redhat.com>
10141
10142         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
10143         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
10144         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
10145         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
10146
10147 2000-08-24  Greg McGary  <greg@mcgary.org>
10148
10149         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
10150         and extendtab within their proper array boundaries.
10151         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
10152         for the entire array.
10153
10154         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
10155         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
10156         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
10157         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10158         * config/i386/dgux.c (output_options): Likewise.
10159         * config/i386/dgux.h (ASM_FILE_START): Likewise.
10160         * config/m88k/m88k.c (output_options): Likewise.
10161         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
10162         * config/mcore/mcore.c (mcore_output_inline_const_forced,
10163         layout_mcore_frame, handle_structs_in_regs): Likewise.
10164         * config/mips/mips.c (output_block_move): Likewise.
10165         * config/rs6000/rs6000.c (rs6000_override_options,
10166         rs6000_file_start): Likewise.
10167         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
10168         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
10169         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
10170         * builtins.c (expand_builtin_setjmp): Likewise.
10171         * expr.c (safe_from_p): Likewise.
10172         * flow.c (life_analysis): Likewise.
10173         * fold-const.c (size_int_type_wide): Likewise.
10174         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
10175         * genattrtab.c (make_length_attrs): Likewise.
10176         * genopinit.c (gen_insn): Likewise.
10177         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
10178         * global.c (global_alloc): Likewise.
10179         * local-alloc.c (find_free_reg): Likewise.
10180         * mips-tdump.c (print_symbol): Likewise.
10181         * mips-tfile.c (parse_def, parse_input): Likewise.
10182         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
10183         * stmt.c (expand_nl_goto_receiver): Likewise.
10184         * stor-layout.c (set_sizetype): Likewise.
10185         * varasm.c (decode_reg_name): Likewise.
10186         * toplev.c (decode_f_option, decode_W_option,
10187         set_target_switch, print_switch_values): Likewise.
10188         (NUM_ELEM): Remove macro.
10189         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
10190
10191 2000-08-24  Greg McGary  <greg@mcgary.org>
10192
10193         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
10194         (MAIN_NAME_P, main_identifier_node): New macros.
10195         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
10196         * c-decl.c (start_decl, grokdeclarator, start_function,
10197         store_parm_decls, finish_function): Use MAIN_NAME_P.
10198         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
10199         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10200         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10201         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
10202
10203 2000-08-24  Greg McGary  <greg@mcgary.org>
10204
10205         * cppfiles.c (actual_directory): Don't write beyond `dir'
10206         when it contains "".
10207         * real.c (asctoeg): Stay within bounds of etens[][].
10208
10209 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10210
10211         * dependence.c (dependence_string, direction_string,
10212         dump_one_node, dump_node_dependence): Hide unused identifiers.
10213         (get_low_bound, normalize_coefficients): Match definition to
10214         static prototype.
10215         (get_one_coefficient): Initialize variables `value0_is_idx' and
10216         `value1_is_idx'.
10217         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
10218         (ziv_test): Delete variable `idx', use parameter `sub' instead.
10219         (direction_merge): Avoid automatic aggregate initialization.
10220         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
10221         Initialize variables `dest_idx' and `src_idx'.
10222         (end_dependence_analysis): Avoid C89 style function definition.
10223
10224 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
10225
10226         * c-common.c (time_char_table): Don't allow width with %F.
10227         (check_format_info): Don't allow "Z" length with scanf.
10228
10229 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
10230
10231         * diagnostic.c (finish_diagnostic): Define.
10232         (output_do_printf): Use wrap_text instead of output_add_string.
10233         (default_print_error_function): Avoid embedded '\n'.
10234
10235         * diagnostic.h (flush_diagnostic_buffer): Declare.
10236
10237 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
10238
10239         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
10240
10241 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
10242
10243         * Makefile.in (GCC_PASSES): Add specs.
10244
10245 2000-08-23  Jim Wilson  <wilson@cygnus.com>
10246
10247         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
10248         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
10249         EHANDLER nor UHANDLER bit is set.
10250         (__get_except_table): Likewise.
10251
10252 2000-08-23  Nick Clifton  <nickc@redhat.com>
10253
10254         * config/arm/lib1funcs.asm: Replace upper case condition codes
10255         with lower case versions.
10256
10257         * config/arm/arm.h (STRUCT_VALUE): Define.
10258         (STRUCT_VALUE_REGNUM): Delete.
10259
10260 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
10261
10262         * cpphash.h (IN_I): New flag for directive table.
10263         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
10264         #pragma with IN_I.
10265         (_cpp_check_directive): If -fpreprocessed, execute directives
10266         marked with IN_I.  Issue no warnings in this case.
10267         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
10268
10269 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10270
10271         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
10272         %u.
10273         (check_format_info): Support printf 'I' flag; warn about it with
10274         -pedantic.
10275
10276 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
10277
10278         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
10279         barrier can't be ignored by the alias analysis code.
10280
10281 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
10282
10283         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
10284         works inside fixincl.
10285
10286 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
10287
10288         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
10289         simplify_relational_operation() unless both operands are of
10290         VOIDmode.
10291         * cse.c (fold_rtx): Likewise.
10292
10293 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
10294
10295         * rtlanal.c (rtx_unstable_p): The pic register is stable
10296         (within one function) and the actual rtx should be used
10297         when checking the registers.
10298         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
10299
10300         * alias.c (true_dependence, write_dependence_p): Fix
10301         bug in previous patch.
10302
10303         * i386.c (ix86_GOT_alias_set): New.
10304         (legitimize_pic_address): Use it.
10305
10306         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
10307         only stable if its address is stable.
10308         (rtx_varies_p): An unchanging MEM can't vary if
10309         its address doesn't vary.
10310
10311 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10312
10313         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
10314
10315 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
10316
10317         * vax.h (ASM_SPEC): Pass `-J' to assembler.
10318         * x-vax-gcc: New file for bootstrapping with gcc.
10319         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
10320         * configure.in: Use x-vax-gcc with gcc.
10321         * configure: Rebuilt.
10322
10323 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10324
10325         * toplev.c (rest_of_compilation): Rebuild label notes after
10326         post-reload splitting pass if new labels have been created.
10327
10328 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
10329
10330         * diagnostic.h (output_buffer_state): New macro.
10331         * diagnostic.c (diagnostic_for_decl, sorry,
10332         default_print_error_function, output_do_verbatim,
10333         report_diagnostic, report_problematic_module): Use it.
10334         (wrap_text): Tweak.
10335         (output_format): Use wrap_text instead of maybe_wrap_text.
10336
10337 2000-08-22  Nick Clifton  <nickc@redhat.com>
10338
10339         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
10340         Common code for ARM divide and modulus functions.
10341         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
10342         ARM_DIV_MOD_BODY.
10343         (FUNC_END): New macro: Common code at the end of the division and
10344         modulo functions.
10345         (THUMB_FUNCTION_START): New macro:  Common code at the start of
10346         Thumb functions.
10347         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
10348
10349 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
10350
10351         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
10352
10353         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
10354         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
10355         const0_rtx.
10356
10357 2000-08-22  Nick Clifton  <nickc@redhat.com>
10358
10359         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
10360         restorative additions, test for bottom bits of IP being set,
10361         rather than relying upon the RORs not matching.
10362         (__modsi3): Ditto.
10363
10364 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
10365
10366         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
10367         text_section() as appropriate instead of emitting text csect
10368         pseudo-op directly.
10369         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
10370         (UNIQUE_SECTION): Define macro.
10371         (ASM_OUTPUT_SECTION_NAME): Define macro.
10372         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
10373         on AIX if debugging and -fdata-sections always.
10374
10375 2000-08-22  Steven King  <sxking@uswest.net>
10376
10377         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
10378         machinery.
10379         (LDBL_MAX): Same here.
10380
10381 2000-08-22  Richard Henderson  <rth@cygnus.com>
10382
10383         * flow.c (tidy_fallthru_edge): Update b->end properly.
10384
10385 2000-08-22  Stan Cox  <scox@redhat.com>
10386
10387         * Makefile.in (OBJS): Add dependence.o.
10388         * dependence.c: New file.
10389
10390 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
10391
10392         * calls.c (check_sibcall_argument_overlap_1): Adjust for
10393         ARGS_GROW_DOWNWARD.
10394         (check_sibcall_argument_overlap): Likewise.
10395
10396 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
10397
10398         * invoke.texi (SH Options): Document -m4-nofpu,
10399         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
10400         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
10401
10402 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
10403
10404         * c-common.c (check_format_info): Give the 'some locales' warning
10405         for strftime %Ey rather than the unconditional 'only last 2 digits
10406         of year' one.
10407
10408 2000-08-22  Richard Henderson  <rth@cygnus.com>
10409
10410         * alias.c (init_alias_analysis): Do not register
10411         struct_value_incoming_rtx or static_chain_rtx as pointing
10412         to stack memory.
10413
10414 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
10415
10416         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
10417
10418 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
10419
10420         * diagnostic.h (report_problematic_module): Declare.
10421         * diagnostic.c (report_problematic_module): New function.
10422         (report_error_function): Tweak.
10423
10424 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10425
10426         * stmt.c (expand_goto_internal, fixup_gotos): Only check
10427         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
10428
10429 2000-08-21  Richard Henderson  <rth@cygnus.com>
10430
10431         * flow.c (calculate_global_regs_live): Mark frame pointer live
10432         everywhere before reload.
10433
10434 2000-08-21  Jim Wilson  <wilson@cygnus.com>
10435
10436         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
10437         INTEL_EXTENDED_IEEE_FORMAT.
10438         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
10439         clear last two bytes of output FP value.
10440
10441 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
10442
10443         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
10444
10445 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
10446
10447         * unroll.c (loop_find_equiv_value): If ret is modified between
10448         insn and loop_start, ret might not be equivalent to reg.
10449
10450 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10451
10452         * c-common.c (init_dollar_format_checking,
10453         maybe_read_dollar_number, finish_dollar_format_checking): New
10454         functions.
10455         (dollar_arguments_used, dollar_arguments_count,
10456         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
10457         New variables.
10458         (check_format_info): Support $ formats for scanf and printf width
10459         and precision.  Always increment format_chars to advance past the
10460         '*' of precision, not just when the format parameters are
10461         available to check.
10462
10463 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10464
10465         * mips.c (block_move_loop, expand_block_move,
10466         function_arg_partial_nregs, save_restore_insns, function_prologue,
10467         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
10468         constant suffix.
10469         (function_arg_advance, function_arg): Match argument to format
10470         specifier `%p'.
10471
10472 2000-08-21  Nix  <nix@esperi.demon.co.uk>
10473
10474         * gcc.c (do_spec_1): Implement %j spec flag.
10475         Remove dead comment.
10476
10477         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
10478         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
10479         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
10480         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
10481
10482         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
10483         writable) instead of hardcoded value.
10484
10485         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
10486
10487         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
10488         MKTEMP_EACH_FILE.
10489
10490         * gcc.c (cc1_options): Do not process -o or run the assembler if
10491         -fsyntax-only.
10492         * objc/lang-spec.h: Likewise.
10493
10494 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
10495
10496         * fixinc/fixincl.c (fix_with_system): Pipe the output of
10497         "external" fixes through `cat', to avoid truncating the input
10498         file by redirection.
10499
10500 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
10501
10502         * config/i386/i386.md (lea_general_1): Copy insn condition to split
10503         condition.
10504         (lea_general_2, lea_general_3): Likewise.
10505
10506 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10507
10508         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
10509         warnings to user code.
10510
10511         * c-lex.c (readescape, yylex): Likewise.
10512
10513         * c-typeck.c (store_init_value, process_init_element): Likewise
10514         (c_expand_start_case): Format.
10515
10516 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10517
10518         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
10519
10520         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
10521         and linker_endian_spec to endian_spec.
10522         (ENDIAN_SPEC): Add %{EB} and %{EL}.
10523         (LINK_SPEC): Remove %{EB} and %{EL}.
10524         (ASM_SPEC): Likewise.  Use %(endian_spec).
10525
10526 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10527
10528         * c-tree.h (flag_hosted): Move declaration from here...
10529         * c-common.h (flag_hosted): ... to here.
10530         (flag_noniso_default_format_attributes): New declaration.
10531         * c-decl.c (flag_noniso_default_format_attributes): New variable.
10532         (c_decode_option): Set it appropriately for options choosing
10533         language standard variant.
10534         * c-common.c (init_function_format_info): Only provide default
10535         format attributes if flag_hosted.  Only provide the gettext
10536         formats if flag_noniso_default_format_attributes.  Update
10537         comments.
10538         (check_format_info): Disable treatment of %a as a scanf flag in
10539         C99 mode.
10540
10541 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10542
10543         * c-common.c (scan_char_table): Add 'w' to flags for all formats
10544         except 'n'.
10545         (check_format_info): Set 'wide' for scanf format widths.  Warn for
10546         a zero scanf width.  Make the check for writing into a constant
10547         object at the first level of indirection; at later levels, warn if
10548         any type qualifiers are encountered.
10549
10550 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
10551
10552         * reload.c (reload_inner_reg_of_subreg): New function broken out of
10553         push_reload.
10554         (push_reload): Use reload_inner_reg_of_subreg.
10555         (combine_reloads): Do not combine reloads if the input reload
10556         is a SUBREG in which the inner part will need reloading.
10557
10558         * global.c (global_alloc): Avoid passing dumpfile argument to
10559         reload routines.
10560         * toplev.c (rest_of_compilation): Likewise.
10561         * reload.h (reload): Remove dumpfile argument.  Callers changed.
10562         (debug_reload, debug_reload_to_stream): Move prototypes here.
10563         * rtl.h  (reload): Remove dumpfile argument.
10564         * reload.c (debug_reload): Remove prototype.
10565         (debug_reload_to_stream): Likewise.
10566         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
10567         instead.
10568
10569 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10570
10571         * diagnostic.c (context_as_prefix): Export.
10572         (need_error_newline): Remove.
10573         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
10574         (error_module_changed, record_last_error_module,
10575         error_function_changed, record_last_error_function): New functions.
10576         (initialize_diagnostics): Default intialize
10577         lang_diagnostic_starter, lang_diagnostic_finalizer.
10578         (init_output_buffer): Tweak.
10579         (file_name_as_prefix): New function.
10580         (announce_function, default_print_error_function,
10581         report_error_function, set_diagnostic_context): Tweak.
10582
10583 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
10584
10585         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
10586         condition expression.
10587
10588 2000-08-20  Richard Henderson  <rth@cygnus.com>
10589
10590         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
10591
10592 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
10593
10594         * cppinit.c (cpp_init): Set global flag when called.
10595         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
10596
10597 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
10598
10599         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
10600         before `process_directive' so that newlines won't be missed
10601         for directives.
10602         (cpp_printf): Increment `print->lineno' when newline is emitted.
10603
10604         * cppmain.c (cb_ident): Likewise.
10605         (cb_define): Likewise.
10606         (cb_undef): Likewise.
10607         (cb_include): Likewise.
10608         (cb_def_pragma): Likewise.
10609         (dump_macros_helper): Likewise.
10610
10611 2000-08-20  Richard Henderson  <rth@cygnus.com>
10612
10613         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
10614         assigned before a loop.
10615
10616         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
10617         (ashrsi3, lshrsi3): Likewise.
10618
10619 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
10620
10621         * c-lang.c: #include diagnostic.h
10622         (c_tree_printer): New function.
10623         (lang_init): Initialize lang_printer.
10624
10625         * Makefile.in (c-lang.o): Depends on diagnostic.h
10626
10627 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
10628
10629         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
10630
10631         * diagnostic.c (default_diagnostic_starter,
10632         default_diagnostic_finalizer): New functions.
10633         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
10634         (pedwarn, pedwarn_with_file_and_line, error,
10635         error_with_file_and_line, fatal, warning,
10636         warning_with_file_and_line): Adjust call to report_diagnostic.
10637         (report_diagnostic): Rework.
10638         (set_diagnostic_context): New function.
10639
10640         * diagnostic.h (struct diagnostic_context): New data structure.
10641         (diagnostic_message, diagnostic_argument_list,
10642         diagnostic_file_location, diagnostic_line_location,
10643         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
10644         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
10645         (set_diagnostic_context): Declare.
10646         (report_diagnostic): Change prototype.
10647
10648 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
10649
10650         * fix-header.c (main): Initialize cpplib.
10651
10652 2000-08-19  Michael Meissner  <meissner@redhat.com>
10653
10654         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
10655         instructions in it before checking for indirect jumps.
10656
10657         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
10658         in a indirect jump as a potential for conditional execution.
10659
10660         * d30v.h (d30v_init_expanders): Don't declare here.
10661         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
10662         prototype.
10663
10664 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
10665
10666         * cpp.texi: Add @section for assertions.
10667
10668 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
10669
10670         * loop.c (scan_loop): Use CONST_CALL_P instead of
10671         checking for REG_LIBCALL / REG_RETVAL.
10672
10673 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
10674
10675         * reload1.c (reload_as_needed): Accept dumpfile argument,
10676         pass it to emit_reload_insns.
10677         (emit_reload_insns): Add new dumpfile argument.  If non-null
10678         then dump the reloads for each insn into the dumpfile.
10679         (reload): Pass dumpfile to reload_as_needed.
10680
10681         * invoke.texi: Clean up linux-gnu vs linux comments.
10682
10683 2000-08-19  Richard Henderson  <rth@cygnus.com>
10684
10685         * config/ia64/ia64.c (reg_or_5bit_operand): New.
10686         (ia64_depz_field_mask): New.
10687         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
10688         (PREDICATE_CODES): Update.
10689         * config/ia64/ia64.md: Update commentary.
10690         (depz_internal): New.
10691         (ashlsi3): Implement directly.
10692         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
10693         (ashldi3): Use shladd.
10694         * config/ia64/ia64-protos.h: Update.
10695
10696 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
10697
10698         * toplev.c (independent_decode_option): Always process -g.
10699         Remove third argument, now unused.  Adjust caller to match.
10700
10701 2000-08-18  Richard Henderson  <rth@cygnus.com>
10702
10703         * combine.c (make_compound_operation): Break after creating
10704         the extraction.
10705
10706 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
10707
10708         * cpplib.c (cpp_register_pragma_space): Just return if the
10709         namespace is already registered.
10710
10711 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
10712
10713         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
10714         constant amount.  Do not generate ROTL instruction.
10715
10716 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
10717
10718         * config/sh/elf.h: Do not include sh/sh.h.
10719         * config/sh/rtems.h: Likewise.
10720         * config/sh/rtemself.h: Do not include sh/elf.h.
10721         * configure.in: Get them included with `tm_file's.
10722         * configure: Rebuilt.
10723
10724         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
10725         * config/sh/sh.c (fpscr_set_from_mem): Use them.
10726
10727 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10728
10729         * stor-layout.c (compute_record_type): Don't use mode of single
10730         field as mode of record if not integer mode of same type.
10731
10732         * regmove.c (perhaps_ends_bb_p): New function.
10733         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
10734         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
10735         (fixup_match_1): Likewise.
10736         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
10737         avoid signed/unsigned warnings.
10738
10739         * function.c (fixup_var_refs_1, case MEM): Update CODE after
10740         updating X.
10741
10742 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
10743
10744         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
10745         (_cpp_trigraph_map): Declaration moved from cpplex.c
10746
10747         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
10748         instead of 256.  Use consistent test for designated initializers.
10749         (cpp_init): Initialize trigraph_map.
10750         (initialize_standard_includes, parse_option):  Use memcmp
10751         instead of strncmp.
10752
10753         * cpplex.c (init_trigraph_map): Remove.
10754         (trigraph_ok, trigraph_replace, lex_line): Refer to
10755         _cpp_trigraph_map.
10756
10757         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
10758         (do_unassert): Remove unused "next" local.
10759
10760         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
10761
10762 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
10763
10764         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
10765         insn.
10766
10767 2000-08-17  Richard Henderson  <rth@cygnus.com>
10768
10769         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
10770         the first insn in a sequence.
10771
10772 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
10773
10774         * alias.c (true_dependence, write_dependence_p): A read
10775         involving a label_ref or the constant pool doesn't create
10776         a dependency.
10777
10778         * rtl.h (unchanging): Improve documentation.
10779
10780 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
10781
10782         * cse.c (insert_regs): Remove unused `regno'.
10783
10784 2000-08-17  Neil Booth  <NeilB@earthling.net>
10785
10786         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
10787         remove_dup_dirs.  If qtail == brack, remove brack not
10788         qtail.
10789         (remove_dup_dir, remove_dup_dirs): New functions.
10790
10791 2000-08-17  Neil Booth  <NeilB@earthling.net>
10792
10793         * cppinit.c (cpp_cleanup): Free include dir chains.
10794         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
10795         (do_unassert): Free the assert with _cpp_free_definition.
10796         * cppmacro.c (_cpp_free_definition): Free memory allocated for
10797         assertions.  Make the node a T_VOID node.
10798
10799 2000-08-17  Neil Booth  <NeilB@earthling.net>
10800
10801         * cppinit.c (path_include, append_include_chain):
10802         Remove 2nd parameter (struct cpp_pending *).
10803         (path_include, initialize_standard_includes, cpp_handle_option):
10804         Update callers appropriately.
10805         (cpp_handle_option): Use pend.
10806
10807 2000-08-17  Neil Booth  <NeilB@earthling.net>
10808
10809         * cppinit.c (sort_options): Remove, put functionality in
10810         cpp_init.
10811         (cpp_init): New.
10812         (initialize_builtins): Free memory.
10813         (cpp_start_read): Move init_IStable to cpp_init.
10814
10815         * cpplib.h (cpp_init): New prototype.
10816         * cppmain.c (main): Call cpp_init.
10817
10818 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
10819
10820         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
10821         (rtx_unstable_p, rtx_varies_p): Process vectors.
10822
10823 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
10824
10825         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
10826         references to GLOBAL symbols.  Use LOCAL where appropriate.
10827
10828 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10829
10830         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
10831         use t-aix41 when host == target.
10832
10833 2000-08-16  Richard Henderson  <rth@cygnus.com>
10834
10835         * reload.c (push_secondary_reload): Revert last change.
10836         If we use a reload_in/out pattern, make the when the same
10837         as the primary reload.
10838         (find_reloads): Likewise.
10839
10840 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
10841
10842         * configure.in (libstdcxx-v3): Fix test.
10843         * configure: Regenerate.
10844
10845 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10846
10847         * calls.c (calls_function_1, expand_call): Only test
10848         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
10849         * function.c (thread_prologue_and_epilogue_insns): Likewise.
10850
10851 2000-08-16  Richard Henderson  <rth@cygnus.com>
10852
10853         * combine.c (simplify_shift_const): Revert previous two
10854         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
10855         before the main loop.
10856
10857 2000-08-15  Richard Henderson  <rth@cygnus.com>
10858
10859         * combine.c (simplify_shift_const): Bound shift count when
10860         combining shifts.
10861
10862 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10863
10864         * calls.c (ECF_SP_DEPRESSED): New macro.
10865         (calls_function_1): Treat calling sp-depressed function as alloca.
10866         (emit_call_1): Don't adjust SP if calling sp-depressed function.
10867         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
10868         If sp-depressed, ensure block saves and restores SP.
10869         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
10870         for INTEGER_TYPE.
10871         * function.c (keep_stack_depressed): New function.
10872         (thread_prologue_and_epilogue_insns): Call it.
10873         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
10874         to print DECL_OFFSET_ALIGN.
10875         Print no-force-blk and transparent-union flags properly.
10876         * stmt.c (expand_goto_internal): Don't restore stack if last block
10877         and function returns with sp depressed.
10878         (fixup_gotos): Likewise.
10879         (save_stack_pointer): New function, from code in expand_decl.
10880         (expand_decl): Call new function.
10881         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
10882         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
10883         (save_stack_pointer): New declaration.
10884
10885         * diagnostic.c (fatal_function): New variable.
10886         (set_fatal_function): New function.
10887         (fatal): Call it.
10888         * diagnostic.h (set_fatal_function): New declaration.
10889
10890 2000-08-15  William Cohen  <wcohen@redhat.com>
10891
10892         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
10893         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
10894         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
10895
10896 2000-08-15  Richard Henderson  <rth@cygnus.com>
10897
10898         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
10899
10900 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
10901
10902         * arm.c (arm_function_ok_for_sibcall): New function.
10903         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
10904         * arm.md (call expanders): Don't check here for calls that can't
10905         be sibling calls.
10906
10907 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
10908
10909         * arm.md (splits generating cond_exec): Disable.
10910
10911 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
10912
10913         * arm/linux-elf.h (text_section): Delete declaration.
10914
10915 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
10916
10917         ARM support for unordered FP operations.
10918         * arm-protos.h (arm_comparison_operator): Declare.
10919         * arm.c (arm_comparison_operator): New function.
10920         (arm_select_cc_mode): Add unordered comparison codes.
10921         (get_arm_condition_code): Likewise.
10922         (arm_final_prescan_insn): Can't handle unordered jumps that can't
10923         be done in one insn.
10924         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
10925         * arm.md (all uses of comparison_operator): Replace with
10926         arm_comparison_operator.
10927         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
10928         expands.
10929         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
10930         patterns.
10931
10932 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
10933
10934         * gthr-posix.h: Conditionally include <sched.h>; include
10935         <config.h> from libobjc/.
10936
10937 2000-08-14  Richard Henderson  <rth@cygnus.com>
10938
10939         * config/i386/i386.c (legitimize_pic_address): Use Pmode
10940         for all CONSTs.
10941
10942 2000-08-14  Richard Henderson  <rth@cygnus.com>
10943
10944         * configure.in (ia64-*): Set float_format for i386 long double.
10945
10946         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
10947         as we would for i386 XFmode.
10948         (PUT_REAL): Likewise.
10949         (endian, ereal_atof, real_value_truncate): Likewise.
10950         (ereal_isneg, toe64, etens, make_nan): Likewise.
10951         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
10952
10953         * config/ia64/ia64-protos.h: Update.
10954         * config/ia64/ia64.c (general_tfmode_operand): New.
10955         (destination_tfmode_operand): New.
10956         (tfreg_or_fp01_operand): New.
10957         (ia64_split_timode): New.
10958         (spill_tfmode_operand): New.
10959         (ia64_expand_prologue): Use TFmode not XFmode.
10960         (ia64_expand_epilogue): Likewise.
10961         (ia64_function_arg): Likewise.
10962         (ia64_function_arg_advance): Likewise.
10963         (ia64_return_in_memory): Likewise.
10964         (ia64_function_value): Likewise.
10965         (ia64_print_operand): Likewise.
10966         (ia64_register_move_cost): Set GR<->FR to 5.
10967         (ia64_secondary_reload_class): Get GR for TImode memory op.
10968         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
10969         (ROUND_TYPE_ALIGN): Remove.
10970         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
10971         (INTEL_EXTENDED_IEEE_FORMAT): Define.
10972         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
10973         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
10974         (MODES_TIEABLE_P): Use TFmode, not XFmode.
10975         (CLASS_MAX_NREGS): Likewise.
10976         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
10977         (PREDICATE_CODES): Update.
10978         * config/ia64/ia64.md (movti): New.
10979         (movti_internal): Use a clobber for memory alternatives.
10980         (reload_inti, reload_outti): New.
10981         (movsfcc_astep): Predicate properly.
10982         (movdfcc_astep): Likewise.
10983         (movxf): Remove.
10984         (movtf): New.
10985         (extendsftf2, extenddftf2): New.
10986         (trunctfsf2, trunctfdf2): New.
10987         (floatditf2, fix_trunctfdi2): New.
10988         (floatunsditf2, fixuns_trunctfdi2): New.
10989         (addtf3, subtf3, multf3, abstf2): New.
10990         (negtf2, nabstf2, mintf3, maxtf3): New.
10991         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
10992         (cmptf): New.
10993         (fr_spill): Use TFmode, not XFmode.
10994         (fr_restore): Likewise.
10995         * config/ia64/lib1funcs.asm (__divtf3): New.
10996         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
10997
10998 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10999
11000         * cse.c (fold_rtx): Avoid empty body in an if-statement.
11001
11002         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
11003         `U' integer constant suffix.
11004
11005         * dwarf2out.c (add_subscript_info): Avoid empty body in an
11006         else-statement.
11007
11008         * sparc/sol2.h (__enable_execute_stack): Prototype.
11009
11010 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
11011
11012         * collect2.c: Remove use of AIX import file.
11013
11014         * longlong.h: Test ARCH_PWR not ARCH_POWER.
11015
11016         * rs6000.c (print_operand, case 'E'): Add else.
11017
11018 2000-08-14  Richard Henderson  <rth@cygnus.com>
11019
11020         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
11021         (movdi_symbolic): New.
11022
11023 2000-08-14  Jim Wilson  <wilson@cygnus.com>
11024
11025         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11026         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
11027         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11028         to GNU as.
11029
11030 2000-08-14  Richard Henderson  <rth@cygnus.com>
11031
11032         * expr.c (emit_group_load): Don't force constants into registers.
11033         Special case source already in the correct mode.
11034
11035 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
11036
11037         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
11038         * fixinc/inclhack.def: Likewise.
11039         * fixinc/mkfixinc.sh: Likewise.
11040         * configure: Regenerate.
11041         * fixinc/fixincl.x: Regenerate.
11042         * install.texi: Document equivalence of linux and linux-gnu.
11043
11044 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11045
11046         * cse.c (insert_regs): Also in REG case: When finding an invalid
11047         value, and we make a new quantity, make sure that it won't be
11048         mistaken by for a valid one by mention_regs.
11049
11050 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
11051
11052         * h8300.md: Remove obsolete peepholes.
11053
11054 2000-08-13  Kazu Hirata  <kazu@hxi.com>
11055
11056         * invoke.texi (H8/300 Options): Fix typos.
11057         * config/h8300.c: Fix formatting.
11058         * config/h8300.h: Fix comment typos.
11059         (OVERRIDE_OPTIONS): Fix formatting.
11060
11061         * function.c: Fix formatting.
11062
11063         * cse.c: Fix formatting.
11064
11065 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
11066
11067         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
11068         (attempt_auto_inc): Suppress parentheses warning.
11069         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
11070         * loop.c (load_mems): Remove `u' suffix in two places.
11071         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
11072         hex constants.
11073         * config/rs6000/rs6000.h: Likewise.
11074         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
11075         __eabi dummy routine.
11076         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
11077         variable `buf_ptr'.
11078
11079         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
11080         not put stuff in .sdata unnecessarily.
11081         (rs6000_unique_section): New function.
11082         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
11083         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
11084
11085         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
11086         arrays in C99.  Don't try to look at DECL_REGISTER of a
11087         COMPONENT_REF.  Don't complain twice about the same error.
11088
11089         * fixinc/inclhack.def (aix_pthread): New fix.
11090         (aix_sysmachine): New fix.
11091         * fixinc/fixincl.x: Regenerate.
11092
11093         * expr.c (expand_expr): Call convert_modes when turning a large
11094         multiply into a small one.
11095
11096 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
11097
11098         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
11099         the tree structure an exponent rather than an explicit alignment
11100         so it doesn't overflow.
11101         (SET_DECL_OFFSET_ALIGN): New macro.
11102         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
11103         rather than DECL_OFFSET_ALIGN.
11104         (place_field): Likewise.
11105         * expmed.c (store_bit_field): Abort on align==0 to avoid
11106         antisocial machine behaviour.
11107
11108 2000-08-12  Richard Henderson  <rth@cygnus.com>
11109
11110         * sibcall.c (uses_addressof): Accept both addressof and
11111         current_function_internal_arg_pointer inside a mem.
11112         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
11113         if current_function_uses_addressof.
11114         * stmt.c (expand_return): Kill tail recursion and HAVE_return
11115         optimizations.
11116
11117 2000-08-11  Richard Henderson  <rth@cygnus.com>
11118
11119         * config/ia64/ia64.md (addsi3): Remove expander.
11120         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
11121         (*addsi3_shladd): New.
11122
11123 2000-08-11  Richard Henderson  <rth@cygnus.com>
11124
11125         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
11126         (do_restore): Likewise.
11127         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
11128         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
11129         (rtx_needs_barrier): Track actual bit manipulation for
11130         ar.unat moves, gr_spill, and gr_restore.
11131         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
11132         (process_set): Don't handle varargs spills.
11133         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
11134         .mem.offset here instead of in process_set.
11135         (gr_restore): Likewise.
11136
11137 2000-08-11  Richard Henderson  <rth@cygnus.com>
11138
11139         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
11140
11141 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
11142
11143         * gcc.texi (The Configuration File): Document
11144         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
11145         UPDATE_PATH_HOST_CANONICALIZATION.
11146
11147 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11148
11149         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
11150         unprototyped function pointer casts on integer constants.
11151
11152 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
11153
11154         * fixproto: Recognize DOS paths with drive letters as absolute paths.
11155
11156 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11157
11158         * extend.texi (Volatiles): Fix typos.
11159
11160 2000-08-11  Kazu Hirata  <kazu@hxi.com>
11161
11162         * flow.c: Fix formatting.
11163
11164 2000-08-11  Richard Henderson  <rth@cygnus.com>
11165
11166         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
11167         pattern, always allocate a tertiary scratch register.
11168
11169         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
11170         (reload_inhi): Likewise.
11171
11172 2000-08-11  Richard Henderson  <rth@cygnus.com>
11173
11174         * function.c (put_reg_into_stack): Allow type to be NULL.
11175         (schedule_fixup_var_refs): Likewise.
11176         (gen_mem_addressof): Allow decl to be NULL.
11177         (put_addressof_into_stack): Likewise.
11178
11179         * flow.c (merge_blocks_nomove): Be more careful about
11180         locating the beginning of block A.
11181
11182         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
11183
11184 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11185
11186         * configure.in:
11187         * configure:
11188         * gthr-posix.h:
11189         * config.in: Reverted the check for <sched.h>.
11190
11191 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
11192
11193         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
11194         macros define the name of CTOR and DTOR sections.
11195         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
11196         DTOR_LIST_END): Change to use attributes to specify
11197         sections.
11198         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
11199         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
11200         DTOR_LIST_END): Same as in mips/elf.h.
11201
11202 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
11203
11204         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
11205         disabling just crt0.o.
11206
11207 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
11208
11209         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
11210         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
11211         (EXTRA_SPECS): Add them.
11212         * arm/lib1funcs.asm: Support builds for interworking.
11213         Use macros to eliminate duplicated pieces of code.
11214
11215 2000-08-10  Kazu Hirata  <kazu@hxi.com>
11216
11217         * h8300.c (expand_a_rotate): New.
11218         (emit_a_rotate): Likewise.
11219         (h8300_adjust_insn_length): Add support for the rotate insns.
11220         * h8300.md (rotlqi3): New.
11221         (*rotlqi3_1): Likewise.
11222         (rotlhi3): Likewise.
11223         (*rotlhi3_1): Likewise.
11224         (rotlhi3): Likewise.
11225         (*rotlhi3_1): Likewise.
11226         * h8300-proto.h: Add prototypes for expand_a_rotate and
11227         emit_a_rotate.
11228
11229         * h8300.c: Fix comment typos.
11230         (dosize): Declare the variable amount as unsigned.
11231         (get_shift_alg): Fix a comparison between signed and unsigned.
11232         (emit_a_shift): Likewise.
11233         (h8300_adjust_insn_length): Simplify the code.
11234
11235         * c-decl.c: Fix formatting.
11236
11237 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11238
11239         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
11240         warning about non-traditional numeric constant suffixes.
11241
11242         * cppexp.c (parse_number): Likewise.
11243
11244         * invoke.texi: (-Wtraditional): Document new behavior.
11245
11246 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11247
11248         * gthr-posix.h: Include auto-host.h. Conditionally include
11249         <sched.h>.
11250         * configure.in: Check for the <sched.h> header file.
11251         * config.in: Added define for HAVE_SCHED_H.
11252
11253 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11254
11255         * c-typeck.c (process_init_element): For -Wtraditional, warn about
11256         initialization of unions.
11257
11258         * invoke.texi (-Wtraditional): Document new behavior.
11259
11260 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
11261
11262         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
11263         instead of extra_c_flags.
11264         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
11265         * configure: Regenerate.
11266         * config.in: Regenerate.
11267
11268         * cpperror.c (cpp_type2name): New function.
11269         * cpplex.c (lex_line): If we issued an error for an invalid
11270         preprocessing directive, discard that logical line.
11271         * cpplib.c (do_line): Call a hook function if the current file
11272         is renamed by #line.
11273         (do_ident): Pass the contents of the string, not the entire
11274         token, to the callback function.
11275         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
11276         (cb.rename_file): New hook function.
11277         (cb.ident): Adjust prototype.
11278         (cpp_type2name): Prototype.
11279         * cppmacro.c (dump_macro_args): Correct precedence lossage.
11280
11281         * cppmain.c (cb_ident): Update for changed interface.
11282         (cb_rename_file): New function.
11283         (main): Set rename callback.
11284
11285 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
11286
11287         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
11288         multi-word registers.
11289
11290 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11291
11292         * c-common.c (combine_strings, check_format_info): Refer to ISO C
11293         or ISO C89 instead of ANSI C.
11294         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
11295         build_enumerator, do_case): Likewise.
11296         * c-lex.c (parse_float, yylex): Likewise.
11297         * c-parse.in: Likewise.
11298         * c-typeck.c (common_type, build_array_ref, build_binary_op,
11299         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
11300         build_c_cast, convert_for_assignment, set_init_index,
11301         set_init_label, c_expand_start_case): Likewise.
11302         * toplev.c (documented_lang_options, display_help): Likewise.
11303
11304 2000-08-08  Kazu Hirata  <kazu@hxi.com>
11305
11306         * h8300.c: Fix formatting.
11307         * h8300.h: Likewise.
11308         * h8300.md: Likewise.
11309         (movsi_h8300hs): Fix formatting of the resulting assembly code.
11310
11311         * reload1.c: Fix formatting.
11312
11313 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
11314
11315         * alpha/alpha.c (alpha_emit_xfloating_libcall):
11316         Use GEN_CALL_VALUE define.
11317         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
11318         * clipper/clipper.md (untyped_call): Likewise.
11319         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
11320         * fx80/fx80.md (untyped_call): Likewise.
11321         * mips/mips.md (untyped_call): Likewise.
11322         * ns32k/ns32k.md (untyped_call): Likewise.
11323         * pa/pa.md (untyped_call): Likewise.
11324         * romp/romp.md (untyped_call): Likewise.
11325         * sparc/sparc.md (untyped_call): Likewise.
11326
11327 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
11328
11329         * config/i860/i860.c (singlemove_string): Do not generate assembler
11330         pseudo instructions that must be expanded (that is, with signed
11331         constants larger than 16 bits).
11332
11333 2000-08-08  Richard Henderson  <rth@cygnus.com>
11334
11335         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
11336         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
11337         (init_propagate_block_info): Don't kill memory stores at -O0.
11338         (mark_set_1, mark_used_regs): Likewise.
11339
11340 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
11341
11342         * rs6000.c (optimization_options): Decorate 'level' as
11343         ATTRIBUTE_UNUSED.
11344         (mask64_operand): Remove sign-extend thinko.
11345         (rldic_operand): New function.
11346         (load_multiple_operation): regno's are unsigned ints.
11347         (store_multiple_operation): Likewise.
11348         (lmw_operation): Likewise.
11349         (stmw_operation): Likewise.
11350         (includes_lshift_p): shift_mask is unsigned int.
11351         (includes_lshift64_p): New function.
11352         (addrs_ok_for_quad_peep): unsigned int reg1.
11353         (print_operand): Consistently add "else" after
11354         output_operand_lossage().
11355         (print_operand, case 'b'): Fold in case 'W'.
11356         (print_operand, case 'W'): Print rldic MB value.
11357         (output_epilogue): Update Objective-C language string.
11358         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
11359         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
11360         * rs6000.md (ashldi3): Add rldic instruction.
11361         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
11362         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
11363         modifier.
11364
11365 2000-08-08  Richard Henderson  <rth@cygnus.com>
11366
11367         * config/ia64/ia64-protos.h: Remove duplicates.  Update
11368         for massive code rearrangements.
11369         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
11370         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
11371         (ia64_local_regs, ia64_need_regstk): Remove.
11372         (ar_ccv_reg_operand): New.
11373         (ia64_gp_save_reg): New.
11374         (struct ia64_frame_info): Combine most of the size elements;
11375         add new gr save elements.
11376         (find_gr_spill): New.
11377         (next_scratch_gr_reg): New.
11378         (mark_reg_gr_used_mask): New.
11379         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
11380         to GR backing store regs when possible.
11381         (ia64_initial_elimination_offset): New.
11382         (ia64_rap_fp_offset): Remove.
11383         (save_restore_insns): Remove.
11384         (setup_spill_pointers): New.
11385         (finish_spill_pointers): New.
11386         (spill_restore_mem): New.
11387         (do_spill, do_restore): New.
11388         (ia64_expand_prologue): Rewrite to use them.
11389         (ia64_expand_epilogue): Likewise.
11390         (ia64_direct_return): Update for current_frame_info changes.
11391         (ia64_function_prologue): Simplify .prologue emission.  Emit
11392         .spill when needed.
11393         (ia64_setup_incoming_varargs): Don't ever emit rtl.
11394         (ia64_dbx_register_number): New.
11395         (ia64_initialize_trampoline): New.
11396         (ia64_secondary_reload_class): Request GR_REGS for integer
11397         arithmetic destined for FR_REGS.
11398         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
11399         (ia64_mark_machine_status): Mark ia64_gp_save.
11400         (rws_access_regno): Rename from rws_access_reg; don't treat
11401         predicates specially.
11402         (rws_access_reg): New.  Update all callers.
11403         (rtx_needs_barrier): Remove dead unspecs.
11404         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
11405         (ia64_encode_section_info): Silence signed/unsigned warnings.
11406         (spill_offset, sp_offset, spill_offset_emitted): Remove.
11407         (tmp_reg, tmp_saved): Remove.
11408         (process_set): Rewrite to expect complicated bits via
11409         REG_FRAME_RELATED_EXPR.
11410         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
11411         in the use of ar.ccv; never set RTX_UNCHANGING_P.
11412         (ia64_expand_op_and_fetch): Likewise.
11413         (ia64_expand_compare_and_swap): Likewise.
11414         (ia64_expand_builtin): Likewise.
11415         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
11416         (FIRST_PSEUDO_REGISTER): Update.
11417         (AR_M_REGNO_P): Update.
11418         (FIXED_REGS): Don't mark three local registers as used.
11419         (EXTRA_CC_MODES): New.
11420         (SELECT_CC_MODE): New.
11421         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
11422         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
11423         (FRAME_GROWS_DOWNWARD): Unset.
11424         (STARTING_FRAME_OFFSET): Zero.
11425         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
11426         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
11427         (HARD_FRAME_POINTER_REGNUM): New.
11428         (CAN_DEBUG_WITHOUT_FP): Define.
11429         (TRAMPOLINE_TEMPLATE): Remove.
11430         (TRAMPOLINE_SIZE): Lower to 32.
11431         (TRAMPOLINE_ALIGNMENT): Lower to 64.
11432         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
11433         (PREDICATE_CODES): Update.
11434         (struct machine_function): Add ia64_gp_save.
11435         * config/ia64/ia64.md: Purge unused unspecs.
11436         (movsi patterns): Allow moves to/from AR_M_REGS.
11437         (movdi patterns): Allow moves to/from p0.
11438         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
11439         (gr_spill, gr_restore): Indicate ar.unat read/written.
11440         (nonlocal_goto): Don't pass old frame_pointer.
11441         (nonlocal_goto_receiver): Remove.
11442         (exception_receiver): New.
11443         (builtin_setjmp_setup): New.
11444         (builtin_setjmp_receiver): New.
11445         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
11446         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
11447         (__ia64_restore_stack_nonlocal): Likewise.
11448         (__ia64_trampoline): New.
11449         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
11450         function.
11451         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
11452
11453 2000-08-08  Richard Henderson  <rth@cygnus.com>
11454
11455         * frame.h (ia64_frame_state): Add my_psp.
11456         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
11457         (__throw): Pass it in.  Don't clobber r7.
11458         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
11459         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
11460         and nothing to do with sp.
11461         (normalize_reg_loc): Use frame->my_psp.
11462         (frame_translate): Handle frame-pointer-less functions.  Set
11463         spill_base correctly, in absence of being told.
11464         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
11465         (__ia64_backtrace_helper): New sp argument.  Use
11466         builtin_return_address instead of label addresses.
11467         (print_record) [mem_stack_v]: No size member.
11468
11469 2000-08-08  Richard Henderson  <rth@cygnus.com>
11470
11471         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
11472
11473 2000-08-08  Richard Henderson  <rth@cygnus.com>
11474
11475         * tm.texi (LOCAL_REGNO): Document.
11476         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
11477         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
11478         * reload1.c (reload): Likewise when considering nonlocal labels.
11479
11480         * config/ia64/ia64.h (LOCAL_REGNO): New.
11481         * config/sparc/sparc.h (LOCAL_REGNO): New.
11482
11483 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11484
11485         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
11486
11487 2000-08-07  Nick Clifton  <nickc@redhat.com>
11488
11489         * config/mips/mips.c: Fix compile time warning messages.
11490         * config/mips/mips-protos.h: Add prototype for equality_op.
11491
11492         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
11493
11494 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
11495
11496         * mn10300.md: Use nonimmediate_operand instead of general_operand
11497         on output operands.
11498
11499         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
11500
11501 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
11502
11503         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
11504         * sh.c (expand_block_move): Break long lines.
11505         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
11506         * sh.md (mulsi3): Likewise.
11507         (movdi): Adjust spacing.
11508
11509 2000-08-07  Richard Henderson  <rth@cygnus.com>
11510
11511         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
11512         * expr.c (emit_group_store): Don't set it.
11513
11514 2000-08-07  Kazu Hirata  <kazu@hxi.com>
11515
11516         * invoke.texi (Options for Debugging Your Program or GCC): Remove
11517         duplicate entries for 'w' and 'z'.
11518
11519         * flow.c: Fix a comment typo.
11520
11521 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11522
11523         * c-parse.in: Changed the language string for Objective-C to "GNU
11524         Objective-C".
11525
11526 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11527
11528         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
11529         to improve the Posix thread support for Objective-C.
11530
11531 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
11532
11533         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
11534         CTI_UNSIGNED_PTRDIFF_TYPE.
11535         (signed_size_type_node): Define.
11536         (unsigned_ptrdiff_type_node): Define.
11537         * c-decl.c (init_decl_processing): Create the
11538         signed_size_type_node and unsigned_ptrdiff_type_node types.
11539         * c-common.c (T_SC): Define.
11540         (T_SST): Define.
11541         (T_UPD): Define.
11542         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
11543         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
11544         %s and %p.
11545         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
11546         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
11547         flags for %c, %s and %[.
11548         (check_format_info): Only allow leniency for signedness of targets
11549         of character pointers (when pedantic) for formats flagged with
11550         "c", so for strings but not for %hh formats.  When pedantic, don't
11551         allow character pointers to substitute for void pointers if a
11552         second level of indirection is present.
11553
11554 2000-08-06  Kazu Hirata  <kazu@hxi.com>
11555
11556         * invoke.texi (Options for Debugging Your Program or GCC): Update
11557         the names of dump files.
11558
11559         * h8300.c (dosize): Rearrange code for conciseness.
11560         (split_adds_subs): Likewise.
11561
11562         * loop.c: Fix formatting.
11563
11564         * dwarf2out.c: Fix formatting.
11565
11566         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
11567
11568         * expr.c: Fix formatting.
11569
11570 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11571
11572         * rs6000.c (rs6000_maybe_dead): Prototype.
11573
11574 2000-08-06  Richard Henderson  <rth@cygnus.com>
11575
11576         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
11577         HAVE_nonlocal_goto as well.
11578         * config/i960/i960.md (nonlocal_goto): Don't do it here.
11579         * config/pj/pj.md (nonlocal_goto): Likewise.
11580
11581 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
11582
11583         * loop.c (try_swap_copy_prop): New function.
11584         (load_mems): Rename copies to load_copies and add new regset
11585         store_copies.  Check for sets of shadow registers and mark
11586         in store_copies.   Call try_swap_copy_prop for registers
11587         marked in store_copies.
11588
11589 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11590
11591         * objc/objc-act.c: New command line option -fconstant-string-class
11592         to allow specifying a user defined constant string class,
11593         different from NXConstantString.
11594
11595         * toplev.c: Moved the Objective-C specific options to
11596         objc/lang-options.h.
11597
11598         * objc/lang-options.h: Moved the Objective-C specific options from
11599         toplev.c. Added -fconstant-string-class.
11600
11601 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
11602
11603         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
11604         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
11605         __CTOR_LIST__ from func_ptr array to just func_ptr, to
11606         avoid extra alignment imposed on arrays.
11607         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
11608         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
11609
11610         * mips.h: Clean up comments and spacing near MASKs.
11611         (TARGET_UNIX_ASM): Delete.
11612         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
11613         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
11614         values contiguous.
11615
11616 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
11617
11618         * c-common.c (print_char_table): Add entries for the X/Open '
11619         format flag (print decimals with locale's thousands grouping
11620         character).  Make %C expect wint_t.
11621         (check_format_info): If pedantic, warn when the %n$ operand
11622         number form is used.  Allow for the ' flag; warn about it if
11623         pedantic.
11624
11625 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
11626
11627         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
11628         type is a float mode, cfun->decl's return type is not, and
11629         TARGET_FLOAT_RETURNS_IN_80387.
11630
11631 2000-08-04  Andreas Schwab  <schwab@suse.de>
11632
11633         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
11634         token list, which are always `#' and `pragma'.
11635
11636 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
11637
11638         * tree.c (tree_expr_nonnegative_p): Move to...
11639         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
11640         (rtl_expr_nonnegative_p): New.
11641         * tree.h: Add prototype for rtl_expr_nonnegative_p.
11642
11643         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
11644         CONST_DOUBLE_CHAIN: Move to...
11645         * rtl.h: ...here.  Use XCINT/XCEXP.
11646
11647         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
11648         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
11649         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
11650         to VOL_FILES.
11651
11652         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
11653
11654 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11655
11656         * config/c4x/c4x.md (return_indirect_internal): New.
11657         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
11658
11659 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11660
11661         * c-common.c (time_char_table): Mark up formats added in C99 and
11662         make other corrections.  %D and %g were added in C99.  %Og is an
11663         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
11664         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
11665         C99 rather than GNU extensions, but %OG and %Oz are extensions.
11666         %h was added in C99.  %C was added in C99.  %OY and %OC are
11667         extensions.  Add the C99 format %F.
11668         (check_format_info): If pedantic and not in C99 mode, warn for C99
11669         formats, %E and %O.
11670
11671 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11672
11673         * function.c (schedule_fixup_var_refs): New function, broken out
11674         of put_reg_into_stack.
11675         (put_reg_into_stack): Use it.
11676         (put_var_into_stack): In CONCAT case, fixup up references for
11677         components only after fixing up references to the whole concat.
11678
11679 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
11680
11681         * alias.c (mark_constant_function): Use INSN_P.
11682         (init_alias_analysis): Likewise.
11683         * combine.c (combine_instructions): Use INSN_P.
11684         (can_combine_p): Likewise.
11685         (try_combine): Likewise.
11686         (distribute_notes): Likewise.
11687         (distribute_links): Likewise.
11688         * cse.c (cse_around_loop): Use INSN_P.
11689         (invalidate_skipped_block): Likewise.
11690         (cse_set_around_loop): Likewise.
11691         (cse_end_of_basic_block): Likewise.
11692         (delete_trivially_dead_insns): Likewise.
11693         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
11694         (unshare_all_rtl_1): Likewise.
11695         (next_cc0_user): Likewise.
11696         (try_split make_insn_raw): Likewise.
11697         (remove_unnecessary_notes): Likewise.
11698         * final.c (shorten_branches): Use INSN_P.
11699         (leaf_renumber_regs): Likewise.
11700         (leaf_renumber_regs_insn): Likewise.
11701         * flow.c (find_label_refs): Use INSN_P.
11702         (verify_wide_reg): Likewise.
11703         (notice_stack_pointer_modification): Likewise.
11704         (count_or_remove_death_notes): Likewise.
11705         (verify_flow_info): Likewise.
11706         (clear_log_links): Likewise.
11707         * function.c (fixup_var_refs_insns): Use INSN_P.
11708         (compute_insns_for_mem): Likewise.
11709         * gcse.c (alloc_gcse_mem): Use INSN_P.
11710         (compute_sets): Likewise.
11711         (compute_hash_table): Likewise.
11712         (classic_gcse): Likewise.
11713         (cprop): Likewise.
11714         (insert_insn_end_bb): Likewise.
11715         (delete_null_pointer_checks_1): Likewise.
11716         * global.c (expand_preferences): Use INSN_P.
11717         (build_insn_chain): Likewise.
11718         * graph.c (node_data): Use INSN_P.
11719         * haifa-sched.c (priority): Use INSN_P.
11720         (rm_line_notes): Likewise.
11721         (rm_other_notes): Likewise.
11722         (find_insn_reg_weight): Likewise.
11723         (init_target_units): Likewise.
11724         (schedule_block): Likewise.
11725         (compute_block_forward_dependences): Likewise.
11726         (debug_dependencies): Likewise.
11727         (set_priorities): Likewise.
11728         * integrate.c (function_cannot_inline_p): Use INSN_P.
11729         (save_parm_insns): Likewise.
11730         (copy_insn_list): Likewise.
11731         * jump.c (mark_all_labels): Use INSN_P.
11732         (never_reached_warning): Likewise.
11733         * lcm.c (optimize_mode_switching): Use INSN_P.
11734         * local-alloc.c (validate_equiv_mem): Use INSN_P.
11735         (memref_used_between_p): Likewise.
11736         (update_equiv_regs): Likewise.
11737         (block_alloc): Likewise.
11738         (no_conflict_p): Likewise.
11739         * loop.c (scan_loop): Use INSN_P.
11740         (find_and_verify_loops): Likewise.
11741         (count_loop_regs_set): Likewise.
11742         (loop_reg_used_before_p): Likewise.
11743         (strength_reduce): Likewise.
11744         (recombine_givs): Likewise.
11745         (check_dbra_loop): Likewise.
11746         (load_mems): Likewise.
11747         (try_copy_prop): Likewise.
11748         * print-rtl.c (print_rtx): Use INSN_P.
11749         * recog.c (find_single_use): Use INSN_P.
11750         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
11751         (next_flags_user): Likewise.
11752         (swap_rtx_condition): Likewise.
11753         * regmove.c (mark_flags_life_zones): Use INSN_P.
11754         (optimize_reg_copy_1): Likewise.
11755         (optimize_reg_copy_2): Likewise.
11756         (optimize_reg_copy_3): Likewise.
11757         (reg_is_remote_constant_p): Likewise.
11758         (fixup_match_2): Likewise.
11759         (regmove_optimize): Likewise.
11760         (fixup_match_1): Likewise.
11761         * regrename.c (build_def_use): Use INSN_P.
11762         (replace_reg_in_block): Likewise.
11763         (consider_use): Likewise.
11764         * reload.c (find_equiv_reg): Use INSN_P.
11765         * reload1.c (reload): Use INSN_P.
11766         (maybe_fix_stack_asms): Likewise.
11767         (calculate_needs_all_insns): Likewise.
11768         (reload_as_needed): Likewise.
11769         (emit_output_reload_insns): Likewise.
11770         (delete_address_reloads_1): Likewise.
11771         (reload_cse_regs_1): Likewise.
11772         (reload_combine): Likewise.
11773         (reload_cse_move2add): Likewise.
11774         * reorg.c (redundant_insn): Use INSN_P.
11775         (dbr_schedule): Likewise.
11776         * resource.c (find_dead_or_set_registers): Use INSN_P.
11777         (mark_target_live_regs): Likewise.
11778         * rtlanal.c (reg_used_between_p): Use INSN_P.
11779         (reg_referenced_between_p): Likewise.
11780         (reg_set_between_p): Likewise.
11781         (reg_set_p): Likewise.
11782         (single_set): Likewise.
11783         (multiple_sets): Likewise.
11784         (find_last_value): Likewise.
11785         (reg_set_last): Likewise.
11786         (find_reg_note): Likewise.
11787         (find_regno_note): Likewise.
11788         * sibcall.c (sequence_uses_addressof): Use INSN_P.
11789         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
11790         * ssa.c (find_evaluations): Use INSN_P.
11791         (rename_block): Likewise.
11792         (rename_equivalent_regs): Likewise.
11793         * unroll.c (loop_find_equiv_value): Use INSN_P.
11794         (set_dominates_use): Likewise.
11795         * varasm.c (mark_constant_pool): Use INSN_P.
11796         (mark_constants): Likewise.
11797         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
11798         (alphaev4_next_group): Likewise.
11799         (alphaev5_next_group): Likewise.
11800         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
11801         (c4x_rptb_rpts_p): Likewise.
11802         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
11803         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
11804         (rs6000_adjust_priority): Likewise.
11805         * config/sh/sh.c (sh_loop_align): Use INSN_P.
11806         (machine_dependent_reorg): Likewise.
11807         (split_branches): Likewise.
11808         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
11809
11810 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
11811
11812         * combine.c (recog_for_combine): Remove the old notes
11813         prior to attempting to recognize the new pattern.
11814         (distribute_notes): Ignore REG_NONNEG notes.
11815
11816 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
11817
11818         * varasm.c (output_constructor): Add .align 0 for packed vars.
11819
11820 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11821
11822         * configure.in: Use default thread_file even when enable_threads is
11823         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
11824         * configure: Rebuilt.
11825
11826         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
11827
11828 2000-08-04  Donn Terry (donnte@microsoft.com)
11829
11830         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
11831
11832 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
11833
11834         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
11835         Delete code that conditionally modifies 'version'.
11836         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
11837         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
11838         * gcc.c (main): Use it.
11839         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
11840         * prefix.c (update_path): Use it.
11841         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
11842         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
11843         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
11844         code.
11845         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
11846         (SUBTARGET_SWITCHES): Adjust.
11847         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
11848         defining.
11849         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
11850
11851 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11852
11853         * c-common.h (flag_isoc94): Declare.
11854         * c-decl.c (flag_isoc94): Define.
11855         (c_decode_option): Set flag_isoc94 as appropriate.
11856         * c-common.c (T_PD, T_IM, T_UIM): Define.
11857         (format_char_info): Add tlen and jlen.
11858         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
11859         %F.  Allow %lf.
11860         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
11861         %l[.
11862         (time_char_table): Add NULL entries for %t and %j.
11863         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
11864         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
11865         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
11866         precision.  Allow precision argument to be unsigned int.  If
11867         pedantic, warn for %p passed an argument not a pointer to possibly
11868         qualified void or a possibly qualified character type, and for
11869         pointer targets of the wrong sign, except for character pointers.
11870
11871 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11872
11873         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
11874         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
11875         (wint_type_node): Define.
11876         * c-decl.c (WINT_TYPE): Define.
11877         (init_decl_processing): Create the wint_type_node type.
11878         * c-common.c (T_WI): Define.
11879         (print_char_table): Use T_WI for %lc format.
11880
11881 2000-08-04  Bruce Korb  <bkorb@gnu.org>
11882
11883         * fixinc/:  Verified that the MSDOS patch does not break
11884         the UNIX functionality and applied the next three patches
11885         from July:
11886
11887 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
11888
11889         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
11890         output file with the temporary one by appending ".X" to generate
11891         the temporary fuile's name.  If the output file already has an
11892         extension, replace it with ".X".
11893
11894         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
11895         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
11896         reallocate the command buffer while copying the command-line
11897         argument.  Redirect the output directly to the temporary file,
11898         instead of going through another temporary file.
11899         (process): Close the temporary file before unlinking it.
11900         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
11901         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
11902         (run_compiles): Pass p_fixd argument to machine_matches, as it
11903         expects.
11904
11905         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
11906         environment, assume there are no symlinks in the include
11907         directory.  When cleaning up the DONE files, look for them
11908         case-insensitively.  Don't try to remove symlinks if they aren't
11909         there.
11910
11911         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
11912         all callers changed.  Declare pz "const char *", to avoid compiler
11913         warnings.
11914
11915         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
11916         Change prototype of make_raw_shell_str.
11917
11918 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
11919
11920         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
11921         (initialize) [__MSDOS__]: Use tempnam.
11922         (initialize): Don't use SIGPIPE if it is not defined.
11923
11924         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
11925         return stdout.
11926
11927 2000-07-25  Bruce Korb  <bkorb@gnu.org>
11928
11929         * fixinc/fix*.[ch]: substantially reworked to make it possible
11930         to run this program without using fork(2) or pipe(2) (i.e. in
11931         a DOS environment).
11932
11933 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11934
11935         * cppdefault.h (WINT_TYPE): Define.
11936         * cppinit.c (builtin_array): Define __WINT_TYPE__.
11937         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
11938         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
11939
11940 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
11941
11942         * (mips_legitimate_address_p): Don't allow register+offset
11943         if the offset is large and negative, and we are compiling
11944         for 64 bit registers.
11945
11946 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11947
11948         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
11949         insn_code_number + 1.
11950
11951 2000-08-04  Kazu Hirata  <kazu@hxi.com>
11952
11953         * h8300.c (function_prologue): Rearrange code for conciseness.
11954         (function_epilogue): Likewise.
11955         * h8300.h (OK_FOR_U): Fix formatting.
11956
11957         * cse.c: Fix a comment typo. Fix formatting.
11958
11959 2000-08-03  Richard Henderson  <rth@cygnus.com>
11960
11961         * config/i386/i386.md (return_indirect_internal): New.
11962         * config/i386/i386.c (ix86_expand_epilogue): Use it.
11963
11964 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
11965
11966         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
11967         before the name.
11968         (lex_line): Glue @ onto the beginning of identifiers and
11969         string constants, in Objective-C mode.
11970         (output_token, spell_token): Handle CPP_OSTRING.
11971         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
11972         beginning of a NAME or a STRING, in objc mode.
11973
11974         * cpplib.c (get_define_node): Do not permit identifiers that
11975         begin with @ to be #defined.
11976         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
11977         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
11978
11979         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
11980         * c-tree.h (build_objc_string): Delete prototype.
11981         * objc/objc-tree.def: Delete OBJC_STRING_CST.
11982         * c-lex.c (yylex): Use build_string for all three kinds of strings.
11983
11984         * c-parse.in, objc/objc-act.c: Update commentary.
11985
11986 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
11987
11988         * extend.texi: Fix typo in last change.
11989
11990         * extend.texi: Add commentary on statement-expressions and their
11991         interactions with C++.
11992
11993 2000-08-03  Nick Clifton  <nickc@cygnus.com>
11994
11995         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
11996         * dwarf.h (LANG_JAVA): Change value to 0x000b.
11997
11998 2000-08-03  Anthony Green  <green@cygnus.com>
11999
12000         * dwarf2out.c (gen_compile_unit_die): Add java language support.
12001         (add_bound_info): Check for java language.
12002         (is_java): New function.
12003         * dwarfout.c (output_compile_unit_die): Ditto.
12004         * dwarf.h (dwarf_source_language): Add java source language type.
12005         * dwarf2.h (dwarf_source_language): Ditto.
12006
12007 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12008
12009         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
12010         operands.
12011
12012         * i386.c (ix86_expand_branch): Mode of comparison in
12013         IF_THEN_ELSE is VOIDmode.
12014
12015 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
12016
12017         * gengenrtl.c, rtl.c: Avoid #elif.
12018
12019 2000-08-03  Michael Poole  <poole@troilus.org>
12020
12021         * tm.texi (Register Classes): Clarify order of sub-initializers
12022         in REG_CLASS_CONTENTS.
12023
12024 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12025
12026         From SAITOH Masanobu:
12027         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
12028
12029 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
12030
12031         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
12032         is not supported by tradcpp and isn't actually needed for cygwin.
12033
12034 2000-08-03  Kazu Hirata  <kazu@hxi.com>
12035
12036         * h8300.c: Fix a comment typo.
12037         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
12038
12039         * jump.c: Fix formatting.
12040
12041         * toplev.c: Fix formatting.
12042
12043 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
12044
12045         * flow.c (find_auto_inc): Verify that we've got a REG before
12046         peeking at its regno.  Fail, don't abort if we can't find
12047         the increment of the desired register.
12048
12049         * pa.md (shadd height reduction patterns/splitters): Remove.
12050
12051 2000-08-02  Jim Wilson  <wilson@cygnus.com>
12052
12053         * config/ia64/ia64-protos.h (flag_ssa): Declare.
12054         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
12055
12056 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
12057
12058         * dce.c: Remove all uses of assert.
12059         * dwarf2out.c: Likewise.
12060         * dwarfout.c: Likewise.
12061         * ssa.c: Likewise.
12062
12063 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12064
12065         * gcc.h (lang_specific_driver): Constify second argument.
12066         * gcc.c (translate_options, process_command, main): Likewise.
12067         Constify variables to match.  Cast second argument to
12068         pexecute.
12069
12070         * cppspec.c, gccspec.c: Adjust type of second argument to
12071         lang_specific_driver, and update code as necessary.
12072
12073 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
12074
12075         * loop.c (scan_loop): Ensure update_end label does not
12076         go away until reg_scan_update is run.
12077
12078 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12079
12080         * c-common.h: Prototype min_precision and c_build_qualified_type here...
12081         * c-tree.h: ... not here.
12082         * errors.h: Prototype fancy_abort.
12083
12084         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
12085         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
12086         * regrename.c (regrename_optimize): Make control flow explicit.
12087         (replace_reg_in_block): Initialize reg_use to 0.
12088
12089         * i386.c (legitimate_address_p): Rename error label to
12090         report_error to avoid namespace clash.
12091
12092 2000-08-02  Kazu Hirata  <kazu@hxi.com>
12093
12094         * fold-const.c: Fix formatting.
12095
12096 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12097
12098         * i386.c (legitimate_address_p): Accept other bases than
12099         pic_offset_table_rtx for GOTOFF constructs.
12100
12101 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12102
12103         * i386.md (shift to lea splitter): Use const_int_operand.
12104
12105 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12106
12107         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
12108         cppspec.c: Do not use 'legal' or 'illegal' in error messages
12109         and comments.
12110
12111         * cppmain.c (cb_define, cb_undef): Don't generate any output
12112         if not done_initializing.
12113         * cpplex.c (maybe_paste_with_next): When the token after a ##
12114         is an omitted rest argument, only delete the token before it
12115         if that token is a comma.  Do not warn about bogus token
12116         pastes for , ## rest_arg.
12117
12118         * cpp.texi: Update.
12119         * cpp.1: Regenerate.
12120
12121 2000-08-02  Fred Fish  <fnf@be.com>
12122
12123         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
12124         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
12125         and later.
12126
12127         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
12128         Be directories to search path.
12129
12130         Remove support for __declspec(dllimport) and __declspec(dllexport).
12131         This is leftover cruft from the earlier BeOS gcc port when BeOS
12132         used Microsoft's PE object file format.
12133         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
12134         * config/i386/t-beos (winnt.o): Remove Makefile frag.
12135         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
12136         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
12137         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12138         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
12139         (REDO_SECTION_INFO_P): Remove.
12140         (ASM_EXPORT_DECL): Remove.
12141         (ASM_DECLARE_FUNCTION_NAME): Remove.
12142         (ASM_DECLARE_OBJECT_NAME): Remove.
12143         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
12144         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
12145         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
12146         (STRIP_NAME_ENCODING): Remove.
12147
12148         Remove support for obsolete version of BeOS that is no longer
12149         supported by Be.
12150         * configure.in (i*86-*-beospe*): Remove.
12151         * config/i386/beos-pe.h: Remove.
12152
12153 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
12154             Mark Mitchell <mark@codesourcery.com>
12155
12156         * Makefile.in (OBJS): Added dce.o.
12157         (ssa.o): Updated target to include ssa.h.
12158         (flow.o): Likewise.
12159         (toplev.o): Likewise.
12160         (dce.o): Created target.
12161         * basic-block.h: Added comments.
12162         (INVALID_BLOCK): Added definition.
12163         (connect_infinite_loops_to_exit): Added declaration.
12164         Moved SSA declarations to ssa.h.
12165         * flow.c: Added inclusion of ssa.h.
12166         (struct depth_first_search_dsS, depth_first_search_ds):
12167         Added definitions.
12168         (compute_immediate_postdominators): Added definition.
12169         (connect_infinite_loops_to_exit): Likewise.
12170         (flow_dfs_compute_reverse_init): Likewise.
12171         (flow_dfs_compute_reverse_add_bb): Likewise.
12172         (flow_dfs_compute_reverse_execute): Likewise.
12173         (flow_dfs_compute_reverse_finish): Likewise.
12174         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
12175         (LABEL_P): Added definition.
12176         (JUMP_P): Likewise.
12177         (NOTE_P): Likewise.
12178         (BARRIER_P): Likewise.
12179         (JUMP_TABLE_DATA_P): Likewise.
12180         (INSN_DEAD_CODE_P): Likewise.
12181         * ssa.c: Replaced inclusions with ssa.h inclusion.
12182         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
12183         (rename_registers): Removed unnecessary variables.
12184         * ssa.h: Created by moving declarations from ssa.c and
12185         basic-block.h.
12186         * timevar.def: Defined TV_DEAD_CODE_ELIM.
12187         * toplev.c: Added ssa.h inclusion.
12188         (dump_file_index): Added DFI_dce.
12189         (dump_file): Added "dce" entry.
12190         Defined flag_ssa.
12191         (f_options): Added dce entry.
12192         * invoke.texi: Document -fdce.  Emphasize experimental status of
12193         -fssa.
12194         * dce.c: New file.
12195
12196 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
12197
12198         * cpperror.c (v_message): Split into _cpp_begin_message and
12199         v_message macro.  All callers updated.
12200         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
12201         checks here.
12202
12203         * cppfiles.c (cpp_syshdr_flags): New function.
12204         (read_include_file): Don't call cpp_output_tokens.  Call
12205         enter_file hook.
12206         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
12207         (cpp_reader_init): Don't initialize token_buffer.  Call
12208         _cpp_init_internal_pragmas.
12209         (cpp_cleanup): Don't clear token_buffer.
12210         (cpp_start_read): Don't worry about output from -D processing.
12211         Don't call cpp_output_tokens.
12212         (cpp_finish): Don't dump macros here.  Don't call
12213         cpp_output_tokens.
12214         * cppmacro.c (_cpp_dump_definition): Rename
12215         cpp_dump_definition.  Write directly to a FILE *.
12216         (dump_funlike_macro): Delete.
12217         (dump_macro_args): New.
12218
12219         * cpplex.c (TOKEN_LEN): Convert to inline function.
12220         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
12221         cpp_scan_line, _cpp_dump_list): Delete.
12222         (cpp_printf, cpp_output_list): New.
12223         (output_line_command): Don't worry about entering or leaving files.
12224         (cpp_scan_buffer): Just output each token as we hit it.
12225         (process_directive): Don't call cpp_output_tokens.
12226         (_cpp_glue_header_name): Don't use token_buffer.
12227         (output_token, dump_param_spelling): Write directly to a FILE *.
12228
12229         * cpplib.c (pass_thru_directive, dump_macro_name,
12230         pragma_dispatch, do_pragma_gcc): Delete.
12231         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
12232         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
12233         functions.
12234         (do_error, do_warning, pragma_dependency): Call
12235         _cpp_begin_message, then cpp_output_list.
12236         (cpp_register_pragma, cpp_register_pragma_space,
12237         _cpp_init_internal_pragmas): New.
12238         (do_pragma): Walk the pragmas table here.
12239         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
12240         do_pragma_dependency): Return void.
12241         (do_pragma_implementation): Moved to cppmain.c.
12242
12243         * cpplib.h: Update prototypes.
12244          (struct cpp_reader): Remove printer, token_buffer,
12245         token_buffer_size, and limit.  Add struct cb, and pragmas.
12246         (struct cpp_printer): Remove last_id and written.
12247         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
12248         CPP_ADJUST_WRITTEN): Delete.
12249         * cpphash.h: Update prototypes.
12250         (ufputs): New wrapper.
12251
12252         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
12253         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
12254         (main): Set up callbacks.  Register #pragma implementation.
12255         Dump macros from here.
12256
12257 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
12258
12259         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
12260         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
12261         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
12262         insns if they have a REG_MAYBE_DEAD note attached.
12263         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
12264         (rs6000_emit_load_toc_table): TOC loads may go dead.
12265
12266 2000-08-01  Jim Wilson  <wilson@cygnus.com>
12267
12268         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
12269         type exists before using it.  Use number of words as alignment
12270         otherwise.
12271         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
12272         ia64_va_arg): Propagate ia64_function_args changes here.
12273
12274 2000-08-01  Richard Henderson  <rth@cygnus.com>
12275
12276         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
12277         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
12278
12279 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
12280
12281         From Joern Rennecke:
12282         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
12283         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
12284         unless TARGET_SH3E is set.
12285         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
12286
12287         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
12288         (ashlsi3_std): New pattern.
12289         (ashlsi3 expander): Use it for TARGET_SH3.
12290         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
12291
12292 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12293
12294         * loop.c (canonicalize_condition):  Use destination, not source to
12295         determine SET's mode.
12296
12297 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
12298
12299         * flow.c (clear_log_links): Fix typo.
12300
12301 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
12302
12303         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
12304         on targets which need more than one insn for a compare/cbranch
12305         operation.
12306
12307 2000-07-31  Jim Wilson  <wilson@cygnus.com>
12308
12309         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
12310         when computing offset.
12311
12312 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
12313
12314         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
12315
12316 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
12317
12318         * flow.c (clear_log_links): Nuke global_live_at_start and
12319         global_live_at_end data, since if the log_links stuff is invalid
12320         so is global_live_at_*.
12321
12322 2000-07-31  Richard Henderson  <rth@cygnus.com>
12323
12324         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
12325
12326 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
12327
12328         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
12329         (_cpp_get_token): Don't macro expand a just pasted token if it
12330         was pasted at no_expand_level.
12331
12332 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12333
12334         * cppmacro.c (find_param, count_params, save_expansion):
12335         Permit 'defined' as a macro parameter name.
12336
12337 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12338
12339         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
12340         xcpp to cpp throughout.
12341         (native): Remove unnecessary dependency on cpp.
12342
12343         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
12344         tradcpp to tradcpp0.
12345         (.i spec): Add missing output-file spec to cc1 command line.
12346         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
12347
12348 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12349
12350         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
12351         (implicit_decl_warning): New function.
12352         (implicitly_declare): Use it.
12353         * c-typeck.c (build_external_ref): Use implicit_decl_warning
12354         to complain about implicit decls of builtins.
12355
12356         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
12357         based on pedantic && flag_isoc99, if not already set.
12358         * c-tree.h: Declare mesg_implicit_function_declaration.
12359         Prototype implicit_decl_warning.
12360
12361 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
12362
12363         * Makefile.in (ssa.o): Updated header files in dependences.
12364         * basic-block.h: Added compute_immediate_postdominators declaration.
12365         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
12366         definition.
12367         * flow.c (compute_immediate_dominators): Updated comment.
12368         (compute_immediate_postdominators): Added definition.
12369         * rtl.h (HARD_REGISTER_P): Added definition.
12370         * ssa.c: Include additional header files.
12371         (assert): Added definition.
12372         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
12373         include select hard registers.
12374         (ssa_rename_to_insert): Likewise.
12375         (ssa_rename_from_initialize): Likewise.
12376         (ssa_rename_from_lookup): Likewise.
12377         (original_register): Likewise.
12378         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
12379         include select hard reigsters.
12380         (ssa_rename_from_traverse): Likewise.
12381         (ssa_rename_from_free): Likewise.
12382         (ssa_rename_from_print): Likewise.
12383         (ssa_rename_from_print_1): Likewise.
12384         (ssa_rename_from_hash_function): Likewise.
12385         (ssa_rename_from_equal): Likewise.
12386         (ssa_rename_from_delete): Likewise.
12387         (simplify_to_immediate_dominators): Removed in favor of
12388         flow.c:compute_immediate_dominators.
12389         (find_evaluations_1): Modified to work with hard registers.
12390         (insert_phi_node): Likewise.
12391         (insert_phi_nodes): Likewise.
12392         (struct rename_set_data): Updated prev_reg comment.
12393         (create_delayed_rename): Modified to work with hard registers.
12394         (RENAME_NO_RTX): Updated comment.
12395         (apply_delayed_renames): Modified to work with hard registers.
12396         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
12397         (rename_block): Updated to use revised ssa_rename_to interface.
12398         (rename_registers): Updated to use revised ssa_rename_to and
12399         ssa_rename_from interface.
12400         (convert_to_ssa): Revised to use compute_immediate_dominators and
12401         deal with hard registers.
12402         (make_regs_equivalent_over_bad_edges): Modified to work with hard
12403         registers.  Added check for illegal unification of hard register.
12404         (make_equivalent_phi_alternatives_equivalent): Modified to work
12405         with hard registers.
12406         (compute_conservative_reg_partition): Likewise.
12407         (coalesce_if_unconflicting): Modified to work with hard registers
12408         and check for conflicting hard registers.
12409         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
12410         registers.
12411         (rename_equivalent_regs_in_insn): Modified to work with hard
12412         registers.
12413         (record_canonical_element_1): Added definition.
12414         (check_hard_regs_in_partition): Added definition.
12415         (convert_from_ssa): Added data structure deallocation and check
12416         for illegal hard register unification.
12417         (conflict_hard_regs_p): Added definition.
12418         * toplev.c (rest_of_compilation): Added comment.
12419
12420 2000-07-31  Anthony Green  <green@redhat.com>
12421
12422         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
12423
12424 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
12425
12426         * builtins.c (expand_builtin_apply): Don't defer pop during
12427         argument setup.
12428
12429 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12430
12431         * calls.c (combine_pending_stack_adjustment_and_call): Only use
12432         preferred_unit_stack_boundary when it is > 1.
12433
12434 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12435
12436         * c-common.c (init_function_format_info): Add C99 format functions
12437         in C99 mode.
12438
12439         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
12440         void' or 'register void' as being the special case of 'void' alone
12441         in a parameter list.
12442
12443         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
12444         discarding qualifiers into a plain warning.
12445
12446 2000-07-31  Kazu Hirata  <kazu@hxi.com>
12447
12448         * combine.c: Fix formatting.
12449
12450         * h8300.md: Fix formatting.
12451
12452         * local-alloc.c: Fix formatting.
12453
12454         * h8300.c (get_shift_alg): Remove the variable alg.
12455         (emit_a_shift): Rearrange code to improve readability.
12456
12457         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
12458
12459         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
12460         HImode on all architectures and a combination of HImode and SImode
12461         on H8/300H and H8/S.
12462
12463         * h8300.c (split_adds_subs): Rearrange code for conciseness.
12464
12465 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12466
12467         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
12468         in my last checkin.
12469
12470 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12471
12472         * recog.c (extract_insn): Set operand_mode according to
12473         operand if match_operand is VOIDmode.
12474
12475 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12476
12477         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
12478
12479 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
12480
12481         * c-parse.in (extdefs): Call ggc_collect between external
12482         definitions.
12483
12484 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
12485             Richard Henderson  <rth@cygnus.com>
12486
12487         * Makefile.in (OBJS): Add doloop.o.
12488         * doloop.c: New file.
12489
12490         * final.c (insn_current_reference_address): Return 0 before final.
12491         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
12492         * jump.c (any_uncondjump_p): Likewise.
12493         * loop.c (indirect_jump_in_function): Make static.
12494         (strength_reduce): Call doloop_optimize.
12495         (insert_bct, instrument_loop_bct): Remove.
12496         * loop.h (doloop_optimize): Prototype.
12497         * recog.c (split_all_insns): Split all INSN_P.
12498         * toplev.c (flag_branch_on_count_reg): Default on.
12499
12500         * config/c4x/c4x.c (c4x_optimization_options): Don't set
12501         flag_branch_on_count_reg.
12502         * config/i386/i386.c (override_options): Likewise.
12503         * config/rs6000/rs6000.c (optimization_options): Likewise.
12504
12505         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
12506         (doloop_end): New.
12507         (dbra_ge): Remove, as well as all it's splitters.
12508
12509         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
12510         (doloop_end): New.
12511
12512         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
12513         (ia64_register_move_cost): Declare.
12514         * config/ia64/ia64.c (ar_lc_reg_operand): New.
12515         (struct ia64_frame_info): Add ar_size.
12516         (ia64_compute_frame_size): Set it.
12517         (save_restore_insns): Save and restore ar.lc.
12518         (ia64_register_move_cost): New, moved from header file.  Handle
12519         application registers.
12520         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
12521         (emit_insn_group_barriers): Special case doloop_end_internal.
12522         (ia64_epilogue_uses): Mark ar.lc live at end.
12523         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
12524         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
12525         (FIRST_PSEUDO_REGISTER): Make room.
12526         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
12527         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
12528         (REG_ALLOC_ORDER): Update.
12529         (HARD_REGNO_MODE_OK): Update.
12530         (REGISTER_NAMES): Update.
12531         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
12532         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
12533         (REGNO_REG_CLASS): Update.
12534         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
12535         (REGISTER_MOVE_COST): Move out of line.
12536         (PREDICATE_CODES): Update.
12537         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
12538         (addsi3_plus1_alt, adddi3_plus1_alt): New.
12539         (shladd_elim splitter): Allow constants in the predicate.
12540         (doloop_end, doloop_end_internal): New.
12541
12542 2000-07-30  Richard Henderson  <rth@cygnus.com>
12543
12544         * genattrtab.c (struct insn_def): Add lineno member.
12545         (struct insn_ent): Likewise.
12546         (struct attr_desc): Likewise.
12547         (struct delay_desc): Likewise.
12548         (struct function_unit_op): Likewise.
12549         (struct function_unit): Likewise.
12550         (check_attr_value): Use message_with_line.
12551         (check_defs): Likewise.
12552         (expand_units): Likewise.
12553         (check_attr_test): Take a lineno argument.
12554         (gen_attr): Likewise.
12555         (gen_insn): Likewise.
12556         (gen_delay): Likewise.
12557         (gen_unit): Likewise.
12558         (main): Give it to them.
12559         (convert_set_attr_alternative): Take an insn_def argument
12560         instead of num_alt and insn_index.
12561         (convert_set_attr): Likewise.
12562         (write_test_expr): Protect INSN_ADDRESSES load
12563         with INSN_ADDRESSES_SET_P.
12564
12565 2000-07-30  Richard Henderson  <rth@cygnus.com>
12566
12567         * flow.c (init_propagate_block_info): Use pc_set.
12568
12569 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12570
12571         * i386.md (*lea_general_[123]) New insns and splits.
12572         (addsi3 to lea splitter): Handle other modes too.
12573         (shlsi3 to lea splitter): Likewise.
12574         (addhi_1_lea, shlhi_1_lea): New patterns.
12575         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
12576
12577 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12578
12579         * recog.c (general_operand, nonimmediate_operand): Accept
12580         any mode for VOIDmode CONSTANT_P operands.
12581
12582 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12583
12584         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
12585         instead of replace_rtx.
12586         * recog.c (validate_replace_rtx_subexp): New function.
12587         * recog.h (validate_replace_rtx_subexp): Declare.
12588
12589 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12590
12591         * combine.c (simplify_set, make_extraction, make_compound_operation
12592         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
12593         as force_to_mode argument.
12594
12595 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12596
12597         * combine.c (if_then_else_cond): Be sure that mode fits in
12598         HOST_WIDE_INT.
12599
12600 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12601
12602         * combine.c (record_promoted_value):  Allow bitsize of mode
12603         to be equivalent to HOST_BITS_PER_WISE_INT.
12604
12605 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12606
12607         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
12608         Do not call gen_mode_alignment when mode is BLKmode.
12609
12610 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12611
12612         * loop.c (express_from_1): Fix call of simplify_gen_binary.
12613
12614 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12615
12616         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
12617         VOIDmode implies both operands to be VOIDmode.
12618         (simplify_ternary_operation): Compute properly the mode of comparison.
12619         * combine.c (combine_simplify_rtx): Likewise.
12620
12621 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
12622
12623         * basic-block.h (struct loops): New field rc_order.
12624         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
12625         (flow_loops_free): Free rc_order.
12626         (flow_depth_first_order_compute): New parameter rc_order.
12627         (flow_loops_find): Allocate rc_order and swap usage with
12628         dfs_order.
12629
12630 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12631            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12632
12633         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
12634         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
12635         (nodb_call, return_from_epilogue): Likewise.
12636         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
12637         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
12638         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
12639         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
12640         (c4x_valid_type_attribute_p): Likewise.
12641         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
12642         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
12643
12644 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12645
12646         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
12647         and loadhi_big_constant if applicable.
12648         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
12649         and add new splitter.s
12650
12651 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12652
12653         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
12654
12655 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12656
12657         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
12658
12659 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12660
12661         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
12662
12663 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12664
12665         * config/c4x/libgcc.S (divqf3): Improve accuracy.
12666
12667 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
12668
12669         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
12670         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
12671         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
12672         (get_prev_bb_note): Likewise.
12673         (remove_scope_notes): Likewise.
12674         * flow.c (commit_one_edge_insertion): Likewise.
12675         (merge_blocks_nomove): Likewise.
12676         (verify_flow_info): Likewise.
12677         * gcse.c (insert_insn_end_bb): Likewise.
12678         * reg-stack.c (emit_swap_insn): Likewise.
12679         * ssa.c (first_insn_after_basic_block_note): New function.
12680         (insert_phi_node): Use it.
12681         (rename_block): Likewise.
12682         (eliminate_phi): Likewise.
12683         (make_regs_equivalent_over_bad_edges): Likewise.
12684         (make_equivalent_phi_alternatives_equivalent): Likewise.
12685         (for_each_successor_phi): Likewise.
12686         (convert_from_ssa): Modify phi-node deletion algorithm.
12687
12688 2000-07-29  Andreas Jaeger  <aj@suse.de>
12689
12690         * configure.in (mips*-*-linux*): Use mips*el to check for little
12691         endian MIPS, add tmake_file.
12692
12693         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
12694         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
12695         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
12696
12697 2000-07-28  Richard Henderson  <rth@cygnus.com>
12698
12699         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
12700         Sign extend mode size before negating.
12701
12702 2000-07-28  Richard Henderson  <rth@cygnus.com>
12703
12704         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
12705
12706 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12707
12708         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
12709         (cse_insn): Likewise.
12710         (addr_affects_sp_p): Likewise.
12711         * expr.c (move_by_pieces): Likewise.
12712         (clear_by_pieces): Likewise.
12713         * gcse.c (oprs_unchanged_p): Likewise.
12714         * haifa-sched.c (sched_analyze_2): Likewise.
12715         * recog.c (offsettable_address_p): Likewise.
12716         * regclass.c (record_address_regs): Likewise.
12717         * reload.c (find_reusable_reload): Likewise.
12718         (push_reload): Likewise.
12719         (operands_match_p): Likewise.
12720         (decompose): Likewise.
12721         (find_reloads_address_1): Likewise.
12722         (find_inc_amount): Likewise.
12723         * reload1.c (elimination_effects): Likewise.
12724         * resource.c (mark_set_resources): Likewise.
12725         * flow.c (attempt_auto_inc): New function; mostly broken out
12726         of find_auto_inc.
12727         (find_auto_inc): Split into two functions and enhanced to
12728         generate POST_MODIFY.
12729         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
12730         * rtl.h (count_all_occurrences):  Declare.
12731         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
12732         defined.
12733         * rtlanal.c (count_all_occurrences): New function.
12734         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
12735         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
12736
12737         * config/ia64/ia64-protos.h (destination_operand): Declare.
12738         * config/ia64/ia64.c (destination_operand): New function.
12739         (ia64_print_operand): Handle POST_MODIFY.
12740         (rtx_needs_barrier): Likewise.
12741         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
12742         (HAVE_POST_MODIFY_REG): Define to 1.
12743         (MAX_REGS_PER_ADDRESS): Change to 2.
12744         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
12745         (LEGITIMATE_ADDRESS_REG): New helper macro.
12746         (LEGITIMATE_ADDRESS_DISP): Likewise.
12747         (PREDICATE_CODES): Add entry for destination_operand.
12748         * config/ia64/ia64.md (all mov patterns): Use destination_operand
12749         predicate for operand 0.
12750
12751 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12752
12753         * dwarf2out.c: Indent #error directive.
12754
12755         * gbl-ctors.h: Fix typo in comment.
12756         (__do_global_ctors): Prototype.
12757
12758         * gcse.c (record_one_set, pre_delete): Remove unused variables.
12759
12760         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
12761         (print_operand): Initialize variable `t'.
12762
12763 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
12764
12765         * config/arm/arm.md ("call_value"): removed constraints.
12766         Constraints are ignored in expanders.
12767         (*call_value_reg): split =rf into various constraints.
12768         (*call_value_mem): same
12769         (*call_value_symbol): same
12770         (*sibcall_value_insn): same
12771
12772 2000-07-28  Philipp Thomas  <pthomas@suse.de>
12773
12774         * install.texi (--enable-nls): Change the description of the NLS
12775         related configure options to match the current state.
12776         (--with-included-gettext): Likewise.
12777         (--enable-maintainer-mode): New description added.
12778         * extend.texi (-fstrict-prototype): Add missing '.'.
12779
12780 2000-07-27  Jim Wilson  <wilson@cygnus.com>
12781
12782         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
12783         DECL_INITIAL (decl) == NULL_TREE.
12784
12785 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
12786
12787         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
12788         on insn-attr.h with it.
12789         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
12790         * insn-addr.h: New header.
12791         (insn_addresses_): Renamed from insn_addresses.
12792         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
12793         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
12794         INSN_ADDRESSES_NEW): New macros.
12795         * genattrtab.c (write_test_expr): Use new macros.
12796         * final.c (insn_addresses, init_insn_lengths): Likewise.
12797         (align_fuzz, shorten_branches): Likewise.
12798         (final): Likewise.  Do not reject new insns if their addresses
12799         have been added to INSN_ADDRESSES.
12800         * config/arm/arm.c, config/avr/avr.c: Use new macros.
12801         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
12802         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
12803         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
12804         * config/sh/sh.c: Likewise.
12805         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
12806
12807         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
12808
12809 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
12810
12811         * gcc.c (struct prefix_list): Add member priority.
12812         (enum path_prefix_priority): Declare.
12813         (add_prefix): Replace ``first'' with ``priority''.  Append new
12814         entry but keep list in priority order.
12815         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
12816         PREFIX_PRIORITY_LAST to add_prefix.
12817         (process_command): Move include kludge - foo/stageN - to before
12818         foo/include.
12819
12820 2000-07-27  Jason Merrill  <jason@redhat.com>
12821
12822         * dwarf2out.c (gen_typedef_die): Abort if we get identical
12823         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
12824
12825 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
12826
12827         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
12828         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
12829
12830 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
12831
12832         * c-decl.c (finish_function): Don't treat 'main' specially unless
12833         flag_hosted.  In C99 mode, return 0 from 'main' unless
12834         DEFAULT_MAIN_RETURN is otherwise defined.
12835
12836         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
12837         parameters defaulting to int in an old-style function definition.
12838
12839 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12840
12841         * c-parse.in (string): For -Wtraditional, warn about string
12842         concatenation only once per line.
12843
12844 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
12845
12846         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
12847         for HI-UX/WE2 systems.
12848
12849 2000-07-24  Bruce Korb  <bkorb@gnu.org>
12850
12851         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
12852         defining the __xxx_TYPE__ macros.
12853         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
12854         * fixincl/fixlib.h: don't need to include "tm.h" anymore
12855         * fixincl/inclhack.def(type_map): now obsolete
12856
12857 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
12858
12859         * cpp.texi: Append a trailing full-stop to xrefs where needed.
12860
12861 2000-07-26  Dave Pitts  <dpitts@cozx.com>
12862
12863         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
12864         routine constants.
12865         (mvs_hash_alias): New function.
12866         (mvs_add_alias): Change argument spacing.
12867         (mvs_need_alias): Change aliasing criteria. Added documentation.
12868         (mvs_get_alias): Change to use hashed name. The hashed name prevents
12869         CSECT name collisions.
12870         (mvs_check_alias): Likewise.
12871         (handle_pragma): Change documentation.
12872         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
12873         mode from SImode to DImode.
12874         (iorhi3): Changed LTORG size for insn.
12875
12876 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
12877
12878         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
12879         mem if the address is a mode_dependent_address_p.
12880
12881 2000-07-26  Kazu Hirata  <kazu@hxi.com>
12882
12883         * h8300.c (print_operand): Print ":8" when the 'R' operand is
12884         suitable for 8-bit absolute.
12885         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
12886         (OK_FOR_U): Add a case for the 8-bit constant address on the
12887         H8/300H.
12888
12889 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
12890
12891         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
12892         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
12893         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
12894         lack of implemented alignment.
12895
12896 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
12897
12898         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
12899         cross-compiling between 64-bit and 32-bit machines.
12900
12901 2000-07-27  Richard Henderson  <rth@cygnus.com>
12902
12903         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
12904         (movhicc_astep, movhi_internal_astep): New.
12905         (movsicc_astep, movsi_internal_astep): New.
12906         (movdicc_astep, movdi_internal_astep): New.
12907         (movsfcc_astep, movsf_internal_astep): New.
12908         (movdfcc_astep, movdf_internal_astep): New.
12909         (movxfcc_astep, movxf_internal_astep): New.
12910         (cmovdi_internal_astep, cmovsi_internal_astep): New.
12911         Unify the cmov[ds]i splitters.
12912
12913 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
12914
12915         * real.c (asctoeg): Rename `error' label to unexpected_char_error
12916
12917 2000-07-26  Nick Clifton  <nickc@cygnus.com>
12918
12919         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
12920         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
12921
12922         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
12923         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
12924
12925 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
12926
12927         * c-decl.c (finish_enum): Convert enumerations that fit in an
12928         `int' to `int'.
12929         (build_enumerator): In pedantic mode, cast to `int' those that
12930         don't.
12931
12932 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
12933
12934         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
12935
12936 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12937
12938         * sh.md (cmpgtdi_t): Must be split.
12939         (cmpgtdi_t+1): New splitter.
12940
12941 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
12942
12943         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
12944         warnings for indented directives even if we are skipping.
12945
12946 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
12947
12948         * invoke.texi (strict-prototypes): Remove.
12949         * extend.texi (Deprecated Features): Add strict-prototypes.
12950         (Backwards Compatibility): New node.
12951
12952 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
12953
12954         * config/i386/i386.md (andsi_1+1): Allow HImode.
12955         (andsi_1+2): Require q_regs_operand.
12956
12957 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
12958
12959         * config/i386/i386.md (call_pop): Check operands[0],
12960         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
12961         (call): Likewise.
12962         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
12963         (call_value): Likewise.
12964
12965 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
12966
12967         * toplev.c (pipe_closed): Delete.
12968         (crash_signal): New.  Generate ICE for a fatal signal.
12969         (float_signal): Call crash_signal outside a float-handler
12970         block, not abort.
12971         (main): Install crash_signal as handler for core-dumping signals.
12972
12973 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
12974
12975         * rs6000.c (print_operand, case 'T'): New case.
12976
12977         * rs6000.md (call_indirect_aix32): Convert to expander of
12978         scheduled instructions.
12979         (call_indirect_aix64): Likewise.
12980         (call_value_indirect_aix{32,64}): Likewise.
12981         (call, call_value): Invoke expanders for AIX.  Fall through to
12982         matchers for SysV.
12983         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
12984         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
12985         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
12986         only "g" constraint.
12987         (call_nonlocal_aix64): Likewise.
12988         (call_value_nonlocal_aix{32,64}): Likewise.
12989         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
12990         operands.
12991         (call_value_nonlocal_sysv): New pattern.
12992         (indirect_jump{si,di}): Use new 'T' modifier.
12993         (tablejump{si,di} matchers): Likewise.
12994         (return_internal_{si,di}): Likewise.
12995         (return_eh_{si,di}): Likewise.
12996
12997 2000-07-24  Richard Henderson  <rth@cygnus.com>
12998
12999         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
13000         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
13001         * config/ia64/ia64.md (movdi_internal): Use it.
13002
13003 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
13004
13005         * cppexp.c: Warn about unary + if -Wtraditional.
13006         * cpplex.c (lex_line): Always set BOL on the first token of a line.
13007
13008 2000-07-24  Michael Meissner  <meissner@redhat.com>
13009
13010         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
13011         unsupported macro.
13012
13013 2000-07-24  Nick Clifton  <nickc@cygnus.com>
13014
13015         * config/arm/arm.c (emit_multi_reg_push): Generate a
13016         REG_FRAME_RELEATED_NOTE that is compatable with the code in
13017         dwarf2out_debug_frame_expr.
13018
13019 2000-07-24  Jason Merrill  <jason@redhat.com>
13020
13021         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
13022         UNALIGNED_INT_ASM_OP.
13023         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
13024         a location expression.
13025         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
13026         assume indirect access if we're saving the CFA address exactly.
13027
13028         * Makefile.in (bootstrap): Move -BstageN/ to the end.
13029
13030 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
13031
13032         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
13033         as well.
13034
13035 2000-07-24  Michael Meissner  <meissner@redhat.com>
13036
13037         * invoke.texi (D30V Options): Add d30v options.
13038
13039 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
13040
13041         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
13042         needed by our gcse pass anymore.
13043         (free_pre_mem): Corresponding changes.
13044         (compute_pre_data): Do not call compute_transpout anymore.
13045
13046         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
13047         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
13048         changes.
13049
13050         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
13051         (compute_pre_data): Do it here instead.
13052
13053         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
13054         'temp_bitmap'.
13055         (pre_delete): Corresponding changes.
13056
13057 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
13058
13059         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
13060         to figure out whether or not a variable has already been emitted.
13061
13062 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
13063
13064         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
13065         instead of gen_call.
13066
13067 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
13068
13069         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
13070
13071 2000-07-23  Kazu Hirata  <kazu@hxi.com>
13072
13073         * h8300.c: Fix formatting.
13074
13075 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13076
13077         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
13078         for `long' switch expression into a plain warning.
13079
13080         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
13081         (yylex): Don't pedwarn for "inline" in C99 mode.
13082
13083         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
13084         with %p.
13085         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
13086         ggc_alloc): Likewise.
13087         * bb-reorder.c (dump_scope_forest_1): Likewise.
13088
13089 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
13090
13091         * reload.c (find_reloads_toplev): Add new parameter
13092         "address_reloaded".
13093         (find_reloads): Add new parameter to find_reloads_toplev calls.
13094
13095 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
13096
13097         * collect2.c (main): Typo fixed.
13098         * diagnostic.c: Typo fixed.
13099         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
13100         * eh-common.h: Typo fixed.
13101         * emit-rtl.c (start_sequence): Typo fixed.
13102         * flow.c (find_label_refs): Typo fixed.
13103         (calculate_global_regs_live): Typo fixed.
13104         (mark_regno_cond_dead): Typo fixed.
13105         (create_edge_list): Typos fixed.
13106         (verify_edge_list): Typo fixed.
13107         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
13108         * loop.c (strength_reduce): Typo in function name fixed.
13109         * rtl.h: Added comments.  Typo in function name fixed.
13110         * rtlanal.c: Typo in function name fixed.
13111         (insn_dependant_p): Rename to ...
13112         (insn_dependent_p): ... this.
13113         (computed_jumo_p): Typo fixed.
13114
13115 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13116
13117         * system.h (__FUNCTION__): Wrap definition in #ifndef.
13118
13119 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
13120
13121         * rs6000.h (SIZE_TYPE): Define.
13122
13123 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
13124
13125         * ssa.c (rename_insn_1): Don't rename registers that are
13126         CLOBBERed.
13127
13128 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
13129
13130         * diagnostic.c (trim_filename, fancy_abort): Moved here from
13131         rtl.c.
13132         (fatal_function, set_fatal_function): Removed.
13133         (fatal): Don't prepare for or call the fatal_function.
13134         (diagnostic_lock, error_recursion): New.
13135         (diagnostic_for_decl, report_diagnostic): Guard against
13136         re-entering the error reporting routines.
13137         (fancy_abort): Assume function is not NULL.
13138
13139         * errors.c (fancy_abort): New.  Assume function is not NULL.
13140         * tradcpp.c (fancy_abort): Assume function is not NULL.
13141
13142         * system.h: Provide default definition of __FUNCTION__.
13143         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
13144         Always use __FUNCTION__ in definition of abort.
13145         * tree.h: Likewise.
13146         * varray.h: Likewise.
13147         * toplev.h: Likewise.  Don't prototype set_fatal_function.
13148
13149 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
13150
13151         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
13152         in 64-bit mode.
13153         * glimits.h: Don't do #if defined for ARCH_PPC.
13154
13155         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
13156         constants of size no larger than a pointer should go in the TOC.
13157         Add 'MODE' parameter.
13158         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
13159         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
13160         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
13161         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
13162         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
13163         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
13164         (rs6000_legitimize_address): Likewise.
13165         (rs6000_emit_move): Likewise.
13166         (rs6000_select_rtx_section): Likewise.
13167         (output_toc): Deal properly with outputting small constants like
13168         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
13169         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
13170         MODE parameter.  Put small constants in the TOC.
13171
13172         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
13173         easy in SImode.
13174         (rs6000_emit_move): When reload calls us with an illegitimate
13175         address, exit early.  Move the change_address calls to one place
13176         at the end of the routine.  Merge the SImode and DImode expanders.
13177         When called by reload to put an integer into a FP register, force
13178         it to memory.
13179
13180         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
13181         field.
13182         (rs6000_hash_constant): Hash mode too.
13183         (toc_hash_function): Allow for key_mode.
13184         (toc_hash_eq): Structures are different if key_mode differs.
13185         (output_toc): Add 'mode' parameter.  Save key_mode.
13186         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
13187         Pass 'mode' parameter.
13188         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
13189
13190         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
13191         for vtable references.
13192
13193         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
13194         choice, don't put integer values in FP regs.
13195
13196 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
13197
13198         * flow.c (verify_flow_info): Revamp code to verify that the
13199         head and end of each basic block are in the insn chain.
13200
13201 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
13202
13203         * gcse.c (record_one_set): Prepend instead of append onto
13204         reg_set_table, making it O(n) instead O(n^2).
13205         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
13206         Use a queue instead of a stack as worklist.
13207
13208 2000-07-20  Kazu Hirata  <kazu@hxi.com>
13209
13210         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
13211         * h8300.h (OK_FOR_T): New.
13212         (EXTRA_CONSTRAINT): Support OK_FOR_T.
13213         * h8300.md: Use inc/dec.[wl] for increment/decrement
13214         by 1 and 2 in HI and SI modes.
13215
13216 2000-07-20  Jim Wilson  <wilson@cygnus.com>
13217
13218         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
13219         larger than 14 bits.
13220
13221 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
13222
13223         * cppmacro.c (CAN_PASTE_AFTER): New macro.
13224         (count_params): Don't set GNU_REST_ARGS on anything.
13225         (save_expansion): Set PASTE_LEFT only on tokens for which
13226         CAN_PASTE_AFTER is true, or which are named operators.
13227
13228         * cpplex.c (parse_args): Distinguish between a rest argument
13229         given one empty argument, and a rest argument given zero arguments.
13230         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
13231         deletion of previous token based on that.
13232         (get_raw_token): Flatten some control structure.
13233
13234         * cpplib.h (CPP_LAST_EQ): Correct.
13235         (VOID_REST): New token flag.
13236         (GNU_REST_ARGS): Delete.
13237
13238         * tradcpp.c (main): Don't munge -D options.
13239         (make_definition): Bring -D handling in line with cpplib.
13240         (do_define): Strip all leading whitespace from macro definitions.
13241
13242 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
13243
13244         * Makefile.in (tradcpp): Depend on intl.o and version.o.
13245
13246 2000-07-20  Bruce Korb  <bkorb@gnu.org>
13247
13248         * fixincl/check.tpl: strip the platform specific types before testing
13249         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
13250         * fixincl/fixincl.tpl: use platform specific types
13251         * fixincl/fixlib.h: include the platform specific types
13252         * fixincl/inclhack.def(gnu_types): don't supply the types
13253         * fixincl/fixincl.x: regen
13254
13255 2000-07-19  Jim Wilson  <wilson@cygnus.com>
13256
13257         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
13258         GR_REGS.
13259
13260 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
13261
13262         * tradcpp.c (rescan): Do not recognize directives when the #
13263         is indented.
13264
13265 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
13266
13267         Implement C++ named operators.
13268
13269         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
13270         of operators allowed in #if and having an _EQ variant.  Add
13271         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
13272         (cpp_token flags): Add NAMED_OP.
13273         (enum node_type): Add T_OPERATOR.
13274         (struct cpp_hashnode): Add code slot to value union.
13275         * cpphash.h (spec_nodes): Remove n_defined.
13276
13277         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
13278         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
13279         (is_macro_disabled): Tweak error messages.
13280
13281         * cpplib.c (get_define_node): Disallow all named operators as
13282         macro names.  Tweak error messages.
13283         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
13284
13285         * cppinit.c (builtin_array): Add entries for the named operators.
13286         * cppexp.c (lex): Check for CPP_DEFINED token.
13287         (priority table): Add entries for CPP_MIN and CPP_MAX.
13288         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
13289
13290 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
13291
13292         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
13293         larger than the array of cuids.
13294         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
13295         cuids.
13296
13297 2000-07-19  Bruce Korb  <bkorb@gnu.org>
13298
13299         * fixinc/fixincl.c:  Convert to using a table of environment variables
13300         and activate the auto-edit marker on the fixed output files.
13301         * fixinc/fixlib.h:  Define the environment table
13302         * fixinc/fixincl.sh: export the ${INPUT} dir
13303         * fixinc/check.tpl: likewise
13304
13305 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
13306
13307         * gcc.c (.h spec): Fix typo.
13308
13309 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
13310
13311         * Makefile.in: Fix tradcif.c path.
13312
13313 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
13314
13315         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
13316           macros, not five.
13317
13318         * cpphash.h (TOKEN_NAME): New macro.
13319         (_cpp_spell_operator): Deleted.
13320         (token_spellings): Now _cpp_token_spellings.
13321
13322         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
13323         * cpplex.c: Use OP and TK macros when expanding the
13324         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
13325         store the stringification of the enumeration name (CPP_CHAR,
13326         etc.) in the name slot of token_spellings.
13327         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
13328         token_spellings directly.
13329         * cpplib.c: Use TOKEN_SPELL.
13330
13331         * cpplex.c (_cpp_push_token): If the token being pushed back
13332         is the previous token in this context, just subtract one from
13333         context->posn.
13334         * cppmacro.c (save_expansion): Clear aux field when storing a
13335         placemarker.
13336
13337 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
13338
13339         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
13340         buffer, provided it is not NULL.
13341
13342 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
13343
13344         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
13345         case of invalid volatile re-declaration.
13346
13347 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
13348
13349         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
13350         (expand_call): Adjust caller.
13351
13352 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
13353
13354         * diagnostic.h (report_diagnostic): Change prototype.
13355
13356         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
13357         diagnostic_for_decl):  Change prototype.
13358         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
13359         error, warning, error_with_file_and_line,
13360         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
13361         Adjust call to report_diagnostic, diagnostic_for_decl.
13362         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
13363         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
13364
13365         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
13366         varaible argument list.
13367
13368 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
13369
13370         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
13371         moved to cppmacro.c.
13372         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
13373         dump_hash_helper): Delete.
13374         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
13375         cpp_forall_identifiers): New. Implement specialized version of
13376         Vlad's expandable hash table.
13377         (cpp_lookup): Use new functions.
13378         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
13379         implementation.
13380         * cppmacro.c: New file.
13381         * cppinit.c (dump_macros_helper): New.
13382         (cpp_finish): Iterate over the identifier table directly.
13383         * cpplex.c (parse_name): Calculate the hash of the identifier
13384         while we scan it.  Use _cpp_lookup_with_hash when we can.
13385
13386         * cpphash.h: Update prototypes.
13387         (xcnewvec, HASHSTEP): New helper macros.
13388         * cpplib.h: Update prototypes.
13389         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
13390         (cppmacro.o): New rule.
13391         (cpphash.o): Update deps.
13392
13393         * cppmain.c: Do not set pfile->printer if no_output is on.
13394
13395 2000-07-15  Neil Booth  <neilb@earthling.net>
13396
13397         * cpplib.c: Change all directive-handler functions to return
13398         void, not int.
13399         * cpphash.h: Update typedefs.
13400
13401 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
13402
13403         * configure: Regenerate.
13404
13405         * extend.texi (Extended Asm): Mention that a memory clobber
13406         does not count as a side-effect.
13407
13408         * unroll.c (copy_loop_body): Fix one instance of using host
13409         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
13410         cross-compile.
13411
13412         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
13413
13414 2000-07-17  Richard Henderson  <rth@cygnus.com>
13415
13416         * config/ia64/ia64.md (movdi): Split out load address code.
13417         New post-reload splitter for symbolic operands.
13418         (movdi_internal): Abort if we didn't split symbolic operands
13419         when we should have.
13420         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
13421         (ia64_reorg): Split insns when not optimizing.
13422         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
13423
13424 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
13425
13426         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
13427         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
13428
13429 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
13430
13431         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
13432
13433 2000-07-17  Jason Merrill  <jason@redhat.com>
13434
13435         * Makefile.in (clean): Remove libgcc directory.
13436
13437         * configure.in (-Wno-long-long check): Use higher-level macros.
13438
13439 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
13440
13441         * simplify-rtx.c (simplify_binary_operation): Recognize
13442            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
13443         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
13444            a CONST_INT, it will always be zero.
13445
13446 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
13447
13448         * loop.c (check_dbra_loop) : Return if more than one condition is
13449         present to control the loop.
13450
13451 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
13452
13453         * mips.c (mips_expand_prologue): Don't calculate the last argument
13454         register unless we need it.  When we are calculating this, make
13455         sure FUNCTION_ARG is giving us a REG.
13456
13457 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13458
13459         * flow.c (libcall_dead_p): Use single_set to verify the insn
13460         has only one set and get for analysis.
13461         (propagate_one_insn): Don't pass the PATTERN of the insn.
13462
13463 2000-07-17  Mark Klein <mklein@dis.com>
13464
13465          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
13466
13467 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
13468
13469         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
13470         * configure.in (TARGET_GETGROUPS_T): Evaluate.
13471         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
13472         of second argument of getgroups.
13473         * configure, config.in: Rebuilt.
13474
13475 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
13476
13477         * simplify-rtx.c (simplify_relational_operation): Two signed
13478         values with equal high words are less/greater than each other if
13479         their low words are less/greater when considered as unsigned.
13480
13481 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
13482
13483         * configure.in (vax-*-openbsd):  Change to new style configuration,
13484         add collect2/float_format information.
13485         * configure:  Rebuilt.
13486         * config/vax/openbsd1.h:  New.
13487         * config/vax/openbsd.h:  New.
13488         * config/vax/t-openbsd:  New.
13489
13490 2000-07-17  Chip Salzenberg  <chip@valinux.com>
13491
13492         * c-common.c (shorten_compare): Quiet warnings about unsigned
13493         comparisons with zero when they occur in a system header.
13494
13495 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
13496
13497         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
13498         update to describe current practice.
13499
13500         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
13501
13502         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
13503         references to C9X.  Change references to -fstd and -flang-isoc9x
13504         to refer to -std.
13505
13506         * c-common.c (scan_char_table): Allow "z" length modifiers on
13507         diouxXn formats.
13508         (check_format_info): Use TYPE_DOMAIN on the type matched against
13509         for "z" formats, to retrieve the language size_t rather than the
13510         internal one.
13511
13512         * c-common.c (check_format_info): Do not make a pedantic objection
13513         to the 'L' length modifier if used with a floating point type
13514         character.
13515
13516         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
13517         constants in C99 mode.
13518
13519 2000-07-17  Kazu Hirata  <kazu@hxi.com>
13520
13521         * h8300.md: Fix the format of mac.
13522         (movsi_h8300hs): Output a tab after stmac instead of a space.
13523
13524         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
13525         profitable adds/subs sequences.
13526
13527         * fold-const.c: Fix comment typos.
13528
13529 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
13530
13531         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
13532
13533 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13534
13535         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
13536
13537 2000-07-16  Neil Booth  <NeilB@earthling.net>
13538
13539         * cpplex.c: Update comments.
13540         * README.Portability: Small update.
13541
13542 2000-07-16  Neil Booth  <NeilB@earthling.net>
13543
13544         * README.Portability:  Small update.
13545
13546 2000-07-15  Richard Henderson  <rth@cygnus.com>
13547
13548         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
13549         * config/ia64/ia64.c (ia64_move_ok): New function.
13550         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
13551         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
13552
13553 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
13554
13555         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
13556         immediately following a paste operator.
13557         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
13558         (cpp_reader_init): Call it, if HOST_EBCDIC.
13559         (cpp_handle_options): Do not sort option list here.
13560         (handle_option): Rename to cpp_handle_option and export.
13561         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
13562         _cpp_get_token directly.
13563         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
13564         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
13565         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
13566         cpp_scan_line.
13567
13568 2000-07-15  Richard Henderson  <rth@cygnus.com>
13569
13570         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
13571         cast around an expression.  Tidy other unsigned tests.
13572
13573 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
13574
13575         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
13576         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
13577         (v_message_with_decl): Rename to ...
13578         (format_with_decl): ... this. Tweak
13579         (diagnostic_for_decl): New function.
13580         (fatal_io_error): Use verbatim in lieu of notice.
13581         (announce_function): Use verbatim.
13582         (default_print_error_function): Likewise.
13583         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
13584         infratructure.
13585
13586 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13587
13588         * mips.c (function_arg_pass_by_reference): Don't do automatic
13589         aggregate initialization.
13590         (machine_dependent_reorg): Initialize variable `mode'.
13591
13592         * mips.md (absdi2): Change variable `regno1' to unsigned int.
13593         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
13594         conflicts with sys/param.h macro of the same name.
13595         (reload_outdi): Likewise.
13596
13597 2000-07-15  Michael Meissner  <meissner@redhat.com>
13598
13599         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
13600         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
13601         create a new node instead.
13602
13603 2000-07-15  Neil Booth  <NeilB@earthling.net>
13604
13605         * README.Portability: Correct example about calling a function
13606         through a pointer to function.  Format wide paragraphs.
13607
13608 2000-07-15  Michael Meissner  <meissner@redhat.com>
13609
13610         * README.Portability: Update integer suffixes and function
13611         prototype sections.
13612
13613 2000-07-15  Neil Booth  <NeilB@earthling.net>
13614
13615         * README.Portability: Small update.
13616
13617 2000-07-15  Neil Booth  <NeilB@earthling.net>
13618
13619         * README.Portability: New file.
13620
13621 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
13622
13623         * INSTALL: Give special instructions for building GCC on Irix 6.
13624         * config/mips/x-iris6 (CC): Don't set it.
13625         (OLDCC): Likewise.
13626
13627 2000-07-14  Jason Merrill  <jason@redhat.com>
13628
13629         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
13630         register in the stack and later in another register, use the new
13631         register.
13632
13633 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
13634
13635         * config/mips/mips.md: (absdi2): Handle sign_extend for
13636         second operand.
13637
13638 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
13639
13640         * cpplib.c (do_pragma_dependency): Tidy warning messages.
13641
13642 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
13643
13644         * .cvsignore: Correct typo.
13645
13646 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
13647
13648         * .cvsignore: Add generated YACC files.
13649         * objc/.cvsignore: New file.
13650
13651 2000-07-14  Neil Booth  <NeilB@earthling.net>
13652
13653         * cpplex.c (adjust_column): New funcion.
13654         (skip_whitespace): Use it.
13655         (skip_block_comment): Use it, and warn about /*/* with
13656         -Wcomments.
13657
13658 2000-07-14  Neil Booth  <NeilB@earthling.net>
13659
13660         * cpphash.c (struct macro_info): Add new members.
13661         (_cpp_free_definition): Delete the macro directly.
13662         (count_params): Return void, with first token of
13663         expansion in struct macro_info on success.
13664         (parse_define): Return int.  Hoist syntax checking from
13665         save_macro_expansion.  Leave call to save_expansion to
13666         _cpp_create_definition.
13667         (alloc_macro): Needs just 2 arguments.
13668         (free_macro): Delete.
13669         (save_expansion): Don't perform syntax check.
13670         (_cpp_create_definition): Call save_expansion.
13671
13672 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13673
13674         * genrecog.c (write_header): Split long string.
13675
13676         * cpphash.c (macro_info): Don't use the `signed' keyword.
13677
13678         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
13679
13680 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
13681
13682         * calls.c (stored_args_map): New variable.
13683         (check_sibcall_argument_overlap_1): New.
13684         (check_sibcall_argument_overlap): New.
13685         (expand_call): Initialize stored_args_map.
13686         Call check_sibcall_argument_overlap.
13687
13688 2000-07-13  Bruce Korb  <bkorb@gnu.org>
13689
13690         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
13691         (emit_gnu_type): utility procedure for gnu_type_fix
13692         (gnu_type_fix): implement various pre-processor guards around
13693         standard types so these types can be defined over and over
13694         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
13695         types alluded to above will have GNU-compliant base types
13696         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
13697         * fixinc/inclhack.def: add test_text entries and utilize the new
13698         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
13699         * fixinc/fixincl.x: regenerate
13700
13701 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13702
13703         * diagnostic.c (vline_wrapper_message_with_location,
13704         v_message_with_file_and_line, v_error_with_file_and_file,
13705         v_error_for_asm, v_warning_for_asm, vfatal,
13706         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
13707         vsorry, verror, vwarning, vpedwarn): Remove.
13708         (diagnostic_for_asm): New function.
13709         (pedwarn, error, warning, pedwarn_with_file_and_line,
13710         error_with_file_and_line, warning_with_file_and_line, sorry,
13711         error_for_asm, warning_for_asm, fatal): Reimplement.
13712         (finish_diagnostic): Clear diagnostic info as well.
13713
13714 2000-07-13  Neil Booth  <NeilB@earthling.net>
13715
13716         * c-common.h (flag_digraphs): New.
13717         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
13718         * c-lex.c (yylex): Use flag_digraphs to decide whether to
13719         honour digraphs.
13720
13721 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
13722
13723         * gcc.c (do_spec_1): Add new %B operator.
13724         (set_input): Prepare for %B.
13725
13726         (link_command_spec): Move up with the other tm.h-
13727         overrideable specs.  Factor out the portion conditional on
13728         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
13729         (struct compiler): Just have a single spec string.  All users
13730         updated.
13731         (default_compilers): Remove unnecessary braces.
13732         (static_specs): Update.
13733
13734         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
13735         named specs.
13736         (C and assembly specs): Use the new named specs, as appropriate.
13737
13738         * objc/lang-specs.h: Use the new named specs.
13739         Remove unnecessary braces.
13740
13741 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13742
13743         * gcc.c (execute): If a subprocess gets a fatal signal, report
13744         strsignal() of the signal number, and ask for a bug report.
13745         Do not do this for SIGPIPE if there's already been an error.
13746
13747         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
13748         Delete pipe_closed.
13749
13750         * tradcif.c: Remove.
13751
13752 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13753
13754         * final.c (profile_function): Do not emit profile counters in
13755         the data section, if NO_PROFILE_COUNTERS is defined.
13756         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
13757         FUNCTION_PROFILER.
13758
13759         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
13760         (FUNCTION_PROFILER): Just emit a call to mcount.
13761
13762 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13763
13764         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
13765
13766         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
13767         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
13768         traditional, lang_chill, or lang_fortran.
13769
13770         * cppfiles.c: #undef strcmp to suppress warning about macros
13771         used without arguments.
13772         (_cpp_execute_include): Use f, not fname, in "No include path"
13773         error.
13774         (_cpp_pop_file_buffer): New function.
13775         * cpplib.c: Don't include <sys/mman.h>.
13776         (cpp_push_buffer): Set line_base and lineno in new buffer.
13777         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
13778
13779         * cpplex.c: Move all prototypes and structure declarations to the
13780         top of the file.  Properly parenthesise some macro arguments.
13781         (cpp_scan_line): New function.
13782         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
13783         don't need to walk up the stack counting.
13784
13785 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13786
13787         * c-common.c (combine_strings): Emit a pedantic warning when a
13788         string length is greater than the minimum ANSI C is required
13789         to support.
13790
13791 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
13792
13793         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
13794         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
13795
13796 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13797
13798         * c-decl.c (define_label): Warn about identifier conflicts with
13799         labels in traditional C.
13800
13801         * c-parse.in (unop +): Warn about the unary plus operator for
13802         traditional C.
13803
13804         * c-typeck.c (store_init_value): Warn about automatic aggregate
13805         initialization for traditional C.
13806
13807         * invoke.texi (-Wtraditional): Document new warnings.
13808
13809 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
13810
13811         * Makefile.in (c-errors.o): Fix thinko in dependency.
13812
13813 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13814
13815         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
13816         -traditional, -ftraditional, or -traditional-cpp was given.
13817         Do not pass -traditional to the preprocessor.
13818         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
13819         preprocessor does it automatically.
13820         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
13821
13822         * ch/lang-specs.h: Always use tradcpp.  Do not pass
13823         -traditional, -trigraphs, or -pedantic to the preprocessor.
13824         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
13825         _LANGUAGE_FORTRAN.
13826
13827 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13828
13829         * cppexp.c (LOGICAL): Delete macro.
13830         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
13831         and && directly.
13832
13833         * cpphash.c (HASHSIZE): Increase to 4096.
13834         (struct hashdummy): Add hash field.
13835         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
13836         the string values using memcmp.
13837         (cpp_lookup): Set dummy.hash.
13838
13839 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
13840
13841         * configure.in (m88k-openbsd): Express configuration using new fragment
13842         style.
13843         * configure: Rebuilt.
13844         * m88k/aout-dbx.h: New.
13845         * m88k/openbsd.h: New.
13846         * m88k/xm-openbsd.h: New.
13847
13848 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13849
13850         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
13851
13852 2000-07-12  Richard Henderson  <rth@cygnus.com>
13853
13854         * reload.c (push_secondary_reload): Make sure to add the new
13855         reload at the end, after acquiring secondary memory.
13856
13857 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13858
13859         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
13860
13861         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
13862         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
13863
13864         * c-parse.in (stmt): Delete unused variables.
13865
13866         * convert.c (convert_to_vector): Likewise.
13867
13868         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
13869
13870         * tree.c (finish_vector_type): Prototype.
13871
13872 2000-07-12  Bruce Korb  <bkorb@gnu.org>
13873
13874         * fixinc/fixfixes.c: use xmalloc
13875         * fixinc/fixincl.c(initialize): set program name for xmalloc
13876         * fixinc/fixlib.c(must_malloc): obsolete
13877         (is_cxx_header): no longer used - disabled
13878         (skip_quote): inserted and disabled for future use
13879         * fixinc/fixlib.h: reflects above
13880         * fixinc/fixtests.c: removed dinkleberries
13881
13882 2000-07-12  Neil Booth  <NeilB@earthling.net>
13883
13884         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
13885         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
13886
13887         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
13888         struct toklist_dummy): New.
13889         (cpp_free_definition): Free macros with free_macro.
13890         (count_params): Don't save paramter spellings.  Save macro
13891         information in a struct macro_info.
13892         (parse_define): Don't allocate a token list.
13893         (save_expansion): Allocate the macro's token list, and
13894         save parameter spellings if necessary.  Use TOKEN_SPELL.
13895         (cpp_create_definition): Make list const.
13896
13897 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
13898
13899         * c-typeck.c (pedwarn_c99): Move to
13900         * c-errors.c: ... Here.
13901         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
13902         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
13903         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
13904         (c-errors.o): List dependency.
13905
13906 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
13907
13908         * c-parse.c: Remove.
13909         * c-parse.h: Likewise.
13910         * c-parse.y: Likewise.
13911         * objc/objc-parse.c: Likewise.
13912         * objc/objc-pasre.y: Likewise.
13913
13914 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
13915
13916         * gcc.texi: Fix minor typos
13917         * extend.texi: Fix minor typos
13918
13919 2000-07-11  Marc Espie <espie@openbsd.org>
13920
13921         * collect2.c (main): Recognize .lo as object files.
13922
13923 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
13924
13925         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
13926         true.
13927
13928         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
13929         with MAP_ANONYMOUS and MAP_ANON.
13930         * configure, config.in: Rebuilt.
13931
13932 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
13933
13934         * diagnostic.c (save_output_state): Remove.
13935         (restore_output_state): Likewise.
13936         (clear_text_info): New function.
13937         (clear_diagnostic_info): Likewise.
13938         (output_text_length, is_starting_newline, output_prefix,
13939         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
13940         prefixing_policy, output_buffer_ptr_to_format_args): New macros
13941         (set_real_maximum_length, output_set_maximum_length,
13942         output_set_prefix, output_get_prefix, output_set_maximum_length,
13943         output_destroy_prefix, init_output_buffer,
13944         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
13945         output_add_newline, output_add_character, output_add_space,
13946         output_append_r, output_append, wrap_text, output_format,
13947         output_do_printf, output_printf, output_do_verbatim,
13948         output_verbatim, verbatim): Use them.
13949         (output_clear): Split into cleat_text_info and
13950         clear_diagnostic_info.
13951         (struct output_state): Move to...
13952
13953         * diagnostic.h: ...Here
13954         (struct output_buffer): Adjust.
13955
13956 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
13957
13958         * cpplex.c (parse_name): No longer inline (premature optimization).
13959         (do_pop_context): Fold into pop_context.
13960         (pop_context): Returns int.
13961         (lex_next): Hoist test for end of directive into pop_context.
13962         (push_macro_context): Returns int; takes just reader and token.
13963         Hoist test for excessive nesting to caller.
13964         (push_arg_context): Returns void; takes just reader and token.
13965         Do not call stringify_arg or get_raw_token.
13966         (get_raw_token): Convert tail recursion through push_arg_context
13967         to a loop at this level.  Call stringify_arg here if appropriate.
13968         (maybe_paste_with_next): Convert tail recursion to a while loop.
13969         Hoist test of paste_level to caller.
13970
13971         (stringify_arg): Push arg context at beginning.
13972         (cpp_get_token): Split out core into _cpp_get_token.  Call
13973         process_directive here.  Throw away CPP_PLACEMARKER tokens.
13974         (_cpp_get_token): Convert tail recursion through
13975         push_macro_context to a loop at this level.
13976         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
13977         _cpp_get_raw_token): Use _cpp_get_token.
13978         (_cpp_skip_rest_of_line): Drop the context stack directly; do
13979         not call pop_context.
13980         (_cpp_run_directive): Call lex_next directly.
13981
13982         * cpphash.h: Prototype _cpp_get_token.
13983         * cppexp.c (lex): Use it.
13984         * cpphash.c (parse_define): Use it.
13985         * cpplib.c (get_define_node, do_undef, parse_include,
13986         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
13987         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
13988         parse_ifdef, validate_else): Use it.
13989         (cpp_push_buffer): Tweak error message; abort if anyone tries
13990         to push a buffer while macro expansions are stacked.
13991
13992 2000-07-11  Donn Terry  <donnte@microsoft.com>
13993
13994         * cpplex.c (free_macro_args, save_token): Cast arg of free
13995         and/or xrealloc to PTR.
13996         (_cpp_init_input_buffer): Clear all fields of the base context.
13997
13998 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
13999
14000         * gensupport.c (process_rtx): Make rtl checking stop
14001         complaining about the define_insn while it is being
14002         converted from a define_insn_and_split.
14003
14004 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
14005
14006         * config/mips/mips.c (simple_memory_operand): Access the
14007         INTVAL of the address, not it's containing MEM.
14008
14009 2000-07-11  Bruce Korb  <bkorb@gnu.org>
14010
14011         * fixinc/fixtests.c(double_slash): obsolete
14012         (else_endif_label): likewise
14013         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
14014         (libc1_ifdefd_memx): correct initial comment
14015         and omit the #if/#endif pair from the memxxx declarations
14016         * fixinc/fixincl.x: regen
14017
14018 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14019
14020         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
14021
14022 2000-07-11  Neil Booth  <NeilB@earthling.net>
14023
14024         * cpp.texi: Update.
14025
14026 2000-07-11  Neil Booth  <NeilB@earthling.net>
14027
14028         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
14029         (handle_option): Set digraphs according to standard.
14030         Merge OPT_lang_c89 handler with OPT_std_c89.
14031
14032         * cpplex.c: (lex_line, can_paste): Honour digraphs in
14033         accordance with the digraphs flag.
14034
14035         * cpplib.h: (struct cpp_options): New option digraphs.
14036
14037 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
14038             Bruce Korb  <bkorb@gnu.org>
14039
14040         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
14041         * fixinc/fixincl.x: Regenerate.
14042         * fixinc/tests/base/testing.h: Add testcase.
14043
14044 2000-07-10  Richard Henderson  <rth@cygnus.com>
14045
14046         * config/ia64/ia64.c (got_symbolic_operand): New.
14047         (symbolic_operand, move_operand): Revert 0701 change.
14048         * config/ia64/ia64.h (PREDICATE_CODES): Update.
14049         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
14050         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
14051         split the offset into a 14-bit low part instead of a 13-bit low part.
14052         (load_fptr): Mark the mem as unchanging.
14053         (load_symptr): Use got_symbolic_operand.
14054
14055 2000-07-10  Nick Clifton  <nickc@cygnus.com>
14056
14057         * libgcc2.c (next_stack_level): Cast result of computation to
14058         (void **) so that the assignment does not generate a warning.
14059
14060 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
14061
14062         * flags.h : Add new variable flag_single_precision_constant.
14063         * toplev.c (display_help) : Add -fsingle-precision-constant option.
14064         (flag_single_precision_constant): New.
14065         * c-lex.c (yylex): Convert floating point constant to single
14066         precision constant.
14067         * invoke.texi : Add documentation for this new option.
14068
14069 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
14070
14071         * diagnostic.c (output_octal): Second parameter is unsigned.
14072         (output_long_octal): Likewise.
14073         (output_hexadecimal): Likewise.
14074         (output_long_hexadecimal): Likewise.
14075         (output_format): Adjust arguments extraction. Tweak.
14076         (output_verbatim, verbatim): End variable argument list.
14077         (report_diagnostic): Improve documentation.
14078
14079 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
14080
14081         * c-common.h (build_stmt): Declare.
14082         (build_continue_stmt): Likewise.
14083         (build_break_stmt): Likewise.
14084         (build_return_stmt): Likewise.
14085
14086         * c-decl.c (do_case): Rewrite to do what previously done in
14087         c-parse.in.
14088
14089         * c-semantics.c (build_stmt): Define.
14090         (build_return_stmt): Likewise.
14091         (build_break_stmt): Likewise.
14092         (build_continue_stmt): Likewise.
14093         (build_case_label): Likewise.
14094
14095         * c-parse.in (BREAK): Change to build tree, then generate RTL.
14096         (CONTINUE): Likewise.
14097         (RETURN): Likewise.
14098         (CASE): Likewise.
14099         (DEFAULT): Likewise.
14100
14101         * c-parse.y: Regenerate.
14102         * c-pasre.c: Likewise.
14103
14104 2000-07-09  Jason Merrill  <jason@redhat.com>
14105
14106         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
14107
14108         * tree.h (STRIP_NOPS): Check for error_mark_node.
14109         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
14110         (dwarf2out_*): Remove duplicate declarations.
14111
14112         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
14113         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
14114
14115 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
14116
14117         * diagnostic.c (wrap_text): New function.
14118         (maybe_wrap_text): Likewise.
14119         (output_add_string): Use it.
14120         (output_format): Likewise.
14121         (count_error): Use verbatim instead of notice.
14122         (report_error_function): Likewise. Don't use plain fprintf.
14123         (finish_diagnostic): New function.
14124         (output_do_verbatim): Tweak.  Commonalize functionalities in
14125         output_verbatim and verbatim.
14126         (output_verbatim): Adjust.
14127         (verbatim): Likewise.
14128         (report_diagnostic): Define.
14129
14130         * diagnostic.h (report_diagnostic): Prototype.
14131
14132 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
14133
14134         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
14135
14136 2000-07-09  Neil Booth  <NeilB@earthling.net>
14137
14138         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
14139         IShspace, ISspace: Update.
14140
14141         * cppinit.c: ISTABLE: Update.
14142         V: New.
14143
14144         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
14145         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
14146         (skip_block_comment, skip_line_comment, parse_string,
14147         lex_line): Use is_vspace rather than IS_NEWLINE.
14148         (skip_whitespace, lex_line): Clean up to use is_nvspace.
14149         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
14150         gets a BOL flag.
14151         (lex_next): Unconditionally stop if within a directive.
14152         Treat directives within macro invocations as directives
14153         (after parse_args emits error), not as the argument.
14154
14155 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
14156
14157         * diagnostic.c (diagnostic_args): New macro.
14158         (diagnostic_msg): Likewise.
14159         (output_formatted_integer): Likewise.
14160         (output_state): New data type.
14161         (digit_buffer): Make global.
14162         (output_add_integer): Rename to output_decimal. Squeeze
14163         digit_buffer.
14164         (output_long_decimal, output_unsigned_decimal,
14165         output_long_unsigned_decimal, output_octal, output_long_octal,
14166         output_hexadecimal, output_long_hexadecimal): New functions.
14167         (output_append_r): New function.
14168         (output_append): Tweak.
14169         (output_flush_on): Rename to output_to_stream.
14170         (output_format): Change prototype.  Improve documentation. Handle
14171         more format specifiers.
14172         (build_location_prefix): Rename to context_as_prefix.
14173         (output_notice): Rename to output_do_printf.
14174         (output_printf): Tweak.
14175         (line_wrapper_printf): Likewise.
14176         (vline_wrapper_message_with_location): Adjust call to renamed
14177         functions.
14178         (v_message_with_decl): Likewise.
14179         (default_print_error_function): Likewise.
14180         (save_output_state): New function.
14181         (restore_output_state): Likewise.
14182         (output_do_verbatim): Likewise.
14183         (output_verbatim): Define.
14184         (verbatim): Likewise.
14185
14186         * diagnostic.h (printer_fn): Change return type from void to int.
14187         Improve documentation.
14188         (output_add_integer): Rename to output_decimal.
14189         (output_flush_on, output_format): Don't export.
14190         (output_verbatim, verbatim): Declare.
14191
14192 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
14193
14194         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
14195         Check whether c divides op1 exactly if operation is not
14196         multiplication.
14197
14198 2000-07-08  Richard Henderson  <rth@cygnus.com>
14199
14200         * final.c (final): Do not abort when reg-stack introduces
14201         a new insn.
14202
14203 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
14204
14205         * cpplib.h (struct cpp_name): Now struct cpp_string.
14206         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
14207         CPP_HEADER_NAME): Change to type S.
14208         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
14209         field, a cpp_hashnode *.  All references to val.name updated
14210         to use val.str or val.node as appropriate.
14211         (struct cpp_reader): Add spec_nodes field.
14212         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
14213
14214         * cpphash.h (struct spec_nodes): New.
14215         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
14216         val.str.  All references to 'spelling > SPELL_NONE' updated to
14217         match.
14218
14219         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
14220         pfile->buffer->inc are not NULL before dereferencing them.
14221
14222         * cpplex.c (parse_name): Take a pointer to the current token,
14223         plus current position and limit as args; return the new
14224         position; don't copy the text of a name into the string
14225         buffer, instead call cpp_lookup and store the node pointer.
14226         If extending a token, copy out the text of the old into a
14227         scratch buffer, append the new, look that up and store the new
14228         node pointer.  Inline.
14229         (maybe_paste_with_next): If the result of paste is a NAME,
14230         then look up the pasted text and store its node pointer.
14231         (lex_line): Adjust for new parse_name interface.
14232         Check for L"str", L'str' using spec_nodes->n_L.
14233         (spell_token): SPELL_IDENT tokens have their spelling in
14234         val.node->name.  Handle SPELL_STRING tokens that don't have
14235         string delimiters.
14236         (_cpp_expand_name_space,
14237         (can_paste): Check for L ## "str" using spec_nodes->n_L.
14238         (cpp_get_token, special_symbol): No need to call cpp_lookup.
14239         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
14240         return 1=equal 0=not, not a tristate.
14241
14242         * cpphash.c (var_args_str): Delete.
14243         (find_param): Compare node fields directly.
14244         (is__va_args__): Use CPP_PEDANTIC.  Just compare
14245         token->val.node with spec_nodes->n__VA_ARGS__.
14246         (dump_funlike_macro): Don't use var_args_str.
14247
14248         * cpplib.c (_cpp_check_directive): Just walk through
14249         spec_nodes->dirs comparing pointers.
14250         (get_define_node, do_pragma_poison, detect_if_not_defined,
14251         parse_ifdef): The identifier has already been looked up.
14252         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
14253         node.
14254         (do_if): Only call detect_if_not_defined at beginning of file.
14255         (_cpp_parse_assertion): Only copy string pointers for
14256         SPELL_STRING tokens.
14257         (pragma_dispatch): Take a node pointer and examine its name
14258         field.
14259         (_cpp_init_stacks): Also initialize the spec_nodes structure.
14260
14261         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
14262         _cpp_init_macros.
14263         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
14264         reverse order from the corresponding _cpp_init_* routines.
14265
14266         * cppexp.c (parse_number, parse_charconst, parse_defined,
14267         lex): Check val.node->type instead of calling cpp_defined.
14268         Use spec_nodes entries where appropriate.
14269
14270         * fix-header.c, scan-decls.c: Update for interface changes.
14271
14272 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
14273
14274         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
14275         emitting aux_truncdfsf2.
14276
14277 2000-07-03  Donn Terry  (donnte@microsoft.com)
14278
14279         * cppinit.c (print_help): split overlong line into ISO C89
14280         maximum chunks.
14281
14282 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
14283
14284         * cppexp.c: Update all code for new lexer interface.
14285         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
14286         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
14287         * cpplex.c (token_names): Trim leading CPP_ from names; make
14288         the strings unsigned.
14289         (_cpp_spell_operator): New.
14290         (is_macro_disabled): Disable all macros if rescanning
14291         preprocessed text.
14292         (_cpp_get_directive_token): Remove.
14293
14294         * cppinit.c: Don't set no_macro_expand.
14295         * cpplib.c (read_line_number, do_line): Check only for EOF,
14296         not VSPACE.
14297         * cpphash.h: Update prototypes.
14298         * cpplib.h (CPP_VSPACE): Remove.
14299         (struct cpp_reader): Remove no_macro_expand.
14300
14301 2000-07-08  Neil Booth  <NeilB@earthling.net>
14302
14303         * cpphash.c (is__va_args__): New function.
14304         (count_params): Fix line reported in error messages.  Use
14305         is__va_args__.  Don't return ')' on error.  Flag GNU style
14306         rest args macro definitions.
14307         (parse_define): Check macro name is not __VA_ARGS__.
14308         (save_expansion): Check identifier in non-varargs-macro is
14309         not __VA_ARGS__.  Don't flag GNU_VARARGS.
14310         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
14311         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
14312          than per-token GNU_VARARGS.
14313         * cpplib.h (GNU_VARARGS): Remove.
14314         (GNU_REST_ARGS): New.
14315
14316 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14317
14318         * i386.md (call_pop, call, call_value_pop): Do not set
14319         current_function_uses_pic_offset_table for calls to static
14320         functions or indirect calls.
14321
14322 2000-07-07  Jim Wilson  <wilson@cygnus.com>
14323
14324         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
14325         is_predicate_reg, then take max write_count of register pair.
14326
14327 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14328
14329         * tradcpp.c (main): Rename label `include' to `add_include' to
14330         avoid conflicts with variable `include' in traditional C.
14331
14332 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
14333
14334         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
14335
14336 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
14337
14338         * sibcall.c (uses_addressof): Add INMEM argument, check for
14339         current_function_internal_arg_pointer outside of MEM rtxs in addition
14340         to ADDRESSOFs.
14341         (sequence_uses_addressof): Update caller.
14342
14343 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
14344
14345         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
14346         and friends.
14347
14348 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14349
14350         * system.h (UNION_INIT_ZERO): New macro for initializing union
14351         members in structs.
14352
14353         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
14354
14355 2000-07-07  Neil Booth  <NeilB@earthling.net>
14356
14357         * cpp.texi: Update.
14358
14359 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
14360
14361         * final.c (final): Detect out of bounds array access to
14362         the insn_lengths array.
14363
14364 2000-07-07  Kazu Hirata  <kazu@hxi.com>
14365
14366         * fold-const.c (fold): Fix a comment typo.
14367
14368 2000-07-07  Neil Booth  <NeilB@earthling.net>
14369
14370         * cpp.texi: Update to new lexer.
14371
14372 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
14373
14374         * tradcpp.c: New file.
14375         * tradcif.y: New file.
14376         * tradcif.c: New generated file.
14377
14378         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
14379         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
14380         dependencies of C.  Install tradcpp from install-common, in
14381         $(libsubdir).
14382
14383 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
14384
14385         * cppinit.c: Include cppdefault.h.  Refer to
14386         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
14387         to GCC_INCLUDE_DIR and its length.
14388         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
14389         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
14390         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
14391         cppdefault.h.
14392         (include_defaults_array): Move to cppdefault.c.
14393
14394         * cppdefault.h: New file.
14395         * cppdefault.c: New file.
14396
14397         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
14398         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
14399         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
14400         this file.
14401
14402 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14403
14404         * reload.c (push_reload): When seeing if can reuse a register,
14405         check extra registers against widest of INMODE and OUTMODE.
14406
14407 2000-07-06  Neil Booth  <NeilB@earthling.net>
14408
14409         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
14410         based on full length of predicate.
14411
14412 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
14413
14414         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
14415         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
14416
14417 2000-07-05  Kazu Hirata  <kazu@hxi.com>
14418
14419         * h8300-proto.h: Fix formatting.
14420         * h8300.c: Likewise.
14421         * h8300.h: Likewise.
14422
14423 2000-07-05  Jim Wilson  <wilson@cygnus.com>
14424
14425         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
14426         CCmode.
14427
14428 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
14429
14430         * invoke.texi: Fix minor typos
14431         * md.texi: Fix minor typos
14432
14433 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
14434
14435         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
14436
14437 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
14438
14439         * cpplex.c: Don't include sys/mman.h.
14440         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
14441
14442         * cpplib.c: Include sys/mman.h and obstack.h.
14443         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
14444         obstack.
14445         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
14446         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
14447         bother freeing if stack entries (they will be freed with their buffer).
14448         (do_endif): Free if stack entries from the buffer obstack.
14449         (push_conditional): Allocate if stack entries from the buffer obstack.
14450
14451         (find_answer): Rename to _cpp_find_answer.
14452         (do_assert, do_unassert): Update.
14453
14454         * cpphash.h: Update prototypes.
14455         (xobnew): New convenience macro.
14456         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
14457         Update comments.
14458         (struct cpp_hashnode): Remove disabled field.
14459
14460         * cppinit.c: Don't include hashtab.h or splay-tree.h.
14461         (report_missing_guard): Moved to cppfiles.c.
14462         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
14463         cpp_init_includes.
14464         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
14465         cpp_cleanup_includes.  Don't destroy hashtab or
14466         all_include_files here.
14467         (cpp_finish): Use _cpp_report_missing_guards.
14468
14469         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
14470         (_cpp_init_include_table): Rename _cpp_init_includes.
14471         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
14472
14473         * cppexp.c (parse_assertion): Update for new name of
14474         find_answer.
14475
14476         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
14477
14478 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
14479
14480         * cpplib.c (do_ident): s/VSPACE/EOF/
14481
14482 2000-07-05  Neil Booth  <NeilB@earthling.net>
14483
14484         * cpplex.c: Fix trigraph replacement within strings.
14485
14486 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14487
14488         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
14489
14490         * xcoffout.c (assign_type_number): Constify.
14491         (xcoffout_source_file): Add static prototype.  Don't needlessly
14492         cast away const-ness.
14493
14494 2000-07-04  Jason Merrill  <jason@redhat.com>
14495
14496         * frame.h (frame_state): Move base_offset to end.
14497
14498 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
14499
14500         * calls.c (emit_library_call_value_1): Revert previous change.
14501
14502 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
14503
14504         * fix-header.c (struct partial_proto): Remove unnecessary fields.
14505         (recognized_extern, recognized_function, read_scan_file):
14506         Update for new scheme.
14507         (check_protection): It's still a multiple include guard even
14508         if it doesn't always trigger.
14509         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
14510         new scheme.
14511         * scan.h: Declare struct cpp_token.  Update prototypes.
14512
14513 2000-07-03  Neil Booth  <neilb@earthling.net>
14514             Zack Weinberg  <zack@wolery.cumb.org>
14515
14516         Complete overhaul of the lexer and macro expander.
14517
14518         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
14519         arg, arglist, argdata, reflist, collect_objlike_expansion,
14520         collect_funlike_expansion, collect_params,
14521         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
14522         unsafe_chars, macarg, compare_defs, special_symbol,
14523         scan_arguments, stringify, funlike_macroexpand,
14524         _cpp_quote_string, monthnames): Delete.
14525         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
14526         _cpp_create_definition, _cpp_dump_definition,
14527         dump_hash_helper): Adjust.
14528         (find_param, count_params, parse_define, var_args_str,
14529         check_macro_redefinition, save_expansion): New.
14530
14531         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
14532         parse_string, output_line_command, trigraph_replace,
14533         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
14534         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
14535         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
14536         _cpp_skip_rest_of_line): Modify.
14537
14538         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
14539         find_position, null_warning, bump_column, expand_name_space,
14540         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
14541         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
14542         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
14543         _cpp_prescan): Delete.
14544
14545         (dump_param_spelling, process_directive, lex_next,
14546         is_macro_disabled, stringify_arg, expand_context_stack,
14547         output_token, make_string_token, alloc_number_token,
14548         special_symbol, duplicate_token, maybe_paste_with_next,
14549         can_paste, prevent_macro_expansion, restore_macro_expansion,
14550         get_temp_token, release_temp_tokens, quote_string,
14551         token_names, token_spellings, _cpp_expand_name_space,
14552         _cpp_glue_header_name, _cpp_reserve_name_space,
14553         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
14554         placemarker_token, eof_token, cpp_context, macro_args,
14555         get_raw_token, parse_arg, parse_args, save_token,
14556         push_arg_context, push_macro_context, pop_context,
14557         do_pop_context, free_macro_args, _cpp_get_line,
14558         _cpp_run_directive): New.
14559
14560         * cpplib.c (validate_else, parse_include, push_conditional,
14561         pass_thru_directive, read_line_number, parse_ifdef,
14562         detect_if_not_defined, _cpp_check_directive, do_define,
14563         do_undef, do_include, do_import, do_include_next, do_error,
14564         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
14565         top_pragmas, do_pragma_gcc, do_pragma_implementation,
14566         do_pragma_poison, do_pragma_system_header,
14567         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
14568         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
14569         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
14570         cpp_defined): Update for new scheme.
14571         (strtoul_for_line, get_define_node, dump_macro_name,
14572         _cpp_check_linemarker, _cpp_parse_assertion): New.
14573         (_cpp_handle_directive, do_pragma_default): Delete.
14574
14575         * cpphash.h (struct predicate): Now struct answer.
14576         (enum spell_type, struct token_spelling, struct directive,
14577         directive_handler): New.
14578         Update prototypes.  Remove unused macros.
14579         * cpplib.h: Update prototypes.  Remove unused macros,
14580         structure definitions, and fields.
14581
14582         * cpperror.c (print_containing_files, v_message): Adjust.
14583         * cppexp.c (parse_assertion, lex, parse_escape,
14584         _cpp_parse_expr): Adjust.
14585         * cppfiles.c (open_include_file, _cpp_execute_include,
14586         _cpp_compare_file_date, cpp_read_file, read_include_file):
14587         Adjust.
14588         * cppinit.c (dump_special_to_buffer): Delete.
14589         (append_include_chain, merge_include_chains, cpp_reader_init,
14590         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
14591         cpp_finish, handle_option, print_help): Adjust.
14592         * cppmain.c (main): Adjust.
14593
14594 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
14595
14596         * cppspec.c (lang_specific_driver): Use double quotes in error
14597         message.
14598
14599 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
14600
14601         * calls.c (emit_library_call_value_1): Use valreg instead
14602         of hard_libcall_value.
14603
14604 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
14605
14606         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
14607         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
14608         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
14609         (movhi): Likewise.
14610         (movqi): Likewise.
14611         (movdf): Likewise.
14612         (movsf): Likewise.
14613         (movdi): Likewise.
14614         (movti): Likewise.
14615
14616         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
14617         mode instead of wider_mode is being used.
14618
14619 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
14620
14621         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
14622         of 'r'. Use q_regs_operand.
14623         (andsi_1+2): Use q_regs_operand.
14624
14625 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
14626
14627         * builtins.c (get_memory_rtx): Always put into alias set 0.
14628
14629 2000-07-03  Nick Clifton  <nickc@cygnus.com>
14630
14631         * config/arm/arm.md: Fix post increment and pre increment
14632         peepholes so that they do not generate UNPREDICATBLE opcodes.
14633         (ie ones where the increment clobbers the source/destination).
14634
14635 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
14636
14637         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
14638         change too big for -mtiny-stack" a warning, if larger than 63.
14639         (out_set_stack_ptr): Change the logic so -mno-interrupts is
14640         always safe to use on possible future devices.
14641         (function_prologue): Write SPH before SPL, for consistency.
14642         If interrupt_func_p true, we know we have enabled interrupts.
14643         (avr_num_arg_regs): New function.  Round up to even number of
14644         bytes if no -mpack-args or if calling a libgcc function.
14645         (function_arg, function_arg_advance): Use it.
14646         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
14647         Output "movw" if available.
14648         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
14649         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
14650         (asm_output_section_name): Add blanks for consistent output.
14651         (encode_section_info): Set TREE_READONLY for progmem data to
14652         avoid gas warnings about changed section attributes.
14653         (avr_hard_regno_mode_ok): Force non-QImode data to start in
14654         even numbered registers on devices with "movw".
14655         * config/avr/avr.h (MASK_*): Define bits for target_flags.
14656         (TARGET_SWITCHES): Mark help strings for translation.
14657         Add new -mpack-args and -menhanced switches.
14658         (TARGET_OPTIONS): Mark help strings for translation.
14659         (progmem_section): Add section attributes.
14660         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
14661         Output "movw" if available.
14662         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
14663         New patterns.
14664         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
14665         call convention (arguments aligned on even registers).
14666         (_cleanup, _exit): Make weak symbols libc can override.
14667
14668 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14669
14670         * fp-bit.h: New file.
14671
14672         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
14673         Comment #endif statements.
14674         (__thenan_sf, __thenan_df): Add missing braces around initializer.
14675
14676 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
14677
14678         * gcse.c (compute_pre_data): Compute ae_kill using other local
14679         properties instead of calling compute_ae_kill.
14680
14681         * alias.c (init_alias_analysis): Do not call
14682         prologue_epilogue_contains until after reload has completed.
14683
14684 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
14685
14686         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
14687         (genrtl_finish_compound_stmt): Likewise.
14688         (genrtl_compound_stmt): Change to return void.
14689
14690         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
14691         move code from here to ...
14692         (genrtl_compound_stmt): ... here.
14693         (genrtl_finish_compound_stmt): Remove.
14694         (expand_stmt): Add comment.
14695
14696 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
14697
14698         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
14699         and VOID_TYPE_P.
14700
14701 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
14702
14703         * cpplib.h (struct cpp_reader): New field include_depth.
14704         (struct cpp_printer): Rename last_bsd to last_id.
14705         * cppfiles.c (read_include_file): Bump include_depth.
14706         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
14707         (output_line_command): Output correct #line if a header
14708         is including itself and is not protected against multiple inclusion.
14709         Use include_depth instead of buffer_stack_depth, last_id instead of
14710         last_bsd.
14711         * cppinit.c (cpp_start_read): Initialize last_id instead of
14712         last_bsd.
14713
14714 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
14715
14716         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
14717         (c-semantics.o): New target.
14718
14719         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
14720         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
14721         (genrtl_clear_out_block): Likewise.
14722         (genrtl_goto_stmt): Likewise.
14723         (genrtl_expr_stmt): Likewise.
14724         (genrtl_decl_stmt): Likewise.
14725         (genrtl_if_stmt): Likewise.
14726         (genrtl_while_stmt): Likewise.
14727         (genrtl_do_stmt): Likewise.
14728         (genrtl_return_stmt): Likewise.
14729         (genrtl_for_stmt): Likewise.
14730         (genrtl_break_stmt): Likewise.
14731         (genrtl_continue_stmt): Likewise.
14732         (genrtl_scope_stmt): Likewise.
14733         (genrtl_switch_stmt): Likewise.
14734         (genrtl_case_label): Likewise.
14735         (genrtl_begin_compound_stmt): Likewise.
14736         (gerntl_finish_compound_stmt): Likewise.
14737         (genrtl_compound_stmt): Likewise.
14738         (genrtl_asm_stmt): Likewise.
14739         (genrtl_decl_cleanup): Likewise.
14740         (DECL_ANON_UNION_ELEMS): Likewise.
14741         (emit_local_var): Likewise.
14742         (make_rtl_for_local_static): Likewise.
14743         (expand_cond): Likewise.
14744         (expand_stmt): Likewise.
14745         (c_expand_return): Likewise.
14746         (c_expand_start_case): Likewise.
14747         (do_case): Likewise.
14748         (COMPOUND_STMT_NO_SCOPE): Likewise.
14749         (c_expand_asm_operands): Likewise.
14750         (NEW_FOR_SCOPE_P): New macro.
14751         (expand_expr_stmt_fn): New type.
14752
14753         (set_current_function_name_declared): Likewise.
14754         (current_function_name_declared): Likewise.
14755         (lang_expand_stmt): Likewise.
14756         (stmts_are_full_exprs_p): Likewise.
14757         (anon_aggr_type_p): Likewise.
14758         (lang_expand_expr_stmt): Likewise.
14759         (build_case_label): Likewise.
14760
14761         * c-decl.c (lang_expand_expr_stmt): Initialize.
14762         (stmts_are_full_exprs_p): Define.
14763         (current_function_name_declared): Likewise.
14764         (do_case): Likewise.
14765         (lang_expand_stmt): Likewise.
14766         (set_current_function_name_declared): Likewise.
14767         (anon_aggr_type_p): Likewise.
14768
14769         * c-semantics.c: New file.
14770         (expand_cond): Moved from cp/semantics.c.
14771         (genrtl_do_pushlevel): Likewise.
14772         (genrtl_clear_out_block): Likewise.
14773         (genrtl_goto_stmt): Likewise.
14774         (genrtl_expr_stmt): Likewise.
14775         (genrtl_decl_stmt): Likewise.
14776         (genrtl_if_stmt): Likewise.
14777         (genrtl_while_stmt): Likewise.
14778         (genrtl_do_stmt): Likewise.
14779         (genrtl_return_stmt): Likewise.
14780         (genrtl_for_stmt): Likewise.
14781         (genrtl_break_stmt): Likewise.
14782         (genrtl_continue_stmt): Likewise.
14783         (genrtl_scope_stmt): Likewise.
14784         (genrtl_switch_stmt): Likewise.
14785         (genrtl_case_label): Likewise.
14786         (genrtl_begin_compound_stmt): Likewise.
14787         (genrtl_finish_compound_stmt): Likewise.
14788         (genrtl_compound_stmt): Likewise.
14789         (genrtl_asm_stmt): Likewise.
14790         (genrtl_decl_cleanup): Likewise.
14791         (make_rtl_for_local_static): Moved from cp/decl.c.
14792         (emit_local_var): Likewise.
14793         (expand_stmt): Define.
14794
14795         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
14796         (c_expand_return): Likewise.
14797         (c_expand_start_case): Likewise.
14798
14799 2000-07-01  Richard Henderson  <rth@cygnus.com>
14800
14801         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
14802         with the low 13 bits set.
14803         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
14804         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
14805         of the low 13 bits into a CONST plus an adddi3.
14806         (load_symptr): Set RTX_UNCHANGING_P.
14807
14808 See ChangeLog.3 for earlier changes.