OSDN Git Service

accommodate ancient bourne shells
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-12-27  Bruce Korb  <bkorb@gnu.org>
2
3         * fixinc/Makefile.in: fix for ancient Bourne shell
4         * fixinc/Makefile.BEOS: obsolete
5         * fixinc/Makefile.DOS: obsolete
6
7 2000-12-27  Bernd Schmidt  <bernds@redhat.com>
8
9         * sched-deps.c (get_condition, conditions_mutex_p): New functions.
10         (add_dependence): Use them to avoid adding unnecessary dependencies
11         between conditionally executed insns.
12         (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
13         dependency lists if current insn is a COND_EXEC.
14  
15 2000-12-27  Geoffrey Keating  <geoffk@redhat.com>
16
17         * config/rs6000/rs6000.md (define_attr "length"): Correct
18         calculation.
19
20 2000-12-26  Kazu Hirata  <kazu@hxi.com>
21
22         * config/h8300/h8300.c: Fix a comment typo.
23         (get_shift_alg): Fix a typo in the assembly code for 12-bit
24         ASHIFTRT in HImode.  Do not output extra whitespace after one line
25         of assembly code.  Output a tab after an opcode instead of a
26         space.
27         (emit_a_shift): Output a tab after an opcode instead of a space.
28
29 2000-12-23  Marek Michalkiewicz  <marekm@linux.org.pl>
30
31         * config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr,
32         out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of
33         %4 in output templates, do not modify operands passed by the caller.
34
35 2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>
36
37         * builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS):
38         Don't define.
39         * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS,
40         BUILT_IN_LLABS and BUILT_IN_IMAXABS.
41         * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for
42         builtin labs, llabs and imaxabs.
43         (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS
44         and BUILT_IN_IMAXABS.
45
46 2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>
47
48         * c-common.c (builtin_function_2): New function.
49         (c_common_nodes_and_builtins): Use it to define each pair (foo,
50         __builtin_foo) of builtins in one place.
51
52 2000-12-22  Joseph S. Myers  <jsm28@cam.ac.uk>
53
54         * gccbug.in: Add libgcj and preprocessor categories.
55
56 2000-12-22  Bernd Schmidt  <bernds@redhat.com>
57
58         * config/ia64/ia64.c (itanium_reorder): Only schedule stops in
59         the final scheduling pass.
60
61 2000-12-22  Nick Clifton  <nickc@redhat.com>
62
63         * config/arm/arm.h (struct machine_function): Add new field
64         'lr_save_eliminated'.
65         * config/arm/arm.c (arm_compute_save_reg_mask): Do not include the
66         link register if its save has been eliminated.
67         (output_arm_prologue): Mention if the save of the link register
68         has been eliminated.
69         (output_arm_epilogue): Rename 'live_regs_mask' to
70         'saved_regs_mask'.
71         Test 'saved_regs_mask' for the link register, not regs_ever_live.
72         (arm_expand_prologue): If the link register has not been saved set
73         lr_save_eliminated and emit a USE to prevent later passes from
74         scavenging it.
75         
76         * dwarf2out_frame_debug_expr: Allow the (scratch) frame
77         pointer to be initialised from the stack pointer plus a
78         constant.
79
80 2000-12-22  Bernd Schmidt  <bernds@redhat.com>
81
82         * regrename.c (struct du_chain): New field "earlyclobber".
83         (enum scan_actions): Remove unused entry "note_reference".
84         (enum scan_actions_name): Likewise.
85         (note_sets, clear_dead_regs, merge_overlapping_regs): New static
86         functions.
87         (regrename_optimize): Use them to compute unavailable regs; get
88         rid of the more simpleminded code we used to have here.
89         Use a tick array to ensure registers are allocated in a more
90         round-robin way.  Disable code that only optimizes registers
91         that were seen more than once.
92         (referenced_regs): Remove variable.
93         (scan_rtx_reg): New arg "earlyclobber".  All callers changed.
94         Store its value in newly generated du_chain structures.
95         Add new du_chains at the end, not the start, of the list.
96         Don't handle the "note_reference" action.
97         (scan_rtx): New arg "earlyclobber".  All callers changed.
98         (build_def_use): Lose code to keep track of referenced regs.
99
100 2000-12-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
101
102         * Makefile.in (sched-deps.o, sched-rgn.o): Fix dependency typo.
103
104         * fp-bit.h (usi_to_float): Add prototype.
105
106         * i386.c (ix86_expand_builtin): Delete unused label.
107
108         * dwarf2out.c (file_info_cmp): Prototype.
109         (dwarf2out_line): Hide variable `old_in_use'.
110         
111         * objc-act.c (objc_fatal): Delete.
112
113         * sched-vis.c (visualize_stall_cycles): Remove unused variable.
114
115         * system.h (getopt): Fix error in last change.
116
117         * varasm.c (assemble_trampoline_template): Constify.
118
119 2000-12-22  Jason Merrill  <jason@redhat.com>
120
121         * collect2.c (main): Use auto_demangling.
122
123 2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
124
125         * function.c (assign_parms): Update parm's DECL_INCOMING_RTL
126         when optimizing PARALLEL to REG.
127
128 2000-12-22  Graham Stott  <grahams@redhat.com>
129
130         * reload.c (update_auto_inc_notes): New, broken out from ...
131         (find_reloads_address_1): ... use here, also correct possible
132         use of uninitialised reloadnum.
133
134 2000-12-21  David O'Brien  <obrien@FreeBSD.org>
135
136         * config/freebsd.h (LIB_SPEC): remove -kthread option.
137
138 2000-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
139
140         * resource.c (mark_set_resources): Use MARK_SRC_DEST for
141         PRE_MODIFY and POST_MODIFY cases.
142
143         * rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY.
144
145 2000-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
146
147         * md.texi (Looping Patterns): New node.
148
149 2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>
150
151         * gcc.texi, cpp.texi: Update last-updated dates.
152
153 2000-12-21  Chandrakala Chavva  <cchavva@redhat.com>
154
155         * varasm.c (output_addressed_constants): Use language specific
156         expander on unknown nodes.
157
158 2000-12-21  Graham Stott  <grahams@redhat.com>
159
160         * combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes.
161
162 2000-12-21  Bernd Schmidt  <bernds@redhat.com>
163
164         * Makefile.in (out_object_file): Depend on sched-int.h.
165         * rtl.h (single_set_1): New macro.
166         (single_set_2): Renamed from single_set_1 and extra argument added.
167         * rtlanal.c (single_set_2): Likewise.
168
169         * config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate,
170         ia64_adjust_cost, ia64_sched_init, ia64_sched_finish,
171         ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue):
172         Declare.
173         * config/ia64/ia64.c: Include "sched-int.h".
174         (hard_regno_rename_ok): Also disallow renaming from the various
175         reg_save_* regs.
176         (ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class,
177         ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p,
178         safe_group_barrier_needed_p, fixup_errata): New static functions.
179         (rtx_needs_barrier):  Handle bundle selector and cycle display
180         insns.
181         (emit_insn_group_barriers): Accept additional FILE * arg.  All
182         callers changed.  Rework to only generate stop bits between
183         basic blocks that haven't been inserted by scheduling.
184         (struct bundle, struct ia64_packet): New structures.
185         (NR_BUNDLES, NR_PACKETS): New macros.
186         (bundle, packets, type_names): New static arrays.
187         (ia64_final_schedule): New variable.
188         (ia64_single_set, insn_matches_slot, ia64_emit_insn_before,
189         gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles,
190         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
191         find_best_packet, itanium_reorder, dump_current_packet, schedule_stop):
192         New static functions.
193         (ia64_issue_rate, ia64_sched_init, ia64_sched_reorder,
194         ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New
195         functions.
196         (ia64_reorg): Perform a final scheduling pass.
197         * config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs.
198         (MAX_CONDITIONAL_EXECUTE, ADJUST_COST, ISSUE_RATE, MD_SCHED_INIT,
199         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_FINISH,
200         MD_SCHED_VARIABLE_ISSUE): Define macros.
201         (ia64_final_schedule): Declare variable.
202         * config/ia64/ia64.md (attr itanium_class): Add some more classes.
203         (attr type): Account for them.
204         (itanium_requires_unit0): New attribute.
205         (function units): Rewrite.
206         (some splitters): Don't create scheduling barriers here.
207         (gr_spill_internal, gr_restore_internal): Don't predicate the
208         pseudo-op.
209         (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
210         bundle_selector): New patterns.
211         (insn_group_barrier): Now has an operand.
212         
213 2000-12-21  DJ Delorie  <dj@redhat.com>
214
215         * dwarf2out.c (simple_decl_align_in_bits): new
216         (field_byte_offset): Try both the type align and the
217         decl align, use whichever works, preferring the type align.
218
219 2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>
220
221         * gccbug.in: Fix typo.
222
223 2000-12-20  Benjamin Kosnik  <bkoz@redhat.com>
224
225         * Makefile.in (gcc_gxx_target_include_dir): Use instead of
226         build_tooldir and libstdcxx_incdir.
227
228 2000-12-20  Robert Lipe <robertlipe@usa.net>
229
230         * haifa-sched.c (schedule_block): Provide empty source statement
231         if not MD_SCHED_REORDER2.
232
233 2000-12-20  Richard Henderson  <rth@redhat.com>
234
235         * rtl.h (REG_NON_LOCAL_GOTO): New.
236         * rtl.c (reg_note_name): Update.
237         * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note.
238         * builtins.c (expand_builtin_longjmp): Likewise.
239         * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do
240         not emit an edge.
241
242 2000-12-20  Marek Michalkiewicz  <marekm@linux.org.pl>
243
244         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r):
245         Do not output undefined opcodes where source or destination register
246         overlaps with modified pointer register.  Handle (X + d) addresses.
247         * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length
248         in alternatives with memory operand.
249
250 2000-12-20  Richard Henderson  <rth@redhat.com>
251
252         * c-typeck.c (build_asm_stmt): New, broken out from ...
253         (c_expand_asm_operands): ... here.  Just do rtl expansion.
254         (c_expand_return): Return the new stmt node.
255         (c_start_case, do_case): Likewise.
256         * c-common.c (c_expand_expr_stmt): Likewise.
257         * c-common.h: Update declarations.
258         * c-tree.h: Likewise.
259         * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
260         * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace.
261         (nested_function, notype_nested_function): Likewise.
262         (compstmt): Return the compound statement not the binding level.
263         (lineno_labeled_stmt): Simplify.
264         (lineno_stmt, lineno_label): Set STMT_LINENO.
265         (stmt, label): Return the new stmt node.
266
267 2000-12-20  Bernd Schmidt  <bernds@redhat.com>
268
269         * Makefile.in (OBJS): Add sched-ebb.o.
270         (sched-ebb.o): New rule.
271         (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H).
272         (haifa-sched.o): Depend on insn-flags.h.
273         * haifa-sched.c: Include "insn-flags.h".
274         (priority): Don't access BLOCK_NUM, use the new contributes_to_priority
275         callback.
276         * rtl.h (schedule_ebbs): Declare.
277         * sched-int.h (struct sched_info): Add new members
278         contributes_to_priority and compute_jump_reg_dependencies.
279         * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies):
280         New functions.
281         (region_sched_info): Add them.
282         * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h".
283         * sched-ebb.c: New file.
284         * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs.
285
286         * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly
287         handle all relational operators.
288
289 2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
290
291         * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
292         * tm.texi: Document it.
293
294 2000-12-19  Benjamin Kosnik  <bkoz@redhat.com>
295
296         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir
297         instead of gcc_tooldir.
298
299 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
300
301         * system.h (getopt): Update prototype to match include/getopt.h.
302
303 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
304
305         From Jeff Law.
306         * pa.c (basereg_operand): Simplify.
307
308 2000-12-19  Bernd Schmidt  <bernds@redhat.co.uk>
309
310         * haifa-sched.c (rm_line_notes): Arguments are now head and tail,
311         not block number.  All callers and prototype changed.
312         (set_priorities): Likewise.
313         (save_line_notes): Add head and tail arguments; all callers and
314         prototype changed.
315         (restore_line_notes): Likewise.  Don't crash on insns generated
316         during scheduling.
317         (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros.
318         Call MD_SCHED_INIT with additional argument.
319         When starting a new cycle, emit cycle_display insns if available.
320         Don't stop scheduling when encountering a JUMP_INSN, but add another
321         call to schedule_more_p in the inner loop.
322         Call MD_SCHED_REORDER2 after scheduling an insn.
323         Call MD_SCHED_FINISH once all insns are scheduled.
324         (sched_init): Compensate for the fact that get_block_head_tail
325         doesn't include leading notes.
326         * sched-deps.c (free_deps): Free vectors here.
327         * sched-rgn.c (compute_block_backward_dependencies): Not here.
328         (last_was_jump): New static variable.
329         (schedule_more_p): Test it.
330         (init_ready_list): Initialize it.
331         (can_schedule_ready_p): Set it if we have a JUMP_INSN.
332
333         * config/i386/i386.h (MD_SCHED_INIT): Add new arg.
334         * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg.
335         * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg.
336
337         * md.texi (cycle_display): Document.
338         * tm.texi (MD_SCHED_INIT): Document new arg.
339         (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document.
340
341         * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite
342         to use different representation.  All callers changed.
343         (and_reg_cond): Renamed from nand_reg_cond; caller changed.
344         (init_propagate_block_info): Don't test flags to determine
345         whether to compute conditional lifetimes.
346         Adjust code for new representation of conditional lifetimes.
347         (mark_regno_cond_dead): Similar adjustment.
348         (free_reg_cond_life_info): Similar adjustment.
349         (elim_reg_cond): New function.
350         (flush_reg_cond_1): Use it.
351
352 2000-12-19  Catherine Moore  <clm@redhat.com>
353
354         * reload1.c (reload_combine): Take multi-hard-regs into account
355         when processing CALL_INSN_FUNCTION_USAGE.
356
357 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
358
359         * invoke.texi (-print-search-dirs): Make references to cpp refer
360         to cpp0 instead.
361
362 2000-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
363
364         * fold-const.c (tree_expr_nonnegative_p): Treat truth values as
365         non-negative.
366
367 Tue Dec 19 00:37:08 2000  J"orn Rennecke <amylaar@redhat.com>
368
369         * reload.c (push_reload): When using a dying register for the reload
370         register in an in-out reload, use outmode if wider than inmode.
371
372 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
373
374         * config/d30v/d30v.h (EXIT_BODY): Update comment.
375
376 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
377
378         * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING.
379         * tm.texi (EXIT_BODY): Update documentation.
380         * config/freebsd.h, config/netware.h, config/arm/coff.h,
381         config/arm/conix-elf.h, config/arm/unknown-elf.h,
382         config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h,
383         sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some
384         commented out) and associated comments.
385
386 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
387
388         * c-common.c (STD_C9L, ADJ_STD): Define.
389         (printf_length_specs, scanf_length_specs): Mark "ll" as standard
390         STD_C9L.
391         (T99_LL): Rename to T9L_LL.
392         (T99_ULL): Rename to T9L_ULL.
393         (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL
394         instead of T99_LL and T99_ULL.
395         (check_format_info_main): Use ADJ_STD on all format standard
396         versions being compared.
397         * c-common.h: Declare warn_long_long.
398         * c-tree.h: Don't declare warn_long_long.
399
400 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
401
402         * COPYING: Update to current
403         ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
404         to 19yy as example year in copyright notice).
405
406 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
407
408         * c-lex.c (cb_file_change): Treat in_system_header as strictly
409         boolean (0 or 1).
410
411 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
412
413         * cppmain.c: Update print.lineno with -P.
414
415 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
416
417         * c-lex.c: s/change_file/file_change.
418         * cpplib.h: Similarly.
419         * cppmain.c: Similarly.
420         * fix-header.c: Similarly.
421         * cppfiles.c (stack_include_file): Pass the buffer location and
422         size to cpp_push_buffer.  Generate the file_change callback,
423         so that sysp is already set.
424         * cpphash.h: Add _cpp_do_file_change.
425         * cpplib.c (do_line): Set buffer->sysp directly. Generate the
426         file_change callback after setting sysp.
427         (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception
428         here.
429         (cpp_push_buffer): Don't generate a callback.  Clear sysp.
430         (cpp_pop_buffer): Clean up logic.
431
432 2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>
433
434         * configure.in (gcc_gxx_include_dir): Simplify.
435         (libstdcxx_incdir): Export.
436         * configure: Regenerate.
437         * Makefile.in (PREPROCESSOR_DEFINES): Add in
438         GPLUSPLUS_TOOL_INCLUDE_DIR bits here..
439         (libstdcxx_incdir): Add.
440         * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path.
441
442 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
443
444         * c-lex.c (lex_lineno): Remove.
445         (init_c_lex, c_lex): Remove lex_lineno.
446         (cb_change_file): Update lineno correctly, both before calling
447         push_srcloc and before leaving the function.
448         (cb_def_pragma): Set lineno before outputting diagnostics.
449
450 Sun Dec 17 18:45:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
451
452         * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
453         Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE.
454         Use print_node_brief to print bounds.
455
456 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
457
458         * cpplib.h (struct cpp_reader): Remove references to string_pool
459         and temp_string_pool.
460         * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using
461         ident_pool in place.
462         * cpplex.c (parse_number, unescaped_terminator_p, parse_string,
463         save_comment, cpp_token_as_text): Similarly.
464         * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly.
465         * cppmacro.c (make_number_token, builtin_macro, lock_pools,
466         unlock_pools, stringify_arg, paste_tokens): Similarly.
467
468 Sun Dec 17 12:41:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
469
470         * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case.
471         (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise.
472         (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise.
473
474 2000-12-17  Richard Earnshaw  <rearnsha@arm.com>
475
476         * Makefile.in (check-po): Use $(MAKE).
477         (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise.
478
479 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
480
481         * cppmain.c (check_multiline_token): New function.
482         (scan_buffer): Use it.
483         (cb_change_file): Restructure to avoid warning.
484         * cpperror.c (print_location): Initialize col.
485
486 2000-12-14  Philipp Thomas  <pthomas@suse.de>
487
488         * protoize.c (main): Correctly set locale categories.
489         * gcc.c (main): Likewise.
490         * cppmain.c (general_init): Likewise.
491         * toplev.c (main): Likewise.
492         * gcov.c (main): Likewise.
493         * collect2.c (main): Likewise.
494
495 2000-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
496
497         * c-common.c (c_common_nodes_and_builtins): Create a
498         cstring_endlink, use it.  Rename int_ftype_string_string to
499         int_ftype_cstring_cstring, string_ftype_string_int to
500         string_ftype_cstring_int, and string_ftype_string_string to
501         string_ftype_cstring_cstring.  Prefer sizetype_endlink and
502         int_endlink to manually recreating them.  Fix the prototype
503         set for __builtin_strspn/__builtin_strcspn.
504
505 2000-12-12  Marek Michalkiewicz  <marekm@linux.org.pl>
506
507         * config/avr/avr.c (out_set_stack_ptr): Update comment.
508         (print_operand): Add support for %~ and %o.
509
510 2000-12-17 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
511
512         * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code.
513
514 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
515
516         * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
517         * cpperror.c (print_containing_files): Get right line number.
518         (print_location): Output column of 1 if 0.
519         * cppfiles.c (stack_include_file): cpp_push_buffer handles
520         the callback.
521         * cpphash.h (_cpp_do_file_change): No longer external.
522         * cpplib.c (do_file_change): Now local to cpplib.c.
523         (do_line): Fake a buffer stack for preprocessed files.
524         (cpp_push_buffer): Create a file_change callback.  Handle faked
525         buffers.
526         (cpp_pop_buffer): Similarly.
527         * cpplib.h: BUF_FAKE: New buffer type.
528         * cppmain.c: Update to handle correct file renaming where a
529         #line is the first line of the main file, and produce only
530         the renamed file, not the original file, as output.
531
532 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
533
534         * config/c4x/c4x.md: Remove redundant @s from output patterns.
535
536 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
537             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
538
539         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
540
541         * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
542
543         * config/c4x/c4x.c (c4x_init_pragma): New function.
544         (c_lex_func): New variable.
545         (c4x_parse_pragma): Use c_lex_func.
546
547 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
548             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
549
550         * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument
551           to c4x_init_builtins.
552
553         * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
554
555         * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.      
556         (c4x_output_ascii):  Fix.
557         
558 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
559             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
560
561         * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define.
562
563         * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype.
564         (c4x_expand_builtin): Likewise.
565
566         * config/c4x/c4x.c (c4x_init_builtins): New function.
567         (c4x_expand_builtin): Likewise.
568
569         * config/c4x/c4x.md (floatunsqihf2): New pattern.
570         (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise.
571         (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise.
572         (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise.
573         (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
574
575 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
576         
577         * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
578         * libgcc2.c (__absvsi2): Use Wtype and DWtype.
579         (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
580         (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.
581
582 2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
583
584         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block
585         statement in do/while(0).
586
587 Sat Dec 16 19:56:24 MET 2000  Jan Hubicka  <jh@suse.cz>
588
589         * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno,
590         lshrhi3_cmpno): Remove redundant '@' from the template.
591
592         * i386.md (cmpstrsi_1): Fix type of the compare.
593
594         * genattrtab.c (attr_rtx_cost): New function.
595         (simplify_test_exp): Avoid overactive inlining; use temporary
596         obstacks for tests.
597
598 Sat Dec 16 10:41:11 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
599
600         * diagnostic.c (finish_abort): Deleted.
601         (fatal): Add code from finish_abort.
602         (error_recursion, fancy_abort): Call fatal, not finish_abort.
603         (trim_filename): Remove leading "../".
604         * diagnostic.h (finish_abort): Deleted.
605         * toplev.c (crash_signal): Call fatal, not finish_abort.
606
607         * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
608         as if size were variable.
609
610         * expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
611
612 2000-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
613
614         * tradcpp.c: T_WARNING: New.
615         (do_warning): New function.
616         (finclude): Skip past the newline and increase the line number
617         before calling output_line_command.
618         (do_line): Skip the new line after output_line_command.  Don't  
619         pre-decrement the line number.   
620
621 2000-12-15  Diego Novillo  <dnovillo@redhat.com>
622
623         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to
624         _GLOBAL_OFFSET_TABLE_ when using Intel syntax.
625
626 2000-12-15  Jakub Jelinek  <jakub@redhat.com>
627
628         * gcc.c (cpp_options): Pass -fno-operator-names.
629         * cpplib.h (struct cpp_options): Add operator_names.
630         * cppinit.c (cpp_create_reader): Initialize it.
631         (initialize_builtins): If -fno-operator-names, don't add
632         C++ alternate operator names.
633         (COMMAND_LINE_OPTIONS): Add -fno-operator-names.
634         (cpp_handle_option): Clear operator_names.
635
636 2000-12-15  Jason Merrill  <jason@redhat.com>
637
638         * jump.c (jump_optimize_1): Don't delete the line note after the
639         prologue even if it seems redundant.
640
641         * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P
642         on all insns used to adjust the stack.
643
644 Fri Dec 15 15:32:16 MET 2000  Jan Hubicka  <jh@suse.cz>
645
646         * combine.c (cant_combine_insn_p): Get around SUBREGs when determining
647         hardreg<->reg moves.
648
649 Fri Dec 15 14:48:37 MET 2000  Jan Hubicka  <jh@suse.cz>
650
651         * genrecog.c (add_to_sequence): Remove special case for
652         const_int_operand.
653         (maybe_both_true): Return 1 when falling out of sequence when
654         trying to find common possition in the pattern.
655
656 Fri Dec 15 14:44:51 MET 2000  Jan Hubicka  <jh@suse.cz>
657
658         * integrate.c (copy_rtx_and_substitute): Copy mode too.
659
660 Fri Dec 15 14:11:57 MET 2000  Jan Hubicka  <jh@suse.cz>
661
662         * flow.c (notice_stack_pointer_modification_1): Cleanup.
663
664 2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
665
666         * function.c (adjust_trampoline_addr): New function.
667         (trampoline_address): Call it instead of round_trampoline_addr().
668         * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it.
669
670 2000-12-14  Zack Weinberg  <zack@wolery.stanford.edu>
671
672         * cppfiles.c (hack_vms_include_specification): Delete function
673         (not used since 1998).
674
675 Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
676
677         * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER.
678
679 2000-12-14  Jim Wilson  <wilson@redhat.com>
680
681         * alias.c (get_alias_set): Call record_component_aliases for
682         COMPLEX_TYPE.
683         (record_component_aliases): Handle COMPLEX_TYPE.
684         
685 2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
686
687         * fixinc/gnu-regex.c: Disable NLS.
688
689 2000-12-14  Richard Henderson  <rth@redhat.com>
690
691         * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
692         comparison operands when that would create non-canonical rtl.
693
694         * config/i386/i386.md (umulsi3_highpart): Remove * from name.
695         (smulsi3_highpart): Likewise.
696
697 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
698
699         * gcc.c (cpp_options): Add -remap.
700
701 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
702
703        * gcc.c (cpp_options): Update to use '&'.
704        (struct switchstr): Change type of validated to save space.
705        New member 'ordering'.
706        (handle_braces, validate_switches): Update to handle '&'.       
707
708 2000-12-13  Laurynas Biveinis  <lauras@softhome.net>
709
710         * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list
711         found in a header.
712         * fixinc/fixincl.x: regenerated.
713
714 2000-12-13  DJ Delorie  <dj@redhat.com>
715
716         * config.gcc (cygwin, win32, mingw32): Use float-i386.h.
717
718 2000-12-13  Tom Tromey  <tromey@redhat.com>
719
720         * gcc.c (handle_braces): Handle %{<S*} spec correctly.
721
722 2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
723
724         * function.c (assign_parms): Optimize incoming PARALLELs into
725         REGs if possible.
726
727 2000-12-13  Bruce Korb  <bkorb@gnu.org>
728
729         * fixinc/Makefile.in(*): substantial rewrite to accommodate systems
730         that cannot handle bi-directional pipes, viz. BeOS and DOS.
731         * fixinc/fixlib.h(IGNORE_ARG): new macro
732         (STATIC): define for all of fixinc to use
733         * fixinc/fixfixes.c(*): eliminate unused arg warnings
734         * fixinc/fixtests.c(*): ditto
735         * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
736         * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
737         warning.  Also, eliminate the ``#ifdef emacs'' stuff.
738         (re_syntax_options): make global as it is declared so.
739         * fixinc/mkfixinc.sh: process the argument list more consistently
740         (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
741         * fixinc/procopen.c(globals): include "fixlib.h" for std defs
742         * fixinc/server.c(globals): ditto
743         * fixinc/server.h(defines): ditto
744
745 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
746
747         * tradcpp.c (special_symbol): Improve test for definedness,
748         though it is still not perfect.
749         (do_define): Don't define illegal macro names.
750         
751 2000-12-07  Aldy Hernandez  <aldyh@redhat.com>
752
753         * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
754         if changing into .bss section.
755         * config/mips/elf64.h: same.
756         * config/mips/iris6.h: same.
757         * config/mips/netbsd.h: same.
758         * config/mips/openbsd.h: same.
759
760 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
761
762         * cppfiles.c (read_name_map): Return null if open () fails.
763         (remap_filename): Simplify logic.  Add ICE if it doesn't work
764         as expected. Perform secondary lookup attempt on base filename
765         only.
766
767 Wed Dec 13 19:48:04 MET 2000  Jan hubicka  <jh@suse.cz>
768
769         * flow.c (notice_stack_pointer_modification_1): Notice midifications
770         using PRE_MODIFY and POST_MODIFY.
771
772 Wed Dec 13 17:25:32 MET 2000  Jan Hubicka  <jh@suse.cz>
773
774         * genoutput.c (process_template): Add sanity checking for '@' templates.
775
776 2000-12-13  Bernd Schmidt  <bernds@redhat.co.uk>
777
778         * simplify-rtx.c (cselib_finish): Free reg_values and used_regs
779         varrays.
780
781 2000-12-12  Mike Stump  <mrs@wrs.com>
782
783         * Makefile.in (distclean): Remove safe-ctype.c as well.
784
785 2000-12-12  Brad Lucier <lucier@math.purdue.edu>
786
787         * tradcpp.c (do_error): Cast difference of pointers to int
788         for error message.
789
790 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
791
792         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here...
793         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here.
794
795 2000-12-12  Jim Wilson  <wilson@redhat.com>
796
797         * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT.
798
799 2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
800
801         * configure.in: Simplify language enabling/disabling code.
802         * configure: Rebuilt.
803         * ch/config-lang.in (target_libs): Set.
804         (build_by_default): Set to no.
805         * cp/config-lang.in (target_libs): Set.
806         * f/config-lang.in (target_libs): Set.
807         * java/config-lang.in (target_libs): Set.
808         * objc/config-lang.in (target_libs): Set.
809
810 2000-12-12  Neil Booth  <neil@daikokuya.demon.co.uk>
811
812         * tradcpp.c (enum node_type): Add T_ERROR.
813         (do_error): New function.
814         (directive_table): Add #error handler.
815
816 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
817
818         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check
819         for powerpc*-*-*.
820         * configure: Regenerated.
821         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
822         * config/rs6000/rs6000.c (rs6000_unique_section): Use
823         STRIP_NAME_ENCODING.
824
825 Mon Dec 11 13:51:09 2000  Jeffrey A Law  (law@cygnus.com)
826
827         * pa.c (cmpib_comparison_operator): Remove GEU and LTU.
828         * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding
829         changes.
830
831 2000-12-11  Bruce Korb  <bkorb@gnu.org>
832
833         * fixinc/fixincl.tpl: initialize all fields for warnings
834         * fixinc/fixincl.x: regenerate
835
836 2000-12-11  Neil Booth  <neilb@earthling.net>
837
838         * tradcpp.h: For tradcpp, NUL is not whitespace.
839
840 2000-12-11  Neil Booth  <neilb@earthling.net>
841
842         * fix-header.c (read_scan_file): Macro expansion is not a file buffer.
843
844 2000-12-05  Marek Michalkiewicz  <marekm@linux.org.pl>
845
846         * config/avr/avr.c (compare_condition, compare_sign_p): New functions.
847         (compare_diff_p, compare_eq_p): Call compare_condition.
848         (out_tsthi, out_tstsi): Call compare_sign_p.
849         (avr_progmem_p): Check for error_mark_node.
850
851 2000-12-11  Neil Booth  <neilb@earthling.net>
852
853         * cpperror.c (print_location): New function.
854         (print_containing_files): Simplify.
855         (_cpp_begin_message): Simplify and use print_location.
856         * cppfiles.c (stack_include_file): Update.
857         (_cpp_pop_file_buffer): Update.
858         * cpphash.h (struct cpp_buffer): New members
859         include_stack_listed and type.   
860         * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
861         (run_directive): Take buffer type.  cpp_push_buffer cannot fail.
862         (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
863         handle_assertion): Update.
864         (cpp_push_buffer): Take a buffer type and file name.
865         (cpp_pop_buffer): Update.  Clear include_stack_listed.
866         * cpplib.h (input_stack_listing_current): Remove.
867         (enum cpp_buffer_type): New.
868         (cpp_push_buffer): New prototype.
869         * cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
870         * fix-header.c (read_scan_file): Update.
871
872 2000-12-10  Robert Lipe <robertlipe@usa.net>
873
874         * install.texi (i*86-*-sco3.2v5*): Remove information duplicated
875         in html version.
876
877 2000-12-10  Richard Henderson  <rth@redhat.com>
878
879         * genrecog.c (find_operand): Handle 'V' format code.
880         (find_matching_operand): New.
881         (validate_pattern): Accept '=' for an in-out operand if there
882         is another operand with a matching constraint.
883
884         * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint
885         for op1 to op0.
886
887 2000-12-10  Richard Henderson  <rth@redhat.com>
888
889         * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.
890
891 2000-12-09  Richard Henderson  <rth@redhat.com>
892
893         * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and 
894         STRICT_LOW_PART as SET_DEST have in-out constraints.
895
896 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
897
898         * c-common.c (check_function_format): Don't suggest adding format
899         attributes to functions with no parameter to which to add them.
900
901 2000-12-09  Nick Clifton  <nickc@redhat.com>
902
903         * config/arm/arm.c (arm_expand_prologue): Mark the generated
904         insn not the set as being DWARF2_FRAME_RELATED_P.
905
906 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
907
908         * Makefile.in: use $(build_exeext) for all build
909         system executable targets.
910
911 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
912
913         * install.texi: remove i[345]86-*-winnt3.5 section.
914         * configur.bat: removed.
915         * config/msdos: directory removed.
916
917 2000-12-09  Neil Booth  <neilb@earthling.net>
918
919         * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h.
920         * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete.
921         * cpplex.c (parse_identifier): Improve diagnostic.
922         (_cpp_lex_token): Return unconditionally at the end of a directive.
923         * cpplib.c (read_flag): Verify legality of each flag.
924         (end_directive): Resotre pfile->skipping before skip_rest_of_line.
925         (do_line): Use the new read_flag.
926         * cppmacro.c (struct cpp_macro, parse_arg, replace_args,
927         check_macro_redefinition, parse_params): Rename var_args to
928         variadic.
929
930 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
931
932         * .cvsignore: Add info files.
933
934 2000-12-08 Laurynas Biveinis <lauras@softhome.net>
935
936         * config/winnt: Remove obsolete directory.
937         * install.texi (Configurations): Remove obsolete documentation for
938         Windows NT.
939
940 2000-12-08  Joseph S. Myers  <jsm28@cam.ac.uk>
941
942         * configure.in: Don't define INSTALL_INFO.
943         * configure: Regenerate.
944         * Makefile.in (INSTALL_INFO): Remove.
945         (info): Depend on info files in source directory.
946         (cpp.info, gcc.info, c-tree.info): Build info files in source
947         directory.
948         (distclean): Don't remove info files.
949         (maintainer-clean): Remove info files from source directory.
950         (install-normal): Depend on install-info.
951         (install-info): Install info files from source directory, if they
952         exist.
953         * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org.
954
955 2000-12-08  Alexandre Oliva  <aoliva@redhat.com>
956
957         * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE
958         before taking its NOTE_LINE_NUMBER.
959
960 2000-12-08  Nick Clifton  <nickc@redhat.com>
961
962         * config/arm/arm.md (load_indirect_jump): Add pool ranges.
963
964         * extend.texi: Document ARM "interrupt" function attribute.
965         Mention that the ARM also support the "naked" function
966         attribute.
967
968         * config/arm/arm-protos.h (arm_current_func_type): Add
969         prototype.
970
971         * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define.
972         (struct machine_function): Add 'func_type' field.
973         Define bit values for 'func_type' field.
974         (ARM_FUNC_TYPE): New macro.
975         (IS_INTERRUPT): New macro.
976         (IS_VOLATILE): New macro.
977         (IS_NAKED): New macro.
978         (IS_NESTED): New macro.
979         (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE.
980
981         * config/arm/arm.c (isr_attribute_args): New Structure.  A
982         list of "interrupt" function attribute modifiers.
983         (arm_isr_value): New Function: Returns the type of the current
984         interrupt function.
985         (arm_compute_func_type): New Function: Computes the type of
986         the current function.
987         (arm_current_func_type): New Function: Returns the type of the
988         current function.
989         (use_return_insn): Use arm_current_func_type.
990         (arm_valid_type_attribute_p): Accept "interrupt" function
991         attribute.
992         (arm_comp_type_attributes): Check "interrupt" attributes.
993         (arm_valid_machine_decl): Accept "interrupt" function
994         attribute.
995         (arm_function_ok_for_sibcall): Do not allow interrupt
996         functions to use sibcalls.
997         (arm_naked_function_p): Delete.
998         (print_multi_reg): Remove redundant parameter 'hat'.
999         (arm_compute_save_reg_mask): New Function: Compute a bit mask
1000         of registers saved during the current function's prologue.
1001         (output_arm_return_instruction): Use arm_current_func_type.
1002         Generate return instruction when LR is not poppsed off the
1003         stack.
1004         (arm_volatile_func): Delete.
1005         (output_arm_prologue): Use arm_current_func_type and
1006         arm_compute_save_reg_mask.
1007         Note presernce of interrupt functions.
1008         (arm_output_epilogue): Use arm_current_func_type and
1009         arm_compute_save_reg_mask.
1010         (arm_expand_prologue): Use arm_current_func_type and
1011         arm_compute_save_reg_mask.
1012         (arm_init_machine_status): Initialise func_type field, if
1013         necessary.
1014         (thumb_expand_prologue): Use arm_current_func_type.
1015         (output_thumb_prologue): Use arm_current_func_type.
1016
1017 2000-12-08  Brad Lucier <lucier@math.purdue.edu>
1018
1019         * tradcpp.c (do_include): Make pointer differences 64-bit clean.
1020
1021 Fri Dec  8 08:23:29 2000  J"orn Rennecke <amylaar@redhat.com>
1022
1023         * fp-bit.c (_fpmul_parts): Use USItype variables as inputs
1024         for multiplies.
1025
1026 2000-12-07  Mike Stump  <mrs@wrs.com>
1027
1028         * Makefile.in (distclean): Remove alloca.c hashtab.c.
1029
1030 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
1031
1032         * Makefile.in (HOST_RTL): Add safe-ctype.o.
1033         (safe-ctype.o): New rule.
1034         * system.h: Include safe-ctype.h, not ctype.h.  No need to
1035         wrap ctype macros.
1036
1037         * cpphash.h: Zap IStable and related macros.  Define is_* in
1038         terms of safe-ctype.h macros.
1039         * cppinit.c: Delete the IStable and all related code.
1040
1041         * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
1042         is_space arrays.  Delete initialize_char_syntax.  Change all
1043         references to the above arrays to use macros instead.
1044         * tradcpp.h: Define is_idchar, is_idstart, is_space, and
1045         is_nvspace in terms of safe_ctype.h's macros.
1046         * tradcif.y: is_idchar, is_idstart are macros not arrays.
1047
1048         * config/i370/i370.c, config/winnt/dirent.c,
1049         config/winnt/fixinc-nt.c, config/winnt/ld.c:
1050         Use uppercase ctype macros.  If we included ctype.h,
1051         include safe-ctype.h instead.
1052
1053         * fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
1054         ISLOWER(c) before calling TOUPPER(c).
1055         * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
1056         * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
1057         wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
1058
1059 2000-12-07  DJ Delorie  <dj@redhat.com>
1060
1061         * c-decl.c (grokdeclarator): preserve previous alignments when
1062         rebuilding array types.
1063
1064 2000-12-07  Neil Booth  <neilb@earthling.net>
1065
1066         * cppfiles.c (struct include_file): Move from cpphash.h.
1067         (_cpp_never_reread): New function.
1068         (open_file, read_include_file): Use it.
1069         (stack_include_file): Set the buffer's sysp according to the
1070         path in which the file was found.
1071         (find_include_file): Don't set sysp.
1072         (cpp_make_system_header, actual_directory): Update.
1073         (_cpp_execute_include): Do #include_next lookup handling here,
1074         not in cpplib.c.  Use _cpp_never_reread.
1075         * cpphash.h (struct_include_file): Remove.
1076         (struct cpp_buffer): New member sysp.
1077         (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
1078         (_cpp_never_reread): New.
1079         * cpplib.c (read_line_number): Rename read_flag.  Rework slightly.
1080         (end_directive): Clear line_extension flag.
1081         (_cpp_handle_directive): Set line_extension flag for #number.
1082         (do_include_next): Handle path lookup in _cpp_execute_include.
1083         (do_line): Cleanup to use read_flag.  Don't allow flags in #line.
1084         (_cpp_do_file_change): Update.
1085         (do_pragma_once): Use cpp_never_reread.  Clean up.
1086         * cpplib.h (struct lexer_state): New member line_extension.
1087
1088 2000-12-07  Richard Henderson  <rth@redhat.com>
1089
1090         * flow.c (calculate_global_regs_live): Force the stack pointer live
1091         after reload as well.
1092
1093 2000-12-07  Bruce Korb  <bkorb@gnu.org>
1094
1095         * fixinc/Makefile.*(exeext): the variables are exeext, the
1096         substitution expression is build_exeext.
1097
1098 2000-12-07  Neil Booth  <neilb@earthling.net>
1099
1100         * c-common.c (parse_in): Make a cpp_reader *.
1101         * cppfiles.c (_cpp_fake_include): Remove.
1102         * cpphash.h: Similarly.
1103         * cpplib.c (do_line): Don't call _cpp_fake_include.  A valid
1104         #line always creates a callback; FC_RENAME if there are no
1105         #line flags.
1106         * fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
1107         The first EOF must be our get_char buffer.
1108
1109 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1110
1111         * c-common.c (warn_format_security): New variable.
1112         (check_format_info): Warn about non-literal formats with no format
1113         arguments if either -Wformat-nonliteral or -Wformat-security is
1114         specified.
1115         (set_Wformat): Set warn_format_security for settings other than 1.
1116         * c-common.h (warn_format_security): Declare.
1117         * c-decl.c (c_decode_option): Decode -Wformat-security and
1118         -Wno-format-security.
1119         * invoke.texi: Document -Wformat-security.
1120         * toplev.c (documented_lang_options): Include -Wformat-security
1121         and -Wno-format-security.
1122
1123 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1124
1125         * c-common.c (check_format_info): Warn for non-constant format
1126         strings with strftime formats if -Wformat-nonliteral.  Where the
1127         format can convert arguments, if the format is not a string
1128         literal and there are no arguments to the format, give a different
1129         warning message from the general non-string-literal case.
1130
1131 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1132
1133         * c-common.c (format_wanted_type): Add reading_from_flag.
1134         (print_char_table): Mark %s and %S formats with flag "R".
1135         (check_format_info_main): Set up reading_from_flag appropriately.
1136         If aflag, always set writing_in_flag rather than relying on the
1137         format used being a scanf format and so having it set.
1138         (check_format_types): Check for formats reading through null
1139         pointers.
1140
1141 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1142
1143         * invoke.texi (-Wformat): Document what format features are
1144         checked.
1145
1146 2000-12-06  Kazu Hirata  <kazu@hxi.com>
1147
1148         * config/h8300/h8300.h: Fix formatting.
1149
1150 2000-12-06      Joel Sherrill <joel@OARcorp.com>
1151
1152         * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
1153         h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
1154         * config.gcc (*-rtems*): Add support for gthr-rtems.h.
1155         * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
1156         config/h8300/rtems.h, config/mips/rtems.h: New files.
1157
1158 2000-12-06  Mark Kettenis  <kettenis@gnu.org>
1159
1160         * config.gcc: Reorganize handling of *-*-gnu*, to share target
1161         specific make details with Linux.  Update comments to clarify
1162         the distinction between GNU/Linux and GNU/Hurd.
1163
1164 Wed Dec  6 19:22:02 2000  Jeffrey A Law  (law@cygnus.com)
1165
1166         * contrib.texi: Fix my email address.  Update Per's
1167         list of contributions.
1168
1169 2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
1170
1171         * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX.
1172         * collect2.c (scan_libraries): Remove unused `ch'.
1173         (COFF specific stuff): Prototype ldgetname.  Declare and prototype
1174         ldbtread and ldclose.
1175
1176         * config/alpha/osf.h: Standarize copyright statement.
1177         * config/arc/arc.h: Likewise.
1178         * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise.
1179         * config/arm/arm.c config/arm/arm.h: Likewise.
1180         * config/elxsi/elxsi.h: Likewise.
1181         * config/i386/sco.h: Likewise.
1182         * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise.
1183         * config/m68k/m68kv4.h config/m68k/next21.h: Likewise.
1184         * config/m68k/sun3.h: Likewise.
1185         * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise.
1186         * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise.
1187         * config/romp/romp.h: Likewise.
1188         * config/rs6000/aix41.h: Likewise.
1189         * config/sparc/sysv4.h: Likewise.
1190         * config/we32k/we32k.c config/we32k/we32k.h: Likewise.
1191         * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise.
1192         * cpplib.h cppexp.c cselib.h profile.c: Likewise.
1193         * longlong.h: Likewise.
1194         * libgcc2.c: Likewise.
1195
1196 2000-12-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1197
1198         * machmode.def: Use correct definition for BITSIZE on targets where
1199         BITS_PER_UNIT != 8.
1200
1201 2000-12-06  Bruce Korb  <bkorb@gnu.org>
1202
1203         * fixinc/Makefile.*: Reduce differences to (ultimately) reduce
1204         the number of them.
1205
1206 2000-12-06  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1207
1208         * pa.c: Include expr.h before c-tree.h.
1209         (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered
1210         instead of reverse_condition.
1211         (print_operand): Correct predicates for GT, GE, LT and LE.  Add
1212         predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and
1213         ORDERED.
1214         (cmpib_comparison_operator): Add GEU and LTU codes.
1215         * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator.
1216         * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered,
1217         bordered): New float conditional branch patterns.
1218
1219 Wed Dec  6 21:03:41 2000  J"orn Rennecke <amylaar@redhat.com>
1220
1221         * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
1222
1223 2000-12-06  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
1224
1225         * cpplex.c (skip_escaped_newlines): Don't warn for spaces between
1226         backslash and newline, when inside a comment.
1227
1228 2000-12-06  Joseph S. Myers  <jsm28@cam.ac.uk>
1229
1230         * invoke.texi: Use @table @samp instead of @itemize @minus for
1231         table of language standards.  Fix use of @pxref.  From Zack
1232         Weinberg.  Also exclude specs documentation from generated
1233         manpage, and create separate ENVIRONMENT section.
1234
1235 2000-12-06  Michael Matz  <matzmich@cs.tu-berlin.de>
1236
1237         * gcse.c (compute_pre_data): Kill trapping expressions in
1238         destination blocks of abnormal edges.
1239
1240 2000-12-05  Richard Sandiford  <r.sandiford@redhat.com>
1241
1242         * config/mn10300/mn10300.c (mn10300_print_reg_list): Added.
1243         (mn10300_get_live_callee_saved_regs): Likewise.
1244         (mn10300_gen_multiple_store): Likewise.
1245         (store_multiple_operation): Likewise.
1246         (expand_prologue): Use mn10300_gen_multiple_store().
1247         * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added.
1248         (mn10300_get_live_callee_saved_regs): Likewise.
1249         (mn10300_gen_multiple_store): Likewise.
1250         (store_multiple_operation): Likewise.
1251         * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL
1252         tied to store_multiple_operation().
1253
1254 Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
1255
1256         * builtins.c (expand_builtin_setjmp_setup): Set
1257         current_function_has_nonlocal_label.
1258
1259 2000-12-05  Neil Booth  <neilb@earthling.net>
1260
1261         * cppfiles.c (stack_include_file): Push zero-length buffers
1262         in case of failure.  Return void, as we don't fail any more.
1263         (read_include_file): Check for files we shouldn't re-read.
1264         Don't return an error code; errors are implied by marking the
1265         file NEVER_REREAD.
1266         (_cpp_execute_include): Move the recursion and in-macro checks
1267         here.  Update for stack_include_file not failing.
1268         * cpplib.c (cpp_push_buffer): Always succeed, since
1269         _cpp_execute_include performs the recursion check.  Tidy up.
1270         * cpplib.h (cpp_push_buffer): Update prototype.
1271
1272 2000-12-05  Alexandre Oliva  <aoliva@redhat.com>
1273
1274         * sched-vis.c (visual_tbl_line_length): New variable.
1275         (get_visual_tbl_length): Set it.
1276         (visualize_stall_cycles): Don't let stalls overrun
1277         visual_tbl_line_length.
1278
1279 2000-12-05  Geoffrey Keating  <geoffk@redhat.com>
1280
1281         * global.c (global_conflicts): Allow for a REG_UNUSED note
1282         with a different mode to the REG set in the insn.
1283
1284 2000-12-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1285
1286         * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir.
1287
1288         * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS).
1289
1290 2000-12-05  Bruce Korb  <bkorb@gnu.org>
1291
1292         * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and
1293         GNU/Linux.
1294
1295 2000-12-05  Richard Earnshaw  <rearnsha@arm.com>
1296
1297         * fixinc/mkfixinc.sh: Run fixinc on netbsd.
1298         * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files,
1299         to cope with aliased copies.
1300         * fixinc/fixincl.x: Regenerate.
1301
1302 2000-12-05  Bernd Schmidt  <bernds@redhat.co.uk>
1303
1304         * sched-vis.c: Guard with #ifdef INSN_SCHEDULING.
1305         * sched-rgn.c: Likewise.
1306         (rgn_print_insn): Fix output.
1307
1308 2000-12-05  Bruce Korb  <bkorb@gnu.org>
1309
1310         * fixinc/Makefile.*: make these more consistent
1311         * fixinc/mkfixincl.sh: enable BeOS fixincludes
1312
1313 2000-12-05  Richard Henderson  <rth@redhat.com>
1314
1315         * stmt.c (warn_if_unused_value): Move side effects test earlier.
1316
1317 2000-12-05  Alan Modra <alan@linuxcare.com.au>
1318
1319         * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even
1320         when using sjlj.
1321
1322 2000-12-05  Richard Henderson  <rth@redhat.com>
1323
1324         * flow.c (calculate_global_regs_live): Only force stack pointer
1325         live before reload.  Force pic register live before reload.
1326         (insn_dead_p): Don't protect pic references from deletion.
1327
1328 2000-12-05  Joseph S. Myers  <jsm28@cam.ac.uk>
1329
1330         * invoke.texi: Add support for using texi2pod.pl.  Don't use
1331         @multitable.
1332
1333 2000-12-04  Nick Clifton  <nickc@redhat.com>
1334
1335         * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
1336         'tune_flags' for XScale nature.
1337         Remove spurious test of HARD_FLOAT and XScale flags.
1338
1339         * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
1340         contraint, accidentally changed during XScale contribution.
1341
1342         * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
1343         not create these functions if the target architecture does not
1344         support Thumb instructions.
1345
1346 2000-12-04  Joseph S. Myers  <jsm28@cam.ac.uk>
1347
1348         * ONEWS: New file with the current contents of NEWS up to EGCS
1349         1.1.
1350         * NEWS: Generate automatically from online release notes from EGCS
1351         1.0 to GCC 2.95.2, using ../contrib/gennews.
1352
1353 2000-12-04  Neil Booth  <neilb@earthling.net>
1354
1355         * tradcif.y: Move lexptr to top of file.  Add rule to handle
1356         assertions in conditional expressions.
1357         * tradcpp.c (parse_answer): Assertions do not need to go to
1358         end of line in conditional directives.
1359         (parse_assertion): Get first character of identifiers correct.
1360         (test_assertion): New function.
1361         * tradcpp.h (test_assertion): New prototype.
1362
1363 2000-12-01  Rodney Brown  <RodneyBrown@mynd.com>
1364
1365         * config.gcc: Fix typo for UnixWare 7.
1366
1367 2000-12-03  Phil Edwards  <pme@sources.redhat.com>
1368
1369         * invoke.texi:  Replace `pedwarns' with clearer text.
1370
1371 2000-12-04  Bruce Korb  <bkorb@gnu.org>
1372
1373         * fixinc/Makefile.*(clean):  don't clean autogenerated files.
1374         (mainainer-clean): clean autogenerated files
1375
1376 2000-12-04  DJ Delorie  <dj@redhat.com>
1377
1378         * md.texi: Add overview, clarify match_dup and define_expand.
1379
1380 2000-12-04  DJ Delorie  <dj@redhat.com>
1381
1382         * print-tree.c (print_node): Target-specific builtins print
1383         numbers, not names.
1384
1385 2000-12-04  Jason Merrill  <jason@redhat.com>
1386
1387         * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
1388         MODE_VECTOR_FLOAT.
1389
1390         * diagnostic.c (report_problematic_module): s/function/module/.
1391
1392         * c-lex.h: Remove decl for check_newline.
1393
1394 2000-12-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1395
1396         * README.APOLLO: Remove obsolete file.
1397
1398 2000-12-04  Neil Booth  <neilb@earthling.net>
1399
1400         * cppinternals.texi: New file.
1401
1402 2000-12-04  Neil Booth  <neilb@earthling.net>
1403
1404         * cppfiles.c (cpp_make_system_header): Take 2 booleans,
1405         and operate on current buffer.
1406         (cpp_read_file): Rename _cpp_read_file.
1407         * cpplib.c (do_line, do_pragma_system_header): Update calls to
1408         cpp_make_system_header.
1409         * fix-header.c: Similarly.
1410         * cpphash.h (_cpp_read_file): Move from...
1411         * cpplib.h: ... here.
1412         * cppinit.c (do_includes, cpp_start_read): Update appropriately.
1413
1414 2000-12-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1415
1416         * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
1417         Handle another transformation.
1418
1419 2000-12-03  Nick Clifton  <nickc@redhat.com>
1420
1421         * config.gcc: Add support for StrongARM targets.
1422         * config/arm/t-strongarm-elf: New file.
1423         * config/arm/t-strongarm-coff: New file.
1424         * config/arm/t-strongarm-pe: New file.
1425         * config/arm/strongarm-pe.h: New file.
1426
1427 2000-12-03  Nick Clifton  <nickc@redhat.com>
1428
1429         * NEWS: Mention XScale has been added.
1430         * config.gcc: Add support for XScale targets.
1431         * config/arm/arm.h: Add support for XScale processor.
1432         * config/arm/arm.c: Add support for XScale processor.
1433         * config/arm/arm.md: Add support for XScale processor.
1434         * config/arm/t-xscale-elf: New file.
1435         * config/arm/t-xscale-coff: New file.
1436         * config/arm/xscale-elf.h: New file.
1437         * config/arm/xscale-coff.h: New file.
1438
1439 2000-12-03  Richard Henderson  <rth@redhat.com>
1440
1441         * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
1442         unless exception handling is enabled, and if not using sjlj.
1443
1444         * builtins.c (expand_builtin_setjmp_setup): New.
1445         (expand_builtin_setjmp_receiver): New.
1446         (expand_builtin_setjmp): Split out _setup and _receiver functions.
1447         Move argument parsing in from ...
1448         (expand_builtin): ... here.
1449         * except.c (receive_exception_label): Branch around receiver
1450         unless new-style exceptions.  Call expand_builtin_setjmp_receiver.
1451         (start_dynamic_handler): Call expand_builtin_setjmp_setup.
1452         * expr.h: Update builtin setjmp decls.
1453
1454 2000-12-03  Bruce Korb  <bkorb@gcc.org>
1455
1456         * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
1457         build machine name.  Default to the target.
1458
1459 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
1460
1461         * Makefile.in: use $(build_canonical), not $(canonical_build).
1462
1463 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
1464
1465         * Makefile.in (OBJS): Add sched-rgn.o.
1466         (sched-rgn.o): New rule.  * haifa-sched.c (sched_verbose): No
1467         longer static.
1468         (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
1469         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
1470         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
1471         MAX_BLOCKAGE_COST): Move to sched-int.h.
1472         (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
1473         IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
1474         FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
1475         OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
1476         rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
1477         RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
1478         debug_regions, find_single_block_region, find_rgns, too_large,
1479         init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
1480         bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
1481         extract_bitlst, bblst, struct candidate, candidate_table,
1482         bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
1483         SRC_PROB, target_bb, split_edges, compute_trg_info,
1484         debug_candidate, debug_candidates, bbset, bbset_size, dom,
1485         IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
1486         rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
1487         EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
1488         compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
1489         IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
1490         MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
1491         update_live, set_spec_fed, is_pfree, find_conditional_protection,
1492         is_conditionally_protected, may_trap_exp, haifa_classify_insn,
1493         is_prisky, is_exception_free, add_branch_dependences,
1494         propagate_deps, compute_block_backward_dependences,
1495         debug_dependencies, is_cfg_nonregular, build_control_flow,
1496         new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
1497         BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
1498         UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
1499         CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
1500         target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
1501         can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
1502         rgn_rank, region_sched_info): Move to sched-rgn.c.
1503         (debug_reg_vector): Delete useless function.
1504         (get_bb_head_tail): Likewise.
1505         (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
1506         no_real_insns_p, rm_line_notes, save_line_notes,
1507         restore_line_notes, rm_redundant_line_notes, sched_init): No
1508         longer static.
1509         (rm_line_notes, save_line_notes, restore_line_notes,
1510         schedule_block, set_priorities): Change argument to be a real
1511         basic block, not one of haifa's "bb"s.  All callers changed
1512         (rm_other_notes): Initialize note_list here, not in
1513         schedule_region.
1514         (sched_finish): New function, called from schedule_insn.  * *
1515         sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
1516         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
1517         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
1518         MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
1519         (get_block_head_tail, no_real_insns_p, rm_line_notes,
1520         save_line_notes, restore_line_notes, rm_redundant_line_notes,
1521         rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
1522         sched_init, sched_finish, ready_add, insn_cost): Declare.
1523
1524 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
1525             Bruce Korb  <bkorb@gnu.org>
1526
1527         * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
1528         * fixinc/mkfixinc.sh: accept build system name as an argument.
1529         Use it for choosing the fix build method.  Use the target for
1530         selecting special fix rules.
1531
1532 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
1533
1534         * Makefile.in (OBJS): Add sched-deps.o.
1535         (sched-deps.o): New rule.
1536         * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
1537         sched-int.h.
1538         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
1539         sched-int.h.
1540         (SIZE_FOR_MODE): Delete unused macro.
1541         (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
1542         reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
1543         anti_dependency_cache, output_dependency_cache,
1544         forward_dependency_cache): Variables moved to sched-deps.c.
1545         (add_dependence, remove_dependence, find_insn_list,
1546         find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
1547         sched_analyze_insn, sched_analyze_1, sched_analyze_2,
1548         sched_analyze, group_leader, compute_forward_dependences,
1549         init_deps, free_deps, init_dependency_caches, free_dependency_caches):
1550         Functions moved to sched-deps.c.
1551         (schedule_region): Call init_deps_global and finish_deps_global
1552         instead of directly manipulating dependency data structures.
1553         * sched-deps.c: New file.
1554         (init_deps_global, finish_deps_global): New functions.
1555         * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
1556         haifa-sched.c.
1557         (h_i_d): Declare.
1558         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
1559         from haifa-sched.c.
1560
1561         * Makefile.in (OBJS): Add sched-vis.o.
1562         (sched-vis.o): New rule.
1563         * haifa-sched.c (get_unit_last_insn): New function.
1564         (sched_dump, insn_unit, actual_hazard_this_instance): No longer
1565         static.
1566         (schedule_block): Call visualize_alloc and visualize_free.  Delete
1567         spurious return statement.
1568         (init_target_units, insn_print_units, get_visual_tbl_length,
1569         init_block_visualization, print_block_visualization, safe_concat,
1570         visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
1571         print_exp, print_value, print_pattern, print_insn, target_units,
1572         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
1573         n_vis_no_unit, vis_no_unit): Move scheduling visualization
1574         functions/variables...
1575         * sched-vis.c: ...here.  New file.
1576         (visualize_alloc, visualize_free): New functions.
1577         (visualize_scheduled_insns, visualize_stall_cycles,
1578         print_block_visualization): Lose basic block argument.  All callers
1579         changed.
1580         (visualize_scheduled_insns): Use new function get_unit_last_insn.
1581         * sched-int.h (current_sched_info, sched_dump): Declare.
1582         (init_target_units, insn_print_units, init_block_visualization,
1583         print_block_visualization, visualize_scheduled_inns,
1584         visualize_no_unit, visualize_stall_cycles, visualize_alloc,
1585         visualize_free): Declare functions.
1586
1587         * sched-int.h: New file.
1588         * Makefile.in (haifa-sched.o): Depend on it.
1589         * haifa-sched.c: Include it.
1590         (no_real_insns_p): New function.
1591         (current_sched_info): New static variable.
1592         (__inline, HAIFA_INLINE): Moved to sched-int.h.
1593         (get_block_head_tail): Minor cleanup.
1594         (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
1595         rgn_print_insn, rgn_rank): New functions, broken out of
1596         rank_for_schedule, schedule_insn and schedule_block, where they
1597         are now called through function pointers in current_sched_info.
1598         (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
1599         print_insn): To display uid and block number, call the print_insn
1600         function pointer in current_schedule_info.
1601         (region_sched_info): New static variable.
1602         (sched_target_n_insns, sched_n_insns, target_n_insns): New global
1603         variables, moved out of schedule_block.
1604         (schedule_block): Return void.  All callers changed.
1605         Move some of the setup code into schedule_region.  Get head/tail
1606         from current_sched_info, and update it when done.
1607         (schedule_region): Slightly rearranged, some code moved here from
1608         schedule_block.  Call no_real_insns_p to avoid doing work for a
1609         block that consists only of notes and labels.
1610         (schedule_insns): Initialize current_sched_info.
1611
1612 2000-12-03  Neil Booth  <neilb@earthling.net>
1613
1614         * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
1615         by contexts drops AFTER argument pre-expansion, so that they
1616         remain enabled during argument pre-expansion.
1617         (_cpp_pop_context): Unconditionally re-enable a macro when
1618         dropping a context level.
1619
1620 2000-12-03  Manfred Hollstein  <manfredh@redhat.com>
1621
1622         * arm/t-linux (MULTILIB_OPTIONS): Comment.
1623         (MULTILIB_DIRNAMES): Likewise.
1624         (EXTRA_MULTILIB_PARTS): Likewise.
1625         (LIBGCC): Likewise.
1626         (INSTALL_LIBGCC): Likewise.
1627
1628 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1629
1630         * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
1631         expand_builtin_strspn, expand_builtin_strcspn): New functions.
1632         (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
1633         BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
1634
1635         * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
1636         BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
1637
1638         * c-common.c (c_common_nodes_and_builtins): Declare builtin
1639         strcat, strncat, strspn and strcspn.
1640         (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
1641
1642         * extend.texi (strcat, strcspn, strncat, strspn): Document new
1643         builtins.
1644
1645 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1646
1647         * builtins.c (expand_builtin_strcmp): Use const*_rtx when
1648         expanding strcmp at compile-time.  Add another transformation.
1649         (expand_builtin_strncmp): Add more transformations.  Call
1650         expand_builtin_memcmp, not expand_builtin_strcmp, under
1651         appropriate conditions if HAVE_cmpstrsi.
1652
1653 2000-12-02  David Edelsohn  <edelsohn@gnu.org>
1654
1655         * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
1656         instruction.
1657         (cr logic): Really make operands sequential.
1658
1659 2000-12-02  Geoffrey Keating  <geoffk@redhat.com>
1660
1661         * c-common.c (combine_strings): When the ISO C standard specifies
1662         the maximum length of a string, it doesn't include the trailing
1663         zero byte.
1664
1665         * cpplib.c (do_ifdef): Add check_eol() call.
1666         (do_ifndef): Likewise.
1667
1668 2000-12-02  Daniel Berlin  <dberlin@redhat.com>
1669             Bruce Korb  <bkorb@gnu.org>
1670
1671         * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
1672         * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
1673         * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
1674         * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
1675         use the "__need_" hackery.  It breaks them.
1676         * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
1677         Sometimes on DOS and BeOS the temp output file cannot be opened.
1678         Skip the file noisily.  Ought to be fixed instead.
1679
1680 2000-12-02  Bruce Korb  <bkorb@gnu.org>
1681
1682         From: 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1683
1684         * fixfixes.c (emit_gnu_type, format_write): Prototype.
1685         (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
1686         custom uppercase ctype macros.
1687         * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
1688         Use gcc's custom uppercase ctype macros.
1689         (main): Prototype.
1690         (machine_matches): Add static prototype and constify variable.
1691         (create_file, test_test, egrep_test): Add static prototype.
1692         (quoted_file_exists): Likewise, and constify parameters.
1693         (extract_quoted_files, internal_fix, start_fixer, fix_applies,
1694         write_replacement, test_for_changes): Add static prototype.
1695         (write_replacement, test_for_changes): Delete excess argument to
1696         `create_file'.
1697         * fixtests.c (test): Make static.
1698         * server.c (load_data, sig_handler, server_setup, find_shell): Add
1699         static prototype.
1700         (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
1701
1702 2000-12-02  Bruce Korb  <bkorb@gnu.org>
1703
1704         * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
1705         (per Laurynas Biveinis  <lauras@softhome.net>)
1706
1707 2000-12-02  Richard Earnshaw  <rearnsha@arm.com>
1708
1709         * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
1710         macros.
1711         (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
1712         (REGNO_OK_FOR_FOR_BASE_P): Delete.
1713         (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
1714         both strict and non-strict uses.
1715         (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
1716         (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
1717         (REG_OK_FOR_INDEX_P): Define in terms of above.
1718         (REG_OK_FOR_BASE_P): Delete.
1719         (REG_OK_FOR_PRE_POST_P): Delete.
1720         (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
1721         (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
1722         (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
1723         (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
1724         (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes.  Use ARM
1725         specific variants rather than general ones.  Use ARM_REG_OK_FOR_BASE_P
1726         in pre/post increment cases.
1727         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
1728         (ARM_LEGITIMIZE_ADDRESS): Similarly.
1729         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
1730         * arm.c (legitimate_pic_address): Similarly.
1731
1732 2000-12-02  Neil Booth  <neilb@earthling.net>
1733
1734         * tradcpp.c (struct answer, parse_assertion, parse_answer,
1735         canonicalize_text, find_answer): New.
1736         (do_assert, do_unassert): Provide appropriate function bodies.
1737         (union hashval): New member answers.
1738
1739 2000-11-23  Marek Michalkiewicz  <marekm@linux.org.pl>
1740
1741         * config/avr/avr.md: Document UNSPEC usage.
1742         (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
1743         Make operand 0 input only, clobber it.  Use UNSPEC, not a bogus
1744         MEM for program memory word reference.  Do not add the label to
1745         the table index in each of the asm output templates, instead ...
1746         (casesi): ... do it in RTL.  Adjust to match the above change.
1747
1748 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
1749
1750         * c-common.c (PTRDIFF_TYPE): Provide default here, ...
1751         * c-decl.c: ... not here.
1752
1753         * haifa-sched.c (sched_dump): Renamed from dump.  All users changed.
1754         (old_max_uid): New variable.
1755         (compute_forward_dependences): Renamed from
1756         compute_block_forward_dependences; changed to accept block head and
1757         tail instead of block number.  Caller changed.
1758         (free_deps, init_dependency_caches, free_dependency_caches,
1759         init_regions, sched_init): New functions, split out from
1760         schedule_insns and compute_block_backward_dependences.
1761
1762 2000-12-02  Neil Booth  <neilb@earthling.net>
1763
1764         * cppexp.c (parse_number): Update diagnostic test.
1765
1766 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
1767
1768         * reload1.c (free_for_value_p): New function, frontend to
1769         reload_reg_free_for_value_p.  All callers of the latter now call
1770         this function with an additional mode argument.
1771
1772 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1773
1774         * install.texi (Configurations): Remove obsolete documentation for
1775         hppa*-*-*.
1776
1777 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1778
1779         * install.texi (Installation): Remove obsolete description for
1780         libstdc++ which is now an integral part of GCC.
1781
1782 2000-12-01  Jim Blandy  <jimb@redhat.com>
1783
1784         * dbxout.c (dbxout_parms): Correctly describe parameters passed by
1785         invisible reference in registers, but then spilled to the stack.
1786         Remove code to emit a second stab for such parameters; it attempts
1787         to describe the value's location by introducing a synthetic C++
1788         `reference' type, and then saying the stack slot has that
1789         reference type.  This loses type information (breaking GDB's
1790         `ptype' command, among other things) just to describe a location
1791         which stabs can represent correctly in other ways.
1792
1793 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1794
1795         * final.c (output_addr_const) <PLUS>: Don't assume at least one
1796         operand is a CONST_INT.
1797
1798         * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
1799         (machine_dependent_reorg): Split all insns.
1800         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
1801         reg_class_contents[SIBCALL_REGS].
1802         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
1803         * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
1804         call_value_pcrel, call, call_value, sibcall): Match even when
1805         not optimizing.
1806         (sibcalli_pcrel, sibcall_pcrel): Likewise.  Use constraint `k'
1807         for call address.
1808         (sibcalli): Likewise.
1809
1810 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1811
1812         * c-common.c (warn_format, warn_format_y2k,
1813         warn_format_extra_args, warn_format_nonliteral): Define.
1814         (check_format_info): Check warn_format_nonliteral and
1815         warn_format_extra_args.
1816         (check_format_info_main): Check warn_format_y2k.
1817         (set_Wformat): New function.
1818         * c-common.h (warn_format_y2k, warn_format_extra_args,
1819         warn_format_nonliteral, set_Wformat): Declare.
1820         * c-decl.c (warn_format): Remove definition.
1821         (c_decode_option): Handle -Wformat-nonliteral,
1822         -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
1823         Use set_Wformat.
1824         * invoke.texi: Document these new options and -Wformat=2.
1825         * toplev.c (documented_lang_options): Add these new options.
1826
1827 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1828
1829         * builtins.def (BUILT_IN_IMAXABS): Add.
1830         * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
1831         * c-common.c (c_common_nodes_and_builtins): Create builtin
1832         functions __builtin_imaxabs, and plain imaxabs unless
1833         flag_no_nonansi_builtin outside C99 mode.
1834         (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
1835         * extend.texi: Document builtin imaxabs.
1836
1837 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1838
1839         * c-common.c: Include "defaults.h".
1840         (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
1841         (c_common_nodes_and_builtins): Create string_type_node,
1842         const_string_type_node, wint_type_node, intmax_type_node,
1843         uintmax_type_node, default_function_type, ptrdiff_type_node and
1844         unsigned_ptrdiff_type_node.
1845         * c-common.h (identifier_global_value): Declare.
1846         * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
1847         (init_decl_processing): Don't create string_type_node,
1848         const_string_type_node, wint_type_node, intmax_type_node,
1849         uintmax_type_node, default_function_type, ptrdiff_type_node and
1850         unsigned_ptrdiff_type_node.
1851         (identifier_global_value): New function.
1852
1853 2000-12-01  Neil Booth  <neilb@earthling.net>
1854
1855         * cppinit.c (initialize): Forgotten prototype.
1856         * cpplex.c (_cpp_lex_token): Loop until not skipping.
1857         Always clear PREV_WHITE upon meeting a new line.
1858         * cpplib.c (end_directive): Set pfile->skipping after
1859         skip_rest_of_line.
1860         * cpplib.h (cpp_reader): Remove macro_pos.
1861         * cppmacro.c (cpp_get_line): Don't do anything special inside
1862         macros.
1863         (parse_arg): Add PREV_WHITE if a token appears after new lines.
1864         (funlike_invocation_p): Save and restore the output position
1865         over a successful check for a '('.
1866         (enter_macro_context): Delete uses of macro_pos.
1867         (cpp_get_token): Don't use pfile->skipping.
1868
1869 2000-12-01  Phil Edwards  <pme@sources.redhat.com>
1870
1871         * diagnostic.c:  Fix typos in comments.
1872         * diagnostic.h:  Likewise.
1873
1874 2000-11-30  Phil Edwards  <pme@sources.redhat.com>
1875
1876         * rtl.texi (Machine Modes):  Document BImode and OImode.
1877
1878 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1879
1880         * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
1881         .FPP.
1882
1883 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
1884
1885         * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
1886         incomplete element type.
1887         (grokparms): Before checking for incomplete parameter type, check
1888         the type isn't error_mark_node.
1889
1890 2000-12-01  Jakub Jelinek  <jakub@redhat.com>
1891
1892         * builtins.c (target_char_cast): New function.
1893         (expand_builtin_strchr): Use it.
1894         (expand_builtin_strrchr): Use it.
1895         (builtin_memset_read_str): New function.
1896         (expand_builtin_memset): Use target_char_cast.
1897         Try to optimize memset with second argument non-zero using
1898         store_by_pieces.
1899
1900 2000-11-30  Marek Michalkiewicz  <marekm@linux.org.pl>
1901
1902         * install.texi (avr): Replace incomplete list of supported MCU
1903         types with a link to the current one ...
1904         * invoke.texi (AVR Options): ... here.  Update -mmcu= to list
1905         all supported MCU types.  Document -minit-stack= default.
1906         Document new options -mno-tablejump, -mtiny-stack.
1907         * md.texi (AVR family):  Fix typo in 'w' constraint letter
1908         description.  Document 'q'.  Update 'O'.
1909
1910 2000-12-01  Bernd Schmidt  <bernds@redhat.co.uk>
1911
1912         * combine.c (cant_combine_insn_p): Only disallow insns involving
1913         hard regs if they are reg-reg moves.
1914         (try_combine, can_combine_p, combinable_i3pat): Delete old
1915         SMALL_REGISTER_CLASSES tests.
1916
1917 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
1918
1919         * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
1920         whether X is a CONST_INT.
1921         (addsubcosts): Likewise.
1922
1923         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
1924         mis-used XINT.
1925         (ARG_POINTER_REGNUM): Set to AP_REG.
1926
1927 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
1928
1929         * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
1930         splits): Only match on TARGET_SH4.
1931
1932         * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
1933         of subsequent insns.
1934
1935 2000-11-30  Richard Henderson  <rth@redhat.com>
1936
1937         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
1938         * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
1939
1940 2000-11-30  Richard Henderson  <rth@redhat.com>
1941
1942         * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
1943         (DO_SELECT_SECTION): New.
1944         (SELECT_SECTION): Use it.
1945         (UNIQUE_SECTION_P): New.
1946         (UNIQUE_SECTION): New.
1947
1948 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
1949
1950         * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
1951         from va_list before using it.
1952
1953 2000-11-30  Michael Matz  <matzmich@cs.tu-berlin.de>
1954
1955         * flow.c (make_edge): Early out, if no flags to set.
1956         (calculate_global_regs_live): Clear out garbage only when necessary.
1957
1958         * simplify-rtx.c (varray_type used_regs): New.
1959         (clear_table): Use it to only clear necessary items.
1960         (cselib_lookup, cselib_record_set): Remember newly set items.
1961         (cselib_update_varray_sizes, cselib_init): Initialize and grow
1962         used_regs.
1963
1964         * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
1965         Move clearing of dead regs out of insn-loop.
1966
1967 2000-11-30  Richard Henderson  <rth@redhat.com>
1968
1969         * calls.c (expand_call): Emit queued insns before creating
1970         the tail recursion sequence.
1971
1972 2000-11-30  J. David Anglin  <dave.anglin@nrc.ca>
1973             Bruce Korb  <bkorb@gnu.org>
1974
1975         * fixinc/inclhack.def(): prevent dual double definition protection
1976         * fixinc/fixincl.x: regenerate
1977
1978 2000-11-29  Loren J. Rittle  <ljrittle@acm.org>
1979
1980         * fixinc/Makefile.in (fixincl.x): Explicitly state the
1981         location of the generated file.
1982
1983 2000-11-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1984
1985         * README.FRESCO: Remove obsolete file.
1986
1987 2000-11-30  Mark Kettenis  <kettenis@gnu.org>
1988
1989         * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
1990         TARGET_LIBGCC2_CFLAGS): Remove.  We now use the settings from
1991         config/t-linux for the Hurd.
1992
1993 2000-11-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1994
1995         * config/mn10200/udivmod.c, config/mn10200/divmod.c,
1996         config/mn10200/udivmodsi4.c: Moved from here.
1997         * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
1998         * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
1999         C division functions.
2000         * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
2001
2002 Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
2003
2004         * pa.md (conditional moves): Avoid holes in operand list.
2005         (mod, umod patterns): Similarly.
2006         (variable extract/shift patterns): Similarly.
2007
2008 2000-11-30  Neil Booth  <neilb@earthling.net>
2009
2010         * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
2011         maybe_objc_check_decl, build_objc_string_object,
2012         objc_declare_alias, objc_declare_class, build_message_expr,
2013         build_protocol_expr, build_selector_expr, build_encode_expr,
2014         get_class_ivars, start_class, start_protocol): Remove
2015         redundant code, assuming doing_objc_thang is true.
2016
2017 2000-11-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2018
2019         * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
2020         (record_unscaled_index_insn_codes): Likewise.
2021         (unscaled_index_insn_codes): Delete.
2022         (max_unscaled_index_insn_codes_uid): Delete.
2023         (output_function_prologue, output_function_epilogue, pa_reorg):
2024         Don't use the unscaled index insn hack.
2025
2026         * pa.md: Remove hack from all index insns to reverse the operand
2027         order of frame and stack pointer references incorrectly created
2028         in the reload pass.
2029
2030         * function.h (emit_status): Delete member regno_pointer_flag and
2031         rename regno_pointer_flag_length to regno_pointer_align_length.
2032         Delete define for REGNO_POINTER_FLAG.
2033         * integrate.h (inline_remap): Delete member regno_pointer_flag.
2034         Add member x_regno_reg_rtx.
2035         * rtl.h (rtx_def): Use frame_related bit to indicate register is
2036         a pointer in REG expressions.  Define REG_POINTER macro.
2037         * alias.c (find_base_value, find_base_term): Use REG_POINTER
2038         instead of REGNO_POINTER_FLAG.
2039         * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
2040         * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
2041         of regno_pointer_flag_length.  Remove code which refers to
2042         regno_pointer_flag.
2043         (mark_reg_pointer): Use REG_POINTER.
2044         (free_emit_status): Remove code which refers to regno_pointer_flag.
2045         (init_emit, mark_emit_status): Likewise.
2046         * flow.c (dump_flow_info): Likewise.
2047         * function.c (preserve_temp_slots): Likewise.
2048         * integrate.c (expand_inline_function, copy_rtx_and_substitute):
2049         Use x_regno_reg_rtx instead of regno_pointer_flag for function
2050         pointer determination in map.
2051         * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
2052         * predict.c (estimate_probability): Likewise.
2053         * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
2054         * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
2055         regno_pointer_flag for function pointer determination in map.
2056         * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
2057         REG_POINTER.
2058         * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
2059         Use REG_POINTER.
2060         (restore_unscaled_index_insn_codes): Revise comment.
2061
2062         * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
2063
2064 2000-11-30  Joseph S. Myers  <jsm28@cam.ac.uk>
2065
2066         * extend.texi: Update documentation for attributes.
2067
2068 2000-11-29  David O'Brien  <obrien@FreeBSD.org>
2069
2070         * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
2071         (ASM_DECLARE_OBJECT_NAME): Same.
2072         (ASM_FILE_END): Same.
2073         (ASM_FINISH_DECLARE_OBJECT): Same.
2074         (ASM_IDENTIFY_GCC): Same.
2075         (ASM_IDENTIFY_LANGUAGE): Same.
2076         (ASM_OUTPUT_CONSTRUCTOR): Same.
2077         (ASM_OUTPUT_DEF): Same.
2078         (ASM_OUTPUT_DESTRUCTOR): Same.
2079         (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
2080         (ASM_OUTPUT_SECTION_NAME): Same.
2081         (ASM_WEAKEN_LABEL): Same.
2082         (BSS_SECTION_ASM_OP): Same.
2083         (COMMON_ASM_OP): Same.
2084         (CONST_SECTION_ASM_OP): Same.
2085         (CONST_SECTION_FUNCTION): Same.
2086         (CTORS_SECTION_ASM_OP): Same.
2087         (DTORS_SECTION_ASM_OP): Same.
2088         (ESCAPES): Same.
2089         (FINI_SECTION_ASM_OP): Same.
2090         (IDENT_ASM_OP): Same.
2091         (IDENT_ASM_OP): Same.
2092         (INIT_SECTION_ASM_OP): Same.
2093         (INT_ASM_OP): Same.
2094         (MAX_OFILE_ALIGNMENT): Same.
2095         (SBSS_SECTION_ASM_OP): Same.
2096         (SDATA_SECTION_ASM_OP): Same.
2097         (SECTION_FUNCTION_TEMPLATE): Same.
2098         (SELECT_SECTION): Same.
2099         (SE_CONST_SECTION): Same.
2100         (SIZE_ASM_OP): Same.
2101         (SKIP_ASM_OP): Same.
2102         (STRING_ASM_OP): Same.
2103         (STRING_LIMIT): Same.
2104         (TYPE_ASM_OP): Same.
2105         (TYPE_OPERAND_FMT): Same.
2106
2107 2000-11-29  Neil Booth  <neilb@earthling.net>
2108
2109         * c-decl.c (c_decode_option): Don't handle -lang-objc.
2110         * objc/lang-options.h: Remove -lang-objc.
2111         * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
2112         * objc/objc-act.c (lang_init_options): Set c_language.
2113
2114 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
2115
2116         * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
2117         tests.
2118
2119 2000-11-29  Neil Booth  <neilb@earthling.net>
2120
2121         * c-pragma.c (init_pragma): Update for parse_in type change.
2122
2123 2000-11-29  Laurynas Biveinis  <lauras@softhome.net>
2124
2125         * configure.in: recognize DOS-style absolute paths.
2126
2127 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
2128
2129         * expr.h (store_by_pieces): Add prototype.
2130         (can_store_by_pieces): Likewise.
2131         * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
2132         (can_store_by_pieces): New.
2133         (store_by_pieces): New.
2134         (clear_by_pieces): New.
2135         (clear_by_pieces_1): New.
2136         (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
2137         arbitrary compiler generated constants into memory block.
2138         (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
2139         * builtins.c (c_readstr): New.
2140         (builtin_memcpy_read_str): New.
2141         (expand_builtin_memcpy): If src is string constant and
2142         emit_block_move would move it by pieces, compute integer constants
2143         from the string and store it into memory block instead.
2144         (builtin_strncpy_read_str): New.
2145         (expand_builtin_strncpy): If N is not constant zero and c_strlen does
2146         not return INTEGER_CST, don't optimize.
2147         If N is larger than strlen(src) + 1, try to copy the string
2148         including padding with store_by_pieces.
2149         (expand_builtin_strcmp): If both arguments have side effects, don't
2150         optimize.
2151         (expand_builtin_fputs): If STR has side effects, don't optimize.
2152
2153 2000-11-29  Richard Earnshaw  <rearnsha@arm.com>
2154
2155         * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
2156         Add use of link register.
2157
2158 2000-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2159
2160         * extend.texi: Update documentation for default format attributes.
2161
2162 Tue Nov 28 21:56:45 2000  Jeffrey A Law  (law@cygnus.com)
2163
2164         * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
2165         a list, to keep track of the sections.
2166
2167 2000-11-28  Nick Clifton  <nickc@redhat.com>
2168
2169         * config/arm/arm.md (pic_load_addr): Split into
2170         pic_load_addr_arm and pic_load_addr_thumb.
2171
2172         * config/arm/arm.c (legitimize_pic_address): Generate either
2173         ARM or Thumb versions of pic_load_addr.
2174         (arm_finalize_pic): Generate either ARM or Thumb versions of
2175         pic_load_addr.
2176
2177 2000-11-28  Richard Henderson  <rth@redhat.com>
2178
2179         * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
2180         after sibcall do_pending_stack_adjust.
2181
2182 Wed Nov 29 00:08:23 2000  J"orn Rennecke <amylaar@redhat.com>
2183
2184         * jump.c (delete_insn): Check that REG_LABEL note actually contains
2185         a CODE_LABEL.
2186
2187 2000-11-28  Neil Booth  <neilb@earthling.net>
2188
2189         * c-common.h: Remove flag_digraphs.
2190         * c-decl.c: Remove flag_digraphs.
2191         (c_decode_option): Don't set it.
2192         * c-lex.c (init_c_lex): Don't do anything for digraphs.
2193
2194 2000-11-28  Richard Henderson  <rth@redhat.com>
2195
2196         * c-parse.in (finish_parse): Update for parse_in type change.
2197         (_yylex): Likewise.
2198
2199 2000-11-28  Neil Booth  <neilb@earthling.net>
2200
2201         * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
2202         indicating whether to scan all buffers on the stack or
2203         just one.
2204         * cppinit.c (do_includes): Update.
2205         * cppmain.c (main): Update.
2206         * cpplib.h: Update prototype.
2207
2208 2000-11-28  Richard Henderson  <rth@redhat.com>
2209
2210         * genoutput.c (validate_insn_operands): New.
2211         (gen_insn): Call it.
2212
2213         * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
2214         (divmoddi_internal): Likewise.
2215         * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
2216         * config/i960/i960.md (branch patterns): Likewise.
2217         * config/ia64/ia64.md (tbit_and_0): Likewise.
2218         (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
2219         * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
2220         * config/mips/mips.md (divmodsi4_internal): Likewise.
2221         (divmoddi4_internal): Likewise.
2222         * config/rs6000/rs6000.md (call patterns): Likewise.
2223         * config/sh/sh.md (movsi_y): Likewise.
2224         * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
2225
2226 2000-11-28  Richard Henderson  <rth@redhat.com>
2227
2228         * config.gcc: Kill residual pyramid support.
2229
2230 2000-11-28  Neil Booth  <neilb@earthling.net>
2231
2232         * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
2233         * c-decl.c (c_decode_option): Update to match.
2234         * c-lex.c (init_c_lex, yyparse): Update to match.
2235         * c-lang.c (lang_init_options): Use cpp_create_reader.
2236         * cppinit.c (cpp_init): Rename initialize.
2237         (cpp_reader_init): Rename cpp_create_reader.  Create the
2238         reader.  Initialize cpplib if appropriate.
2239         * cpplib.h (cpp_create_reader) New prototype.
2240         (cpp_init, cpp_reader_init): Delete prototypes.
2241         * cppmain.c (general_init, setup_callbacks): New functions.
2242         (main): Use them.
2243         * fix-header.c (scan_in): Change type to cpp_reader *.
2244         (read_scan_file): Update for new cpplib interface and scan_in type.
2245
2246         * cp/decl.c (parse_in): Change to cpp_reader *.
2247         (lang_decode_option): Update.
2248         * cp/lex.c (lang_init_options): Use new cpplib interface.
2249         (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
2250         * cp/spew.c (read_token): Update.
2251         * objc/objc-act.c (lang_init_options): Update new cpplib interface.
2252
2253 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
2254
2255         * loop.c (load_mems): Avoid using next_label to find end_label. If
2256         jumping outside of the loop (other than loop end), don't hoist MEMs
2257         out of loop.
2258
2259 2000-11-28  Jan Hubicka  <jh@suse.cz>
2260
2261         * calls.c (expand_call): Don't disable tail recursion based
2262         on the loop nest.
2263
2264 2000-11-28  Neil Booth  <neilb@earthling.net>
2265
2266         * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
2267         (struct directive): Drop 4th argument from handlers.
2268         (do_define, do_line, do_include, do_undef, do_else, do_elif,
2269         do_endif): Similarly.
2270         (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
2271         (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
2272         (make_definition, make_undef): Take a const char*.
2273         (make_assertion): New function.
2274         (struct directive_table): Update.
2275         (main): Handle -A command line argument.
2276         (handle_directive): Drop fourth handler argument.
2277
2278 2000-11-28  Bernd Schmidt  <bernds@redhat.co.uk>
2279
2280         * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
2281         is anything but REG or MEM, but look inside STRICT_LOW_PART.
2282
2283 Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2284
2285         * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
2286         (IS_ABSOLUTE_PATHNAME): New macro.
2287         * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
2288
2289 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
2290
2291         * config/i386/i386.md (truncxfsf2_2): Fix predicate.
2292
2293 2000-11-27  Jim Wilson  <wilson@redhat.com>
2294
2295         * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
2296
2297 2000-11-27  Matthias Klose  <doko@cs.tu-berlin.de>
2298
2299         * extend.texi (Nested Functions): Update URL of Usenix paper.
2300
2301 2000-11-27  Mark Mitchell  <mark@codesourcery.com>
2302
2303         * function.c (free_after_compilation): Clear x_clobber_return_insn.
2304
2305 2000-11-27  Neil Booth  <neilb@earthling.net>
2306
2307         * cppinit.c (cpp_reader_init): Remove handling of warn_paste
2308         command line options.
2309         (cpp_handle_option): Similarly.
2310         * cpplib.h (struct cpp_options): Remove warn_paste.
2311         * cppmacro.c (paste_tokens): Apart from assembler, make
2312         unpasteable token warning mandatory.
2313
2314 2000-11-27  Neil Booth  <neilb@earthling.net>
2315
2316         * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
2317         (main): Allocate a pending directive set of these.  Use it.
2318         Merge handling of -D and -U.  Update handling of pending
2319         directives.  Free the memory after use.
2320
2321 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
2322
2323         * flow.c (entry_exit_blocks): Add entry for cond_local_set.
2324         (struct propagate_block_info): Add new member cond_local_set.
2325         (propagate_block): Accept new arg cond_local_set.  All callers
2326         changed.
2327         (init_propagate_block_info): Likewise.
2328         (calculate_global_regs_live): Allocate & free cond_local_set.  Always
2329         rescan if there's overlap between cond_local_set and new_live_at_end.
2330         (mark_set_1): Set bits either in cond_local_set or local_set, as
2331         appropriate.
2332         * basic-block.h (struct basic_block_def): New field cond_local_set.
2333         (propagate_block, init_propagate_block_info): Update prototypes.
2334
2335 Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
2336
2337         * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
2338         T register.
2339
2340 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
2341
2342         * arm.c (select_dominance_cc_mode): Handle new way that combine
2343         canonicalizes conditional compares.
2344         (arm_select_cc_mode): Likewise.
2345         * arm.md: Garbage collect some dead code.
2346         (cmp_and, cmp_ior): New patterns.
2347         (splitter for conditional move with inverted false): Use cond_exec
2348         and handle unordered comparisons.
2349
2350 Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
2351
2352         * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
2353         * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
2354         * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
2355         ix86_force_to_memory and ix86_free_from_memory.
2356
2357 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
2358
2359         * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
2360         arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
2361         anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
2362         one_cmpldi2): Merge with splitters to create define_insn_and_split
2363         patterns.  Remove redundant splits.
2364         (peephole2 for add:SI of invalid immediate): New.
2365         (peephole2 for minus:SI of invalid immediate): New.
2366         (peephole2 for ior:SI of invalid immediate): New.
2367         (peephole for merge of move and compare): Convert ot peephole2.
2368         (addsf3, adddf3): Mark as commutative.
2369
2370         * arm.md (thumb peephole for merging stack adjustments): Convert to
2371         peephole2.
2372
2373 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
2374
2375         * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
2376
2377         * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
2378         (reload_cse_simplify_operands): Do nothing about operands where both
2379         the operand and the match_operand fail to give us a mode.
2380         * simplify-rtx.c (wrap_constant): New function.
2381         (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
2382         CONST describing the proper mode.
2383         (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
2384         cselib_lookup.
2385         (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
2386         htab_find_slot_with_hash.
2387         (cselib_lookup): Likewise.
2388
2389         Based on a patch from Geoff Keating <geoffk@redhat.com>:
2390         * loop.c (basic_induction_var): If a REG is set from something
2391         that is not a biv, then the REG is not a biv.  Even if it is
2392         earlier set from something that is a biv.
2393
2394 2000-11-27  Alexandre Oliva  <aoliva@redhat.com>
2395
2396         * configure.in (extra_objs): Enclose extra_headers in quotes.
2397         * configure: Rebuilt.
2398
2399 2000-11-27  Neil Booth  <neilb@earthling.net>
2400
2401         * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
2402         Combine into the new function cb_change_file.
2403         (init_c_lex): Update.
2404         * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
2405         (cpp_syshdr_flags): Delete.
2406         * cpphash.h (_cpp_do_file_change): New prototype.
2407         Move struct cpp_buffer here from...
2408         * cpplib.h (struct cpp_buffer): ... here.
2409         (enum cpp_fc_reason, struct cpp_file_loc,
2410         struct_cpp_file_change, change_file): New.
2411         (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
2412         * cpplib.c (do_line): Update for new cb_change_file callback.
2413         (_cpp_do_file_change): New function.
2414         (_cpp_pop_buffer): Update to use it.
2415         * cppmain.c (move_printer): Delete.
2416         (main): Set up single callback cb_change_file.
2417         (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
2418         (cb_change_file): New.
2419         * fix-header.c (cur_file, cb_change_file): New.
2420         (recognized_function, read_scan_file): Update.
2421         * scan-decls.c (scan_decls): Update.
2422         * scan.h (recognized_function): Update prototype.
2423
2424 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
2425
2426         * tree.h (mark_tree_hashtable): New function.
2427         * tree.c (mark_tree_hashtable_entry): New function.
2428         (mark_tree_hashtable): Likewise.
2429
2430 2000-11-27  Michael Meissner  <meissner@redhat.com>
2431
2432         * d30v-protos.h (srelational_si_operator): Correctly spell
2433         function.
2434         (urelational_si_operator): Ditto.
2435         (relational_si_operator): Ditto.
2436         (d30v_expand_prologue): Add prototype.
2437         (d30v_expand_epilogue): Ditto.
2438
2439         * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
2440
2441         * d30v.md (movcccc_*): Delete now unused patterns.
2442         (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
2443         IF_THEN_ELSE.
2444         (define_cond_exec): Use 'b' to select branch flags.
2445
2446 2000-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2447
2448         * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
2449         functions.
2450         (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
2451
2452         * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
2453
2454         * c-common.c (c_common_nodes_and_builtins): Declare builtin
2455         strncpy and strncmp.
2456
2457         * extend.texi (strncmp, strncpy): Document new builtins.
2458
2459 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
2460
2461         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
2462         a list, to keep track of the sections.
2463         * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
2464         parameter provided will always be a canonical string.
2465
2466 2000-11-26  Neil Booth  <neilb@earthling.net>
2467
2468         * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
2469         current buffer.
2470
2471 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
2472
2473         * makefile.vms: Remove EGCS references.
2474
2475 2000-11-26  Ulrich Drepper  <drepper@redhat.com>
2476
2477         * dwarf2out.c (output_file_names): New function.  Compute minimal
2478         combination of directory and file name table and emit them.
2479         (output_line_info): Remove code to emit directory and file name
2480         table and call output_file_names instead.
2481         (file_info_cmp): Helper function to sort directory names.
2482
2483 2000-11-26  Neil Booth  <neilb@earthling.net>
2484
2485         * cpplib.h (struct cpp_reader): Remove lang_asm.
2486         (struct cpp_options): Remove c89. New members lang,
2487         extended_numbers.
2488         * cppexp.c (parse_number): Use them.
2489         * cpphash.h (VALID_SIGN): Use them.
2490         * cppinit.c (set_lang, cpp_start_read): Update.
2491         * cpplex.c (parse_string, _cpp_lex_token): Update.
2492         * cpplib.c (_cpp_handle_directive): Update.
2493         * cppmacro.c (parse_args): Update.
2494         * cppmain.c (scan_buffer): Update.
2495
2496 Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2497
2498         * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
2499         proper type.
2500
2501 2000-11-26  Neil Booth  <neilb@earthling.net>
2502
2503         * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
2504         * c-decl.c: Remove parse_in declaration.
2505         * c-lang.c: Similarly.
2506         * c-lex.c: Similarly.
2507         * c-parse.in: Similarly.
2508         * c-pragma.c: Similarly.
2509         * configure.in: Similarly.
2510         * cp/Make-lang.in: Similarly.
2511         * cp/spew.c: Similarly.
2512         * cp/decl2.c: Remove check for lang-c++ option.
2513         * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
2514         * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
2515         * c-lex.h: Add declaration of parse_in.
2516         * cppinit.c: Call set_lang after allocating pfile->pending.
2517         * configure: Regenerate.
2518
2519 2000-11-25  Zack Weinberg  <zack@wolery.stanford.edu>
2520
2521         * combine.c (try_combine): Remove redundant test.
2522
2523 2000-11-25  Richard Henderson  <rth@redhat.com>
2524
2525         * c-common.h (DECL_C_HARD_REGISTER): New.
2526         * c-decl.c (finish_decl): Set it for asm register variables.
2527         * c-semantics.c (emit_local_var): Test it when instantiating one.
2528
2529 2000-11-25  Richard Henderson  <rth@redhat.com>
2530
2531         * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
2532         lineno for the start of the function.
2533
2534 2000-11-25  Richard Henderson  <rth@redhat.com>
2535
2536         * dwarf2out.c (file_table, file_table_allocated): Remove.
2537         (file_table_allocated): Remove.
2538         (struct file_table): New.
2539         (decl_file_table, line_file_table): New.
2540         (print_dwarf_line_table): Use them.
2541         (size_of_line_prolog): Likewise.
2542         (output_line_info): Likewise.
2543         (add_src_coords_attributes): Likewise.
2544         (gen_subprogram_die): Likewise.
2545         (gen_variable_die): Likewise.
2546         (dwarf2out_add_library_unit_info): Likewise.
2547         (dwarf2out_line): Likewise.
2548         (lookup_filename): Take a struct file_table argument.
2549         (init_file_table): New.
2550         (dwarf2out_init): Use it.
2551
2552 2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2553
2554         * invoke.texi: Update sequence points references.
2555
2556 2000-11-25  Neil Booth  <neilb@earthling.net>
2557
2558         * c-common.c: Remove USE_CPPLIB conditional inclusions.
2559         * c-common.h: Similarly.
2560         * c-decl.c: Similarly.
2561         * c-lang.c: Similarly.
2562         * c-lex.c: Similarly.
2563         * c-parse.in: Similarly.
2564         * c-pragma.c: Similarly.
2565         * c-pragma.h: Similarly.
2566         * gcc.c: Similarly.
2567         * toplev.c: Similarly.
2568         * cp/cp-tree.h: Similarly.
2569         * cp/decl2.c: Similarly.
2570         * cp/lang-specs.h: Similarly.
2571         * cp/lex.c: Similarly.
2572         * cp/lex.h: Similarly.
2573         * cp/spew.c: Similarly.
2574         * java/lang-options.h: Similarly.
2575         * objc/lang-specs.h: Similarly.
2576         * objc/objc-act.c: Similarly.
2577
2578         * configure.in: Remove configure option.
2579         * config.in: Regenerate.
2580         * configure: Regenerate.
2581
2582 2000-11-25  Richard Henderson  <rth@redhat.com>
2583
2584         * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
2585         Revert 2000-11-22 change.
2586
2587 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
2588
2589         * config/i386/i386.h (FIXED_REGS): Make the three flags registers
2590         fixed.
2591
2592 2000-11-25  Philipp Thomas  <pthomas@suse.de>
2593         * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
2594         * configure: Rebuilt.
2595
2596 2000-11-25  Jakub Jelinek  <jakub@redhat.com>
2597
2598         * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
2599         Handle CONST_INT as second argument.
2600         * config/sparc/sparc.c (set_extends): Remove first argument.
2601         Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
2602         MOV.
2603         (sparc_check_64): Abort if first argument is not REG.
2604         If it is DImode REG, look at the lower register of the register
2605         pair.
2606
2607         * config/sparc/sparc.c (load_pic_register, restore_regs,
2608         output_return, sparc_v8plus_shift, sparc_function_profiler,
2609         sparc_function_block_profiler, sparc_block_profiler): Fix output
2610         formatting.
2611
2612 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>
2613
2614         * config/sh/sh.h (TARGET_NONE): New.
2615         (TARGET_SWITCHES): For all variant-selecting switch, use
2616         TARGET_NONE to reset all other variant-selecting switch.  Added
2617         empty strings to avoid warnings.
2618         (TARGET_DEFAULT): Set to SH1_BIT.
2619
2620         * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
2621         insn-codes.h.
2622
2623         * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
2624         (sibcall_pcrel): New insn_and_split.
2625         (sibcall, sibcall_value, sibcall_epilogue): New expands.
2626
2627         * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
2628         symPLT_label2reg, call, call_value): Don't set
2629         current_function_uses_pic_offset_table.
2630         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
2631         PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
2632         takes it into account.
2633         (FINALIZE_PIC): Delete, useless.
2634         (LEGITIMATE_CONSTANT_P): Delete, unused.
2635         * config/sh/sh.c (sh_expand_prologue): Don't use
2636         current_function_uses_pic_offset_table.  Don't special-case
2637         PIC_OFFSET_TABLE_REGNUM.  Initialize it if it's ever live and
2638         PIC is enabled.
2639         (sh_expand_epilogue, initial_elimination_offset): Don't
2640         special case PIC_OFFSET_TABLE_REGNUM.
2641
2642 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>, NIIBE Yutaka  <gniibe@m17n.org>
2643
2644         * config/sh/sh-protos.h (symbol_ref_operand): Declare.
2645         * config/sh/sh.md (UNSPEC_CALLER): New constant.
2646         (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
2647         (call_pcrel, call_value_pcrel): New insn_and_splits.
2648         (call, call_value): Use them.
2649         (call_site): New expand.
2650         (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
2651         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
2652         Output call_site label.
2653         (PREDICATE_CODES): Added symbol_ref_operand.
2654         * config/sh/sh.c (symbol_ref_operand): Define.
2655         * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
2656         to CALL_INSNs in the split sequence.
2657
2658 2000-11-24  Nick Clifton  <nickc@redhat.com>
2659
2660         * config.gcc (v850-*-*): Define c_target_objs and
2661         cxx_target_objs.
2662
2663         * config/v850/t-v850: Define how to build v850-c.o
2664
2665         * config/v850/v850.h (struct data_area_stack_element): Move
2666         definition here from v850.c.
2667
2668         * config/v850v850.c: Include gcc.h to avoid compile time
2669         warning.
2670         (push_data_area): Move to v850-c.c.
2671         (pop_data_area): Move to v850-c.c.
2672         (mark_current_function_as_interrupt): Move to v850-c.c.
2673         (GHS_default_section_names): Allow to be exported.
2674         (GHS_current_section_names): Allow to be exported.
2675         (data_area_stack_elements): Allow to be exported.
2676         (ghs_pragma_section): Move to v850-c.c.
2677         (ghs_pragma_interrupt): Move to v850-c.c.
2678         (ghs_pragma_starttda): Move to v850-c.c.
2679         (ghs_pragma_startsda): Move to v850-c.c.
2680         (ghs_pragma_startzda): Move to v850-c.c.
2681         (ghs_pragma_endtda): Move to v850-c.c.
2682         (ghs_pragma_endsda): Move to v850-c.c.
2683         (ghs_pragma_endzda): Move to v850-c.c.
2684
2685         * config/v850/v850-c.c: New file: Contains v850 specific
2686         pragma parsing functions.
2687
2688 2000-11-24  Nick Clifton  <nickc@redhat.com>
2689
2690         * config.gcc (extra_objs): Remove duplicate description.
2691         (c_target_objs): New variable.  Contains target specific
2692         object files for the gcc C compiler only.
2693         (cxx_target_objs): New variable.  Contains target specific
2694         object files for the gxx C++ compiler only.
2695
2696         * configure.in (c_target_objs): Substitute in the makefile.
2697         (cxx_target_objs): Substitute in the makefile.
2698         * configure: Regenerate.
2699
2700         * Makefile.in (C_TARGET_OBJS): Define and initialise from
2701         c_target_objs.
2702         (CXX_TARGET_OBJS): Define and initialise from
2703         cxx_target_objs.
2704         (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
2705
2706         * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
2707
2708         * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
2709         about how the use of the 'c_lex' function requires the use of
2710         the target specific, language specific object files feature of
2711         the configuration mechanism.
2712
2713 Fri Nov 24 18:50:58 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2714
2715         * gcc.c (process_command): Use F_OK, not R_OK.
2716
2717 2000-11-24  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
2718
2719         * flow.c (print_rtl_and_abort): Remove ANSIism.
2720
2721 Fri Nov 24 19:54:36 2000  Alexandre Oliva  <aoliva@redhat.com>
2722
2723         * config/sh/sh.h (GENERAL_REGISTER_P,
2724         GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
2725         FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros.  Use them
2726         all over.
2727         (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
2728         * config/sh/sh.c: Use new macros.
2729         * config/sh/sh.md: Likewise.
2730
2731 Fri Nov 24 19:46:16 2000  Alexandre Oliva  <aoliva@redhat.com>
2732
2733         * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
2734         instead of just MACH_REG in DImode.  Always refer to FPSCR_REG
2735         in PSImode.
2736
2737 Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
2738
2739         * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
2740         fixed.
2741         (machine_dependent_reorg): Wrong optimization based on
2742         NOTICE_UPDATE_CC removed.
2743
2744 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
2745
2746         * jump.c (delete_computation): Re-instate deletion of feeding insn.
2747         (delete_insn): Look for REG_LABEL notes.
2748         (redirect_tablejump): Delete feeding insns.
2749
2750 2000-11-24  Bernd Schmidt  <bernds@redhat.co.uk>
2751
2752         * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
2753         call_value_pop_1): Make sure operand numbers are contiguous.
2754
2755         * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
2756
2757         * reload1.c (conflicts_with_override): New function.
2758         (emit_input_reload_insns): Use it to tighten test for validity
2759         of substituting into output of previous insn.
2760
2761         * haifa-sched.c (struct ready_list): New.
2762         (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
2763         functions.
2764         (schedule_insn): Replace args READY and N_READY with a pointer to a
2765         ready_list; return void.  Use the new functions to access the ready
2766         list.  All callers changed.
2767         (queue_to_ready, debug_ready_list): Likewise.
2768         (schedule_block): Initialize a ready_list structure.  Use new
2769         functions to access it.
2770         (max_priority): Remove unused variable.
2771         (schedule_insn): Don't set it.
2772
2773         * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
2774
2775         * combine.c (cant_combine_insn_p): New function.
2776         (try_combine): Use it.
2777
2778         * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
2779         * c-common.c (c-obstack.c): Include "obstack.h".
2780         (struct reverse_tree): Delete.
2781         (reverse_list, reverse_max_depth): Delete.
2782         (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
2783         (struct tlist, struct tlist_cache): New.
2784         (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
2785         (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
2786         warn_for_collisions, warn_for_collisions_1, new_tlist): New
2787         static functions.
2788         (verify_sequence_points): Rewritten.
2789         * fold-const.c (fold): Don't lose possibly important sequence
2790         points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
2791
2792 2000-11-24  Richard Sandiford  <rsandifo@redhat.com>
2793
2794         * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
2795         when reversing a register-to-register copy.  Reversal now disabled
2796         when the previous instruction has a REG_EQUIV.
2797
2798 2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
2799
2800         * c-parse.in (unary_expr): Move VA_ARG from here ...
2801         (primary): ... to here.
2802
2803 2000-11-23  Graham Stott  <grahams@redhat.com>
2804
2805         * expr.c (store_constructor): If a field is non addressable and
2806         the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
2807
2808 2000-11-23  Bernd Schmidt  <bernds@redhat.co.uk>
2809
2810         * flow.c (print_rtl_and_abort): New function.
2811         (verify_wide_reg, verify_local_live_at_start): Try to dump more
2812         information before aborting.
2813
2814 2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
2815
2816         * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
2817         is narrower than requested mode.
2818         (gen_highpart): Abort if register mode is narrower than
2819         requested mode.
2820
2821 2000-11-23  Graham Stott  <grahams@redhat.com>
2822
2823         * cse.c (cse_insn): Initialise all regcost variables.
2824         Fix a typo add missing '='.
2825         Only compare costs if there is a replacement insn.
2826
2827 Thu Nov 23 04:33:33 2000  Alexandre Oliva  <aoliva@redhat.com>
2828
2829         * final.c (output_addr_const) [LABEL_REF]: Simplify.
2830         [MINUS]: Enclose non-CONST_INTs in parentheses.
2831         [default]: Try OUTPUT_ADDR_CONST_EXTRA.
2832         * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
2833         * varasm.c (decode_rtx_const) [CONST]: If it's not something
2834         PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
2835         instead of abort()ing.
2836         * sh.c (output_pic_addr_const): Removed.  Fixed all callers.
2837         * sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
2838         formerly handled in output_pic_addr_const.
2839         * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
2840         operands of MINUS in CONSTs so that decode_rtx_const() will
2841         accept them.
2842
2843 Thu Nov 23 04:10:30 2000  Alexandre Oliva  <aoliva@redhat.com>
2844
2845         * config/sh/sh.md (mova_const): New pattern.
2846         (GOTaddr2picreg): Use it.
2847         * config/sh/sh.c (broken_move): Match it.
2848         (mova_p): Don't match it.
2849         (machine_dependent_reorg): Adjust it.
2850
2851 Thu Nov 23 02:09:09 2000  Alexandre Oliva  <aoliva@redhat.com>
2852
2853         * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
2854         Moved most register-number #defines...
2855         * config/sh/sh.md (define_constants): ... here.  Use macros to
2856         refer to registers and unspecs.
2857         * config/sh/sh.c: Likewise.
2858
2859 Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
2860
2861         * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
2862         (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
2863         (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
2864         (splay-tree.o, hash.o): Likewise.
2865         GCONFIG_H: New.
2866         (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
2867         (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
2868         (hashtab.o): Likewise.
2869         (gcov.o): Depend on $(CONFIG_H).
2870         * configure.in: #include insn-codes.h in tm.h.
2871
2872 2000-11-22  Nick Clifton  <nickc@redhat.com>
2873
2874         * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
2875         const char * to avoid a compile time warning.
2876
2877         * config/arm/arm.md (define_constants): Define symbolic names for
2878         the link register, last integer register and the fake CC register.
2879         Update patterns to use these symbolic names.
2880
2881 2000-11-22  Neil Booth  <neilb@earthling.net>
2882
2883         * cpplex.c (trigraph_ok): Ensure we don't warn twice.
2884         * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
2885
2886 2000-11-22  Richard Henderson  <rth@redhat.com>
2887
2888         * haifa-sched.c (sched_analyze_1): Don't special-case calls
2889         for clobbering registers.
2890         (sched_analyze_2): Likewise.
2891         (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
2892
2893 2000-11-22  Chris Demetriou  <cgd@sibyte.com>
2894             Neil Booth  <neilb@earthling.net>
2895
2896         * gcc.c (validate_switches): Validate multiple switches named
2897         in '|' (or) expressions in specs.
2898         (handle_braces): If more than 1 alternative in a '|' spec
2899         matches, call do_spec1 just once.
2900
2901 2000-11-22  Michael Meissner  <meissner@redhat.com>
2902
2903         * d30v.h (TARGET_SWITCHES): Add documentation strings.
2904         (TARGET_OPTIONS): Ditto.
2905         (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
2906         -O3.
2907
2908 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
2909
2910         * pa.c (hppa_encode_label): Account for addition of encoding
2911         character when allocating persistent space for the new label
2912         name.
2913
2914 2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
2915
2916         * Makefile.in, config.gcc, configure.in: Expunge remaining
2917         traces of facility for running MD files through C preprocessor.
2918
2919 2000-11-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2920
2921         * gcov.texi: Add magic comments for texi2pod.pl.
2922         * Makefile.in: Add rules to generate and install gcov.1.
2923         * gcov.1: New (generated) file.
2924
2925 2000-11-21  Richard Henderson  <rth@redhat.com>
2926
2927         * regrename.c (scan_rtx_reg): Terminate the chain rather than
2928         abort on mark_read with NO_REGS.
2929
2930 2000-11-21  Mike Stump  <mrs@wrs.com>
2931
2932         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
2933         compilation with older compilers, such as /bin/cc on SunOS.
2934         * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
2935
2936 2000-11-21  Richard Henderson  <rth@redhat.com>
2937
2938         * varasm.c (record_constant): Pad the constructed
2939         constant_descriptor appropriately.
2940
2941 Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
2942
2943         * rtl.h (traverse_md_constants): Declare.
2944         (struct md_constant): Define.
2945         * Makefile.in (HOST_RTL): Add hashtab.o .
2946         (OBJS): Add hashtab.o .
2947         (hashtab.o): New rule.
2948         (rtl.o): Depends on HASHTAB_H.
2949         * rtl.c (hashtab.h): #include.
2950         (md_constants): New static variable.
2951         (def_hash, def_name_eq_p, read_constants): New static functions.
2952         (traverse_md_constants): New function.
2953         (read_name): Do constant expansion.
2954         (read_rtx): Recognize define_constants.
2955         * gencodes.c (print_md_constant): New function.
2956         (main): Emit #defines for all constant definitions encountered.
2957         * md.texi (Constant Definitions): New node.
2958         * gensupport.c (xcalloc): New function.
2959
2960 2000-11-21  Richard Henderson  <rth@redhat.com>
2961
2962         * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
2963         * config/alpha/alpha-protos.h: Declare it.
2964         * config/alpha/alpha.md (abstf_internal): Use it.
2965         (negtf_internal): Likewise.
2966         (andnotdi3): Unstar the name.
2967         (movtf_internal): Add o/G alternative.
2968
2969 2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
2970
2971         * stringpool.c (stringpool_statistics): Also report number and
2972         percentage of entries which are identifiers.
2973
2974 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
2975
2976         * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
2977         visited before visiting it.
2978
2979 2000-11-21  Nick Clifton  <nickc@redhat.com>
2980
2981         * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
2982         TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
2983
2984         * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
2985
2986 2000-11-21  Richard Henderson  <rth@redhat.com>
2987
2988         * c-common.c (c_unsafe_for_reeval): New function.
2989         (add_c_tree_codes): Register it.
2990         * c-common.h: Declare it.
2991         * tree.c (lang_unsafe_for_reeval): New hook.
2992         (unsafe_for_reeval): Call it.
2993         * tree.h: Declare it.
2994
2995 2000-11-21  Richard Henderson  <rth@redhat.com>
2996
2997         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
2998         references as well.
2999
3000 2000-11-21  Neil Booth  <neilb@earthling.net>
3001
3002         * do_includes: Revert to using cpp_read_file.
3003
3004 2000-11-21  Bernd Schmidt  <bernds@redhat.co.uk>
3005
3006         * loop.c (consec_sets_giv): If the reg we're examining is anything
3007         but UNKNOWN_INDUCT, do nothing.
3008         Reset the reg's type to UNKNOWN_INDUCT before returning.
3009
3010         Mostly from Vladimir Makarov (vmakarov@redhat.com)
3011         * ia64.md (attr itanium_class): Define insn types as described in
3012         Itanium docs.
3013         (all insn patterns): Use itanium_class, not type attributes.
3014         Occasionally split alternatives as necessary.
3015         (attr type): Compute from new attr itanium_class.
3016
3017 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3018
3019         * tradcpp.c (output_line_command): Mark system headers as such in
3020         `line' commands.
3021
3022 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
3023
3024         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
3025         support in as as well.
3026         * configure: Regenerate.
3027
3028 2000-11-20  Richard Henderson  <rth@redhat.com>
3029
3030         * c-lex.c (orig_filename): New variable.
3031         (init_c_lex): Set it.  Move call to cpp_start_read ...
3032         (yyparse): ... here.  New function.
3033         * c-parse.in (yyparse_1): Rename the parser entry point.
3034         * c-tree.h: Declare it.
3035
3036 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
3037
3038         * expr.c (do_compare_and_jump): If op0 was replaced by promoted
3039         integer constant, use type of op1 for comparison.
3040
3041 2000-11-20  Stan Shebs  <shebs@apple.com>
3042
3043         * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
3044         * config/rs6000/x-darwin: New file, Darwin host fragment.
3045         * config.gcc (powerpc-*-darwin*): New host.
3046         * system.h (HAVE_DESIGNATED_INITIALIZERS):  Allow this to be
3047         overridden by a config file.
3048
3049 2000-11-20  Neil Booth  <neilb@earthling.net>
3050
3051         * cppmacro.c (paste_tokens): Rename from paste_payloads.
3052         Change token type after pasting spellings.
3053         (paste_all_tokens): Use it.
3054         * gcc.dg/cpp/paste2.c: Update test.
3055         * objc/execute/paste.m: New test.
3056
3057 2000-11-20  Richard Henderson  <rth@redhat.com>
3058
3059         * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
3060         dwarf_subscr_data_formats bits.
3061         * dwarfout.c (simple_type_size_in_bits): Handle a type with
3062         no computed size as size zero.
3063         (field_byte_offset): Likewise.
3064         (subscript_data_attribute): Handle a range with no upper bound.
3065
3066 2000-11-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3067
3068         * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
3069
3070 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
3071
3072         * c-typeck.c (build_conditional_expr): When merging type
3073         qualifiers for conditional expressions between a pointer and a
3074         pointer to a void type, merge the qualifiers on the target types
3075         rather than the pointer type.  Remove obsolete conditioned out
3076         code.
3077
3078 2000-11-20  Neil Booth  <neilb@earthling.net>
3079
3080         * c-lang.c (lang_init_options): Update call to
3081         cpp_reader_init.
3082         * cppmain.c (main): Similarly.
3083         * fix-header.c (read_scan_file): Similarly.
3084         * cp/lex.c (lang_init_options): Similarly.
3085         * objc/objc-act.c (lang_init_options): Similarly.
3086         * cppexp.c (parse_number): Only warn for unextended C89.
3087         * cppinit.c (set_lang): New function.
3088         (cpp_reader_init): Take a LANG argument and pass it to set_lang.
3089         (COMMAND_LINE_OPTIONS): New option std=c++98.
3090         (cpp_handle_option): Use set_lang.
3091         * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
3092         * cppib.h (enum_c_lang): New enumeration.  Update comments.
3093
3094 2000-11-20  Will Cohen  <wcohen@redhat.com>
3095
3096         * calls.c (expand_call): Clear target only when target is in
3097         hard register and current_function_check_memory_usage is set.
3098
3099 2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
3100
3101         * toplev.c (rest_of_compilation): Run optimize_mode_switching even
3102         if not optimizing.
3103         * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
3104
3105 2000-11-19  Richard Henderson  <rth@redhat.com>
3106
3107         * crtstuff.c (force_to_data): Use array size 1 not 0.
3108
3109         * dwarf2out.c (simple_type_size_in_bits): Handle a type with
3110         no computed size as size zero.
3111         (field_byte_offset): Likewise.
3112
3113 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
3114
3115         * config.gcc: Fix another typo.
3116
3117 2000-11-19  Richard Henderson  <rth@redhat.com>
3118
3119         * c-decl.c (grokdeclarator): Support flexible array members.
3120         Use open-ended ranges for these and zero-length arrays.
3121         * c-typeck.c (push_init_level): Validate the context of
3122         initialization of a zero-length array.
3123         * tree.c (int_fits_type_p): Be prepared for missing bounds.
3124         * varasm.c (array_size_for_constructor): New.
3125         (output_constructor): Use it for arrays of unspecified length.
3126         * extend.texi (Zero Length): Mention C99 flexible array members.
3127         Document initialization in a top-level struct as valid.
3128
3129 2000-11-19  Joseph S. Myers  <jsm28@cam.ac.uk>
3130
3131         * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
3132
3133         * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
3134         stdarg and varargs functions.
3135
3136 2000-11-19  Zack Weinberg  <zack@wolery.stanford.edu>
3137
3138         * gcc.c (process_command): Define 'j' variable when
3139         MODIFY_TARGET_NAME is defined.
3140
3141 2000-11-19  Richard Henderson  <rth@redhat.com>
3142
3143         * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
3144
3145 2000-11-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3146
3147         * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
3148         calculation and allocation.
3149
3150 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3151
3152         * builtins.c (c_getstr): Constify variable.
3153         * gmon-sol2.c (_mcleanup): Comment out #endif labels.
3154         * conflict.c (const_conflict_graph_arc): New typedef.
3155         (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
3156         * cppmacro.c (builtin_macro): Likewise.
3157         * dwarf2out.c (output_comp_unit): Constify variable.
3158         * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
3159         * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
3160         * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
3161         away const-ness.
3162         * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
3163         ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
3164         * varasm.c (const_str_htab_hash, const_str_htab_eq,
3165         compare_constant_1, record_constant_1): Constify.
3166
3167 2000-11-18  Richard Henderson  <rth@redhat.com>
3168
3169         * c-decl.c (grokdeclarator): Special case the creation of an
3170         index for a zero-length array.
3171         * tree.c (build_index_type): Revert Oct 20 change.
3172
3173 2000-11-18  Marek Michalkiewicz  <marekm@linux.org.pl>
3174
3175         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
3176         * config/avr/avr.c (jump_tables_size): New variable.
3177         (function_prologue): Initialize it as 0.
3178         (function_epilogue): Add it to function_size.
3179         (avr_output_addr_vec_elt): New function.  Count words in jump
3180         tables in jump_tables_size.  Move code ...
3181         * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
3182         Call avr_output_addr_vec_elt instead.
3183         * config/avr/avr.md (tablejump): Remove disabled define_expand.
3184
3185 2000-11-18  Mark Mitchell  <mark@codesourcery.com>
3186
3187         * configure.in: Make --enable-new-gxx-abi the default.
3188         * configure: Likewise.
3189
3190 2000-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3191
3192         * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
3193
3194         * tradcif.y: Include tradcpp.h.  Constify.  Make functions static.
3195         Move extern function declarations to tradcpp.h.
3196
3197         * tradcpp.c: Likewise.
3198
3199         * tradcpp.h: New file.
3200
3201 2000-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3202
3203         * c-decl.c (check_for_loop_decls): New function.
3204         * c-parse.in (for_init_stmt): New.
3205         (select_or_iter_stmt): Use for_init_stmt.
3206         * c-tree.h (check_for_loop_decls): New declaration.
3207
3208 2000-11-18  Neil Booth  <neilb@earthling.net>
3209
3210         * cppinit.c: Update comments.
3211         (cpp_reader_init): Make -imacro and -include use the standard
3212         #include "" search path.
3213         (do_includes): New function.
3214
3215 2000-11-18  Ben Elliston  <bje@redhat.com>
3216
3217         * config/sh/crt1.asm (start_l): Move PC-relative move instruction
3218         out of a branch delay slot.
3219
3220 2000-11-17  Richard Henderson  <rth@redhat.com>
3221
3222         * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
3223         (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
3224         (ASM_FILE_START): Only write out ecoff .file directive if
3225         emitting mdebug debugging.
3226
3227 2000-11-17  Richard Henderson  <rth@redhat.com>
3228
3229         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New.  Detect
3230         whether as accepts .file/.loc and produces dwarf2 line info.
3231         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
3232         the assembler supports it.
3233         * config.in, configure: Regenerate.
3234
3235 2000-11-17  Richard Henderson  <rth@redhat.com>
3236
3237         * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
3238
3239 2000-11-17  Jim Wilson  <wilson@redhat.com>
3240
3241         * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
3242         Don't clear need_barrier is next_insn is a CALL_INSN, or has
3243         instruction type B or UNKNOWN.
3244
3245 2000-11-17  Neil Booth  <neilb@earthling.net>
3246
3247         * cpperror.c (print_file_and_line): Don't display line number if 0.
3248
3249 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
3250
3251         * ggc.h: Delete ggc_add_string_root and ggc_mark_string.  Add
3252         digit_vector and digit_string.
3253         * stringpool.c (digit_vector): New.
3254         (ggc_alloc_string): Use digit_string.
3255
3256         * stmt.c (digit_strings): Delete.
3257         (init_stmt): Do not initialize digit_strings.
3258         (expand_asm_operands): Use ggc.h's digit_string macro.
3259         * toplev.c (mark_file_stack): Delete.
3260         (compile_file): Don't call init_tree_codes.
3261         (main): No need to make the file stack a GC root.
3262         * tree.c (init_tree_codes): Delete.
3263         * tree.h (init_tree_codes): Delete.
3264
3265         * c-lex.c: Don't include ggc.h.
3266         (mark_splay_tree_node, mark_splay_tree): Delete.
3267         (init_c_lex): No need to ggc_strdup string constant.  Don't add
3268         file_info_tree to GGC roots.
3269         (cb_enter_file, cb_rename_file): No need to ggc_strdup
3270         ip->nominal_fname.
3271
3272         * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
3273
3274         * dbxout.c (dbxout_init),
3275         dwarf2out.c (dwarf2out_line),
3276         ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
3277         varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
3278         xcoffout.c (xcoffout_source_file),
3279         i386.c (load_pic_register):
3280         Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
3281
3282         * except.c (create_rethrow_ref),
3283         profile.c (init_edge_profiler),
3284         toplev.c (compile_file),
3285         varasm.c (named_section, assemble_static_space,
3286         assemble_trampoline_template, output_constant_def, force_const_mem),
3287         i386.c (load_pic_register),
3288         ia64.c (ia64_encode_section_info),
3289         rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
3290         rs6000_emit_prologue, rs6000_emit_epilogue),
3291         rs6000.md (load_toc_aix_si, load_toc_aix_di):
3292         Change ggc_alloc_string (var, -1) to ggc_strdup (var).
3293
3294         * profile.c (output_func_start_profiler),
3295         tree.c (make_node),
3296         i386.c (load_pic_register): No need to ggc_strdup string constant.
3297
3298 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
3299
3300         * Makefile.in (config.status): Depend on config.gcc.
3301         * configure.in <for machine in $build $host $target>: Move
3302         contents of loop into config.gcc, removing autoconf quoting.
3303         Fix changequote bug for alpha*-*-vxworks*.
3304         * configure: Regenerate.
3305         * config.gcc: New.
3306
3307 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
3308
3309         * c-parse.in (if_prefix): Find the filename and line number at
3310         $-2 and $-1 respectively.
3311         * diagnostic.c (error_recursion): Add missing newline, use
3312         fputs, translate string.
3313
3314 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
3315
3316         * stringpool.c: New file.
3317         * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
3318         (ggc_alloc_string): Now in stringpool.o.
3319         * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
3320         * ggc.h: Delete prototype of ggc_add_string_root.  #define
3321         ggc_add_string_root and ggc_mark_string to nothing.  Prototype
3322         init_stringpool and stringpool_statistics.
3323         (ggc_alloc_string): Returns a const char *.
3324         * tree.c (hash_table, do_identifier_warnings): Delete.
3325         (init_obstacks): Don't initialize the identifier hash table.
3326         (get_identifier, maybe_get_identifier, start_identifier_warnings,
3327         set_identifier_size): Now in stringpool.c.
3328         * tree.h (struct tree_string): Constify pointer field.
3329         (approx_sqrt): Prototype.
3330
3331         * Makefile.in (stringpool.o): Add rule, mention in OBJS.
3332
3333         * toplev.c (approx_sqrt): New function.
3334         (compile_file): Call stringpool_statistics if mem_report is on.
3335         (main): Call init_stringpool.
3336
3337         * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
3338         (process_directive), c-typeck.c (constructor_asmspec, struct
3339         initializer_stack, start_init), except.c (create_rethrow_ref),
3340         stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
3341         (built_in_filename), varasm,c (in_named_name,
3342         assemble_static_space, struct constant_descriptor, struct
3343         deferred_string, struct pool_constant, force_const_mem),
3344         i386.c (pic_label_name, global_offset_table_name), rs6000.c
3345         (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
3346
3347         * c-common.c (combine_strings): Combine strings in scratch
3348         buffer, then pass to build_string.
3349         * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
3350         output_func_start_profiler), stmt.c (init_stmt), alpha.c
3351         (alpha_need_linkage), arm.c (arm_encode_call_attribute),
3352         i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
3353         rs6000.c (rs6000_encode_section_info): Create string in
3354         scratch buffer, then pass to ggc_alloc_string.
3355
3356         * stmt.c (expand_asm_operands): If we must adjust the
3357         constraint strings, do so by creating a new one, not by
3358         modifying the old one in place.  Constify some char *s.
3359         * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
3360         argument.  Create string in scratch buffer, then pass to
3361         ggc_alloc_string.
3362         * config/pa/pa-protos.h: Update prototype.
3363         * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
3364         hppa_encode_label takes only one argument.
3365
3366 2000-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3367
3368         * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
3369         malloc/realloc.
3370
3371         * cpplib.c (glue_header_name): Likewise.
3372
3373         * fixincl.c (run_compiles, start_fixer): Likewise.
3374
3375         * fixlib.c (load_file_data): Likewise.
3376
3377         * mkdeps.c (munge): Likewise.
3378
3379 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
3380
3381         * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
3382         trailing ';'.  Fix formatting.
3383
3384 2000-11-16  Jim Wilson  <wilson@redhat.com>
3385
3386         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
3387         Shift masks left by one to avoid conflict.
3388
3389         * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
3390         DECL_EXTERNAL set.
3391
3392 2000-11-16  Nick Clifton  <nickc@redhat.com>
3393
3394         * config/arm/arm.c (output_arm_prologue): Note nested functions.
3395         (arm_expand_prologue): For nested functions preserve the
3396         static chain register during stack frame creation.
3397
3398         * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
3399         (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
3400         with a stack frame there is a 4 byte gap between the arg
3401         pointer and the hard frame pointer (used to preserve the
3402         static chain register during stack frame creation).
3403
3404 2000-11-16  DJ Delorie  <dj@redhat.com>
3405
3406         * rtl.c (read_rtx): Provide suitable names for unnamed
3407         define_insn and define_insn_and_split patterns, based on file
3408         and line numbers.
3409
3410 2000-11-15  Neil Booth  <neilb@earthling.net>
3411
3412         * cpplib.c (start_directive, end_directive): New functions.
3413         (_cpp_handle_directive, run_directive): Use them.
3414         (_cpp_handle_directive): Don't -Wtraditional on indented
3415         null directives.
3416         (_cpp_push_buffer): Don't re-clear was_skipping.
3417         * cpplib.h (struct cpp_reader): New member la_saved.
3418         * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
3419         directives.
3420
3421         gcc.dg/cpp/_Pragma1.c: Update.
3422         gcc.dg/cpp/_Pragma2.c: New test.
3423
3424 2000-11-15  Mark Mitchell  <mark@codesourcery.com>
3425
3426         * toplev.c (wrapup_global_declarations): Don't write out
3427         artificial static variables that aren't needed.
3428
3429 2000-11-15  Bernd Schmidt  <bernds@redhat.co.uk>
3430
3431         * ia64.c (struct group): New structure.
3432         (last_group): New static array.
3433         (group_idx): New static variable.
3434         (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
3435         New static functions.
3436         (emit_insn_group_barriers): Initialize and keep track of group_idx
3437         and last_group.
3438         Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
3439         Replace all calls to emit_insn_after that emit a group barrier to use
3440         emit_group_barrier_after.
3441         * ia64.h (MASK_B_STEP): New.
3442         (other MASK_XXX macros): Renumbered.
3443         (TARGET_B_STEP): New.
3444         (TARGET_SWITCHES): Add -mb-step.
3445
3446 2000-11-15  Fred Fish  <fnf@be.com>
3447
3448         * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
3449         machines for which fixincludes is not needed.
3450         * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
3451
3452 2000-11-15  Jason Merrill  <jason@redhat.com>
3453
3454         * diagnostic.c (finish_abort): New fn.
3455         (fancy_abort, error_recursion): Use it.
3456         * toplev.c (crash_signal): Likewise.
3457         * diagnostic.h: Declare it.
3458
3459 2000-11-13  Andrew Haley  <aph@redhat.com>
3460
3461         * tree.c (build_type_no_quals): New function.
3462         * tree.h (build_type_no_quals): Declare.
3463         * c-common.c (c_get_alias_set): When considering type
3464         compatibility for pointer types, ignore cv-qualifiers anywhere in
3465         a pointer chain.
3466
3467 2000-11-15  Graham Stott  <grahams@redhat.com>
3468
3469         * regrename.c (scan_rtx_rtx): Skip to the next chain on
3470         encountering a terminated chain.
3471
3472 2000-11-14  Mark Mitchell  <mark@codesourcery.com>
3473
3474         * configure.in: Move check for V3 above check for C++ header-file
3475         directory.
3476         * configure: Regenerated.
3477
3478 2000-11-14  DJ Delorie  <dj@redhat.com>
3479
3480         * config/v850/v850.c: Remove obstacks.
3481
3482 Tue Nov 14 21:54:31 2000  Marek Michalkiewicz  <marekm@linux.org.pl> & Denis Chertykov  <denisc@overta.ru>
3483
3484         * config/avr/avr.c (avr_case_values_threshold): New.
3485         (avr_override_options): Set it depending on options, make it large
3486         when not optimizing to work around "unable to generate reloads".
3487
3488         * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
3489         (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
3490         executable if not AVR_MEGA.  Make sure jump tables are word-aligned.
3491         (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
3492         (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
3493         (avr_case_values_threshold): Declare as extern int.
3494         (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
3495
3496         * config/avr/avr.md (tablejump): Removed.
3497         (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
3498         (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
3499         index in the table, not multiplied by 2.
3500         (casesi): Change to match the above insns.  Always enable.
3501
3502         * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
3503         Change to expect the word address of the table, multiply it by 2
3504         here and not in the caller.  Change "adiw" to faster "inc".
3505
3506 2000-11-14  Neil Booth  <neilb@earthling.net>
3507
3508         * cppexp.c (parse_defined): Call cpp_get_token not
3509         _cpp_get_token.
3510         (lex): Similarly.
3511         * cpplex.c (cpp_output_line): Similarly.
3512         * cpplib.c (glue_header_name, do_line, do_ident,
3513         parse_answer, parse_assertion): Similarly.
3514         (_cpp_handle_diretive): Don't save to lookaheads
3515         when processing directives.
3516         * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
3517         _cpp_get_token.
3518         (funlike_invocation_p): Don't save to lookaheads
3519         when pre-expanding arguments.
3520         (_cpp_get_token): Delete.
3521         (cpp_get_token): Merge contents of _cpp_get_token.
3522
3523 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3524
3525         * builtins.c (expand_builtin_setjmp): Set
3526         current_function_calls_setjmp.
3527         (expand_builtin_longjmp): Set current_function_calls_longjmp.
3528
3529         * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
3530         (do_builtin_setjmp_setup): New insn.
3531
3532 Tue Nov 14 12:34:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3533
3534         * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
3535         (int_fits_type_p): For variable bounds, call force_fit_type.
3536
3537 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3538
3539         * varasm.c (struct deferred_string): New structure.
3540         (const_str_htab): New variable.
3541         (STRHASH): New macro.
3542         (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
3543         constr_str_htab_eq, const_str_htab_del): New functions.
3544         (output_constant_def): Add DEFER argument, defer string
3545         constants until mark_constant_pool time if requested.
3546         (mark_constant_pool): Walk the insn chain even if const_str_htab is
3547         not empty.
3548         (mark_constants): If a SYMBOL_REF for deferred string is found,
3549         output it and remove from hash table.
3550         (output_addressed_constants): Set DEFER to 0 in call to
3551         output_constant_def.
3552         * rtl.h (STRING_POOL_ADDRESS_P): Define.
3553         (output_constant_def): Adjust prototype.
3554         * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
3555
3556 2000-11-14  Chandrakala Chavva  <cchavva@redhat.com>
3557
3558         * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
3559         signed types if flag_trapv.
3560
3561 2000-11-14  Zack Weinberg  <zack@wolery.stanford.edu>
3562
3563         * tradcpp.c, tradcif.y: Update FSF mailing address, delete
3564         reference to GPLv1.
3565
3566 2000-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3567
3568         * c-common.h (CTI_C_SIZE_TYPE): Update comment.
3569
3570 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3571
3572         * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
3573         to array of pool_constnat pointers.
3574         (struct pool_constant): Add next_sym and label members.
3575         (struct pool_sym): Remove.
3576         (init_varasm_status): Change pool_sym into pool_constant.
3577         (mark_pool_constant): Mark pc->label string as well.
3578         (mark_pool_sym_hash_table): Remove.
3579         (mark_varasm_status): Remove it from caller as well.
3580         (free_varasm_status): Don't free pool_sym structures.
3581         (force_const_mem): Don't allocate pool_sym structure, instead
3582         fill pool->label and chain it into rtx_sym hash table.
3583         (find_pool_constant, mark_constant_pool): Use pool_constant instead
3584         of pool_sym.
3585
3586 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
3587
3588         * reload1.c (emit_input_reload_insns): Honour forcing of constants
3589         into memory by PREFERRED_RELOAD_CLASS NO_REGS.
3590
3591 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
3592
3593         * dominance.c: New file.
3594         * Makefile.in (OBJS): Add dominance.o.
3595
3596         * flow.c (compute_flow_dominators): Remove.
3597         (compute_immediate_dominators): Remove.
3598         (compute_immediate_postdominators): Remove.
3599         * basic-block.h: Remove their prototypes.
3600         (calculate_dominance_info): Add prototype.
3601
3602         * dce.c (eliminate_dead_code): Change calls to above functions.
3603         Don't compute dominators but only immediate dominators.
3604         * flow.c (flow_loops_find): Change callers.
3605         * gcse.c (compute_code_hoist_data): Likewise.
3606         * haifa-sched.c (schedule_insns): Likewise.
3607         * ifcvt.c (if_convert): Likewise.
3608         * ssa.c (convert_to_ssa): Likewise, and only compute immediate
3609         dominators.
3610
3611 2000-11-14  Richard Henderson  <rth@redhat.com>
3612
3613         * stmt.c (warn_if_unused_value): Don't warn if the expression
3614         has side effects.
3615
3616         * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
3617         (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
3618
3619 2000-11-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3620
3621         * loop.c (basic_induction_var): Revert accidental checkin.
3622
3623 2000-11-13  Hans-Peter Nilsson  <hp@axis.com>
3624
3625         * c-lex.c (cb_leave_file): Harmonize conditions and order of
3626         statements to those of process_directive for (action == act_pop).
3627
3628         * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
3629
3630         * local-alloc.c (equiv_init_movable_p): References to CC0 are not
3631         movable.
3632
3633 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3634
3635         * c-parse.in (stmts_and_decls): Deprecate use of label at end of
3636         compound statement.
3637
3638 2000-11-13  Neil Booth  <neilb@earthling.net>
3639
3640         * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
3641         cases return without MI check.
3642         * cpplib.c (do_diagnostic): Take boolean of whether to
3643         print the directive name.
3644         (do_error, do_warning): Update.
3645         (do_pragma_dependency): Use it.
3646         * cpplib.h (VARARGS_FIRST): Delete.
3647         (struct cpp_token): Delete integer.
3648         * cppmacro.c (enter_macro_context): Move disabled check
3649         to _cpp_get_token.
3650         (_cpp_get_token): Simplify into a single loop.
3651
3652 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3653
3654         * configure.in:  Use 'test -f' not '[ -e'.
3655         * configure: Regenerated.
3656
3657 2000-11-13  DJ Delorie  <dj@redhat.com>
3658
3659         * config/mn10300/mn10300.md (store_movm): Note which registers are
3660         really used or clobbered.
3661
3662 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3663
3664         * c-parse.in (ends_in_label): Remove from %union and %type.
3665         (decls, stmts, lineno_stmt_or_labels, xstmts,
3666         lineno_stmt_or_label, stmt_or_label): Remove.
3667         (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
3668         lineno_stmt_decl_or_labels_ending_decl,
3669         lineno_stmt_decl_or_labels_ending_label,
3670         lineno_stmt_decl_or_labels_ending_error,
3671         lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
3672         lineno_stmt, lineno_label): New.
3673         (compstmt_nostart): Use compstmt_contents_nonempty.
3674
3675 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3676
3677         * c-common.c (boolean_increment): New function.
3678         * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
3679         CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
3680         (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
3681         (boolean_increment): Declare.
3682         * c-convert.c (convert): Allow for BOOLEAN_TYPE.
3683         * c-decl.c (init_decl_processing): Create boolean nodes.
3684         (finish_struct): Allow for _Bool bitfields.
3685         * c-parse.in (reswords): Add _Bool.
3686         (rid_to_yy): Allow for RID_BOOL.
3687         * c-typeck.c (default_conversion): Make booleans promote to int.
3688         (convert_arguments, build_unary_op, build_modify_expr,
3689         convert_for_assignment): Allow for booleans.
3690         * ginclude/stdbool.h: Make conforming to C99.
3691
3692 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3693
3694         * c-parse.in (c99_block_start, c99_block_end,
3695         c99_block_lineno_labeled_stmt): New.
3696         (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
3697         (stmt): Split off selection and iteration statements into...
3698         (select_or_iter_stmt): New.  Use c99_block_lineno_labeled_stmt.
3699
3700 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3701
3702         * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
3703         -time): Update.
3704
3705 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3706
3707         * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
3708         Rewrite to avoid use of match_dup.  Don't try to tie registers that
3709         are not in the same mode.
3710
3711 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3712
3713         * invoke.texi: Update lists of languages and suffixes supported.
3714
3715 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3716
3717         * configure.in: Take toplevel configure arguments from the
3718         environment to create configargs.h and substitute
3719         gcc_config_arguments, taking account of any existing configargs.h
3720         if reconfiguring.
3721         * configure: Regenerate.
3722         * gccbug.in: Include toplevel configure arguments in gccbug.
3723
3724 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
3725
3726         * varasm.c (struct constant_descriptor): Put CONTENTS inside a
3727         union to make it well-aligned.  Update all uses.
3728
3729 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3730
3731         * c-parse.in (initelt): Give appropriate pedantic warnings,
3732         depending on flag_isoc99, for non-ISO syntax and for C99 syntax
3733         outside C99 mode.
3734         (designator): If pedantic, pedwarn for a designator specifying a
3735         range of elements.
3736         * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
3737         these cases.
3738         * extend.texi: Document the C99 syntax as the preferred syntax,
3739         and the pre-2.5 syntax as obsolete.  Mention use of designator
3740         lists for nested subobjects.
3741
3742 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
3743
3744         * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
3745         Add ATTRIBUTE_PRINTF.
3746         * tradcpp.c (v_message, warning, error, fatal, error_with_line):
3747         Add ATTRIBUTE_PRINTF*.
3748
3749 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3750
3751         * function.c (assign_parms): When calling put_var_into_stack, make
3752         sure that there are no hidden pending sequences.
3753
3754 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3755
3756         * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
3757         BUILT_IN_RINDEX.  Add missing checks for BUILT_IN_STRCHR and
3758         BUILT_IN_STRRCHR.
3759
3760         * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
3761
3762         * c-common.c (c_common_nodes_and_builtins): Declare index and
3763         rindex when nonansi builtins are allowed.
3764
3765         * extend.texi (index, rindex): Document new builtins.
3766
3767 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3768
3769         * configure.in: Turn on libstdc++ V3 by default.
3770         * configure: Regenerated.
3771
3772         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
3773
3774 2000-11-12  Jakub Jelinek  <jakub@redhat.com>
3775
3776         * reload1.c (set_label_offsets): Go inside of PARALLELs.
3777
3778 2000-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
3779
3780         * invoke.texi: Clean up option summary.
3781
3782 2000-11-12  Nick Clifton  <nickc@redhat.com>
3783
3784         * config/mcore/mcore.c: Fix comment formating, and adjust sequence
3785         of #include headers.
3786
3787 2000-11-12  Marc Espie <espie@openbsd.org>
3788
3789         * configure.in: Fix filds test.
3790         * configure: Regen.
3791
3792 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
3793
3794         * jump.c (delete_computation): Don't assume that just becuase an
3795         instruction sets a register, that register is dead.
3796
3797 2000-11-12  Neil Booth  <neilb@earthling.net>
3798
3799         * cppexp.c: Don't worry about pfile->skipping.
3800         * cpplib.c (struct if_stack): Make was_skipping unsigned char.
3801         (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
3802         for handled directives.
3803         (skip_rest_of_line): Use _cpp_lex_token after popping contexts
3804         and releasing lookaheads.
3805         (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
3806         (do_else, do_elif, push_conditional): Update logic.
3807         (do_endif): Set buffer->was_skipping rather than pfile->skipping.
3808         (unwind_if_stack): Inline into cpp_pop_buffer.
3809         (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
3810         * cpplex.c (_cpp_lex_token): Clear skipping on EOF.  Handle
3811         multiple-include optimisation.
3812         * cpplib.h (struct cpp_buffer): New member was_skipping.
3813         * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping.  This
3814         works because skipping == 0 in directives.
3815         (_cpp_release_lookahead): Renamed from release_lookahead.
3816         (cpp_get_token): No need to check skipping as _cpp_get_token does
3817         this for us.  No need to handle MI optimisation.
3818
3819 Sat Nov 11 21:14:02 2000  Mark P Mitchell  <mark@codesourcery.com>
3820
3821         * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
3822         declarations that use `__MATH_EXCEPTION' in their prototypes, too.
3823         * fixinc/fixincl.x: Regenerated.
3824
3825 2000-11-11  Bruce Korb  <bkorb@gnu.org>
3826
3827         * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
3828         (avoid_wchar_t_type): ditto
3829         * fixinc/fixinc.irix: obsoleted
3830
3831 2000-11-11  Zack Weinberg  <zack@wolery.stanford.edu>
3832
3833         * configure.in: Don't add $outputs to all_lang_makefiles.  Add
3834         $srcdir/$s/Makefile.in if it exists.
3835         * configure: Regenerate.
3836
3837 Sat Nov 11 18:41:20 2000  Mark P Mitchell  <mark@codesourcery.com>
3838
3839         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
3840
3841 2000-11-11  Jason Merrill  <jason@redhat.com>
3842
3843         * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
3844         give the parm a register and then call put_var_into_stack.
3845         * stmt.c (expand_decl): Likewise.
3846
3847 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3848
3849         * gcc.texi: Adjust wording.
3850
3851 2000-11-11  Mark Mitchell  <mark@codesourcery.com>
3852
3853         * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
3854         * fininc/fixincl.x: Regenerated.
3855
3856 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3857
3858         * invoke.texi: Correct spelling of -foptimize-register-move.
3859
3860 2000-11-11  Neil Booth  <neilb@earthling.net>
3861
3862         Remove CPP_PLACEMARKERs.
3863
3864         * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
3865         * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
3866         * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
3867                    Similarly.
3868         * cpplib.h: Remove CPP_PLACEMARKER.
3869         (struct lexer_state): Rename skip_newlines to next_bol.
3870         * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
3871         Simplify prev_white handling as a result.
3872         (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
3873         (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
3874         (parse_args): Similarly.  Update argument count tests.
3875         (enter_macro_context): Return 2 to indicate an empty macro.
3876         (replace_args): Don't bother pre-expanding an empty argument.
3877         Handle placemarkers and ## extension during pre-expansion.
3878         (cpp_get_token): Handle empty macro expansions.  Don't worry
3879         about CPP_PLACEMARKERs.
3880         (_cpp_create_definition): Empty macros are now empty.
3881         (cpp_macro_defintion): Don't special case empty macros.
3882         * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
3883         * c-lex.c: Similarly.
3884
3885 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
3886
3887         * gcc.texi, invoke.texi: Add new section discussing language
3888         standards; link to it where appropriate; refer to ISO C instead of
3889         ANSI C.
3890
3891 2000-11-11  Alexandre Oliva  <aoliva@redhat.com>
3892
3893         * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
3894         into account.
3895
3896         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
3897         modes.
3898
3899 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3900
3901         * gcc.texi, gcov.texi: Update dates and version numbers.
3902
3903 2000-11-10  Zack Weinberg  <zack@wolery.stanford.edu>
3904
3905         * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.  Look for
3906         flex and bison, specifically, first in a unified build and
3907         then installed on the system.
3908         * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@.  Rename
3909         LEXFLAGS to FLEXFLAGS.  Adjust ORDINARY_FLAGS_TO_PASS to
3910         match.
3911
3912         (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
3913         cppdefault.o): Remove pointless sed munging of source file
3914         name.
3915
3916 2000-11-10  Bernd Schmidt  <bernds@redhat.co.uk>
3917
3918         * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
3919         for address reloads.  Push replacements for REG_INC notes.
3920         (regno_clobbered_p): New arg SETS.  Examine SETs if it's nonzero.  All
3921         callers changed.
3922         * reload1.c (choose_reload_regs): Registers set in the insn can't be
3923         used for RELOAD_OTHER reloads.
3924
3925 2000-11-10  Mark Mitchell  <mark@codesourcery.com>
3926
3927         * c-dump.h: New file.
3928
3929 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3930
3931         * alpha.c (check_float_value): Use memcpy, not bcopy.
3932         * arm.c (output_move_double): Likewise.
3933         * arm.md: Likewise.
3934         * m88k.c (legitimize_operand): Likewise.
3935         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
3936         * m88k.md: Likewise.
3937         * mips.c (override_options): Likewise.
3938         * mips.md: Likewise.
3939         * romp.c (output_fpops): Likewise.
3940         * rs6000.c (rs6000_override_options): Likewise.
3941         * sh.md: Likewise.
3942         * vax.c (check_float_value): Likewise.
3943
3944         * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
3945         * expmed.c (synth_mult): Likewise.
3946         * final.c (add_bb_string): Likewise.
3947         * genattr.c (main): Likewise.
3948         * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
3949         Likewise.
3950         * jump.c (thread_jumps): Likewise.
3951         * prefix.c (save_string): Likewise.
3952         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
3953         * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
3954         * reload1.c (reload, eliminate_regs): Likewise.
3955
3956 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
3957
3958         * gcc.texi (Service): Update to reflect current practice and
3959         location of the GNU service directory.
3960
3961 2000-11-09  Bernd Schmidt  <bernds@redhat.co.uk>
3962
3963         * regrename.c (build_def_use): Mark contents of REG_INC notes as
3964         needing replacement.
3965
3966         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
3967         a no-op move if regs are equal.
3968         * toplev.c (rest_of_compilation): Do the noop moves elimination pass
3969         when calling jump after post-reload splitting.
3970
3971 2000-11-09  Jan van Male  <jan.vanmale@fenk.wau.nl>
3972
3973         * c-tree.texi: Fix typos.
3974         * extend.texi: Likewise
3975         * gcov.texi: Likewise
3976         * rtl.texi: Likewise
3977         * tm.texi: Likewise
3978
3979 2000-11-09  Hans-Peter Nilsson  <hp@axis.com>
3980
3981         * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
3982         in_system_header and flags[1] before dereferencing flags[2].
3983
3984 2000-11-09  Matthew Hiller <hiller@redhat.com>
3985
3986         * reload1.c (reload_combine): Fixed calculation of
3987         first_index_reg, last_index_reg.
3988
3989 2000-11-09  Mark Mitchell  <mark@codesourcery.com>
3990
3991         * c-dump.c (dequeue_and_dump): Dump function bodies.
3992
3993         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
3994         (c-dump.o): New target.
3995         * c-common.h (flag_dump_translation_unit): New variable.
3996         (C_TYPE_QUALS): New macro.
3997         (strip_array_types): New function.
3998         (DECL_C_BIT_FIELD): New macro.
3999         (SET_DECL_C_BIT_FIELD): Likewise.
4000         (CLEAR_DECL_C_BIT_FIELD): Likewise.
4001         (dump_info_p): New typedef.
4002         (dump_tree_fn): Likewise.
4003         (lang_dump_tree): New variable.
4004         (dump_node_to_file): New function.
4005         * c-common.c (flag_dump_translation_unit): Define it.
4006         (strip_array_types): New function.
4007         * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
4008         * c-lang.c (finish_file): Call dump_node_to_file if
4009         flag_dump_translation_unit.
4010         * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
4011         * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
4012         * c-dump.c: New file.
4013
4014 2000-11-09  Christopher Faylor <cgf@cygnus.com>
4015
4016         * config/i386/cygwin.h: Add mingw startfile prefix.
4017
4018 2000-11-09  Richard Henderson  <rth@redhat.com>
4019
4020         * flow.c (invalidate_mems_from_set): Split out from ...
4021         (mark_set_1): ... here.
4022         (try_pre_increment_1): Use it.  Use propagate_block_delete_insn
4023         instead of turning insn into a NOTE_INSN_DELETED.
4024
4025 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
4026
4027         * extend.texi, invoke.texi: Move documentation of builtin versions
4028         of C library functions to one place and update.
4029
4030 2000-11-09  Richard Henderson  <rth@redhat.com>
4031
4032         * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
4033         the types themselves to discover type equivalence.
4034
4035 2000-11-09  Mike Stump  <mrs@wrs.com>
4036
4037         * Makefile.in (distclean): Remove a few extra leftovers.
4038
4039 2000-11-09  Richard Henderson  <rth@redhat.com>
4040
4041         * recog.c (validate_replace_rtx_1): Consider subregs when
4042         replacing a register with a constant inside a sign/zero_extend.
4043
4044         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4045
4046 2000-11-09  Geoffrey Keating  <geoffk@redhat.com>
4047
4048         * c-decl.c (finish_struct): When a structure is completed,
4049         check all its variant types for completeness.
4050
4051 2000-11-09  Neil Booth  <neilb@earthling.net>
4052
4053         * cpphash.c: Move cpp_defined here from cpplib.c.
4054         * cpplib.c: Update comments, move cpp_defined to cpphash.c.
4055         * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
4056         * cppmacro.c (cpp_get_token): Update comments, no need now
4057         to catch the CPP_EOF meaning EOL case.
4058
4059 2000-11-08  Geoffrey Keating  <geoffk@redhat.com>
4060
4061         * config/sparc/sparc.c (sparc_va_arg): When the required alignment
4062         is more than that provided, copy to a temporary.
4063
4064 2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
4065
4066         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
4067         interpreting $out as a macro assignment.
4068         * Makefile.in (T_TARGET): New auxiliary macro and target.
4069         (all): Add a target right in the beginning, so that we don't build
4070         T_TARGET by default.
4071
4072 2000-11-09  Graham Stott  <grahams@redhat.com>
4073
4074         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
4075         order for -mintel-syntax.  Remove comment now that the operand
4076         order has been checked.
4077         (mmx_pextrw): Likewise.
4078         (mmx_pshufw): Likewise.
4079
4080 2000-11-09  Jakub Jelinek  <jakub@redhat.com>
4081
4082         * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
4083         (c_getstr): New function.
4084         (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
4085         If both arguments are constant string, optimize out.
4086         (expand_builtin_strchr, expand_builtin_strrchr): New functions.
4087         (expand_builtin_strpbrk): Use c_getstr, do nothing if
4088         -fcheck-memory-usage.
4089         (expand_builtin_fputs): Likewise.
4090         (expand_builtin_strcmp): Add MODE argument.
4091         Use even if !HAVE_cmpstrsi.
4092         Optimize the case when both arguments are constant strings.
4093         (expand_builtin): Adjust expand_builtin_strcmp caller.
4094         Call expand_builtin_strchr and expand_builtin_strrchr.
4095         * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
4096         builtins.
4097         * builtins.def (BUILT_IN_STRRCHR): Add.
4098
4099 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4100
4101         * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
4102
4103 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
4104
4105         * calls.c (expand_call, emit_library_call_value_1), collect2.c
4106         (scan_prog_file), config/a29k/a29k.c (print_operand),
4107         config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
4108         instead of bcopy ().
4109         * real.h: Use memcmp () instead of bcmp ().
4110         * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
4111         (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
4112         ultrasparc_sched_init, ultrasparc_sched_reorder),
4113         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
4114         instead of bzero ().
4115         * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
4116         instead of rindex ().
4117         * configure.in: Don't check for bzero, bcmp, index or rindex.
4118         * configure, config.in: Regenerate.
4119         * system.h: Don't include declarations for bzero, bcmp, index or
4120         rindex.
4121         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
4122         bzero, bcmp, index or rindex.
4123
4124 Wed Nov  8 21:58:20 2000  Christopher Faylor <cgf@cygnus.com>
4125
4126         * config/i386/cygwin.h: Add -no-win32 switch.  Separate -mno-cygwin
4127         include and library paths from -mcygwin case.  Parameterize some
4128         declarations to avoid warnings.  Use standard locations for include and
4129         lib dirs.
4130
4131 2000-11-08  Nick Clifton  <nickc@redhat.com>
4132
4133         * config/arm/arm.md (mulsidi3adddi): Change output operand
4134         constraint from "=&" to "+&".
4135         (umulsidi3adddi): Change output operand constraint from "=&" to
4136         "+&".
4137
4138 2000-11-08  Richard Henderson  <rth@redhat.com>
4139
4140         * flow.c (init_propagate_block_info): Protect the rtx stored in
4141         mem_set_list from modification by find_auto_inc.
4142         (mark_set_1): Likewise.
4143
4144 2000-11-08  Neil Booth  <neilb@earthling.net>
4145
4146         Move directive handling into the lexer itself.
4147
4148         * cpplex.c (_cpp_lex_token): Handle directives directly.
4149         In the case of a directive interrupting a function-like
4150         macro invocation, use extra_char since read_ahead is
4151         used to store the '#'.  Return a CPP_EOF in this case.
4152         * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
4153         (cpp_get_token): Don't handle directives here.
4154         * cpplib.h: Remove CPP_DHASH token type.
4155
4156 Wed Nov  8 21:53:41 MET 2000  Jan Hubicka  <jh@suse.cz>
4157
4158         * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
4159         formed using PRE_MODIFY too.
4160
4161 2000-11-08  Mark Mitchell  <mark@codesourcery.com>
4162
4163         * c-tree.texi (VAR_DECL): Describe representation of GCC's
4164         extension for placing variables in particular registers.
4165
4166         * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
4167         unprototyped C functions with no parameters.
4168
4169 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
4170
4171         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
4172         before passing to fprintf.
4173
4174 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
4175
4176         * function.c (expand_function_start): Cast GET_MODE_SIZE to
4177         HOST_WIDE_INT before negating it.
4178
4179 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
4180
4181         * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
4182         passed in multiple non-contiguous locations.
4183
4184 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4185
4186         * README.gnat: Remove file.
4187
4188 2000-11-08  Alexandre Oliva  <aoliva@redhat.com>
4189
4190         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
4191         in-place.
4192
4193 2000-11-07  Richard Henderson  <rth@redhat.com>
4194
4195         * dwarfout.c (INSN_LABEL_FMT): Remove.
4196         (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
4197         (dwarfout_label): Remove.
4198         * dwarfout.h: Remove it's prototype.
4199         * dwarf2out.c (INSN_LABEL_FMT): Remove.
4200         (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
4201         (dwarf2out_label): Remove.
4202         * dwarf2out.h: Remove it's prototype.
4203         * final.c (final_scan_insn): Don't call dwarf[2]out_label.
4204
4205 2000-11-07  Richard Henderson  <rth@redhat.com>
4206
4207         * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
4208         search on the unwind region section.
4209
4210         * config/ia64/ia64.md (movbi): Add r/r alternative.
4211         (cmovdi_internal_astep): Describe all combinations of register
4212         classes for sources & destinations; remove matching constraints.
4213         (cmovdi_internal): Likewise.
4214
4215         * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
4216
4217 2000-11-07  Richard Henderson  <rth@redhat.com>
4218
4219         * c-lang.c (start_cdtor, finish_cdtor): New functions.
4220         (finish_file): Use them in building constructor/destructor functions.
4221
4222         * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
4223         LD_FINI_SWITCH): Move ...
4224         * config/alpha/osf.h: ... here.
4225         * config/alpha/alpha-interix.h: Don't undef them.
4226
4227 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
4228
4229         * config/mips/t-iris6 (FPBIT): New.  Added so that __unorddf2 is
4230         included in libgcc.a.
4231         (DPBIT): Likewise.
4232         (dp-bit.c): Likewise.
4233         (fp-bit.c): Likewise.
4234
4235 2000-11-07  Nick Clifton  <nickc@redhat.com>
4236
4237         * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
4238         (INTERNAL_ASM_OP): Add missing tab.
4239
4240 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4241
4242         * alias.c (init_alias_analysis), calls.c (expand_call,
4243         emit_library_call_value_1), combine.c (init_reg_last_arrays),
4244         cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
4245         (init_output_buffer, set_diagnostic_context), dwarf2out.c
4246         (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
4247         (init_emit_once), fold-const.c (mul_double, div_and_round_double),
4248         function.c (assign_parms), gcse.c (compute_can_copy,
4249         alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
4250         compute_hash_table, compute_set_hash_table,
4251         compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
4252         (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
4253         clear_units, schedule_block), integrate.c (initialize_for_inline,
4254         expand_inline_function), jump.c (thread_jumps), local-alloc.c
4255         (local_alloc), loop.c (combine_movables, count_loop_regs_set,
4256         load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
4257         regclass.c (init_reg_sets, init_reg_sets_1, regclass,
4258         record_reg_classes, allocate_reg_info), reload.c
4259         (get_secondary_mem, remove_address_replacements, find_reloads),
4260         reload1.c (reload, set_initial_label_offsets, finish_spills,
4261         reload_as_needed, choose_reload_regs_init,
4262         reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
4263         (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
4264         (rename_registers), stmt.c (expand_end_case), unroll.c
4265         (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
4266         () instead of bzero ().
4267
4268 2000-11-07  Neil Booth  <neilb@earthling.net>
4269
4270        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
4271
4272 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4273
4274         * c-common.c (combine_strings): Only warn about long strings for C.
4275
4276 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
4277
4278         * combine.c (distribute_notes): Fix typo in last change.
4279
4280 2000-11-07  Geoff Keating  <geoffk@redhat.com>
4281
4282         * config/rs6000/rs6000.md (movdi_internal32+1): Use
4283         operand_subreg_force rather than gen_rtx_SUBREG.
4284         (movdi_internal32+2): Likewise.
4285
4286 2000-11-07  Philip Blundell  <philb@gnu.org>
4287
4288         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
4289         * config/arm/linux-aout.h: Likewise.
4290         * configure: Regenerate.
4291
4292 2000-11-07  Philipp Thomas  <pthomas@suse.de>
4293
4294         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
4295         accepted my the gettext maintainer.
4296
4297 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4298
4299         * builtins.c (expand_builtin_strpbrk): New function.
4300         (expand_builtin): Handle BUILT_IN_STRPBRK.
4301
4302         * builtins.def (BUILT_IN_STRPBRK): New entry.
4303
4304         * c-common.c (c_common_nodes_and_builtins): Declare builtin
4305         strpbrk.
4306
4307 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
4308
4309         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
4310         * POTFILES.in: Add config/alpha/freebsd.h
4311         * configure.in: Add alpha*-freebsd support.
4312         * configure: Regenerate.
4313
4314 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4315
4316         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
4317         copy of ptr_type_node rather than ptr_type_node itself.
4318
4319 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
4320
4321         * combine.c (recog_for_combine): Allocate uninitialized vector with
4322         rtvec_alloc.
4323         * recog.c (apply_change_group): Likewise.
4324
4325 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
4326
4327         * flow.c (verify_local_live_at_start): Back out last change.
4328         * combine.c (distribute_notes): When parts of a hard reg are
4329         neither set nor referenced in PLACE, search backwards for a
4330         place to put a REG_UNUSED note; if none found, ask for flow
4331         info refresh.
4332
4333 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
4334
4335         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
4336         with (clobber (match_scratch...)).
4337
4338 2000-11-06  Neil Booth  <neilb@earthling.net>
4339
4340         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
4341         error status.
4342
4343 2000-11-06  Neil Booth  <neilb@earthling.net>
4344
4345         * tradcpp.c (special_symbol): Assign an null string rather
4346         than writing to an unallocated buffer.
4347
4348 2000-11-06  Neil Booth  <neilb@earthling.net>
4349
4350         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
4351         CPP_MACRO_ARG case.
4352
4353 2000-11-06  Neil Booth  <neilb@earthling.net>
4354
4355         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
4356         tok.val.arg_no as appropriate.
4357         * cppexp.c (lex): Similarly.
4358         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
4359         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
4360         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
4361         cpp_macro_definition): Similarly.
4362         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
4363
4364 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4365
4366         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
4367         operands[1] is constant, calculate the sum and generate movdi.
4368         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
4369         (subsi3): Use SImode in call to arith_4096_operand.
4370
4371 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4372
4373         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
4374         adjust %o1, not %o0 if the return type is large structure.
4375
4376 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
4377
4378         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
4379         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
4380
4381 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
4382
4383         * expmed.c (expand_divmod): For signed divide by 2, prefer
4384         a branch and fewer shifts if branches are very cheap.
4385
4386 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4387
4388         * Makefile.in: Remove all targets related to building
4389         distributions and diffs, or INSTALL.
4390         * INSTALL, install1.texi: Remove.
4391         * configure.in: Remove mention of distdir.
4392         * configure: Regenerate.
4393         * objc/Make-lang.in: Remove mention of distdir.
4394
4395 2000-11-04  Neil Booth  <neilb@earthling.net>
4396
4397         * cpp.texi: Update for _Pragma.
4398
4399 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4400
4401         * gcc.texi (Contributing): Update URL for projects web page.
4402
4403 2000-11-04  Neil Booth  <neilb@earthling.net>
4404
4405         * cpplex.c (parse_string): Don't allow multiline strings in
4406         #include family directives.
4407
4408 2000-11-04  Neil Booth  <neilb@earthling.net>
4409
4410         * cpplib.c (do_line): Only warn pedantically if not reading
4411         preprocessed input.
4412
4413 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
4414
4415         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
4416         RETURN_POPS_ARGS().
4417
4418 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
4419
4420         * builtins.c (expand_builtin_strlen): Remove unused mode
4421         argument.
4422         * gcc.c (process_command): Remove unused variable.
4423         * fold-const.c: Include expr.h.
4424         * recog.c: Include reload.h.
4425         * Makefile.in (recog.o, fold-const.o): Update deps.
4426
4427 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
4428
4429         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
4430
4431 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
4432
4433         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
4434         handling.
4435         (STARTFILE_SPEC): Likewise.
4436         (LINK_SPEC): Likewise.
4437
4438 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4439
4440         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
4441         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
4442         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
4443
4444 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
4445
4446         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
4447         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
4448         perm_calloc, get_identifier, maybe_get_identifier,
4449         real_value_from_int_cst, simple_cst_equal), varasm.c
4450         (assemble_name, assemble_real, immed_real_const_1,
4451         compare_constant_1, decode_rtx_const, output_constant_pool): Use
4452         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
4453         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
4454         bzero ().
4455
4456 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
4457
4458         * cppfiles.c (open_file): If already read, then don't reopen.
4459         Immediately close an empty file.
4460
4461 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
4462
4463         * expr.h (fold_builtin): Move declaration...
4464         * tree.h (fold_builtin): ... here.
4465
4466 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
4467
4468         * flow.c (verify_local_live_at_start): Allow hard regs to die.
4469
4470 2000-11-02  Neil Booth  <neilb@earthling.net>
4471
4472 config:
4473         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
4474         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
4475         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
4476         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
4477         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4478         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
4479         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
4480         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
4481         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
4482         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
4483         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
4484         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
4485         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
4486         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
4487         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
4488         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
4489         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
4490         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
4491         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
4492         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
4493         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
4494         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
4495         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
4496         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
4497         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
4498         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
4499         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
4500         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
4501         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
4502         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
4503         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
4504         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
4505         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
4506         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
4507         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
4508         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
4509         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
4510         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
4511         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
4512         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
4513         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
4514         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
4515         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
4516         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
4517         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
4518         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
4519         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
4520         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
4521         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
4522         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
4523         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
4524         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
4525         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
4526         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
4527         vax/vaxv.h, vax/vms.h, we32k/we32k.h
4528
4529         Replace -A() with -A=, the new assertion syntax.
4530
4531 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
4532
4533         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
4534         elim_i1.
4535         In REG_DEAD handling: When handling parts of multi-hard-reg hard
4536         registers, increment the loop counter by the size of the parts;
4537         use recursion to handle individual parts.
4538
4539 2000-11-02  Neil Booth  <neilb@earthling.net>
4540
4541         * configure.in: Make integrated CPP the default.
4542         * configure: Regenerate.
4543
4544 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
4545
4546         * reload.c (find_equiv_reg): Test all hard registers for membership
4547         in the requested class.
4548
4549 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4550
4551         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
4552         process_command, main), gcov.c (open_files, output_data), tlink.c
4553         (frob_extension, scan_linker_output), toplev.c
4554         (file_name_nondirectory): Use strchr () and strrchr () instead of
4555         index () and rindex ().
4556
4557 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4558
4559         * c-common.c (get_flag_spec, check_format_info_main,
4560         check_format_types): Use strchr () instead of index ().  Compare
4561         against error_mark_node instead of comparing the TREE_CODE against
4562         ERROR_MARK.
4563
4564 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
4565
4566         Integrated CPP.
4567
4568         * c-lex.c (init_c_lex): Update cpp_start_read call.
4569         (cb_ident): Update for new callback prototype.
4570         (cb_def_pragma): Update for new cpp_get_token prototype.
4571         (c_lex): Similarly.  Use cpp_get_line.
4572
4573         * c-parse.in (finish_parse): Update for new cpp_finish
4574         prototype.
4575
4576         * cp/lex.c (finish_parse): Similarly.
4577
4578 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
4579
4580         * machmode.def: Add V16QImode.
4581
4582 2000-11-01  Richard Henderson  <rth@redhat.com>
4583
4584         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
4585         from rtl_for_decl_location.
4586         (add_location_or_const_value_attribute): Likewise.
4587
4588 2000-11-01  Neil Booth  <neilb@earthling.net>
4589
4590         * cpplib.c (run_directive): Use correct line number for output
4591         of _Pragma.  Remember any in-progress directive.
4592
4593         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
4594
4595 2000-11-01  Richard Henderson  <rth@redhat.com>
4596
4597         * stmt.c (expand_start_null_loop): Set continue_label.
4598
4599 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
4600
4601         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
4602         (expand_builtin_constant_p): Move parts of the code into
4603         fold_builtin_constant_p.
4604         (expand_builtin_strlen): Move parts of the code into fold_builtin.
4605         * expr.h (fold_builtin): Declare.
4606         * fold-const.c (fold): Handle builtin calls.
4607
4608         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
4609
4610 2000-11-01  Richard Henderson  <rth@redhat.com>
4611
4612         * stmt.c (expand_start_null_loop): New.
4613         (expand_end_null_loop): New.
4614         * c-semantics.c (genrtl_do_stmt): Use them.
4615         * tree.h: Declare them.
4616
4617 2000-11-01  Richard Henderson  <rth@redhat.com>
4618
4619         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
4620
4621 2000-11-01  Neil Booth  <neilb@earthling.net>
4622
4623         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
4624         * cp/spew.c: Similarly.
4625         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
4626         * cppmacro.c (stringify_arg): Similarly.
4627         * cpplib.h (CPP_BACKSLASH): Delete.
4628
4629 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4630
4631         * builtins.c (expand_builtin_strstr): New function.
4632         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
4633
4634         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
4635
4636         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
4637         and builtin strchr.
4638
4639 2000-10-31  Richard Henderson  <rth@redhat.com>
4640
4641         * config/i386/i386.c (fcmov_comparison_operator): Check for
4642         CCFPmode or CCFPUmode instead of CCmode.
4643         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
4644         unordered operations as well.
4645
4646 2000-10-31  Richard Henderson  <rth@redhat.com>
4647
4648         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
4649         of integer_zero_node.
4650
4651 2000-10-31  Richard Henderson  <rth@redhat.com>
4652
4653         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
4654
4655 2000-10-31  Nick Clifton  <nickc@redhat.com>
4656
4657         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
4658         -fdata-sections to override the section attribute of a DECL.
4659
4660 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
4661
4662         * libgcc2.c (__shtab): Remove __shtab variable.
4663         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
4664         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
4665         members.
4666
4667 2000-10-31  Jim Wilson  <wilson@redhat.com>
4668
4669         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
4670         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
4671         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
4672         instead of ASM_OUTPUT_INTERNAL_LABEL.
4673         (dwarf2out_end_block, dwarf2out_label): Likewise.
4674         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
4675         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
4676
4677 2000-10-31  Richard Henderson  <rth@redhat.com>
4678
4679         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
4680         (size_of_locs): Set it.
4681         (output_loc_operands): Use it to compute branch displacement.
4682         (int_loc_descriptor): New.
4683         (mem_loc_descriptor): Dereference memory in the proper size.
4684         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
4685         (loc_descriptor_from_tree): New.
4686         (rtl_for_decl_location): Break out from ...
4687         (add_location_or_const_value_attribute): ... here.
4688         (add_bound_info): Use loc_descriptor_from_tree.
4689
4690 2000-10-31  Neil Booth  <neilb@earthling.net>
4691
4692         * cpp.texi: Update for new command line assertion syntax.
4693         * cpplib.c (cpp_define): Simplify a bit.
4694         (cpp_assert, cpp_unassert): Use handle_assertion.
4695         (handle_assertion): New function; accept new command line
4696         syntax with '='.
4697         * testsuite/gcc.dg/cpp/assert3.c: New tests.
4698
4699 2000-10-31  Neil Booth  <neilb@earthling.net>
4700
4701         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
4702         undefined.  Remove #ifdef check.
4703         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
4704         Define STDC_0_IN_SYSTEM_HEADERS to 1.
4705
4706 2000-10-31  Jan Hubicka  <jh@suse.cz>
4707             Jakub Jelinek  <jakub@redhat.com>
4708
4709         * config/i386/i386.h: Clarify CCNOmode description in comment.
4710         (EXTRA_CC_MODES): Remove CCRCmode.
4711         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
4712         (put_condition_code, ix86_match_ccmode): Likewise.
4713         (ix86_cc_mode): Likewise.  Fix comment.
4714         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
4715         * config/i386/i386.md: Add unspec 12 description.
4716         (adddi3 split): Use unspec 12 instead of CCRCmode.
4717         (addsi3_carry_rc): Remove.
4718         (addsi3_cc, addqi3_cc): New patterns.
4719         (addsi_3): Swap operands, match CCZmode.
4720         (addsi_4): Rewritten.
4721         (addsi_5): Renamed from addsi_6.
4722         (addsi_6): Removed.
4723         (addhi_3): Swap operands, match CCZmode.
4724         (addhi_4): Rewritten.
4725         (addhi_5): Renamed from addhi_6.
4726         (addhi_6): Removed.
4727         (addqi_3): Swap operands, match CCZmode.
4728         (addqi_4): Rewritten.
4729         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
4730         (subsi3_carry_rc): Removed.
4731         (iorqi_3): Use =q constraint for clobber.
4732         (xorqi_cc_2): Likewise.
4733         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
4734         (x86_movsicc_0_m1_rc): Removed.
4735         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
4736
4737 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
4738
4739         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
4740         and decrement of complex types.
4741
4742 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4743
4744         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
4745         builtin fputs, ensure we still evaluate the stream in case it
4746         has side-effects.
4747
4748 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
4749
4750         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
4751         to expand_shift.
4752
4753 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
4754
4755         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
4756         (fp_extended_operand, emit_fpscr_use): Likewise.
4757         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
4758         (fpul_operand): New function.
4759         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
4760         fp_extended_operand.  Add fpul_operand.
4761         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
4762         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
4763         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
4764         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
4765         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
4766         (divdf3_i): Likewise.
4767         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
4768         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
4769         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
4770         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
4771         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
4772
4773 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
4774
4775         * config/i386/i386.c (ix86_init_builtins): Correct return type
4776         building v4hi_ftype_v4hi_int_int tree node.
4777         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
4778         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
4779
4780         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
4781         for operand 1.
4782         (mmx__uavgv8qi3): Correct insn mnemonic.
4783         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
4784         (mmx_punpckhwd): Correct insn mnemonic.
4785         (mmx_punpckhdq): Likewise.
4786         (mmx_punpcklwd): Likewise.
4787         (mmx_punpckldq): Likewise.
4788         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
4789         Renumber case labels to match the _mm_prefetch constants defined in
4790         xmmintrin.h.
4791
4792         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
4793         if the splitter didn't emit new insns.
4794         Make sure we call cleanup_subreg_operands even when splitting the last
4795         insn in a basic block.
4796
4797         * invoke.texi (Debugging Options): Describe -do.
4798         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
4799         (dump_file): Likewise.
4800         (rest_of_compilation): Split .greg dump into .greg and .postreload.
4801
4802 2000-10-30  Neil Booth  <neilb@earthling.net>
4803
4804         * cppfiles.c (stack_include_file): Check for stacked contexts
4805         here.
4806         * cpphash.h (_cpp_do__Pragma): New prototype.
4807         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
4808
4809         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
4810         escaped newlines if !(buffer->from_stage3).
4811         (_cpp_lex_token): Warn about missing newlines iff
4812         !buffer->from_stage3.
4813
4814         * cpplib.c (get__Pragma_string, destringize,
4815         _cpp_do__Pragma): New functions.
4816         (run_directive): Set output_line for _Pragma to avoid line
4817         markers in output.  Set from_stage3 and prevent macro expansion
4818         for _Pragma and command-line options.  Check buffer exhaustion.
4819         (cpp_push_buffer): Don't check for stacked macro contexts, as
4820         this is perfectly legitimate for _Pragma.  Move the check to
4821         stack_include_file instead. Set from_stage3 iff buffer is
4822         preprocessed input.
4823
4824         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
4825         unsigned. New boolean from_stage3.
4826         (struct spec_nodes): Add n__Pragma.
4827
4828         * cppmacro.c (enter_macro_context): Flip sense of return value.
4829         (_cpp_get_token): Handle _Pragma operator.
4830
4831 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
4832
4833         * gcc.texi:  The C++ standard isn't "draft" anymore.
4834
4835 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
4836
4837         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
4838
4839 2000-10-29  Neil Booth  <neilb@earthling.net>
4840
4841         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
4842
4843 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
4844
4845         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
4846         fixinc/inclhack.def: Change comments mentioning C9X to refer to
4847         C99 instead.
4848
4849         * invoke.texi: Document that -V will only work for very similar
4850         versions of driver and compiler.
4851
4852 2000-10-29  Neil Booth  <neilb@earthling.net>
4853
4854         * cppmacro.c (_cpp_create_definition): Optimize the case of
4855         a macro defined to itself.
4856
4857 2000-10-29  Neil Booth  <neilb@earthling.net>
4858
4859         * cpplex.c (save_comment): Don't store new lines in C++ comments.
4860
4861 2000-10-29  Michael Hayes  <mhayes@redhat.com>
4862
4863         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
4864
4865 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
4866
4867         * cpphash.c (cpp_forall_identifiers): Add context variable
4868         for callback routine.
4869         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
4870         change.
4871         (main): Call cpp_forall_identifiers with null context.
4872         * cpplib.h (cpp_forall_identifiers): Update prototype.
4873
4874         * cppmain.c: Make `parse_in' and `print' static.
4875
4876 2000-10-28  Alan Modra <alan@linuxcare.com.au>
4877
4878         * c-decl.c (finish_function): Clear c_function_name_declared_p.
4879
4880 2000-10-28  Richard Henderson  <rth@redhat.com>
4881
4882         * regrename.c (scan_rtx_address): Frob action, not class,
4883         when trying to disable optimization.
4884
4885 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
4886
4887         * c-semantics.c (make_rtl_for_local_static): Don't clobber
4888         DECL_ASSEMBLER_NAME.
4889
4890 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
4891
4892         * configure.in: Determine and substitute gcc_version_full.
4893         * configure: Regenerate.
4894         * gccbug.in: Use it to give full version.  Don't allow
4895         confidential PRs.
4896
4897 2000-10-28  Richard Henderson  <rth@redhat.com>
4898
4899         * recog.c (split_all_insns): Run cleanup_subreg_operands
4900         after reload.
4901
4902         * regrename.c (regrename_optimize): Verify that all registers of
4903         a multiple register mode are available.
4904         (scan_rtx_address): Accept the mode of the address; all callers
4905         changed.
4906
4907         * cpplib.c (run_directive): Fix prototype.
4908
4909 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
4910
4911         * reload.c (find_reloads): Distinguish "wins" so that we know whether
4912         a given operand won because of a matching constraint or not; then use
4913         that information to compute goal_alternative_matched properly.
4914         * reload1.c (choose_reload_regs): Never set reload_override_in for an
4915         optional reload.
4916
4917         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
4918         accurate value for MULT.
4919         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
4920         2% or > 98% before using static branch prediction bits.
4921
4922 2000-10-28  Neil Booth  <neilb@earthling.net>
4923
4924         New macro expander.
4925
4926         * cpplib.c (struct answer): New.
4927         (struct if_stack): Use cpp_lexer_pos rather than line and col.
4928         Rename cmacro mi_cmacro.
4929         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
4930         IN_I): New directive and flags.
4931         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
4932         parse_answer, parse_assertion, find_answer): New functions.
4933         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
4934         (lex_macro_node): New function to replace parse_ifdef and
4935         get_define_node.
4936
4937         (_cpp_handle_directive): New function, combines _cpp_check_directive
4938         and _cpp_check_linemarker.
4939
4940         (do_define, do_undef, parse_include, do_include, do_import,
4941         do_include_next, read_line_number, do_line, do_ident, do_pragma,
4942         do_pragma_once, do_pragma_poison, do_pragma_dependency):
4943         Update for new token getting interface.
4944
4945         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
4946         : Update for new multiple-include optimisation technique.
4947         (do_elif): Don't forget to invalidate controlling macros.
4948
4949         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
4950         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
4951         Functions to handle assertions with the new token interface.
4952         (do_assert, do_unassert): Use them.
4953
4954         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
4955         Use run_directive.
4956
4957         (_cpp_init_stacks): Register directive names.  Don't register special
4958         nodes.
4959
4960         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
4961         new position recording regime.
4962         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
4963         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4964         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
4965         (cpp_type2name): Move to cpplex.c.
4966
4967         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
4968         (parse_defined): Update to handle new multiple include optimisation
4969         method.  Remove poisoned identifier warning.
4970         (parse_assertion, TYPE_NAME): Delete.
4971         (lex): Update for multiple include optimisation, removal of
4972         CPP_DEFINED, to use _cpp_test_assertion for assertions and
4973         cpp_token_as_text.
4974         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
4975         (op_as_text): New function, to wrap cpp_token_as_text.
4976
4977         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
4978         Update for MI optimisation.
4979         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
4980         segfault on diagnostic.
4981         (_cpp_compare_file_date): Take a token rather than 3 args.
4982         (cpp_read_file): Work correctly for zero-length files.
4983
4984         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
4985         _cpp_init_hashtable and _cpp_cleanup_hashtable.
4986         (cpp_lookup): Place identifiers at front of identifier pool
4987         for _cpp_lookup_with_hash.
4988         (_cpp_lookup_with_hash): Require identifiers to be at the front of
4989         the identifier pool.  Commit the memory if not already in the
4990         hash table.
4991
4992         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
4993         Initialise various members of cpp_reader, memory pools, and the
4994         special nodes.
4995         (cpp_printer_init): Delete.
4996         (cpp_cleanup): Update.
4997         (struct builtin, builtin_array, initialize_builtins): Update for new
4998         hashnode definition and builtin handling.
4999         (cpp_start_read, cpp_finish): Don't take or initialise a
5000         printer.  Update.
5001
5002         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
5003         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
5004         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
5005         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
5006         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
5007         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
5008         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
5009         struct toklist, struct cpp_context, struct specnodes,
5010         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
5011         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
5012         enum builtin_type, cpp_can_paste): New.
5013         (struct cpp_token): Delete line and col members.
5014         (struct cpp_buffer): New member output_lineno.
5015         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
5016         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
5017         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
5018         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
5019         base_context, context, directive, mi_state, mi_if_not_defined,
5020         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
5021         mlstring_pos, macro_buffer, macro_buffer_len.
5022         Delete members mls_line, mls_column, token_list, potential_control_macro,
5023         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
5024         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
5025         save_parameter_spellings, need_newline, .
5026         Change type of date, time and spec_nodes members.
5027         Change prototypes for include and ident callbacks.
5028         (struct cpp_hashnode): Change type of name.  Remove union members
5029         expansion and code.  Add members macro, operator and builtin.
5030
5031         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
5032         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
5033         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
5034         cpp_stop_lookahead): New prototypes.
5035         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
5036
5037         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
5038         Move from cpphash.h.
5039
5040         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
5041         ufputs): Move to cpplib.h.
5042         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
5043         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
5044         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
5045         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
5046         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
5047         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
5048         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
5049         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
5050         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
5051         _cpp_parse_assertion, _cpp_find_answer): Delete.
5052         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
5053         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
5054         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
5055         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
5056         _cpp_handle_directive, DSC): New.
5057         (struct include_file): New member defined.
5058
5059         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
5060         _cpp_compare_file_date): Update.
5061         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
5062         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
5063         _cpp_cleanup_hashtable.
5064
5065         * Makefile.in: Remove cppoutput.c.
5066
5067         * cppoutput.c: Delete
5068
5069         * fixheader.c (read_scan_file): Update for new cpp_get_token
5070         prototype.
5071         (recognized_function): New argument LINE.
5072
5073         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
5074         new cpp_get_token prototype.
5075
5076         * scan.h (recognized_function): Update prototype.
5077
5078         * po/POTFILES.in: Remove cppoutput.c.
5079
5080 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
5081
5082         * c-typeck.c (check_init_type_bitfields): Remove.
5083         (constructor_incremental): Likewise.
5084         (struct constructor_stack): Remove incremental bit.
5085         (struct initializer_stack): Likewise.
5086         (start_init): Don't play with constructor_incremental.
5087         (finish_init): Likewise.
5088         (really_start_incremental_init): Likewise.
5089         (push_init_level): Likewise.
5090         (pop_init_level): Likewise.
5091         (output_init_level): Likewise.
5092         (output_pending_init_elements): Likewise.
5093
5094 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
5095
5096         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
5097         Improve error messages.  Correct parsing of
5098         #pragma pack(pop [,id]).  Do not check the user-supplied
5099         alignment if we're popping.
5100
5101         * gcc.dg/pack-test-1.c: New test case.
5102         * gcc.dg/pack-test-2.c: New test case.
5103         * gcc.dg/pack-test-1.h: New file.
5104
5105 2000-10-27  Neil Booth  <neilb@earthling.net>
5106
5107         * cpp.texi: Update.
5108
5109 2000-10-27  Kelley Cook <kelley.cook@home.com>
5110
5111         * invoke.texi: Document -mintel-syntax
5112
5113 2000-10-27  Richard Henderson  <rth@redhat.com>
5114
5115         * invoke.texi: Document -frename-registers.  Add it to -O3.
5116         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
5117         (enum dump_file_index, dump_file): Update order.
5118         (main): Set flag_rename_registers at -O3.
5119
5120 2000-10-27  Richard Henderson  <rth@redhat.com>
5121
5122         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
5123         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
5124         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
5125         * config/alpha/alpha.md (call_osf_1): Use it.
5126         (call_value_osf_1): Likewise.
5127
5128         * config/ia64/ia64.c: Revert 10-23 patch.
5129         (ia64_hard_regno_rename_ok): New.
5130         * config/ia64/ia64-protos.h: Declare it.
5131         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
5132
5133 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
5134             Richard Henderson  <rth@redhat.com>
5135
5136         * regrename.c: Rewrite to handle multi-register modes and
5137         cond_exec instructions.
5138         * Makefile.in (regrename.o): Update dependancies.
5139         * recog.h (struct operand_alternative): Add is_address.
5140         * recog.c (preprocess_constraints) [case 'p']: Set it.
5141
5142 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
5143
5144         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
5145         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
5146         top level.  Kill oldstyle_subdirs.  Do not include
5147         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
5148         $outputs.  Do not run configure.lang from config.status.
5149         Rearrange warning-flag logic to correspond to what the
5150         makefile wants.  Put special vax stage1 options in
5151         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
5152         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
5153         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
5154         switch is given, nothing otherwise.
5155         * configure.lang: Delete.
5156
5157         * Makefile.in: Expunge all traces of extra_c_objs,
5158         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
5159         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
5160         warning options via a three level scheme so that -pedantic and
5161         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
5162         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
5163         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
5164         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
5165         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
5166         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
5167         generation rules.  Wrap all rules that change the current
5168         directory in parentheses; pmake doesn't spawn a new shell for
5169         each command.  Expunge all references to $(P).  When one
5170         command depends on another and they're run all at once, use &&
5171         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
5172         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
5173         and beyond.
5174
5175         * objc/Make-lang.in: Wrap all rules that change the current
5176         directory in parentheses.  Expunge all references to $(P).
5177         When one command depends on another and they're run all at
5178         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
5179         all object-file generation rules.  Delete obsolete variables.
5180         * objc/Makefile.in: Delete.
5181
5182 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
5183
5184         * calls.c (expand_call): If sibcall_failure is set during pass 1,
5185         clear tail_call_insns as well.
5186
5187 2000-10-27  Nick Clifton  <nickc@redhat.com>
5188
5189         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
5190         prototype.
5191
5192 2000-10-26  Richard Henderson  <rth@redhat.com>
5193
5194         * calls.c (expand_call): Supress sibcall if we have a
5195         BLKmode return in registers.
5196
5197 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
5198
5199         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
5200         into memory.
5201
5202 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
5203
5204         * tree.c (make_node, case 't'): Set alignment to that of
5205         char_type_node.
5206         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
5207
5208 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
5209
5210         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
5211         * configure.in (enable-libstdcxx-v3): Arrange to have
5212         HAVE_LIBSTDCXX_V3 substituted into the output files.
5213
5214 2000-10-25  Richard Henderson  <rth@redhat.com>
5215
5216         * recog.c (constrain_operands): Initialize which_alternative
5217         before no alternatives early exit.
5218
5219         * cse.c (find_comparison_args): Check that we can reverse a
5220         comparison if needed before accepting the substitution.
5221
5222         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
5223
5224         * simplify-rtx.c (simplify_relational_operation): Sign extend
5225         low words before sign extending to high words.
5226
5227 2000-10-25  Nick Clifton  <nickc@redhat.com>
5228
5229         * config/mcore/mcore.c: Include config.h before system.h.
5230
5231 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
5232
5233         * config/mcore/mcore.md (return): Force function epilogue to
5234         always be generated to work around epilogue suppression bug in
5235         M*Core backend.
5236
5237 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5238
5239         * c-decl.c (grokdeclarator): Move warning for qualified void
5240         return types with -pedantic to when the function type is
5241         constructed.  At -W, warn in general for qualified function return
5242         types, except for volatile void.
5243         * invoke.texi: Document this new warning at -W.
5244
5245 2000-10-25  Neil Booth  <neilb@earthling.net>
5246
5247         * cpp.texi: Update with implementation-defined behavior and
5248         internal limits.
5249
5250 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
5251
5252         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
5253         incomplete type force it into alias set 0.
5254
5255 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
5256
5257         * alias.c: Include basic-block.h.
5258         (loop_p): New function.
5259         (mark_constant_function): Use it.
5260         * Makefile.in (alias.o): Update dependencies.
5261
5262 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
5263
5264         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
5265         like memory.
5266
5267 2000-10-24  Jim Wilson  <wilson@cygnus.com>
5268
5269         * expmed.c (store_bit_field): Move integer pun code down after
5270         code that calls emit_move_insn for entire register move.
5271         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
5272         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
5273
5274 2000-10-24  Richard Henderson  <rth@cygnus.com>
5275
5276         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
5277         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
5278
5279 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
5280
5281         * gcse.c (cprop_insn): do not propagate constants into jump_insn
5282         for machines with CC0 more than once.
5283
5284 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
5285
5286         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
5287         pseudos just like memory.
5288
5289 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
5290
5291         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
5292         when deleting libcall sequence collapsed to a single instruction.
5293
5294 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
5295
5296         * expr.c (do_store_flag): Don't crash if either side of a
5297         comparison is error_mark_node.
5298
5299 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
5300
5301         * sibcall.c (purge_mem_unchanging_flag): New function.
5302         (optimize_sibling_and_tail_recursive_calls): Call it.
5303
5304 2000-10-24  Philipp Thomas  <pthomas@suse.de>
5305
5306         * Makefile.in (check-po): New target for doing checks in the po
5307         subdir if all languages configured.
5308         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
5309         configure if NLS is enabled.
5310         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
5311         otherwise leave empty.
5312         * configure: Regenerate.
5313
5314 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5315
5316         * i386.c (print_operand): Handle new 'A' formatting code.
5317         387 opcodes need suffixes even with -mintel-syntax.
5318         Check for explicit size override (codes 'b', 'w' and 'k').
5319         (print_operand_address): Check if register prefix is needed when
5320         emitting `ds' segment override.
5321         * i386.h: Add comment about new 'A' formatting code.
5322         * i386.md (jump and call patterns): Emit absolute references using %A.
5323
5324 2000-10-23  Richard Henderson  <rth@cygnus.com>
5325
5326         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
5327         output registers as fixed.
5328         (ia64_function_epilogue): Undo output fixation.
5329
5330 2000-10-23  Richard Henderson  <rth@cygnus.com>
5331
5332         * config/alpha/alpha.md: Add names for all unnamed insns; use
5333         define_insn_and_split in some obvious places.
5334         (lda): Remove.
5335         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
5336         (zero_extendqisi2, zero_extendqidi2): Likewise.
5337         (zero_extendhisi2, zero_extendhidi2): Likewise.
5338         (abs splitters): Fix match_scratch operand number.
5339         (bcc_reverse): Swap pc & label instead of non-canonical compare.
5340
5341 2000-10-23  Jim Wilson  <wilson@cygnus.com>
5342
5343         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
5344         CONST_INT.
5345         * ia64.md (cmpsi_adjusted): Use %r3.
5346         (cmpdi_adjusted): Likewise.
5347
5348 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5349
5350         * config/i386/att.h (ASM_FILE_START): Define.
5351
5352 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
5353
5354         * config/i386/linux.h (ASM_FILE_START): Define.
5355
5356 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
5357
5358         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
5359         since this (only) drags in a crt0.o reference that the .ld files
5360         also introduce.
5361
5362 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
5363
5364         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
5365         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
5366         reloads just like an RELOAD_FOR_OUTPUT would.
5367
5368         * local-alloc.c (update_equiv_regs): Add an abort().  When
5369         deleting or moving insns, update reg_equiv[regno].init_insns.
5370
5371 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
5372
5373         * c-tree.texi: Improve documentation for IF_STMTs and related
5374         conditional statements.
5375
5376 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
5377
5378         * expr.c (do_preexpand_calls): Remove.
5379         (same_from_p): Don't use CALL_EXPR_RTL.
5380         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
5381         (preexpand_calls): Remove.
5382         * tree.c (first_rtl_op): Remove CALL_EXPR case.
5383         (unsave_expr_1): Likewise.
5384         * tree.def (CALL_EXPR): Give it only two slots.
5385         * tree.h (CALL_EXPR_RTL): Remove.
5386
5387 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
5388
5389         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
5390         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
5391         New functions.
5392
5393 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
5394
5395         * calls.c (combine_pending_stack_adjustment_and_call): Don't
5396         adjust stack when unadjusted_alignment ends up as zero.
5397
5398 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
5399
5400         * fixinc/genfixes: Remove EGCS reference.
5401         * install.texi: Remove EGCS reference.
5402         * INSTALL: Regenerate.
5403
5404 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
5405
5406         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
5407
5408 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
5409
5410         * diagnostic.c: Remove EGCS reference in comment.
5411
5412 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5413
5414         * loop.c (strength_reduce): Fix error in last change.
5415
5416 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
5417
5418         * Makefile.in (SHLIB_NM_FLAGS): New.
5419         (libgcc.mk): Pass it.
5420         * mklibgcc.in (libgcc.map): Use it.
5421
5422         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
5423         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
5424
5425 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5426
5427         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
5428
5429         * sparc.c (load_pic_register): Delete unused varaible.
5430
5431         * libgcc2.c (__addvsi3): Delete unused variable.
5432
5433         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
5434         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
5435         __negvdi2): Prototype.
5436
5437         * ssa.c (apply_delayed_renames): Avoid undefined operation.
5438
5439         * toplev.c (display_target_options): Make static to match
5440         prototype.  Delete empty declaration.
5441
5442 2000-10-20  Tom Tromey  <tromey@cygnus.com>
5443
5444         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
5445         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
5446
5447 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5448
5449         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
5450         returned MEM.
5451         (expand_expr_unaligned, case ARRAY_REF): Check that index is
5452         a constant before comparing it; use tree_low_cst.
5453         * tree.c (save_expr): Set TREE_READONLY.
5454         (substitute_expr): Return inside of NON_LVALUE_EXPR.
5455         (build, build1): Set TREE_READONLY if all operands are.
5456         (build_index_type): If upper bound is a negative number, lower
5457         bound is zero and sizetype is unsigned, use upper bound of one and
5458         lower of zero.
5459
5460 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
5461
5462         * gcc.c (process_command, main): Use "because" instead of
5463         "since" in error messages.
5464
5465 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5466
5467         * stor-layout.c (compute_record_mode): Use tree_low_cst.
5468         Don't use mode of field for record unless sizes are the same.
5469         (layout_type, case ARRAY_TYPE): Remove special bounds handling
5470         previously added for Ada; also change to using host_integerp
5471         and tree_low_cst.
5472
5473         * loop.c (strength_reduce): Show when new register made for
5474         giv is known to be a pointer and its aligment if so and known.
5475         (loop_dump_aux): Show VERBOSE parameter unused.
5476
5477         * gcse.c (set_hash_table_size): Now unsigned.
5478         * sdbout.c (template_name_p): Add "const" to avoid warnings.
5479         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
5480         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
5481         (sdbout_end_epilogue): Remove variable NAME.
5482         * system.h (getopt): Add default definition.
5483         * config/alpha/alpha.c (print_operand): Don't continue processing
5484         after issuing error.
5485         (summarize_insn): Avoid use of UL in constant.
5486
5487         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
5488
5489         * fold-const.c (force_fit_type): Unsigned values can overflow
5490         if they are sizetype.
5491         (int_const_binop): Don't use cache if overflows.
5492
5493 2000-10-20  Richard Henderson  <rth@cygnus.com>
5494
5495         * function.c (locate_and_pad_parm): Zero alignment_pad.
5496
5497         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
5498         perform substitutions, and apply_change_group to see if it worked.
5499
5500 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5501
5502         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
5503
5504         * combine.c (struct undo): Change int to unsigned int.
5505         (do_SUBST_INT): Args are unsigned int.
5506         (make_extraction, force_to_mode): Use proper type when forming mask.
5507         (make_field_assignment): Likewise.
5508
5509 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5510
5511         * c-common.c (check_format_info_recurse): Extract string constant
5512         initializers from non-volatile constant arrays and check them as
5513         formats.
5514         * c-typeck.c (decl_constant_value): Don't check pedantic or check
5515         for DECL_MODE (decl) != BLKmode.
5516         (decl_constant_value_for_broken_optimization): New function which
5517         includes these checks.
5518         (default_conversion, convert_for_assignment, digest_init): Use
5519         decl_constant_value_for_broken_optimization instead of
5520         decl_constant_value.
5521
5522 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
5523
5524         * tree.h (DECL_ALIGN_UNIT): New macro.
5525
5526 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
5527
5528         * config/avr/avr-protos.h (avr_output_bld): New.
5529         (out_shift_with_cnt): Add t_len argument.
5530         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
5531         (output_movqi, output_movhi, output_movsisf): Optimize loading
5532         any constant with exactly one bit set to NO_LD_REGS.
5533         (out_shift_with_cnt): Optimize output code for size or speed,
5534         depending on optimize_size.  Handle small shift counts as well
5535         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
5536         with or without a scratch register, with help of __tmp_reg__
5537         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
5538         length of TEMPLATE in words, return total insn length in *LEN.
5539         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
5540         out_shift_with_cnt to work with the above change.
5541         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
5542         lshrsi3_out): Likewise.  Optimize more known shift count cases.
5543         Remove cases already well optimized in out_shift_with_cnt.
5544         (avr_output_bld): New function.
5545         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
5546         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
5547         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
5548         Add reload_completed to insn condition - only for peepholes.
5549         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
5550         in a register or memory.
5551         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
5552         Do not require a scratch register.
5553         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
5554         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
5555         Optimize shifts by known count using a scratch register, but only
5556         if one is still available after register allocation.
5557
5558 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5559
5560         * t-vax: New file.  Don't build modules from libgcc1.c.
5561
5562 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
5563
5564         * alias.c: (mark_constant_function): Don't check pure functions.
5565         Initialize and end alias analysis.
5566         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
5567         Don't make a special exception for recursion.  Handle
5568         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
5569         unless it's volatile.
5570
5571         * local-alloc.c (equivalence): New structure.
5572         (reg_equiv): Define.
5573         (contains_replace_regs): Remove array and use
5574         field in reg_equiv.
5575         (memref_referenced_p): Likewise.
5576         (no_equiv): Likewise.
5577         (update_equiv_regs): Likewise.
5578
5579         (equiv_init_varies_p,
5580         equiv_init_movable_p): New functions.
5581         (update_equiv_regs): Use them.  Use rtx_varies_p
5582         instead of function_invariant_p.  Process insns
5583         from end to beginning.  Allow a REG_EQUIV insn
5584         within the same loop as a use to be moved, also
5585         allow it to be moved out of a loop.  Update
5586         REG_DEAD notes when substituting into an insn.
5587
5588 2000-10-19  Jim Wilson  <wilson@cygnus.com>
5589
5590         * c-decl.c (start_decl): Check for error_mark_node type before using
5591         COMPLETE_TYPE_P.
5592         (finish_decl): Likewise.  Don't give an error if decl type is
5593         already error_mark_node.
5594
5595         * haifa-sched.c (compute_trg_info): Add explanatory comments.
5596         New local update_blocks.  Use update_blocks to remove duplicates
5597         when computing update blocks.  Check for bblst_table overflow.
5598         (schedule_block): Add explanatory comment.  Reduce bblst_size by
5599         factor of 2.
5600         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
5601         notes.
5602
5603 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5604
5605         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
5606
5607 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5608
5609         * expmed.c: Minor corrections in comments.
5610         * invoke.texi: Added desciption for the new option -ftrapv.
5611
5612 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
5613
5614         * libgcc2.c: Added the missing #endif.
5615
5616 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5617
5618         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
5619
5620 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
5621
5622         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
5623         Use smulv_optab for -ftrapv.
5624         (expand_mult_highpart): Use unsigned multiply.
5625         (expand_divmod): Special-case division by -1.
5626         For EXACT_DIV_EXPR, do right shift first, then the multiply.
5627         For complex divide, use abs with unsigned result.
5628         * expr.c (force_operand): Use unsigned multiply.
5629         (expand_expr): Use overflow-trapping optabs for signed types if
5630         flag_trapv.
5631         If flag_trapv, don't generate a recursive call with EXPAND_SUM
5632         if the type is signed and the original call wasn't EXPAND_SUM or
5633         EXPAND_INITIALIZER.
5634         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
5635         (negv_optab, absv_optab): Declare.
5636         * flags.h (flag_trapv): Declare.
5637         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
5638         smulv_optab, sdivv_optab, negv_optab and absv_optab.
5639         (gen_insn): Interpret '$P' as requiring an integer mode,
5640         including partial integer modes.
5641         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
5642         (product_cheap_p): Use unsigned expand_mult.
5643         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
5644         (negv_optab, absv_optab): Define.
5645         (expand_binop): Use overflow-trapping optabs for signed types if
5646         flag_trapv.
5647         Handle negv_optab libe neg_optab.
5648         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
5649         Use overflow-trapping optabs for signed result if flag_trapv.
5650         (expand_complex_abs): Use overflow-trapping optabs for signed types if
5651         flag_trapv.
5652         Don't open-code complex absolute-value operation for flag_trapv.
5653         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
5654         sdivv_optab, negv_optab and absv_optab.
5655         * toplev.c (flag_trapv): Define.
5656         (lang_independent_options f_options): Include flag_trapv.
5657         * tree.h (TYPE_TRAP_SIGNED): Define.
5658         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
5659         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
5660         New functions.
5661         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
5662         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
5663
5664 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
5665             David V. Henkel-Wallace  <gumby@cygnus.com>
5666
5667         * config/i386/t-netware: Bring in from the Red Hat tree.
5668         * config/i386/netware.h: Likewise.
5669         * config/netware.h: Likewise.
5670         * config/rs6000/netware.h: Delete.
5671         * configure.in: Add i[34567]86-*-netware.
5672         * configure: Hand-edit to match configure.in change.
5673
5674 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
5675
5676         * c-common.h (flag_no_builtin): Declare.
5677         (flag_no_nonansi_builtin): Likewise.
5678         (c_common_nodes_and_builtins): Change prototype.
5679         * c-common.c (flag_no_builtin): New variable.
5680         (flag_no_nonansi_builtin): Likewise.
5681         (c_common_nodes_and_builtins): Remove parameters.  Adjust
5682         accordingly.
5683         * c-decl.c (flag_no_builtin): Remove.
5684         (flag_no_nonansi_builtin): Likewise.
5685         (init_decl_processing): Adjust call to
5686         c_common_nodes_and_builtins.
5687
5688 2000-10-18  Marc Espie <espie@openbsd.org>
5689
5690         * tm.texi (LIBGCC_SPEC): Synch with reality.
5691
5692 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5693
5694         * c-common.c (check_format_types): Check for writing through a
5695         NULL pointer argument.
5696
5697 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
5698
5699         * tm.texi (Exception Region Output): Document
5700         DWARF_CIE_DATA_ALIGNMENT.
5701         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
5702         #ifndef.
5703         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
5704         DWARF_CIE_DATA_ALIGNMENT.
5705
5706 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
5707
5708         * basic-block.h (struct loop): Delete fields pre_header_root
5709         and pre_header_trace and replace with pre_header_edges
5710         and num_pre_header_edges.
5711         * flow.c (flow_loop_dump): Dump pre_header_edges.
5712         (flow_loops_free): Free pre_header_edges.
5713         (flow_loop_pre_header_scan): Calculate pre_header_edges.
5714
5715 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5716
5717         * contrib.texi: Update references to steering committee members
5718         and Jeff Law's entry.
5719
5720 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5721
5722         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
5723         (maybe_read_dollar_number, check_format_info_main): Use them for
5724         pedantic warning messages.
5725
5726 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5727
5728         * c-common.c (check_format_info_main): Minor cleanup: move
5729         variables into inner scopes; initialize declarations where
5730         appropriate; don't hardcode "scanf" name on warning for zero
5731         width.
5732
5733 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
5734
5735         * c-common.c (back_end_hook): New variable.
5736         * c-common.h (back_end_hook): Declare it.
5737         * c-lang.c (finish_file): Use it.
5738
5739         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
5740         earlier.
5741
5742 2000-10-18  Jan Hubicka  <jh@suse.cz>
5743
5744         * i386.c (ix86_comparison_operator, put_condition_code,
5745         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
5746         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
5747         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
5748         * i386.md (adddi and negdi splitter): Use CCRCmode.
5749         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
5750         (subsi3_carry): add '*'
5751         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
5752         (cmp to add peep2): Use CCRCmode; swap operands.
5753
5754 2000-10-18  Kazu Hirata  <kazu@hxi.com>
5755
5756         * h8300.c: Fix a comment typo.
5757         (round_frame_size): New.
5758         (compute_saved_regs): Likewise.
5759         (push): Likewise.
5760         (pop): Likewise.
5761         (push_order): Remove.
5762         (pop_order): Likewise.
5763         (function_prologue): Rearrange code for readability.
5764         (function_epilogue): Likewise.
5765
5766         * config/h8300/h8300.md: Remove an unnecessary sign_extend
5767         expander that is used when not optimizing.  Output a tab after
5768         each assembly insns.
5769
5770         * reorg.c: Fix formatting.
5771
5772 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
5773
5774         * reload1.c (move2add_note_store): Check for simple
5775         auto-inc in destination.
5776
5777 2000-10-17  Michael Chastain  <chastain@redhat.com>
5778
5779         * config/i386/i386-aout.h: define INT_ASM_OP.
5780
5781 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
5782
5783         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
5784
5785 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
5786
5787         * i370.md: Fix spelling typo.
5788
5789 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5790
5791         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
5792         Fixes execute/20001017-1.c on powerpc-linux-gnu.
5793
5794         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
5795         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
5796         LABEL_REF.
5797
5798         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
5799         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
5800         here...
5801         * rs6000/aix.h: ...to here.
5802         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
5803
5804 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
5805
5806         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
5807
5808         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
5809         sure linker can relax even the delay slot mov %g1,%o7, fix output
5810         formating.
5811
5812 2000-10-17  Kazu Hirata  <kazu@hxi.com>
5813
5814         * config/h8300/h8300.md: Remove an unnecessary zero_extend
5815         expander that is used when not optimizing.  Output a tab after
5816         each assembly insns.
5817
5818 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
5819
5820         * gcc.c: New options --target-help.
5821         (process_command): Added code to parse this new option.
5822         * toplev.c (display_target_options): New function to support the
5823         above new option.
5824         * cppinit.c (new_pending_directive) : New option OPT_target__help.
5825         (cpp_handle_option): Support this new option.
5826         * invoke.texi: Added notes about --target-help option.
5827
5828 2000-10-17  Graham Stott  <grahams@redhat.com>
5829
5830         * config/i386/i386.md (testqi_1): Add missing operand prefix
5831         for operand 0.
5832         * config/i386/i386-protos.h: Add missing prototype.
5833
5834 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
5835
5836         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
5837         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
5838         using -mintel-syntax.
5839
5840 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5841
5842         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
5843         (format_types): Use it for printf.
5844         (maybe_read_dollar_number): Add parameter for the kind of format
5845         involved.  Warn for multiple use for arguments if this is
5846         inappropriate for the kind of format involved.
5847         (check_format_info_main): Update calls to maybe_read_dollar_number.
5848
5849 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5850
5851         * inclhack.def (hpux_maxint): Also apply fix to values.h.
5852         * fixincl.x: Rebuilt.
5853
5854 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
5855
5856         * genrecog.c (write_switch): Return the first condition that needs a
5857         label.
5858
5859 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
5860
5861         * c-tree.h (warn_sequence_point): Move declaration to...
5862         * c-common.h (warn_sequence_point): ... here.
5863         * c-decl.c (warn_sequence_point): Move definition to...
5864         * c-common.c (warn_sequence_point): ... here.
5865         (struct reverse_tree): New.
5866         (reverse_list, reverse_max_depth): New static variables.
5867         (build_reverse_tree, common_ancestor, modify_ok
5868         verify_sequence_points): New functions.
5869         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
5870         * c-typeck.c (check_modify_expr): Delete.
5871         (build_modify_expr): Don't call it.
5872
5873 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5874
5875         * c-common.h (warn_missing_format_attribute): New variable.
5876         * c-decl.c (warn_missing_format_attribute): New variable.
5877         (c_decode_option): Decode -Wmissing-format-attribute and
5878         -Wno-missing-format-attribute.
5879         * c-common.c (check_function_format): If
5880         -Wmissing-format-attribute, give a warning where a vprintf or
5881         vscanf function is called by a function without its own printf or
5882         scanf attribute.
5883         * toplev.c (documented_lang_options): Add
5884         -Wmissing-format-attribute.
5885         * invoke.texi: Document -Wmissing-format-attribute.
5886
5887 2000-10-17  Marc Espie <espie@openbsd.org>
5888
5889         * invoke.texi (-shared): Insist on requiring code generation flags
5890         to be used along with -shared, and document the subtle failure that
5891         may occur otherwise.
5892
5893 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5894
5895         * pa.md (return_internal): Move `use' after `return'.
5896
5897 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
5898
5899         * machmode.def: Correct comment.
5900
5901 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
5902
5903         * print-rtl.c (print_rtx_head): Constify.
5904         * rtl.h (print_rtx_head): Similarly.
5905
5906         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
5907         Constify char * return value.
5908         * config/pa/pa/pa.c
5909         (output_64bit_and, output_64bit_ior): Constify char * return value.
5910         (pa_can_combine_p): Make static.
5911         (function_arg): Decorate unused `named' argument. Fix comment typo.
5912         (function_arg_partial_nregs): Decorate unused `named' argument.
5913
5914 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
5915
5916         * c-common.c (format_check_results): New structure.
5917         (finish_dollar_format_checking): Adjust to take a
5918         format_check_results * parameter.
5919         (check_format_info, check_format_info_recurse,
5920         check_format_info_main): Split check_format_info into three
5921         functions, the main checking going in check_format_info_main.
5922         Recurse when any reduction of the format string argument towards a
5923         string literal is done; go down both branches of a conditional
5924         expression.  Don't warn for extra format arguments or empty format
5925         strings if they only occur in some branches of a conditional
5926         expression.
5927
5928 2000-10-16  Kazu Hirata  <kazu@hxi.com>
5929
5930         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
5931
5932 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
5933
5934         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
5935
5936 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
5937
5938         * i386.md (*movsi_or): Switch operand order for intel syntax.
5939
5940 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5941
5942         * PROBLEMS: Remove.
5943
5944         * gcc.texi (Contributing): Update.
5945
5946 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
5947
5948         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
5949         appropriate assembler dialect.
5950
5951 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
5952
5953         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
5954
5955 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
5956
5957         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
5958         constants 1 and 2 to NO_LD_REGS.
5959
5960 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5961
5962         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
5963
5964         * objc/Make-lang.in (objc-parse.c): Likewise.
5965
5966 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
5967
5968         * arm.c: Include obstack.h
5969         (minipool_obstack, minipool_startobj): Define.
5970         (arm_add_gc_roots): Initialize them.
5971         (create_fix_barrier): Use our new obstack.
5972         (push_minipool_barrier, push_minipool_fix): Likewise.
5973         (arm_reorg): Release obstack memory.
5974
5975 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
5976
5977         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
5978         (prologue, exception_receiver, builtin_setjmp_receiver): New
5979         patterns.
5980         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
5981         * config/sparc/sparc-protos.h (finalize_pic): Remove.
5982         (load_pic_register): New prototype.
5983         * config/sparc/sparc.c (pic_setup_code): Remove.
5984         (finalize_pic): Rename to...
5985         (load_pic_register): ...this function.
5986         Don't look for nonlocal_goto_receivers and emit pic setup code
5987         directly.  Don't check current_function_uses_pic_offset_table.
5988
5989 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
5990
5991         * tree.h (struct obstack): Declare.
5992
5993 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
5994
5995         Remove obstacks.
5996         * Makefile.in (ggc-callbacks.o): Remove target.
5997         (flow.o): Depend on GGC_H.
5998         * alias.c (init_alias_analysis):
5999         Remove ggc_p conditionals.
6000         (end_alias_analysis): Likewise.
6001         * basic-block.h (init_flow): New function.
6002         (allocate_reg_life_data): Declare.
6003         * bb-reorder.c  (function_obstack): Replace with ...
6004         (flow_obstack): ... new variable.
6005         (fixup_reorder_chain): Use it.
6006         * c-decl.c (ggc_p): Remove.
6007         (caller-save.c): Don't call oballoc/obfree.
6008         * combine.c (struct
6009         undobuf): Remove storage.
6010         (try_combine): Don't call oballoc.
6011         (undo_all): Don't call obfree.
6012         * cse.c (insert): Use xmalloc, not
6013         oballoc.
6014         (cse_main): Adjust accordingly.
6015         * dwarf2out.c (save_rtx): Remove
6016         obstack code.
6017         (dwarf2out_init): Remove ggc_p conditionals.
6018         * emit-rtl.c (rtl_obstack): Remove.
6019         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
6020         (make_insn_raw): Likewise.
6021         (emit_insn_before): Likewise.
6022         (emit_insn_after): Likewise.
6023         (emit_insn): Likewise.
6024         (gen_sequence): Likewise.
6025         (copy_insn_1): Remove handling of `b' RTL components.
6026         (init_emit_once): Remove ggc_p conditionals.
6027         * except.c (create_rethrow_ref): Don't fool with obstacks.
6028         (add_partial_entry): Likewise.
6029         (call_get_eh_context): Likewise.
6030         (begin_protect_partials): Likewise.
6031         (protect_with_terminate): Likewise.
6032         * explow.c
6033         (plus_constant_wide): Likewise.
6034         * expr.c (init_expr_once):
6035         Likewise.
6036         (emit_block_move): Likewise.
6037         (clear_storage): Likewise.
6038         (expand_expr): Likewise.
6039         * flow.c (function_obstack): Remove.
6040         (flow_obstack): New variable.
6041         (flow_firstobj): Likewise.
6042         (create_base_block): Use the flow_obstack.
6043         (split_block): Likewise.
6044         (split_edge): Likewise.
6045         (calculate_global_regs_live): Likewise.
6046         (allocate_bb_life_data): Make it static.  Likewiwse.
6047         (init_flow): New function.
6048         (size_int_type_wide): Remove ggc_p conditionals.
6049         * function.c
6050         (push_function_context_to): Don't call save_tree_status.
6051         (pop_function_context_from): Or restore_tree_status.
6052         (assign_stack_local_1): Don't call push_obstacks.
6053         (find_fixup_replacement): Use xmalloc.
6054         (fixup_var_refs_insns): Free the storage.
6055         (insns_for_mem_walk): Don't mess with obstacks.
6056         (instantiate_decls): Likewise.
6057         (trampoline_address): Likewise.
6058         (expand_function_end): Likewise.
6059         * function.h (sturct function):
6060         Remove obstack-related variables.
6061         (save_tree_status): Don't declare.
6062         (restore_tree_status): Likewise.
6063         * gcse.c (compute_can_copy):
6064         Don't call oballoc/obfree.
6065         * genattrtab.c (operate_exp): Remove
6066         ggc_p conditionals.
6067         (simplify_cond): Likewise.
6068         (simplify_test_exp): Don't mess with obstacks.
6069         (optimize_attrs): Likewise.
6070         * gengenrtl.c (gendef): Don't include
6071         ggc_p conditionals.
6072         * ggc-callbacks.c (ggc_p): Remove.
6073         * ggc-none.c (ggc_p): Remove.
6074         * ggc.h (ggc_p): Don't declare.
6075         * integrate.c (save_for_inline): Don't mess with obstacks.
6076         (integrate_decl_tree): Likewise.
6077         (output_inline_function): Likewise.
6078         * lists.c
6079         (init_EXPR_INSN_LIST_cache): Likewise.
6080         * loop.c (temp_obstack):
6081         Remove.
6082         (rtl_obstack): Likewise.
6083         (init_loop): Don't mess with obstacks.
6084         (reg_address_cost): Free BIVs and GIVs.
6085         (check_insns_for_bivs): Use xmalloc, not oballoc.
6086         (find_mem_givs): Likewise.
6087         (record_biv): Likewise.
6088         (general_induction_var): Likewise.
6089         (product_cheap_p): Likewse.
6090         * optabs.c (init_one_libfunc): Remove
6091         ggc_p conditional.
6092         * print-tree.c (debug_tree): Don't use
6093         oballoc/obfree.
6094         (print_node): Likewise.
6095         * profile.c (output_func_start_profiler):
6096         Remove call to temporary_allocation.
6097         * reload1.c
6098         (eliminate_regs_in_insn): Don't mess with obstacks.
6099         * resource.c
6100         (mark_target_live_regs): Use xmalloc.
6101         (free_resource_info): Free the memory.
6102         * rtl.c (rtl_obstack):
6103         Remove.
6104         (rtvec_alloc): Don't mess with obstacks.
6105         (rtx_alloc): Likewise.
6106         (rtx_free): Remove.
6107         (copy_rtx): Don't handle `b' cases.
6108         (read_rtx): Use a local rtl_obstack.
6109         * rtl.h (oballoc): Remove.
6110         (obfree): Likewise.
6111         (pop_obstacks): Likewise.
6112         (push_obstacks): Likewise.
6113         (allocate_bb_life_data): Likewise.
6114         (allocate_reg_life_data): Likewise.
6115         (rtx_free): Likewise.
6116         * sdbout.c (sdbout_queue_anonymous_type):
6117         Use tree_cons, not saveable_tree_cons.
6118         * simplify-rtx.c
6119         (cselib_init): Don't mess with obstacks.
6120         * stmt.c
6121         (mark_block_nesting): Mark the label_chain.
6122         (epxand_label): Use ggc_alloc, not oballoc.
6123         (clear_last_expr): Don't mess with obstacks.
6124         (expand_decl_cleanup): Likewise.
6125         (expand_dcc_cleanup): Likewise.
6126         (expand_dhc_cleanup): Likewise.
6127         (expand_anon_union_decl): Likewise.
6128         (add_case_node): Use xmalloc, not oballoc.
6129         (free_case_nodes): New function.
6130         (expand_end_case): Call it.
6131         * stor-layout.c (layout_type): Don't
6132         mess with obstacks.
6133         (layout_type): Likewise.
6134         * toplev.c (wrapup_global_declarations):
6135         Likewise.
6136         (compile_file): Remove ggc_p conditionals.
6137         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
6138         (decode_f_option): Remove ggc_p conditionals.
6139         * tree.c
6140         (function_maybepermanent_obstack): Remove.
6141         (maybepermanent_obstack): Likewise.
6142         (function_obstack): Likewise.
6143         (tmeporary_obstack): Likewise.
6144         (momentary_obstack): Likewise.
6145         (temp_decl_obstack): Likewise.
6146         (saveable_obstack): Likewise.
6147         (rtl_obstack): Likewise.
6148         (current_obstack): Likewise.
6149         (expression_obstack): Likewise.
6150         (struct obstack_stack): Likewise.
6151         (obstack_stack): Likewise.
6152         (obstack_stack_obstack): Likewise.
6153         (maybepermanent_firstobj): Likewise.
6154         (temporary_firstobj): Likewise.
6155         (momentary_firstobj): Likewise.
6156         (temp_decl_firstobj): Likewise.
6157         (momentary_function_firstobj): Likewise.
6158         (all_types_permanent): Likewise.
6159         (struct momentary_level): Likewise.
6160         (momentary_stack): Likewise.
6161         (init_obstacks): Remove initialization of removed obstacks.
6162         (save_tree_status): Remove.
6163         (restore_tree_status): Likewise.
6164         (temporary_allocation): Liekwise.
6165         (end_temporary_allocation): Liekwise.
6166         (resume_temporary_allocation): Likewise.
6167         (saveable_allocation): Likewise.
6168         (push_obstacks): Likewise.
6169         (push_obstacks_nochange): Likewise.
6170         (pop_obstacks): Likewise.
6171         (allocation_temporary_p): Likewise.
6172         (permanent_allocation): Likewise.
6173         (preserve_data): Likewise.
6174         (preserve_initializer): Likewise.
6175         (rtl_in_current_obstack): Likewise.
6176         (rtl_in_saveable_obstack): Likewise.
6177         (oballoc): Likewise.
6178         (obfree): Likewise.
6179         (savealloc): Likewise.
6180         (expralloc): Likewise.
6181         (print_obstack_name): Likewise.
6182         (debug_obstack): Likewise.
6183         (object_permanent_p): Likewise.
6184         (push_momentary): Likewise.
6185         (perserve_momentary): Likewise.
6186         (clear_momentary): Likewise.
6187         (pop_momentary): Likewise.
6188         (pop_momentary_nofree): Likewise.
6189         (suspend_momentary): Likewise.
6190         (resume_momentary): Likewise.
6191         (make_node): Don't set TREE_PERMANENT.
6192         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
6193         Don't set TREE_PERMANENT.
6194         (get_identifier): Remove ggc_p conditionals.
6195         (build_string): Likewise.
6196         (make_tree_vec): Likewise.
6197         (build_decl_list): Remove.
6198         (build_expr_list): Likewise.
6199         (tree_cons): Remove ggc_p conditionals.
6200         (decl_tree_cons): Remove.
6201         (expr_tree_cons): Likewise.
6202         (perm_tree_cons): Likewise.
6203         (temp_tree_cons): Likewise.
6204         (saveable_tree_cons): Likewise.
6205         (build1): Remove ggc_p conditionals.
6206         (build_parse_node): Likewise.
6207         (build_type_attribute_variant): Don't mess with obstacks.
6208         (build_type_copy): Likewise.
6209         (type_hash_canon): Likewise.
6210         (build_pointer_type): Likewise.
6211         (build_reference_type): Likewise.
6212         (build_index_type): Likewise.
6213         (build_range_type): Likewise.
6214         (dump_tree_statistics): Don't print obstack information.
6215         * tree.h
6216         (struct tree_common): Remove permanent_flag.
6217         (TREE_PERMANENT): Remove.
6218         (TREE_SET_PERMANENT): Likewise.
6219         (TYPE_OBSTACK): Likewise.
6220         (struct tree_type): Remove obstack.
6221         (oballoc): Remove.
6222         (savealloc): Likewise.
6223         (build_decl_list): Likewise.
6224         (build_expr_list): Likewise.
6225         (perm_tree_cons): Likewise.
6226         (temp_tree_cons): Likewise.
6227         (saveable_tree_cons): Likewise.
6228         (decl_tree_cons): Likewise.
6229         (expr_tree_cons): Likewise.
6230         (suspend_momentary): Likewise.
6231         (allocation_temporary_p): Likewise.
6232         (resume_momentary): Likewise.
6233         (push_obstacks_nochange): Likewise.
6234         (permanent_allocation): Likewise.
6235         (push_momentary): Likewise.
6236         (clear_momentary): Likewise.
6237         (pop_momentary): Likewise.
6238         (end_temporary_allocation): Likewise.
6239         (pop_obstacks): Likewise.
6240         (push_obstacks): Likewise.
6241         (pop_momentary_nofree): LIkewise.
6242         (preserve_momentary): Likewise.
6243         (saveable_allocation): Likewise.
6244         (temporary_allocation): Likewise.
6245         (resume_temporary_allocation): Likewise.
6246         (perserve_initializer): Likewise.
6247         (debug_obstack): Likewise.
6248         (rtl_in_current_obstack): Likewise.
6249         (rtl_in_saveable_obstack): Likewise.
6250         (obfree): Likewise.
6251         * varasm.c (current_obstack): Remove.
6252         (saveable_obstack): Remove.
6253         (rtl_obstack): Remove.
6254         (immed_double_const): Don't mess with obstacks.
6255         (immed_real_cons): Likewise.
6256         (output_constant_def): Likewise.
6257         (init_varasm_status): Use xcalloc.
6258         (mark_pool_constant): Mark the pool constant itself.
6259         (free_varasm_status): Free memory.
6260         (decode_rtx_const): Call bzero directly, rather than expanding it
6261         inline.
6262         (record_rtx_const): Don't mess with obstacks.
6263         (force_const_mem): Likewise.
6264         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
6265         conditionals.
6266         (aof_pic_entry): Likewise.
6267         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
6268         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
6269         * config/pa/pa.c (saveable_obstack): Remove.
6270         (rtl_obstack): Likewise.
6271         (current_obstack): Likewise.
6272         (output_call): Don't mess with obstacks.
6273         (hppa_encode_label): Remove ggc_p conditionals.
6274         * config/romp/romp.c (get_symref): Don't mess with obstacks.
6275         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
6276         (rs6000_encode_section_info): Likewise.
6277         * config/sh/sh.c (get_fpscr_rtx): Likewise.
6278
6279 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
6280
6281         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
6282         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
6283         (addsi3_carry): Canonicalize.
6284         (addqi_5): Remove '*'.
6285         (sbb pattern): Canonicalize.
6286
6287         * i386.md (cmp to inc/add peep2): New.
6288
6289 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
6290
6291         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
6292         the exit block.
6293
6294 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6295
6296         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
6297         * README.TRAD, TESTS.FLUNK: Remove.
6298
6299 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6300
6301         * c-common.c (decl_attributes): Don't allow strftime formats with
6302         first_arg_num nonzero.
6303         (check_format_info): Set wanted_type and wanted_type_name to zero
6304         before they are possibly assigned and used.
6305
6306 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6307
6308         * c-common.c (scanf_flag_specs): Add flags ' and I.
6309         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
6310         or the ^ and # flags together.
6311         (scan_char_table): Handle the ' and I flags.
6312         (format_types): Add ' and I flags for scanf.
6313
6314 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6315
6316         * c-common.c (print_char_table): Use the unpromoted type for
6317         lengths "h" and "hh" with conversions dioxXu.
6318         (check_format_types): Apply the default argument promotions where
6319         the wanted type is not a pointer target.
6320
6321 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
6322             Joseph S. Myers  <jsm28@cam.ac.uk>
6323
6324         * c-typeck.c (check_modify_expr): New function.
6325         (build_modify_expr): Call it if warn_sequence_point.
6326         * c-decl.c (warn_sequence_point): New variable.
6327         (c_decode_option): Handle -Wsequence-point and
6328         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
6329         * c-tree.h (warn_sequence_point): Declare.
6330         * invoke.texi (-Wsequence-point): Document.
6331         * toplev.c (documented_lang_options): Add -Wsequence-point and
6332         -Wno-sequence-point.
6333         Original work by Michael Meeks, 16 Jun 1998.
6334
6335 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6336
6337         * tree.c (get_narrower): Don't look at precision of field if
6338         not laid out yet.
6339
6340 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
6341
6342         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
6343         declaration for data with "progmem" attribute.
6344
6345 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
6346
6347         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
6348         Correct insn length if shift count is a memory operand.
6349         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
6350         (*iorhi3_clobber): Change lo8 to hi8.
6351         (zero_extendhisi2): Change %B0 to %A1.
6352         (ashlhi3, ashrhi3): Correct insn length.
6353         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
6354         from "clobber" to "set_n" in some alternatives.
6355
6356 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
6357
6358         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
6359         remove its insn_chain structure as well.
6360
6361 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6362
6363         * dbxout.c (dbxout_source_line): Remove extra tab.
6364
6365 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
6366
6367         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
6368
6369 2000-10-09  Richard Henderson  <rth@cygnus.com>
6370
6371         * Makefile.in (LANG_LIB2FUNCS): Remove.
6372         (LIB2FUNCS): Remove _pure.
6373         (LIB2ADD): Remove LANG_LIB2FUNCS.
6374         (stage_a): Don't set LANG_LIB2FUNCS.
6375         * libgcc2.c (__terminate): Mark noreturn.
6376         (__pure_virtual): Remove.
6377         * mklibgcc.in: Remove LIB2ADD .txt processing.
6378
6379 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6380
6381         * arm.md (push_multi): Revert unintended change.
6382
6383 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6384
6385         * arm.c: Miscellaneous white space and comment clean-ups.  No
6386         functional change.
6387         * arm.md: Likewise.
6388
6389 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6390
6391         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
6392         STRING_CST by calling combine_strings.
6393
6394 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6395
6396         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
6397         (thumb_output_move_mem_multiple): Support new insn format.
6398         * arm.md (movmem12b): Use SSA compatible format.
6399         (movmem8b): Likewise.
6400
6401 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
6402
6403         * arm.md (predicable): New attribute, default to "no".
6404         (all patterns): Mark as predicable if appropriate.
6405         (conditional execution splits): Split using predication format.
6406         (define_cond_exec): Define.
6407         * arm.c (arm_print_operand): handle insn predicate.
6408
6409 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6410
6411         * README.NS32K: Remove file.
6412
6413 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6414
6415         * README-bugs: Remove file.
6416
6417 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6418         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
6419         for test.
6420         * configure: Rebuilt.
6421
6422 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6423         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
6424         disable catalog building if no suitable program was found.
6425         Move warning message from here
6426         (AM_GNU_GETTEXT): To here.
6427         * configure: Rebuilt.
6428
6429 2000-10-08  Philipp Thomas  <pthomas@suse.de>
6430         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
6431         different cache variables.
6432         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
6433         uses different cache variables.
6434         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
6435         * configure: Regenerated.
6436
6437 2000-10-08  Richard Henderson  <rth@cygnus.com>
6438
6439         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
6440         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
6441         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
6442         Use SHLIB_EXT.
6443
6444         * config/t-linux (SHLIB_EXT): New.
6445         (SHLIB_LINK): Use the entire build command, with substitutions.
6446         (SHLIB_LIBS): Remove.
6447         * config/alpha/t-osf4: Likewise.
6448         * config/mips/t-iris6: Likewise.
6449         * config/sparc/t-sol2: Likewise, but move shlib stuff...
6450         * config/sparc/t-slibgcc-sld: ...here.
6451         * config/sparc/t-slibgcc: New file.
6452
6453 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6454
6455         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
6456         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
6457         CTI_UINTMAX_TYPE.
6458         (intmax_type_node, uintmax_type_node): Define.
6459         * c-common.c (decl_attributes): If pedantic, warn if `mode'
6460         attributes create a type wider than intmax_t.
6461         (T_IM, T_UIM): Define properly.
6462         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
6463         defined.
6464         (init_decl_processing): Initialize intmax_type_node and
6465         uintmax_type_node.
6466         * c-lex.c (lex_number): When pedantic and warning for integer
6467         constants that are too large, in C99 mode warn for those that have
6468         a type wider than long long.
6469
6470 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6471
6472         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
6473         FMT_FLAG_FANCY_PERCENT_OK): Define.
6474         (format_char_info): Add flag "4" to comment.
6475         (format_flag_spec, format_flag_pair): New structures.
6476         (format_kind_info): Add additional fields to control format
6477         checking.
6478         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
6479         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
6480         arrays.
6481         (time_char_table): Use "4" flag to handle %Ey.
6482         (format_types): Add entries for new fields.
6483         (get_flag_spec): New function.
6484         (check_format_info): Increase size of flag_chars[] to 256.
6485         Control format checking using the new fields of a format_kind_info
6486         and the new tables; remove all conditionals on printf_format_type,
6487         scanf_format_type or strftime_format_type.  Handle all details of
6488         bad combinations of flags (including width, precision and strftime
6489         modifiers) through data rather than ad hoc code.  Handle all
6490         details of standard versions in which flags appeared through
6491         data.  Use the "4" flag.
6492
6493 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
6494
6495         * config/h8300/h8300.md: Remove the memory alternative and correct
6496         the insn lengths in the templates for sign extention and zero
6497         extention.
6498
6499 2000-10-07  Richard Henderson  <rth@cygnus.com>
6500
6501         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
6502         * flow.c (make_edges): Revert last change.
6503
6504         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
6505         TREE_THIS_VOLATILE.
6506         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
6507
6508 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
6509
6510         * config/alpha/elf.h: Standardize the formatting.
6511
6512 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
6513
6514         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
6515         #undef.
6516
6517 2000-10-06  Richard Henderson  <rth@cygnus.com>
6518
6519         * function.c (diddle_return_value): Examine
6520         current_function_return_rtx instead of the DECL_RESULT.
6521         (expand_function_end): Handle reloading DECL_RESULT from memory
6522         into a hard register.  Query promote_mode for sign of mismatched
6523         modes.
6524
6525 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6526
6527         * haifa-sched.c (schedule_insns): Fix typo in freeing
6528         forward_dependency_cache.
6529
6530 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
6531
6532         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
6533         `TARGET_SH2' as a condition.
6534
6535 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6536
6537         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
6538         forward_dependency_cache): New variables.
6539         (add_dependence, remove_dependence): Use anti_dependency_cache and
6540         output_dependency_cache.
6541         (compute_block_forward_dependences): Use forward_dependency_cache.
6542         (schedule_insns): Allocate and free memory for anti/output/forward
6543         dependencies caches.
6544
6545 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
6546
6547         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
6548         `! TARGET_SH1'.  Reindent.
6549
6550 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6551
6552         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
6553         Move functions from here ...
6554
6555         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
6556         ... to here.
6557         (c_expand_builtin): New function.
6558         (init_function_format_info): Don't set `check_function_format_ptr'.
6559         (c_common_nodes_and_builtins): Set built_in_class type for
6560         printf/__builtin_printf to BUILT_IN_FRONTEND.
6561         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
6562
6563         * c-common.h (build_function_call): Declare.
6564
6565         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
6566         to `lang_expand_expr' rather than `expand_builtin'.
6567
6568         * tree.c (check_function_format_ptr): Delete.
6569
6570         * tree.h (check_function_format_ptr): Likewise.
6571
6572 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
6573
6574         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
6575         DW_OP_bregx when cfa->reg > 31.
6576
6577         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
6578         break.
6579
6580 2000-10-05  Richard Henderson  <rth@cygnus.com>
6581
6582         * c-decl.c (warn_missing_noreturn): Remove.
6583         (c_expand_body): Don't set or check can_reach_end.
6584         * c-tree.h (warn_missing_noreturn): Move ...
6585         * flags.h: ... here.
6586         (can_reach_end): Remove.
6587         * flow.c (check_function_return_warnings): New.
6588         (make_edges): No edge to exit for noreturn sibcalls.
6589         * function.c (expand_function_end): Save the return value
6590         clobber instruction.
6591         (mark_function_status): Mark it.
6592         * function.h (struct function): Add x_clobber_return_insn.
6593         * jump.c (can_reach_end): Remove.
6594         (calculate_can_reach_end): Remove.
6595         (jump_optimize_1): Don't call it.
6596         * output.h (check_function_return_warnings): Declare.
6597         * toplev.c (warn_missing_noreturn): Move from c-decl.c
6598         (rest_of_compilation): Call check_function_return_warnings.
6599
6600 2000-10-05  Richard Henderson  <rth@cygnus.com>
6601
6602         * Makefile.in (NM_FOR_TARGET): New.
6603         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
6604         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
6605         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
6606         shared library build on that and EXTRA_MULTILIB_PARTS.
6607         * mkmap-flat.awk: New file.
6608         * mkmap-symver.awk: New file.
6609         * libgcc-std.ver: New file.
6610         * config/libgcc-glibc.ver: New file.
6611         * config/ia64/libgcc-ia64.ver: New file.
6612         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6613         (SHLIB_LINK): Add --version-script.
6614         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
6615         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6616         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
6617         (SHLIB_LINK): Add -M.
6618
6619 2000-10-05  Richard Henderson  <rth@cygnus.com>
6620
6621         * Makefile.in (LIB2FUNCS): Add _clz.
6622         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
6623         (__clz_tab): Put in its own unit, non-static.
6624         * libgcc2.h: Always include longlong.h.
6625
6626         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
6627         a zero instead of -1.
6628         (count_trailing_zeros): Likewise.
6629
6630 2000-10-05  Richard Henderson  <rth@cygnus.com>
6631
6632         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
6633         when second op1 is const0_rtx.  Validate op0 as a register.
6634         * config/alpha/alpha.md (setcc_internal): Don't allow constants
6635         in the first argument of the compare.
6636         (setcc_swapped_internal): Likewise.
6637         (setne_internal): Likewise.
6638
6639 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
6640
6641         * tree.c (tree_size): New function split out of copy_node.
6642         (make_node): Remove obstack handling.  Use tree_size.
6643         (copy_node): Use tree_size.
6644         * tree.h: Prototype tree_size.
6645
6646 2000-10-05  Richard Henderson  <rth@cygnus.com>
6647
6648         * diagnostic.c (output_format): Add missing break.
6649
6650 2000-10-05  Jim Wilson  <wilson@cygnus.com>
6651
6652         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
6653         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
6654         sequence insn to INSN, and delete last sequence insn.
6655
6656 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
6657
6658         * gcc.c (main): Include generated configargs.h header
6659         and use arguments in '-v' output.
6660
6661 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6662
6663         * gcc.c: Move data on prefixes forward in file and reorganize.
6664         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
6665         Always define, but make null if no value.
6666         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
6667         and "md_startfile_prefix_1".
6668         (main): Check whether md_exec_prefix and the others are the
6669         null string rather than whether the macro is defined.
6670
6671 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6672
6673         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
6674         from PSImode to SImode.
6675
6676 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
6677
6678         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
6679         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
6680         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
6681         sizeof(long).
6682
6683 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6684
6685         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
6686         negation in proper type.a
6687
6688 2000-10-04  Richard Henderson  <rth@cygnus.com>
6689
6690         * configure.in (enable-shared): New.
6691         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
6692         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
6693         * mklibgcc.in: Use them to link shared a libgcc.
6694         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
6695         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
6696         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
6697         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
6698
6699         * configure.in (alpha-osf*): Use t-osf and x-osf.
6700         * config/alpha/t-osf: New file.
6701         * config/alpha/t-osf4: New file.
6702         * config/alpha/x-osf: New file.
6703         * config/alpha/x-alpha: Remove file.
6704
6705 2000-10-04  Will Cohen  <wcohen@redhat.com>
6706
6707         * c-typeck.c (process_init_element): Added warning for zero-length
6708         array.
6709
6710         * extend.texi (Zero Length): State that static initializers for
6711         zero-length arrays are not allowed.
6712
6713 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6714
6715         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
6716         to come last.
6717
6718 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6719
6720         * config/float-c4x.h: New.
6721         * configure.in (c4x-*): Set float_format to c4x.
6722         * configure: Regenerate.
6723
6724 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6725
6726         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
6727         compilation for solaris versions 2.7 and greater.
6728
6729 2000-10-02  Marc Espie <espie@openbsd.org>
6730
6731         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
6732         instead of redefining from scratch.
6733
6734 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
6735
6736         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
6737
6738 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
6739
6740         * config/ns32k/genix.h: Remove.
6741         * config/ns32k/x-genix: Likewise.
6742         * config/ns32k/xm-genix.h: Likewise.
6743         * config/fx80: Remove all filee in directory.
6744         * config/pyr: Likewise.
6745         * config/tahoe: Likewise.
6746         * config/gmicro: Likewise.
6747         * config/spur: Likewise.
6748         * configure.in: Remove configury bits for above targets.
6749         * configure: Regenerated.
6750
6751         * configure.in: Don't configure chill by default.
6752         * configure: Regenerated.
6753
6754         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
6755         (lang_mark_false_label_stack): Remove.
6756         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
6757         <top level> string in GC area.
6758         (mark_splay_tree_node): New function.
6759         (mark_splay_tree): Likewise.
6760         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
6761         if it exists.
6762         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
6763         * ggc-common.c (lang_mark_false_label_stack): Change type.
6764         * ggc.h (ggc_alloc_string): Add comment.
6765         (ggc_strdup): New function.
6766
6767 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
6768
6769         * config/avr/avr.h (BRANCH_COST): Define as 0.
6770
6771         * config/pdp11/pdp11.c: #include "tree.h" added.
6772
6773 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
6774
6775         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
6776         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
6777         with known shift count.
6778         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
6779         New alternative for shift count 2 with no scratch register.
6780         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
6781         "set_n" for shift counts 1 and 2.
6782
6783 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
6784
6785         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
6786         the mask value from the individual SET operations.
6787         (return_internal_si): Move the USE after the RETURN.
6788         (return_internal_di): Likewise.
6789         (return_and_restore_fpregs_si): Likewise.
6790         (return_and_restore_fpregs_di): Likewise.
6791         (return_eh_si): Likewise.
6792         (return_eh_di): Likewise.
6793         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
6794         or check, the USE.
6795         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
6796         Don't generate a PARALLEL around a single operation movsi_to_cr.
6797         Generate the RETURN first in any PARALLELs.
6798
6799         * rtlanal.c (single_set_1): Use fatal_insn to display the
6800         invalid insn.  Check for more cases when a USE or CLOBBER occurs
6801         before a SET.
6802         * Makefile.in: Update dependencies for rtlanal.o.
6803
6804 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
6805
6806         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
6807
6808 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
6809
6810         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
6811         Consistently use @email for formatting email addresses.
6812
6813 2000-09-29  Richard Henderson  <rth@cygnus.com>
6814
6815         * cse.c (notreg_cost): New argument outer.
6816         (COST): Pass in SET to notreg_cost
6817         (COST_IN): New.
6818         (fold_rtx): Use COST_IN.  Prefer constants when costs
6819         are the same.
6820
6821 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
6822
6823         * fixinc/inclhack.def (broken_cabs): Generalize regex.
6824         * fixinc/fixincl.x: Regenerate.
6825
6826 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6827
6828         * loop.c (check_final_value): A GIV is not replaceable if used
6829         before set.
6830
6831 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
6832
6833         * version.c: Bump to gcc-2.97.
6834
6835 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6836
6837         * final.c (final_scan_insn): Remove extra extract_insn call;
6838         Use caching for constrain_operands.
6839         (cleanup_subreg_operands): Use caching for extract_insn.
6840         * recog.c (constrain_operands_cached): New.
6841         * recog.h (constrain_operands_cached): Declare.
6842         * i386.c (ix86_attr_length_immediate_default,
6843         ix86_attr_length_address_default, ix86_agi_dependant): Cache
6844         extract_insn call.
6845
6846         * recog.c (asm_noperands): Tweak.
6847         (extract_insn): Do not call asm_noperads for non-asm instructions.
6848
6849 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6850
6851         * recog.c (recog_memoized): Rename to recog_memoized_1.
6852         * recog.h (recog_memoized): Rename to recog_memoized_1.
6853         (recog_memoized): New macro.
6854         * rtl.h (single_set): Rename to single_set_1
6855         (single_set): New macro.
6856         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
6857         to be last.
6858
6859         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
6860         Do not use match_dup of input operands at outputs.
6861         Use register_operand for memory expression.
6862         (rep_movsi): Put use last, canonicalize.
6863         Use register_operand for memory expression.
6864         (rep_movqi): Put use last.
6865         Use register_operand for memory expression.
6866         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
6867         of input operands at outputs.  Use register_operand for memory
6868         expression.
6869         (rep_stossi): Put use last; canonicalize; fix match_dup in
6870         the address expression
6871         (rep_stosqi): Likewise.
6872         (memcmp expander): Update calls.
6873         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
6874         the clobbers.
6875
6876         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
6877         VOIDmode.
6878         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
6879
6880 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
6881
6882         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
6883         Contains the old contents of config/i386/freebsd.h
6884         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
6885         Contains the old contents of config/i386/freebsd-elf.h
6886         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
6887         config/i386/freebsd.h.
6888         * configure.in: Adjust for above changes.
6889         * po/POTFILES.in: Likewise.
6890         * po/en_GB.po: Likewise.
6891         * po/gcc.pot: Likewise.
6892         * configure: Rebuilt.
6893
6894 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6895
6896         * doloop.c (doloop_modify): Prevent delete_insn() from
6897         deleting too much.  Prefer loop->top over loop->start as
6898         target for the new JUMP insn.
6899         (doloop_valid_p): Ignore loop with exit_count != 0.
6900
6901 2000-09-28  Philipp Thomas  <pthomas@suse.de>
6902
6903         * invoke.texi (i386 Options): Add athlon to table of possible
6904         choices for -mcpu=.
6905
6906 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
6907
6908         * diagnostic.h (output_clear_message_text): New function.
6909         (output_message_text): New macro.
6910
6911         * diagnostic.c (clear_text_info): Rename to
6912         output_clear_message_text.
6913         (output_clear): Adjust.
6914         (output_finish): Rename to output_finalize_message.  Tweek.
6915         (output_to_stream): Adjust.
6916
6917 2000-09-28  Neil Booth  <neilb@earthling.net>
6918
6919         * cpperror.c (_cpp_begin_message):  Do the test for suppression
6920         of warnings and pedantic warnings before the "is a warning an
6921         error" tests.
6922         * cppinit.c (cpp_handle_option): Remove surplus \n.
6923         * cpplex.c (ON_REST_ARG): Delete.
6924         (skip_block_comment): Initialise prevc.
6925         (parse_args): Improve error messages.
6926         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
6927         than ON_REST_ARG.
6928         * cpplib.c (cpp_push_buffer): Fix grammar in message.
6929         * cppmain.c (main): Set callbacks for #ident and #pragma
6930         only if no_output option is false.
6931         (do_pragma_implementation): Only call the #pragma handler
6932         if it is set in the cpp_reader structure.
6933
6934 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
6935
6936         * integrate.c (copy_insn_list): if an ignored return value
6937         is being clobbered, skip cloning that into the inline copy.
6938
6939 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
6940
6941         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
6942         use @uref for formatting URLs.
6943
6944 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
6945
6946         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
6947         name and prefix.
6948
6949 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
6950
6951         * gcc.c (cpp_options): Add spec for -ftabstop=.
6952         (invoke_as): New spec that handles invoking as.
6953         Update specs to handle -save-temps and -traditional.
6954         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
6955         Use invoke_as.
6956         * cp/lang-specs.h, objc/lang-specs.h: Update to use
6957         invoke_as, and handle -save-temps and -traditional (if
6958         appropriate).
6959
6960 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
6961
6962         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
6963         op0 is a SUBREG.
6964         (function_arg_slotno): Accept TImode/CTImode.
6965         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
6966         to UNITS_PER_WORD.
6967
6968 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
6969
6970         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
6971         from entry block.
6972
6973 2000-09-25  Jim Wilson  <wilson@cygnus.com>
6974
6975         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
6976         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
6977         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
6978         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
6979
6980 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
6981
6982         * cpplex.c (parse_args): Don't set VOID_REST flag.
6983         (CONTEXT_VARARGS): New flag.
6984         (maybe_paste_with_next): Set context earlier in loop.  Use
6985         it.  Do varargs test with CONTEXT_VARARGS flag.
6986         (push_arg_context): Set CONTEXT_VARARGS flag if we're
6987         pushing an argument context for a varargs argument.
6988         * cpplib.h (VOID_REST): Delete.
6989         * gcc.dg/cpp/vararg1.c: Add test case.
6990
6991 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
6992
6993         * flags.h:  Declare warning flag warn_system_headers.
6994         * toplev.c:  Define it.
6995         (W_options): Add option -Wsystem-headers.
6996         * diagnostic.c (count_error): Test warn_system_headers.
6997         * invoke.texi:  Add description for -Wsystem-headers.
6998         * cpplib.h (cpp_options): New member warn_system_headers.
6999         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
7000         CPP_IN_SYSTEM_HEADER.
7001         * cpplib.c (do_import, do_pragma_once): Likewise.
7002         * cpperror.c (_cpp_begin_message): Test warn_system_headers
7003         and CPP_IN_SYSTEM_HEADER.
7004         * cppinit.c (handle_option): Recognize -Wsystem_headers.
7005         (print_help): Describe -Wsystem_headers.
7006         * cpplex.c (lex_line): Reorganize condition so that warnings
7007         about C++ comments in system headers can be enabled. Remove
7008         label do_line_comment.
7009
7010 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
7011
7012         * cpplex.c (save_comment): Only store the initial '/'
7013         now.
7014         (lex_token): Combine handling of the two comment types.
7015         Pass everything but the initial '/' to save_comment.
7016
7017 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
7018
7019         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
7020         _cpp_can_paste): New library-internal prototypes.
7021         * cpplex.c (dump_param_spelling, output_line_command,
7022         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
7023         cpp_printf, cpp_output_list): Move to cppoutput.c.
7024         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
7025         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
7026         cppoutput.c.
7027         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
7028         dump_param_spelling, output_line_command, cpp_scan_buffer,
7029         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
7030         from elsewhere.
7031         * Makefile.in: Add cppoutput.c.
7032         * po/POTFILES.in: Add cppoutput.c.
7033
7034 2000-09-25  Richard Henderson  <rth@cygnus.com>
7035
7036         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
7037         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
7038         split until after reload.
7039         (rotlsi3, rotldi3): New.
7040
7041 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
7042
7043         * diagnostic.c (output_last_position): Define.
7044         (set_real_maximum_length): Tweek.
7045         * diagnostic.h (output_last_position): Declare.
7046
7047 2000-09-25  Kazu Hirata  <kazu@hxi.com>
7048
7049         * config/i386/i386.c: Fix formatting.
7050
7051 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
7052
7053         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
7054         UNITS_PER_WORD is small.
7055
7056 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
7057
7058         * c-common.c (format_char_info): Add flags2; update comments.
7059         (print_char_table, scan_char_table, time_char_table): Split some
7060         flags out into flags2.
7061         (check_format_info): Use flags2 for those flags, for identifying
7062         the initial character of a scanf scanset, and for identifying
7063         printf formats where the '0' flag is ignored with precision.
7064
7065 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
7066
7067         Changes below marked "here" add TABs on either or both sides,
7068         covering start of line, up to any operand for all noted .*ASM.*_OP
7069         definitions.  All callers changed.
7070         * tm.texi: Make documented *_ASM.*_OP:s include spacing
7071         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
7072         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7073         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
7074         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
7075         Fix typos in description for LONG_LONG_TYPE_SIZE and
7076         FINI_SECTION_ASM_OP.
7077         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
7078         why these defaults don't have leading spacing.
7079         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
7080         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7081         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
7082         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
7083         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
7084         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
7085         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
7086         * varasm.c (ASM_STABS_OP): Here.
7087         * xcoffout.h (ASM_STABS_OP): Here.
7088         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
7089         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
7090         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
7091         STRING_ASM_OP): Here.
7092         * config/freebsd.h (IDENT_ASM_OP): Here.
7093         * config/linux-aout.h (SET_ASM_OP): Here.
7094         * config/linux.h (SET_ASM_OP): Here.
7095         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7096         INT_ASM_OP): Here.
7097         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
7098         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
7099         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
7100         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7101         INT_ASM_OP): Here.
7102         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
7103         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
7104         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
7105         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7106         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
7107         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7108         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
7109         * config/a29k/udi.h (INT_ASM_OP): Here.
7110         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
7111         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
7112         SET_ASM_OP): Here.
7113         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
7114         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7115         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7116         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
7117         ASM_STABD_OP): Here.
7118         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
7119         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
7120         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7121         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
7122         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
7123         SIZE_ASM_OP, STRING_ASM_OP): Here.
7124         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
7125         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
7126         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
7127         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
7128         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
7129         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
7130         Here.
7131         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7132         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
7133         * config/arm/coff.h (INT_ASM_OP): Here.
7134         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
7135         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
7136         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
7137         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
7138         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
7139         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7140         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
7141         STRING_ASM_OP): Here.  Update documentation copy in comments.
7142         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
7143         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
7144         DATA_SECTION_ASM_OP): Here.
7145         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
7146         Here.
7147         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
7148         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
7149         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7150         BSS_SECTION_ASM_OP): Here.
7151         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7152         BSS_SECTION_ASM_OP): Here.
7153         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7154         Here.
7155         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
7156         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
7157         * config/h8300/h8300.h (ASM_WORD_OP): Here.
7158         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7159         BSS_SECTION_ASM_OP): Here.
7160         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
7161         * config/i386/bsd.h (ASM_BYTE_OP): Here.
7162         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
7163         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
7164         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
7165         Here.
7166         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
7167         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
7168         Here.
7169         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
7170         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7171         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
7172         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
7173         SET_ASM_OP): Here.
7174         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
7175         * config/i386/netbsd.h (INT_ASM_OP): Here.
7176         * config/i386/openbsd.h (INT_ASM_OP): Here.
7177         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
7178         IDENT_ASM_OP): Here.
7179         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
7180         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
7181         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
7182         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
7183         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
7184         SHARED_BSS_SECTION_ASM_OP): Here.
7185         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
7186         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7187         DATA_SECTION_ASM_OP): Here.
7188         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7189         CONST_SECTION_ASM_OP): Here.
7190         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
7191         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7192         BSS_SECTION_ASM_OP): Here.
7193         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
7194         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
7195         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
7196         BSS_ASM_OP): Here, but use trailing spaces.
7197         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7198         DATA_SECTION_ASM_OP): Here.
7199         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
7200         Here.
7201         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
7202         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
7203         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7204         TDESC_SECTION_ASM_OP): Here.
7205         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
7206         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7207         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7208         Here.
7209         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7210         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
7211         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7212         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
7213         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
7214         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
7215         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7216         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
7217         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
7218         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
7219         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
7220         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
7221         SET_ASM_OP): Here.
7222         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
7223         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7224         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
7225         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
7226         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
7227         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
7228         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
7229         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7230         GLOBAL_ASM_OP): Here.
7231         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
7232         BSS_SECTION_ASM_OP): Here.
7233         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
7234         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7235         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
7236         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
7237         SKIP_ASM_OP): Here.
7238         * config/m68k/newsgas.h (SET_ASM_OP): Here.
7239         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
7240         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7241         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
7242         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
7243         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
7244         but use trailing spaces.
7245         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
7246         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
7247         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
7248         Here.
7249         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
7250         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7251         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7252         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
7253         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7254         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
7255         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
7256         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
7257         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
7258         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
7259         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
7260         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
7261         ASM_BYTE_OP): Here.
7262         * config/m88k/openbsd.h (SET_ASM_OP): Here.
7263         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7264         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
7265         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
7266         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
7267         DTORS_SECTION_ASM_OP): Here.
7268         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
7269         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7270         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
7271         BSS_SECTION_ASM_OP): Here.
7272         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
7273         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
7274         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
7275         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
7276         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
7277         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
7278         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
7279         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
7280         Here.
7281         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
7282         Here.
7283         * config/mips/osfrose.h (SET_ASM_OP): Here.
7284         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
7285         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
7286         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
7287         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7288         Here.
7289         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
7290         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
7291         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
7292         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
7293         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
7294         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7295         Here.
7296         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7297         Here.
7298         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
7299         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
7300         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
7301         Here.
7302         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
7303         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
7304         * config/sparc/linux.h (COMMON_ASM_OP): Here.
7305         * config/sparc/linux64.h (COMMON_ASM_OP,
7306         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
7307         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
7308         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
7309         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
7310         * config/sparc/pbd.h (ASM_INT_OP): Here.
7311         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
7312         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
7313         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
7314         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
7315         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
7316         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
7317         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
7318         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
7319         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
7320         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7321         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
7322         EH_FRAME_SECTION_ASM_OP): Here.
7323         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
7324         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7325         Here.
7326         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7327         Here.
7328         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
7329         TCOMMON_ASM_OP): Here.
7330         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
7331         Here.
7332         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
7333         ASM_BYTE_OP): Here.
7334
7335 2000-09-25  Richard Henderson  <rth@cygnus.com>
7336
7337         * expmed.c (store_bit_field): Adjust last change to not consider
7338         any word-sized field naturally aligned.
7339
7340 2000-09-24  Richard Henderson  <rth@cygnus.com>
7341
7342         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
7343         TFmode unordered compares properly.  Revalidate integer compare
7344         operands.
7345         (alpha_emit_setcc): New.
7346         (alpha_emit_conditional_move): Revalidate integer compare operands.
7347         * config/alpha/alpha-protos.h: Update.
7348         * config/alpha/alpha.md (cmpdi): Allow general operands.
7349         (sne): Use alpha_emit_setcc.
7350         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
7351         (sunordered, sordered): New.
7352
7353 2000-09-24  Richard Henderson  <rth@cygnus.com>
7354
7355         * config/ia64/ia64-protos.h: Update.
7356         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
7357         (ia64_expand_call): New.
7358         (ia64_expand_prologue): Emit an alloc if we need extra input
7359         registers.
7360         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
7361         instruction if true.
7362         (struct reg_flags): Add is_sibcall.
7363         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
7364         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
7365         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
7366         * config/ia64/ia64.h (PREDICATE_CODES): Update.
7367         * config/ia64/ia64.md (call): Use ia64_expand_call.
7368         (call_value): Likewise.
7369         (sibcall, sibcall_value): New.
7370         (call patterns): Remove extra expanders; tidy.
7371         (sibcall_epilogue): New.
7372         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
7373
7374 2000-09-24  Richard Henderson  <rth@cygnus.com>
7375
7376         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
7377
7378         * sibcall.c (skip_pic_restore): New.
7379         (identify_call_return_value): Use it.
7380
7381 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
7382
7383         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
7384         functions.  Generalize to handle both C and C++.
7385         * Makefile.in (c-tree.info): New target.
7386         (info): Add c-tree.info.
7387
7388 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7389
7390         * expr.c (store_field): If BITSIZE is negative, use size of type.
7391         (expand_expr, case COMPONENT_EXPR): Likewise.
7392
7393 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
7394
7395         * cpplex.c: Update TODO comment.
7396         * cpplib.c (do_error, do_warning): Merge common code of
7397         do_error and do_warning into do_diagnostic.  Use it.
7398         (do_diagnostic): New function.
7399         * cpplib.h: Fix comment typo.
7400
7401 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7402
7403         * c-common.c (check_format_info): Warn for a wide character string
7404         used as a non-wide format argument.
7405
7406 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
7407
7408         * builtins.def (BUILT_IN_LLABS): Add.
7409         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
7410         * c-common.c (c_common_nodes_builtins): Create builtin functions
7411         __builtin_llabs, and plain llabs unless no_nonansi_builtins
7412         outside of C99 mode.
7413         (expand_tree_builtin): Handle BUILT_IN_LLABS.
7414
7415 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
7416
7417         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
7418         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
7419         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
7420         _cpp_free_toklist): No need to worry about extra dummy token
7421         at the start of token lists any more.
7422         (trigraph_ok): Only warn outside comments.
7423         (skip_block_comment): Set and clear lexing_comment.
7424         (skip_line_comment): Take a cpp_reader not cpp_buffer.
7425         Set and clear lexing_comment.
7426         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
7427         (check_long_token): Delete.
7428         (lex_percent, lex_dot): New subroutines of lex_token to
7429         handle lexing of '.' and '%' without lookback.
7430         (lex_token): Use lex_dot and lex_percent.
7431         (lex_line): Don't check for LIST_OFFSET.
7432         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
7433         * cpplib.c (_cpp_parse_assertion): Similarly.
7434         (cpp_push_buffer): Initialize extra_char.
7435         * cpplib.h (LIST_OFFSET): Delete.
7436         (struct cpp_buffer): New member extra_char.
7437         (struct lexer_state): New members lexing_comment and seen_dot.
7438
7439 2000-09-23  Jason Merrill  <jason@redhat.com>
7440
7441         * config/rs6000/x-aix41 (CLIB): Define here.
7442         * config/rs6000/t-aix43: Not here.
7443         * config/rs6000/t-aix41: Or here.  Remove.
7444         * configure.in: Don't use it.
7445
7446 2000-09-22  Jason Merrill  <jason@redhat.com>
7447
7448         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
7449         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
7450         * config.in: Regenerate.
7451
7452         * configure.in: Fix checks for assembler features when using a
7453         one-tree assembler that has not yet been built.
7454         Fix --disable-threads.
7455
7456 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
7457
7458         * stmt.c (expand_asm_operands): Allow # in constraints.
7459
7460 2000-09-22  Jason Merrill  <jason@redhat.com>
7461
7462         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
7463
7464         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
7465         function-local names.
7466
7467 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
7468             Mark Mitchell  <mark@codesourcery.com>
7469
7470         * toplev.c (warn_disabled_optimization): Declare new warning flag.
7471         * flags.h (warn_disabled_optimization): Add it here.
7472         * gcse.c (gcse_main): Add warning when disabled.
7473         * invoke.texi: Document -Wdisabled-optimization.
7474
7475 2000-09-21  Jason Merrill  <jason@redhat.com>
7476
7477         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
7478
7479         * dwarf2out.c (tree_add_const_value_attribute): New fn.
7480         (gen_variable_die): Call it for non-definitions.
7481
7482         * dwarf2out.c (die_struct): Add die_mark field.
7483         (mark_dies, unmark_dies): New fns.
7484         (clear_die_sizes): Remove.
7485         (print_die): Check die_symbol rather than die_offset.
7486         (build_abbrev_table, output_pubnames, output_aranges): Check
7487         die_mark rather than die_offset.
7488         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
7489         Call mark_dies.
7490
7491 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
7492
7493         * cppfiles.c (lookup_include_file): Rename to open_file.
7494         Always create a splay tree value, even on syscall failures.
7495         Negative entries indicated by fd == -2.
7496         Re-open files closed in the meantime.
7497         (_cpp_fake_include): Create a negative splay tree entry.
7498         (find_include_file, cpp_read_file): Update for function name
7499         change.
7500         * gcc.gd/cpp/mi4.c: Testcase.
7501
7502 2000-09-21  Nick Clifton  <nickc@redhat.com>
7503
7504         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
7505         ARM and THUMB modes.
7506
7507         * config/mcore/mcore.c: Fix compile time warnings.
7508         * config/mcore/mcore-protos.h: Fix compile time warnings.
7509
7510 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7511
7512         * configure.in: Correct test of gcc_cv_glibc.
7513         * configure: Rebuilt.
7514         * config.in: Rebuilt.
7515
7516 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7517
7518         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
7519         (expand_builtin): Handle BUILT_IN_FWRITE.
7520
7521         * builtins.def (BUILT_IN_FWRITE): New entry.
7522
7523         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
7524
7525 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7526
7527         * gcc.c (modify_target): New variable and struct.
7528         (process_command): Handle MODIFY_TARGET_NAME.
7529         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
7530         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
7531
7532         * c-decl.c (finish_decl): Add else's to avoid referencing
7533         TYPE_DOMAIN of an ERROR_MARK.
7534
7535 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
7536
7537         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
7538         `reload_in*' insns.
7539
7540 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7541
7542         * config/avr/avr.md (neghi2): Add alternative for input and output
7543         operands in different registers, as in negsi2.
7544         (*negsi2): Remove '*' from the name.  Use "movw" if available.
7545
7546 2000-09-19  Jim Wilson  <wilson@cygnus.com>
7547
7548         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
7549         HAVE_GAS_HIDDEN macro.
7550
7551 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
7552
7553         * cpplex.c (lex_line): Drop the EOF token for unknown
7554         directives in assembler.
7555
7556 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
7557
7558         * configure.in: Allow enable_threads_flag value of "aix".  Define
7559         thread_file as "aix" for AIX 4.3 and above.
7560         * configure: Regenerated.
7561
7562         * gthr-aix.h: New file.
7563
7564         * rs6000/t-aix43: Replace soft-float multilib with pthread.
7565         Remove 403 processor multilib match.  Fix rios2 processor multilib
7566         match.
7567
7568         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
7569         to return to appropriate csect.
7570
7571 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7572
7573         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
7574         functions.
7575         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
7576         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
7577         BUILT_IN_PRINTF.
7578
7579         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
7580         New entries.
7581
7582         * c-common.c (init_function_format_info): Handle __builtin_printf.
7583         Set `check_function_format_ptr'.
7584         (c_common_nodes_and_builtins): Set `puts_ftype' and
7585         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
7586         __builtin_printf and printf.
7587
7588         * tree.c, tree.h (check_function_format_ptr): Declare.
7589
7590 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
7591
7592         * cppfiles.c (read_include_file): Take no special action for
7593         zero-length files.
7594
7595 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
7596
7597         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
7598         rather than that of branch.
7599         (shorten_branches): Don't increment insn_current_address twice.
7600
7601         Undo most of the Wed Jan 27 23:39:53 1999 patch:
7602         * loop.h (struct induction): Delete members derived, ix and last_use.
7603         (struct loop_ivs): Delete members first_increment_giv and
7604         last_increment_giv.
7605         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
7606         recombine_givs): Delete functions.
7607         (find_and_verify_loops): Don't initialize cont_dominator.
7608         (strength_reduce): Lose code to try to find bivs that can be
7609         expressed as givs of another biv, and to convert biv increments
7610         into givs.
7611         Lose loop_scan_start variable, always use loop->scan_start.
7612         Don't call recombine_givs.  Don't handle derived givs.
7613         (record_giv): Don't initialize derived and last_use fields.
7614         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
7615         givs.
7616         * unroll.c (derived_regs): Delete static variable.
7617         (unroll_loop): Don't initialize it.
7618         (copy_loop_body): Lose code to handle derived givs.
7619         (find_splittable_givs): Don't check for givs made from biv
7620         increments.
7621         Don't set derived_regs.
7622
7623         Fix misapplied earlier patch:
7624         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
7625         to fpul.
7626         (floatsisf2): Generate floatsisf_ie by default.
7627         (floatsisf_i4): Conditional on TARGET_SH4.
7628
7629         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
7630         predicate for the expanders.
7631
7632 2000-09-19  Richard Henderson  <rth@cygnus.com>
7633
7634         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
7635         in addition to pentium and pentiumpro symbols.
7636         (CPP_CPU_DEFAULT_SPEC): Likewise.
7637
7638         * c-typeck.c (c_expand_asm_operands): Restore the output tree
7639         after expanding.
7640
7641         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
7642         if the tree has side effects.
7643         (warn_if_unused_value): Do not warn about void constructs.
7644
7645         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
7646
7647         * unroll.c (copy_loop_body): Update LABEL_NUSES before
7648         calling invert_jump.
7649
7650 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
7651
7652         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
7653         into anything.
7654
7655 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7656
7657         * Makefile.in (c-common.o): Depend on diagnostic.h.
7658
7659         * c-common.c: Include diagnostic.h.
7660         (tfaff): Delete.
7661         (status_warning): New function.
7662         (check_format_info, maybe_read_dollar_number, check_format_types,
7663         finish_dollar_format_checking, check_function_format): Accept a
7664         `status' parameter.  All callers changed.
7665
7666         * c-common.h (check_function_format): Accept a `status' parameter.
7667
7668         * c-typeck.c: Update call to `check_function_format'.
7669
7670 2000-09-18  Richard Henderson  <rth@cygnus.com>
7671
7672         * c-decl.c (c_expand_body): Call mark_varargs before
7673         expand_function_start.
7674
7675 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
7676
7677         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
7678         * config/rs6000/eabi-ci.asm: Likewise.
7679
7680 2000-09-18  Richard Henderson  <rth@cygnus.com>
7681
7682         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
7683         for BImode.
7684
7685 2000-09-18  Jim Wilson  <wilson@cygnus.com>
7686
7687         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
7688         before passing it to fold_rtx_mult_add.
7689
7690         * unroll.c (final_giv_value): Pass increment through
7691         extend_value_for_giv before passing it to emit_iv_add_mult.
7692
7693         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
7694         paradoxical subreg, then directly substitute the replacement and
7695         return.
7696
7697 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
7698
7699         * cpp.texi: Update documentation, including some clarifications,
7700         the treatment of various newline combinations, and space between
7701         backslash and newline.
7702
7703 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
7704
7705         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
7706         Replace ASM_OUTPUT_LABELREF with assemble_name.
7707
7708 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
7709
7710         * sh.c (addsubcosts): CONST is not cheap.
7711         (find_barrier): For Sh1, take alignment after jumps into account.
7712
7713 2000-09-15  Andrew Haley  <aph@redhat.com>
7714
7715         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
7716         remove all SETs of SUBREGs of hard registers.
7717         * function.c (purge_hard_subreg_sets): New function.
7718         (purge_single_hard_subreg_set): New function.
7719         * rtl.h: (purge_hard_subreg_sets): New function.
7720
7721 2000-09-18  Richard Henderson  <rth@cygnus.com>
7722
7723         * config/ia64/ia64-protos.h: Update.
7724         * config/ia64/ia64.c (signed_inequality_operator): New.
7725         (ia64_expand_compare): New.
7726         (ia64_register_move_cost): Handle PR_REGS moves.
7727         (ia64_secondary_reload_class): Require a GR when moving to a PR.
7728         (struct reg_write_state): Add written_by_and/or.
7729         (struct reg_flags): Add is_and/or.
7730         (rws_update): Set them.
7731         (rws_access_regno): Test them to allow parallel comparisons.
7732         (rtx_needs_barrier): Recognize parallel comparisons.
7733         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
7734         Call recog_memoized; ignore pred_rel_mutex.
7735         (emit_predicate_relation_info): Don't call find_basic_blocks here.
7736         (ia64_reorg): Do it here instead.
7737         * config/ia64/ia64.h: s/CCmode/BImode/g
7738         (MODES_TIEABLE_P): Don't tie BImode.
7739         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
7740         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
7741         (RTX_COSTS): Make multiply 4 insns.
7742         (MEMORY_MOVE_COST): New.
7743         (PREDICATE_CODES): Update.
7744         * config/ia64/ia64.md: s/CCmode/BImode/g
7745         (movcci, movbi): New.
7746         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
7747         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
7748         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
7749         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
7750         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
7751         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
7752         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
7753         (mulsi, muldi): Use xmpy not xma.
7754         (cmpbi): New.
7755         (movcc, movcc_internal): Remove.
7756         (branch expanders): Use ia64_expand_compare.
7757         (setcc expanders): Likewise.
7758         (cmov insns): Use move_operand and ia64_move_ok.
7759         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
7760         scheduler from moving it past a use.
7761         * config/ia64/build.hacks: Remove.
7762
7763 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
7764
7765         * cpphash.h (HASHSTEP): Take character rather than pointer
7766         to character.
7767         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
7768
7769         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
7770
7771         * cpplex.c (auto_expand_name_space, trigraph_replace,
7772         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
7773         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
7774         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
7775         KNOWN_DIRECTIVE): Delete.
7776
7777         (handle_newline, check_long_token, skip_escaped_newlines,
7778         unterminated): New functions.
7779         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
7780
7781         (parse_identifier): Was parse_name, new implementation.
7782         (skip_line_comment, skip_block_comment, skip_whitespace,
7783         parse_number, parse_string, trigraph_ok, save_comment,
7784         adjust_column, _cpp_get_line): New implementations.
7785
7786         (lex_token): New function.  Lexes a token at a time, looking
7787         forwards.  Contains most of the guts of the old lex_line.
7788         (lex_line): New implementation, using lex_token to obtain
7789         individual tokens.
7790         (cpp_scan_buffer): Use the token's line, not the list's line.
7791
7792         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
7793          New implementations.
7794         (do_assert): Don't bother setting the answer's list's line.
7795         (cpp_push_buffer): Initialise new pfile and read_ahead members
7796         of struct cpp_buffer.
7797
7798         * cpplib.h (cppchar_t): New typedef.
7799         (struct cpp_buffer): read_ahead, pfile and col_adjust are
7800         new members.
7801         (struct lexer_state): New structure that determines the state
7802         and behaviour of the lexer.
7803         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
7804         (struct cpp_reader): New member "state". Rename
7805         multiline_string_line and multiline_string_column. Delete
7806         col_adjust, in_lex_line members.
7807         (CPP_BUF_COLUMN): Update.
7808
7809 2000-09-18  Richard Henderson  <rth@cygnus.com>
7810
7811         * combine.c (simplify_comparison): Shift a NOT out of a single
7812         bit test.
7813
7814         * combine.c (if_then_else_cond): Canonicalize BImode true to
7815         STORE_FLAG_VALUE.
7816         * explow.c (trunc_int_for_mode): Likewise.
7817
7818         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
7819         the NOT for De Morgan's rule.
7820         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
7821         of a comparison to the reverse comparison.
7822
7823         * combine.c (try_combine): Allow split to create a single insn.
7824
7825         * machmode.def: Add BImode.  Add a column for bitsize.
7826         * machmode.h (DEF_MACHMODE): Adjust for extra column.
7827         (GET_MODE_BITSIZE): Use it.
7828         * rtl.c (DEF_MACHMODE): Adjust for extra column.
7829         (mode_bitsize): New.
7830         (mode_mask_array): Use bitsize.
7831         * combine.c (combine_simplify_rtx): Require inner and outer
7832         modes to match on nonzero_bits optimizations.
7833
7834 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
7835
7836         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
7837         its entry in spill_reg_store.
7838         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
7839         * sh.c (reg_no_subreg_operand): New function.
7840         * sh-protos.h (reg_no_subreg_operand): Declare it.
7841         * sh.h (PREDICATE_CODES): Add it.
7842         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
7843         input operand that needs to be in fpul.
7844         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
7845         * sh.c (find_barrier): Take into account that machine_dependent_reorg
7846         might add new insns.
7847
7848 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
7849
7850         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
7851         MAYBE_DEAD.
7852         (sh_expand_epilogue): Take the PIC register into account when
7853         computing the frame size.
7854
7855         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
7856         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
7857         LABEL_REFs with a PIC-safe unspec.
7858
7859 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7860
7861         * c-common.c (check_format_info): Properly save the argument
7862         number and parameter for $ operand number formats in case width
7863         and precision arguments are also used.  Allow printf width and
7864         precision arguments to have operand numbers even if none was
7865         specified for the main format, since this is OK for %*.*m.  Only
7866         object to missing $ operand number if the format used requires an
7867         argument.
7868
7869 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7870
7871         * c-common.c (format_char_info): Add 'W' flag to comment.
7872         (print_char_table, scan_char_table): Use it.
7873         (check_format_info): Use the 'W' flag to determine whether a
7874         format argument is written into.
7875
7876 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7877
7878         * c-common.c (check_format_types): Reorganise and clean up,
7879         checking earlier for ERROR_MARKs and making cur_type into its
7880         TYPE_MAIN_VARIANT where convenient.
7881
7882 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7883
7884         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
7885
7886 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
7887
7888         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
7889
7890         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
7891         * i386.c (struct builtin_description): New.
7892         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
7893         (mmx_reg_operand): Declare MODE arg as unused.
7894         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
7895         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
7896         ix86_expand_binop_builtin, ix86_expand_store_builtin,
7897         ix86_init_builtins, ix86_expand_builtin): New functions.
7898         * i386.h (ix86_builtins): New enumeration.
7899         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
7900         * i386.md (attr length_immediate): 0 for mmx/sse types.
7901         (attr prefix_0f): 1 for mmx/sse types.
7902         (setcc_2): Remove "*" so we get gen_setcc_2.
7903         (emms): Account for changed register numbering.  Set "memory" attr
7904         to unknown.
7905         (sfence): Set "memory" attr to unknown.
7906
7907 2000-09-18  Andreas Jaeger  <aj@suse.de>
7908
7909         * configure.in: Define _GNU_SOURCE only when using the GNU C
7910         Library.
7911         * configure: Regenerated.
7912         * config.in: Regenerated.
7913
7914 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
7915
7916         * cppinit.c (cpp_init): Don't use ANSI prototypes.
7917         * flow.c (flow_dump_loop): Likewise.
7918         (flow_loops_dump): Likewise.
7919
7920         * c-typeck.c (c_start_case): Fix typo.
7921
7922 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7923
7924         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
7925         to int for plain complex which defaults to complex double.  Do
7926         warn about defaulting to complex double if pedantic.  Warn about
7927         complex integer types if pedantic.  Warn about complex types if
7928         pedantic and not in C99 mode.
7929         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
7930         for complex conjugation.
7931
7932 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7933
7934         * contrib.texi: Update my entry.
7935
7936 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
7937
7938         * config/avr/avr.md (mcu_enhanced): New attribute.
7939         (mcu_mega): Likewise.
7940         (extendhisi2): Use mcu_enhanced.
7941         (zero_extendhisi2): Likewise.
7942         (call_insn): Use mcu_enhanced and mcu_mega.
7943         (call_value_insn): Likewise.
7944         (*sbrx_branch): Use mcu_mega.
7945         (*sbrx_and_branchsi): Likewise.
7946         (*sbrx_and_branchhi): Likewise.
7947         (*tablejump_lib): Likewise.
7948
7949 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7950
7951         * alias.c (true_dependence): Allow non-unchanging read to conflict
7952         with unchanging write.
7953
7954         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
7955         (store_constructor): Pass alias_set to it.
7956
7957         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
7958         TYPE_MAIN_VARIANT of ERROR_MARK.
7959         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
7960
7961         * simplify-rtx.c (simplify_unary_operation): Add cases
7962         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
7963
7964 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
7965
7966         * expr.h (emit_library_call, emit_library_call_value): Delete
7967         declarations.
7968         * rtl.h (enum libcall_type): New.
7969         (emit_library_call, emit_library_call_value): Change fn_type arg to
7970         be of type enum libcall_type.
7971         * calls.c: Likewise for the function definitions.  Several callers
7972         throughout changed to use the new enumeration appropriately.
7973         (emit_library_call_value_1): Likewise.  Put back code to make libcall
7974         blocks of equal form, but only use it for the two new higher
7975         enumeration values.
7976
7977 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
7978
7979         Convert the C front-end to use function-at-a-time mode.
7980         * c-common.h: Include splay-tree.h.
7981         (C_DECLARED_LABEL_FLAG): New macro.
7982         (struct language_function): Add x_scope_stmt_stack and
7983         x_function_name_declared_p.
7984         (RECHAIN_STMTS): Move definition.
7985         (lang_statment_code_p): Likewise.
7986         (lang_expand_stmt): Likewise.
7987         (lang_expand_decl_stmt): New variable.
7988         (lang_expand_function_end): Likewise.
7989         (current_scope_stmt_stack): New function.
7990         (add_decl_stmt): Likewise.
7991         (add_scope_stmt): Likewise.
7992         (mark_stmt_tree): Likewise.
7993         (struct c_lang_decl): New structure.
7994         (DECL_SAVED_TREE): Define.
7995         (c_mark_lang_decl): New function.
7996         (c_expand_start_cond): Change prototype.
7997         (c_finish_then): New function.
7998         (c_finish_else): Likewise.
7999         (current_function_name_declared): Remove.
8000         (set_current_function_name_declared): Likewise.
8001         (mark_c_language_function): Declare.
8002         (case_compare): Likewise.
8003         (c_add_case_label): Likewise.
8004         (c_expand_expr): Likewise.
8005         (c_safe_from_p): Likewise.
8006         * c-common.c (lang_expand_function_end): New variable.
8007         (struct if_elt): Add if_stmt.
8008         (c_expand_start_cond): Add the if-statement to the statement-tree,
8009         rather than generating RTL.
8010         (c_finish_then): New function.
8011         (c_expand_start_else): Don't generate RTL.
8012         (c_finish_else): New function.
8013         (c_expand_expr_stmt): Don't generate RTL.
8014         (statement_code_p): Add SCOPE_STMT.
8015         (case_compare): New function.
8016         (c_add_case_label): Likewise.
8017         (mark_stmt_tree): Likewise.
8018         (c_mark_lang_decl): Likewise.
8019         (mark_c_language_function): Likewise.
8020         (c_expand_expr): Likewise.
8021         (c_safe_from_p): Likewise.
8022         * c-decl.c (c_stmt_tree): New variable
8023         (c_scope_stmt_stack): Likewise.
8024         (c_function_name_declared_p): Likewise.
8025         (lang_expand_expr_stmt): Remove.
8026         (poplevel): Don't call output_inline_function for nested
8027         functions.
8028         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
8029         `extern' function.
8030         (redeclaration_error_message): Change means of computing whether
8031         or not a function is nested.
8032         (lookup_label): Don't call label_rtx.
8033         (init_decl_processing): Add more GC roots.
8034         (start_decl): Add DECL_STMTs to the statement-tree, rather than
8035         calling rest_of_decl_compilation.
8036         (finish_decl): Don't call expand_decl.
8037         (store_parm_decls): Begin the statement-tree, but don't generate
8038         RTL.
8039         (finish_function): Tie off the statement-tree.  Call c_expand_body
8040         if appropriate.
8041         (c_expand_body): New function.
8042         (push_c_function_context): Save more information.
8043         (pop_c_function_contxt): Likewise.
8044         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
8045         (lang_mark_tree): Mark it.
8046         (current_stmt_tree): Adjust.
8047         (current_scope_stmt_stack): New function.
8048         (do_case): Remove.
8049         (set_current_name_declared): Likewise.
8050         (c_begin_compound_stmt): Define.
8051         (c_expand_decl_stmt): Likewise.
8052         * c-lang.c: Include rtl.h and expr.h.
8053         (lang_init): Set more language-specific hooks.
8054         * c-lex.c: Include expr.h.
8055         * c-parse.in: Changes throughout to add statements to the
8056         statement-tree, rather than generating RTL after every statement.
8057         * c-semantics.c (lang_expand_decl_stmt): Define.
8058         (add_decl_stmt): New function.
8059         (add_scope_stmt): Likewise.
8060         (finish_stmt_tree): Tweak.
8061         (genrtl_expr_stmt): Likewise.
8062         (genrtl_decl_stmt): Handle local labels, and call
8063         lang_expand_decl_stmt if required.
8064         (genrtl_for_stmt): Fix line-number handling.
8065         (genrtl_case_label): Handle cleanups.
8066         (genrtl_asm_stmt): Don't call combine_strings.
8067         (genrtl_compound_stmt): Simplify.
8068         (expand_stmt): Handle SCOPE_STMTs.
8069         * c-tree.h (struct lang_decl): New structure.
8070         (C_DECLARED_LABEL_FLAG): Remove.
8071         (c_begin_compound_stmt): Declare.
8072         (c_expand_decl_stmt): Likewise.
8073         (c_expand_start_case): Rename to c_start_case.
8074         (c_finish_case): New function.
8075         * c-typeck.c (start_init): Tweak setting of
8076         constructor_incremental.
8077         (c_expand_asm_operands): Tweak error-handling.  Add to the
8078         statement-tree.
8079         (c_expand_return): Add to the statement-tree.
8080         (c_expand_start_case): Rename to ...
8081         (c_start_case): ... this.
8082         (struct c_switch): New type.
8083         (switch_stack): New variable.
8084         (do_case): Simplify.
8085         (c_finish_case): New function.
8086         * dependence.c: Include expr.h.
8087         (enum dependence_type): Change spelling of enumerals.
8088         (check_node_dependence): Adjust.
8089         * expr.h (lang_safe_from_p): Declare.
8090         (safe_from_p): Likewise.
8091         * expr.c (lang_safe_from_p): New variable.
8092         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
8093         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
8094         * toplev.c (rest_of_decl_compilation): Robustify.
8095         * tree.c (contains_placeholder_p): Likewise.
8096         * Makefile.in: Update dependencies.
8097         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
8098         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
8099         (objc_expand_function_end): New function.
8100         (finish_method_def): Use it.
8101         (init_objc): Initialize more language-specific hooks.
8102         * objc/Make-lang.in: Update dependencies.
8103
8104 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
8105
8106         * configure.in: Define macros that affect features before
8107         testing for features.  Don't define _XOPEN_SOURCE.
8108         * configure: Regenerated.
8109         * config.in: Regenerated.
8110
8111 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
8112
8113         * rtlanal.c (rtx_varies_p): Volatile asms vary.
8114         (rtx_unstable_p): Restructure code.  Volatile asms
8115         are unstable.
8116
8117 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8118
8119         * function.h (no_debugging_symbols): New field.
8120         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
8121         Initialize no_debugging_symbols.
8122         (output_inline_function): Save and restore write_symbols and set from
8123         no_debugging_symbols.
8124         * toplev.c (rest_of_compilation): Call save_for_inline.
8125         * tree.h: Update comment.
8126
8127         * stor-layout.c (place_field): Don't do anything if field or
8128         its type are ERROR_MARK.
8129
8130 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
8131
8132         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
8133         (read_include_file): Ensure inc->mmaped is initialized.
8134
8135 2000-09-16  Richard Henderson  <rth@cygnus.com>
8136
8137         * cppiles.c (purge_cache): Use PTR not caddr_t.
8138
8139 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
8140
8141         * gcc.c: In description for %{<S}, say the option removed is -S.
8142         * invoke.texi (Spec Files): Ditto.
8143
8144 2000-09-16  Andreas Jaeger  <aj@suse.de>
8145
8146         * configure.in: Always define _GNU_SOURCE to make interfaces
8147         visible that were hidden by only defining _GNU_SOURCE.
8148         * configure: Regenerated.
8149
8150 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
8151
8152         * cpplex.c (push_macro_context): Set an argument's level after
8153         calling parse_args.  We could loop infinitely otherwise.
8154
8155 2000-09-15  Tom Tromey  <tromey@cygnus.com>
8156
8157         * configure, config.in: Rebuilt.
8158         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
8159
8160 2000-09-15  Greg McGary  <greg@mcgary.org>
8161
8162         * cppmacro.c (check_trad_stringification): Check token
8163         text pointers against limit before dereferencing.
8164
8165 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8166
8167         * c-common.c (format_wanted_type): New structure.
8168         (check_format_types): New function.
8169         (check_format_info): Pass all checking of types of format
8170         arguments, including width and precision arguments, to this new
8171         function.
8172
8173 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8174
8175         * BUGS: Remove file.
8176
8177 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
8178
8179         * config/alpha/alpha.c (override_options): ev6 cache latencies
8180         from Richard Henderson.  Don't allow -mmemory-latency=L0.
8181
8182         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
8183         (TARGET_OPTIONS): Add tune=.
8184         (alpha_tune_string): Declare.
8185         * config/alpha/alpha.c (override_options): Add cpu_table.
8186         Use alpha_cpu_string first to set both alpha_cpu and target_flags
8187         and then alpha_tune_string to set alpha_cpu only.
8188         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
8189         * config/alpha/elf.h (ASM_FILE_START): Likewise.
8190         * config/alpha/osf.h (ASM_FILE_START): Likewise.
8191         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
8192
8193 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8194
8195         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
8196         Remove.
8197         (ix86_comparison_operator, ix86_cc_mode): Declare
8198         * i386.h (CCGC, CCGCO): New modes.
8199         (SELECT_CC_MODE): Move offline to ....
8200         * i386.c (ix86_cc_mode): .... here; use new modes.
8201         (ix86_comparison_operator): New.
8202         (fcmov_comparison_operator): Ensure proper mode.
8203         (put_condition_mode): More sanity checking.
8204         (ix86_match_ccmode): Handle new modes.
8205         (ix86_expand_fp_compare): GEU requires CCmode.
8206         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
8207         doing it by hand.
8208         * i386.md (cmp?i_ccz_1): Remove
8209         (cmp?i_ccno_1): Use ix86_match_ccmode.
8210         (cmp?i_minus_1): New.
8211         (cmpsi_1): New expander.
8212         (cmpqi_ext_1): Use match_ccmode
8213         (cmpqi_ext_3): New expander.
8214         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
8215         (cmpqi_ext_4): Use match_ccmode.
8216         (add?i_?): Use match_ccmode.
8217         (add?i_6): New.
8218         (test?i_ccz_1): Remove
8219         (test?i_1): New.
8220         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
8221         (testqi_ext_0): Use ix86_match_ccmode.
8222         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
8223         (xorqi_cc_ext_1): New expander.
8224         (shift patterns): Use CCGOCmode for all shifts except for sar.
8225         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
8226         (setcc_3, jcc_3, miv?icc_c): Remove.
8227
8228 2000-09-15  Will Cohen  <wcohen@redhat.com>
8229
8230         * dwarf2out.c (add_const_value_attribute): Changed array into a
8231         xmalloced object, so it exists after function exit.
8232         (free_AT): Added case for dw_val_class_float to free allocated
8233         memory.
8234
8235 2000-09-15  Kazu Hirata  <kazu@hxi.com>
8236
8237         * config/i386/i386.md: Fix a comment typo.
8238         * gcc.c: Fix formatting.
8239
8240 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
8241
8242         * optabs.c (emit_libcall_block): If target is a user variable,
8243         copy to a temporary first.
8244         * expr.c (convert_move): When generating a libcall, make a libcall
8245         block.
8246         * calls.c (emit_library_call_value_1): Don't create a libcall
8247         sequence here; our caller will in most cases do it.
8248
8249         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
8250         MACH into FPUL.
8251         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
8252         * sh.md (reload_outsf): Generate recognizable patterns for
8253         TARGET_SH3E.
8254         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
8255         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
8256         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
8257         truncdfsf2_i4): Change not to use explicit references to fpul.
8258         (floatsisf2_ie): Remove USE of fpscr.
8259         (floatsisf2): Change default expansion to match this.
8260         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
8261         unused patterns.
8262
8263 2000-09-15  Richard Henderson  <rth@cygnus.com>
8264
8265         * expmed.c (store_bit_field): Consider naturally aligned
8266         memory for direct reference.
8267
8268 2000-09-15  Richard Henderson  <rth@cygnus.com>
8269
8270         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
8271         AND addresses into alias set 0.
8272         (alpha_expand_unaligned_store): Likewise.
8273         (alpha_expand_unaligned_load_words): Likewise.
8274         (alpha_expand_unaligned_store_words): Likewise.
8275
8276 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
8277
8278         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
8279         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
8280         is defined.
8281         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
8282         rsize of UNITS_PER_WORD.
8283
8284 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
8285
8286         * cpplex.c (ON_REST_ARG): Correct the test.
8287         (maybe_paste_with_next): Duplicate a token that fail pasting,
8288         and clear its PASTE_LEFT flag, so that nested pasting attempts
8289         do not occur.
8290
8291 2000-09-14  Richard Henderson  <rth@cygnus.com>
8292
8293         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
8294         * cse.c (rtx_cost): Likewise.
8295         * optabls.c (expand_binop): Likewise.
8296         (expand_twoval_binop, prepare_cmp_insn): Likewise.
8297         * regclass.c (copy_cost): Likewise.
8298         * reload1.c (reload_cse_move2add): Likewise.
8299
8300 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
8301
8302         * c-parse.in (reswords): Add _Complex.
8303
8304 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8305
8306         * gcc.1: Delete documentation for -undef preprocessor option.
8307
8308 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
8309
8310         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8311         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
8312         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
8313         Remove undefine before config/elfos.h.
8314         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
8315
8316 2000-09-14  Kazu Hirata  <kazu@hxi.com>
8317
8318         * invoke.texi (H8/300 Options): Add -ms2600.
8319         * config/h8300.c (h8300_init_once): Output an error when -ms2600
8320         is used without -ms.
8321         * config/h8300.h (TARGET_MAC): New.
8322         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
8323         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
8324         machine other than H8/S2600.
8325         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
8326         of the H8/S2000.
8327
8328 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
8329
8330         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
8331         pseudos that refer to the original pseudos, not only to their
8332         equivalent memory locations.
8333
8334 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8335
8336         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
8337         when making new MEM.
8338
8339         * Makefile.in (LN): Remove duplicate definition.
8340
8341 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8342
8343         From Joern Rennecke:
8344         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
8345         on an insn and function_invariant_p returns nonzero for the source,
8346         add a REG_EQUAL note.
8347
8348 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
8349
8350         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
8351         conflict with frame_pointer_rtx.
8352
8353 2000-09-13  Kazu Hirata  <kazu@hxi.com>
8354
8355         * loop.c: Fix formatting.
8356         * loop.h: Likewise.
8357
8358 2000-09-13  Richard Henderson  <rth@cygnus.com>
8359
8360         * config/ia64/ia64.md (divsf3): New.
8361         (divsf3_internal_lat, divsf3_internal_thr): New.
8362         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
8363         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
8364         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
8365         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
8366         (nmadddf4_alts, nmadddf4_trunc): New.
8367         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
8368         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
8369         (multf3_truncsf_alts, multf3_truncdf_alts): New.
8370         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
8371         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
8372         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
8373         (nmaddtf4_truncdf_alts): New.
8374         (recip_approx): Don't predicate.
8375
8376 2000-09-13  Richard Henderson  <rth@cygnus.com>
8377
8378         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
8379
8380 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8381
8382         * flags.h (flag_dump_rtl_in_asm): Declare.
8383         * toplev.c (flag_dump_rtl_in_asm): Define.
8384         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
8385         if -dP is specified.
8386         * rtl.h (print_rtx_head): Declare.
8387         * print-rtl.c (print_rtx_head): Define.
8388         (print_rtx): Print the string pointed to by print_rtx_head
8389         at beginning of each dump line.
8390         (print_rtl): Likewise.
8391         (print_rtl_single): Likewise.
8392         * final.c (final_scan_insn): Dump the insn in the assembly
8393         file for debugging.
8394         * gcc.1: Document -dP option.
8395         * invoke.texi (Debugging Options): Likewise.
8396
8397 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8398
8399         * md.texi (Machine Constraints): Document the 68HC11 constraints.
8400         * install.texi (Configurations): Document the 68HC11&68HC12 port.
8401         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
8402
8403 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
8404
8405         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
8406         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
8407         (*clrstrqi): Likewise.
8408         (xorhi3,xorsi3,absqi2): Likewise.
8409         (one_cmplhi2,one_cmplsi2): Likewise.
8410         (addsi3): Two stupid constraint alternatives removed.
8411         (extendhisi2): Use `movw' for enhanced avr cores.
8412         (zero_extendhisi2): Likewise.
8413
8414 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
8415
8416         * alias.c (find_base_term): Use frame_pointer_rtx
8417         when handling an ADDRESSOF.
8418
8419         * cse.c (canon_hash): Handle USE of BLKmode memory.
8420         (cse_insn): Outgoing arguments for a libcall don't
8421         affect any recorded expressions.
8422
8423 2000-09-12  Tom Tromey  <tromey@cygnus.com>
8424
8425         * configure, config.in: Rebuilt.
8426         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
8427
8428 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
8429
8430         * c-lex.c (lex_string): Use charwidth to compute bytemask.
8431         * expr.c (expand_expr): Don't optimize constant array references
8432         initialized with wide string constants.
8433
8434 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
8435
8436         * loop.c (note_set_pseudo_multiple_uses): Correct.
8437
8438 2000-09-12  Jim Wilson  <wilson@cygnus.com>
8439
8440         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
8441         else block, and X has side-effects, then fail.
8442
8443 2000-09-12  Greg McGary  <greg@mcgary.org>
8444
8445         * config/mips/mips-protos.h
8446         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
8447         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
8448         (PREDICATE_CODES): Add "trap_cmp_op".
8449         * config/mips/mips.c
8450         (trap_cmp_op, mips_gen_conditional_trap): New functions.
8451         * config/mips/mips.md (trap, conditional_trap): New patterns.
8452
8453 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8454
8455         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
8456         pointer.
8457
8458 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8459
8460         * builtins.c (built_in_decls): New array.
8461         (expand_builtin_fputs): New function.
8462         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
8463
8464         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
8465
8466         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
8467
8468         * tree.h (built_in_decls): New array.
8469
8470 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
8471
8472         * convex.md: Use "+" instead of "=" for outputs wrapped in a
8473         STRICT_LOW_PART.
8474         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
8475
8476 2000-09-12  Kazu Hirata  <kazu@hxi.com>
8477
8478         * haifa-sched.c: Fix formatting.
8479
8480         * genattrtab.c: Fix formatting.
8481
8482         * unroll.c: Fix formatting.
8483
8484 2000-09-12  Bruce Korb  <bkorb@gnu.org>
8485
8486         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
8487         remove obsolete code
8488         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
8489         * fixinc/fixincl.tpl: make non-exported arrays static scope
8490         * fixinc/fixincl.x: regenerate
8491         * fixinc/fixlib.h: Use PARAMS, not _P_
8492         * fixinc/fixtests.c: make a type for the test proc & use it
8493         * fixinc/server.h: Use PARAMS, not _P_
8494
8495 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8496
8497         * c-typeck.c (process_init_element): Avoid union init warnings on
8498         floating point zero.  Don't crash on unions containing structs.
8499
8500 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
8501
8502         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
8503         general_movsrc_operand, and remove CONST_INT from
8504         general_movdst_operand.
8505
8506 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
8507
8508         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
8509         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
8510         regs with a higher cost.
8511         (preferrable): Deal with cases where either cost or regcost is
8512         MAX_COST.
8513         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
8514         regcost values.
8515         (COSTS_N_INSNS): Move definition...
8516         * rtl.h: ...here.
8517         (MAX_COST): New macro.
8518         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
8519         constant.
8520
8521 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
8522
8523         * c-common.h (genrtl_clear_out_block): Remove.
8524         * c-semantics.c (genrtl_clear_out_block): Remove.
8525         (genrtl_while_stmt): Don't call it.
8526         (genrtl_for_stmt): Likewise.
8527
8528 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
8529
8530         * cppfiles.c: Move all default-#defines to top of file.
8531         (open_include_file): Replace by lookup_include_file.
8532         (read_with_read, read_file): Merged into read_include_file.
8533         (stack_include_file, purge_cache): New functions.
8534         (close_cached_fd): Delete.
8535         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
8536         Cache the in-memory buffer, not the file descriptor.
8537
8538         * cpphash.h (struct include_file): Add buffer, st, refcnt,
8539         mapped fields.
8540         (xcnew): New utility macro.
8541         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
8542         * cpplib.h (struct cpp_buffer): Remove mapped field.
8543
8544 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
8545
8546         * cpplex.c (parse_string): Accept backslash space newline as a
8547         line continuation.
8548         (lex_line): Likewise.
8549         (_cpp_get_token): Remove hard limit on macro nesting.
8550
8551 2000-09-12  Philipp Thomas  <pthomas@suse.de>
8552
8553         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
8554         * configure: Rebuilt.
8555
8556 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
8557
8558         * flow.c (split_block): Fix update of registers live at
8559         end of split block.
8560
8561 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8562
8563         * i386.md (add?i_3, add?i_5): New.
8564         (add?i_4): Rename from add?i_3;  Fix compare pattern.
8565         (sub?i_3, xor?i_3, ior?i_3): New.
8566
8567         * genrecog.c (write_tree): Output code to clear insn_extract cache.
8568         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
8569         instead of extract_insn and extract_constrain_insn_cache instead of
8570         extract_insn and constrain_operands.
8571         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
8572         New functions.
8573         (extract_insn): Clear which_alternative.
8574         (constrain_operands): Set which_alternative to -1 when failed.
8575         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
8576         Declare.
8577
8578 2000-09-11  Matthew Hiller  <hiller@redhat.com>
8579
8580         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
8581         on operand 0 to '+'.
8582         (movstricthi): Likewise.
8583
8584 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8585
8586         * loop.h (LOOP_IVS): New macro.
8587         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
8588         (struct loop_ivs): New.
8589         (struct loop_info): Add ivs field.
8590         (reg_iv_type, reg_iv_info): Delete prototype.
8591         (reg_biv_class, loop_iv_list): Likewise.
8592         * loop.c (record_biv, find_life_end): Pass loop argument.
8593         (reg_iv_type): Remove global array and use
8594         field in loop_regs structure within loop_ivs structure.
8595         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
8596         (first_increment_giv, last_increment_giv): Use entry in
8597         loop_ivs structure.
8598         (record_initial): Pass ivs pointer.
8599         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
8600
8601 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8602
8603         * loop.h (LOOP_REGS): New macro.
8604         (struct loop_regs): New.
8605         (struct loop_info): Add regs field.
8606         * loop.c (set_in_loop): Remove global array and store
8607         in loop_regs structure as part of loop_info structure.
8608         (n_times_set, may_not_optimize): Likewise.
8609         (reg_single_usage, moved_once): Likewise.
8610         (count_one_set): Add regs argument.
8611         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
8612         (set_pseudo_multiple_uses): Pass regs pointer.
8613
8614 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8615
8616         * unroll.c (iteration_info): Subsume into loop_iterations.
8617         * loop.h (loop_info): New field iv.
8618
8619 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8620
8621         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
8622         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
8623         (flow_loops_update): New prototype.
8624         (flow_loops_find): Add flags to prototype.
8625         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
8626         * flow.c (flow_loop_pre_header_scan): New.
8627         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
8628         (flow_loop_free): Free pre-header root and trace and exit dominators.
8629         (flow_loops_find): New argument flags.
8630         (flow_loops_update): New function.
8631         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
8632
8633 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
8634
8635         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
8636         * flow.c (split_block, update_bb_for_insn): New functions.
8637
8638 2000-09-11  Richard Henderson  <rth@cygnus.com>
8639
8640         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
8641
8642 2000-09-11  Richard Henderson  <rth@cygnus.com>
8643
8644         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
8645         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
8646         (ia64_override_options): Prevent optimizing division for both
8647         latency and throughput.
8648         (rtx_needs_barrier): Handle frcpa.
8649         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
8650         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
8651         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
8652         (TARGET_SWITCHES): Add -minline-divide-min-latency and
8653         -minline-divide-max-throughput.
8654         (PREDICATE_CODES): Update.
8655         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
8656         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
8657         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
8658         (extendsftf2): Likewise.
8659         (extenddftf2): Likewise.
8660         (fix_trunctfdi2_alts): New.
8661         (fixuns_trunctfdi2_alts): New.
8662         (madd*4): Rename from madd*3.
8663         (divsi3, modsi3, udivsi3, umodsi3): New.
8664         (divsi3_internal): New.
8665         (divdi3, moddi3, udivdi3, umoddi3): New.
8666         (divdi3_internal_lat, divdi3_internal_thr): New.
8667         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
8668         (recip_approx): New.
8669
8670 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
8671
8672         * print-rtl.c (debug_call_placeholder_verbose): New variable.
8673         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
8674         set.
8675         * integrate.c (copy_rtx_and_substitute): Don't share
8676         LEAF_REG_REMAPpable registers with the inlined function.  Don't
8677         share the function value with calling sequences.
8678
8679 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
8680
8681         * c-decl.c (do_case): Fix a typo.
8682
8683         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
8684         to a if the comparison is floating mode and not -ffast-math.
8685         * simplify-rtx.c (simplify_ternary_operation): Likewise.
8686
8687 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
8688
8689         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
8690         gen_ic_invalidate_line.
8691
8692 2000-09-11  Philip Blundell  <pb@futuretv.com>
8693
8694         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
8695
8696 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
8697
8698         * install.texi (LANGUAGES): Update to include new languages.
8699         * INSTALL: Rebuilt.
8700
8701 2000-09-11  DJ Delorie  <dj@redhat.com>
8702
8703         * gcc.c (main): Don't warn about unused -B prefixes
8704         (unused_prefix_warnings): remove
8705
8706 2000-09-11  Kazu Hirata  <kazu@hxi.com>
8707
8708         * final.c: Fix formatting.
8709
8710         * integrate.c: Fix formatting.
8711
8712 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
8713
8714         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
8715
8716 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
8717
8718         * reload.c (regno_clobbered_p): Fix thinko in previous change.
8719
8720 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8721
8722         * gcc.1: Document 68hc11 specific options.
8723
8724 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
8725
8726         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
8727         (TARGET_LONG_DOUBLE_128): Define.
8728         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
8729         (LONG_DOUBLE_TYPE_SIZE): Redefine.
8730         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8731         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
8732         of __LONG_DOUBLE_128__.
8733         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
8734         passed.
8735         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
8736         (CPP_SYSV_DEFAULT_SPEC): Define.
8737         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
8738         (INIT_TARGET_OPTABS): Define.
8739
8740         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
8741         (RS6000_UITRUNC): Likewise.
8742         (INIT_TARGET_OPTABS): New macro.
8743         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
8744         (trunc_defined): Delete.
8745         (output_prolog): Don't output .extern definitions for fp->int
8746         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
8747         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
8748         (trunc_defined): Delete.
8749         (RS6000_ITRUNC): Moved to aix.h.
8750         (RS6000_UITRUNC): Likewise.
8751         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
8752         only emit a libcall.
8753         (fixuns_truncdfsi2): Delete.
8754         (trunc_call): Delete.
8755         (trunc_call_rtl): Delete.
8756
8757 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8758
8759         * varasm.c (make_decl_rtl): Restore leading star on
8760         DECL_ASSEMBLER_NAME set for decls with an asmspec.
8761
8762 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8763
8764         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
8765         won't give a spurious error for '#pragma pack()'.  Simplify
8766         control flow for readability.  'reset' action is not necessary.
8767
8768 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
8769
8770         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
8771         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
8772         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
8773         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
8774
8775         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
8776         profile.c, sdbout.c, tradcif.y, tree.c:
8777         Include defaults.h if not already included.
8778         Don't define the above macros.
8779
8780         * Makefile.in: Update dependencies.
8781
8782 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
8783
8784         * c-common.h (add_stmt): Change prototype.
8785         (RECHAIN_STMTS): New macro.
8786         (CASE_LABEL_DECL): Likewise.
8787         (genrtl_case_label): Change prototype.
8788         (c_expand_start_case): Remove prototype.
8789         (build_case_label): Change prototype.
8790         (decl_constant_value): Declare.
8791         * c-common.c (check_case_value): Handle C++'s extensions to C
8792         semantics.
8793         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
8794         field.
8795         * c-parse.in (stmt): Adjust handling of return statements and case
8796         laels.
8797         * c-semantics.c (add_stmt): Return the new statement.
8798         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
8799         returned expression.  Directly generate RTL, rather than calling
8800         c_expand_return.
8801         (genrtl_switch_stmt): Don't call c_expand_start_case.
8802         (build_case_label): Take the LABEL_DECL as input, too.
8803         (genrtl_case_label): Just call add_case_node.
8804         (expand_stmt): Adjust calls to genrtl_return_stmt and
8805         genrtl_case_label.
8806         * c-tree.h (c_expand_start_case): Declare.
8807         * c-typeck.c (decl_constant_value): Give it external linkage.
8808         (c_expand_return): Don't call expand_return or expand_null_return;
8809         use genrtl_return_stmt instead.
8810         * stmt.c (struct nesting): Remove num_ranges field.
8811         (add_case_node): Give it external linkage.
8812         (expand_start_case): Don't set num_ranges.
8813         (expand_start_case_dummy): Don't clear it.
8814         (pushcase): Rely on add_case_node to handle `default' labels.
8815         (add_case_node): Handle `default' labels.
8816         * tree.c (tree_int_cst_compare): New function.
8817         * tree.h (tree_int_cst_compare): Declare.
8818         (add_case_node): Likewise.
8819
8820 2000-09-10  Richard Henderson  <rth@cygnus.com>
8821
8822         * c-parse.in: Revert last change.
8823         (init_reswords): Do not enter disabled keywords into the ridpointers
8824         table, modulo objc weirdness.
8825         (_yylex): Return the canonical spelling for a keyword.
8826
8827 2000-09-10  Philip Blundell  <philb@gnu.org>
8828
8829         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
8830         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
8831
8832 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
8833
8834         * alias.c (find_base_term): Handle ADDRESSOF.
8835         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
8836
8837 2000-09-10  Denis Chertykov  <denisc@overta.ru>
8838
8839         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
8840         outputting templates with many lines.
8841
8842 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8843
8844         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
8845         to decide whether 64-bit support must be generated.
8846
8847 2000-09-10  Richard Henderson  <rth@cygnus.com>
8848
8849         * c-parse.in (asm patterns): Fix volatile check.
8850
8851 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8852
8853         * cppmacro.c (check_trad_stringification): New function.
8854         (save_expansion): If -Wtraditional, warn about stringification of
8855         macro arguments.
8856
8857 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
8858
8859         * loop.h (struct loop_mem_info): Move from loop.c
8860         (struct loop_info): Add fields store_mems, mems, mems_idx,
8861         mems_allocated, unknown_address_altered,
8862         unknown_constant_address_altered, num_mem_sets, and
8863         first_loop_store_insn.
8864
8865         * loop.c (loop_store_mems): Replace with field in loop_info struct.
8866         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
8867         (unknown_address_altered, unknown_constant_address_altered): Likewise.
8868         (num_mem_sets): Likewise.
8869         (replace_loop_mems, replace_loop_regs): New.
8870         (struct loop_replace_args): New.
8871         (load_mems): Use replace_loop_mems.
8872         (try_copy_prop): Use replace_loop_regs.
8873         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
8874
8875 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8876
8877         * configure.in: Recognize m6811-elf and m6812-elf.
8878         * configure: Regenerate.
8879
8880 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
8881
8882         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
8883         to operand_subword.
8884
8885 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
8886
8887         * loop.c (struct movables): New.
8888         (num_movables): Move into struct movables.
8889         (the_movables): Change type to struct movables.
8890         (ignore_some_movables): Change struct movable arg to struct movables.
8891         (force_movables, combine_movables, regs_match_p): Likewise.
8892         (rtx_equal_for_loop_p, move_movables): Likewise.
8893         (scan_loop): Change movables to be of type struct movables.
8894         Replace last_movable with field in movables structure.
8895
8896 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
8897
8898         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
8899         (init_pragma): Avoid warning if pfile happens to be unused.
8900         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
8901         define init_pragma to nothing.  Always prototype
8902         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
8903
8904         * c-lex.c (process_directive): Always call dispatch_pragma.
8905         Initialize entering_c_header to 0.
8906
8907 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8908
8909         * config/m68hc11/m68hc11.md: New file, machine description for
8910         68HC11 & 68HC12.
8911         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
8912         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
8913         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
8914         * config/m68hc11/m68hc11-protos.h: New file.
8915         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
8916         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
8917         * config/m68hc11/xm-m68hc11.h: New file, target defs.
8918         * config/m68hc11/larith.asm: New file, libgcc routines.
8919
8920 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8921
8922         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
8923         (FPBIT_FUNCS): Add _usi_to_sf.
8924         * config/fp-bit.c (usi_to_float): New function.
8925         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
8926         (usi_to_float): Add appropriate #define.
8927
8928 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
8929
8930         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
8931         new functions.
8932         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
8933         * i386.md (attr "type"): Add sse and mmx types.
8934         (attr "memory"): Handle them without a crash.
8935         (movsi_1, movdi_2): Allow MMX regs.
8936         (movdi splits): Don't split moves involving MMX regs.
8937         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
8938         (movv4sf_internal, movv4si_internal, movv8qi_internal,
8939         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
8940         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
8941         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
8942         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
8943         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
8944         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
8945         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
8946         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
8947         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
8948         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
8949         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
8950         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
8951         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
8952         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
8953         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
8954         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
8955         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
8956         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
8957         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
8958         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
8959         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
8960         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
8961         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
8962         mmx_clrdi): New patterns.
8963
8964 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
8965
8966         * arm.c: Don't include tm.h directly.
8967
8968 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8969
8970         * recog.c (validate_replace_rtx_1): Fix confusion about equality
8971         testing; simplify subregs of constants and nested subregs.
8972
8973 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
8974
8975         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
8976
8977 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
8978
8979         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
8980         VEC_CONCAT.
8981         * rtl.texi (description of USE): Add note about possible pitfalls
8982         with this rtx.
8983         From Richard Henderson:
8984         * reload1.c (choose_reload_regs): Compute need_mode properly.
8985
8986 2000-09-07  Richard Henderson  <rth@cygnus.com>
8987
8988         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
8989         (__modsi3, __umodsi3): Likewise.
8990         (__udivsi3): Likewise.  Normalize the TFmode values.
8991
8992 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
8993
8994         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
8995         with a prototype.
8996         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
8997         warning.
8998
8999 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
9000
9001         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
9002         (cmpeqdi_t): Add output pattern.
9003         (cmpeqdi_t+1): Don't split when not optimizing.
9004         Restore proper splitting operation.
9005
9006 2000-09-07  Richard Henderson  <rth@cygnus.com>
9007
9008         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
9009         do not call dispatch_pragma.
9010
9011 2000-09-07  Jim Wilson  <wilson@cygnus.com>
9012
9013         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
9014         to CLASS_CANNOT_CHANGE_MODE.
9015         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
9016         mode classes are different.
9017
9018 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
9019
9020         * cpplib.h (struct cpp_options): Add user_label_prefix member,
9021         left out of commit which removed cppulp.c.
9022
9023 2000-09-07  Richard Henderson  <rth@cygnus.com>
9024
9025         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
9026         after switch for CASE_DROPS_THROUGH.
9027
9028 2000-09-07  Richard Henderson  <rth@cygnus.com>
9029
9030         * loop.c (strength_reduce): Call check_ext_dependant_givs.
9031         Properly extend the biv initial value for the giv.
9032         (record_biv): Zero ext_dependant.
9033         (record_giv): New argument ext_val.  Update all callers.
9034         (general_induction_var): Likewise.
9035         (consec_sets_giv): Likewise.
9036         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
9037         a sign-extend, zero-extend, or truncate.
9038         (combine_givs_p): Make sure modes are compatible.
9039         (check_ext_dependant_givs): New.
9040         (extend_value_for_giv): New.
9041         * loop.h (struct induction): Add ext_dependant.
9042         * unroll.c (iteration_info): Extend the biv initial value for the giv.
9043         (find_splittable_givs): Likewise.
9044         (final_giv_value): Likewise.
9045
9046 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
9047
9048         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
9049         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
9050         definitions from cpplib.h.
9051         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
9052         already done it.
9053         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
9054         documentation for REGISTER_TARGET_PRAGMAS.
9055
9056         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
9057         default-pragma callback to implement -Wunknown-pragmas if
9058         USE_CPPLIB.
9059         * c-parse.in: Move all includes to top of file.
9060         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
9061         tm_p.h.
9062         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
9063         warning.
9064         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
9065
9066         * arm.h, arm-protos.h, arm.c,
9067           c4x.h, c4x-protos.h, c4x.c,
9068           h8300.h, h8300-protos.h, h8300.c,
9069           i370.h, i370-protos.h, i370.c,
9070           i960.h, i960-protos.h, i960.c,
9071           sh.h, sh-protos.h, sh.c,
9072           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
9073         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
9074
9075         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
9076         multiple include guard.
9077         * i370.md (untyped_call): Use GEN_CALL.
9078         (umodsi3): Remove unused variable.
9079         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
9080         * v850.c (output_move_single, output_move_double): Constify
9081         return value.
9082         (print_operand): Constify a char *.
9083         * v850.h (struct small_memory_info): Constify name member.
9084
9085 2000-09-07  Kazu Hirata  <kazu@hxi.com>
9086
9087         * config/h8300.h: Fix comment typos.
9088         * config/h8300/h8300.md: Likewise.
9089         * config/h8300/lib1funcs.asm: Likewise.
9090
9091 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
9092
9093         * Makefile.in: Remove references to cppulp.{c,o}.
9094         * cppinit.c (initialize_builtins, cpp_start_read,
9095         cpp_handle_option): Update to use cpp_options structure.
9096         * cppulp.c: Remove.
9097
9098 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
9099
9100         * c-common.c (time_char_table): Allow %#b and %#h.
9101
9102 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9103
9104         * reorg.c (find_end_label): If the basic block reorder pass moves the
9105         return insn to some other place try to locate it again and put our
9106         end_of_function_label there.
9107         * reorg.c (relax_delay_slots): Check if find_end_label created a
9108         new label that invalidates the current optimazation.
9109
9110 2000-09-07  Catherine Moore  <clm@redhat.com>
9111
9112         * unroll.c (unroll_loop): Check for unconditional jumps
9113         to loop continuation.  Delete if n_iterations is 1.
9114         (ujump_to_loop_cont): New routine.
9115
9116 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
9117
9118         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
9119         MODE_VECTOR_FLOAT.
9120         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
9121         to handle multiword modes correctly.  All callers and the declaration
9122         changed.
9123
9124 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
9125
9126         * c-common.h (prep_stmt): Declare.
9127         (lang_expand_stmt): Likewise.
9128         * c-decl.c (lang_expand_stmt): Remove.
9129         * c-semantics.c (lang_expand_stmt): Define.
9130         (prep_stmt): New function.
9131         (expand_stmt): Handle common statement types here.
9132
9133 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
9134
9135         * configure.in (sh-*-linux*): Added.
9136         * configure: Rebuilt.
9137         * config/sh/t-linux: New file.
9138         * config/sh/sh.h (USERMODE_BIT): Define.
9139         (TARGET_USERMODE): Likewise.
9140         (TARGET_SWITCHES): New switches for the bits above.
9141         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
9142         * config/sh/linux.h: New file.
9143         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
9144         underscore on linux.
9145         (L_sdivsi3, L_udivsi3): Define for linux.
9146         (L_ic_invalidate): Define.
9147         * invoke.texi (SH Options): Document -musermode.
9148
9149 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
9150
9151         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
9152         CSE unless generating PIC.
9153
9154         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
9155         the PIC register.
9156
9157 2000-09-06  H.J. Lu  (hjl@gnu.org)
9158
9159         * Makefile.in (clean_s1): Depend on stage_b.
9160         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
9161         stage2. They are used for "make compare".
9162
9163 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
9164
9165         Move statement-tree facilities from C++ to C front-end.
9166         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
9167         (void_zero_node): New macro.
9168         (struct stmt_tree_s): New type.
9169         (stmt_tree): New typedef.
9170         (struct language_function): New type.
9171         (last_tree): New macro.
9172         (last_expr_type): Likewise.
9173         (walk_tree_fn): New typedef.
9174         (current_stmt_tree): New function.
9175         (begin_stmt_tree): Likewise.
9176         (add_stmt): Likewise.
9177         (finish_stmt_tree): Likewise.
9178         (statement_code_p): Likewise.
9179         (lang_statement_code_p): New variable.
9180         (walk_stmt_tree): New function.
9181         (STMT_IS_FULL_EXPR_P): New macro.
9182         * c-common.c (lang_statement_code_p): New variable.
9183         (c_common_nodes_and_builtins): Initialize void_zero_node.
9184         (statement_code_p): New function.
9185         (walk_stmt_tree): Likewise.
9186         * c-decl.c (language_function): Rename to ...
9187         (c_language_function): ... this.  Include language_function.
9188         (push_c_function_context): Adjust accordingly.
9189         (pop_c_function_context): Likewise.
9190         (mark_c_function_context): Likewise.
9191         (current_stmt_tree): Define.
9192         * c-semantics.c (begin_stmt_tree): New function.
9193         (add_stmt): Likewise.
9194         (prune_unused_decls): Likewise.
9195         (finish_stmt_tree): Likewise.
9196
9197 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9198
9199         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
9200
9201 2000-09-06  Kazu Hirata  <kazu@hxi.com>
9202
9203         * calls.c: Fix formatting.
9204
9205 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
9206
9207         * config/i386/i386.h (ADDRESS_COST): Fix typo.
9208
9209 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
9210
9211         Integrated preprocessor.
9212
9213         * Makefile.in: Remove all references to c-parse.gperf,
9214         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
9215         generating c-parse.c.  Update dependencies.
9216         * c-parse.gperf, c-gperf.h: Delete.
9217
9218         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
9219         yy_lim, or yy_get_token.  Don't define get_directive_line if
9220         USE_CPPLIB.
9221         * c-common.h: Add multiple include guard.  Define RID values
9222         for every keyword in C, C++, and Objective C.  Put all the
9223         modifiers first.
9224         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
9225         * c-decl.c (c_decode_option): Handle -lang-objc here.
9226         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
9227         (grokdeclarator): Adjust for new RID scheme.
9228         (extract_interface_info): New stub.
9229         * c-lang.c: Don't declare yy_cur or parse_options.
9230         (lang_init_options): Call cpp_init.  Don't call
9231         cpp_options_init.
9232         (lang_init): Don't call check_newline if USE_CPPLIB.
9233
9234         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
9235         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
9236         rendered unnecessary by new architecture.  Move routines not
9237         shared with C++ to c-parse.in.  Maintain a local idea of the
9238         line number.    Handle C++ as well as C.
9239         [USE_CPPLIB]: Declare and register callbacks for #ident and
9240         for entering/leaving files.
9241         (init_c_lex, c_lex): Are now the entry points to this file.
9242         (check_newline): Break out directive handling to
9243         process_directive.
9244         (read_ucs, is_extended_char, utf8_extend_token): Moved here
9245         from C++ front end.
9246         (readescape, parse_float): Overhaul.
9247         (lex_number, lex_string, lex_charconst): Break out of c_lex
9248         (n'ee yylex).
9249         (get_fileinfo, update_header_times, dump_one_header,
9250         dump_time_statistics): New and/or moved here from C++.
9251         Support per-file data needed by C++ and per-header timing
9252         statistics (C++ only, at the moment).
9253         * c-lex.h: Update prototypes.  Add multiple include guard.
9254         * c-tree.h (struct lang_identifier): Add rid_code field.
9255         (C_IS_RESERVED_WORD, C_RID_CODE): New.
9256
9257         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
9258         reinit_parse_for_function and/or position_after_white_space.
9259         (save_filename, save_lineno): Look ahead before saving.
9260         (label -> identifier ':'): Save file and line before shifting ':'.
9261         (reservedwords): No need to call get_identifier.
9262         (init_parse, finish_parse, yyerror, yylex, yyprint,
9263         make_pointer_declarator): Are now here for C/ObjC.
9264         (rid_to_yy): Conversion table from RID constants to Yacc codes.
9265
9266         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
9267         #pragma registry.  Provide dummy implementation of that
9268         interface if !USE_CPPLIB.
9269         * c-pragma.h: Update to match.
9270
9271         * flags.h: Add multiple include guard.
9272         (flag_detailed_statistics): Moved here from C++.
9273         * toplev.c: Define flag_detailed_statistics.
9274
9275         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
9276         #if USE_CPPLIB.
9277         * timevar.def (TV_CPP, TV_LEX): New.
9278         * timevar.h: Add multiple include guard.
9279
9280         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
9281         #if USE_CPPLIB.
9282         * objc/objc-act.c: Don't mention yy_cur or parse_options.
9283         Initialize cpplib properly.  Force lineno to 0 after first
9284         call to check_newline.  Don't handle -lang-objc here.
9285         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
9286
9287 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
9288
9289         * rs6000.md: Correct function unit definitions for cr_logical and
9290         mtjmpr.
9291         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
9292         and use portable method for >=0 and floating point >=.  Remove
9293         associated matchers.
9294
9295 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
9296
9297         * extend.texi: Mark named return value extension as deprecated.
9298
9299 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
9300
9301         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
9302         the result.
9303
9304 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
9305
9306         * toplev.c (display_help): Fix thinko in documentation.
9307
9308         * diagnostic.h (output_buffer::indent_skip): New fields.
9309         (output_indentation): New macro.
9310
9311         * diagnostic.c (output_indent): New function.
9312         (output_set_prefix, clear_diagnostic_info): Use.
9313         (output_emit_prefix): Predict future indentation.
9314
9315 2000-09-06  DJ Delorie  <dj@redhat.com>
9316
9317         * Makefile.in (stage_*): add more dependencies to ensure parallel
9318         builds build correctly
9319
9320 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
9321
9322         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
9323         not bootstrap-lean_f.
9324
9325 2000-09-06  Andreas Schwab  <schwab@suse.de>
9326
9327         * mklibgcc.in: Emit rule for libgcc-stage-start.
9328         * Makefile.in (stage1-start, stage2-start, stage3-start,
9329         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
9330
9331 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
9332
9333         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
9334         (update_equiv_regs): Likewise, except for the mn10200 kludge.
9335         (combine_regs): Likewise.
9336
9337         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
9338         * cse.c: Include "basic-block.h".
9339         (struct table_elt): New field REGCOST.
9340         (CHEAP_REG): Delete macro.
9341         (COST): Return 0 for REGs.
9342         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
9343         (notreg_cost): Return 0 for appropriate SUBREGs.
9344         (COSTS_N_INSNS): Return N * 2.
9345         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
9346         SUBREGs.
9347         (CHEAPER): Use new function preferrable.
9348         (insert): Initialize REGCOST member.
9349         (find_best_addr): Use approx_reg_cost for estimation of register
9350         usage.
9351         (cse_insn): Likewise.
9352         * loop.c (iv_add_mult_cost): New function.
9353         (add_cost, shift_cost, mult_cost): Delete variables.
9354         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
9355         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
9356         Make code that detects autoinc opportunities slightly less optimistic.
9357         (simplify_giv_expr): If expression contains other reg that is also a
9358         giv, only increment benefit if this is the only use of that reg.
9359         (consec_sets_giv): Take that change into account.
9360         (combine_givs): Slightly more verbose output.
9361
9362         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
9363         not the cost of an equivalent shift.
9364         * sh-protos.h (addsubcosts): Declare.
9365         * sh.c (addsubcosts): New function.
9366         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
9367         (RTX_COSTS): Tweak.  Use addsubcosts.
9368         (ADDRESS_COST): Return higher cost for reg+reg addressing.
9369
9370 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
9371
9372         * config/rs6000/rs6000.c (validate_condition_mode): New function.
9373         (branch_comparison_operator): Call validate_condition_mode to
9374         abort rather than returning 0.
9375         (branch_positive_comparison_operator): New function.
9376         (scc_comparison_operator): Call validate_condition_mode to abort
9377         rather than returning 0.
9378         (ccr_bit): Call validate_condition_mode.  Update for
9379         new branch scheme.
9380         (print_operand): Delete %C modifier.  Update %E case
9381         to use EQ bit not SO bit.
9382         (rs6000_reverse_condition): New function.
9383         (rs6000_generate_compare): New function.
9384         (rs6000_emit_sCOND): New function.
9385         (rs6000_emit_cbranch): New function.
9386         (output_cbranch): The length of a long branch insn is
9387         now only 8 bytes.  Add validate_condition_mode.  Use
9388         rs6000_reverse_condition.  Remove cror generation.
9389
9390         * config/rs6000/rs6000.h: Update comments.
9391         (PREDICATE_CODES): Add new predicate.  Update codes used
9392         by branch_comparison_operator and scc_comparison_operator.
9393         * config/rs6000/rs6000-protos.h: Add prototypes for
9394         new external functions.
9395         * config/rs6000/rs6000.md: Add new scheduling parameters
9396         for cr_logical instructions.  Change length of branch
9397         instructions.
9398         (bCOND patterns): Call rs6000_emit_cbranch.
9399         (sCOND patterns): Call rs6000_emit_sCOND.
9400         (branch patterns): Change lengths to 4.
9401         (cr logical patterns): New.
9402
9403 2000-09-06  Richard Henderson  <rth@cygnus.com>
9404
9405         * config/i386/i386.md (call_pop): Fix test for setting
9406         current_function_uses_pic_offset_table.
9407         (call, call_value_pop, call_value): Likewise.
9408
9409 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
9410
9411         * timevar.c (timevar_add): Delete.
9412         (timevar_get): Also count time since the selected timer was
9413         last updated.  Do not examine the timevar stack if the
9414         selected timer is standalone.
9415
9416 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9417
9418         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
9419
9420 2000-09-05  Jason Merrill  <jason@redhat.com>
9421
9422         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
9423         for 'extern' arrays.
9424
9425 2000-09-05  Richard Henderson  <rth@cygnus.com>
9426
9427         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
9428         Eliminate final copy from non-trapping case.
9429         (__divdf3, __divsf3): Likewise.
9430
9431 2000-09-05  Richard Henderson  <rth@cygnus.com>
9432
9433         * config/ia64/ia64.md (mulhi3): Fix typo last change.
9434         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
9435
9436 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
9437
9438         * Makefile.in: Restructure bootstrap stages to allow clean
9439         restart after failure.
9440
9441 2000-09-05  Richard Henderson  <rth@cygnus.com>
9442
9443         * config/ia64.md (movsi and movdi patterns): Allow moves from
9444         8-bit constants to AR registers.
9445
9446 2000-09-05  Richard Henderson  <rth@cygnus.com>
9447
9448         * config/ia64/ia64.md (mulhi3): New.
9449
9450 2000-09-05  Richard Henderson  <rth@cygnus.com>
9451
9452         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
9453         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
9454         Optimization Guide, minimum latency alternative.
9455         (__moddi3, __udivdi3, __umoddi3): Likewise.
9456         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
9457
9458 2000-09-05  Bruce Korb  <bkorb@gnu.org>
9459
9460         * fixinc/fixincl.c (load_file): always read header files
9461         with sizes that are a multiple of the page size.
9462         & use libiberty's getpagesize for determining that.
9463
9464 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
9465
9466         * gcse.c (hash_string_1): Add prototype.
9467         * cse.c (canon_hash_string): Likewise.
9468
9469 2000-09-04  Craig Newell  <CraigN@ieee.org>
9470
9471         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
9472
9473 2000-09-04  Andreas Schwab  <schwab@suse.de>
9474
9475         * Makefile.in (STAGESTUFF): Remove libgcc.
9476         (stage1-start, stage2-start, stage3-start): Copy the contents of
9477         the libgcc directory explicitly.
9478         (mostlyclean): Clean libgcc.
9479
9480 2000-09-04  Andrew Haley  <aph@redhat.com>
9481
9482         * dwarf2out.c: (stack_adjust_offset): New prototype.
9483
9484 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
9485
9486         * combine.c (make_extraction): Fix rtx_cost comparison to
9487         match the comment.
9488
9489 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
9490
9491         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
9492         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
9493         Add '*' to insn pattern name.
9494
9495 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
9496
9497         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
9498         use posn - 1 to index into tokens array.
9499         (maybe_paste_with_next): Adjust caller.
9500
9501 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
9502
9503         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
9504
9505         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
9506         (REGNO_REG_CLASS): Use symbolic register
9507         names.
9508
9509 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
9510
9511         * arm.c (final_prescan_insn): If the form of a jump insn isn't
9512         recognized, don't try to conditionally execute it.
9513
9514 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
9515
9516         * config/avr/avr.md ("*tablejump_lib"): New pattern.
9517         (call_value_insn): Right length claculation.
9518         (call_insn): Likewise.
9519
9520 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
9521
9522         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
9523         gas_output_limited_string, gas_output_ascii, output_movqi,
9524         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
9525         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
9526         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
9527         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
9528         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
9529         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
9530         Add "const" as needed to remove warnings.
9531
9532         * config/avr/avr.c (avr_override_options, avr_init_once,
9533         function_prologue, function_epilogue, frame_pointer_required_p,
9534         class_likely_spilled_p, order_regs_for_local_alloc,
9535         avr_address_cost, avr_ret_register): Use K&R style arguments.
9536         (initial_elimination_offset, gas_output_limited_string):
9537         Remove ATTRIBUTE_UNUSED from the used arguments.
9538         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
9539         Use local variables src, dest, base to access operands[].
9540         Rename reg_dest to reg_src if that's what it is.
9541         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
9542         constants to LD_REGS if reg_was_0.
9543         (output_reload_insisf): Change arg 3 to insn length and set it.
9544         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
9545         access to 16-bit I/O register pairs.
9546         (avr_address_cost): Lower cost for the above case.
9547         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
9548         may be clobbered, also for LD_REGS.
9549         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
9550         with a CONST_INT.
9551
9552         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
9553
9554         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
9555         macro to test_hard_reg_class function.
9556         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
9557         for loading immediate constants to LD_REGS.
9558         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
9559
9560
9561 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
9562
9563         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
9564         * config/avr/libgcc.S: Lost part of the previous patch.
9565
9566 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9567
9568         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
9569         object before calling pthread_mutex_init.
9570
9571 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
9572
9573         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
9574         config/sh/crtn.asm: New files.
9575         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
9576         (crt1.o, crti.o, crtn.o): New targets.
9577         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
9578         sh/t-elf.
9579         * configure: Rebuilt.
9580         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
9581         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
9582         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
9583         Undefine for config/elfos.h to redefine.
9584         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
9585
9586 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
9587
9588         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
9589         legitimize_pic_address, output_pic_addr_const): Declare.
9590         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
9591         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
9592         (TARGET_SWITCHES): New switch -mprefergot.
9593         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
9594         (PIC_OFFSET_TABLE_REGNUM): Define.
9595         (GOT_SYMBOL_TABLE): Likewise.
9596         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
9597         (ENCODE_SECTION_INFO): Define.
9598         (FINALIZE_PIC): New macros.
9599         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
9600         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
9601         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
9602         (prepare_move_operands): Call emit_pic_move or
9603         emit_pic_const_move if appropriate.
9604         (output_far_jump): For PIC, use braf and output long offset.
9605         (machine_dependent_reorg):
9606         (sh_expand_prologue): Save and initialize the PIC register.
9607         (sh_expand_epilogue): Restore it.
9608         (initial_elimination_offset): Account for it.
9609         (nonpic_symbol_mentioned_p): New function.
9610         (legitimize_pic_address): Likewise.
9611         (output_pic_addr_const): Likewise.
9612         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
9613         (call, call_value): Use them.
9614         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
9615         symPLT_label2reg): New expands.
9616         * invoke.texi (SH Options): Document -mprefergot.
9617
9618 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
9619
9620         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
9621         * gcse.c (hash_string_1): New function.
9622         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
9623         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
9624         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
9625         (canon_hash_string): New function.
9626         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
9627         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
9628         (fold_rtx): Use ASM_OPERANDS accessor macros.
9629         * emit-rtl.c (copy_insn_1): Likewise.
9630         * integrate.c (copy_rtx_and_substitute): Likewise.
9631         * stmt.c (expand_asm_operands): Likewise.  Give an
9632         ASM_OPERANDS rtx the mode of the output reg being set from it.
9633
9634 2000-09-01  Fred Fish  <fnf@be.com>
9635
9636         * fix-header.c (write_rbrac): Add putc and getc to list of
9637         functions to protect against prior definition as a macro.
9638
9639 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
9640
9641         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
9642         (c_size_type_node): Define.
9643         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
9644         * c-common.c (enum format_lengths, enum format_std_version,
9645         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
9646         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
9647         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
9648         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
9649         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
9650         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
9651         format_types): Define.
9652         (format_char_info, print_char_table, scan_char_table,
9653         time_char_table): Rearrange for new organization of information
9654         about format length modifiers and standard versions.
9655         (T_ST): Redefine to use c_size_type_node.
9656         (check_format_info): Obtain information about length modifiers and
9657         standard versions from tables.  Adjust warning message wordings.
9658         Use the name from the user's program for `ll' and `hh' length
9659         modifiers in warning messages.  Use more informative names for
9660         wanted types where available (for wchar_t, wint_t, size_t, signed
9661         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
9662
9663 2000-09-01  Jim Wilson  <wilson@cygnus.com>
9664
9665         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
9666         * combine.c (distribute_notes): Handle REG_NORETURN.
9667         * rtl.c (reg_note_name): Add REG_NORETURN.
9668         * rtl.h (enum reg_note): Likewise.
9669
9670         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
9671         ia64_file_start.
9672         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
9673         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
9674         (emit_predicate_relation_info): Handle conditional calls with
9675         REG_NORETURN.
9676         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
9677         instead of ia64_file_start.
9678         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
9679         * config/ia64/ia64.md (safe_across_calls_all,
9680         save_across_calls_normal): New patterns.
9681
9682         * loop.c (check_final_value): Check for biv use before checking for
9683         giv use.  Check for both biv and giv uses.  Always set last_giv_use
9684         if there is a giv use.
9685
9686 2000-09-01  Richard Henderson  <rth@cygnus.com>
9687
9688         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
9689         (madddi3): Likewise.
9690         (maddsi3): New.
9691
9692 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9693
9694         * expr.c (clear_storage): Don't use emit_move_insn unless
9695         either BLKmode or proper size.
9696         (store_constructor): Don't call clear_storage if REG of wrong size.
9697
9698         * flow.c (init_propagate_block_info): Don't mark frame dead at end
9699         of function if returns wiht stack pointer depressed.
9700
9701 2000-09-01  Andrew Haley  <aph@redhat.com>
9702
9703         * dwarf2out.c (stack_adjust_offset): New function.
9704         (dwarf2out_stack_adjust): Break out stack adjust logic into
9705         new stack_adjust_offset function.  Look inside parallels and
9706         sequences for stack adjustments.
9707
9708 2000-08-31  Jeff Law <law@cygnus.com>
9709
9710         * arm.md: Use no_new_pseudos to determine when it is safe
9711         to create new pseudo registers.
9712
9713         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
9714         when we can safely allocate new registers.
9715
9716 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
9717
9718         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
9719         so that CONCATs are not generated for ASMs.
9720         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
9721         not generating_concat_p.
9722         * function.c (pop_function_context_from): Reset
9723         generating_concat_p.
9724         (prepare_function_start): Likewise.
9725         * rtl.c (generating_concat_p): Define.
9726         * rtl.h (generating_concat_p): Declare.
9727         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
9728
9729 2000-08-22  Philipp Thomas  <pthomas@suse.de>
9730             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
9731
9732         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
9733         for translation.
9734
9735 2000-08-30  Greg McGary  <greg@mcgary.org>
9736
9737         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
9738         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
9739         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
9740
9741 2000-08-30  Greg McGary  <greg@mcgary.org>
9742
9743         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
9744         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
9745         (TREE_INT_CST): New macro.
9746         * varasm.c (const_hash, compare_constant_1, record_constant_1):
9747         Use new macro TREE_INT_CST.
9748
9749 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
9750
9751         * contrib.texi: Add self.
9752
9753 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
9754
9755         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
9756         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
9757         and labels.
9758
9759 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9760
9761         * fixinc/gnu-regex.c: Don't define `const'.
9762
9763 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9764
9765         * expr.c (store_constructor): Allow variable bounds of array type.
9766         (expand_expr): Don't blow up if type is ERROR_MARK.
9767         * varasm.c (output_constructor): Don't access lower bound of array
9768         type unless need it if index is supplied (so it can be a variable
9769         if no index is supplied).
9770         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
9771         Other minor cleanups.
9772
9773 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9774
9775         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
9776         for compilations in stage 1 and subsequent stages, respectively.
9777         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
9778         * configure: Rebuilt.
9779         * x-vax, x-vax-gcc: Deleted.
9780
9781 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9782
9783         * c-common.c (declare_function_name): Use func_id_node,
9784         function_id_node, and pretty_function_id_node.  Do not make
9785         __func__ visible at file scope.
9786         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
9787         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
9788         (function_id_node, pretty_function_id_node, func_id_node): New
9789         macros.
9790         * c-decl.c (init_decl_processing): Initialize function_id_node,
9791         pretty_function_id_node, and func_id_node.
9792         (c_make_fname_decl): Correct comment.
9793
9794         * tree.h (struct tree_identifier): Constify pointer member.
9795
9796         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
9797         * c-pragma.h (struct weak_syms): Constify name and value members.
9798         (add_weak): Constify arguments.
9799
9800         * calls.c (special_function_p): Constify a char *.
9801         (expand_call): Remove variable which is initialized and then
9802         never used.
9803         * dependence.c (struct def_use, struct induction, struct subscript):
9804         Constify 'variable' member.
9805         (get_low_bound, have_induction_variable): Constify char * argument.
9806         (find_induction_variable): Add braces to avoid dangling else.
9807         (classify_dependence): Constify char * arrays.
9808         * profile.c (output_func_start_profiler): Constify a char *.
9809         * stor-layout.c (finalize_record_size): Constify a char *.
9810         * tree.c (is_attribute_p): Constify a char *.
9811         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
9812
9813         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
9814         for comprehensibility.  Do not call get_identifier if we did
9815         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
9816         create temporary string constants, not ggc_alloc_string.  No
9817         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
9818         char * to hold IDENTIFIER_POINTERs.
9819
9820 2000-08-29  Richard Henderson  <rth@cygnus.com>
9821
9822         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
9823         for the inputs.
9824
9825 2000-08-29  Richard Henderson  <rth@cygnus.com>
9826
9827         * reload.c (push_secondary_reload): Allow class == reload_class
9828         if we're using a reload_in/out pattern.
9829
9830         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
9831         the half that does not conflict with the reload register.
9832         (reload_outti): Likewise.
9833
9834 2000-08-29  Kazu Hirata  <kazu@hxi.com>
9835
9836         * reload.c: Fix formatting.
9837
9838         * stmt.c: Fix formatting.
9839
9840         * gcc.c: Fix formatting.
9841
9842 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9843
9844         * flags.h (time_report, mem_report): New global flags.
9845         * toplev.c: Define time_report and mem_report.
9846         (f_options): Add -ftime-report and -fmem-report.
9847         (compile_file): Turn on time_report if quiet_flag is off.
9848         Call ggc_print_statistics at very end if mem_report is on.
9849         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
9850
9851         * ggc-common.c (ggc_print_statistics): Rename to
9852         ggc_print_common_statistics; all callers changed.  Scale
9853         quantities above 10K to kilobytes and above 10M to megabytes.
9854         * ggc-page.c (ggc_page_print_statistics): Rename to
9855         ggc_print_statistics.  Report memory consumed by internal data
9856         structures for each allocation bucket.  Scale quantities above
9857         10K to kilobytes and above 10M to megabytes.
9858         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
9859         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
9860         Define tally_leaves always.
9861         (ggc_print_statistics): New function.
9862         * ggc.h: Adjust for renamed functions.
9863
9864 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
9865
9866         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
9867         output_movsisf instead of which_alternative.
9868
9869         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
9870
9871 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
9872
9873         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
9874         (avr_progmem_p): New prototype.
9875         (output_movsisf): Prototype declaration changed.
9876         (output_movqi): New prototype.
9877         (output_movhi): New prototype.
9878         (call_insn_operand): Likewise.
9879         (final_prescan_insn): Likewise.
9880         (avr_simplify_comparision_p): Likewise.
9881         (avr_normalize_condition): Likewise.
9882         (compare_eq_p): Likewise.
9883         (out_shift_with_cnt): Likewise.
9884         (const_int_pow2_p): Likewise.
9885         (output_reload_inhi): Prototype declaration changed.
9886
9887         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
9888         (ldi_reg_rtx): New. rtx for r31.
9889         (avr_init_stack): Initialize as "__stack".
9890         (function_prologue): Use it.
9891         Replace all TARGET_ENHANCED with AVR_ENHANCED.
9892         (avr_mcu_name): Initialize as "avr2".
9893         (avr_enhanced_p, avr_mega_p): New variables.
9894         (mcu_types, avr_override_options): Handle all known MCU types.
9895         Also handle avr1 (only preprocess, assemble and link).
9896         (print_operand): Using of `%K' in output template removed.
9897         (out_movqi_r_mr): Optimized.
9898         (out_movhi_r_mr): Likewise.
9899         (output_movqi): New function.
9900         (output_movhi): Likewise.
9901         (out_movsi_r_mr): Optimized.
9902         (output_movsisf): Compute insn length for `adjust_insn_length'
9903         (out_movqi_mr_r): Optimized.
9904         (out_movhi_mr_r): Optimized.
9905         (adjust_insn_length): Use output_movsisf, output_movqi,
9906         output_movhi for insn length adjusting.
9907         (reg_unused_after): Use dead_or_set_p.
9908         (preferred_reload_class): Now havn't any restriction.
9909         (reg_was_0): New function.
9910         (io_address_p): Likewise.
9911         (const_int_pow2_p): Likewise.
9912         (output_reload_inhi): Likewise.
9913         (output_reload_insisf): Likewise.
9914
9915         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
9916         (LIB_SPEC): Use -lc for all supported devices.
9917         (LIBGCC_SPEC): Use -lgcc for all supported devices.
9918         (AVR_MEGA): Define as avr_mega_p.
9919         (AVR_ENHANCED): New, define as avr_enhanced_p.
9920         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
9921         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
9922         (CRT_BINUTILS_SPECS): Handle all known MCU types.
9923         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
9924         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
9925         (ASM_SPEC): Pass -mmcu=... to the assembler.
9926         Change all -DAVR_* to -D__AVR_*__.
9927         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
9928         Rename library functions to start with two underscores.
9929         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
9930         alignment.
9931         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
9932         (SUPPORTS_WEAK): Likewise.
9933         (LDI_REG_REGNO): New. Register r31 will be used as temporary
9934         register for loading constants to r0-r14.
9935
9936         * config/avr/avr.md: Replace all TARGET_ENHANCED with
9937         AVR_ENHANCED.
9938         (*mov_r_sp): Removed. Handled by output_movhi.
9939         (*mov_sp_r): Likewise.
9940         (*mov_sp_r_no_interrupts): Likewise
9941         (*mov_sp_r_tiny): Likewise.
9942         (*movqi): Use output_movqi.
9943         (*reload_inqi): New.
9944         (*movhi): Use output_movhi.
9945         (*reload_inhi): New.
9946         (*negsi2): Optimized.
9947         (*negsf2): Likewise.
9948         Added peepholes (define_peephole2) for loading constants to r0-r14
9949         and for using `cpse' command.
9950
9951         * config/avr/libgcc.S: Rename library functions to start with two
9952         underscores.
9953         Add support for enhanced core.
9954         (_moqhi3): Fix typo, now _modqi3.
9955         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
9956         (__prologue_saves__): Remove test for stack adjust by 0.
9957         (__tablejump__): New.
9958
9959         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
9960         Add multilib support.
9961
9962 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
9963
9964         * loop.c (prescan_loop): Don't check unknown_address_altered
9965         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
9966         to loop_store_mems as necessary.
9967         (loop_invariant_p): Don't check unknown_address_altered
9968         or unknown_constant_address_altered.
9969
9970 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9971
9972         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
9973
9974 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
9975
9976         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
9977         print just the filename.
9978         * cpplex.c (_cpp_run_directive): Add additional argument, the
9979         name to give the synthetic buffer.  This defaults to
9980         translated "<command line>".
9981         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
9982         Adjust to match.
9983         (_cpp_define_builtin): New function.
9984         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
9985         * cpphash.h: Update prototypes.
9986
9987         * tradcpp.c (main): Process -D and -U simultaneously, in the
9988         order they appeared on the command line.
9989
9990 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9991
9992         * c-decl.c (define_label): Call warning_with_file_and_line and
9993         error_with_file_and_line instead of plain warning or error.
9994
9995         * c-parse.in (label): Use save_filename/save_lineno to ensure
9996         correct values for calls to define_label.
9997
9998 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
9999
10000         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
10001         away.
10002         * expr.c (expand_expr, case TARGET_EXPR): Don't call
10003         mark_addressable.
10004         * tree.h (get_file_function_name): Remove two duplicate
10005         declarations.
10006
10007 2000-08-28  Kazu Hirata  <kazu@hxi.com>
10008
10009         * tree.c: Fix formatting.
10010
10011         * xcoffout.c: Fix formatting.
10012
10013 2000-08-28  Jason Merrill  <jason@redhat.com>
10014
10015         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
10016
10017 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
10018
10019         * dwarf2out.c (dwarf2out_finish): Don't bother calling
10020         break_out_includes if it won't do anything.
10021
10022 2000-08-28  Richard Henderson  <rth@cygnus.com>
10023
10024         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
10025         (find_reloads): Likewise.
10026         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
10027         (reload_inhi): Likewise.
10028
10029 2000-08-28  Richard Henderson  <rth@cygnus.com>
10030
10031         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
10032         (call_insn_operand): Don't expect a surrounding mem.
10033         (constant_call_address_operand): Likewise.
10034         * config/i386/i386.h (PREDICATE_CODES): Update.
10035         * config/i386/i386.md (call patterns): Move the match_operand
10036         for the call destination inside the mem.
10037
10038 2000-08-28  Richard Henderson  <rth@cygnus.com>
10039
10040         * local-alloc.c (requires_inout): Don't use reserved range for
10041         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
10042         * recog.c (asm_operand_ok): Likewise.
10043         (preprocess_constraints, constrain_operands): Likewise.
10044         * regclass.c (record_reg_classes): Likewise.
10045         * reload.c (find_reloads): Likewise.
10046         * reload1.c (maybe_fix_stack_asms): Likewise.
10047         (reload_cse_simplify_operands): Likewise.
10048         * stmt.c (expand_asm_operands): Likewise.
10049
10050         * md.texi: Update constraints documentation.
10051         * tm.texi (EXTRA_CONSTRAINT): Update.
10052
10053 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
10054
10055         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
10056         (print_die): If we don't know the offset of the
10057         target die, try the symbol.  Add a trailing newline.
10058         (reverse_all_dies): New fn.
10059         (dwarf2out_finish): Call it.
10060         (break_out_includes): Reorganize for clarity.
10061         (add_sibling_attributes): Don't call reverse_die_lists.
10062         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
10063         primary CU, too.
10064         * flags.h: Add flag_eliminate_dwarf2_dups.
10065         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
10066
10067 2000-08-28  Jason Merrill  <jason@redhat.com>
10068
10069         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
10070         * dwarf2out.c: #include "md5.h".
10071         (DIE_LABEL_PREFIX): New macro.
10072         (dw_val_struct): Add 'external' flag to val_die_ref.
10073         (add_AT_die_ref, AT_ref): Adjust.
10074         (AT_ref_external, set_AT_ref_external): New fns.
10075         (build_abbrev_table): Call set_AT_ref_external.
10076         (value_format): Call AT_ref_external.
10077         (die_struct): Add die_symbol field.
10078         (new_die): Clear it.
10079         (dwarf_tag_name): Handle BINCL/EINCL.
10080         (dwarf2out_start_source_file): Add BINCL DIE.
10081         (dwarf2out_end_source_file): Add EINCL DIE.
10082         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
10083         (loc_checksum, attr_checksum, die_checksum): New fns.
10084         (is_type_die, is_comdat_die, is_symbol_die): New fns.
10085         (compute_section_prefix, assign_symbol_names): New fns.
10086         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
10087         (output_die): Call output_die_symbol and AT_ref_external.
10088         (output_comdat_comp_unit): New fn, split out from...
10089         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
10090         secondary CUs.
10091         (output_pubnames, output_aranges): Abort if we see entries from
10092         secondary CUs.
10093         * toplev.h: Declare file_name_nondirectory.
10094         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
10095         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
10096         (debug_start_source_file): Call dwarf2out_start_source_file
10097         regardless of debug verbosity.
10098         (debug_end_source_file): Similarly.
10099         * tree.h: Declare clean_symbol_name.
10100         * tree.c (clean_symbol_name): Split out from...
10101         (get_file_function_name_long): ...here.
10102
10103         * dwarf2out.c (new_loc_descr): Use calloc.
10104         (splice_child_die): Remove the die from the right parent.
10105         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
10106
10107 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10108
10109         * toplev.c (decode_g_option): Don't give warning for unknown -g
10110         option; return 0 instead.
10111         (main): If -g option is not recognized by front end or
10112         language-independent code, give warning.
10113
10114 2000-08-28  Greg McGary  <greg@mcgary.org>
10115
10116         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
10117         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
10118         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
10119
10120 2000-08-27  Greg McGary  <greg@mcgary.org>
10121
10122         * cpplex.c (parse_string): Don't look for backslash
10123         before first char in `namebuf'.
10124         * loop.c (strength_reduce): Skip NOTEs.
10125
10126 2000-08-27  Jason Merrill  <jason@redhat.com>
10127
10128         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
10129         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
10130         TREE_ASM_WRITTEN, either.
10131         (finish_decl): Adjust.
10132
10133 2000-08-28  Philipp Thomas  <pthomas@suse.de>
10134
10135         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
10136         they have been incorporated into the gettext CVS. Change the text to
10137         reflect the current status of NLS. Add instructions for accessing
10138         the gettext CVS and add the patch from Martin v. Loewis.
10139
10140 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
10141
10142         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
10143         by using gen_lowpart_common.
10144         (movdi_internal64+6): Likewise.
10145
10146 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
10147
10148         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
10149         Document.
10150
10151         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
10152         numbers to the ranges used by GDB.
10153
10154 2000-08-25  Richard Henderson  <rth@cygnus.com>
10155
10156         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
10157         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
10158         (ia64_expand_prologue): Likewise.
10159         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
10160         argument for stdargs.
10161
10162 2000-08-25  Jason Merrill  <jason@redhat.com>
10163
10164         * integrate.c (expand_inline_function): Pull out the original decl.
10165
10166 2000-08-25  Jim Wilson  <wilson@cygnus.com>
10167
10168         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
10169
10170         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
10171
10172 2000-08-25  Greg McGary  <greg@mcgary.org>
10173
10174         * flow.c (dump_edge_info): Use ARRAY_SIZE.
10175         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
10176
10177 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
10178
10179         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
10180
10181 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
10182
10183         * i386.c (ix86_find_base_term): New.
10184         * i386-protos.h (ix86_find_base_term): Prototype.
10185         * i386.h (FIND_BASE_TERM): Define.
10186         * alias.c (find_base_term): Use it.
10187         * tm.texi (FIND_BASE_TERM): Document it.
10188
10189         * alias.c (true_dependence, write_dependence_p): Unchanging
10190         memory can't conflict with non-unchanging memory.
10191
10192         * alias.c (memrefs_conflict_p): A BLKmode reference
10193         to a symbol (or CONST_INT address) always conflicts
10194         with a reference to another symbol.
10195
10196 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
10197
10198         * c-common.c (time_char_table): Don't allow width and flags with
10199         "z" format.
10200
10201 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
10202
10203         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
10204         way as LT and LTU when the second operand has 0 in low word.
10205
10206 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10207
10208         * basic-block.h (struct loop): Rename `exits' field to
10209         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
10210
10211         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
10212         (flow_loop_entry_edges_find): Add.
10213         (flow_edge_list_print): Rename from flow_exits_print.
10214         (flow_loops_find): Call flow_loop_entry_edges_find.
10215         (flow_loop_dump): Dump entry_edges list.
10216         (flow_loops_free): Free entry_edges.
10217
10218 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10219
10220         * loop.c (loop_dump_aux, debug_loop): New functions.
10221         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
10222
10223         * flow.c (flow_loops_dump): Add callback parameter.
10224         (flow_loop_dump): Add callback parameter and call it.  Move
10225         loop note debugging code to loop_dump_aux.
10226
10227         * basic-block.h (flow_loop_dump): Add callback parameter
10228         (flow_loops_dump): Likewise.
10229
10230         * toplev.c (rest_of_compilation): Add NULL callback function pointer
10231         to call to flow_loops_dump.
10232
10233 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10234
10235         * loop.c (count_loop_regs_set): Replace start and end arguments
10236         with loop argument.  All callers udated.
10237
10238 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10239
10240         * loop.c (constant_high_bytes): Delete.
10241
10242 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
10243
10244         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
10245         and NOTE_INSN_LOOP_VTOP to...
10246         (find_and_verify_loops) ...here.
10247
10248 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
10249
10250         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
10251         (fini_dummy, init_dummy): Use it.
10252
10253 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
10254
10255         * cpplex.c (is_macro_disabled): Caller has already checked
10256         that we're not a preprocessed file.
10257
10258 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
10259
10260         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
10261         (c-iterate.o): Remove target.
10262         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
10263         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
10264         (finish_decl): Don't handle iterators.
10265         (grokdeclarator): Likewise.
10266         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
10267         * gcc/c-gperf.h: Regenerated.
10268         * gcc/c-iterate.c: Removed.
10269         * gcc/c-lex.c (init_lex): Don't handle iterators.
10270         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
10271         (compstmt_primary_start): Remove push_iterator_stack call.
10272         (stmt): Don't allow iterator statements.  Replace iterator_expand
10273         with expand_expr_stmt.
10274         (all_iter_stmt): Remove.
10275         (all_iter_stmt_simple): Likewise.
10276         (all_iter_stmt_with_decl): Likewise.
10277         * gcc/c-tree.h (ITERATOR_P): Remove.
10278         (ITERATOR_BOUND_P): Likewise.
10279         (init_iterators): Remove declaration.
10280         (iterator_expand): Likewise.
10281         (iterator_for_loop_start): Likewise.
10282         (iterator_for_loop_end): Likewise.
10283         (iterator_for_loop_record): Likewise.
10284         (push_iterator_stack): Likewise.
10285         (pop_iterator_stack): Likewise.
10286         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
10287         (readonly_warning): Likewise.
10288         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
10289
10290 2000-08-24  Jim Wilson  <wilson@cygnus.com>
10291
10292         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
10293         Copy type in a TYPE_DECL, just like pushdecl does.
10294
10295 2000-08-24  Richard Henderson  <rth@cygnus.com>
10296
10297         * toplev.c (main): Enable flag_reorder_blocks at -O2.
10298
10299 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
10300
10301         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
10302         asked for one page, allocate GGC_QUIRE_SIZE of them and put
10303         the extras on the free list.
10304         (release_pages): Clean up.
10305         (ggc_set_mark): Don't adjust G.allocated here...
10306         (sweep_pages): ... do it here.
10307
10308 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
10309
10310         * cppfiles.c (read_include_file): Rearrange initializations.
10311
10312 2000-08-24  Richard Henderson  <rth@cygnus.com>
10313
10314         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
10315
10316         * config/ia64/ia64-protos.h: Update.
10317         * config/ia64/ia64.c (gr_register_operand): New.
10318         (fr_register_operand, grfr_register_operand): New.
10319         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
10320         (grfr_reg_or_8bit_operand): New.
10321         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
10322         use gr_register_operand.
10323         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
10324         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
10325         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
10326         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
10327         (fr_reg_or_fp01_operand): Likewise.
10328         (not_postinc_memory_operand): New.
10329         (ia64_split_timode): Remove unused variables.
10330         (rtx_needs_barrier): Check arguments to cmpxchg.
10331         (builtin_description): Remove.
10332         (bdesc_2argsi, bdesc_2argdi): Remove.
10333         (ia64_init_builtins): Declare all builtins directly.
10334         (ia64_expand_fetch_and_op): Rewrite to be called from
10335         ia64_expand_builtin directly.  Use expand_binop and co.
10336         (ia64_expand_op_and_fetch): Likewise.
10337         (ia64_expand_compare_and_swap): Likewise.
10338         (ia64_expand_binop_builtin): Remove.
10339         (ia64_expand_lock_test_and_set): New.
10340         (ia64_expand_lock_release): New.
10341         (ia64_expand_builtin): Use them.
10342         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
10343         (EXTRA_CONSTRAINT): Use it.
10344         (PREDICATE_CODES): Update.
10345         * config/ia64/ia64.md (*): Use gr_register_operand and co.
10346         (mf): Indicate that we set memory as well as use it.
10347         (fetchadd_acq_si): Show memory being modified as well.
10348         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
10349         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
10350         (lock_test_and_set_si, lock_test_and_set_di): Remove.
10351         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
10352         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
10353         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
10354         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
10355         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
10356         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
10357         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
10358         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
10359         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
10360         return type.  Pretty print definitions.
10361
10362 2000-08-24  Jim Wilson  <wilson@cygnus.com>
10363
10364         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
10365         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
10366
10367 2000-08-24  Jason Merrill  <jason@redhat.com>
10368
10369         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
10370         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
10371         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
10372         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
10373
10374 2000-08-24  Greg McGary  <greg@mcgary.org>
10375
10376         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
10377         and extendtab within their proper array boundaries.
10378         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
10379         for the entire array.
10380
10381         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
10382         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
10383         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
10384         * config/fr30/fr30.c (fr30_print_operand): Likewise.
10385         * config/i386/dgux.c (output_options): Likewise.
10386         * config/i386/dgux.h (ASM_FILE_START): Likewise.
10387         * config/m88k/m88k.c (output_options): Likewise.
10388         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
10389         * config/mcore/mcore.c (mcore_output_inline_const_forced,
10390         layout_mcore_frame, handle_structs_in_regs): Likewise.
10391         * config/mips/mips.c (output_block_move): Likewise.
10392         * config/rs6000/rs6000.c (rs6000_override_options,
10393         rs6000_file_start): Likewise.
10394         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
10395         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
10396         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
10397         * builtins.c (expand_builtin_setjmp): Likewise.
10398         * expr.c (safe_from_p): Likewise.
10399         * flow.c (life_analysis): Likewise.
10400         * fold-const.c (size_int_type_wide): Likewise.
10401         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
10402         * genattrtab.c (make_length_attrs): Likewise.
10403         * genopinit.c (gen_insn): Likewise.
10404         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
10405         * global.c (global_alloc): Likewise.
10406         * local-alloc.c (find_free_reg): Likewise.
10407         * mips-tdump.c (print_symbol): Likewise.
10408         * mips-tfile.c (parse_def, parse_input): Likewise.
10409         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
10410         * stmt.c (expand_nl_goto_receiver): Likewise.
10411         * stor-layout.c (set_sizetype): Likewise.
10412         * varasm.c (decode_reg_name): Likewise.
10413         * toplev.c (decode_f_option, decode_W_option,
10414         set_target_switch, print_switch_values): Likewise.
10415         (NUM_ELEM): Remove macro.
10416         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
10417
10418 2000-08-24  Greg McGary  <greg@mcgary.org>
10419
10420         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
10421         (MAIN_NAME_P, main_identifier_node): New macros.
10422         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
10423         * c-decl.c (start_decl, grokdeclarator, start_function,
10424         store_parm_decls, finish_function): Use MAIN_NAME_P.
10425         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
10426         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10427         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10428         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
10429
10430 2000-08-24  Greg McGary  <greg@mcgary.org>
10431
10432         * cppfiles.c (actual_directory): Don't write beyond `dir'
10433         when it contains "".
10434         * real.c (asctoeg): Stay within bounds of etens[][].
10435
10436 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10437
10438         * dependence.c (dependence_string, direction_string,
10439         dump_one_node, dump_node_dependence): Hide unused identifiers.
10440         (get_low_bound, normalize_coefficients): Match definition to
10441         static prototype.
10442         (get_one_coefficient): Initialize variables `value0_is_idx' and
10443         `value1_is_idx'.
10444         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
10445         (ziv_test): Delete variable `idx', use parameter `sub' instead.
10446         (direction_merge): Avoid automatic aggregate initialization.
10447         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
10448         Initialize variables `dest_idx' and `src_idx'.
10449         (end_dependence_analysis): Avoid C89 style function definition.
10450
10451 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
10452
10453         * c-common.c (time_char_table): Don't allow width with %F.
10454         (check_format_info): Don't allow "Z" length with scanf.
10455
10456 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
10457
10458         * diagnostic.c (finish_diagnostic): Define.
10459         (output_do_printf): Use wrap_text instead of output_add_string.
10460         (default_print_error_function): Avoid embedded '\n'.
10461
10462         * diagnostic.h (flush_diagnostic_buffer): Declare.
10463
10464 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
10465
10466         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
10467
10468 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
10469
10470         * Makefile.in (GCC_PASSES): Add specs.
10471
10472 2000-08-23  Jim Wilson  <wilson@cygnus.com>
10473
10474         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
10475         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
10476         EHANDLER nor UHANDLER bit is set.
10477         (__get_except_table): Likewise.
10478
10479 2000-08-23  Nick Clifton  <nickc@redhat.com>
10480
10481         * config/arm/lib1funcs.asm: Replace upper case condition codes
10482         with lower case versions.
10483
10484         * config/arm/arm.h (STRUCT_VALUE): Define.
10485         (STRUCT_VALUE_REGNUM): Delete.
10486
10487 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
10488
10489         * cpphash.h (IN_I): New flag for directive table.
10490         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
10491         #pragma with IN_I.
10492         (_cpp_check_directive): If -fpreprocessed, execute directives
10493         marked with IN_I.  Issue no warnings in this case.
10494         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
10495
10496 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10497
10498         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
10499         %u.
10500         (check_format_info): Support printf 'I' flag; warn about it with
10501         -pedantic.
10502
10503 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
10504
10505         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
10506         barrier can't be ignored by the alias analysis code.
10507
10508 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
10509
10510         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
10511         works inside fixincl.
10512
10513 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
10514
10515         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
10516         simplify_relational_operation() unless both operands are of
10517         VOIDmode.
10518         * cse.c (fold_rtx): Likewise.
10519
10520 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
10521
10522         * rtlanal.c (rtx_unstable_p): The pic register is stable
10523         (within one function) and the actual rtx should be used
10524         when checking the registers.
10525         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
10526
10527         * alias.c (true_dependence, write_dependence_p): Fix
10528         bug in previous patch.
10529
10530         * i386.c (ix86_GOT_alias_set): New.
10531         (legitimize_pic_address): Use it.
10532
10533         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
10534         only stable if its address is stable.
10535         (rtx_varies_p): An unchanging MEM can't vary if
10536         its address doesn't vary.
10537
10538 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10539
10540         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
10541
10542 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
10543
10544         * vax.h (ASM_SPEC): Pass `-J' to assembler.
10545         * x-vax-gcc: New file for bootstrapping with gcc.
10546         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
10547         * configure.in: Use x-vax-gcc with gcc.
10548         * configure: Rebuilt.
10549
10550 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10551
10552         * toplev.c (rest_of_compilation): Rebuild label notes after
10553         post-reload splitting pass if new labels have been created.
10554
10555 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
10556
10557         * diagnostic.h (output_buffer_state): New macro.
10558         * diagnostic.c (diagnostic_for_decl, sorry,
10559         default_print_error_function, output_do_verbatim,
10560         report_diagnostic, report_problematic_module): Use it.
10561         (wrap_text): Tweak.
10562         (output_format): Use wrap_text instead of maybe_wrap_text.
10563
10564 2000-08-22  Nick Clifton  <nickc@redhat.com>
10565
10566         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
10567         Common code for ARM divide and modulus functions.
10568         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
10569         ARM_DIV_MOD_BODY.
10570         (FUNC_END): New macro: Common code at the end of the division and
10571         modulo functions.
10572         (THUMB_FUNCTION_START): New macro:  Common code at the start of
10573         Thumb functions.
10574         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
10575
10576 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
10577
10578         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
10579
10580         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
10581         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
10582         const0_rtx.
10583
10584 2000-08-22  Nick Clifton  <nickc@redhat.com>
10585
10586         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
10587         restorative additions, test for bottom bits of IP being set,
10588         rather than relying upon the RORs not matching.
10589         (__modsi3): Ditto.
10590
10591 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
10592
10593         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
10594         text_section() as appropriate instead of emitting text csect
10595         pseudo-op directly.
10596         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
10597         (UNIQUE_SECTION): Define macro.
10598         (ASM_OUTPUT_SECTION_NAME): Define macro.
10599         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
10600         on AIX if debugging and -fdata-sections always.
10601
10602 2000-08-22  Steven King  <sxking@uswest.net>
10603
10604         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
10605         machinery.
10606         (LDBL_MAX): Same here.
10607
10608 2000-08-22  Richard Henderson  <rth@cygnus.com>
10609
10610         * flow.c (tidy_fallthru_edge): Update b->end properly.
10611
10612 2000-08-22  Stan Cox  <scox@redhat.com>
10613
10614         * Makefile.in (OBJS): Add dependence.o.
10615         * dependence.c: New file.
10616
10617 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
10618
10619         * calls.c (check_sibcall_argument_overlap_1): Adjust for
10620         ARGS_GROW_DOWNWARD.
10621         (check_sibcall_argument_overlap): Likewise.
10622
10623 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
10624
10625         * invoke.texi (SH Options): Document -m4-nofpu,
10626         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
10627         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
10628
10629 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
10630
10631         * c-common.c (check_format_info): Give the 'some locales' warning
10632         for strftime %Ey rather than the unconditional 'only last 2 digits
10633         of year' one.
10634
10635 2000-08-22  Richard Henderson  <rth@cygnus.com>
10636
10637         * alias.c (init_alias_analysis): Do not register
10638         struct_value_incoming_rtx or static_chain_rtx as pointing
10639         to stack memory.
10640
10641 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
10642
10643         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
10644
10645 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
10646
10647         * diagnostic.h (report_problematic_module): Declare.
10648         * diagnostic.c (report_problematic_module): New function.
10649         (report_error_function): Tweak.
10650
10651 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10652
10653         * stmt.c (expand_goto_internal, fixup_gotos): Only check
10654         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
10655
10656 2000-08-21  Richard Henderson  <rth@cygnus.com>
10657
10658         * flow.c (calculate_global_regs_live): Mark frame pointer live
10659         everywhere before reload.
10660
10661 2000-08-21  Jim Wilson  <wilson@cygnus.com>
10662
10663         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
10664         INTEL_EXTENDED_IEEE_FORMAT.
10665         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
10666         clear last two bytes of output FP value.
10667
10668 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
10669
10670         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
10671
10672 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
10673
10674         * unroll.c (loop_find_equiv_value): If ret is modified between
10675         insn and loop_start, ret might not be equivalent to reg.
10676
10677 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10678
10679         * c-common.c (init_dollar_format_checking,
10680         maybe_read_dollar_number, finish_dollar_format_checking): New
10681         functions.
10682         (dollar_arguments_used, dollar_arguments_count,
10683         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
10684         New variables.
10685         (check_format_info): Support $ formats for scanf and printf width
10686         and precision.  Always increment format_chars to advance past the
10687         '*' of precision, not just when the format parameters are
10688         available to check.
10689
10690 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10691
10692         * mips.c (block_move_loop, expand_block_move,
10693         function_arg_partial_nregs, save_restore_insns, function_prologue,
10694         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
10695         constant suffix.
10696         (function_arg_advance, function_arg): Match argument to format
10697         specifier `%p'.
10698
10699 2000-08-21  Nix  <nix@esperi.demon.co.uk>
10700
10701         * gcc.c (do_spec_1): Implement %j spec flag.
10702         Remove dead comment.
10703
10704         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
10705         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
10706         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
10707         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
10708
10709         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
10710         writable) instead of hardcoded value.
10711
10712         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
10713
10714         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
10715         MKTEMP_EACH_FILE.
10716
10717         * gcc.c (cc1_options): Do not process -o or run the assembler if
10718         -fsyntax-only.
10719         * objc/lang-spec.h: Likewise.
10720
10721 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
10722
10723         * fixinc/fixincl.c (fix_with_system): Pipe the output of
10724         "external" fixes through `cat', to avoid truncating the input
10725         file by redirection.
10726
10727 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
10728
10729         * config/i386/i386.md (lea_general_1): Copy insn condition to split
10730         condition.
10731         (lea_general_2, lea_general_3): Likewise.
10732
10733 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10734
10735         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
10736         warnings to user code.
10737
10738         * c-lex.c (readescape, yylex): Likewise.
10739
10740         * c-typeck.c (store_init_value, process_init_element): Likewise
10741         (c_expand_start_case): Format.
10742
10743 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10744
10745         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
10746
10747         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
10748         and linker_endian_spec to endian_spec.
10749         (ENDIAN_SPEC): Add %{EB} and %{EL}.
10750         (LINK_SPEC): Remove %{EB} and %{EL}.
10751         (ASM_SPEC): Likewise.  Use %(endian_spec).
10752
10753 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10754
10755         * c-tree.h (flag_hosted): Move declaration from here...
10756         * c-common.h (flag_hosted): ... to here.
10757         (flag_noniso_default_format_attributes): New declaration.
10758         * c-decl.c (flag_noniso_default_format_attributes): New variable.
10759         (c_decode_option): Set it appropriately for options choosing
10760         language standard variant.
10761         * c-common.c (init_function_format_info): Only provide default
10762         format attributes if flag_hosted.  Only provide the gettext
10763         formats if flag_noniso_default_format_attributes.  Update
10764         comments.
10765         (check_format_info): Disable treatment of %a as a scanf flag in
10766         C99 mode.
10767
10768 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10769
10770         * c-common.c (scan_char_table): Add 'w' to flags for all formats
10771         except 'n'.
10772         (check_format_info): Set 'wide' for scanf format widths.  Warn for
10773         a zero scanf width.  Make the check for writing into a constant
10774         object at the first level of indirection; at later levels, warn if
10775         any type qualifiers are encountered.
10776
10777 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
10778
10779         * reload.c (reload_inner_reg_of_subreg): New function broken out of
10780         push_reload.
10781         (push_reload): Use reload_inner_reg_of_subreg.
10782         (combine_reloads): Do not combine reloads if the input reload
10783         is a SUBREG in which the inner part will need reloading.
10784
10785         * global.c (global_alloc): Avoid passing dumpfile argument to
10786         reload routines.
10787         * toplev.c (rest_of_compilation): Likewise.
10788         * reload.h (reload): Remove dumpfile argument.  Callers changed.
10789         (debug_reload, debug_reload_to_stream): Move prototypes here.
10790         * rtl.h  (reload): Remove dumpfile argument.
10791         * reload.c (debug_reload): Remove prototype.
10792         (debug_reload_to_stream): Likewise.
10793         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
10794         instead.
10795
10796 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
10797
10798         * diagnostic.c (context_as_prefix): Export.
10799         (need_error_newline): Remove.
10800         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
10801         (error_module_changed, record_last_error_module,
10802         error_function_changed, record_last_error_function): New functions.
10803         (initialize_diagnostics): Default intialize
10804         lang_diagnostic_starter, lang_diagnostic_finalizer.
10805         (init_output_buffer): Tweak.
10806         (file_name_as_prefix): New function.
10807         (announce_function, default_print_error_function,
10808         report_error_function, set_diagnostic_context): Tweak.
10809
10810 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
10811
10812         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
10813         condition expression.
10814
10815 2000-08-20  Richard Henderson  <rth@cygnus.com>
10816
10817         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
10818
10819 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
10820
10821         * cppinit.c (cpp_init): Set global flag when called.
10822         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
10823
10824 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
10825
10826         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
10827         before `process_directive' so that newlines won't be missed
10828         for directives.
10829         (cpp_printf): Increment `print->lineno' when newline is emitted.
10830
10831         * cppmain.c (cb_ident): Likewise.
10832         (cb_define): Likewise.
10833         (cb_undef): Likewise.
10834         (cb_include): Likewise.
10835         (cb_def_pragma): Likewise.
10836         (dump_macros_helper): Likewise.
10837
10838 2000-08-20  Richard Henderson  <rth@cygnus.com>
10839
10840         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
10841         assigned before a loop.
10842
10843         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
10844         (ashrsi3, lshrsi3): Likewise.
10845
10846 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
10847
10848         * c-lang.c: #include diagnostic.h
10849         (c_tree_printer): New function.
10850         (lang_init): Initialize lang_printer.
10851
10852         * Makefile.in (c-lang.o): Depends on diagnostic.h
10853
10854 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
10855
10856         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
10857
10858         * diagnostic.c (default_diagnostic_starter,
10859         default_diagnostic_finalizer): New functions.
10860         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
10861         (pedwarn, pedwarn_with_file_and_line, error,
10862         error_with_file_and_line, fatal, warning,
10863         warning_with_file_and_line): Adjust call to report_diagnostic.
10864         (report_diagnostic): Rework.
10865         (set_diagnostic_context): New function.
10866
10867         * diagnostic.h (struct diagnostic_context): New data structure.
10868         (diagnostic_message, diagnostic_argument_list,
10869         diagnostic_file_location, diagnostic_line_location,
10870         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
10871         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
10872         (set_diagnostic_context): Declare.
10873         (report_diagnostic): Change prototype.
10874
10875 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
10876
10877         * fix-header.c (main): Initialize cpplib.
10878
10879 2000-08-19  Michael Meissner  <meissner@redhat.com>
10880
10881         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
10882         instructions in it before checking for indirect jumps.
10883
10884         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
10885         in a indirect jump as a potential for conditional execution.
10886
10887         * d30v.h (d30v_init_expanders): Don't declare here.
10888         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
10889         prototype.
10890
10891 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
10892
10893         * cpp.texi: Add @section for assertions.
10894
10895 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
10896
10897         * loop.c (scan_loop): Use CONST_CALL_P instead of
10898         checking for REG_LIBCALL / REG_RETVAL.
10899
10900 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
10901
10902         * reload1.c (reload_as_needed): Accept dumpfile argument,
10903         pass it to emit_reload_insns.
10904         (emit_reload_insns): Add new dumpfile argument.  If non-null
10905         then dump the reloads for each insn into the dumpfile.
10906         (reload): Pass dumpfile to reload_as_needed.
10907
10908         * invoke.texi: Clean up linux-gnu vs linux comments.
10909
10910 2000-08-19  Richard Henderson  <rth@cygnus.com>
10911
10912         * config/ia64/ia64.c (reg_or_5bit_operand): New.
10913         (ia64_depz_field_mask): New.
10914         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
10915         (PREDICATE_CODES): Update.
10916         * config/ia64/ia64.md: Update commentary.
10917         (depz_internal): New.
10918         (ashlsi3): Implement directly.
10919         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
10920         (ashldi3): Use shladd.
10921         * config/ia64/ia64-protos.h: Update.
10922
10923 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
10924
10925         * toplev.c (independent_decode_option): Always process -g.
10926         Remove third argument, now unused.  Adjust caller to match.
10927
10928 2000-08-18  Richard Henderson  <rth@cygnus.com>
10929
10930         * combine.c (make_compound_operation): Break after creating
10931         the extraction.
10932
10933 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
10934
10935         * cpplib.c (cpp_register_pragma_space): Just return if the
10936         namespace is already registered.
10937
10938 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
10939
10940         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
10941         constant amount.  Do not generate ROTL instruction.
10942
10943 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
10944
10945         * config/sh/elf.h: Do not include sh/sh.h.
10946         * config/sh/rtems.h: Likewise.
10947         * config/sh/rtemself.h: Do not include sh/elf.h.
10948         * configure.in: Get them included with `tm_file's.
10949         * configure: Rebuilt.
10950
10951         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
10952         * config/sh/sh.c (fpscr_set_from_mem): Use them.
10953
10954 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10955
10956         * stor-layout.c (compute_record_type): Don't use mode of single
10957         field as mode of record if not integer mode of same type.
10958
10959         * regmove.c (perhaps_ends_bb_p): New function.
10960         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
10961         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
10962         (fixup_match_1): Likewise.
10963         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
10964         avoid signed/unsigned warnings.
10965
10966         * function.c (fixup_var_refs_1, case MEM): Update CODE after
10967         updating X.
10968
10969 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
10970
10971         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
10972         (_cpp_trigraph_map): Declaration moved from cpplex.c
10973
10974         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
10975         instead of 256.  Use consistent test for designated initializers.
10976         (cpp_init): Initialize trigraph_map.
10977         (initialize_standard_includes, parse_option):  Use memcmp
10978         instead of strncmp.
10979
10980         * cpplex.c (init_trigraph_map): Remove.
10981         (trigraph_ok, trigraph_replace, lex_line): Refer to
10982         _cpp_trigraph_map.
10983
10984         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
10985         (do_unassert): Remove unused "next" local.
10986
10987         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
10988
10989 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
10990
10991         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
10992         insn.
10993
10994 2000-08-17  Richard Henderson  <rth@cygnus.com>
10995
10996         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
10997         the first insn in a sequence.
10998
10999 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
11000
11001         * alias.c (true_dependence, write_dependence_p): A read
11002         involving a label_ref or the constant pool doesn't create
11003         a dependency.
11004
11005         * rtl.h (unchanging): Improve documentation.
11006
11007 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
11008
11009         * cse.c (insert_regs): Remove unused `regno'.
11010
11011 2000-08-17  Neil Booth  <NeilB@earthling.net>
11012
11013         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
11014         remove_dup_dirs.  If qtail == brack, remove brack not
11015         qtail.
11016         (remove_dup_dir, remove_dup_dirs): New functions.
11017
11018 2000-08-17  Neil Booth  <NeilB@earthling.net>
11019
11020         * cppinit.c (cpp_cleanup): Free include dir chains.
11021         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
11022         (do_unassert): Free the assert with _cpp_free_definition.
11023         * cppmacro.c (_cpp_free_definition): Free memory allocated for
11024         assertions.  Make the node a T_VOID node.
11025
11026 2000-08-17  Neil Booth  <NeilB@earthling.net>
11027
11028         * cppinit.c (path_include, append_include_chain):
11029         Remove 2nd parameter (struct cpp_pending *).
11030         (path_include, initialize_standard_includes, cpp_handle_option):
11031         Update callers appropriately.
11032         (cpp_handle_option): Use pend.
11033
11034 2000-08-17  Neil Booth  <NeilB@earthling.net>
11035
11036         * cppinit.c (sort_options): Remove, put functionality in
11037         cpp_init.
11038         (cpp_init): New.
11039         (initialize_builtins): Free memory.
11040         (cpp_start_read): Move init_IStable to cpp_init.
11041
11042         * cpplib.h (cpp_init): New prototype.
11043         * cppmain.c (main): Call cpp_init.
11044
11045 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
11046
11047         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
11048         (rtx_unstable_p, rtx_varies_p): Process vectors.
11049
11050 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
11051
11052         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
11053         references to GLOBAL symbols.  Use LOCAL where appropriate.
11054
11055 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11056
11057         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
11058         use t-aix41 when host == target.
11059
11060 2000-08-16  Richard Henderson  <rth@cygnus.com>
11061
11062         * reload.c (push_secondary_reload): Revert last change.
11063         If we use a reload_in/out pattern, make the when the same
11064         as the primary reload.
11065         (find_reloads): Likewise.
11066
11067 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
11068
11069         * configure.in (libstdcxx-v3): Fix test.
11070         * configure: Regenerate.
11071
11072 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11073
11074         * calls.c (calls_function_1, expand_call): Only test
11075         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
11076         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11077
11078 2000-08-16  Richard Henderson  <rth@cygnus.com>
11079
11080         * combine.c (simplify_shift_const): Revert previous two
11081         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
11082         before the main loop.
11083
11084 2000-08-15  Richard Henderson  <rth@cygnus.com>
11085
11086         * combine.c (simplify_shift_const): Bound shift count when
11087         combining shifts.
11088
11089 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11090
11091         * calls.c (ECF_SP_DEPRESSED): New macro.
11092         (calls_function_1): Treat calling sp-depressed function as alloca.
11093         (emit_call_1): Don't adjust SP if calling sp-depressed function.
11094         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
11095         If sp-depressed, ensure block saves and restores SP.
11096         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
11097         for INTEGER_TYPE.
11098         * function.c (keep_stack_depressed): New function.
11099         (thread_prologue_and_epilogue_insns): Call it.
11100         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
11101         to print DECL_OFFSET_ALIGN.
11102         Print no-force-blk and transparent-union flags properly.
11103         * stmt.c (expand_goto_internal): Don't restore stack if last block
11104         and function returns with sp depressed.
11105         (fixup_gotos): Likewise.
11106         (save_stack_pointer): New function, from code in expand_decl.
11107         (expand_decl): Call new function.
11108         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
11109         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
11110         (save_stack_pointer): New declaration.
11111
11112         * diagnostic.c (fatal_function): New variable.
11113         (set_fatal_function): New function.
11114         (fatal): Call it.
11115         * diagnostic.h (set_fatal_function): New declaration.
11116
11117 2000-08-15  William Cohen  <wcohen@redhat.com>
11118
11119         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
11120         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
11121         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
11122
11123 2000-08-15  Richard Henderson  <rth@cygnus.com>
11124
11125         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
11126
11127 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
11128
11129         * arm.c (arm_function_ok_for_sibcall): New function.
11130         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
11131         * arm.md (call expanders): Don't check here for calls that can't
11132         be sibling calls.
11133
11134 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
11135
11136         * arm.md (splits generating cond_exec): Disable.
11137
11138 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
11139
11140         * arm/linux-elf.h (text_section): Delete declaration.
11141
11142 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
11143
11144         ARM support for unordered FP operations.
11145         * arm-protos.h (arm_comparison_operator): Declare.
11146         * arm.c (arm_comparison_operator): New function.
11147         (arm_select_cc_mode): Add unordered comparison codes.
11148         (get_arm_condition_code): Likewise.
11149         (arm_final_prescan_insn): Can't handle unordered jumps that can't
11150         be done in one insn.
11151         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
11152         * arm.md (all uses of comparison_operator): Replace with
11153         arm_comparison_operator.
11154         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
11155         expands.
11156         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
11157         patterns.
11158
11159 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11160
11161         * gthr-posix.h: Conditionally include <sched.h>; include
11162         <config.h> from libobjc/.
11163
11164 2000-08-14  Richard Henderson  <rth@cygnus.com>
11165
11166         * config/i386/i386.c (legitimize_pic_address): Use Pmode
11167         for all CONSTs.
11168
11169 2000-08-14  Richard Henderson  <rth@cygnus.com>
11170
11171         * configure.in (ia64-*): Set float_format for i386 long double.
11172
11173         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
11174         as we would for i386 XFmode.
11175         (PUT_REAL): Likewise.
11176         (endian, ereal_atof, real_value_truncate): Likewise.
11177         (ereal_isneg, toe64, etens, make_nan): Likewise.
11178         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
11179
11180         * config/ia64/ia64-protos.h: Update.
11181         * config/ia64/ia64.c (general_tfmode_operand): New.
11182         (destination_tfmode_operand): New.
11183         (tfreg_or_fp01_operand): New.
11184         (ia64_split_timode): New.
11185         (spill_tfmode_operand): New.
11186         (ia64_expand_prologue): Use TFmode not XFmode.
11187         (ia64_expand_epilogue): Likewise.
11188         (ia64_function_arg): Likewise.
11189         (ia64_function_arg_advance): Likewise.
11190         (ia64_return_in_memory): Likewise.
11191         (ia64_function_value): Likewise.
11192         (ia64_print_operand): Likewise.
11193         (ia64_register_move_cost): Set GR<->FR to 5.
11194         (ia64_secondary_reload_class): Get GR for TImode memory op.
11195         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
11196         (ROUND_TYPE_ALIGN): Remove.
11197         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
11198         (INTEL_EXTENDED_IEEE_FORMAT): Define.
11199         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
11200         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
11201         (MODES_TIEABLE_P): Use TFmode, not XFmode.
11202         (CLASS_MAX_NREGS): Likewise.
11203         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
11204         (PREDICATE_CODES): Update.
11205         * config/ia64/ia64.md (movti): New.
11206         (movti_internal): Use a clobber for memory alternatives.
11207         (reload_inti, reload_outti): New.
11208         (movsfcc_astep): Predicate properly.
11209         (movdfcc_astep): Likewise.
11210         (movxf): Remove.
11211         (movtf): New.
11212         (extendsftf2, extenddftf2): New.
11213         (trunctfsf2, trunctfdf2): New.
11214         (floatditf2, fix_trunctfdi2): New.
11215         (floatunsditf2, fixuns_trunctfdi2): New.
11216         (addtf3, subtf3, multf3, abstf2): New.
11217         (negtf2, nabstf2, mintf3, maxtf3): New.
11218         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
11219         (cmptf): New.
11220         (fr_spill): Use TFmode, not XFmode.
11221         (fr_restore): Likewise.
11222         * config/ia64/lib1funcs.asm (__divtf3): New.
11223         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
11224
11225 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11226
11227         * cse.c (fold_rtx): Avoid empty body in an if-statement.
11228
11229         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
11230         `U' integer constant suffix.
11231
11232         * dwarf2out.c (add_subscript_info): Avoid empty body in an
11233         else-statement.
11234
11235         * sparc/sol2.h (__enable_execute_stack): Prototype.
11236
11237 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
11238
11239         * collect2.c: Remove use of AIX import file.
11240
11241         * longlong.h: Test ARCH_PWR not ARCH_POWER.
11242
11243         * rs6000.c (print_operand, case 'E'): Add else.
11244
11245 2000-08-14  Richard Henderson  <rth@cygnus.com>
11246
11247         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
11248         (movdi_symbolic): New.
11249
11250 2000-08-14  Jim Wilson  <wilson@cygnus.com>
11251
11252         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11253         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
11254         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
11255         to GNU as.
11256
11257 2000-08-14  Richard Henderson  <rth@cygnus.com>
11258
11259         * expr.c (emit_group_load): Don't force constants into registers.
11260         Special case source already in the correct mode.
11261
11262 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
11263
11264         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
11265         * fixinc/inclhack.def: Likewise.
11266         * fixinc/mkfixinc.sh: Likewise.
11267         * configure: Regenerate.
11268         * fixinc/fixincl.x: Regenerate.
11269         * install.texi: Document equivalence of linux and linux-gnu.
11270
11271 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11272
11273         * cse.c (insert_regs): Also in REG case: When finding an invalid
11274         value, and we make a new quantity, make sure that it won't be
11275         mistaken by for a valid one by mention_regs.
11276
11277 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
11278
11279         * h8300.md: Remove obsolete peepholes.
11280
11281 2000-08-13  Kazu Hirata  <kazu@hxi.com>
11282
11283         * invoke.texi (H8/300 Options): Fix typos.
11284         * config/h8300.c: Fix formatting.
11285         * config/h8300.h: Fix comment typos.
11286         (OVERRIDE_OPTIONS): Fix formatting.
11287
11288         * function.c: Fix formatting.
11289
11290         * cse.c: Fix formatting.
11291
11292 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
11293
11294         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
11295         (attempt_auto_inc): Suppress parentheses warning.
11296         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
11297         * loop.c (load_mems): Remove `u' suffix in two places.
11298         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
11299         hex constants.
11300         * config/rs6000/rs6000.h: Likewise.
11301         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
11302         __eabi dummy routine.
11303         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
11304         variable `buf_ptr'.
11305
11306         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
11307         not put stuff in .sdata unnecessarily.
11308         (rs6000_unique_section): New function.
11309         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
11310         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
11311
11312         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
11313         arrays in C99.  Don't try to look at DECL_REGISTER of a
11314         COMPONENT_REF.  Don't complain twice about the same error.
11315
11316         * fixinc/inclhack.def (aix_pthread): New fix.
11317         (aix_sysmachine): New fix.
11318         * fixinc/fixincl.x: Regenerate.
11319
11320         * expr.c (expand_expr): Call convert_modes when turning a large
11321         multiply into a small one.
11322
11323 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
11324
11325         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
11326         the tree structure an exponent rather than an explicit alignment
11327         so it doesn't overflow.
11328         (SET_DECL_OFFSET_ALIGN): New macro.
11329         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
11330         rather than DECL_OFFSET_ALIGN.
11331         (place_field): Likewise.
11332         * expmed.c (store_bit_field): Abort on align==0 to avoid
11333         antisocial machine behaviour.
11334
11335 2000-08-12  Richard Henderson  <rth@cygnus.com>
11336
11337         * sibcall.c (uses_addressof): Accept both addressof and
11338         current_function_internal_arg_pointer inside a mem.
11339         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
11340         if current_function_uses_addressof.
11341         * stmt.c (expand_return): Kill tail recursion and HAVE_return
11342         optimizations.
11343
11344 2000-08-11  Richard Henderson  <rth@cygnus.com>
11345
11346         * config/ia64/ia64.md (addsi3): Remove expander.
11347         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
11348         (*addsi3_shladd): New.
11349
11350 2000-08-11  Richard Henderson  <rth@cygnus.com>
11351
11352         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
11353         (do_restore): Likewise.
11354         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
11355         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
11356         (rtx_needs_barrier): Track actual bit manipulation for
11357         ar.unat moves, gr_spill, and gr_restore.
11358         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
11359         (process_set): Don't handle varargs spills.
11360         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
11361         .mem.offset here instead of in process_set.
11362         (gr_restore): Likewise.
11363
11364 2000-08-11  Richard Henderson  <rth@cygnus.com>
11365
11366         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
11367
11368 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
11369
11370         * gcc.texi (The Configuration File): Document
11371         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
11372         UPDATE_PATH_HOST_CANONICALIZATION.
11373
11374 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11375
11376         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
11377         unprototyped function pointer casts on integer constants.
11378
11379 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
11380
11381         * fixproto: Recognize DOS paths with drive letters as absolute paths.
11382
11383 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
11384
11385         * extend.texi (Volatiles): Fix typos.
11386
11387 2000-08-11  Kazu Hirata  <kazu@hxi.com>
11388
11389         * flow.c: Fix formatting.
11390
11391 2000-08-11  Richard Henderson  <rth@cygnus.com>
11392
11393         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
11394         pattern, always allocate a tertiary scratch register.
11395
11396         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
11397         (reload_inhi): Likewise.
11398
11399 2000-08-11  Richard Henderson  <rth@cygnus.com>
11400
11401         * function.c (put_reg_into_stack): Allow type to be NULL.
11402         (schedule_fixup_var_refs): Likewise.
11403         (gen_mem_addressof): Allow decl to be NULL.
11404         (put_addressof_into_stack): Likewise.
11405
11406         * flow.c (merge_blocks_nomove): Be more careful about
11407         locating the beginning of block A.
11408
11409         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
11410
11411 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11412
11413         * configure.in:
11414         * configure:
11415         * gthr-posix.h:
11416         * config.in: Reverted the check for <sched.h>.
11417
11418 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
11419
11420         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
11421         macros define the name of CTOR and DTOR sections.
11422         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
11423         DTOR_LIST_END): Change to use attributes to specify
11424         sections.
11425         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
11426         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
11427         DTOR_LIST_END): Same as in mips/elf.h.
11428
11429 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
11430
11431         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
11432         disabling just crt0.o.
11433
11434 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
11435
11436         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
11437         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
11438         (EXTRA_SPECS): Add them.
11439         * arm/lib1funcs.asm: Support builds for interworking.
11440         Use macros to eliminate duplicated pieces of code.
11441
11442 2000-08-10  Kazu Hirata  <kazu@hxi.com>
11443
11444         * h8300.c (expand_a_rotate): New.
11445         (emit_a_rotate): Likewise.
11446         (h8300_adjust_insn_length): Add support for the rotate insns.
11447         * h8300.md (rotlqi3): New.
11448         (*rotlqi3_1): Likewise.
11449         (rotlhi3): Likewise.
11450         (*rotlhi3_1): Likewise.
11451         (rotlhi3): Likewise.
11452         (*rotlhi3_1): Likewise.
11453         * h8300-proto.h: Add prototypes for expand_a_rotate and
11454         emit_a_rotate.
11455
11456         * h8300.c: Fix comment typos.
11457         (dosize): Declare the variable amount as unsigned.
11458         (get_shift_alg): Fix a comparison between signed and unsigned.
11459         (emit_a_shift): Likewise.
11460         (h8300_adjust_insn_length): Simplify the code.
11461
11462         * c-decl.c: Fix formatting.
11463
11464 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11465
11466         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
11467         warning about non-traditional numeric constant suffixes.
11468
11469         * cppexp.c (parse_number): Likewise.
11470
11471         * invoke.texi: (-Wtraditional): Document new behavior.
11472
11473 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11474
11475         * gthr-posix.h: Include auto-host.h. Conditionally include
11476         <sched.h>.
11477         * configure.in: Check for the <sched.h> header file.
11478         * config.in: Added define for HAVE_SCHED_H.
11479
11480 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11481
11482         * c-typeck.c (process_init_element): For -Wtraditional, warn about
11483         initialization of unions.
11484
11485         * invoke.texi (-Wtraditional): Document new behavior.
11486
11487 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
11488
11489         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
11490         instead of extra_c_flags.
11491         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
11492         * configure: Regenerate.
11493         * config.in: Regenerate.
11494
11495         * cpperror.c (cpp_type2name): New function.
11496         * cpplex.c (lex_line): If we issued an error for an invalid
11497         preprocessing directive, discard that logical line.
11498         * cpplib.c (do_line): Call a hook function if the current file
11499         is renamed by #line.
11500         (do_ident): Pass the contents of the string, not the entire
11501         token, to the callback function.
11502         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
11503         (cb.rename_file): New hook function.
11504         (cb.ident): Adjust prototype.
11505         (cpp_type2name): Prototype.
11506         * cppmacro.c (dump_macro_args): Correct precedence lossage.
11507
11508         * cppmain.c (cb_ident): Update for changed interface.
11509         (cb_rename_file): New function.
11510         (main): Set rename callback.
11511
11512 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
11513
11514         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
11515         multi-word registers.
11516
11517 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11518
11519         * c-common.c (combine_strings, check_format_info): Refer to ISO C
11520         or ISO C89 instead of ANSI C.
11521         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
11522         build_enumerator, do_case): Likewise.
11523         * c-lex.c (parse_float, yylex): Likewise.
11524         * c-parse.in: Likewise.
11525         * c-typeck.c (common_type, build_array_ref, build_binary_op,
11526         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
11527         build_c_cast, convert_for_assignment, set_init_index,
11528         set_init_label, c_expand_start_case): Likewise.
11529         * toplev.c (documented_lang_options, display_help): Likewise.
11530
11531 2000-08-08  Kazu Hirata  <kazu@hxi.com>
11532
11533         * h8300.c: Fix formatting.
11534         * h8300.h: Likewise.
11535         * h8300.md: Likewise.
11536         (movsi_h8300hs): Fix formatting of the resulting assembly code.
11537
11538         * reload1.c: Fix formatting.
11539
11540 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
11541
11542         * alpha/alpha.c (alpha_emit_xfloating_libcall):
11543         Use GEN_CALL_VALUE define.
11544         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
11545         * clipper/clipper.md (untyped_call): Likewise.
11546         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
11547         * fx80/fx80.md (untyped_call): Likewise.
11548         * mips/mips.md (untyped_call): Likewise.
11549         * ns32k/ns32k.md (untyped_call): Likewise.
11550         * pa/pa.md (untyped_call): Likewise.
11551         * romp/romp.md (untyped_call): Likewise.
11552         * sparc/sparc.md (untyped_call): Likewise.
11553
11554 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
11555
11556         * config/i860/i860.c (singlemove_string): Do not generate assembler
11557         pseudo instructions that must be expanded (that is, with signed
11558         constants larger than 16 bits).
11559
11560 2000-08-08  Richard Henderson  <rth@cygnus.com>
11561
11562         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
11563         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
11564         (init_propagate_block_info): Don't kill memory stores at -O0.
11565         (mark_set_1, mark_used_regs): Likewise.
11566
11567 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
11568
11569         * rs6000.c (optimization_options): Decorate 'level' as
11570         ATTRIBUTE_UNUSED.
11571         (mask64_operand): Remove sign-extend thinko.
11572         (rldic_operand): New function.
11573         (load_multiple_operation): regno's are unsigned ints.
11574         (store_multiple_operation): Likewise.
11575         (lmw_operation): Likewise.
11576         (stmw_operation): Likewise.
11577         (includes_lshift_p): shift_mask is unsigned int.
11578         (includes_lshift64_p): New function.
11579         (addrs_ok_for_quad_peep): unsigned int reg1.
11580         (print_operand): Consistently add "else" after
11581         output_operand_lossage().
11582         (print_operand, case 'b'): Fold in case 'W'.
11583         (print_operand, case 'W'): Print rldic MB value.
11584         (output_epilogue): Update Objective-C language string.
11585         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
11586         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
11587         * rs6000.md (ashldi3): Add rldic instruction.
11588         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
11589         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
11590         modifier.
11591
11592 2000-08-08  Richard Henderson  <rth@cygnus.com>
11593
11594         * config/ia64/ia64-protos.h: Remove duplicates.  Update
11595         for massive code rearrangements.
11596         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
11597         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
11598         (ia64_local_regs, ia64_need_regstk): Remove.
11599         (ar_ccv_reg_operand): New.
11600         (ia64_gp_save_reg): New.
11601         (struct ia64_frame_info): Combine most of the size elements;
11602         add new gr save elements.
11603         (find_gr_spill): New.
11604         (next_scratch_gr_reg): New.
11605         (mark_reg_gr_used_mask): New.
11606         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
11607         to GR backing store regs when possible.
11608         (ia64_initial_elimination_offset): New.
11609         (ia64_rap_fp_offset): Remove.
11610         (save_restore_insns): Remove.
11611         (setup_spill_pointers): New.
11612         (finish_spill_pointers): New.
11613         (spill_restore_mem): New.
11614         (do_spill, do_restore): New.
11615         (ia64_expand_prologue): Rewrite to use them.
11616         (ia64_expand_epilogue): Likewise.
11617         (ia64_direct_return): Update for current_frame_info changes.
11618         (ia64_function_prologue): Simplify .prologue emission.  Emit
11619         .spill when needed.
11620         (ia64_setup_incoming_varargs): Don't ever emit rtl.
11621         (ia64_dbx_register_number): New.
11622         (ia64_initialize_trampoline): New.
11623         (ia64_secondary_reload_class): Request GR_REGS for integer
11624         arithmetic destined for FR_REGS.
11625         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
11626         (ia64_mark_machine_status): Mark ia64_gp_save.
11627         (rws_access_regno): Rename from rws_access_reg; don't treat
11628         predicates specially.
11629         (rws_access_reg): New.  Update all callers.
11630         (rtx_needs_barrier): Remove dead unspecs.
11631         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
11632         (ia64_encode_section_info): Silence signed/unsigned warnings.
11633         (spill_offset, sp_offset, spill_offset_emitted): Remove.
11634         (tmp_reg, tmp_saved): Remove.
11635         (process_set): Rewrite to expect complicated bits via
11636         REG_FRAME_RELATED_EXPR.
11637         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
11638         in the use of ar.ccv; never set RTX_UNCHANGING_P.
11639         (ia64_expand_op_and_fetch): Likewise.
11640         (ia64_expand_compare_and_swap): Likewise.
11641         (ia64_expand_builtin): Likewise.
11642         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
11643         (FIRST_PSEUDO_REGISTER): Update.
11644         (AR_M_REGNO_P): Update.
11645         (FIXED_REGS): Don't mark three local registers as used.
11646         (EXTRA_CC_MODES): New.
11647         (SELECT_CC_MODE): New.
11648         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
11649         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
11650         (FRAME_GROWS_DOWNWARD): Unset.
11651         (STARTING_FRAME_OFFSET): Zero.
11652         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
11653         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
11654         (HARD_FRAME_POINTER_REGNUM): New.
11655         (CAN_DEBUG_WITHOUT_FP): Define.
11656         (TRAMPOLINE_TEMPLATE): Remove.
11657         (TRAMPOLINE_SIZE): Lower to 32.
11658         (TRAMPOLINE_ALIGNMENT): Lower to 64.
11659         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
11660         (PREDICATE_CODES): Update.
11661         (struct machine_function): Add ia64_gp_save.
11662         * config/ia64/ia64.md: Purge unused unspecs.
11663         (movsi patterns): Allow moves to/from AR_M_REGS.
11664         (movdi patterns): Allow moves to/from p0.
11665         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
11666         (gr_spill, gr_restore): Indicate ar.unat read/written.
11667         (nonlocal_goto): Don't pass old frame_pointer.
11668         (nonlocal_goto_receiver): Remove.
11669         (exception_receiver): New.
11670         (builtin_setjmp_setup): New.
11671         (builtin_setjmp_receiver): New.
11672         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
11673         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
11674         (__ia64_restore_stack_nonlocal): Likewise.
11675         (__ia64_trampoline): New.
11676         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
11677         function.
11678         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
11679
11680 2000-08-08  Richard Henderson  <rth@cygnus.com>
11681
11682         * frame.h (ia64_frame_state): Add my_psp.
11683         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
11684         (__throw): Pass it in.  Don't clobber r7.
11685         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
11686         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
11687         and nothing to do with sp.
11688         (normalize_reg_loc): Use frame->my_psp.
11689         (frame_translate): Handle frame-pointer-less functions.  Set
11690         spill_base correctly, in absence of being told.
11691         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
11692         (__ia64_backtrace_helper): New sp argument.  Use
11693         builtin_return_address instead of label addresses.
11694         (print_record) [mem_stack_v]: No size member.
11695
11696 2000-08-08  Richard Henderson  <rth@cygnus.com>
11697
11698         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
11699
11700 2000-08-08  Richard Henderson  <rth@cygnus.com>
11701
11702         * tm.texi (LOCAL_REGNO): Document.
11703         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
11704         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
11705         * reload1.c (reload): Likewise when considering nonlocal labels.
11706
11707         * config/ia64/ia64.h (LOCAL_REGNO): New.
11708         * config/sparc/sparc.h (LOCAL_REGNO): New.
11709
11710 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11711
11712         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
11713
11714 2000-08-07  Nick Clifton  <nickc@redhat.com>
11715
11716         * config/mips/mips.c: Fix compile time warning messages.
11717         * config/mips/mips-protos.h: Add prototype for equality_op.
11718
11719         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
11720
11721 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
11722
11723         * mn10300.md: Use nonimmediate_operand instead of general_operand
11724         on output operands.
11725
11726         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
11727
11728 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
11729
11730         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
11731         * sh.c (expand_block_move): Break long lines.
11732         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
11733         * sh.md (mulsi3): Likewise.
11734         (movdi): Adjust spacing.
11735
11736 2000-08-07  Richard Henderson  <rth@cygnus.com>
11737
11738         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
11739         * expr.c (emit_group_store): Don't set it.
11740
11741 2000-08-07  Kazu Hirata  <kazu@hxi.com>
11742
11743         * invoke.texi (Options for Debugging Your Program or GCC): Remove
11744         duplicate entries for 'w' and 'z'.
11745
11746         * flow.c: Fix a comment typo.
11747
11748 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11749
11750         * c-parse.in: Changed the language string for Objective-C to "GNU
11751         Objective-C".
11752
11753 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11754
11755         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
11756         to improve the Posix thread support for Objective-C.
11757
11758 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
11759
11760         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
11761         CTI_UNSIGNED_PTRDIFF_TYPE.
11762         (signed_size_type_node): Define.
11763         (unsigned_ptrdiff_type_node): Define.
11764         * c-decl.c (init_decl_processing): Create the
11765         signed_size_type_node and unsigned_ptrdiff_type_node types.
11766         * c-common.c (T_SC): Define.
11767         (T_SST): Define.
11768         (T_UPD): Define.
11769         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
11770         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
11771         %s and %p.
11772         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
11773         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
11774         flags for %c, %s and %[.
11775         (check_format_info): Only allow leniency for signedness of targets
11776         of character pointers (when pedantic) for formats flagged with
11777         "c", so for strings but not for %hh formats.  When pedantic, don't
11778         allow character pointers to substitute for void pointers if a
11779         second level of indirection is present.
11780
11781 2000-08-06  Kazu Hirata  <kazu@hxi.com>
11782
11783         * invoke.texi (Options for Debugging Your Program or GCC): Update
11784         the names of dump files.
11785
11786         * h8300.c (dosize): Rearrange code for conciseness.
11787         (split_adds_subs): Likewise.
11788
11789         * loop.c: Fix formatting.
11790
11791         * dwarf2out.c: Fix formatting.
11792
11793         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
11794
11795         * expr.c: Fix formatting.
11796
11797 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11798
11799         * rs6000.c (rs6000_maybe_dead): Prototype.
11800
11801 2000-08-06  Richard Henderson  <rth@cygnus.com>
11802
11803         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
11804         HAVE_nonlocal_goto as well.
11805         * config/i960/i960.md (nonlocal_goto): Don't do it here.
11806         * config/pj/pj.md (nonlocal_goto): Likewise.
11807
11808 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
11809
11810         * loop.c (try_swap_copy_prop): New function.
11811         (load_mems): Rename copies to load_copies and add new regset
11812         store_copies.  Check for sets of shadow registers and mark
11813         in store_copies.   Call try_swap_copy_prop for registers
11814         marked in store_copies.
11815
11816 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
11817
11818         * objc/objc-act.c: New command line option -fconstant-string-class
11819         to allow specifying a user defined constant string class,
11820         different from NXConstantString.
11821
11822         * toplev.c: Moved the Objective-C specific options to
11823         objc/lang-options.h.
11824
11825         * objc/lang-options.h: Moved the Objective-C specific options from
11826         toplev.c. Added -fconstant-string-class.
11827
11828 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
11829
11830         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
11831         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
11832         __CTOR_LIST__ from func_ptr array to just func_ptr, to
11833         avoid extra alignment imposed on arrays.
11834         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
11835         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
11836
11837         * mips.h: Clean up comments and spacing near MASKs.
11838         (TARGET_UNIX_ASM): Delete.
11839         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
11840         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
11841         values contiguous.
11842
11843 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
11844
11845         * c-common.c (print_char_table): Add entries for the X/Open '
11846         format flag (print decimals with locale's thousands grouping
11847         character).  Make %C expect wint_t.
11848         (check_format_info): If pedantic, warn when the %n$ operand
11849         number form is used.  Allow for the ' flag; warn about it if
11850         pedantic.
11851
11852 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
11853
11854         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
11855         type is a float mode, cfun->decl's return type is not, and
11856         TARGET_FLOAT_RETURNS_IN_80387.
11857
11858 2000-08-04  Andreas Schwab  <schwab@suse.de>
11859
11860         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
11861         token list, which are always `#' and `pragma'.
11862
11863 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
11864
11865         * tree.c (tree_expr_nonnegative_p): Move to...
11866         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
11867         (rtl_expr_nonnegative_p): New.
11868         * tree.h: Add prototype for rtl_expr_nonnegative_p.
11869
11870         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
11871         CONST_DOUBLE_CHAIN: Move to...
11872         * rtl.h: ...here.  Use XCINT/XCEXP.
11873
11874         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
11875         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
11876         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
11877         to VOL_FILES.
11878
11879         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
11880
11881 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11882
11883         * config/c4x/c4x.md (return_indirect_internal): New.
11884         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
11885
11886 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11887
11888         * c-common.c (time_char_table): Mark up formats added in C99 and
11889         make other corrections.  %D and %g were added in C99.  %Og is an
11890         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
11891         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
11892         C99 rather than GNU extensions, but %OG and %Oz are extensions.
11893         %h was added in C99.  %C was added in C99.  %OY and %OC are
11894         extensions.  Add the C99 format %F.
11895         (check_format_info): If pedantic and not in C99 mode, warn for C99
11896         formats, %E and %O.
11897
11898 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11899
11900         * function.c (schedule_fixup_var_refs): New function, broken out
11901         of put_reg_into_stack.
11902         (put_reg_into_stack): Use it.
11903         (put_var_into_stack): In CONCAT case, fixup up references for
11904         components only after fixing up references to the whole concat.
11905
11906 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
11907
11908         * alias.c (mark_constant_function): Use INSN_P.
11909         (init_alias_analysis): Likewise.
11910         * combine.c (combine_instructions): Use INSN_P.
11911         (can_combine_p): Likewise.
11912         (try_combine): Likewise.
11913         (distribute_notes): Likewise.
11914         (distribute_links): Likewise.
11915         * cse.c (cse_around_loop): Use INSN_P.
11916         (invalidate_skipped_block): Likewise.
11917         (cse_set_around_loop): Likewise.
11918         (cse_end_of_basic_block): Likewise.
11919         (delete_trivially_dead_insns): Likewise.
11920         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
11921         (unshare_all_rtl_1): Likewise.
11922         (next_cc0_user): Likewise.
11923         (try_split make_insn_raw): Likewise.
11924         (remove_unnecessary_notes): Likewise.
11925         * final.c (shorten_branches): Use INSN_P.
11926         (leaf_renumber_regs): Likewise.
11927         (leaf_renumber_regs_insn): Likewise.
11928         * flow.c (find_label_refs): Use INSN_P.
11929         (verify_wide_reg): Likewise.
11930         (notice_stack_pointer_modification): Likewise.
11931         (count_or_remove_death_notes): Likewise.
11932         (verify_flow_info): Likewise.
11933         (clear_log_links): Likewise.
11934         * function.c (fixup_var_refs_insns): Use INSN_P.
11935         (compute_insns_for_mem): Likewise.
11936         * gcse.c (alloc_gcse_mem): Use INSN_P.
11937         (compute_sets): Likewise.
11938         (compute_hash_table): Likewise.
11939         (classic_gcse): Likewise.
11940         (cprop): Likewise.
11941         (insert_insn_end_bb): Likewise.
11942         (delete_null_pointer_checks_1): Likewise.
11943         * global.c (expand_preferences): Use INSN_P.
11944         (build_insn_chain): Likewise.
11945         * graph.c (node_data): Use INSN_P.
11946         * haifa-sched.c (priority): Use INSN_P.
11947         (rm_line_notes): Likewise.
11948         (rm_other_notes): Likewise.
11949         (find_insn_reg_weight): Likewise.
11950         (init_target_units): Likewise.
11951         (schedule_block): Likewise.
11952         (compute_block_forward_dependences): Likewise.
11953         (debug_dependencies): Likewise.
11954         (set_priorities): Likewise.
11955         * integrate.c (function_cannot_inline_p): Use INSN_P.
11956         (save_parm_insns): Likewise.
11957         (copy_insn_list): Likewise.
11958         * jump.c (mark_all_labels): Use INSN_P.
11959         (never_reached_warning): Likewise.
11960         * lcm.c (optimize_mode_switching): Use INSN_P.
11961         * local-alloc.c (validate_equiv_mem): Use INSN_P.
11962         (memref_used_between_p): Likewise.
11963         (update_equiv_regs): Likewise.
11964         (block_alloc): Likewise.
11965         (no_conflict_p): Likewise.
11966         * loop.c (scan_loop): Use INSN_P.
11967         (find_and_verify_loops): Likewise.
11968         (count_loop_regs_set): Likewise.
11969         (loop_reg_used_before_p): Likewise.
11970         (strength_reduce): Likewise.
11971         (recombine_givs): Likewise.
11972         (check_dbra_loop): Likewise.
11973         (load_mems): Likewise.
11974         (try_copy_prop): Likewise.
11975         * print-rtl.c (print_rtx): Use INSN_P.
11976         * recog.c (find_single_use): Use INSN_P.
11977         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
11978         (next_flags_user): Likewise.
11979         (swap_rtx_condition): Likewise.
11980         * regmove.c (mark_flags_life_zones): Use INSN_P.
11981         (optimize_reg_copy_1): Likewise.
11982         (optimize_reg_copy_2): Likewise.
11983         (optimize_reg_copy_3): Likewise.
11984         (reg_is_remote_constant_p): Likewise.
11985         (fixup_match_2): Likewise.
11986         (regmove_optimize): Likewise.
11987         (fixup_match_1): Likewise.
11988         * regrename.c (build_def_use): Use INSN_P.
11989         (replace_reg_in_block): Likewise.
11990         (consider_use): Likewise.
11991         * reload.c (find_equiv_reg): Use INSN_P.
11992         * reload1.c (reload): Use INSN_P.
11993         (maybe_fix_stack_asms): Likewise.
11994         (calculate_needs_all_insns): Likewise.
11995         (reload_as_needed): Likewise.
11996         (emit_output_reload_insns): Likewise.
11997         (delete_address_reloads_1): Likewise.
11998         (reload_cse_regs_1): Likewise.
11999         (reload_combine): Likewise.
12000         (reload_cse_move2add): Likewise.
12001         * reorg.c (redundant_insn): Use INSN_P.
12002         (dbr_schedule): Likewise.
12003         * resource.c (find_dead_or_set_registers): Use INSN_P.
12004         (mark_target_live_regs): Likewise.
12005         * rtlanal.c (reg_used_between_p): Use INSN_P.
12006         (reg_referenced_between_p): Likewise.
12007         (reg_set_between_p): Likewise.
12008         (reg_set_p): Likewise.
12009         (single_set): Likewise.
12010         (multiple_sets): Likewise.
12011         (find_last_value): Likewise.
12012         (reg_set_last): Likewise.
12013         (find_reg_note): Likewise.
12014         (find_regno_note): Likewise.
12015         * sibcall.c (sequence_uses_addressof): Use INSN_P.
12016         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
12017         * ssa.c (find_evaluations): Use INSN_P.
12018         (rename_block): Likewise.
12019         (rename_equivalent_regs): Likewise.
12020         * unroll.c (loop_find_equiv_value): Use INSN_P.
12021         (set_dominates_use): Likewise.
12022         * varasm.c (mark_constant_pool): Use INSN_P.
12023         (mark_constants): Likewise.
12024         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
12025         (alphaev4_next_group): Likewise.
12026         (alphaev5_next_group): Likewise.
12027         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
12028         (c4x_rptb_rpts_p): Likewise.
12029         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
12030         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
12031         (rs6000_adjust_priority): Likewise.
12032         * config/sh/sh.c (sh_loop_align): Use INSN_P.
12033         (machine_dependent_reorg): Likewise.
12034         (split_branches): Likewise.
12035         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
12036
12037 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
12038
12039         * combine.c (recog_for_combine): Remove the old notes
12040         prior to attempting to recognize the new pattern.
12041         (distribute_notes): Ignore REG_NONNEG notes.
12042
12043 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
12044
12045         * varasm.c (output_constructor): Add .align 0 for packed vars.
12046
12047 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
12048
12049         * configure.in: Use default thread_file even when enable_threads is
12050         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
12051         * configure: Rebuilt.
12052
12053         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
12054
12055 2000-08-04  Donn Terry (donnte@microsoft.com)
12056
12057         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
12058
12059 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
12060
12061         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
12062         Delete code that conditionally modifies 'version'.
12063         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
12064         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
12065         * gcc.c (main): Use it.
12066         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
12067         * prefix.c (update_path): Use it.
12068         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
12069         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
12070         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
12071         code.
12072         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
12073         (SUBTARGET_SWITCHES): Adjust.
12074         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
12075         defining.
12076         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
12077
12078 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12079
12080         * c-common.h (flag_isoc94): Declare.
12081         * c-decl.c (flag_isoc94): Define.
12082         (c_decode_option): Set flag_isoc94 as appropriate.
12083         * c-common.c (T_PD, T_IM, T_UIM): Define.
12084         (format_char_info): Add tlen and jlen.
12085         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
12086         %F.  Allow %lf.
12087         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
12088         %l[.
12089         (time_char_table): Add NULL entries for %t and %j.
12090         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
12091         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
12092         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
12093         precision.  Allow precision argument to be unsigned int.  If
12094         pedantic, warn for %p passed an argument not a pointer to possibly
12095         qualified void or a possibly qualified character type, and for
12096         pointer targets of the wrong sign, except for character pointers.
12097
12098 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12099
12100         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
12101         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
12102         (wint_type_node): Define.
12103         * c-decl.c (WINT_TYPE): Define.
12104         (init_decl_processing): Create the wint_type_node type.
12105         * c-common.c (T_WI): Define.
12106         (print_char_table): Use T_WI for %lc format.
12107
12108 2000-08-04  Bruce Korb  <bkorb@gnu.org>
12109
12110         * fixinc/:  Verified that the MSDOS patch does not break
12111         the UNIX functionality and applied the next three patches
12112         from July:
12113
12114 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
12115
12116         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
12117         output file with the temporary one by appending ".X" to generate
12118         the temporary fuile's name.  If the output file already has an
12119         extension, replace it with ".X".
12120
12121         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
12122         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
12123         reallocate the command buffer while copying the command-line
12124         argument.  Redirect the output directly to the temporary file,
12125         instead of going through another temporary file.
12126         (process): Close the temporary file before unlinking it.
12127         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
12128         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
12129         (run_compiles): Pass p_fixd argument to machine_matches, as it
12130         expects.
12131
12132         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
12133         environment, assume there are no symlinks in the include
12134         directory.  When cleaning up the DONE files, look for them
12135         case-insensitively.  Don't try to remove symlinks if they aren't
12136         there.
12137
12138         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
12139         all callers changed.  Declare pz "const char *", to avoid compiler
12140         warnings.
12141
12142         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
12143         Change prototype of make_raw_shell_str.
12144
12145 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
12146
12147         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
12148         (initialize) [__MSDOS__]: Use tempnam.
12149         (initialize): Don't use SIGPIPE if it is not defined.
12150
12151         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
12152         return stdout.
12153
12154 2000-07-25  Bruce Korb  <bkorb@gnu.org>
12155
12156         * fixinc/fix*.[ch]: substantially reworked to make it possible
12157         to run this program without using fork(2) or pipe(2) (i.e. in
12158         a DOS environment).
12159
12160 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12161
12162         * cppdefault.h (WINT_TYPE): Define.
12163         * cppinit.c (builtin_array): Define __WINT_TYPE__.
12164         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
12165         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
12166
12167 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
12168
12169         * (mips_legitimate_address_p): Don't allow register+offset
12170         if the offset is large and negative, and we are compiling
12171         for 64 bit registers.
12172
12173 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12174
12175         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
12176         insn_code_number + 1.
12177
12178 2000-08-04  Kazu Hirata  <kazu@hxi.com>
12179
12180         * h8300.c (function_prologue): Rearrange code for conciseness.
12181         (function_epilogue): Likewise.
12182         * h8300.h (OK_FOR_U): Fix formatting.
12183
12184         * cse.c: Fix a comment typo. Fix formatting.
12185
12186 2000-08-03  Richard Henderson  <rth@cygnus.com>
12187
12188         * config/i386/i386.md (return_indirect_internal): New.
12189         * config/i386/i386.c (ix86_expand_epilogue): Use it.
12190
12191 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
12192
12193         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
12194         before the name.
12195         (lex_line): Glue @ onto the beginning of identifiers and
12196         string constants, in Objective-C mode.
12197         (output_token, spell_token): Handle CPP_OSTRING.
12198         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
12199         beginning of a NAME or a STRING, in objc mode.
12200
12201         * cpplib.c (get_define_node): Do not permit identifiers that
12202         begin with @ to be #defined.
12203         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
12204         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
12205
12206         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
12207         * c-tree.h (build_objc_string): Delete prototype.
12208         * objc/objc-tree.def: Delete OBJC_STRING_CST.
12209         * c-lex.c (yylex): Use build_string for all three kinds of strings.
12210
12211         * c-parse.in, objc/objc-act.c: Update commentary.
12212
12213 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
12214
12215         * extend.texi: Fix typo in last change.
12216
12217         * extend.texi: Add commentary on statement-expressions and their
12218         interactions with C++.
12219
12220 2000-08-03  Nick Clifton  <nickc@cygnus.com>
12221
12222         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
12223         * dwarf.h (LANG_JAVA): Change value to 0x000b.
12224
12225 2000-08-03  Anthony Green  <green@cygnus.com>
12226
12227         * dwarf2out.c (gen_compile_unit_die): Add java language support.
12228         (add_bound_info): Check for java language.
12229         (is_java): New function.
12230         * dwarfout.c (output_compile_unit_die): Ditto.
12231         * dwarf.h (dwarf_source_language): Add java source language type.
12232         * dwarf2.h (dwarf_source_language): Ditto.
12233
12234 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12235
12236         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
12237         operands.
12238
12239         * i386.c (ix86_expand_branch): Mode of comparison in
12240         IF_THEN_ELSE is VOIDmode.
12241
12242 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
12243
12244         * gengenrtl.c, rtl.c: Avoid #elif.
12245
12246 2000-08-03  Michael Poole  <poole@troilus.org>
12247
12248         * tm.texi (Register Classes): Clarify order of sub-initializers
12249         in REG_CLASS_CONTENTS.
12250
12251 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12252
12253         From SAITOH Masanobu:
12254         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
12255
12256 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
12257
12258         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
12259         is not supported by tradcpp and isn't actually needed for cygwin.
12260
12261 2000-08-03  Kazu Hirata  <kazu@hxi.com>
12262
12263         * h8300.c: Fix a comment typo.
12264         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
12265
12266         * jump.c: Fix formatting.
12267
12268         * toplev.c: Fix formatting.
12269
12270 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
12271
12272         * flow.c (find_auto_inc): Verify that we've got a REG before
12273         peeking at its regno.  Fail, don't abort if we can't find
12274         the increment of the desired register.
12275
12276         * pa.md (shadd height reduction patterns/splitters): Remove.
12277
12278 2000-08-02  Jim Wilson  <wilson@cygnus.com>
12279
12280         * config/ia64/ia64-protos.h (flag_ssa): Declare.
12281         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
12282
12283 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
12284
12285         * dce.c: Remove all uses of assert.
12286         * dwarf2out.c: Likewise.
12287         * dwarfout.c: Likewise.
12288         * ssa.c: Likewise.
12289
12290 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12291
12292         * gcc.h (lang_specific_driver): Constify second argument.
12293         * gcc.c (translate_options, process_command, main): Likewise.
12294         Constify variables to match.  Cast second argument to
12295         pexecute.
12296
12297         * cppspec.c, gccspec.c: Adjust type of second argument to
12298         lang_specific_driver, and update code as necessary.
12299
12300 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
12301
12302         * loop.c (scan_loop): Ensure update_end label does not
12303         go away until reg_scan_update is run.
12304
12305 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12306
12307         * c-common.h: Prototype min_precision and c_build_qualified_type here...
12308         * c-tree.h: ... not here.
12309         * errors.h: Prototype fancy_abort.
12310
12311         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
12312         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
12313         * regrename.c (regrename_optimize): Make control flow explicit.
12314         (replace_reg_in_block): Initialize reg_use to 0.
12315
12316         * i386.c (legitimate_address_p): Rename error label to
12317         report_error to avoid namespace clash.
12318
12319 2000-08-02  Kazu Hirata  <kazu@hxi.com>
12320
12321         * fold-const.c: Fix formatting.
12322
12323 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12324
12325         * i386.c (legitimate_address_p): Accept other bases than
12326         pic_offset_table_rtx for GOTOFF constructs.
12327
12328 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12329
12330         * i386.md (shift to lea splitter): Use const_int_operand.
12331
12332 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
12333
12334         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
12335         cppspec.c: Do not use 'legal' or 'illegal' in error messages
12336         and comments.
12337
12338         * cppmain.c (cb_define, cb_undef): Don't generate any output
12339         if not done_initializing.
12340         * cpplex.c (maybe_paste_with_next): When the token after a ##
12341         is an omitted rest argument, only delete the token before it
12342         if that token is a comma.  Do not warn about bogus token
12343         pastes for , ## rest_arg.
12344
12345         * cpp.texi: Update.
12346         * cpp.1: Regenerate.
12347
12348 2000-08-02  Fred Fish  <fnf@be.com>
12349
12350         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
12351         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
12352         and later.
12353
12354         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
12355         Be directories to search path.
12356
12357         Remove support for __declspec(dllimport) and __declspec(dllexport).
12358         This is leftover cruft from the earlier BeOS gcc port when BeOS
12359         used Microsoft's PE object file format.
12360         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
12361         * config/i386/t-beos (winnt.o): Remove Makefile frag.
12362         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
12363         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
12364         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12365         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
12366         (REDO_SECTION_INFO_P): Remove.
12367         (ASM_EXPORT_DECL): Remove.
12368         (ASM_DECLARE_FUNCTION_NAME): Remove.
12369         (ASM_DECLARE_OBJECT_NAME): Remove.
12370         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
12371         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
12372         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
12373         (STRIP_NAME_ENCODING): Remove.
12374
12375         Remove support for obsolete version of BeOS that is no longer
12376         supported by Be.
12377         * configure.in (i*86-*-beospe*): Remove.
12378         * config/i386/beos-pe.h: Remove.
12379
12380 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
12381             Mark Mitchell <mark@codesourcery.com>
12382
12383         * Makefile.in (OBJS): Added dce.o.
12384         (ssa.o): Updated target to include ssa.h.
12385         (flow.o): Likewise.
12386         (toplev.o): Likewise.
12387         (dce.o): Created target.
12388         * basic-block.h: Added comments.
12389         (INVALID_BLOCK): Added definition.
12390         (connect_infinite_loops_to_exit): Added declaration.
12391         Moved SSA declarations to ssa.h.
12392         * flow.c: Added inclusion of ssa.h.
12393         (struct depth_first_search_dsS, depth_first_search_ds):
12394         Added definitions.
12395         (compute_immediate_postdominators): Added definition.
12396         (connect_infinite_loops_to_exit): Likewise.
12397         (flow_dfs_compute_reverse_init): Likewise.
12398         (flow_dfs_compute_reverse_add_bb): Likewise.
12399         (flow_dfs_compute_reverse_execute): Likewise.
12400         (flow_dfs_compute_reverse_finish): Likewise.
12401         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
12402         (LABEL_P): Added definition.
12403         (JUMP_P): Likewise.
12404         (NOTE_P): Likewise.
12405         (BARRIER_P): Likewise.
12406         (JUMP_TABLE_DATA_P): Likewise.
12407         (INSN_DEAD_CODE_P): Likewise.
12408         * ssa.c: Replaced inclusions with ssa.h inclusion.
12409         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
12410         (rename_registers): Removed unnecessary variables.
12411         * ssa.h: Created by moving declarations from ssa.c and
12412         basic-block.h.
12413         * timevar.def: Defined TV_DEAD_CODE_ELIM.
12414         * toplev.c: Added ssa.h inclusion.
12415         (dump_file_index): Added DFI_dce.
12416         (dump_file): Added "dce" entry.
12417         Defined flag_ssa.
12418         (f_options): Added dce entry.
12419         * invoke.texi: Document -fdce.  Emphasize experimental status of
12420         -fssa.
12421         * dce.c: New file.
12422
12423 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
12424
12425         * cpperror.c (v_message): Split into _cpp_begin_message and
12426         v_message macro.  All callers updated.
12427         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
12428         checks here.
12429
12430         * cppfiles.c (cpp_syshdr_flags): New function.
12431         (read_include_file): Don't call cpp_output_tokens.  Call
12432         enter_file hook.
12433         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
12434         (cpp_reader_init): Don't initialize token_buffer.  Call
12435         _cpp_init_internal_pragmas.
12436         (cpp_cleanup): Don't clear token_buffer.
12437         (cpp_start_read): Don't worry about output from -D processing.
12438         Don't call cpp_output_tokens.
12439         (cpp_finish): Don't dump macros here.  Don't call
12440         cpp_output_tokens.
12441         * cppmacro.c (_cpp_dump_definition): Rename
12442         cpp_dump_definition.  Write directly to a FILE *.
12443         (dump_funlike_macro): Delete.
12444         (dump_macro_args): New.
12445
12446         * cpplex.c (TOKEN_LEN): Convert to inline function.
12447         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
12448         cpp_scan_line, _cpp_dump_list): Delete.
12449         (cpp_printf, cpp_output_list): New.
12450         (output_line_command): Don't worry about entering or leaving files.
12451         (cpp_scan_buffer): Just output each token as we hit it.
12452         (process_directive): Don't call cpp_output_tokens.
12453         (_cpp_glue_header_name): Don't use token_buffer.
12454         (output_token, dump_param_spelling): Write directly to a FILE *.
12455
12456         * cpplib.c (pass_thru_directive, dump_macro_name,
12457         pragma_dispatch, do_pragma_gcc): Delete.
12458         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
12459         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
12460         functions.
12461         (do_error, do_warning, pragma_dependency): Call
12462         _cpp_begin_message, then cpp_output_list.
12463         (cpp_register_pragma, cpp_register_pragma_space,
12464         _cpp_init_internal_pragmas): New.
12465         (do_pragma): Walk the pragmas table here.
12466         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
12467         do_pragma_dependency): Return void.
12468         (do_pragma_implementation): Moved to cppmain.c.
12469
12470         * cpplib.h: Update prototypes.
12471          (struct cpp_reader): Remove printer, token_buffer,
12472         token_buffer_size, and limit.  Add struct cb, and pragmas.
12473         (struct cpp_printer): Remove last_id and written.
12474         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
12475         CPP_ADJUST_WRITTEN): Delete.
12476         * cpphash.h: Update prototypes.
12477         (ufputs): New wrapper.
12478
12479         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
12480         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
12481         (main): Set up callbacks.  Register #pragma implementation.
12482         Dump macros from here.
12483
12484 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
12485
12486         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
12487         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
12488         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
12489         insns if they have a REG_MAYBE_DEAD note attached.
12490         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
12491         (rs6000_emit_load_toc_table): TOC loads may go dead.
12492
12493 2000-08-01  Jim Wilson  <wilson@cygnus.com>
12494
12495         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
12496         type exists before using it.  Use number of words as alignment
12497         otherwise.
12498         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
12499         ia64_va_arg): Propagate ia64_function_args changes here.
12500
12501 2000-08-01  Richard Henderson  <rth@cygnus.com>
12502
12503         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
12504         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
12505
12506 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
12507
12508         From Joern Rennecke:
12509         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
12510         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
12511         unless TARGET_SH3E is set.
12512         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
12513
12514         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
12515         (ashlsi3_std): New pattern.
12516         (ashlsi3 expander): Use it for TARGET_SH3.
12517         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
12518
12519 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12520
12521         * loop.c (canonicalize_condition):  Use destination, not source to
12522         determine SET's mode.
12523
12524 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
12525
12526         * flow.c (clear_log_links): Fix typo.
12527
12528 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
12529
12530         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
12531         on targets which need more than one insn for a compare/cbranch
12532         operation.
12533
12534 2000-07-31  Jim Wilson  <wilson@cygnus.com>
12535
12536         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
12537         when computing offset.
12538
12539 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
12540
12541         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
12542
12543 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
12544
12545         * flow.c (clear_log_links): Nuke global_live_at_start and
12546         global_live_at_end data, since if the log_links stuff is invalid
12547         so is global_live_at_*.
12548
12549 2000-07-31  Richard Henderson  <rth@cygnus.com>
12550
12551         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
12552
12553 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
12554
12555         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
12556         (_cpp_get_token): Don't macro expand a just pasted token if it
12557         was pasted at no_expand_level.
12558
12559 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12560
12561         * cppmacro.c (find_param, count_params, save_expansion):
12562         Permit 'defined' as a macro parameter name.
12563
12564 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12565
12566         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
12567         xcpp to cpp throughout.
12568         (native): Remove unnecessary dependency on cpp.
12569
12570         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
12571         tradcpp to tradcpp0.
12572         (.i spec): Add missing output-file spec to cc1 command line.
12573         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
12574
12575 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
12576
12577         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
12578         (implicit_decl_warning): New function.
12579         (implicitly_declare): Use it.
12580         * c-typeck.c (build_external_ref): Use implicit_decl_warning
12581         to complain about implicit decls of builtins.
12582
12583         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
12584         based on pedantic && flag_isoc99, if not already set.
12585         * c-tree.h: Declare mesg_implicit_function_declaration.
12586         Prototype implicit_decl_warning.
12587
12588 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
12589
12590         * Makefile.in (ssa.o): Updated header files in dependences.
12591         * basic-block.h: Added compute_immediate_postdominators declaration.
12592         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
12593         definition.
12594         * flow.c (compute_immediate_dominators): Updated comment.
12595         (compute_immediate_postdominators): Added definition.
12596         * rtl.h (HARD_REGISTER_P): Added definition.
12597         * ssa.c: Include additional header files.
12598         (assert): Added definition.
12599         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
12600         include select hard registers.
12601         (ssa_rename_to_insert): Likewise.
12602         (ssa_rename_from_initialize): Likewise.
12603         (ssa_rename_from_lookup): Likewise.
12604         (original_register): Likewise.
12605         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
12606         include select hard reigsters.
12607         (ssa_rename_from_traverse): Likewise.
12608         (ssa_rename_from_free): Likewise.
12609         (ssa_rename_from_print): Likewise.
12610         (ssa_rename_from_print_1): Likewise.
12611         (ssa_rename_from_hash_function): Likewise.
12612         (ssa_rename_from_equal): Likewise.
12613         (ssa_rename_from_delete): Likewise.
12614         (simplify_to_immediate_dominators): Removed in favor of
12615         flow.c:compute_immediate_dominators.
12616         (find_evaluations_1): Modified to work with hard registers.
12617         (insert_phi_node): Likewise.
12618         (insert_phi_nodes): Likewise.
12619         (struct rename_set_data): Updated prev_reg comment.
12620         (create_delayed_rename): Modified to work with hard registers.
12621         (RENAME_NO_RTX): Updated comment.
12622         (apply_delayed_renames): Modified to work with hard registers.
12623         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
12624         (rename_block): Updated to use revised ssa_rename_to interface.
12625         (rename_registers): Updated to use revised ssa_rename_to and
12626         ssa_rename_from interface.
12627         (convert_to_ssa): Revised to use compute_immediate_dominators and
12628         deal with hard registers.
12629         (make_regs_equivalent_over_bad_edges): Modified to work with hard
12630         registers.  Added check for illegal unification of hard register.
12631         (make_equivalent_phi_alternatives_equivalent): Modified to work
12632         with hard registers.
12633         (compute_conservative_reg_partition): Likewise.
12634         (coalesce_if_unconflicting): Modified to work with hard registers
12635         and check for conflicting hard registers.
12636         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
12637         registers.
12638         (rename_equivalent_regs_in_insn): Modified to work with hard
12639         registers.
12640         (record_canonical_element_1): Added definition.
12641         (check_hard_regs_in_partition): Added definition.
12642         (convert_from_ssa): Added data structure deallocation and check
12643         for illegal hard register unification.
12644         (conflict_hard_regs_p): Added definition.
12645         * toplev.c (rest_of_compilation): Added comment.
12646
12647 2000-07-31  Anthony Green  <green@redhat.com>
12648
12649         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
12650
12651 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
12652
12653         * builtins.c (expand_builtin_apply): Don't defer pop during
12654         argument setup.
12655
12656 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12657
12658         * calls.c (combine_pending_stack_adjustment_and_call): Only use
12659         preferred_unit_stack_boundary when it is > 1.
12660
12661 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12662
12663         * c-common.c (init_function_format_info): Add C99 format functions
12664         in C99 mode.
12665
12666         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
12667         void' or 'register void' as being the special case of 'void' alone
12668         in a parameter list.
12669
12670         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
12671         discarding qualifiers into a plain warning.
12672
12673 2000-07-31  Kazu Hirata  <kazu@hxi.com>
12674
12675         * combine.c: Fix formatting.
12676
12677         * h8300.md: Fix formatting.
12678
12679         * local-alloc.c: Fix formatting.
12680
12681         * h8300.c (get_shift_alg): Remove the variable alg.
12682         (emit_a_shift): Rearrange code to improve readability.
12683
12684         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
12685
12686         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
12687         HImode on all architectures and a combination of HImode and SImode
12688         on H8/300H and H8/S.
12689
12690         * h8300.c (split_adds_subs): Rearrange code for conciseness.
12691
12692 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12693
12694         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
12695         in my last checkin.
12696
12697 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12698
12699         * recog.c (extract_insn): Set operand_mode according to
12700         operand if match_operand is VOIDmode.
12701
12702 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12703
12704         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
12705
12706 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
12707
12708         * c-parse.in (extdefs): Call ggc_collect between external
12709         definitions.
12710
12711 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
12712             Richard Henderson  <rth@cygnus.com>
12713
12714         * Makefile.in (OBJS): Add doloop.o.
12715         * doloop.c: New file.
12716
12717         * final.c (insn_current_reference_address): Return 0 before final.
12718         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
12719         * jump.c (any_uncondjump_p): Likewise.
12720         * loop.c (indirect_jump_in_function): Make static.
12721         (strength_reduce): Call doloop_optimize.
12722         (insert_bct, instrument_loop_bct): Remove.
12723         * loop.h (doloop_optimize): Prototype.
12724         * recog.c (split_all_insns): Split all INSN_P.
12725         * toplev.c (flag_branch_on_count_reg): Default on.
12726
12727         * config/c4x/c4x.c (c4x_optimization_options): Don't set
12728         flag_branch_on_count_reg.
12729         * config/i386/i386.c (override_options): Likewise.
12730         * config/rs6000/rs6000.c (optimization_options): Likewise.
12731
12732         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
12733         (doloop_end): New.
12734         (dbra_ge): Remove, as well as all it's splitters.
12735
12736         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
12737         (doloop_end): New.
12738
12739         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
12740         (ia64_register_move_cost): Declare.
12741         * config/ia64/ia64.c (ar_lc_reg_operand): New.
12742         (struct ia64_frame_info): Add ar_size.
12743         (ia64_compute_frame_size): Set it.
12744         (save_restore_insns): Save and restore ar.lc.
12745         (ia64_register_move_cost): New, moved from header file.  Handle
12746         application registers.
12747         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
12748         (emit_insn_group_barriers): Special case doloop_end_internal.
12749         (ia64_epilogue_uses): Mark ar.lc live at end.
12750         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
12751         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
12752         (FIRST_PSEUDO_REGISTER): Make room.
12753         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
12754         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
12755         (REG_ALLOC_ORDER): Update.
12756         (HARD_REGNO_MODE_OK): Update.
12757         (REGISTER_NAMES): Update.
12758         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
12759         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
12760         (REGNO_REG_CLASS): Update.
12761         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
12762         (REGISTER_MOVE_COST): Move out of line.
12763         (PREDICATE_CODES): Update.
12764         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
12765         (addsi3_plus1_alt, adddi3_plus1_alt): New.
12766         (shladd_elim splitter): Allow constants in the predicate.
12767         (doloop_end, doloop_end_internal): New.
12768
12769 2000-07-30  Richard Henderson  <rth@cygnus.com>
12770
12771         * genattrtab.c (struct insn_def): Add lineno member.
12772         (struct insn_ent): Likewise.
12773         (struct attr_desc): Likewise.
12774         (struct delay_desc): Likewise.
12775         (struct function_unit_op): Likewise.
12776         (struct function_unit): Likewise.
12777         (check_attr_value): Use message_with_line.
12778         (check_defs): Likewise.
12779         (expand_units): Likewise.
12780         (check_attr_test): Take a lineno argument.
12781         (gen_attr): Likewise.
12782         (gen_insn): Likewise.
12783         (gen_delay): Likewise.
12784         (gen_unit): Likewise.
12785         (main): Give it to them.
12786         (convert_set_attr_alternative): Take an insn_def argument
12787         instead of num_alt and insn_index.
12788         (convert_set_attr): Likewise.
12789         (write_test_expr): Protect INSN_ADDRESSES load
12790         with INSN_ADDRESSES_SET_P.
12791
12792 2000-07-30  Richard Henderson  <rth@cygnus.com>
12793
12794         * flow.c (init_propagate_block_info): Use pc_set.
12795
12796 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12797
12798         * i386.md (*lea_general_[123]) New insns and splits.
12799         (addsi3 to lea splitter): Handle other modes too.
12800         (shlsi3 to lea splitter): Likewise.
12801         (addhi_1_lea, shlhi_1_lea): New patterns.
12802         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
12803
12804 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12805
12806         * recog.c (general_operand, nonimmediate_operand): Accept
12807         any mode for VOIDmode CONSTANT_P operands.
12808
12809 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12810
12811         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
12812         instead of replace_rtx.
12813         * recog.c (validate_replace_rtx_subexp): New function.
12814         * recog.h (validate_replace_rtx_subexp): Declare.
12815
12816 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12817
12818         * combine.c (simplify_set, make_extraction, make_compound_operation
12819         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
12820         as force_to_mode argument.
12821
12822 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12823
12824         * combine.c (if_then_else_cond): Be sure that mode fits in
12825         HOST_WIDE_INT.
12826
12827 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12828
12829         * combine.c (record_promoted_value):  Allow bitsize of mode
12830         to be equivalent to HOST_BITS_PER_WISE_INT.
12831
12832 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12833
12834         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
12835         Do not call gen_mode_alignment when mode is BLKmode.
12836
12837 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12838
12839         * loop.c (express_from_1): Fix call of simplify_gen_binary.
12840
12841 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12842
12843         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
12844         VOIDmode implies both operands to be VOIDmode.
12845         (simplify_ternary_operation): Compute properly the mode of comparison.
12846         * combine.c (combine_simplify_rtx): Likewise.
12847
12848 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
12849
12850         * basic-block.h (struct loops): New field rc_order.
12851         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
12852         (flow_loops_free): Free rc_order.
12853         (flow_depth_first_order_compute): New parameter rc_order.
12854         (flow_loops_find): Allocate rc_order and swap usage with
12855         dfs_order.
12856
12857 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12858            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12859
12860         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
12861         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
12862         (nodb_call, return_from_epilogue): Likewise.
12863         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
12864         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
12865         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
12866         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
12867         (c4x_valid_type_attribute_p): Likewise.
12868         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
12869         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
12870
12871 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12872
12873         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
12874         and loadhi_big_constant if applicable.
12875         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
12876         and add new splitter.s
12877
12878 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12879
12880         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
12881
12882 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12883
12884         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
12885
12886 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12887
12888         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
12889
12890 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12891
12892         * config/c4x/libgcc.S (divqf3): Improve accuracy.
12893
12894 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
12895
12896         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
12897         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
12898         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
12899         (get_prev_bb_note): Likewise.
12900         (remove_scope_notes): Likewise.
12901         * flow.c (commit_one_edge_insertion): Likewise.
12902         (merge_blocks_nomove): Likewise.
12903         (verify_flow_info): Likewise.
12904         * gcse.c (insert_insn_end_bb): Likewise.
12905         * reg-stack.c (emit_swap_insn): Likewise.
12906         * ssa.c (first_insn_after_basic_block_note): New function.
12907         (insert_phi_node): Use it.
12908         (rename_block): Likewise.
12909         (eliminate_phi): Likewise.
12910         (make_regs_equivalent_over_bad_edges): Likewise.
12911         (make_equivalent_phi_alternatives_equivalent): Likewise.
12912         (for_each_successor_phi): Likewise.
12913         (convert_from_ssa): Modify phi-node deletion algorithm.
12914
12915 2000-07-29  Andreas Jaeger  <aj@suse.de>
12916
12917         * configure.in (mips*-*-linux*): Use mips*el to check for little
12918         endian MIPS, add tmake_file.
12919
12920         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
12921         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
12922         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
12923
12924 2000-07-28  Richard Henderson  <rth@cygnus.com>
12925
12926         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
12927         Sign extend mode size before negating.
12928
12929 2000-07-28  Richard Henderson  <rth@cygnus.com>
12930
12931         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
12932
12933 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
12934
12935         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
12936         (cse_insn): Likewise.
12937         (addr_affects_sp_p): Likewise.
12938         * expr.c (move_by_pieces): Likewise.
12939         (clear_by_pieces): Likewise.
12940         * gcse.c (oprs_unchanged_p): Likewise.
12941         * haifa-sched.c (sched_analyze_2): Likewise.
12942         * recog.c (offsettable_address_p): Likewise.
12943         * regclass.c (record_address_regs): Likewise.
12944         * reload.c (find_reusable_reload): Likewise.
12945         (push_reload): Likewise.
12946         (operands_match_p): Likewise.
12947         (decompose): Likewise.
12948         (find_reloads_address_1): Likewise.
12949         (find_inc_amount): Likewise.
12950         * reload1.c (elimination_effects): Likewise.
12951         * resource.c (mark_set_resources): Likewise.
12952         * flow.c (attempt_auto_inc): New function; mostly broken out
12953         of find_auto_inc.
12954         (find_auto_inc): Split into two functions and enhanced to
12955         generate POST_MODIFY.
12956         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
12957         * rtl.h (count_all_occurrences):  Declare.
12958         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
12959         defined.
12960         * rtlanal.c (count_all_occurrences): New function.
12961         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
12962         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
12963
12964         * config/ia64/ia64-protos.h (destination_operand): Declare.
12965         * config/ia64/ia64.c (destination_operand): New function.
12966         (ia64_print_operand): Handle POST_MODIFY.
12967         (rtx_needs_barrier): Likewise.
12968         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
12969         (HAVE_POST_MODIFY_REG): Define to 1.
12970         (MAX_REGS_PER_ADDRESS): Change to 2.
12971         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
12972         (LEGITIMATE_ADDRESS_REG): New helper macro.
12973         (LEGITIMATE_ADDRESS_DISP): Likewise.
12974         (PREDICATE_CODES): Add entry for destination_operand.
12975         * config/ia64/ia64.md (all mov patterns): Use destination_operand
12976         predicate for operand 0.
12977
12978 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12979
12980         * dwarf2out.c: Indent #error directive.
12981
12982         * gbl-ctors.h: Fix typo in comment.
12983         (__do_global_ctors): Prototype.
12984
12985         * gcse.c (record_one_set, pre_delete): Remove unused variables.
12986
12987         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
12988         (print_operand): Initialize variable `t'.
12989
12990 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
12991
12992         * config/arm/arm.md ("call_value"): removed constraints.
12993         Constraints are ignored in expanders.
12994         (*call_value_reg): split =rf into various constraints.
12995         (*call_value_mem): same
12996         (*call_value_symbol): same
12997         (*sibcall_value_insn): same
12998
12999 2000-07-28  Philipp Thomas  <pthomas@suse.de>
13000
13001         * install.texi (--enable-nls): Change the description of the NLS
13002         related configure options to match the current state.
13003         (--with-included-gettext): Likewise.
13004         (--enable-maintainer-mode): New description added.
13005         * extend.texi (-fstrict-prototype): Add missing '.'.
13006
13007 2000-07-27  Jim Wilson  <wilson@cygnus.com>
13008
13009         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
13010         DECL_INITIAL (decl) == NULL_TREE.
13011
13012 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
13013
13014         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
13015         on insn-attr.h with it.
13016         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
13017         * insn-addr.h: New header.
13018         (insn_addresses_): Renamed from insn_addresses.
13019         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
13020         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
13021         INSN_ADDRESSES_NEW): New macros.
13022         * genattrtab.c (write_test_expr): Use new macros.
13023         * final.c (insn_addresses, init_insn_lengths): Likewise.
13024         (align_fuzz, shorten_branches): Likewise.
13025         (final): Likewise.  Do not reject new insns if their addresses
13026         have been added to INSN_ADDRESSES.
13027         * config/arm/arm.c, config/avr/avr.c: Use new macros.
13028         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
13029         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
13030         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
13031         * config/sh/sh.c: Likewise.
13032         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
13033
13034         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
13035
13036 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
13037
13038         * gcc.c (struct prefix_list): Add member priority.
13039         (enum path_prefix_priority): Declare.
13040         (add_prefix): Replace ``first'' with ``priority''.  Append new
13041         entry but keep list in priority order.
13042         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
13043         PREFIX_PRIORITY_LAST to add_prefix.
13044         (process_command): Move include kludge - foo/stageN - to before
13045         foo/include.
13046
13047 2000-07-27  Jason Merrill  <jason@redhat.com>
13048
13049         * dwarf2out.c (gen_typedef_die): Abort if we get identical
13050         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
13051
13052 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
13053
13054         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
13055         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
13056
13057 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
13058
13059         * c-decl.c (finish_function): Don't treat 'main' specially unless
13060         flag_hosted.  In C99 mode, return 0 from 'main' unless
13061         DEFAULT_MAIN_RETURN is otherwise defined.
13062
13063         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
13064         parameters defaulting to int in an old-style function definition.
13065
13066 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13067
13068         * c-parse.in (string): For -Wtraditional, warn about string
13069         concatenation only once per line.
13070
13071 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
13072
13073         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
13074         for HI-UX/WE2 systems.
13075
13076 2000-07-24  Bruce Korb  <bkorb@gnu.org>
13077
13078         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
13079         defining the __xxx_TYPE__ macros.
13080         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
13081         * fixincl/fixlib.h: don't need to include "tm.h" anymore
13082         * fixincl/inclhack.def(type_map): now obsolete
13083
13084 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
13085
13086         * cpp.texi: Append a trailing full-stop to xrefs where needed.
13087
13088 2000-07-26  Dave Pitts  <dpitts@cozx.com>
13089
13090         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
13091         routine constants.
13092         (mvs_hash_alias): New function.
13093         (mvs_add_alias): Change argument spacing.
13094         (mvs_need_alias): Change aliasing criteria. Added documentation.
13095         (mvs_get_alias): Change to use hashed name. The hashed name prevents
13096         CSECT name collisions.
13097         (mvs_check_alias): Likewise.
13098         (handle_pragma): Change documentation.
13099         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
13100         mode from SImode to DImode.
13101         (iorhi3): Changed LTORG size for insn.
13102
13103 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
13104
13105         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
13106         mem if the address is a mode_dependent_address_p.
13107
13108 2000-07-26  Kazu Hirata  <kazu@hxi.com>
13109
13110         * h8300.c (print_operand): Print ":8" when the 'R' operand is
13111         suitable for 8-bit absolute.
13112         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
13113         (OK_FOR_U): Add a case for the 8-bit constant address on the
13114         H8/300H.
13115
13116 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
13117
13118         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
13119         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
13120         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
13121         lack of implemented alignment.
13122
13123 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
13124
13125         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
13126         cross-compiling between 64-bit and 32-bit machines.
13127
13128 2000-07-27  Richard Henderson  <rth@cygnus.com>
13129
13130         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
13131         (movhicc_astep, movhi_internal_astep): New.
13132         (movsicc_astep, movsi_internal_astep): New.
13133         (movdicc_astep, movdi_internal_astep): New.
13134         (movsfcc_astep, movsf_internal_astep): New.
13135         (movdfcc_astep, movdf_internal_astep): New.
13136         (movxfcc_astep, movxf_internal_astep): New.
13137         (cmovdi_internal_astep, cmovsi_internal_astep): New.
13138         Unify the cmov[ds]i splitters.
13139
13140 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
13141
13142         * real.c (asctoeg): Rename `error' label to unexpected_char_error
13143
13144 2000-07-26  Nick Clifton  <nickc@cygnus.com>
13145
13146         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
13147         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
13148
13149         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
13150         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
13151
13152 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
13153
13154         * c-decl.c (finish_enum): Convert enumerations that fit in an
13155         `int' to `int'.
13156         (build_enumerator): In pedantic mode, cast to `int' those that
13157         don't.
13158
13159 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
13160
13161         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
13162
13163 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13164
13165         * sh.md (cmpgtdi_t): Must be split.
13166         (cmpgtdi_t+1): New splitter.
13167
13168 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
13169
13170         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
13171         warnings for indented directives even if we are skipping.
13172
13173 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
13174
13175         * invoke.texi (strict-prototypes): Remove.
13176         * extend.texi (Deprecated Features): Add strict-prototypes.
13177         (Backwards Compatibility): New node.
13178
13179 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
13180
13181         * config/i386/i386.md (andsi_1+1): Allow HImode.
13182         (andsi_1+2): Require q_regs_operand.
13183
13184 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
13185
13186         * config/i386/i386.md (call_pop): Check operands[0],
13187         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
13188         (call): Likewise.
13189         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
13190         (call_value): Likewise.
13191
13192 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
13193
13194         * toplev.c (pipe_closed): Delete.
13195         (crash_signal): New.  Generate ICE for a fatal signal.
13196         (float_signal): Call crash_signal outside a float-handler
13197         block, not abort.
13198         (main): Install crash_signal as handler for core-dumping signals.
13199
13200 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
13201
13202         * rs6000.c (print_operand, case 'T'): New case.
13203
13204         * rs6000.md (call_indirect_aix32): Convert to expander of
13205         scheduled instructions.
13206         (call_indirect_aix64): Likewise.
13207         (call_value_indirect_aix{32,64}): Likewise.
13208         (call, call_value): Invoke expanders for AIX.  Fall through to
13209         matchers for SysV.
13210         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
13211         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
13212         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
13213         only "g" constraint.
13214         (call_nonlocal_aix64): Likewise.
13215         (call_value_nonlocal_aix{32,64}): Likewise.
13216         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
13217         operands.
13218         (call_value_nonlocal_sysv): New pattern.
13219         (indirect_jump{si,di}): Use new 'T' modifier.
13220         (tablejump{si,di} matchers): Likewise.
13221         (return_internal_{si,di}): Likewise.
13222         (return_eh_{si,di}): Likewise.
13223
13224 2000-07-24  Richard Henderson  <rth@cygnus.com>
13225
13226         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
13227         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
13228         * config/ia64/ia64.md (movdi_internal): Use it.
13229
13230 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
13231
13232         * cppexp.c: Warn about unary + if -Wtraditional.
13233         * cpplex.c (lex_line): Always set BOL on the first token of a line.
13234
13235 2000-07-24  Michael Meissner  <meissner@redhat.com>
13236
13237         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
13238         unsupported macro.
13239
13240 2000-07-24  Nick Clifton  <nickc@cygnus.com>
13241
13242         * config/arm/arm.c (emit_multi_reg_push): Generate a
13243         REG_FRAME_RELEATED_NOTE that is compatable with the code in
13244         dwarf2out_debug_frame_expr.
13245
13246 2000-07-24  Jason Merrill  <jason@redhat.com>
13247
13248         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
13249         UNALIGNED_INT_ASM_OP.
13250         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
13251         a location expression.
13252         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
13253         assume indirect access if we're saving the CFA address exactly.
13254
13255         * Makefile.in (bootstrap): Move -BstageN/ to the end.
13256
13257 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
13258
13259         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
13260         as well.
13261
13262 2000-07-24  Michael Meissner  <meissner@redhat.com>
13263
13264         * invoke.texi (D30V Options): Add d30v options.
13265
13266 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
13267
13268         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
13269         needed by our gcse pass anymore.
13270         (free_pre_mem): Corresponding changes.
13271         (compute_pre_data): Do not call compute_transpout anymore.
13272
13273         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
13274         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
13275         changes.
13276
13277         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
13278         (compute_pre_data): Do it here instead.
13279
13280         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
13281         'temp_bitmap'.
13282         (pre_delete): Corresponding changes.
13283
13284 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
13285
13286         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
13287         to figure out whether or not a variable has already been emitted.
13288
13289 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
13290
13291         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
13292         instead of gen_call.
13293
13294 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
13295
13296         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
13297
13298 2000-07-23  Kazu Hirata  <kazu@hxi.com>
13299
13300         * h8300.c: Fix formatting.
13301
13302 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13303
13304         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
13305         for `long' switch expression into a plain warning.
13306
13307         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
13308         (yylex): Don't pedwarn for "inline" in C99 mode.
13309
13310         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
13311         with %p.
13312         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
13313         ggc_alloc): Likewise.
13314         * bb-reorder.c (dump_scope_forest_1): Likewise.
13315
13316 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
13317
13318         * reload.c (find_reloads_toplev): Add new parameter
13319         "address_reloaded".
13320         (find_reloads): Add new parameter to find_reloads_toplev calls.
13321
13322 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
13323
13324         * collect2.c (main): Typo fixed.
13325         * diagnostic.c: Typo fixed.
13326         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
13327         * eh-common.h: Typo fixed.
13328         * emit-rtl.c (start_sequence): Typo fixed.
13329         * flow.c (find_label_refs): Typo fixed.
13330         (calculate_global_regs_live): Typo fixed.
13331         (mark_regno_cond_dead): Typo fixed.
13332         (create_edge_list): Typos fixed.
13333         (verify_edge_list): Typo fixed.
13334         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
13335         * loop.c (strength_reduce): Typo in function name fixed.
13336         * rtl.h: Added comments.  Typo in function name fixed.
13337         * rtlanal.c: Typo in function name fixed.
13338         (insn_dependant_p): Rename to ...
13339         (insn_dependent_p): ... this.
13340         (computed_jumo_p): Typo fixed.
13341
13342 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13343
13344         * system.h (__FUNCTION__): Wrap definition in #ifndef.
13345
13346 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
13347
13348         * rs6000.h (SIZE_TYPE): Define.
13349
13350 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
13351
13352         * ssa.c (rename_insn_1): Don't rename registers that are
13353         CLOBBERed.
13354
13355 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
13356
13357         * diagnostic.c (trim_filename, fancy_abort): Moved here from
13358         rtl.c.
13359         (fatal_function, set_fatal_function): Removed.
13360         (fatal): Don't prepare for or call the fatal_function.
13361         (diagnostic_lock, error_recursion): New.
13362         (diagnostic_for_decl, report_diagnostic): Guard against
13363         re-entering the error reporting routines.
13364         (fancy_abort): Assume function is not NULL.
13365
13366         * errors.c (fancy_abort): New.  Assume function is not NULL.
13367         * tradcpp.c (fancy_abort): Assume function is not NULL.
13368
13369         * system.h: Provide default definition of __FUNCTION__.
13370         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
13371         Always use __FUNCTION__ in definition of abort.
13372         * tree.h: Likewise.
13373         * varray.h: Likewise.
13374         * toplev.h: Likewise.  Don't prototype set_fatal_function.
13375
13376 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
13377
13378         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
13379         in 64-bit mode.
13380         * glimits.h: Don't do #if defined for ARCH_PPC.
13381
13382         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
13383         constants of size no larger than a pointer should go in the TOC.
13384         Add 'MODE' parameter.
13385         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
13386         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
13387         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
13388         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
13389         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
13390         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
13391         (rs6000_legitimize_address): Likewise.
13392         (rs6000_emit_move): Likewise.
13393         (rs6000_select_rtx_section): Likewise.
13394         (output_toc): Deal properly with outputting small constants like
13395         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
13396         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
13397         MODE parameter.  Put small constants in the TOC.
13398
13399         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
13400         easy in SImode.
13401         (rs6000_emit_move): When reload calls us with an illegitimate
13402         address, exit early.  Move the change_address calls to one place
13403         at the end of the routine.  Merge the SImode and DImode expanders.
13404         When called by reload to put an integer into a FP register, force
13405         it to memory.
13406
13407         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
13408         field.
13409         (rs6000_hash_constant): Hash mode too.
13410         (toc_hash_function): Allow for key_mode.
13411         (toc_hash_eq): Structures are different if key_mode differs.
13412         (output_toc): Add 'mode' parameter.  Save key_mode.
13413         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
13414         Pass 'mode' parameter.
13415         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
13416
13417         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
13418         for vtable references.
13419
13420         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
13421         choice, don't put integer values in FP regs.
13422
13423 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
13424
13425         * flow.c (verify_flow_info): Revamp code to verify that the
13426         head and end of each basic block are in the insn chain.
13427
13428 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
13429
13430         * gcse.c (record_one_set): Prepend instead of append onto
13431         reg_set_table, making it O(n) instead O(n^2).
13432         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
13433         Use a queue instead of a stack as worklist.
13434
13435 2000-07-20  Kazu Hirata  <kazu@hxi.com>
13436
13437         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
13438         * h8300.h (OK_FOR_T): New.
13439         (EXTRA_CONSTRAINT): Support OK_FOR_T.
13440         * h8300.md: Use inc/dec.[wl] for increment/decrement
13441         by 1 and 2 in HI and SI modes.
13442
13443 2000-07-20  Jim Wilson  <wilson@cygnus.com>
13444
13445         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
13446         larger than 14 bits.
13447
13448 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
13449
13450         * cppmacro.c (CAN_PASTE_AFTER): New macro.
13451         (count_params): Don't set GNU_REST_ARGS on anything.
13452         (save_expansion): Set PASTE_LEFT only on tokens for which
13453         CAN_PASTE_AFTER is true, or which are named operators.
13454
13455         * cpplex.c (parse_args): Distinguish between a rest argument
13456         given one empty argument, and a rest argument given zero arguments.
13457         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
13458         deletion of previous token based on that.
13459         (get_raw_token): Flatten some control structure.
13460
13461         * cpplib.h (CPP_LAST_EQ): Correct.
13462         (VOID_REST): New token flag.
13463         (GNU_REST_ARGS): Delete.
13464
13465         * tradcpp.c (main): Don't munge -D options.
13466         (make_definition): Bring -D handling in line with cpplib.
13467         (do_define): Strip all leading whitespace from macro definitions.
13468
13469 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
13470
13471         * Makefile.in (tradcpp): Depend on intl.o and version.o.
13472
13473 2000-07-20  Bruce Korb  <bkorb@gnu.org>
13474
13475         * fixincl/check.tpl: strip the platform specific types before testing
13476         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
13477         * fixincl/fixincl.tpl: use platform specific types
13478         * fixincl/fixlib.h: include the platform specific types
13479         * fixincl/inclhack.def(gnu_types): don't supply the types
13480         * fixincl/fixincl.x: regen
13481
13482 2000-07-19  Jim Wilson  <wilson@cygnus.com>
13483
13484         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
13485         GR_REGS.
13486
13487 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
13488
13489         * tradcpp.c (rescan): Do not recognize directives when the #
13490         is indented.
13491
13492 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
13493
13494         Implement C++ named operators.
13495
13496         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
13497         of operators allowed in #if and having an _EQ variant.  Add
13498         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
13499         (cpp_token flags): Add NAMED_OP.
13500         (enum node_type): Add T_OPERATOR.
13501         (struct cpp_hashnode): Add code slot to value union.
13502         * cpphash.h (spec_nodes): Remove n_defined.
13503
13504         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
13505         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
13506         (is_macro_disabled): Tweak error messages.
13507
13508         * cpplib.c (get_define_node): Disallow all named operators as
13509         macro names.  Tweak error messages.
13510         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
13511
13512         * cppinit.c (builtin_array): Add entries for the named operators.
13513         * cppexp.c (lex): Check for CPP_DEFINED token.
13514         (priority table): Add entries for CPP_MIN and CPP_MAX.
13515         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
13516
13517 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
13518
13519         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
13520         larger than the array of cuids.
13521         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
13522         cuids.
13523
13524 2000-07-19  Bruce Korb  <bkorb@gnu.org>
13525
13526         * fixinc/fixincl.c:  Convert to using a table of environment variables
13527         and activate the auto-edit marker on the fixed output files.
13528         * fixinc/fixlib.h:  Define the environment table
13529         * fixinc/fixincl.sh: export the ${INPUT} dir
13530         * fixinc/check.tpl: likewise
13531
13532 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
13533
13534         * gcc.c (.h spec): Fix typo.
13535
13536 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
13537
13538         * Makefile.in: Fix tradcif.c path.
13539
13540 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
13541
13542         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
13543           macros, not five.
13544
13545         * cpphash.h (TOKEN_NAME): New macro.
13546         (_cpp_spell_operator): Deleted.
13547         (token_spellings): Now _cpp_token_spellings.
13548
13549         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
13550         * cpplex.c: Use OP and TK macros when expanding the
13551         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
13552         store the stringification of the enumeration name (CPP_CHAR,
13553         etc.) in the name slot of token_spellings.
13554         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
13555         token_spellings directly.
13556         * cpplib.c: Use TOKEN_SPELL.
13557
13558         * cpplex.c (_cpp_push_token): If the token being pushed back
13559         is the previous token in this context, just subtract one from
13560         context->posn.
13561         * cppmacro.c (save_expansion): Clear aux field when storing a
13562         placemarker.
13563
13564 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
13565
13566         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
13567         buffer, provided it is not NULL.
13568
13569 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
13570
13571         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
13572         case of invalid volatile re-declaration.
13573
13574 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
13575
13576         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
13577         (expand_call): Adjust caller.
13578
13579 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
13580
13581         * diagnostic.h (report_diagnostic): Change prototype.
13582
13583         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
13584         diagnostic_for_decl):  Change prototype.
13585         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
13586         error, warning, error_with_file_and_line,
13587         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
13588         Adjust call to report_diagnostic, diagnostic_for_decl.
13589         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
13590         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
13591
13592         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
13593         varaible argument list.
13594
13595 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
13596
13597         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
13598         moved to cppmacro.c.
13599         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
13600         dump_hash_helper): Delete.
13601         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
13602         cpp_forall_identifiers): New. Implement specialized version of
13603         Vlad's expandable hash table.
13604         (cpp_lookup): Use new functions.
13605         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
13606         implementation.
13607         * cppmacro.c: New file.
13608         * cppinit.c (dump_macros_helper): New.
13609         (cpp_finish): Iterate over the identifier table directly.
13610         * cpplex.c (parse_name): Calculate the hash of the identifier
13611         while we scan it.  Use _cpp_lookup_with_hash when we can.
13612
13613         * cpphash.h: Update prototypes.
13614         (xcnewvec, HASHSTEP): New helper macros.
13615         * cpplib.h: Update prototypes.
13616         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
13617         (cppmacro.o): New rule.
13618         (cpphash.o): Update deps.
13619
13620         * cppmain.c: Do not set pfile->printer if no_output is on.
13621
13622 2000-07-15  Neil Booth  <neilb@earthling.net>
13623
13624         * cpplib.c: Change all directive-handler functions to return
13625         void, not int.
13626         * cpphash.h: Update typedefs.
13627
13628 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
13629
13630         * configure: Regenerate.
13631
13632         * extend.texi (Extended Asm): Mention that a memory clobber
13633         does not count as a side-effect.
13634
13635         * unroll.c (copy_loop_body): Fix one instance of using host
13636         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
13637         cross-compile.
13638
13639         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
13640
13641 2000-07-17  Richard Henderson  <rth@cygnus.com>
13642
13643         * config/ia64/ia64.md (movdi): Split out load address code.
13644         New post-reload splitter for symbolic operands.
13645         (movdi_internal): Abort if we didn't split symbolic operands
13646         when we should have.
13647         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
13648         (ia64_reorg): Split insns when not optimizing.
13649         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
13650
13651 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
13652
13653         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
13654         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
13655
13656 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
13657
13658         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
13659
13660 2000-07-17  Jason Merrill  <jason@redhat.com>
13661
13662         * Makefile.in (clean): Remove libgcc directory.
13663
13664         * configure.in (-Wno-long-long check): Use higher-level macros.
13665
13666 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
13667
13668         * simplify-rtx.c (simplify_binary_operation): Recognize
13669            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
13670         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
13671            a CONST_INT, it will always be zero.
13672
13673 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
13674
13675         * loop.c (check_dbra_loop) : Return if more than one condition is
13676         present to control the loop.
13677
13678 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
13679
13680         * mips.c (mips_expand_prologue): Don't calculate the last argument
13681         register unless we need it.  When we are calculating this, make
13682         sure FUNCTION_ARG is giving us a REG.
13683
13684 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
13685
13686         * flow.c (libcall_dead_p): Use single_set to verify the insn
13687         has only one set and get for analysis.
13688         (propagate_one_insn): Don't pass the PATTERN of the insn.
13689
13690 2000-07-17  Mark Klein <mklein@dis.com>
13691
13692          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
13693
13694 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
13695
13696         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
13697         * configure.in (TARGET_GETGROUPS_T): Evaluate.
13698         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
13699         of second argument of getgroups.
13700         * configure, config.in: Rebuilt.
13701
13702 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
13703
13704         * simplify-rtx.c (simplify_relational_operation): Two signed
13705         values with equal high words are less/greater than each other if
13706         their low words are less/greater when considered as unsigned.
13707
13708 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
13709
13710         * configure.in (vax-*-openbsd):  Change to new style configuration,
13711         add collect2/float_format information.
13712         * configure:  Rebuilt.
13713         * config/vax/openbsd1.h:  New.
13714         * config/vax/openbsd.h:  New.
13715         * config/vax/t-openbsd:  New.
13716
13717 2000-07-17  Chip Salzenberg  <chip@valinux.com>
13718
13719         * c-common.c (shorten_compare): Quiet warnings about unsigned
13720         comparisons with zero when they occur in a system header.
13721
13722 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
13723
13724         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
13725         update to describe current practice.
13726
13727         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
13728
13729         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
13730         references to C9X.  Change references to -fstd and -flang-isoc9x
13731         to refer to -std.
13732
13733         * c-common.c (scan_char_table): Allow "z" length modifiers on
13734         diouxXn formats.
13735         (check_format_info): Use TYPE_DOMAIN on the type matched against
13736         for "z" formats, to retrieve the language size_t rather than the
13737         internal one.
13738
13739         * c-common.c (check_format_info): Do not make a pedantic objection
13740         to the 'L' length modifier if used with a floating point type
13741         character.
13742
13743         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
13744         constants in C99 mode.
13745
13746 2000-07-17  Kazu Hirata  <kazu@hxi.com>
13747
13748         * h8300.md: Fix the format of mac.
13749         (movsi_h8300hs): Output a tab after stmac instead of a space.
13750
13751         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
13752         profitable adds/subs sequences.
13753
13754         * fold-const.c: Fix comment typos.
13755
13756 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
13757
13758         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
13759
13760 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13761
13762         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
13763
13764 2000-07-16  Neil Booth  <NeilB@earthling.net>
13765
13766         * cpplex.c: Update comments.
13767         * README.Portability: Small update.
13768
13769 2000-07-16  Neil Booth  <NeilB@earthling.net>
13770
13771         * README.Portability:  Small update.
13772
13773 2000-07-15  Richard Henderson  <rth@cygnus.com>
13774
13775         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
13776         * config/ia64/ia64.c (ia64_move_ok): New function.
13777         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
13778         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
13779
13780 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
13781
13782         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
13783         immediately following a paste operator.
13784         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
13785         (cpp_reader_init): Call it, if HOST_EBCDIC.
13786         (cpp_handle_options): Do not sort option list here.
13787         (handle_option): Rename to cpp_handle_option and export.
13788         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
13789         _cpp_get_token directly.
13790         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
13791         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
13792         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
13793         cpp_scan_line.
13794
13795 2000-07-15  Richard Henderson  <rth@cygnus.com>
13796
13797         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
13798         cast around an expression.  Tidy other unsigned tests.
13799
13800 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
13801
13802         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
13803         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
13804         (v_message_with_decl): Rename to ...
13805         (format_with_decl): ... this. Tweak
13806         (diagnostic_for_decl): New function.
13807         (fatal_io_error): Use verbatim in lieu of notice.
13808         (announce_function): Use verbatim.
13809         (default_print_error_function): Likewise.
13810         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
13811         infratructure.
13812
13813 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13814
13815         * mips.c (function_arg_pass_by_reference): Don't do automatic
13816         aggregate initialization.
13817         (machine_dependent_reorg): Initialize variable `mode'.
13818
13819         * mips.md (absdi2): Change variable `regno1' to unsigned int.
13820         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
13821         conflicts with sys/param.h macro of the same name.
13822         (reload_outdi): Likewise.
13823
13824 2000-07-15  Michael Meissner  <meissner@redhat.com>
13825
13826         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
13827         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
13828         create a new node instead.
13829
13830 2000-07-15  Neil Booth  <NeilB@earthling.net>
13831
13832         * README.Portability: Correct example about calling a function
13833         through a pointer to function.  Format wide paragraphs.
13834
13835 2000-07-15  Michael Meissner  <meissner@redhat.com>
13836
13837         * README.Portability: Update integer suffixes and function
13838         prototype sections.
13839
13840 2000-07-15  Neil Booth  <NeilB@earthling.net>
13841
13842         * README.Portability: Small update.
13843
13844 2000-07-15  Neil Booth  <NeilB@earthling.net>
13845
13846         * README.Portability: New file.
13847
13848 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
13849
13850         * INSTALL: Give special instructions for building GCC on Irix 6.
13851         * config/mips/x-iris6 (CC): Don't set it.
13852         (OLDCC): Likewise.
13853
13854 2000-07-14  Jason Merrill  <jason@redhat.com>
13855
13856         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
13857         register in the stack and later in another register, use the new
13858         register.
13859
13860 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
13861
13862         * config/mips/mips.md: (absdi2): Handle sign_extend for
13863         second operand.
13864
13865 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
13866
13867         * cpplib.c (do_pragma_dependency): Tidy warning messages.
13868
13869 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
13870
13871         * .cvsignore: Correct typo.
13872
13873 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
13874
13875         * .cvsignore: Add generated YACC files.
13876         * objc/.cvsignore: New file.
13877
13878 2000-07-14  Neil Booth  <NeilB@earthling.net>
13879
13880         * cpplex.c (adjust_column): New funcion.
13881         (skip_whitespace): Use it.
13882         (skip_block_comment): Use it, and warn about /*/* with
13883         -Wcomments.
13884
13885 2000-07-14  Neil Booth  <NeilB@earthling.net>
13886
13887         * cpphash.c (struct macro_info): Add new members.
13888         (_cpp_free_definition): Delete the macro directly.
13889         (count_params): Return void, with first token of
13890         expansion in struct macro_info on success.
13891         (parse_define): Return int.  Hoist syntax checking from
13892         save_macro_expansion.  Leave call to save_expansion to
13893         _cpp_create_definition.
13894         (alloc_macro): Needs just 2 arguments.
13895         (free_macro): Delete.
13896         (save_expansion): Don't perform syntax check.
13897         (_cpp_create_definition): Call save_expansion.
13898
13899 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13900
13901         * genrecog.c (write_header): Split long string.
13902
13903         * cpphash.c (macro_info): Don't use the `signed' keyword.
13904
13905         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
13906
13907 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
13908
13909         * calls.c (stored_args_map): New variable.
13910         (check_sibcall_argument_overlap_1): New.
13911         (check_sibcall_argument_overlap): New.
13912         (expand_call): Initialize stored_args_map.
13913         Call check_sibcall_argument_overlap.
13914
13915 2000-07-13  Bruce Korb  <bkorb@gnu.org>
13916
13917         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
13918         (emit_gnu_type): utility procedure for gnu_type_fix
13919         (gnu_type_fix): implement various pre-processor guards around
13920         standard types so these types can be defined over and over
13921         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
13922         types alluded to above will have GNU-compliant base types
13923         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
13924         * fixinc/inclhack.def: add test_text entries and utilize the new
13925         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
13926         * fixinc/fixincl.x: regenerate
13927
13928 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
13929
13930         * diagnostic.c (vline_wrapper_message_with_location,
13931         v_message_with_file_and_line, v_error_with_file_and_file,
13932         v_error_for_asm, v_warning_for_asm, vfatal,
13933         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
13934         vsorry, verror, vwarning, vpedwarn): Remove.
13935         (diagnostic_for_asm): New function.
13936         (pedwarn, error, warning, pedwarn_with_file_and_line,
13937         error_with_file_and_line, warning_with_file_and_line, sorry,
13938         error_for_asm, warning_for_asm, fatal): Reimplement.
13939         (finish_diagnostic): Clear diagnostic info as well.
13940
13941 2000-07-13  Neil Booth  <NeilB@earthling.net>
13942
13943         * c-common.h (flag_digraphs): New.
13944         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
13945         * c-lex.c (yylex): Use flag_digraphs to decide whether to
13946         honour digraphs.
13947
13948 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
13949
13950         * gcc.c (do_spec_1): Add new %B operator.
13951         (set_input): Prepare for %B.
13952
13953         (link_command_spec): Move up with the other tm.h-
13954         overrideable specs.  Factor out the portion conditional on
13955         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
13956         (struct compiler): Just have a single spec string.  All users
13957         updated.
13958         (default_compilers): Remove unnecessary braces.
13959         (static_specs): Update.
13960
13961         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
13962         named specs.
13963         (C and assembly specs): Use the new named specs, as appropriate.
13964
13965         * objc/lang-specs.h: Use the new named specs.
13966         Remove unnecessary braces.
13967
13968 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13969
13970         * gcc.c (execute): If a subprocess gets a fatal signal, report
13971         strsignal() of the signal number, and ask for a bug report.
13972         Do not do this for SIGPIPE if there's already been an error.
13973
13974         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
13975         Delete pipe_closed.
13976
13977         * tradcif.c: Remove.
13978
13979 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13980
13981         * final.c (profile_function): Do not emit profile counters in
13982         the data section, if NO_PROFILE_COUNTERS is defined.
13983         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
13984         FUNCTION_PROFILER.
13985
13986         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
13987         (FUNCTION_PROFILER): Just emit a call to mcount.
13988
13989 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
13990
13991         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
13992
13993         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
13994         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
13995         traditional, lang_chill, or lang_fortran.
13996
13997         * cppfiles.c: #undef strcmp to suppress warning about macros
13998         used without arguments.
13999         (_cpp_execute_include): Use f, not fname, in "No include path"
14000         error.
14001         (_cpp_pop_file_buffer): New function.
14002         * cpplib.c: Don't include <sys/mman.h>.
14003         (cpp_push_buffer): Set line_base and lineno in new buffer.
14004         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
14005
14006         * cpplex.c: Move all prototypes and structure declarations to the
14007         top of the file.  Properly parenthesise some macro arguments.
14008         (cpp_scan_line): New function.
14009         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
14010         don't need to walk up the stack counting.
14011
14012 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14013
14014         * c-common.c (combine_strings): Emit a pedantic warning when a
14015         string length is greater than the minimum ANSI C is required
14016         to support.
14017
14018 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
14019
14020         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
14021         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
14022
14023 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14024
14025         * c-decl.c (define_label): Warn about identifier conflicts with
14026         labels in traditional C.
14027
14028         * c-parse.in (unop +): Warn about the unary plus operator for
14029         traditional C.
14030
14031         * c-typeck.c (store_init_value): Warn about automatic aggregate
14032         initialization for traditional C.
14033
14034         * invoke.texi (-Wtraditional): Document new warnings.
14035
14036 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14037
14038         * Makefile.in (c-errors.o): Fix thinko in dependency.
14039
14040 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
14041
14042         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
14043         -traditional, -ftraditional, or -traditional-cpp was given.
14044         Do not pass -traditional to the preprocessor.
14045         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
14046         preprocessor does it automatically.
14047         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
14048
14049         * ch/lang-specs.h: Always use tradcpp.  Do not pass
14050         -traditional, -trigraphs, or -pedantic to the preprocessor.
14051         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
14052         _LANGUAGE_FORTRAN.
14053
14054 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
14055
14056         * cppexp.c (LOGICAL): Delete macro.
14057         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
14058         and && directly.
14059
14060         * cpphash.c (HASHSIZE): Increase to 4096.
14061         (struct hashdummy): Add hash field.
14062         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
14063         the string values using memcmp.
14064         (cpp_lookup): Set dummy.hash.
14065
14066 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
14067
14068         * configure.in (m88k-openbsd): Express configuration using new fragment
14069         style.
14070         * configure: Rebuilt.
14071         * m88k/aout-dbx.h: New.
14072         * m88k/openbsd.h: New.
14073         * m88k/xm-openbsd.h: New.
14074
14075 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14076
14077         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
14078
14079 2000-07-12  Richard Henderson  <rth@cygnus.com>
14080
14081         * reload.c (push_secondary_reload): Make sure to add the new
14082         reload at the end, after acquiring secondary memory.
14083
14084 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14085
14086         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
14087
14088         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
14089         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
14090
14091         * c-parse.in (stmt): Delete unused variables.
14092
14093         * convert.c (convert_to_vector): Likewise.
14094
14095         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
14096
14097         * tree.c (finish_vector_type): Prototype.
14098
14099 2000-07-12  Bruce Korb  <bkorb@gnu.org>
14100
14101         * fixinc/fixfixes.c: use xmalloc
14102         * fixinc/fixincl.c(initialize): set program name for xmalloc
14103         * fixinc/fixlib.c(must_malloc): obsolete
14104         (is_cxx_header): no longer used - disabled
14105         (skip_quote): inserted and disabled for future use
14106         * fixinc/fixlib.h: reflects above
14107         * fixinc/fixtests.c: removed dinkleberries
14108
14109 2000-07-12  Neil Booth  <NeilB@earthling.net>
14110
14111         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
14112         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
14113
14114         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
14115         struct toklist_dummy): New.
14116         (cpp_free_definition): Free macros with free_macro.
14117         (count_params): Don't save paramter spellings.  Save macro
14118         information in a struct macro_info.
14119         (parse_define): Don't allocate a token list.
14120         (save_expansion): Allocate the macro's token list, and
14121         save parameter spellings if necessary.  Use TOKEN_SPELL.
14122         (cpp_create_definition): Make list const.
14123
14124 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14125
14126         * c-typeck.c (pedwarn_c99): Move to
14127         * c-errors.c: ... Here.
14128         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
14129         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
14130         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
14131         (c-errors.o): List dependency.
14132
14133 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
14134
14135         * c-parse.c: Remove.
14136         * c-parse.h: Likewise.
14137         * c-parse.y: Likewise.
14138         * objc/objc-parse.c: Likewise.
14139         * objc/objc-pasre.y: Likewise.
14140
14141 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
14142
14143         * gcc.texi: Fix minor typos
14144         * extend.texi: Fix minor typos
14145
14146 2000-07-11  Marc Espie <espie@openbsd.org>
14147
14148         * collect2.c (main): Recognize .lo as object files.
14149
14150 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
14151
14152         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
14153         true.
14154
14155         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
14156         with MAP_ANONYMOUS and MAP_ANON.
14157         * configure, config.in: Rebuilt.
14158
14159 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
14160
14161         * diagnostic.c (save_output_state): Remove.
14162         (restore_output_state): Likewise.
14163         (clear_text_info): New function.
14164         (clear_diagnostic_info): Likewise.
14165         (output_text_length, is_starting_newline, output_prefix,
14166         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
14167         prefixing_policy, output_buffer_ptr_to_format_args): New macros
14168         (set_real_maximum_length, output_set_maximum_length,
14169         output_set_prefix, output_get_prefix, output_set_maximum_length,
14170         output_destroy_prefix, init_output_buffer,
14171         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
14172         output_add_newline, output_add_character, output_add_space,
14173         output_append_r, output_append, wrap_text, output_format,
14174         output_do_printf, output_printf, output_do_verbatim,
14175         output_verbatim, verbatim): Use them.
14176         (output_clear): Split into cleat_text_info and
14177         clear_diagnostic_info.
14178         (struct output_state): Move to...
14179
14180         * diagnostic.h: ...Here
14181         (struct output_buffer): Adjust.
14182
14183 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
14184
14185         * cpplex.c (parse_name): No longer inline (premature optimization).
14186         (do_pop_context): Fold into pop_context.
14187         (pop_context): Returns int.
14188         (lex_next): Hoist test for end of directive into pop_context.
14189         (push_macro_context): Returns int; takes just reader and token.
14190         Hoist test for excessive nesting to caller.
14191         (push_arg_context): Returns void; takes just reader and token.
14192         Do not call stringify_arg or get_raw_token.
14193         (get_raw_token): Convert tail recursion through push_arg_context
14194         to a loop at this level.  Call stringify_arg here if appropriate.
14195         (maybe_paste_with_next): Convert tail recursion to a while loop.
14196         Hoist test of paste_level to caller.
14197
14198         (stringify_arg): Push arg context at beginning.
14199         (cpp_get_token): Split out core into _cpp_get_token.  Call
14200         process_directive here.  Throw away CPP_PLACEMARKER tokens.
14201         (_cpp_get_token): Convert tail recursion through
14202         push_macro_context to a loop at this level.
14203         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
14204         _cpp_get_raw_token): Use _cpp_get_token.
14205         (_cpp_skip_rest_of_line): Drop the context stack directly; do
14206         not call pop_context.
14207         (_cpp_run_directive): Call lex_next directly.
14208
14209         * cpphash.h: Prototype _cpp_get_token.
14210         * cppexp.c (lex): Use it.
14211         * cpphash.c (parse_define): Use it.
14212         * cpplib.c (get_define_node, do_undef, parse_include,
14213         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
14214         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
14215         parse_ifdef, validate_else): Use it.
14216         (cpp_push_buffer): Tweak error message; abort if anyone tries
14217         to push a buffer while macro expansions are stacked.
14218
14219 2000-07-11  Donn Terry  <donnte@microsoft.com>
14220
14221         * cpplex.c (free_macro_args, save_token): Cast arg of free
14222         and/or xrealloc to PTR.
14223         (_cpp_init_input_buffer): Clear all fields of the base context.
14224
14225 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
14226
14227         * gensupport.c (process_rtx): Make rtl checking stop
14228         complaining about the define_insn while it is being
14229         converted from a define_insn_and_split.
14230
14231 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
14232
14233         * config/mips/mips.c (simple_memory_operand): Access the
14234         INTVAL of the address, not it's containing MEM.
14235
14236 2000-07-11  Bruce Korb  <bkorb@gnu.org>
14237
14238         * fixinc/fixtests.c(double_slash): obsolete
14239         (else_endif_label): likewise
14240         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
14241         (libc1_ifdefd_memx): correct initial comment
14242         and omit the #if/#endif pair from the memxxx declarations
14243         * fixinc/fixincl.x: regen
14244
14245 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14246
14247         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
14248
14249 2000-07-11  Neil Booth  <NeilB@earthling.net>
14250
14251         * cpp.texi: Update.
14252
14253 2000-07-11  Neil Booth  <NeilB@earthling.net>
14254
14255         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
14256         (handle_option): Set digraphs according to standard.
14257         Merge OPT_lang_c89 handler with OPT_std_c89.
14258
14259         * cpplex.c: (lex_line, can_paste): Honour digraphs in
14260         accordance with the digraphs flag.
14261
14262         * cpplib.h: (struct cpp_options): New option digraphs.
14263
14264 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
14265             Bruce Korb  <bkorb@gnu.org>
14266
14267         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
14268         * fixinc/fixincl.x: Regenerate.
14269         * fixinc/tests/base/testing.h: Add testcase.
14270
14271 2000-07-10  Richard Henderson  <rth@cygnus.com>
14272
14273         * config/ia64/ia64.c (got_symbolic_operand): New.
14274         (symbolic_operand, move_operand): Revert 0701 change.
14275         * config/ia64/ia64.h (PREDICATE_CODES): Update.
14276         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
14277         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
14278         split the offset into a 14-bit low part instead of a 13-bit low part.
14279         (load_fptr): Mark the mem as unchanging.
14280         (load_symptr): Use got_symbolic_operand.
14281
14282 2000-07-10  Nick Clifton  <nickc@cygnus.com>
14283
14284         * libgcc2.c (next_stack_level): Cast result of computation to
14285         (void **) so that the assignment does not generate a warning.
14286
14287 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
14288
14289         * flags.h : Add new variable flag_single_precision_constant.
14290         * toplev.c (display_help) : Add -fsingle-precision-constant option.
14291         (flag_single_precision_constant): New.
14292         * c-lex.c (yylex): Convert floating point constant to single
14293         precision constant.
14294         * invoke.texi : Add documentation for this new option.
14295
14296 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
14297
14298         * diagnostic.c (output_octal): Second parameter is unsigned.
14299         (output_long_octal): Likewise.
14300         (output_hexadecimal): Likewise.
14301         (output_long_hexadecimal): Likewise.
14302         (output_format): Adjust arguments extraction. Tweak.
14303         (output_verbatim, verbatim): End variable argument list.
14304         (report_diagnostic): Improve documentation.
14305
14306 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
14307
14308         * c-common.h (build_stmt): Declare.
14309         (build_continue_stmt): Likewise.
14310         (build_break_stmt): Likewise.
14311         (build_return_stmt): Likewise.
14312
14313         * c-decl.c (do_case): Rewrite to do what previously done in
14314         c-parse.in.
14315
14316         * c-semantics.c (build_stmt): Define.
14317         (build_return_stmt): Likewise.
14318         (build_break_stmt): Likewise.
14319         (build_continue_stmt): Likewise.
14320         (build_case_label): Likewise.
14321
14322         * c-parse.in (BREAK): Change to build tree, then generate RTL.
14323         (CONTINUE): Likewise.
14324         (RETURN): Likewise.
14325         (CASE): Likewise.
14326         (DEFAULT): Likewise.
14327
14328         * c-parse.y: Regenerate.
14329         * c-pasre.c: Likewise.
14330
14331 2000-07-09  Jason Merrill  <jason@redhat.com>
14332
14333         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
14334
14335         * tree.h (STRIP_NOPS): Check for error_mark_node.
14336         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
14337         (dwarf2out_*): Remove duplicate declarations.
14338
14339         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
14340         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
14341
14342 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
14343
14344         * diagnostic.c (wrap_text): New function.
14345         (maybe_wrap_text): Likewise.
14346         (output_add_string): Use it.
14347         (output_format): Likewise.
14348         (count_error): Use verbatim instead of notice.
14349         (report_error_function): Likewise. Don't use plain fprintf.
14350         (finish_diagnostic): New function.
14351         (output_do_verbatim): Tweak.  Commonalize functionalities in
14352         output_verbatim and verbatim.
14353         (output_verbatim): Adjust.
14354         (verbatim): Likewise.
14355         (report_diagnostic): Define.
14356
14357         * diagnostic.h (report_diagnostic): Prototype.
14358
14359 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
14360
14361         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
14362
14363 2000-07-09  Neil Booth  <NeilB@earthling.net>
14364
14365         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
14366         IShspace, ISspace: Update.
14367
14368         * cppinit.c: ISTABLE: Update.
14369         V: New.
14370
14371         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
14372         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
14373         (skip_block_comment, skip_line_comment, parse_string,
14374         lex_line): Use is_vspace rather than IS_NEWLINE.
14375         (skip_whitespace, lex_line): Clean up to use is_nvspace.
14376         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
14377         gets a BOL flag.
14378         (lex_next): Unconditionally stop if within a directive.
14379         Treat directives within macro invocations as directives
14380         (after parse_args emits error), not as the argument.
14381
14382 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
14383
14384         * diagnostic.c (diagnostic_args): New macro.
14385         (diagnostic_msg): Likewise.
14386         (output_formatted_integer): Likewise.
14387         (output_state): New data type.
14388         (digit_buffer): Make global.
14389         (output_add_integer): Rename to output_decimal. Squeeze
14390         digit_buffer.
14391         (output_long_decimal, output_unsigned_decimal,
14392         output_long_unsigned_decimal, output_octal, output_long_octal,
14393         output_hexadecimal, output_long_hexadecimal): New functions.
14394         (output_append_r): New function.
14395         (output_append): Tweak.
14396         (output_flush_on): Rename to output_to_stream.
14397         (output_format): Change prototype.  Improve documentation. Handle
14398         more format specifiers.
14399         (build_location_prefix): Rename to context_as_prefix.
14400         (output_notice): Rename to output_do_printf.
14401         (output_printf): Tweak.
14402         (line_wrapper_printf): Likewise.
14403         (vline_wrapper_message_with_location): Adjust call to renamed
14404         functions.
14405         (v_message_with_decl): Likewise.
14406         (default_print_error_function): Likewise.
14407         (save_output_state): New function.
14408         (restore_output_state): Likewise.
14409         (output_do_verbatim): Likewise.
14410         (output_verbatim): Define.
14411         (verbatim): Likewise.
14412
14413         * diagnostic.h (printer_fn): Change return type from void to int.
14414         Improve documentation.
14415         (output_add_integer): Rename to output_decimal.
14416         (output_flush_on, output_format): Don't export.
14417         (output_verbatim, verbatim): Declare.
14418
14419 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
14420
14421         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
14422         Check whether c divides op1 exactly if operation is not
14423         multiplication.
14424
14425 2000-07-08  Richard Henderson  <rth@cygnus.com>
14426
14427         * final.c (final): Do not abort when reg-stack introduces
14428         a new insn.
14429
14430 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
14431
14432         * cpplib.h (struct cpp_name): Now struct cpp_string.
14433         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
14434         CPP_HEADER_NAME): Change to type S.
14435         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
14436         field, a cpp_hashnode *.  All references to val.name updated
14437         to use val.str or val.node as appropriate.
14438         (struct cpp_reader): Add spec_nodes field.
14439         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
14440
14441         * cpphash.h (struct spec_nodes): New.
14442         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
14443         val.str.  All references to 'spelling > SPELL_NONE' updated to
14444         match.
14445
14446         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
14447         pfile->buffer->inc are not NULL before dereferencing them.
14448
14449         * cpplex.c (parse_name): Take a pointer to the current token,
14450         plus current position and limit as args; return the new
14451         position; don't copy the text of a name into the string
14452         buffer, instead call cpp_lookup and store the node pointer.
14453         If extending a token, copy out the text of the old into a
14454         scratch buffer, append the new, look that up and store the new
14455         node pointer.  Inline.
14456         (maybe_paste_with_next): If the result of paste is a NAME,
14457         then look up the pasted text and store its node pointer.
14458         (lex_line): Adjust for new parse_name interface.
14459         Check for L"str", L'str' using spec_nodes->n_L.
14460         (spell_token): SPELL_IDENT tokens have their spelling in
14461         val.node->name.  Handle SPELL_STRING tokens that don't have
14462         string delimiters.
14463         (_cpp_expand_name_space,
14464         (can_paste): Check for L ## "str" using spec_nodes->n_L.
14465         (cpp_get_token, special_symbol): No need to call cpp_lookup.
14466         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
14467         return 1=equal 0=not, not a tristate.
14468
14469         * cpphash.c (var_args_str): Delete.
14470         (find_param): Compare node fields directly.
14471         (is__va_args__): Use CPP_PEDANTIC.  Just compare
14472         token->val.node with spec_nodes->n__VA_ARGS__.
14473         (dump_funlike_macro): Don't use var_args_str.
14474
14475         * cpplib.c (_cpp_check_directive): Just walk through
14476         spec_nodes->dirs comparing pointers.
14477         (get_define_node, do_pragma_poison, detect_if_not_defined,
14478         parse_ifdef): The identifier has already been looked up.
14479         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
14480         node.
14481         (do_if): Only call detect_if_not_defined at beginning of file.
14482         (_cpp_parse_assertion): Only copy string pointers for
14483         SPELL_STRING tokens.
14484         (pragma_dispatch): Take a node pointer and examine its name
14485         field.
14486         (_cpp_init_stacks): Also initialize the spec_nodes structure.
14487
14488         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
14489         _cpp_init_macros.
14490         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
14491         reverse order from the corresponding _cpp_init_* routines.
14492
14493         * cppexp.c (parse_number, parse_charconst, parse_defined,
14494         lex): Check val.node->type instead of calling cpp_defined.
14495         Use spec_nodes entries where appropriate.
14496
14497         * fix-header.c, scan-decls.c: Update for interface changes.
14498
14499 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
14500
14501         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
14502         emitting aux_truncdfsf2.
14503
14504 2000-07-03  Donn Terry  (donnte@microsoft.com)
14505
14506         * cppinit.c (print_help): split overlong line into ISO C89
14507         maximum chunks.
14508
14509 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
14510
14511         * cppexp.c: Update all code for new lexer interface.
14512         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
14513         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
14514         * cpplex.c (token_names): Trim leading CPP_ from names; make
14515         the strings unsigned.
14516         (_cpp_spell_operator): New.
14517         (is_macro_disabled): Disable all macros if rescanning
14518         preprocessed text.
14519         (_cpp_get_directive_token): Remove.
14520
14521         * cppinit.c: Don't set no_macro_expand.
14522         * cpplib.c (read_line_number, do_line): Check only for EOF,
14523         not VSPACE.
14524         * cpphash.h: Update prototypes.
14525         * cpplib.h (CPP_VSPACE): Remove.
14526         (struct cpp_reader): Remove no_macro_expand.
14527
14528 2000-07-08  Neil Booth  <NeilB@earthling.net>
14529
14530         * cpphash.c (is__va_args__): New function.
14531         (count_params): Fix line reported in error messages.  Use
14532         is__va_args__.  Don't return ')' on error.  Flag GNU style
14533         rest args macro definitions.
14534         (parse_define): Check macro name is not __VA_ARGS__.
14535         (save_expansion): Check identifier in non-varargs-macro is
14536         not __VA_ARGS__.  Don't flag GNU_VARARGS.
14537         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
14538         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
14539          than per-token GNU_VARARGS.
14540         * cpplib.h (GNU_VARARGS): Remove.
14541         (GNU_REST_ARGS): New.
14542
14543 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14544
14545         * i386.md (call_pop, call, call_value_pop): Do not set
14546         current_function_uses_pic_offset_table for calls to static
14547         functions or indirect calls.
14548
14549 2000-07-07  Jim Wilson  <wilson@cygnus.com>
14550
14551         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
14552         is_predicate_reg, then take max write_count of register pair.
14553
14554 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14555
14556         * tradcpp.c (main): Rename label `include' to `add_include' to
14557         avoid conflicts with variable `include' in traditional C.
14558
14559 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
14560
14561         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
14562
14563 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
14564
14565         * sibcall.c (uses_addressof): Add INMEM argument, check for
14566         current_function_internal_arg_pointer outside of MEM rtxs in addition
14567         to ADDRESSOFs.
14568         (sequence_uses_addressof): Update caller.
14569
14570 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
14571
14572         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
14573         and friends.
14574
14575 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14576
14577         * system.h (UNION_INIT_ZERO): New macro for initializing union
14578         members in structs.
14579
14580         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
14581
14582 2000-07-07  Neil Booth  <NeilB@earthling.net>
14583
14584         * cpp.texi: Update.
14585
14586 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
14587
14588         * final.c (final): Detect out of bounds array access to
14589         the insn_lengths array.
14590
14591 2000-07-07  Kazu Hirata  <kazu@hxi.com>
14592
14593         * fold-const.c (fold): Fix a comment typo.
14594
14595 2000-07-07  Neil Booth  <NeilB@earthling.net>
14596
14597         * cpp.texi: Update to new lexer.
14598
14599 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
14600
14601         * tradcpp.c: New file.
14602         * tradcif.y: New file.
14603         * tradcif.c: New generated file.
14604
14605         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
14606         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
14607         dependencies of C.  Install tradcpp from install-common, in
14608         $(libsubdir).
14609
14610 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
14611
14612         * cppinit.c: Include cppdefault.h.  Refer to
14613         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
14614         to GCC_INCLUDE_DIR and its length.
14615         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
14616         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
14617         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
14618         cppdefault.h.
14619         (include_defaults_array): Move to cppdefault.c.
14620
14621         * cppdefault.h: New file.
14622         * cppdefault.c: New file.
14623
14624         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
14625         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
14626         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
14627         this file.
14628
14629 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14630
14631         * reload.c (push_reload): When seeing if can reuse a register,
14632         check extra registers against widest of INMODE and OUTMODE.
14633
14634 2000-07-06  Neil Booth  <NeilB@earthling.net>
14635
14636         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
14637         based on full length of predicate.
14638
14639 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
14640
14641         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
14642         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
14643
14644 2000-07-05  Kazu Hirata  <kazu@hxi.com>
14645
14646         * h8300-proto.h: Fix formatting.
14647         * h8300.c: Likewise.
14648         * h8300.h: Likewise.
14649
14650 2000-07-05  Jim Wilson  <wilson@cygnus.com>
14651
14652         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
14653         CCmode.
14654
14655 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
14656
14657         * invoke.texi: Fix minor typos
14658         * md.texi: Fix minor typos
14659
14660 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
14661
14662         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
14663
14664 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
14665
14666         * cpplex.c: Don't include sys/mman.h.
14667         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
14668
14669         * cpplib.c: Include sys/mman.h and obstack.h.
14670         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
14671         obstack.
14672         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
14673         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
14674         bother freeing if stack entries (they will be freed with their buffer).
14675         (do_endif): Free if stack entries from the buffer obstack.
14676         (push_conditional): Allocate if stack entries from the buffer obstack.
14677
14678         (find_answer): Rename to _cpp_find_answer.
14679         (do_assert, do_unassert): Update.
14680
14681         * cpphash.h: Update prototypes.
14682         (xobnew): New convenience macro.
14683         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
14684         Update comments.
14685         (struct cpp_hashnode): Remove disabled field.
14686
14687         * cppinit.c: Don't include hashtab.h or splay-tree.h.
14688         (report_missing_guard): Moved to cppfiles.c.
14689         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
14690         cpp_init_includes.
14691         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
14692         cpp_cleanup_includes.  Don't destroy hashtab or
14693         all_include_files here.
14694         (cpp_finish): Use _cpp_report_missing_guards.
14695
14696         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
14697         (_cpp_init_include_table): Rename _cpp_init_includes.
14698         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
14699
14700         * cppexp.c (parse_assertion): Update for new name of
14701         find_answer.
14702
14703         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
14704
14705 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
14706
14707         * cpplib.c (do_ident): s/VSPACE/EOF/
14708
14709 2000-07-05  Neil Booth  <NeilB@earthling.net>
14710
14711         * cpplex.c: Fix trigraph replacement within strings.
14712
14713 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14714
14715         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
14716
14717         * xcoffout.c (assign_type_number): Constify.
14718         (xcoffout_source_file): Add static prototype.  Don't needlessly
14719         cast away const-ness.
14720
14721 2000-07-04  Jason Merrill  <jason@redhat.com>
14722
14723         * frame.h (frame_state): Move base_offset to end.
14724
14725 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
14726
14727         * calls.c (emit_library_call_value_1): Revert previous change.
14728
14729 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
14730
14731         * fix-header.c (struct partial_proto): Remove unnecessary fields.
14732         (recognized_extern, recognized_function, read_scan_file):
14733         Update for new scheme.
14734         (check_protection): It's still a multiple include guard even
14735         if it doesn't always trigger.
14736         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
14737         new scheme.
14738         * scan.h: Declare struct cpp_token.  Update prototypes.
14739
14740 2000-07-03  Neil Booth  <neilb@earthling.net>
14741             Zack Weinberg  <zack@wolery.cumb.org>
14742
14743         Complete overhaul of the lexer and macro expander.
14744
14745         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
14746         arg, arglist, argdata, reflist, collect_objlike_expansion,
14747         collect_funlike_expansion, collect_params,
14748         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
14749         unsafe_chars, macarg, compare_defs, special_symbol,
14750         scan_arguments, stringify, funlike_macroexpand,
14751         _cpp_quote_string, monthnames): Delete.
14752         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
14753         _cpp_create_definition, _cpp_dump_definition,
14754         dump_hash_helper): Adjust.
14755         (find_param, count_params, parse_define, var_args_str,
14756         check_macro_redefinition, save_expansion): New.
14757
14758         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
14759         parse_string, output_line_command, trigraph_replace,
14760         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
14761         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
14762         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
14763         _cpp_skip_rest_of_line): Modify.
14764
14765         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
14766         find_position, null_warning, bump_column, expand_name_space,
14767         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
14768         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
14769         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
14770         _cpp_prescan): Delete.
14771
14772         (dump_param_spelling, process_directive, lex_next,
14773         is_macro_disabled, stringify_arg, expand_context_stack,
14774         output_token, make_string_token, alloc_number_token,
14775         special_symbol, duplicate_token, maybe_paste_with_next,
14776         can_paste, prevent_macro_expansion, restore_macro_expansion,
14777         get_temp_token, release_temp_tokens, quote_string,
14778         token_names, token_spellings, _cpp_expand_name_space,
14779         _cpp_glue_header_name, _cpp_reserve_name_space,
14780         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
14781         placemarker_token, eof_token, cpp_context, macro_args,
14782         get_raw_token, parse_arg, parse_args, save_token,
14783         push_arg_context, push_macro_context, pop_context,
14784         do_pop_context, free_macro_args, _cpp_get_line,
14785         _cpp_run_directive): New.
14786
14787         * cpplib.c (validate_else, parse_include, push_conditional,
14788         pass_thru_directive, read_line_number, parse_ifdef,
14789         detect_if_not_defined, _cpp_check_directive, do_define,
14790         do_undef, do_include, do_import, do_include_next, do_error,
14791         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
14792         top_pragmas, do_pragma_gcc, do_pragma_implementation,
14793         do_pragma_poison, do_pragma_system_header,
14794         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
14795         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
14796         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
14797         cpp_defined): Update for new scheme.
14798         (strtoul_for_line, get_define_node, dump_macro_name,
14799         _cpp_check_linemarker, _cpp_parse_assertion): New.
14800         (_cpp_handle_directive, do_pragma_default): Delete.
14801
14802         * cpphash.h (struct predicate): Now struct answer.
14803         (enum spell_type, struct token_spelling, struct directive,
14804         directive_handler): New.
14805         Update prototypes.  Remove unused macros.
14806         * cpplib.h: Update prototypes.  Remove unused macros,
14807         structure definitions, and fields.
14808
14809         * cpperror.c (print_containing_files, v_message): Adjust.
14810         * cppexp.c (parse_assertion, lex, parse_escape,
14811         _cpp_parse_expr): Adjust.
14812         * cppfiles.c (open_include_file, _cpp_execute_include,
14813         _cpp_compare_file_date, cpp_read_file, read_include_file):
14814         Adjust.
14815         * cppinit.c (dump_special_to_buffer): Delete.
14816         (append_include_chain, merge_include_chains, cpp_reader_init,
14817         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
14818         cpp_finish, handle_option, print_help): Adjust.
14819         * cppmain.c (main): Adjust.
14820
14821 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
14822
14823         * cppspec.c (lang_specific_driver): Use double quotes in error
14824         message.
14825
14826 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
14827
14828         * calls.c (emit_library_call_value_1): Use valreg instead
14829         of hard_libcall_value.
14830
14831 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
14832
14833         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
14834         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
14835         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
14836         (movhi): Likewise.
14837         (movqi): Likewise.
14838         (movdf): Likewise.
14839         (movsf): Likewise.
14840         (movdi): Likewise.
14841         (movti): Likewise.
14842
14843         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
14844         mode instead of wider_mode is being used.
14845
14846 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
14847
14848         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
14849         of 'r'. Use q_regs_operand.
14850         (andsi_1+2): Use q_regs_operand.
14851
14852 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
14853
14854         * builtins.c (get_memory_rtx): Always put into alias set 0.
14855
14856 2000-07-03  Nick Clifton  <nickc@cygnus.com>
14857
14858         * config/arm/arm.md: Fix post increment and pre increment
14859         peepholes so that they do not generate UNPREDICATBLE opcodes.
14860         (ie ones where the increment clobbers the source/destination).
14861
14862 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
14863
14864         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
14865         change too big for -mtiny-stack" a warning, if larger than 63.
14866         (out_set_stack_ptr): Change the logic so -mno-interrupts is
14867         always safe to use on possible future devices.
14868         (function_prologue): Write SPH before SPL, for consistency.
14869         If interrupt_func_p true, we know we have enabled interrupts.
14870         (avr_num_arg_regs): New function.  Round up to even number of
14871         bytes if no -mpack-args or if calling a libgcc function.
14872         (function_arg, function_arg_advance): Use it.
14873         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
14874         Output "movw" if available.
14875         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
14876         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
14877         (asm_output_section_name): Add blanks for consistent output.
14878         (encode_section_info): Set TREE_READONLY for progmem data to
14879         avoid gas warnings about changed section attributes.
14880         (avr_hard_regno_mode_ok): Force non-QImode data to start in
14881         even numbered registers on devices with "movw".
14882         * config/avr/avr.h (MASK_*): Define bits for target_flags.
14883         (TARGET_SWITCHES): Mark help strings for translation.
14884         Add new -mpack-args and -menhanced switches.
14885         (TARGET_OPTIONS): Mark help strings for translation.
14886         (progmem_section): Add section attributes.
14887         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
14888         Output "movw" if available.
14889         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
14890         New patterns.
14891         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
14892         call convention (arguments aligned on even registers).
14893         (_cleanup, _exit): Make weak symbols libc can override.
14894
14895 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14896
14897         * fp-bit.h: New file.
14898
14899         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
14900         Comment #endif statements.
14901         (__thenan_sf, __thenan_df): Add missing braces around initializer.
14902
14903 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
14904
14905         * gcse.c (compute_pre_data): Compute ae_kill using other local
14906         properties instead of calling compute_ae_kill.
14907
14908         * alias.c (init_alias_analysis): Do not call
14909         prologue_epilogue_contains until after reload has completed.
14910
14911 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
14912
14913         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
14914         (genrtl_finish_compound_stmt): Likewise.
14915         (genrtl_compound_stmt): Change to return void.
14916
14917         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
14918         move code from here to ...
14919         (genrtl_compound_stmt): ... here.
14920         (genrtl_finish_compound_stmt): Remove.
14921         (expand_stmt): Add comment.
14922
14923 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
14924
14925         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
14926         and VOID_TYPE_P.
14927
14928 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
14929
14930         * cpplib.h (struct cpp_reader): New field include_depth.
14931         (struct cpp_printer): Rename last_bsd to last_id.
14932         * cppfiles.c (read_include_file): Bump include_depth.
14933         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
14934         (output_line_command): Output correct #line if a header
14935         is including itself and is not protected against multiple inclusion.
14936         Use include_depth instead of buffer_stack_depth, last_id instead of
14937         last_bsd.
14938         * cppinit.c (cpp_start_read): Initialize last_id instead of
14939         last_bsd.
14940
14941 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
14942
14943         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
14944         (c-semantics.o): New target.
14945
14946         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
14947         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
14948         (genrtl_clear_out_block): Likewise.
14949         (genrtl_goto_stmt): Likewise.
14950         (genrtl_expr_stmt): Likewise.
14951         (genrtl_decl_stmt): Likewise.
14952         (genrtl_if_stmt): Likewise.
14953         (genrtl_while_stmt): Likewise.
14954         (genrtl_do_stmt): Likewise.
14955         (genrtl_return_stmt): Likewise.
14956         (genrtl_for_stmt): Likewise.
14957         (genrtl_break_stmt): Likewise.
14958         (genrtl_continue_stmt): Likewise.
14959         (genrtl_scope_stmt): Likewise.
14960         (genrtl_switch_stmt): Likewise.
14961         (genrtl_case_label): Likewise.
14962         (genrtl_begin_compound_stmt): Likewise.
14963         (gerntl_finish_compound_stmt): Likewise.
14964         (genrtl_compound_stmt): Likewise.
14965         (genrtl_asm_stmt): Likewise.
14966         (genrtl_decl_cleanup): Likewise.
14967         (DECL_ANON_UNION_ELEMS): Likewise.
14968         (emit_local_var): Likewise.
14969         (make_rtl_for_local_static): Likewise.
14970         (expand_cond): Likewise.
14971         (expand_stmt): Likewise.
14972         (c_expand_return): Likewise.
14973         (c_expand_start_case): Likewise.
14974         (do_case): Likewise.
14975         (COMPOUND_STMT_NO_SCOPE): Likewise.
14976         (c_expand_asm_operands): Likewise.
14977         (NEW_FOR_SCOPE_P): New macro.
14978         (expand_expr_stmt_fn): New type.
14979
14980         (set_current_function_name_declared): Likewise.
14981         (current_function_name_declared): Likewise.
14982         (lang_expand_stmt): Likewise.
14983         (stmts_are_full_exprs_p): Likewise.
14984         (anon_aggr_type_p): Likewise.
14985         (lang_expand_expr_stmt): Likewise.
14986         (build_case_label): Likewise.
14987
14988         * c-decl.c (lang_expand_expr_stmt): Initialize.
14989         (stmts_are_full_exprs_p): Define.
14990         (current_function_name_declared): Likewise.
14991         (do_case): Likewise.
14992         (lang_expand_stmt): Likewise.
14993         (set_current_function_name_declared): Likewise.
14994         (anon_aggr_type_p): Likewise.
14995
14996         * c-semantics.c: New file.
14997         (expand_cond): Moved from cp/semantics.c.
14998         (genrtl_do_pushlevel): Likewise.
14999         (genrtl_clear_out_block): Likewise.
15000         (genrtl_goto_stmt): Likewise.
15001         (genrtl_expr_stmt): Likewise.
15002         (genrtl_decl_stmt): Likewise.
15003         (genrtl_if_stmt): Likewise.
15004         (genrtl_while_stmt): Likewise.
15005         (genrtl_do_stmt): Likewise.
15006         (genrtl_return_stmt): Likewise.
15007         (genrtl_for_stmt): Likewise.
15008         (genrtl_break_stmt): Likewise.
15009         (genrtl_continue_stmt): Likewise.
15010         (genrtl_scope_stmt): Likewise.
15011         (genrtl_switch_stmt): Likewise.
15012         (genrtl_case_label): Likewise.
15013         (genrtl_begin_compound_stmt): Likewise.
15014         (genrtl_finish_compound_stmt): Likewise.
15015         (genrtl_compound_stmt): Likewise.
15016         (genrtl_asm_stmt): Likewise.
15017         (genrtl_decl_cleanup): Likewise.
15018         (make_rtl_for_local_static): Moved from cp/decl.c.
15019         (emit_local_var): Likewise.
15020         (expand_stmt): Define.
15021
15022         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
15023         (c_expand_return): Likewise.
15024         (c_expand_start_case): Likewise.
15025
15026 2000-07-01  Richard Henderson  <rth@cygnus.com>
15027
15028         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
15029         with the low 13 bits set.
15030         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
15031         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
15032         of the low 13 bits into a CONST plus an adddi3.
15033         (load_symptr): Set RTX_UNCHANGING_P.
15034
15035 See ChangeLog.3 for earlier changes.