OSDN Git Service

2001-01-09 Kazu Hirata <kazu@hxi.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-01-09  Kazu Hirata  <kazu@hxi.com>
2
3         * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
4         Change an argument mode of machine_mode to shift_mode of
5         shift_mode.  Remove an extra error check.
6         (emit_a_shift): Adopt to the new calling prototype of
7         get_shift_alg.
8         (function_prologue): Fix code for a monitor
9         function.  Support H8/S.
10         (function_epilogue): Do not output pop for a monitor function.
11
12 2001-01-09  Nick Clifton  <nickc@redhat.com>
13
14         * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete.
15         (setup_incoming_varargs): Use sysv_varargs_p field of the
16         cfun->machine structure.
17         (struct machine_function): Move to rs6000.h
18         (rs6000_save_machine_status): Delete.
19         (rs6000_restore_machine_status): Delete.
20         (rs6000_init_machine_status): New Function.
21         (rs6000_free_machine_status): New Function.
22         (rs6000_init_expanders): Use new functions.
23
24         * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete
25         export.
26         (struct machine_function): Move here.
27
28         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
29         sysv_varargs_p field of the cfun->machine structure.
30
31         * config/rs6000/rs6000-protos.h (rs6000_save_machine_status):
32         Remove prototype.
33         (rs6000_restore_machine_status): Remove prototype.
34
35 2001-01-09  Richard Henderson  <rth@redhat.com>
36
37         * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
38         reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
39         * sched-deps.c (sched_analyze_1): Update uses of struct deps.
40         (sched_analyze_2, sched_analyze_insn): Likewise.
41         (sched_analyze, init_deps): Likewise.
42         (free_deps): Likewise.  Iterate with EXECUTE_IF_SET_IN_REG_SET.
43         * sched-rgn.c (propagate_deps): Likewise.  Remove max_reg argument.
44         (compute_block_backward_dependences): Update propagate_deps call.
45
46 2001-01-09  Mark Elbrecht  <snowball3@bigfoot.com>
47
48         * gcc.c (process_command): Set switches[n_switches].ordering to 0.
49
50 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
51
52         * cppinit.c (OPT_MD, OPT_MMD): Restore.
53         (cpp_handle_option): Handle them.
54         (cpp_post_options): Ensure one of -M or -MM is specified with
55         any other -M? option.
56         (init_dependency_output): Suppress output with -MG.
57
58 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
59
60         * cpp.texi: Update.
61         * invoke.texi: Update.
62
63 2001-01-09  Bernd Schmidt  <bernds@redhat.com>
64
65         * sh.md (reload_outsf): Generate recognizable patterns for
66         TARGET_SH3E.
67
68 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
69
70         * c-lang.c (lang_hooks): Update.
71         (lang_init): Rename c_init.
72         (lang_finish): Remove.
73         * toplev.c (compile_file): Use lang_hooks for lang_init ()
74         and lang_finish ().
75         * toplev.h (lang_hooks): Add init () and finish ().
76         * tree.h (lang_init, lang_finish): Remove.
77         * cp/tree.h (lang_init, lang_finish): Remove.
78         * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
79         * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
80         lang_hooks): New.
81         (lang_init, lang_finish): Remove.
82         * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
83         (lang_hooks): Update.
84         * java/lang.c (lang_init): Rename java_init.
85         (lang_finish): Remove.
86         (lang_hooks): Update.
87         * objc/objc-act.c (lang_init): Rename objc_init.
88         (lang_finish): Remove.
89         (lang_hoooks): Update.
90
91 20001-01-09  Graham Stott  <grahams@redhat.com>
92
93         * cppfiles.c (_cpp_execute_include): Move `len` initialisation
94         after `ptr` is initialised.
95
96 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
97
98         * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
99         (INITIALIZE_TRAMPOLINE): Adjust accordingly.
100         * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
101         stack adjusts, instead of r3.
102
103 2001-01-09  Michael Hayes  <mhayes@redhat.com>
104
105         * flow.c (flow_loop_scan): Break out of ...
106         (flow_loops_find) ... here.
107         * basic-block.h (flow_loop_scan): New.
108         (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add.
109         (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine.
110
111 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
112
113         * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero
114         macro_buffer_len.
115         * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when
116         realloc()ing macro_buffer.
117
118         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
119         if it's wider than long and the target's long is wider than the
120         host's.
121
122 2001-01-09  Mark Mitchell  <mark@codesourcery.com>
123
124         Remove support for using UWIN as a host machine.
125         * configure.in: Issue an error message.
126         * configure: Regenerated.
127         * config.gcc: Remove xm_* UWIN configury.
128         * config/i386/xm-uwin.h: Remove.
129
130 2001-01-08  Nick Clifton  <nickc@redhat.com>
131
132         * config/v850/v850.c (ra_rtx): Delete.
133         (v850_save_machine_status): Delete.
134         (v850_restore_machine_status): Delete.
135         (v850_init_machine_status): New function.
136         (v850_mark_machine_status): New function.
137         (v850_free_machine_status): New function.
138         (v850_return_addr): Use ra_rtx field in machine structure.
139         (v850_init_expanders): Use new functions.
140
141         * config/v850/v850-protos.h: Fix prototypes for v850_output_*
142         * config/v850/v850.c: Change arguments to v850_output+* functions
143         to take a const char *, to avoid compile time warning.
144         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
145         (USER_LABEL_PREFIX): Redefine.
146         
147 2000-01-08  Jim Wilson  <wilson@redhat.com>
148
149         * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
150         1 to unsigned HOST_WIDE_INT before left shift.
151
152 2001-01-08  Nick Clifton  <nickc@redhat.com>
153
154         * config/arm/arm.c (arm_mark_machine_status): Check to see if
155         the machine structure has been allocated.
156         (arm_free_machine_status): New function: Free the machine
157         specific function structure.
158
159 2001-01-08  Richard Henderson  <rth@redhat.com>
160
161         * jump.c (simplejump_p): Revert last change.
162
163 2001-01-08  Neil Booth  <neil@daikokuya.demon.co.uk>
164
165         * cppinit.c (init): Rename init_library.
166         (cpp_create_reader): Update.
167         * gcc.c (cpp_options): If -o given, use it as the target of
168         any -M options.
169
170 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
171
172         * arm.c (arm_arch5e): New variable.
173         (all_cores): XScale is a 5TE device.
174         (arm_override_options): Set arm_arch5e.
175         (arm_init_builtins): __builtin_prefetch is in arch5e.
176         * arm.h (arm_arch5e): Declare it.
177
178         * arm.h (PREDICATE_CODES): Add arm_hard_register_operand.
179
180         * arm.md (define_constants): Add defines for UNSPEC and
181         UNSPEC_VOLATILE insns.  Update all users.
182         (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM.
183         * arm.c (multi_register_push, note_invalid_constants)
184         (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
185         * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
186         (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
187         
188 Mon Jan  8 16:14:56 MET 2001  Jan Hubicka  <jh@suse.cz>
189
190         * jump.c (jump_optimize_1): Use reversed_comparison_code
191         instead of can_reverse_comparison_p.
192         (jump_back_p): Likewise.
193         (invert_exp_1): Likewise.
194         (thread_jumps): Likewise.
195         * simplify-rtx.c (simplify_unary_operation): Likewise.
196         (simplify_ternary_operation): Likewise.
197         * cse.c (find_comparison_args): Convert to use
198         can_reverse_comparison_p.
199         (record_jump_equiv): Likewise.
200
201 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
202
203         * arm.h (HARD_REGNO_RENAME_OK): Delete.
204         (EPILOGUE_USES): Define.
205         (INITIAL_ELIMINATION_OFFSET): Current prologue code does not 
206         automatically stack the LR if it isn't live.
207
208 Mon Jan  8 13:46:02 MET 2001  Jan Hubicka  <jh@suse.cz>
209
210         * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions
211         properly.
212
213 Sun Jan  7 18:37:43 2001  Mark P Mitchell  <mark@codesourcery.com>
214
215         * ggc-page.c (max_alignment): New structure.
216         (MAX_ALIGNMENT): New macro.
217         (init_ggc): Use it to round up the sizes in the
218         extra_order_size_table.
219
220 2001-01-07  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
221
222         * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register
223         after reload.
224
225 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
226
227         * builtins.def (BUILT_IN_FPRINTF): New entry.
228
229         * c-common.c (c_expand_builtin_fprintf): New function.
230         (init_function_format_info): Handle __builtin_fprintf.
231         (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf.
232         (c_expand_builtin): Handle BUILT_IN_FPRINTF.
233
234         * c-decl.c (duplicate_decls): Adjust comment.
235
236         * extend.texi (fprintf): Document new builtin.
237
238 2001-01-07  Richard Henderson  <rth@redhat.com>
239
240         * jump.c (simplejump_p): Recognize any single_set jump
241         of the proper form.
242
243 2001-01-07  Richard Henderson  <rth@redhat.com>
244
245         * configure.in (slibdir): Accept an --with-slibdir option.
246         Use "test" not "[" in configure.  Default to $(libdir).
247
248         * config/t-linux (SHLIB_INSTALL): Double quote slibdir;
249         fix typo in rm -f.
250         * config/t-aix43 (SHLIB_INSTALL): Likewise.
251         * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
252         (SHLIB_LINK): Create links for the soname.
253         * config/mips/t-iris6: Likewise.
254         * config/sparc/t-slibgcc: Likewise.
255         * config/sparc/t-slibgcc-sld: Likewise.
256
257 2001-01-07  Jakub Jelinek  <jakub@redhat.com>
258
259         * config/i386/i386.c (constant_call_address_operand): Accept
260         (const (plus (symbol_ref) (const_int))).
261         * config/i386/i386.h (PREDICATE_CODES): Add CONST for
262         constant_call_address_operand.
263
264 2001-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
265
266         * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
267         and LONG_LONG_TYPE_SIZE > 32.
268
269 2001-01-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
270
271         * jump.c (reversed_comparison_code_parts): Fix typo introduced by
272         the previous change.
273
274 Sun Jan  7 19:37:48 MET 2001  Jan Hubicka  <jh@suse.cz>
275
276         * jump.c (reversed_comparison_code_parts, reversed_comparison_code):
277         New.
278         (can_reverse_comparison_p): Rewrite to use reversed_comparison_code.
279         (reverse_condition_maybe_unordered): Abort on unsigned comparisons.
280         * rtl.h (reversed_comparison_code_parts, reversed_comparison_code):
281         Declare.
282
283 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
284
285         * fix-header.c (read_scan_file): s/pfile/scan_in/.
286
287 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
288
289         * c-lang.c (c_post_options): Call cpp_post_options.
290         * objc/objc-act.c (objc_post_options): Similarly.
291         * cppmain.c (main): Similarly.
292         * fix-header.c (read_scan_file): Similarly.
293         * cppinit.c (cpp_start_read): Move option consistency checks
294         to cpp_post_options.  Don't call init_dependency_output.
295         If needed, add default target and main file dependency.
296         (OPT_MD, OPT_MMD): Remove.
297         (OPT_MF): New.
298         (cpp_handle_option): Update for OPT_* changes.
299         (cpp_post_options): New.
300         (init_dependency_output): Command line -MF overrides environment
301         variables.  Don't set default target etc.  Suppress output
302         if dependencies are going to stdout.
303         (print_help): Update.
304         * cpplib.h (cpp_post_options): New.
305         * gcc.c (cpp_options): Update for -MD, -MMD, -MF.
306         
307 Sun Jan  7 14:44:19 MET 2001  Jan Hubicka  <jh@suse.cz>
308
309         * jump.c (comparison_dominates_p): Support unordered compares.
310
311 Sun Jan  7 14:39:07 MET 2001  Jan Hubicka  <jh@suse.cz>
312
313         * simplify-rtx.c (simplify_relational_operation): Always simplify
314         ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
315         and UNGE.
316
317 Sun Jan  7 14:35:13 MET 2001  Jan Hubicka  <jh@suse.cz>
318
319         * combine.c (combine_simplify_rtx): Recognize the unordered compares.
320         (nonzero_bits): Likewise.
321         (simplify_comparison): Likewise.
322         (num_sign_bit_copies): Likewise; return more sane value depending
323         on STORE_FLAG_VALUE.
324         (known_cond): Do not assume EQ to be always true for equivalent
325         operands.
326
327 Sun Jan  7 14:31:57 MET 2001  Jan Hubicka  <jh@suse.cz>
328
329         * cse.c (fold_rtx): Handle unordered comparisons.
330
331 Sun Jan  7 13:49:19 MET 2001  Jan Hubicka  <jh@suse.cz>
332
333         * rtlanal.c (set_of_1): New static function.
334         (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag,
335          reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno,
336          reg_set_last_last_regno): Remove.
337         (set_of): New global function.
338         (set_of_data): New structure.
339         (reg_set_p, reg_set_last): Revamp for set_of.
340         * rtl.h (set_of): New.
341
342 2001-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
343
344         * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin.
345         * extend.texi: Document _Exit builtin.
346
347 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
348
349         * (initialize, initialize_builtins,
350         initialize_dependency_output, initialize_standard_includes):
351         Rename s/initialize/init. Update.
352         (init_dependency_output): Move to after
353         cpp_handle_options, the correct location temporally at least.
354         (opt_comp): Move next to init (), its caller.  Fix prototype.
355         (init): Make "initialized" local scope.
356         (cpp_create_reader): Always call init ().
357         (cpp_start_read): Update.
358         (output_deps): New function, broken out of cpp_finish.
359         (cpp_finish): Break out output_deps.
360
361 2001-01-07  Richard Henderson  <rth@redhat.com>
362
363         * collect2.c (COFF specific stuff): Revert 12-06 patch
364         to prototype system functions.
365
366 2001-01-07  Michael Hayes  <mhayes@redhat.com>
367
368         * hard-reg-set.h: Add multiple include guard.
369         * basic-block.h (struct loop): Add `sink' field.
370         * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
371         (emit_iv_add_mult): Delete.
372         (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
373         (loop_iv_add_mult_emit_before, loop_insn_sink): Define.
374         (unroll_loop): Remove end_insert_before argument.
375         * loop.c (loop_givs_rescan): Remove end_insert_before argument.
376         (maybe_eliminate_biv_1): Likewise.
377         (emit_iv_add_mult): Delete.
378         (gen_add_mult, loop_regs_update): New.
379         (loop_insn_emit_after, loop_insn_emit_before): New.
380         (loop_insn_sink, loop_insn_sink_or_swim): New.
381         (emit_iv_add_mult): Delete.
382         (scan_loop): Set loop->sink.
383         (loop_givs_reduce): Use loop_insn_sink and its ilk.
384         (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
385         (maybe_eliminate_biv_1): Likewise.
386         (maybe_eliminate_biv_1): Add basic block argument.
387         * unroll.c (unroll_loop): Remove end_insert_before argument.
388         (find_splittable_regs): Likewise.
389         (find_splittable_regs): Use loop_insn_sink and its ilk.
390         (find_splittable_givs, final_biv_value, final_giv_value): Likewise.
391
392 2001-01-07  Michael Hayes  <mhayes@redhat.com>
393
394         * loop.h (loop_insn_hoist): New prototype.
395         * loop.c (loop_insn_hoist, loop_insn_emit_before): New.
396         (move_movables, loop_givs_rescan): Use loop_insn_hoist.
397         (check_dbra_loop, load_mems): Likewise.
398         * unroll.c (unroll_loop, find_splittable_regs): Likewise.
399         (find_splittable_givs): Likewise.
400
401 2001-01-07  Michael Hayes  <mhayes@redhat.com>
402
403         * loop.c (emit_iv_add_mult): Use single_set to examine new insn.
404
405 2001-01-07  Richard Henderson  <rth@redhat.com>
406
407         * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change.
408
409 2001-01-07  Richard Henderson  <rth@redhat.com>
410
411         * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
412         NO_SHARED_LIBGCC_MULTILIB as required for the target.
413         * gcc.c (init_spec): Massage the existing libgcc_spec into a
414         variant that handles a shared libgcc.
415         (process_command): Always validate -{static,shared}-libgcc.
416         (do_spec_1): New 'M' case.
417         * invoke.text (Link Options): Document -{static,shared}-libgcc.
418
419 2001-01-07  Richard Henderson  <rth@redhat.com>
420
421         * Makefile.in (slibdir): New variable.
422         (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
423         (installdirs): Create slibdir.
424         (install-libgcc, install-multilib): Defer to libgcc.mk.
425         * configure.in (slibdir): Substitute.
426         * mklibgcc.in (install): New target.
427
428         * config/t-linux (SHLIB_LINK): Create links for the soname.
429         (SHLIB_INSTALL): New.
430         * config/alpha/t-osf4 (SHLIB_INSTALL): New.
431         * config/mips/t-iris6 (SHLIB_INSTALL): New.
432         * config/rs6000/t-aix43 (SHLIB_INSTALL): New.
433         * config/sparc/t-slibgcc (SHLIB_INSTALL): New.
434         * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
435
436 2001-01-07  Richard Henderson  <rth@redhat.com>
437
438         * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
439         * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove.
440         * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove.
441
442 2001-01-07  Michael Hayes  <mhayes@redhat.com>
443
444         * loop.c (count_loop_regs_set): Delete.
445         (load_mems_and_recount_loop_regs_set): Delete.
446         (loop_regs_scan): Merge common code from count_loop_regs_set,
447         scan_loop, and load_mems_and_recount_loop_regs_set.
448         (scan_loop): Call load_mems directly and loop_regs_scan
449         again if new registers created.
450
451 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
452
453         * toplev.c (main): Call the front-end specific post_options
454         hook if one is given.
455         * toplev.h (struct_lang_hooks, lang_hooks): New.
456         * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
457         for the C front end.
458         * cp/decl2.c (cxx_post_options, lang_hooks): Implement
459         lang_hooks for the C++ front end.
460         * objc/objc-act.c (objc_post_options, lang_hooks): Implement
461         lang_hooks for the ObjC front end.
462         * f/com.c (lang_hooks): Hooks for the Fortran front end.
463         * java/lang.c (lang_hooks): Hooks for the Java front end.
464
465 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
466
467         * c-lex.c (init_c_lex): Request #define / #undef callbacks
468         for verbose DWARF[2] debugging.
469         (cb_define, cb_undef): The new callbacks.
470         * toplev.h (debug_define, debug_undef): Make const correct.
471         * toplev.c (debug_define, debug_undef): Similarly.  Do not   
472         perform the verbosity tests here anymore.
473
474 2001-01-07  Alexandre Oliva  <aoliva@redhat.com>
475
476         * reload.c (subst_reloads): Take INSN argument.  When
477         replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
478         * reload.h (subst_reloads): Adjust prototype.
479         * reload1.c (reload_as_needed): Pass INSN to subst_reloads.
480         * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
481         present in JUMP_INSNs and copy them to JUMP_LABEL.
482         * flow.c (find_label_refs, find_basic_blocks_1): Skip
483         JUMP_INSNs and insns with REG_LABELs that are followed by
484         JUMP_INSNs with the same REG_LABEL.
485         * sched-rgn.c (is_cfg_nonregular): Likewise.
486         * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
487         note is available.
488         * unroll.c (unroll_loop): Look for REG_LABEL notes in
489         JUMP_INSNs too.
490         * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
491
492 2001-01-06  Richard Henderson  <rth@redhat.com>
493
494         * loop.c (scan_loop): Use xcalloc for the regs array.
495         (load_mems_and_recount_loop_regs_set): Zero the new memory
496         received from xrealloc.
497
498 2001-01-06  Neil Booth  <neil@daikokuya.demon.co.uk>
499
500         * mkdeps.c (deps_add_dep): Fix vector re-allocation.
501
502 Sat Jan  6 00:09:34 2001  J"orn Rennecke <amylaar@redhat.com>
503
504         * integrate.c (copy_rtx_and_substitute): When copying
505         an ignored return value, strip REG_FUNCTION_VALUE_P.
506
507 2001-01-06  Michael Hayes  <mhayes@redhat.com>
508
509         * loop.c (debug_biv, debug_giv): New.
510         (loop_biv_dump): Break out from ...
511         (record_biv): ... here.
512         (loop_giv_dump): Break out from ...
513         (record_giv): ... here.
514         (loop_bivs_check): Use print_simple_rtl.
515         * unroll.c (loop_iterations): Use print_simple_rtl.
516
517 2000-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
518
519         * pa.md (return, return_internal): Modify patterns to prevent regrename
520         mucking with the return pointer.
521
522 2001-01-05  Mike Stump  <mrs@wrs.com>
523
524         * varasm.c (assemble_name): Ensure we output the stripped name.
525
526 2001-01-05  Richard Henderson  <rth@redhat.com>
527
528         * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change.
529
530 Fri Jan  5 16:34:18 2001  Nick Clifton  <nickc@redhat.com>
531
532         * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster
533         version supplied by Matteo Frigo.
534
535 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
536
537         * cpp.texi: Update for -MQ.
538         * cppinit.c (cpp_create_reader): Always create pfile->deps.
539         (cpp_cleanup): Always free pfile->deps.
540         (initialize_dependency_output): Don't create pfile->deps.
541         (cpp_handle_option): Similarly.
542         (OPT_MQ): New.
543         * gcc.c (cpp_options): Handle -MQ.
544         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
545         * mkdeps.c (base_name): Remove.
546         (deps_init): Don't allocate vector space until it's needed.
547         (deps_free): Only free vectors if allocated.
548         (deps_add_target, deps_add_dep): Update for initial allocation.
549         (deps_add_default_target): Don't strip to the base_name.
550
551 2001-01-05  DJ Delorie <dj@redhat.com>
552
553         * config/v850/v850.h (RETURN_ADDR_RTX): Define.
554         (INIT_EXPANDERS): Define.
555
556         * config/v850/v850.c (struct machine_function): Define.
557         (v850_save_machine_status): New function.
558         (v850_restore_machine_status): New function.
559         (v850_return_addr): New function.
560         (v850_init_expanders): New function.
561
562         * config/v850/v850-protos.h: Add prototypes for v850_return_addr
563         and v850_init_expanders.
564         
565 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
566
567         * cpplib.h (struct cpp_reader): Add help_only field.
568         * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
569         (cpp_handle_option): Set pfile->help_only if we see -h,
570         --help, -target-help, or --version.  Print version string but
571         do not set help_only if we see -v or -version.  Make text
572         printed by -v match that printed by (-)-version.
573
574         * cppmain.c (main): Exit after option parsing if
575         pfile->help_only is true.
576
577         * toplev.c (independent_decode_option): Call print_version,
578         then exit, if we see --version (but not -version).
579         (print_version): Split lengthy message into two lines.
580
581 2001-01-05  Nick Clifton  <nickc@redhat.com>
582
583         * config/v850/v850.c (v850_encode_data_area): Use alloca to create
584         temporary string for initialisation before calling ggc_alloc_string.
585
586 2001-01-06  Michael Hayes  <mhayes@redhat.com>
587
588         * rtl.h (print_simple_rtl): New.
589         * print-rtl.c (print_simple_rtl): New.
590         (flag_simple): New.
591         (print_rtx): Disable printing of flags and modes, etc.,
592         if `flag_simple` nonzero.
593
594 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
595
596         * function.c (fixup_var_refs): Use push_to_full_sequence where
597         possible.
598
599 2001-01-05  Michael Meissner  <meissner@redhat.com>
600
601         * flags.h (flag_reorder_blocks): Add declaration.
602         (flag_rename_block): Ditto.
603
604 2001-01-05  DJ Delorie  <dj@redhat.com>
605
606         * function.c (reorder_blocks): Make sure the flags are all reset
607         before using them to mark blocks, else a second invocation will
608         corrupt the block chain.
609         (reorder_blocks_0): New, resets the flags.
610
611 Fri Jan  5 20:34:06 2001  J"orn Rennecke <amylaar@redhat.com>
612
613         * cse.c (find_comparison_args): Stop if the argument is known to
614         be constant.
615
616 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
617
618         * config/sh/sh.md (movdf): When splitting load into pair of
619         registers, don't clobber the register used in the address too
620         early.
621
622 2001-01-05  Jeffrey Oldham  <oldham@codesourcery.com>
623
624         * varasm.c (mark_constant_pool): Improve initial comments.
625         (mark_constants): Move marking of constants to mark_constant.
626         (mark_constant): New function to recursively mark all constants
627         referred to by a constant.
628
629 2001-01-05  Catherine Moore  <clm@redhat.com>
630
631         * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG.
632
633 2001-01-05  Phil Edwards  <pme@sources.redhat.com>
634
635         * cp/lang-options.h:  Bring comment in line with reality.
636         * f/lang-options.h:  Likewise.
637         * java/lang-options.h:  Likewise.
638         * objc/lang-options.h:  Likewise.
639         * ch/lang-options.h:  Likewise.
640         * f/g77.texi:  And update the manual.
641
642 2001-01-05  Marek Michalkiewicz  <marekm@linux.org.pl>
643             Denis Chertykov  <denisc@overta.ru>
644
645         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
646         * config/avr/avr.c (avr_peep2_scratch_safe): New function.
647         * config/avr/avr.md (all peepholes that request a scratch register):
648         Call it, FAIL the peephole if not safe (in interrupt functions).
649
650 2001-01-05  Mark Mitchell  <mark@codesourcery.com>
651
652         * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now.
653
654 2001-01-05  Joseph S. Myers  <jsm28@cam.ac.uk>
655
656         * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG):
657         Define.
658         * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ,
659         BUILT_IN_CREAL and BUILT_IN_CIMAG.
660         * c-common.c (c_common_nodes_and_builtins): Create builtin conjf,
661         conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl.
662         (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and
663         BUILT_IN_CIMAG.
664         * extend.texi: Document these builtins.
665
666 2001-01-05  Daniel Berlin  <dberlin@redhat.com>
667
668         * c-common.c (lang_get_alias_set): Say we know nothing of
669         VECTOR_TYPE aliasing. 
670
671         * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
672
673 2001-01-05  Bruce Korb  <bkorb@gnu.org>
674
675         * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to
676         their x* equivalent versions for atexit-less systems
677         * fixinc/fixincl.c(main): do not return from main() on atexit-less
678         systems (or any other system any more).
679
680 2001-01-05  Richard Earnshaw  <rearnsha@arm.com>
681
682         * arm.md (ldmsi_postinc): Avoid use of match_dup between input and
683         output operands.  Use arm_hard_register_operand for operand 4.
684         (stmsi_postinc): Similarly.
685         (ldmsi): Use arm_hard_register_operand for opernand 2.
686         (stmsi): Similarly.
687         * arm.c (arm_hard_register_operand): New function.
688         * arm-protos.h (arm_hard_register_operand): Prototype it.
689
690         * arm.h (HARD_REGNO_RENAME_OK): Define.
691
692 Fri Jan  5 16:29:49 MET 2001  Jan Hubicka  <jh@suse.cz>
693
694         * simplify-rtx.c (cfc_args): add "unordered" field.
695         (check_fold_consts): Set unordered field.
696         (simplify_relational_operation): Simplify the unordered
697         comparisons.
698
699         * reg-stack.c (swap_rtx_condition): Ensure that the transformation
700         is valid.
701
702         * emit-rtl.c (try_split): Fix code to mark labels.
703         * jump.c (mark_jump_label): Make global.
704         * rtl.h (mark_jump_label): Declare.
705
706         * predict.c (estimate_probability): Handle unordred comparisons.
707
708 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
709
710         * cpp.texi: Update for -MP.  Clarify behaviour of -MT.
711         * cppinit.c (initialize_dependency_output):  Update.
712         (cpp_finish): Output dummy targets for -MP.
713         (OPT_MP): New.
714         (cpp_handle_option): Handle -MP.  Don't quote -MT options.  
715         * cpplib.h (struct cpp_options): Add deps_phony_targets.
716         * gcc.c (cpp_options): Update to handle -MP.
717         * mkdeps.c (deps_add_target, deps_add_default_target): Update
718         to quote only the default target.
719         (deps_phony_targets): Insert a preceding newline.  Rename from
720         deps_dummy_targets for consistency.
721         * mkdeps.h: Update
722
723 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
724
725         * calls.c (emit_library_call_value_1): Support
726         INIT_CUMULATIVE_LIBCALL_ARGS.
727         * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
728
729 2001-01-04  Richard Henderson  <rth@redhat.com>
730
731         * c-decl.c (finish_struct): Detect flexible array members
732         used in an inappropriate context.
733         * c-typeck.c (really_start_incremental_init): Special case
734         constructor_max_index for zero length arrays.
735         (pop_init_level): Allow initialization of flexible array
736         members.  Deprecate initialization of zero length arrays.
737         Don't issue missing initializer warning for flexible array
738         members or zero length arrays.
739         (process_init_element): Don't dereference null DECL_SIZE.
740         * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
741         Don't abort for empty constructors.  Use size_binop
742         (output_constructor): Add commentary regarding zero length 
743         array futures.  Abort if we try to initialize an array of
744         unspecified length with a non-empty constructor in the middle
745         of a structure.
746
747         * extend.texi (Zero Length): Update and clarify documentation
748         on static initialization.
749
750 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
751
752         * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR
753         with more than 32767 words of local storage.
754
755 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
756
757         * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support
758         for 'abs', 'labs', and 'fabs'.
759         (c4x_expand_builtin): Likewise.
760         * config/c4x/c4x.h (enum c4x_builtins): Likewise.
761
762 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
763
764         * config/sh/sh.md (prget, prset): New insn types.
765         (return delay slot): Dont' allow prset.
766         (call, sfunc delay slot): Don't allow prget.
767         (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives
768         for prset and prget.
769
770 2001-01-05  Michael Hayes  <mhayes@redhat.com>
771         
772         * loop.h (struct loop_reg): New.
773         (struct loop_regs): Change to use array of `struct loop_reg'.
774         * loop.c: Replace assortment of varrays with single regs array.
775         (count_one_set): Delete may_not_move array argument
776         and use regs array instead.  All caller's changed.
777         (count_loop_regs_set): Delete may_not_move and single_usage
778         arguments and use regs array instead.  All caller's changed.
779         (find_single_use_in_loop): Replace usage array argument with pointer
780         to regs structure.  All caller's changed.
781         (loop_optimize): Delete `moved_once' array.
782
783 2001-01-05  Michael Hayes  <mhayes@redhat.com>
784         
785         * loop.c (prescan_loop): Set loop_info->has_nonconst_call.
786         Use it instead of loop_info->has_call for scanning loop mems.
787         (check_dbra_loop): Replace loop_info->has_call test with
788         loop_info->has_nonconst_call.
789
790 2000-01-04  Matthew Hiller  <hiller@redhat.com>
791
792         * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used
793         for TARGET_SH3E.
794
795 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
796
797         * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
798         use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
799
800 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
801
802         * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
803         (flag_short_double, flag_short_wchar): Define.
804         (c_common_nodes_and_builtins): Create many tree nodes shared
805         between C and C++ here instead of in cp/decl.c and ...
806         * c-decl.c (init_decl_processing): ... here.
807         (SIZE_TYPE, WCHAR_TYPE): Don't define.
808         (flag_short_double, flag_short_wchar): Don't define.
809         (record_builtin_type): New function.
810         (build_void_list_node): New function.
811         * c-common.h (flag_short_double, flag_short_wchar,
812         record_builtin_type, build_void_list_node): Declare.
813
814 Thu Jan  4 21:09:47 2001  J"orn Rennecke <amylaar@redhat.com>
815
816         * integrate.c (expand_inline_function): Don't put a virtual
817         register into the reg map.
818
819         * function.c (fixup_var_refs_1): If force_operand didn't put
820         the address into the target, move it there.
821
822 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
823
824         Special-case tree_decl/tree_list allocations.
825         * ggc-page.c (OBJECT_PER_PAGE): Reimplement.
826         (OBJECT_SIZE): New macro.
827         (NUM_EXTRA_ORDER): Likewise.
828         (extra_order_size_table): New variable.
829         (NUM_ORDERS): New macro.
830         (objects_per_page_table): New variable.
831         (object_size_table): New variable.
832         (G.pages): Use NUM_ORDERS to bound the array.
833         (G.page_tails): Likewise.
834         (DIV_ROUND_UP): Remove.
835         (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
836         (alloc_page): Use OBJECT_SIZE.
837         (size_lookup): Don't make it const.
838         (ggc_alloc): Use OBJECT_SIZE.
839         (ggc_set_mark): Likewise.
840         (ggc_get_size): Likewise.
841         (init_ggc): Set up the object_size_table, objects_per_page_table,
842         and adjust size_lookup.
843         (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
844         (ggc_pop_context): Use NUM_ORDERS.
845         (clear_marks): Likewise.
846         (sweep_pages): Likewise.
847         (poison_pages): Likewise.
848         (ggc_print_statistics): Use OBJECT_SIZE.
849
850 Thu Jan  4 15:54:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
851
852         * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
853         Only call array_size_for_constructor if last field and array type
854         with no upper bound.
855
856 2001-01-04  Philip Blundell  <philb@gnu.org>
857
858         * config/arm/arm.c (arm_gen_constant): Prefer to emit constants
859         from bit 31 downwards, if this requires no more insns.
860         (count_insns_for_constant): New helper function for above.
861
862 2001-01-04  Alexandre Oliva  <aoliva@redhat.com>
863
864         * gencodes.c (output_predicate_decls): Remove empty initializer.
865
866 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
867
868         * tree.c (copy_node): Remove documentation about obstacks.
869         (buidl1): Check that nobody tries to build 2-argument nodes this
870         way.
871
872 2001-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
873
874         * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and
875         fp_high_losum_p.
876
877         * gencodes.c (output_predicate_decls): Fill empty initializer
878         braces.
879
880 2001-01-04  Jakub Jelinek  <jakub@redhat.com>
881
882         * tradcpp.c (deps_file, print_deps_missing_files): New variables.
883         (main): Handle -MG, -MD, -MMD.  Bail out if -MG is given without -M
884         or -MM.
885         (do_include): Handle missing headers like cpp0.
886         * cppfiles.c (_cpp_execute_include): Don't prefix absolute header
887         paths with first include pathname.  Don't strcat to uninitialized
888         string.
889
890 2001-01-04  Bernd Schmidt  <bernds@redhat.com>
891
892         * regrename.c (regrename_optimize): Don't rename from frame pointer
893         if frame_pointer_needed.
894         (do_replace): Don't set ORIGINAL_REGNO to a hard register number.
895         * config/ia64/ia64.c (emit_all_group_insn_barriers): New function.
896         (ia64_reorg): Use it instead of scheduling if ! optimize.
897         (errata_emit_nops): Properly call asm_noperands.
898         (ia64_sched_reorder): Finish cycle if we see an asm.
899         (ia64_variable_issue): Clear scheduling state after asms.
900
901 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
902
903         * cpp.texi: Update for -MT.
904         * cppinit.c (initialize_dependency_output): Add a default
905         target if none has been given already.
906         (no_tgt, OPT_MT): New.
907         (cpp_handle_option): Handle -MT.  Update -M etc.
908         * cpplib.h (struct cpp_options): Remove deps_target.
909         * gcc.c (cpp_options): Handle -MT.
910         * mkdeps.c (struct deps): Move from mkdeps.h.
911         (deps_calc_target): Rename deps_add_default_target.  Add a
912         default target if none has been specified already.
913         * mkdeps.h (struct deps): Move to mkdeps.c.
914         (deps_calc_target): Rename deps_add_default_target.
915
916 2000-01-03  Richard Henderson  <rth@redhat.com>
917
918         * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
919         Remove dead code.
920         * c-typeck.c (push_init_level): Move checks for flexible array
921         members and zero length arrays ...
922         (pop_init_level): ... here.  Silently discard empty initializations.
923         Remove dead code.
924         * varasm.c (output_constructor): Update for sizeof change to
925         zero-length arrays.
926
927         * extend.texi (Zero Length): Clarify semantics.
928
929 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
930
931         * configure.in (tm.h): Include isns-codes.h last.
932         * configure: Rebuilt.
933
934 2001-01-03  Richard Henderson  <rth@redhat.com>
935
936         * config/alpha/alpha.md (addvsi3, addvdi3): New.
937         (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
938         
939 2001-01-03  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
940
941         * tradcpp.c (main): Make sure finclude() is called with a valid
942         indepth value while handling -include.
943
944 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
945
946         * gencodes.c (output_predicate_decls): New function.
947         (main): Call it.
948         * machmode.h (GET_MODE_MASK): Arrange for it to be defined
949         even if it is not the first time machmode.h is #included.
950         * config/sh/sh.c (fpul_operand): Declare MODE argument.
951         * tm.texi (PREDICATE_CODES): Document predicate declarations.
952         * gcc.texi (Copyright): Added 2001.
953
954 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
955
956         * c-common.c (c_common_lang_init): New function.  Warn if format
957         warning options which only have effects when used with -Wformat
958         are used without -Wformat.
959         * c-common.h (c_common_lang_init): Declare.
960         * c-lang.c (lang_init): Call c_common_lang_init.
961         * objc/objc-act.c (lang_init): Call c_common_lang_init.
962
963 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
964
965         * configure.in: Check for the mktemp command.
966         * configure: Regenerate.
967         * gccbug.in: Use a separate temporary file $TEMP0 for one use of
968         $TEMP.  Create temporary files with mktemp, if available at
969         configure time; otherwise use set -C.  Remove temporary files
970         before exit.
971
972 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
973
974         * configure.in: Require at least texinfo 4.0.  Check for whether
975         Pod::Man is sufficiently recent to regenerate GCC manpages.
976         * configure:  Regenerate.
977         * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
978         on #!.
979         (GENERATED_MANPAGES): Define.
980         (generated-manpages): New target.  Depend on cpp.1 as well as
981         gcov.1.
982         (install-man): Depend on $(GENERATED_MANPAGES) (defined by
983         configure to generated-manpages or empty) rather than on the
984         manpages directly.  Remove execute permission from installed
985         gcov.1 as well as cpp.1.
986         * cpp.1, gcov.1: Regenerate.
987
988 2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
989
990         * builtins.c (expand_builtin_strncmp): Use host_integerp and
991         tree_low_cst.  Allow using cmpstrsi in more cases.
992
993 Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
994
995         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
996         sized types.
997
998 Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
999
1000         * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
1001         * Makefile.in (HOST_CFLAGS): Mention build-make.
1002
1003 Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1004
1005         * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
1006         as JUMP_INSN.
1007
1008 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
1009
1010         * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
1011         a REG rtx.
1012
1013         * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
1014         callers changed.
1015
1016         * alias.c (throughout): Use ORIGINAL_REGNO when accessing
1017         reg_base_value and reg_known_value arrays.
1018         (init_alias_analysis): Add more cases to detect known values.
1019         * sched-deps.c (deps_may_trap_p): New function.
1020         (sched_analyze_2): Use it.
1021
1022 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
1023
1024         * combine.c (simplify_shift_const): Even if we're sign-extracting,
1025         don't discard an ASHIFTRT if we're shifting in a wider mode.
1026
1027 2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1028
1029         * toplev.c (rest_of_compilation): Don't print basic block information
1030         when CFG isn't up to date.
1031
1032 2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
1033
1034         * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
1035         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
1036         (UNALIGNED_SHORT_ASM_OP): Define.
1037         (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
1038
1039 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
1040
1041         * fold-const.c (fold_convert): Fix typo.
1042
1043 2001-01-02  Richard Henderson  <rth@redhat.com>
1044
1045         * c-common.h (ASM_INPUT_P): New.
1046         * c-parse.in (asm): Set it when needed.
1047         * c-semantics.c (genrtl_asm_stmt): Test it instead of the 
1048         existance of an operand.
1049
1050 Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
1051
1052         * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
1053         (dwarf2out_frame_debug_expr): Likewise.
1054         (mem_loc_descriptor): Handle PRE and POST_MODIFY.
1055
1056 Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
1057
1058         * i386.c (ix86_split_to_parts): Return number of part required;
1059         handle TFmodes.
1060         (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
1061         TFmodes.
1062         (ix86_split_long_move): Use number of part returned
1063         by ix86_split_to_parts
1064         * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
1065         New macros.
1066         (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
1067         (LONG_DOUBLE_TYPE_SIZE): Change from constant.
1068         (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
1069         (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
1070         (ALIGN_MODE_128): Add TFmode.
1071         (IS_STACK_MODE): Likewise.
1072         (HARD_REGNO_NREGS): TFmode needs 3 registers.
1073         (HARD_REGNO_OK): Support TFmodes.
1074         (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
1075         * i386.md (scheduler definitions): Use memory operand to determine
1076         fst/fld instructions; use mode attribute to determine real mode of
1077         the instruction.
1078         (*tf): New patterns, expanders and splitters; based on XFmode patterns.
1079         * invoke.texi (128bit-long-double, 96bit-long-double): Document.
1080
1081 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
1082
1083         * tree.def (TRUTH_NOT_EXPR): Improve documentation.
1084
1085 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1086
1087         * expr.c (store_constructor_field): Update ALIGN before calling
1088         store_constructor.
1089
1090 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
1091
1092         * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
1093         host_integerp.
1094
1095 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
1096
1097         * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
1098         incomplete type.
1099
1100 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
1101
1102         * c-decl.c (start_function): Don't warn on third parameter to main.
1103
1104 2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1105
1106         * tsystem.h: Define HAVE_DECL_GETOPT.
1107
1108 2001-01-02  Philip Blundell  <pb@futuretv.com>
1109
1110         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber 
1111         of input operand.
1112
1113 2001-01-02  Richard Henderson  <rth@redhat.com>
1114
1115         * alpha.md (*ze_and_ne): Duplicate insn condition to split.
1116
1117 2001-01-02  Andreas Jaeger  <aj@suse.de>
1118
1119         * c-decl.c (c_decode_option): Remove support of
1120         -Wmissing-noreturn.
1121
1122         * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
1123         (W_options): Add -Wmissing-noreturn here.
1124
1125         * flow.c: Define lang_missing_noreturn_ok_p.
1126         (check_function_return_warnings): Use it.
1127
1128         * c-common.h: Declare lang_missing_noreturn_ok_p.
1129
1130         * c-lang.c (c_missing_noreturn_ok_p): New function.
1131         (lang_init): Set lang_missing_noreturn_ok_p.
1132
1133         * invoke.texi (Warning Options): Document this.
1134
1135 2000-12-27  Phil Edwards  <pme@sources.redhat.com>
1136
1137         * extend.texi (C++ Extensions):  New node for C++ attributes;
1138           describe init_priority and com_interface.
1139         * invoke.texi:  Remove -finit-priority as it now has zero effect.
1140         * install.texi:  Fix xref syntax.
1141         * md.texi:  Likewise.
1142
1143 Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1144
1145         * config.gcc (sparc64-wrs-vxworks*): New case.
1146         * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
1147
1148         * config/sparc/sparc.c (sparc_override_options): Do support different
1149         pointer and architecture size.
1150         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
1151         (POINTERS_EXTEND_UNSIGNED): Define.
1152         (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
1153         (FUNCTION_MODE): Define to be Pmode.
1154         * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
1155
1156         * function.c (expand_function_end): Properly handle DECL_RESULT
1157         and copy when ptr_mode != Pmode.
1158         * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
1159
1160 2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1161
1162         * c-common.c (c_common_nodes_and_builtins): Set prototype
1163         parameters for __builtin_fputs, __builtin_fputc and
1164         __builtin_fwrite.  Don't declare plain fputc as a builtin.
1165
1166 2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1167
1168         * loop.c (add_label_notes): Increment the label usage count when
1169         a note is added to an insn which refers to a CODE_LABEL.
1170         * gcse.c (add_label_notes): Likewise.
1171
1172 2001-01-01  Andreas Jaeger  <aj@suse.de>
1173
1174         * loop.c (scan_loop): Use xmalloc to allocate movables.
1175
1176 2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
1177
1178         * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
1179         * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
1180         * reload1.c (REGISTER_MOVE_COST): Likewise.
1181         * regclass.c (REGISTER_MOVE_COST): Likewise.
1182         (move_cost, may_move_in_cost, may_move_out_cost): Add mode
1183         dimension.  Adjust all users.
1184         (init_reg_sets_1): Iterate on all modes.
1185         * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
1186         * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
1187         * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
1188         * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
1189         * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
1190         * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
1191         * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
1192         * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
1193         * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
1194         * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
1195         * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
1196         * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
1197         * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
1198         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
1199         * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
1200         * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
1201         * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
1202         * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
1203         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
1204         * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
1205         * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
1206         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
1207         * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
1208         * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
1209         * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
1210         * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
1211         * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
1212
1213 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
1214
1215         * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
1216         arg VARIES_P.  Call it with extra arg.
1217         (true_dependence): Likewise.
1218         * rtl.h (rtx_addr_can_trap_p): Declare.
1219         (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
1220         prototypes.
1221         * rtlanal.c (rtx_addr_can_trap_p): No longer static.
1222         (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
1223         pic offset table register if it's zero.  All callers changed.
1224         (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
1225
1226 Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1227
1228         * explow.c (convert_memory_address, case SYMBOL_REF): Copy
1229         STRING_POOL_ADDRESS_P.
1230
1231         * config/sparc/sparc.c (input_operand): Properly test for short op.
1232
1233         * config.gcc (sparc-*-elf): Include sparc/sol2.h.
1234         (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
1235         (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
1236         * config/sparc/elf.h: No longer include sol2.h.
1237         * config/sparc/lifeelf.h: No longer include sparc/elf.h.
1238         * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
1239
1240         * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
1241
1242 2001-01-01  Michael Hayes  <mhayes@redhat.com>
1243
1244         * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
1245         (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
1246         (record_initial): Likewise.
1247         * unroll.c (copy_loop_body, loop_iterations): Likewise.
1248         (remap_split_bivs): Likewise.
1249
1250 2001-01-01  Michael Hayes  <mhayes@redhat.com>
1251
1252         * loop.c (loop_ivs_free): New function.
1253         (strength_reduce): Break out from...
1254
1255 2001-01-01  Michael Hayes  <mhayes@redhat.com>
1256
1257         * loop.h (struct iv): New.
1258         (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
1259         (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
1260         'reg_biv_class' fields with 'regs' and 'n_regs'.
1261         (struct ivs): Rename 'loop_iv_list' field to 'list'.
1262         * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
1263         * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
1264
1265 2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
1266
1267         * resource.c (mark_referenced_resources): Abort() before
1268         attempting to mark a pseudo register.
1269         (mark_set_resources): Likewise.
1270
1271 2001-01-01  Michael Hayes  <mhayes@redhat.com>
1272
1273         * loop.h (REG_IV_CLASS): New accessor macro.
1274         * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
1275         * unroll.c (REG_IV_CLASS): Likewise.
1276
1277 Sun Dec 31 19:20:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1278
1279         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): New.
1280         (loc_descriptor_from_tree, case SAVE_EXPR): New.
1281
1282 2001-01-01  Michael Hayes  <mhayes@redhat.com>
1283
1284         * loop.c (loop_giv_reduce_benefit): Break out from strength_reduce.
1285         (loop_givs_dead_check, loop_givs_reduce, loop_givs_rescan): Likewise.
1286         (prescan_loop): Set pre_header_has_call in loop_info.
1287         * loop.h (struct_iv_class): Add `final_value' and `all_reduced'.
1288         (struct loop_info): Add `pre_header_has_call'.
1289
1290         * loop.c (loop_bivs_find): Break out from strength_reduce.
1291         (loop_bivs_init_find, loop_bivs_check, loop_givs_find): Likewise.
1292         (loop_givs_check, loop_biv_eliminable_p): Likewise.
1293
1294         * loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Define.
1295         (scan_loop, record_giv): Use LOOP_REG_LIFETIME and LOOP_REG_GLOBAL_P.
1296
1297         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Define.
1298         * loop.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Use in place of
1299         direct access to uid_luid array.
1300         * unroll.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Likewise.
1301
1302         * loop.h (struct loop_movables): New.
1303         (LOOP_MOVABLES): New.
1304         (struct loop_info): Add movables field.
1305         * loop.c (struct movables): Delete.  Replace all uses
1306         with struct loop_movables.
1307         (the_movables): Delete.  Replace all uses with movables
1308         field in loop_info.
1309         (loop_movables_add, loop_movables_free): New functions.
1310         (scan_loop): Use xmalloc instead of alloca for movables.
1311         Call loop_movables_free.
1312
1313         * loop.c (debug_loops): New.
1314
1315 2000-12-31  Philip Blundell  <philb@gnu.org>
1316
1317         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm
1318         operands.
1319
1320 2000-12-30  Richard Henderson  <rth@redhat.com>
1321
1322         * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC.
1323         Initialize variables properly for DBX_LBRAC_FIRST.
1324
1325 2000-12-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1326
1327         * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change.
1328
1329 2000-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1330
1331         * builtins.c (validate_arglist): New function, use it.
1332
1333 2000-12-30  Philip Blundell  <philb@gnu.org>
1334
1335         * config/arm/arm.c (arm_expand_prologue): Fix typos in error
1336         message and comment.  Note location of testcase for an unhandled
1337         situation.
1338
1339 2000-12-30  Jeffrey Oldham  <oldham@codesourcery.com>
1340
1341         * defaults.h (BUILD_VA_LIST_TYPE): New definition.
1342         * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node
1343         is a copy, not an alias.
1344
1345 2000-12-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1346
1347         * calls.c (calls_function_1, case CONSTRUCTOR): New case.
1348
1349         * alias.c (alias_sets_conflict_p): New function.
1350         (mems_in_disjoint_alias_sets_p): Use it.
1351         (readonly_fields_p): Moved from expr.c; check for record type.
1352         (objects_must_conflict_p): New function.
1353         * calls.c (expand_call): Use assign_temp as much as possible, use
1354         readonly variant if assigned once, and don't set memory attributes.
1355         (emit_library_call_value_1, store_one_arg): Likewise.
1356         * integrate.c (expand_inline_function): Likewise.
1357         * stmt.c (expand_asm_operands, expand_return): Likewise.
1358         * expr.c (copy_blkmode_from_reg, store_constructor): Likewise.
1359         (store_field, save_noncopied_parts, expand_expr): Likewise.
1360         (expand_expr_unaligned): Likewise.
1361         (readonly_fields_p): Moved to alias.c.
1362         (safe_from_p): Rework handling of SAVE_EXPR.
1363         MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF.
1364         * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE.
1365         (assign_stack_for_temp): Use objects_must_confict_p.
1366         Set all memory attributes from type, if specified.
1367         (mark_temp_slot): Mark TYPE field.
1368         * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls.
1369         (objects_must_conflict_p): Likewise.
1370
1371         * stmt.c (expand_decl): Don't use assign_stack_temp in error case.
1372         (add_case_node): No need to copy nodes anymore.
1373
1374 2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
1375
1376         * config/sh/sh.c (split_branches): Don't dereference re-computed
1377         `beyond' before checking it's non-NULL.
1378
1379 2000-12-29  Robert Lipe <robertl@sco.com>
1380
1381         Remove COFF support from i?86-pc-sco3.2v5.
1382         * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
1383         (TARGET_ELF): Now always true.
1384         (SUBTARGET_SWTICHES: )Remove -mcoff.
1385
1386         * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1387         MULTILIB_EXCEPTION): Nuke coff.
1388         (CRTSTUFF_T_CFLAGS_S):  Deleted.
1389         (TARGET_LIBGCC2_CFLAGS): Added.
1390
1391 2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
1392
1393         * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
1394         twice.  Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
1395         modifies them.
1396
1397 2000-12-29  Bernd Schmidt  <bernds@redhat.com>
1398
1399         * ia64.c (ia64_expand_load_address): Accept additional scratch
1400         register argument.  All callers & prototype changed.
1401         Use scratch register when generating load_symptr insns.
1402         * ia64.md (movdi_symbolic): Clobber a scratch register.  Use it
1403         when calling ia64_expand_load_address.
1404         (movdi): Generate movdi_symbolic with additional operand.
1405         (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1).
1406         (load_symptr): Likewise.  Use additional operand as a scratch
1407         register instead of generating it here.
1408
1409         * basic-block.h: Add a comment.
1410         * flow.c (PROP_POSTRELOAD): New macro.
1411         (update_life_info): Add it to prop_flags.
1412         (mark_set_1): If it is set, compute REG_N_SETS for the original
1413         register number of a hard reg.
1414
1415         * emit-rtl.c (gen_raw_REG): New function.
1416         (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of
1417         gen_rtx_raw_REG.
1418         * print-rtl.c (print_rtx): Print ORIGINAL_REGNO.
1419         * final.c (alter_subreg): Update it.
1420         * regrename.c (do_replace): Likewise.  Use gen_raw_REG.
1421         * rtl.def (REG): Update comment.
1422         * rtl.h (X0UINT, ORIGINAL_REGNO): New macros.
1423         (gen_raw_REG): Declare.
1424
1425 2000-12-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1426
1427         * tree.c (get_set_constructor_bits): Use host_integerp and
1428         tree_low_cst.
1429
1430         * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN.
1431
1432         * toplev.c (main): Call xmalloc_set_program_name.
1433         * gcc.c (main): Likewise.
1434
1435 2000-12-29  Philip Blundell  <philb@gnu.org>
1436
1437         * config/arm/arm.c (arm_override_options): Fix typo in warning
1438         message.
1439
1440 2000-12-29  Richard Henderson  <rth@redhat.com>
1441
1442         * config/alpha/alpha.c (alpha_expand_block_move): Initialize
1443         src_align and dst_align in bits.  Do unaligned quadword loads
1444         if possible for BWX too.
1445         (alpha_expand_block_clear): Initialize align in bits.  Track
1446         small leading offsets into a larger alignment.  Play games with
1447         stq_u for large 4-byte aligned blocks.  Use load/mask/store
1448         for appropreately aligned heads and tails.
1449
1450 2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
1451
1452         * function.c (assign_parms): Convert arguments passed by
1453         reference to the right mode.
1454
1455 2000-12-28  Geoffrey Keating  <geoffk@redhat.com>
1456
1457         * c-parse.in (select_or_iter_stmt): Use truthvalue_conversion
1458         on the condition of a FOR statement, so that it gets typechecked
1459         and optimised.
1460
1461 2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
1462
1463         * c-decl.c (grokdeclarator): Prevent crash in case of overflow in
1464         array size.
1465
1466         * calls.c (emit_library_call_value_1): Add to call_fusage the
1467         stack slot assigned to argument passed by reference.
1468
1469 2000-12-28  Jeffrey Oldham  <oldham@codesourcery.com>
1470
1471         * toplev.h (extern really_sorry): Remove extern declaration for
1472         nonexistent function.
1473
1474 2000-12-28  Jeffrey Oldham  <oldham@codesourcery.com>
1475
1476         * varasm.c (initializer_constant_valid_p): Indicate subtraction of
1477         pointers to the same string constant is absolute.
1478
1479 2000-12-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1480
1481         * c-common.c (enum format_type): Add strfmon_format_type.
1482         (decl_attributes): Handle format attributes strfmon and
1483         __strfmon__.
1484         (FMT_FLAG_USE_DOLLAR, FMT_FLAG_ZERO_WIDTH_BAD,
1485         FMT_FLAG_EMPTY_PREC_OK): Define.
1486         (format_char_info): Update comment for flag_chars.
1487         (format_flag_spec): Add skip_next_char.
1488         (format_kind_info): Add left_precision_char.
1489         (printf_flag_specs, scanf_flag_specs, strftime_flag_specs,
1490         format_types): Update for these new structure members and flags.
1491         (time_char_table): Make const.
1492         (strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs,
1493         monetary_char_table): New.
1494         (format_types): Add details of strfmon formats.
1495         (init_function_format_info): Create default attribute for strfmon.
1496         (check_format_info_main): Check the new flags.  Handle
1497         skip_next_char and left precision.
1498         * toplev.c (documented_lang_options): Update description of
1499         -Wformat.
1500         * extend.texi: Document strfmon format attributes.  Document
1501         attribute forms such as __printf__.  Clarify format_arg attribute
1502         documentation.
1503         * invoke.texi (-Wformat): Update for strfmon formats.
1504
1505 2000-12-28  Andreas Jaeger  <aj@suse.de>
1506
1507         * expmed.c (store_bit_field): Fix last patch.
1508
1509 2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
1510
1511         * config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing
1512         the trailing `__'.
1513
1514 2000-12-28  Alan Lehotsky  <lehotsky@tiac.net>
1515
1516         * expmed.c (store_bit_field): Correctly compute smallest mode that
1517         is sufficient to contain all bits we are storing.
1518
1519 2000-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1520
1521         * builtins.c (build_function_call_expr): New function.  Use it
1522         everywhere in lieu of manually constructing a CALL_EXPR.
1523
1524 2000-12-27  Chandrakala Chavva  <cchavva@redhat.com>
1525
1526         * calls.c (store_one_arg):  If parm is passed both in stack and in
1527         register and offset is greater than reg_parm_stack_space, split
1528         the offset and call emit_push_insn().
1529
1530 2000-12-27  Nick Clifton  <nickc@redhat.com>
1531
1532         * ifcvt.c (noce_emit_store_flag): Handle jump insns that are
1533         PARALLEL.
1534
1535 2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
1536
1537         * rtl.c (copy_most_rtx, shallow_copy_rtx): Copy frame_related
1538         flag.
1539
1540 2000-12-27  Bruce Korb  <bkorb@gnu.org>
1541
1542         * fixinc/Makefile.in: fix for ancient Bourne shell
1543         * fixinc/Makefile.BEOS: obsolete
1544         * fixinc/Makefile.DOS: obsolete
1545         * fixinc/fixincl.sh(LINKS): use `test -d' rather than `ls' for testing
1546
1547 2000-12-27  Bernd Schmidt  <bernds@redhat.com>
1548
1549         * sched-deps.c (get_condition, conditions_mutex_p): New functions.
1550         (add_dependence): Use them to avoid adding unnecessary dependencies
1551         between conditionally executed insns.
1552         (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
1553         dependency lists if current insn is a COND_EXEC.
1554
1555 2000-12-27  Geoffrey Keating  <geoffk@redhat.com>
1556
1557         * config/rs6000/rs6000.md (define_attr "length"): Correct
1558         calculation.
1559
1560 2000-12-26  Kazu Hirata  <kazu@hxi.com>
1561
1562         * config/h8300/h8300.c: Fix a comment typo.
1563         (get_shift_alg): Fix a typo in the assembly code for 12-bit
1564         ASHIFTRT in HImode.  Do not output extra whitespace after one line
1565         of assembly code.  Output a tab after an opcode instead of a
1566         space.
1567         (emit_a_shift): Output a tab after an opcode instead of a space.
1568
1569 2000-12-23  Marek Michalkiewicz  <marekm@linux.org.pl>
1570
1571         * config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr,
1572         out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of
1573         %4 in output templates, do not modify operands passed by the caller.
1574
1575 2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1576
1577         * builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS):
1578         Don't define.
1579         * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS,
1580         BUILT_IN_LLABS and BUILT_IN_IMAXABS.
1581         * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for
1582         builtin labs, llabs and imaxabs.
1583         (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS
1584         and BUILT_IN_IMAXABS.
1585
1586 2000-12-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1587
1588         * c-common.c (builtin_function_2): New function.
1589         (c_common_nodes_and_builtins): Use it to define each pair (foo,
1590         __builtin_foo) of builtins in one place.
1591
1592 2000-12-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1593
1594         * gccbug.in: Add libgcj and preprocessor categories.
1595
1596 2000-12-22  Bernd Schmidt  <bernds@redhat.com>
1597
1598         * config/ia64/ia64.c (itanium_reorder): Only schedule stops in
1599         the final scheduling pass.
1600
1601 2000-12-22  Nick Clifton  <nickc@redhat.com>
1602
1603         * config/arm/arm.h (struct machine_function): Add new field
1604         'lr_save_eliminated'.
1605         * config/arm/arm.c (arm_compute_save_reg_mask): Do not include the
1606         link register if its save has been eliminated.
1607         (output_arm_prologue): Mention if the save of the link register
1608         has been eliminated.
1609         (output_arm_epilogue): Rename 'live_regs_mask' to
1610         'saved_regs_mask'.
1611         Test 'saved_regs_mask' for the link register, not regs_ever_live.
1612         (arm_expand_prologue): If the link register has not been saved set
1613         lr_save_eliminated and emit a USE to prevent later passes from
1614         scavenging it.
1615
1616         * dwarf2out_frame_debug_expr: Allow the (scratch) frame
1617         pointer to be initialised from the stack pointer plus a
1618         constant.
1619
1620 2000-12-22  Bernd Schmidt  <bernds@redhat.com>
1621
1622         * regrename.c (struct du_chain): New field "earlyclobber".
1623         (enum scan_actions): Remove unused entry "note_reference".
1624         (enum scan_actions_name): Likewise.
1625         (note_sets, clear_dead_regs, merge_overlapping_regs): New static
1626         functions.
1627         (regrename_optimize): Use them to compute unavailable regs; get
1628         rid of the more simpleminded code we used to have here.
1629         Use a tick array to ensure registers are allocated in a more
1630         round-robin way.  Disable code that only optimizes registers
1631         that were seen more than once.
1632         (referenced_regs): Remove variable.
1633         (scan_rtx_reg): New arg "earlyclobber".  All callers changed.
1634         Store its value in newly generated du_chain structures.
1635         Add new du_chains at the end, not the start, of the list.
1636         Don't handle the "note_reference" action.
1637         (scan_rtx): New arg "earlyclobber".  All callers changed.
1638         (build_def_use): Lose code to keep track of referenced regs.
1639
1640 2000-12-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1641
1642         * Makefile.in (sched-deps.o, sched-rgn.o): Fix dependency typo.
1643
1644         * fp-bit.h (usi_to_float): Add prototype.
1645
1646         * i386.c (ix86_expand_builtin): Delete unused label.
1647
1648         * dwarf2out.c (file_info_cmp): Prototype.
1649         (dwarf2out_line): Hide variable `old_in_use'.
1650
1651         * objc-act.c (objc_fatal): Delete.
1652
1653         * sched-vis.c (visualize_stall_cycles): Remove unused variable.
1654
1655         * system.h (getopt): Fix error in last change.
1656
1657         * varasm.c (assemble_trampoline_template): Constify.
1658
1659 2000-12-22  Jason Merrill  <jason@redhat.com>
1660
1661         * collect2.c (main): Use auto_demangling.
1662
1663 2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
1664
1665         * function.c (assign_parms): Update parm's DECL_INCOMING_RTL
1666         when optimizing PARALLEL to REG.
1667
1668 2000-12-22  Graham Stott  <grahams@redhat.com>
1669
1670         * reload.c (update_auto_inc_notes): New, broken out from ...
1671         (find_reloads_address_1): ... use here, also correct possible
1672         use of uninitialised reloadnum.
1673
1674 2000-12-21  David O'Brien  <obrien@FreeBSD.org>
1675
1676         * config/freebsd.h (LIB_SPEC): remove -kthread option.
1677
1678 2000-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1679
1680         * resource.c (mark_set_resources): Use MARK_SRC_DEST for
1681         PRE_MODIFY and POST_MODIFY cases.
1682
1683         * rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY.
1684
1685 2000-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1686
1687         * md.texi (Looping Patterns): New node.
1688
1689 2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1690
1691         * gcc.texi, cpp.texi: Update last-updated dates.
1692
1693 2000-12-21  Chandrakala Chavva  <cchavva@redhat.com>
1694
1695         * varasm.c (output_addressed_constants): Use language specific
1696         expander on unknown nodes.
1697
1698 2000-12-21  Graham Stott  <grahams@redhat.com>
1699
1700         * combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes.
1701
1702 2000-12-21  Bernd Schmidt  <bernds@redhat.com>
1703
1704         * Makefile.in (out_object_file): Depend on sched-int.h.
1705         * rtl.h (single_set_1): New macro.
1706         (single_set_2): Renamed from single_set_1 and extra argument added.
1707         * rtlanal.c (single_set_2): Likewise.
1708
1709         * config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate,
1710         ia64_adjust_cost, ia64_sched_init, ia64_sched_finish,
1711         ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue):
1712         Declare.
1713         * config/ia64/ia64.c: Include "sched-int.h".
1714         (hard_regno_rename_ok): Also disallow renaming from the various
1715         reg_save_* regs.
1716         (ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class,
1717         ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p,
1718         safe_group_barrier_needed_p, fixup_errata): New static functions.
1719         (rtx_needs_barrier):  Handle bundle selector and cycle display
1720         insns.
1721         (emit_insn_group_barriers): Accept additional FILE * arg.  All
1722         callers changed.  Rework to only generate stop bits between
1723         basic blocks that haven't been inserted by scheduling.
1724         (struct bundle, struct ia64_packet): New structures.
1725         (NR_BUNDLES, NR_PACKETS): New macros.
1726         (bundle, packets, type_names): New static arrays.
1727         (ia64_final_schedule): New variable.
1728         (ia64_single_set, insn_matches_slot, ia64_emit_insn_before,
1729         gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles,
1730         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
1731         find_best_packet, itanium_reorder, dump_current_packet, schedule_stop):
1732         New static functions.
1733         (ia64_issue_rate, ia64_sched_init, ia64_sched_reorder,
1734         ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New
1735         functions.
1736         (ia64_reorg): Perform a final scheduling pass.
1737         * config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs.
1738         (MAX_CONDITIONAL_EXECUTE, ADJUST_COST, ISSUE_RATE, MD_SCHED_INIT,
1739         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_FINISH,
1740         MD_SCHED_VARIABLE_ISSUE): Define macros.
1741         (ia64_final_schedule): Declare variable.
1742         * config/ia64/ia64.md (attr itanium_class): Add some more classes.
1743         (attr type): Account for them.
1744         (itanium_requires_unit0): New attribute.
1745         (function units): Rewrite.
1746         (some splitters): Don't create scheduling barriers here.
1747         (gr_spill_internal, gr_restore_internal): Don't predicate the
1748         pseudo-op.
1749         (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
1750         bundle_selector): New patterns.
1751         (insn_group_barrier): Now has an operand.
1752
1753 2000-12-21  DJ Delorie  <dj@redhat.com>
1754
1755         * dwarf2out.c (simple_decl_align_in_bits): new
1756         (field_byte_offset): Try both the type align and the
1757         decl align, use whichever works, preferring the type align.
1758
1759 2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1760
1761         * gccbug.in: Fix typo.
1762
1763 2000-12-20  Benjamin Kosnik  <bkoz@redhat.com>
1764
1765         * Makefile.in (gcc_gxx_target_include_dir): Use instead of
1766         build_tooldir and libstdcxx_incdir.
1767
1768 2000-12-20  Robert Lipe <robertlipe@usa.net>
1769
1770         * haifa-sched.c (schedule_block): Provide empty source statement
1771         if not MD_SCHED_REORDER2.
1772
1773 2000-12-20  Richard Henderson  <rth@redhat.com>
1774
1775         * rtl.h (REG_NON_LOCAL_GOTO): New.
1776         * rtl.c (reg_note_name): Update.
1777         * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note.
1778         * builtins.c (expand_builtin_longjmp): Likewise.
1779         * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do
1780         not emit an edge.
1781
1782 2000-12-20  Marek Michalkiewicz  <marekm@linux.org.pl>
1783
1784         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r):
1785         Do not output undefined opcodes where source or destination register
1786         overlaps with modified pointer register.  Handle (X + d) addresses.
1787         * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length
1788         in alternatives with memory operand.
1789
1790 2000-12-20  Richard Henderson  <rth@redhat.com>
1791
1792         * c-typeck.c (build_asm_stmt): New, broken out from ...
1793         (c_expand_asm_operands): ... here.  Just do rtl expansion.
1794         (c_expand_return): Return the new stmt node.
1795         (c_start_case, do_case): Likewise.
1796         * c-common.c (c_expand_expr_stmt): Likewise.
1797         * c-common.h: Update declarations.
1798         * c-tree.h: Likewise.
1799         * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
1800         * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace.
1801         (nested_function, notype_nested_function): Likewise.
1802         (compstmt): Return the compound statement not the binding level.
1803         (lineno_labeled_stmt): Simplify.
1804         (lineno_stmt, lineno_label): Set STMT_LINENO.
1805         (stmt, label): Return the new stmt node.
1806
1807 2000-12-20  Bernd Schmidt  <bernds@redhat.com>
1808
1809         * Makefile.in (OBJS): Add sched-ebb.o.
1810         (sched-ebb.o): New rule.
1811         (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H).
1812         (haifa-sched.o): Depend on insn-flags.h.
1813         * haifa-sched.c: Include "insn-flags.h".
1814         (priority): Don't access BLOCK_NUM, use the new contributes_to_priority
1815         callback.
1816         * rtl.h (schedule_ebbs): Declare.
1817         * sched-int.h (struct sched_info): Add new members
1818         contributes_to_priority and compute_jump_reg_dependencies.
1819         * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies):
1820         New functions.
1821         (region_sched_info): Add them.
1822         * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h".
1823         * sched-ebb.c: New file.
1824         * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs.
1825
1826         * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly
1827         handle all relational operators.
1828
1829 2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
1830
1831         * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
1832         * tm.texi: Document it.
1833
1834 2000-12-19  Benjamin Kosnik  <bkoz@redhat.com>
1835
1836         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir
1837         instead of gcc_tooldir.
1838
1839 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1840
1841         * system.h (getopt): Update prototype to match include/getopt.h.
1842
1843 2000-12-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1844
1845         From Jeff Law.
1846         * pa.c (basereg_operand): Simplify.
1847
1848 2000-12-19  Bernd Schmidt  <bernds@redhat.co.uk>
1849
1850         * haifa-sched.c (rm_line_notes): Arguments are now head and tail,
1851         not block number.  All callers and prototype changed.
1852         (set_priorities): Likewise.
1853         (save_line_notes): Add head and tail arguments; all callers and
1854         prototype changed.
1855         (restore_line_notes): Likewise.  Don't crash on insns generated
1856         during scheduling.
1857         (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros.
1858         Call MD_SCHED_INIT with additional argument.
1859         When starting a new cycle, emit cycle_display insns if available.
1860         Don't stop scheduling when encountering a JUMP_INSN, but add another
1861         call to schedule_more_p in the inner loop.
1862         Call MD_SCHED_REORDER2 after scheduling an insn.
1863         Call MD_SCHED_FINISH once all insns are scheduled.
1864         (sched_init): Compensate for the fact that get_block_head_tail
1865         doesn't include leading notes.
1866         * sched-deps.c (free_deps): Free vectors here.
1867         * sched-rgn.c (compute_block_backward_dependencies): Not here.
1868         (last_was_jump): New static variable.
1869         (schedule_more_p): Test it.
1870         (init_ready_list): Initialize it.
1871         (can_schedule_ready_p): Set it if we have a JUMP_INSN.
1872
1873         * config/i386/i386.h (MD_SCHED_INIT): Add new arg.
1874         * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg.
1875         * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg.
1876
1877         * md.texi (cycle_display): Document.
1878         * tm.texi (MD_SCHED_INIT): Document new arg.
1879         (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document.
1880
1881         * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite
1882         to use different representation.  All callers changed.
1883         (and_reg_cond): Renamed from nand_reg_cond; caller changed.
1884         (init_propagate_block_info): Don't test flags to determine
1885         whether to compute conditional lifetimes.
1886         Adjust code for new representation of conditional lifetimes.
1887         (mark_regno_cond_dead): Similar adjustment.
1888         (free_reg_cond_life_info): Similar adjustment.
1889         (elim_reg_cond): New function.
1890         (flush_reg_cond_1): Use it.
1891
1892 2000-12-19  Catherine Moore  <clm@redhat.com>
1893
1894         * reload1.c (reload_combine): Take multi-hard-regs into account
1895         when processing CALL_INSN_FUNCTION_USAGE.
1896
1897 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
1898
1899         * invoke.texi (-print-search-dirs): Make references to cpp refer
1900         to cpp0 instead.
1901
1902 2000-12-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1903
1904         * fold-const.c (tree_expr_nonnegative_p): Treat truth values as
1905         non-negative.
1906
1907 Tue Dec 19 00:37:08 2000  J"orn Rennecke <amylaar@redhat.com>
1908
1909         * reload.c (push_reload): When using a dying register for the reload
1910         register in an in-out reload, use outmode if wider than inmode.
1911
1912 2000-12-19  Joseph S. Myers  <jsm28@cam.ac.uk>
1913
1914         * config/d30v/d30v.h (EXIT_BODY): Update comment.
1915
1916 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1917
1918         * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING.
1919         * tm.texi (EXIT_BODY): Update documentation.
1920         * config/freebsd.h, config/netware.h, config/arm/coff.h,
1921         config/arm/conix-elf.h, config/arm/unknown-elf.h,
1922         config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h,
1923         sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some
1924         commented out) and associated comments.
1925
1926 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1927
1928         * c-common.c (STD_C9L, ADJ_STD): Define.
1929         (printf_length_specs, scanf_length_specs): Mark "ll" as standard
1930         STD_C9L.
1931         (T99_LL): Rename to T9L_LL.
1932         (T99_ULL): Rename to T9L_ULL.
1933         (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL
1934         instead of T99_LL and T99_ULL.
1935         (check_format_info_main): Use ADJ_STD on all format standard
1936         versions being compared.
1937         * c-common.h: Declare warn_long_long.
1938         * c-tree.h: Don't declare warn_long_long.
1939
1940 2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1941
1942         * COPYING: Update to current
1943         ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
1944         to 19yy as example year in copyright notice).
1945
1946 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1947
1948         * c-lex.c (cb_file_change): Treat in_system_header as strictly
1949         boolean (0 or 1).
1950
1951 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1952
1953         * cppmain.c: Update print.lineno with -P.
1954
1955 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1956
1957         * c-lex.c: s/change_file/file_change.
1958         * cpplib.h: Similarly.
1959         * cppmain.c: Similarly.
1960         * fix-header.c: Similarly.
1961         * cppfiles.c (stack_include_file): Pass the buffer location and
1962         size to cpp_push_buffer.  Generate the file_change callback,
1963         so that sysp is already set.
1964         * cpphash.h: Add _cpp_do_file_change.
1965         * cpplib.c (do_line): Set buffer->sysp directly. Generate the
1966         file_change callback after setting sysp.
1967         (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception
1968         here.
1969         (cpp_push_buffer): Don't generate a callback.  Clear sysp.
1970         (cpp_pop_buffer): Clean up logic.
1971
1972 2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>
1973
1974         * configure.in (gcc_gxx_include_dir): Simplify.
1975         (libstdcxx_incdir): Export.
1976         * configure: Regenerate.
1977         * Makefile.in (PREPROCESSOR_DEFINES): Add in
1978         GPLUSPLUS_TOOL_INCLUDE_DIR bits here..
1979         (libstdcxx_incdir): Add.
1980         * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path.
1981
1982 2000-12-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1983
1984         * c-lex.c (lex_lineno): Remove.
1985         (init_c_lex, c_lex): Remove lex_lineno.
1986         (cb_change_file): Update lineno correctly, both before calling
1987         push_srcloc and before leaving the function.
1988         (cb_def_pragma): Set lineno before outputting diagnostics.
1989
1990 Sun Dec 17 18:45:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1991
1992         * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
1993         Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE.
1994         Use print_node_brief to print bounds.
1995
1996 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1997
1998         * cpplib.h (struct cpp_reader): Remove references to string_pool
1999         and temp_string_pool.
2000         * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using
2001         ident_pool in place.
2002         * cpplex.c (parse_number, unescaped_terminator_p, parse_string,
2003         save_comment, cpp_token_as_text): Similarly.
2004         * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly.
2005         * cppmacro.c (make_number_token, builtin_macro, lock_pools,
2006         unlock_pools, stringify_arg, paste_tokens): Similarly.
2007
2008 Sun Dec 17 12:41:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2009
2010         * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case.
2011         (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise.
2012         (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise.
2013
2014 2000-12-17  Richard Earnshaw  <rearnsha@arm.com>
2015
2016         * Makefile.in (check-po): Use $(MAKE).
2017         (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise.
2018
2019 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2020
2021         * cppmain.c (check_multiline_token): New function.
2022         (scan_buffer): Use it.
2023         (cb_change_file): Restructure to avoid warning.
2024         * cpperror.c (print_location): Initialize col.
2025
2026 2000-12-14  Philipp Thomas  <pthomas@suse.de>
2027
2028         * protoize.c (main): Correctly set locale categories.
2029         * gcc.c (main): Likewise.
2030         * cppmain.c (general_init): Likewise.
2031         * toplev.c (main): Likewise.
2032         * gcov.c (main): Likewise.
2033         * collect2.c (main): Likewise.
2034
2035 2000-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2036
2037         * c-common.c (c_common_nodes_and_builtins): Create a
2038         cstring_endlink, use it.  Rename int_ftype_string_string to
2039         int_ftype_cstring_cstring, string_ftype_string_int to
2040         string_ftype_cstring_int, and string_ftype_string_string to
2041         string_ftype_cstring_cstring.  Prefer sizetype_endlink and
2042         int_endlink to manually recreating them.  Fix the prototype
2043         set for __builtin_strspn/__builtin_strcspn.
2044
2045 2000-12-12  Marek Michalkiewicz  <marekm@linux.org.pl>
2046
2047         * config/avr/avr.c (out_set_stack_ptr): Update comment.
2048         (print_operand): Add support for %~ and %o.
2049
2050 2000-12-17 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2051
2052         * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code.
2053
2054 2000-12-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2055
2056         * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
2057         * cpperror.c (print_containing_files): Get right line number.
2058         (print_location): Output column of 1 if 0.
2059         * cppfiles.c (stack_include_file): cpp_push_buffer handles
2060         the callback.
2061         * cpphash.h (_cpp_do_file_change): No longer external.
2062         * cpplib.c (do_file_change): Now local to cpplib.c.
2063         (do_line): Fake a buffer stack for preprocessed files.
2064         (cpp_push_buffer): Create a file_change callback.  Handle faked
2065         buffers.
2066         (cpp_pop_buffer): Similarly.
2067         * cpplib.h: BUF_FAKE: New buffer type.
2068         * cppmain.c: Update to handle correct file renaming where a
2069         #line is the first line of the main file, and produce only
2070         the renamed file, not the original file, as output.
2071
2072 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2073
2074         * config/c4x/c4x.md: Remove redundant @s from output patterns.
2075
2076 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2077             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2078
2079         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
2080
2081         * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
2082
2083         * config/c4x/c4x.c (c4x_init_pragma): New function.
2084         (c_lex_func): New variable.
2085         (c4x_parse_pragma): Use c_lex_func.
2086
2087 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2088             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2089
2090         * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument
2091           to c4x_init_builtins.
2092
2093         * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
2094
2095         * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
2096         (c4x_output_ascii):  Fix.
2097
2098 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2099             Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2100
2101         * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define.
2102
2103         * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype.
2104         (c4x_expand_builtin): Likewise.
2105
2106         * config/c4x/c4x.c (c4x_init_builtins): New function.
2107         (c4x_expand_builtin): Likewise.
2108
2109         * config/c4x/c4x.md (floatunsqihf2): New pattern.
2110         (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise.
2111         (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise.
2112         (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise.
2113         (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
2114
2115 2000-12-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2116
2117         * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
2118         * libgcc2.c (__absvsi2): Use Wtype and DWtype.
2119         (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
2120         (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.
2121
2122 2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
2123
2124         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block
2125         statement in do/while(0).
2126
2127 Sat Dec 16 19:56:24 MET 2000  Jan Hubicka  <jh@suse.cz>
2128
2129         * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno,
2130         lshrhi3_cmpno): Remove redundant '@' from the template.
2131
2132         * i386.md (cmpstrsi_1): Fix type of the compare.
2133
2134         * genattrtab.c (attr_rtx_cost): New function.
2135         (simplify_test_exp): Avoid overactive inlining; use temporary
2136         obstacks for tests.
2137
2138 Sat Dec 16 10:41:11 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2139
2140         * diagnostic.c (finish_abort): Deleted.
2141         (fatal): Add code from finish_abort.
2142         (error_recursion, fancy_abort): Call fatal, not finish_abort.
2143         (trim_filename): Remove leading "../".
2144         * diagnostic.h (finish_abort): Deleted.
2145         * toplev.c (crash_signal): Call fatal, not finish_abort.
2146
2147         * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
2148         as if size were variable.
2149
2150         * expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
2151
2152 2000-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2153
2154         * tradcpp.c: T_WARNING: New.
2155         (do_warning): New function.
2156         (finclude): Skip past the newline and increase the line number
2157         before calling output_line_command.
2158         (do_line): Skip the new line after output_line_command.  Don't
2159         pre-decrement the line number.
2160
2161 2000-12-15  Diego Novillo  <dnovillo@redhat.com>
2162
2163         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to
2164         _GLOBAL_OFFSET_TABLE_ when using Intel syntax.
2165
2166 2000-12-15  Jakub Jelinek  <jakub@redhat.com>
2167
2168         * gcc.c (cpp_options): Pass -fno-operator-names.
2169         * cpplib.h (struct cpp_options): Add operator_names.
2170         * cppinit.c (cpp_create_reader): Initialize it.
2171         (initialize_builtins): If -fno-operator-names, don't add
2172         C++ alternate operator names.
2173         (COMMAND_LINE_OPTIONS): Add -fno-operator-names.
2174         (cpp_handle_option): Clear operator_names.
2175
2176 2000-12-15  Jason Merrill  <jason@redhat.com>
2177
2178         * jump.c (jump_optimize_1): Don't delete the line note after the
2179         prologue even if it seems redundant.
2180
2181         * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P
2182         on all insns used to adjust the stack.
2183
2184 Fri Dec 15 15:32:16 MET 2000  Jan Hubicka  <jh@suse.cz>
2185
2186         * combine.c (cant_combine_insn_p): Get around SUBREGs when determining
2187         hardreg<->reg moves.
2188
2189 Fri Dec 15 14:48:37 MET 2000  Jan Hubicka  <jh@suse.cz>
2190
2191         * genrecog.c (add_to_sequence): Remove special case for
2192         const_int_operand.
2193         (maybe_both_true): Return 1 when falling out of sequence when
2194         trying to find common possition in the pattern.
2195
2196 Fri Dec 15 14:44:51 MET 2000  Jan Hubicka  <jh@suse.cz>
2197
2198         * integrate.c (copy_rtx_and_substitute): Copy mode too.
2199
2200 Fri Dec 15 14:11:57 MET 2000  Jan Hubicka  <jh@suse.cz>
2201
2202         * flow.c (notice_stack_pointer_modification_1): Cleanup.
2203
2204 2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
2205
2206         * function.c (adjust_trampoline_addr): New function.
2207         (trampoline_address): Call it instead of round_trampoline_addr().
2208         * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it.
2209
2210 2000-12-14  Zack Weinberg  <zack@wolery.stanford.edu>
2211
2212         * cppfiles.c (hack_vms_include_specification): Delete function
2213         (not used since 1998).
2214
2215 Fri Dec 15 03:37:51 2000  J"orn Rennecke <amylaar@redhat.com>
2216
2217         * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER.
2218
2219 2000-12-14  Jim Wilson  <wilson@redhat.com>
2220
2221         * alias.c (get_alias_set): Call record_component_aliases for
2222         COMPLEX_TYPE.
2223         (record_component_aliases): Handle COMPLEX_TYPE.
2224
2225 2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2226
2227         * fixinc/gnu-regex.c: Disable NLS.
2228
2229 2000-12-14  Richard Henderson  <rth@redhat.com>
2230
2231         * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
2232         comparison operands when that would create non-canonical rtl.
2233
2234         * config/i386/i386.md (umulsi3_highpart): Remove * from name.
2235         (smulsi3_highpart): Likewise.
2236
2237 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2238
2239         * gcc.c (cpp_options): Add -remap.
2240
2241 2000-12-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2242
2243        * gcc.c (cpp_options): Update to use '&'.
2244        (struct switchstr): Change type of validated to save space.
2245        New member 'ordering'.
2246        (handle_braces, validate_switches): Update to handle '&'.
2247
2248 2000-12-13  Laurynas Biveinis  <lauras@softhome.net>
2249
2250         * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list
2251         found in a header.
2252         * fixinc/fixincl.x: regenerated.
2253
2254 2000-12-13  DJ Delorie  <dj@redhat.com>
2255
2256         * config.gcc (cygwin, win32, mingw32): Use float-i386.h.
2257
2258 2000-12-13  Tom Tromey  <tromey@redhat.com>
2259
2260         * gcc.c (handle_braces): Handle %{<S*} spec correctly.
2261
2262 2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
2263
2264         * function.c (assign_parms): Optimize incoming PARALLELs into
2265         REGs if possible.
2266
2267 2000-12-13  Bruce Korb  <bkorb@gnu.org>
2268
2269         * fixinc/Makefile.in(*): substantial rewrite to accommodate systems
2270         that cannot handle bi-directional pipes, viz. BeOS and DOS.
2271         * fixinc/fixlib.h(IGNORE_ARG): new macro
2272         (STATIC): define for all of fixinc to use
2273         * fixinc/fixfixes.c(*): eliminate unused arg warnings
2274         * fixinc/fixtests.c(*): ditto
2275         * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
2276         * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
2277         warning.  Also, eliminate the ``#ifdef emacs'' stuff.
2278         (re_syntax_options): make global as it is declared so.
2279         * fixinc/mkfixinc.sh: process the argument list more consistently
2280         (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
2281         * fixinc/procopen.c(globals): include "fixlib.h" for std defs
2282         * fixinc/server.c(globals): ditto
2283         * fixinc/server.h(defines): ditto
2284
2285 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2286
2287         * tradcpp.c (special_symbol): Improve test for definedness,
2288         though it is still not perfect.
2289         (do_define): Don't define illegal macro names.
2290
2291 2000-12-07  Aldy Hernandez  <aldyh@redhat.com>
2292
2293         * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
2294         if changing into .bss section.
2295         * config/mips/elf64.h: same.
2296         * config/mips/iris6.h: same.
2297         * config/mips/netbsd.h: same.
2298         * config/mips/openbsd.h: same.
2299
2300 2000-12-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2301
2302         * cppfiles.c (read_name_map): Return null if open () fails.
2303         (remap_filename): Simplify logic.  Add ICE if it doesn't work
2304         as expected. Perform secondary lookup attempt on base filename
2305         only.
2306
2307 Wed Dec 13 19:48:04 MET 2000  Jan hubicka  <jh@suse.cz>
2308
2309         * flow.c (notice_stack_pointer_modification_1): Notice midifications
2310         using PRE_MODIFY and POST_MODIFY.
2311
2312 Wed Dec 13 17:25:32 MET 2000  Jan Hubicka  <jh@suse.cz>
2313
2314         * genoutput.c (process_template): Add sanity checking for '@' templates.
2315
2316 2000-12-13  Bernd Schmidt  <bernds@redhat.co.uk>
2317
2318         * simplify-rtx.c (cselib_finish): Free reg_values and used_regs
2319         varrays.
2320
2321 2000-12-12  Mike Stump  <mrs@wrs.com>
2322
2323         * Makefile.in (distclean): Remove safe-ctype.c as well.
2324
2325 2000-12-12  Brad Lucier <lucier@math.purdue.edu>
2326
2327         * tradcpp.c (do_error): Cast difference of pointers to int
2328         for error message.
2329
2330 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2331
2332         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here...
2333         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here.
2334
2335 2000-12-12  Jim Wilson  <wilson@redhat.com>
2336
2337         * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT.
2338
2339 2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
2340
2341         * configure.in: Simplify language enabling/disabling code.
2342         * configure: Rebuilt.
2343         * ch/config-lang.in (target_libs): Set.
2344         (build_by_default): Set to no.
2345         * cp/config-lang.in (target_libs): Set.
2346         * f/config-lang.in (target_libs): Set.
2347         * java/config-lang.in (target_libs): Set.
2348         * objc/config-lang.in (target_libs): Set.
2349
2350 2000-12-12  Neil Booth  <neil@daikokuya.demon.co.uk>
2351
2352         * tradcpp.c (enum node_type): Add T_ERROR.
2353         (do_error): New function.
2354         (directive_table): Add #error handler.
2355
2356 2000-12-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2357
2358         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check
2359         for powerpc*-*-*.
2360         * configure: Regenerated.
2361         * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2362         * config/rs6000/rs6000.c (rs6000_unique_section): Use
2363         STRIP_NAME_ENCODING.
2364
2365 Mon Dec 11 13:51:09 2000  Jeffrey A Law  (law@cygnus.com)
2366
2367         * pa.c (cmpib_comparison_operator): Remove GEU and LTU.
2368         * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding
2369         changes.
2370
2371 2000-12-11  Bruce Korb  <bkorb@gnu.org>
2372
2373         * fixinc/fixincl.tpl: initialize all fields for warnings
2374         * fixinc/fixincl.x: regenerate
2375
2376 2000-12-11  Neil Booth  <neilb@earthling.net>
2377
2378         * tradcpp.h: For tradcpp, NUL is not whitespace.
2379
2380 2000-12-11  Neil Booth  <neilb@earthling.net>
2381
2382         * fix-header.c (read_scan_file): Macro expansion is not a file buffer.
2383
2384 2000-12-05  Marek Michalkiewicz  <marekm@linux.org.pl>
2385
2386         * config/avr/avr.c (compare_condition, compare_sign_p): New functions.
2387         (compare_diff_p, compare_eq_p): Call compare_condition.
2388         (out_tsthi, out_tstsi): Call compare_sign_p.
2389         (avr_progmem_p): Check for error_mark_node.
2390
2391 2000-12-11  Neil Booth  <neilb@earthling.net>
2392
2393         * cpperror.c (print_location): New function.
2394         (print_containing_files): Simplify.
2395         (_cpp_begin_message): Simplify and use print_location.
2396         * cppfiles.c (stack_include_file): Update.
2397         (_cpp_pop_file_buffer): Update.
2398         * cpphash.h (struct cpp_buffer): New members
2399         include_stack_listed and type.
2400         * cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
2401         (run_directive): Take buffer type.  cpp_push_buffer cannot fail.
2402         (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
2403         handle_assertion): Update.
2404         (cpp_push_buffer): Take a buffer type and file name.
2405         (cpp_pop_buffer): Update.  Clear include_stack_listed.
2406         * cpplib.h (input_stack_listing_current): Remove.
2407         (enum cpp_buffer_type): New.
2408         (cpp_push_buffer): New prototype.
2409         * cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
2410         * fix-header.c (read_scan_file): Update.
2411
2412 2000-12-10  Robert Lipe <robertlipe@usa.net>
2413
2414         * install.texi (i*86-*-sco3.2v5*): Remove information duplicated
2415         in html version.
2416
2417 2000-12-10  Richard Henderson  <rth@redhat.com>
2418
2419         * genrecog.c (find_operand): Handle 'V' format code.
2420         (find_matching_operand): New.
2421         (validate_pattern): Accept '=' for an in-out operand if there
2422         is another operand with a matching constraint.
2423
2424         * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint
2425         for op1 to op0.
2426
2427 2000-12-10  Richard Henderson  <rth@redhat.com>
2428
2429         * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.
2430
2431 2000-12-09  Richard Henderson  <rth@redhat.com>
2432
2433         * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
2434         STRICT_LOW_PART as SET_DEST have in-out constraints.
2435
2436 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2437
2438         * c-common.c (check_function_format): Don't suggest adding format
2439         attributes to functions with no parameter to which to add them.
2440
2441 2000-12-09  Nick Clifton  <nickc@redhat.com>
2442
2443         * config/arm/arm.c (arm_expand_prologue): Mark the generated
2444         insn not the set as being DWARF2_FRAME_RELATED_P.
2445
2446 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
2447
2448         * Makefile.in: use $(build_exeext) for all build
2449         system executable targets.
2450
2451 2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
2452
2453         * install.texi: remove i[345]86-*-winnt3.5 section.
2454         * configur.bat: removed.
2455         * config/msdos: directory removed.
2456
2457 2000-12-09  Neil Booth  <neilb@earthling.net>
2458
2459         * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h.
2460         * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete.
2461         * cpplex.c (parse_identifier): Improve diagnostic.
2462         (_cpp_lex_token): Return unconditionally at the end of a directive.
2463         * cpplib.c (read_flag): Verify legality of each flag.
2464         (end_directive): Resotre pfile->skipping before skip_rest_of_line.
2465         (do_line): Use the new read_flag.
2466         * cppmacro.c (struct cpp_macro, parse_arg, replace_args,
2467         check_macro_redefinition, parse_params): Rename var_args to
2468         variadic.
2469
2470 2000-12-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2471
2472         * .cvsignore: Add info files.
2473
2474 2000-12-08 Laurynas Biveinis <lauras@softhome.net>
2475
2476         * config/winnt: Remove obsolete directory.
2477         * install.texi (Configurations): Remove obsolete documentation for
2478         Windows NT.
2479
2480 2000-12-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2481
2482         * configure.in: Don't define INSTALL_INFO.
2483         * configure: Regenerate.
2484         * Makefile.in (INSTALL_INFO): Remove.
2485         (info): Depend on info files in source directory.
2486         (cpp.info, gcc.info, c-tree.info): Build info files in source
2487         directory.
2488         (distclean): Don't remove info files.
2489         (maintainer-clean): Remove info files from source directory.
2490         (install-normal): Depend on install-info.
2491         (install-info): Install info files from source directory, if they
2492         exist.
2493         * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org.
2494
2495 2000-12-08  Alexandre Oliva  <aoliva@redhat.com>
2496
2497         * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE
2498         before taking its NOTE_LINE_NUMBER.
2499
2500 2000-12-08  Nick Clifton  <nickc@redhat.com>
2501
2502         * config/arm/arm.md (load_indirect_jump): Add pool ranges.
2503
2504         * extend.texi: Document ARM "interrupt" function attribute.
2505         Mention that the ARM also support the "naked" function
2506         attribute.
2507
2508         * config/arm/arm-protos.h (arm_current_func_type): Add
2509         prototype.
2510
2511         * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define.
2512         (struct machine_function): Add 'func_type' field.
2513         Define bit values for 'func_type' field.
2514         (ARM_FUNC_TYPE): New macro.
2515         (IS_INTERRUPT): New macro.
2516         (IS_VOLATILE): New macro.
2517         (IS_NAKED): New macro.
2518         (IS_NESTED): New macro.
2519         (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE.
2520
2521         * config/arm/arm.c (isr_attribute_args): New Structure.  A
2522         list of "interrupt" function attribute modifiers.
2523         (arm_isr_value): New Function: Returns the type of the current
2524         interrupt function.
2525         (arm_compute_func_type): New Function: Computes the type of
2526         the current function.
2527         (arm_current_func_type): New Function: Returns the type of the
2528         current function.
2529         (use_return_insn): Use arm_current_func_type.
2530         (arm_valid_type_attribute_p): Accept "interrupt" function
2531         attribute.
2532         (arm_comp_type_attributes): Check "interrupt" attributes.
2533         (arm_valid_machine_decl): Accept "interrupt" function
2534         attribute.
2535         (arm_function_ok_for_sibcall): Do not allow interrupt
2536         functions to use sibcalls.
2537         (arm_naked_function_p): Delete.
2538         (print_multi_reg): Remove redundant parameter 'hat'.
2539         (arm_compute_save_reg_mask): New Function: Compute a bit mask
2540         of registers saved during the current function's prologue.
2541         (output_arm_return_instruction): Use arm_current_func_type.
2542         Generate return instruction when LR is not poppsed off the
2543         stack.
2544         (arm_volatile_func): Delete.
2545         (output_arm_prologue): Use arm_current_func_type and
2546         arm_compute_save_reg_mask.
2547         Note presernce of interrupt functions.
2548         (arm_output_epilogue): Use arm_current_func_type and
2549         arm_compute_save_reg_mask.
2550         (arm_expand_prologue): Use arm_current_func_type and
2551         arm_compute_save_reg_mask.
2552         (arm_init_machine_status): Initialise func_type field, if
2553         necessary.
2554         (thumb_expand_prologue): Use arm_current_func_type.
2555         (output_thumb_prologue): Use arm_current_func_type.
2556
2557 2000-12-08  Brad Lucier <lucier@math.purdue.edu>
2558
2559         * tradcpp.c (do_include): Make pointer differences 64-bit clean.
2560
2561 Fri Dec  8 08:23:29 2000  J"orn Rennecke <amylaar@redhat.com>
2562
2563         * fp-bit.c (_fpmul_parts): Use USItype variables as inputs
2564         for multiplies.
2565
2566 2000-12-07  Mike Stump  <mrs@wrs.com>
2567
2568         * Makefile.in (distclean): Remove alloca.c hashtab.c.
2569
2570 2000-12-07  Zack Weinberg  <zack@wolery.stanford.edu>
2571
2572         * Makefile.in (HOST_RTL): Add safe-ctype.o.
2573         (safe-ctype.o): New rule.
2574         * system.h: Include safe-ctype.h, not ctype.h.  No need to
2575         wrap ctype macros.
2576
2577         * cpphash.h: Zap IStable and related macros.  Define is_* in
2578         terms of safe-ctype.h macros.
2579         * cppinit.c: Delete the IStable and all related code.
2580
2581         * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
2582         is_space arrays.  Delete initialize_char_syntax.  Change all
2583         references to the above arrays to use macros instead.
2584         * tradcpp.h: Define is_idchar, is_idstart, is_space, and
2585         is_nvspace in terms of safe_ctype.h's macros.
2586         * tradcif.y: is_idchar, is_idstart are macros not arrays.
2587
2588         * config/i370/i370.c, config/winnt/dirent.c,
2589         config/winnt/fixinc-nt.c, config/winnt/ld.c:
2590         Use uppercase ctype macros.  If we included ctype.h,
2591         include safe-ctype.h instead.
2592
2593         * fixinc/fixfixes.c: Use uppercase ctype macros.  Don't test
2594         ISLOWER(c) before calling TOUPPER(c).
2595         * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
2596         * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h.  No need to
2597         wrap ctype macros.  Don't test ISUPPER(x) before calling TOLOWER(x).
2598
2599 2000-12-07  DJ Delorie  <dj@redhat.com>
2600
2601         * c-decl.c (grokdeclarator): preserve previous alignments when
2602         rebuilding array types.
2603
2604 2000-12-07  Neil Booth  <neilb@earthling.net>
2605
2606         * cppfiles.c (struct include_file): Move from cpphash.h.
2607         (_cpp_never_reread): New function.
2608         (open_file, read_include_file): Use it.
2609         (stack_include_file): Set the buffer's sysp according to the
2610         path in which the file was found.
2611         (find_include_file): Don't set sysp.
2612         (cpp_make_system_header, actual_directory): Update.
2613         (_cpp_execute_include): Do #include_next lookup handling here,
2614         not in cpplib.c.  Use _cpp_never_reread.
2615         * cpphash.h (struct_include_file): Remove.
2616         (struct cpp_buffer): New member sysp.
2617         (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
2618         (_cpp_never_reread): New.
2619         * cpplib.c (read_line_number): Rename read_flag.  Rework slightly.
2620         (end_directive): Clear line_extension flag.
2621         (_cpp_handle_directive): Set line_extension flag for #number.
2622         (do_include_next): Handle path lookup in _cpp_execute_include.
2623         (do_line): Cleanup to use read_flag.  Don't allow flags in #line.
2624         (_cpp_do_file_change): Update.
2625         (do_pragma_once): Use cpp_never_reread.  Clean up.
2626         * cpplib.h (struct lexer_state): New member line_extension.
2627
2628 2000-12-07  Richard Henderson  <rth@redhat.com>
2629
2630         * flow.c (calculate_global_regs_live): Force the stack pointer live
2631         after reload as well.
2632
2633 2000-12-07  Bruce Korb  <bkorb@gnu.org>
2634
2635         * fixinc/Makefile.*(exeext): the variables are exeext, the
2636         substitution expression is build_exeext.
2637
2638 2000-12-07  Neil Booth  <neilb@earthling.net>
2639
2640         * c-common.c (parse_in): Make a cpp_reader *.
2641         * cppfiles.c (_cpp_fake_include): Remove.
2642         * cpphash.h: Similarly.
2643         * cpplib.c (do_line): Don't call _cpp_fake_include.  A valid
2644         #line always creates a callback; FC_RENAME if there are no
2645         #line flags.
2646         * fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
2647         The first EOF must be our get_char buffer.
2648
2649 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2650
2651         * c-common.c (warn_format_security): New variable.
2652         (check_format_info): Warn about non-literal formats with no format
2653         arguments if either -Wformat-nonliteral or -Wformat-security is
2654         specified.
2655         (set_Wformat): Set warn_format_security for settings other than 1.
2656         * c-common.h (warn_format_security): Declare.
2657         * c-decl.c (c_decode_option): Decode -Wformat-security and
2658         -Wno-format-security.
2659         * invoke.texi: Document -Wformat-security.
2660         * toplev.c (documented_lang_options): Include -Wformat-security
2661         and -Wno-format-security.
2662
2663 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2664
2665         * c-common.c (check_format_info): Warn for non-constant format
2666         strings with strftime formats if -Wformat-nonliteral.  Where the
2667         format can convert arguments, if the format is not a string
2668         literal and there are no arguments to the format, give a different
2669         warning message from the general non-string-literal case.
2670
2671 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2672
2673         * c-common.c (format_wanted_type): Add reading_from_flag.
2674         (print_char_table): Mark %s and %S formats with flag "R".
2675         (check_format_info_main): Set up reading_from_flag appropriately.
2676         If aflag, always set writing_in_flag rather than relying on the
2677         format used being a scanf format and so having it set.
2678         (check_format_types): Check for formats reading through null
2679         pointers.
2680
2681 2000-12-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2682
2683         * invoke.texi (-Wformat): Document what format features are
2684         checked.
2685
2686 2000-12-06  Kazu Hirata  <kazu@hxi.com>
2687
2688         * config/h8300/h8300.h: Fix formatting.
2689
2690 2000-12-06      Joel Sherrill <joel@OARcorp.com>
2691
2692         * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
2693         h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
2694         * config.gcc (*-rtems*): Add support for gthr-rtems.h.
2695         * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2696         config/h8300/rtems.h, config/mips/rtems.h: New files.
2697
2698 2000-12-06  Mark Kettenis  <kettenis@gnu.org>
2699
2700         * config.gcc: Reorganize handling of *-*-gnu*, to share target
2701         specific make details with Linux.  Update comments to clarify
2702         the distinction between GNU/Linux and GNU/Hurd.
2703
2704 Wed Dec  6 19:22:02 2000  Jeffrey A Law  (law@cygnus.com)
2705
2706         * contrib.texi: Fix my email address.  Update Per's
2707         list of contributions.
2708
2709 2000-12-06  Rodney Brown  <RodneyBrown@mynd.com>
2710
2711         * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX.
2712         * collect2.c (scan_libraries): Remove unused `ch'.
2713         (COFF specific stuff): Prototype ldgetname.  Declare and prototype
2714         ldbtread and ldclose.
2715
2716         * config/alpha/osf.h: Standarize copyright statement.
2717         * config/arc/arc.h: Likewise.
2718         * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise.
2719         * config/arm/arm.c config/arm/arm.h: Likewise.
2720         * config/elxsi/elxsi.h: Likewise.
2721         * config/i386/sco.h: Likewise.
2722         * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise.
2723         * config/m68k/m68kv4.h config/m68k/next21.h: Likewise.
2724         * config/m68k/sun3.h: Likewise.
2725         * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise.
2726         * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise.
2727         * config/romp/romp.h: Likewise.
2728         * config/rs6000/aix41.h: Likewise.
2729         * config/sparc/sysv4.h: Likewise.
2730         * config/we32k/we32k.c config/we32k/we32k.h: Likewise.
2731         * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise.
2732         * cpplib.h cppexp.c cselib.h profile.c: Likewise.
2733         * longlong.h: Likewise.
2734         * libgcc2.c: Likewise.
2735
2736 2000-12-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2737
2738         * machmode.def: Use correct definition for BITSIZE on targets where
2739         BITS_PER_UNIT != 8.
2740
2741 2000-12-06  Bruce Korb  <bkorb@gnu.org>
2742
2743         * fixinc/Makefile.*: Reduce differences to (ultimately) reduce
2744         the number of them.
2745
2746 2000-12-06  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2747
2748         * pa.c: Include expr.h before c-tree.h.
2749         (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered
2750         instead of reverse_condition.
2751         (print_operand): Correct predicates for GT, GE, LT and LE.  Add
2752         predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and
2753         ORDERED.
2754         (cmpib_comparison_operator): Add GEU and LTU codes.
2755         * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator.
2756         * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered,
2757         bordered): New float conditional branch patterns.
2758
2759 Wed Dec  6 21:03:41 2000  J"orn Rennecke <amylaar@redhat.com>
2760
2761         * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
2762
2763 2000-12-06  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
2764
2765         * cpplex.c (skip_escaped_newlines): Don't warn for spaces between
2766         backslash and newline, when inside a comment.
2767
2768 2000-12-06  Joseph S. Myers  <jsm28@cam.ac.uk>
2769
2770         * invoke.texi: Use @table @samp instead of @itemize @minus for
2771         table of language standards.  Fix use of @pxref.  From Zack
2772         Weinberg.  Also exclude specs documentation from generated
2773         manpage, and create separate ENVIRONMENT section.
2774
2775 2000-12-06  Michael Matz  <matzmich@cs.tu-berlin.de>
2776
2777         * gcse.c (compute_pre_data): Kill trapping expressions in
2778         destination blocks of abnormal edges.
2779
2780 2000-12-05  Richard Sandiford  <r.sandiford@redhat.com>
2781
2782         * config/mn10300/mn10300.c (mn10300_print_reg_list): Added.
2783         (mn10300_get_live_callee_saved_regs): Likewise.
2784         (mn10300_gen_multiple_store): Likewise.
2785         (store_multiple_operation): Likewise.
2786         (expand_prologue): Use mn10300_gen_multiple_store().
2787         * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added.
2788         (mn10300_get_live_callee_saved_regs): Likewise.
2789         (mn10300_gen_multiple_store): Likewise.
2790         (store_multiple_operation): Likewise.
2791         * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL
2792         tied to store_multiple_operation().
2793
2794 Tue Dec  5 20:09:14 2000  Jeffrey A Law  (law@cygnus.com)
2795
2796         * builtins.c (expand_builtin_setjmp_setup): Set
2797         current_function_has_nonlocal_label.
2798
2799 2000-12-05  Neil Booth  <neilb@earthling.net>
2800
2801         * cppfiles.c (stack_include_file): Push zero-length buffers
2802         in case of failure.  Return void, as we don't fail any more.
2803         (read_include_file): Check for files we shouldn't re-read.
2804         Don't return an error code; errors are implied by marking the
2805         file NEVER_REREAD.
2806         (_cpp_execute_include): Move the recursion and in-macro checks
2807         here.  Update for stack_include_file not failing.
2808         * cpplib.c (cpp_push_buffer): Always succeed, since
2809         _cpp_execute_include performs the recursion check.  Tidy up.
2810         * cpplib.h (cpp_push_buffer): Update prototype.
2811
2812 2000-12-05  Alexandre Oliva  <aoliva@redhat.com>
2813
2814         * sched-vis.c (visual_tbl_line_length): New variable.
2815         (get_visual_tbl_length): Set it.
2816         (visualize_stall_cycles): Don't let stalls overrun
2817         visual_tbl_line_length.
2818
2819 2000-12-05  Geoffrey Keating  <geoffk@redhat.com>
2820
2821         * global.c (global_conflicts): Allow for a REG_UNUSED note
2822         with a different mode to the REG set in the insn.
2823
2824 2000-12-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2825
2826         * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir.
2827
2828         * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS).
2829
2830 2000-12-05  Bruce Korb  <bkorb@gnu.org>
2831
2832         * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and
2833         GNU/Linux.
2834
2835 2000-12-05  Richard Earnshaw  <rearnsha@arm.com>
2836
2837         * fixinc/mkfixinc.sh: Run fixinc on netbsd.
2838         * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files,
2839         to cope with aliased copies.
2840         * fixinc/fixincl.x: Regenerate.
2841
2842 2000-12-05  Bernd Schmidt  <bernds@redhat.co.uk>
2843
2844         * sched-vis.c: Guard with #ifdef INSN_SCHEDULING.
2845         * sched-rgn.c: Likewise.
2846         (rgn_print_insn): Fix output.
2847
2848 2000-12-05  Bruce Korb  <bkorb@gnu.org>
2849
2850         * fixinc/Makefile.*: make these more consistent
2851         * fixinc/mkfixincl.sh: enable BeOS fixincludes
2852
2853 2000-12-05  Richard Henderson  <rth@redhat.com>
2854
2855         * stmt.c (warn_if_unused_value): Move side effects test earlier.
2856
2857 2000-12-05  Alan Modra <alan@linuxcare.com.au>
2858
2859         * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even
2860         when using sjlj.
2861
2862 2000-12-05  Richard Henderson  <rth@redhat.com>
2863
2864         * flow.c (calculate_global_regs_live): Only force stack pointer
2865         live before reload.  Force pic register live before reload.
2866         (insn_dead_p): Don't protect pic references from deletion.
2867
2868 2000-12-05  Joseph S. Myers  <jsm28@cam.ac.uk>
2869
2870         * invoke.texi: Add support for using texi2pod.pl.  Don't use
2871         @multitable.
2872
2873 2000-12-04  Nick Clifton  <nickc@redhat.com>
2874
2875         * config/arm/arm.c (arm_override_options): Test 'insn_flags' not
2876         'tune_flags' for XScale nature.
2877         Remove spurious test of HARD_FLOAT and XScale flags.
2878
2879         * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register
2880         contraint, accidentally changed during XScale contribution.
2881
2882         * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
2883         not create these functions if the target architecture does not
2884         support Thumb instructions.
2885
2886 2000-12-04  Joseph S. Myers  <jsm28@cam.ac.uk>
2887
2888         * ONEWS: New file with the current contents of NEWS up to EGCS
2889         1.1.
2890         * NEWS: Generate automatically from online release notes from EGCS
2891         1.0 to GCC 2.95.2, using ../contrib/gennews.
2892
2893 2000-12-04  Neil Booth  <neilb@earthling.net>
2894
2895         * tradcif.y: Move lexptr to top of file.  Add rule to handle
2896         assertions in conditional expressions.
2897         * tradcpp.c (parse_answer): Assertions do not need to go to
2898         end of line in conditional directives.
2899         (parse_assertion): Get first character of identifiers correct.
2900         (test_assertion): New function.
2901         * tradcpp.h (test_assertion): New prototype.
2902
2903 2000-12-01  Rodney Brown  <RodneyBrown@mynd.com>
2904
2905         * config.gcc: Fix typo for UnixWare 7.
2906
2907 2000-12-03  Phil Edwards  <pme@sources.redhat.com>
2908
2909         * invoke.texi:  Replace `pedwarns' with clearer text.
2910
2911 2000-12-04  Bruce Korb  <bkorb@gnu.org>
2912
2913         * fixinc/Makefile.*(clean):  don't clean autogenerated files.
2914         (mainainer-clean): clean autogenerated files
2915
2916 2000-12-04  DJ Delorie  <dj@redhat.com>
2917
2918         * md.texi: Add overview, clarify match_dup and define_expand.
2919
2920 2000-12-04  DJ Delorie  <dj@redhat.com>
2921
2922         * print-tree.c (print_node): Target-specific builtins print
2923         numbers, not names.
2924
2925 2000-12-04  Jason Merrill  <jason@redhat.com>
2926
2927         * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
2928         MODE_VECTOR_FLOAT.
2929
2930         * diagnostic.c (report_problematic_module): s/function/module/.
2931
2932         * c-lex.h: Remove decl for check_newline.
2933
2934 2000-12-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2935
2936         * README.APOLLO: Remove obsolete file.
2937
2938 2000-12-04  Neil Booth  <neilb@earthling.net>
2939
2940         * cppinternals.texi: New file.
2941
2942 2000-12-04  Neil Booth  <neilb@earthling.net>
2943
2944         * cppfiles.c (cpp_make_system_header): Take 2 booleans,
2945         and operate on current buffer.
2946         (cpp_read_file): Rename _cpp_read_file.
2947         * cpplib.c (do_line, do_pragma_system_header): Update calls to
2948         cpp_make_system_header.
2949         * fix-header.c: Similarly.
2950         * cpphash.h (_cpp_read_file): Move from...
2951         * cpplib.h: ... here.
2952         * cppinit.c (do_includes, cpp_start_read): Update appropriately.
2953
2954 2000-12-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2955
2956         * builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
2957         Handle another transformation.
2958
2959 2000-12-03  Nick Clifton  <nickc@redhat.com>
2960
2961         * config.gcc: Add support for StrongARM targets.
2962         * config/arm/t-strongarm-elf: New file.
2963         * config/arm/t-strongarm-coff: New file.
2964         * config/arm/t-strongarm-pe: New file.
2965         * config/arm/strongarm-pe.h: New file.
2966
2967 2000-12-03  Nick Clifton  <nickc@redhat.com>
2968
2969         * NEWS: Mention XScale has been added.
2970         * config.gcc: Add support for XScale targets.
2971         * config/arm/arm.h: Add support for XScale processor.
2972         * config/arm/arm.c: Add support for XScale processor.
2973         * config/arm/arm.md: Add support for XScale processor.
2974         * config/arm/t-xscale-elf: New file.
2975         * config/arm/t-xscale-coff: New file.
2976         * config/arm/xscale-elf.h: New file.
2977         * config/arm/xscale-coff.h: New file.
2978
2979 2000-12-03  Richard Henderson  <rth@redhat.com>
2980
2981         * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
2982         unless exception handling is enabled, and if not using sjlj.
2983
2984         * builtins.c (expand_builtin_setjmp_setup): New.
2985         (expand_builtin_setjmp_receiver): New.
2986         (expand_builtin_setjmp): Split out _setup and _receiver functions.
2987         Move argument parsing in from ...
2988         (expand_builtin): ... here.
2989         * except.c (receive_exception_label): Branch around receiver
2990         unless new-style exceptions.  Call expand_builtin_setjmp_receiver.
2991         (start_dynamic_handler): Call expand_builtin_setjmp_setup.
2992         * expr.h: Update builtin setjmp decls.
2993
2994 2000-12-03  Bruce Korb  <bkorb@gcc.org>
2995
2996         * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical
2997         build machine name.  Default to the target.
2998
2999 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
3000
3001         * Makefile.in: use $(build_canonical), not $(canonical_build).
3002
3003 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
3004
3005         * Makefile.in (OBJS): Add sched-rgn.o.
3006         (sched-rgn.o): New rule.  * haifa-sched.c (sched_verbose): No
3007         longer static.
3008         (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
3009         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
3010         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
3011         MAX_BLOCKAGE_COST): Move to sched-int.h.
3012         (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD,
3013         IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
3014         FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
3015         OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
3016         rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
3017         RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN,
3018         debug_regions, find_single_block_region, find_rgns, too_large,
3019         init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
3020         bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
3021         extract_bitlst, bblst, struct candidate, candidate_table,
3022         bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
3023         SRC_PROB, target_bb, split_edges, compute_trg_info,
3024         debug_candidate, debug_candidates, bbset, bbset_size, dom,
3025         IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset,
3026         rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
3027         EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
3028         compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
3029         IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY,
3030         MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
3031         update_live, set_spec_fed, is_pfree, find_conditional_protection,
3032         is_conditionally_protected, may_trap_exp, haifa_classify_insn,
3033         is_prisky, is_exception_free, add_branch_dependences,
3034         propagate_deps, compute_block_backward_dependences,
3035         debug_dependencies, is_cfg_nonregular, build_control_flow,
3036         new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER,
3037         BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions,
3038         UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE,
3039         CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
3040         target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
3041         can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
3042         rgn_rank, region_sched_info): Move to sched-rgn.c.
3043         (debug_reg_vector): Delete useless function.
3044         (get_bb_head_tail): Likewise.
3045         (insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
3046         no_real_insns_p, rm_line_notes, save_line_notes,
3047         restore_line_notes, rm_redundant_line_notes, sched_init): No
3048         longer static.
3049         (rm_line_notes, save_line_notes, restore_line_notes,
3050         schedule_block, set_priorities): Change argument to be a real
3051         basic block, not one of haifa's "bb"s.  All callers changed
3052         (rm_other_notes): Initialize note_list here, not in
3053         schedule_region.
3054         (sched_finish): New function, called from schedule_insn.  * *
3055         sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT,
3056         INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE,
3057         UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST,
3058         MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
3059         (get_block_head_tail, no_real_insns_p, rm_line_notes,
3060         save_line_notes, restore_line_notes, rm_redundant_line_notes,
3061         rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
3062         sched_init, sched_finish, ready_add, insn_cost): Declare.
3063
3064 2000-12-03  Laurynas Biveinis  <lauras@softhome.net>
3065             Bruce Korb  <bkorb@gnu.org>
3066
3067         * Makefile.in: pass $(build_canonical) to mkfixinc.sh.
3068         * fixinc/mkfixinc.sh: accept build system name as an argument.
3069         Use it for choosing the fix build method.  Use the target for
3070         selecting special fix rules.
3071
3072 2000-12-03  Bernd Schmidt  <bernds@redhat.co.uk>
3073
3074         * Makefile.in (OBJS): Add sched-deps.o.
3075         (sched-deps.o): New rule.
3076         * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
3077         sched-int.h.
3078         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to
3079         sched-int.h.
3080         (SIZE_FOR_MODE): Delete unused macro.
3081         (reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
3082         reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
3083         anti_dependency_cache, output_dependency_cache,
3084         forward_dependency_cache): Variables moved to sched-deps.c.
3085         (add_dependence, remove_dependence, find_insn_list,
3086         find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
3087         sched_analyze_insn, sched_analyze_1, sched_analyze_2,
3088         sched_analyze, group_leader, compute_forward_dependences,
3089         init_deps, free_deps, init_dependency_caches, free_dependency_caches):
3090         Functions moved to sched-deps.c.
3091         (schedule_region): Call init_deps_global and finish_deps_global
3092         instead of directly manipulating dependency data structures.
3093         * sched-deps.c: New file.
3094         (init_deps_global, finish_deps_global): New functions.
3095         * sched-int.h (struct haifa_insn_data, struct deps): Moved here from
3096         haifa-sched.c.
3097         (h_i_d): Declare.
3098         (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here
3099         from haifa-sched.c.
3100
3101         * Makefile.in (OBJS): Add sched-vis.o.
3102         (sched-vis.o): New rule.
3103         * haifa-sched.c (get_unit_last_insn): New function.
3104         (sched_dump, insn_unit, actual_hazard_this_instance): No longer
3105         static.
3106         (schedule_block): Call visualize_alloc and visualize_free.  Delete
3107         spurious return statement.
3108         (init_target_units, insn_print_units, get_visual_tbl_length,
3109         init_block_visualization, print_block_visualization, safe_concat,
3110         visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
3111         print_exp, print_value, print_pattern, print_insn, target_units,
3112         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
3113         n_vis_no_unit, vis_no_unit): Move scheduling visualization
3114         functions/variables...
3115         * sched-vis.c: ...here.  New file.
3116         (visualize_alloc, visualize_free): New functions.
3117         (visualize_scheduled_insns, visualize_stall_cycles,
3118         print_block_visualization): Lose basic block argument.  All callers
3119         changed.
3120         (visualize_scheduled_insns): Use new function get_unit_last_insn.
3121         * sched-int.h (current_sched_info, sched_dump): Declare.
3122         (init_target_units, insn_print_units, init_block_visualization,
3123         print_block_visualization, visualize_scheduled_inns,
3124         visualize_no_unit, visualize_stall_cycles, visualize_alloc,
3125         visualize_free): Declare functions.
3126
3127         * sched-int.h: New file.
3128         * Makefile.in (haifa-sched.o): Depend on it.
3129         * haifa-sched.c: Include it.
3130         (no_real_insns_p): New function.
3131         (current_sched_info): New static variable.
3132         (__inline, HAIFA_INLINE): Moved to sched-int.h.
3133         (get_block_head_tail): Minor cleanup.
3134         (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
3135         rgn_print_insn, rgn_rank): New functions, broken out of
3136         rank_for_schedule, schedule_insn and schedule_block, where they
3137         are now called through function pointers in current_sched_info.
3138         (queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
3139         print_insn): To display uid and block number, call the print_insn
3140         function pointer in current_schedule_info.
3141         (region_sched_info): New static variable.
3142         (sched_target_n_insns, sched_n_insns, target_n_insns): New global
3143         variables, moved out of schedule_block.
3144         (schedule_block): Return void.  All callers changed.
3145         Move some of the setup code into schedule_region.  Get head/tail
3146         from current_sched_info, and update it when done.
3147         (schedule_region): Slightly rearranged, some code moved here from
3148         schedule_block.  Call no_real_insns_p to avoid doing work for a
3149         block that consists only of notes and labels.
3150         (schedule_insns): Initialize current_sched_info.
3151
3152 2000-12-03  Neil Booth  <neilb@earthling.net>
3153
3154         * cppmacro.c (funlike_invocation_p): Re-disable macros enabled
3155         by contexts drops AFTER argument pre-expansion, so that they
3156         remain enabled during argument pre-expansion.
3157         (_cpp_pop_context): Unconditionally re-enable a macro when
3158         dropping a context level.
3159
3160 2000-12-03  Manfred Hollstein  <manfredh@redhat.com>
3161
3162         * arm/t-linux (MULTILIB_OPTIONS): Comment.
3163         (MULTILIB_DIRNAMES): Likewise.
3164         (EXTRA_MULTILIB_PARTS): Likewise.
3165         (LIBGCC): Likewise.
3166         (INSTALL_LIBGCC): Likewise.
3167
3168 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3169
3170         * builtins.c (expand_builtin_strcat, expand_builtin_strncat,
3171         expand_builtin_strspn, expand_builtin_strcspn): New functions.
3172         (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
3173         BUILT_IN_STRSPN and BUILT_IN_STRCSPN.
3174
3175         * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
3176         BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries.
3177
3178         * c-common.c (c_common_nodes_and_builtins): Declare builtin
3179         strcat, strncat, strspn and strcspn.
3180         (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
3181
3182         * extend.texi (strcat, strcspn, strncat, strspn): Document new
3183         builtins.
3184
3185 2000-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3186
3187         * builtins.c (expand_builtin_strcmp): Use const*_rtx when
3188         expanding strcmp at compile-time.  Add another transformation.
3189         (expand_builtin_strncmp): Add more transformations.  Call
3190         expand_builtin_memcmp, not expand_builtin_strcmp, under
3191         appropriate conditions if HAVE_cmpstrsi.
3192
3193 2000-12-02  David Edelsohn  <edelsohn@gnu.org>
3194
3195         * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis
3196         instruction.
3197         (cr logic): Really make operands sequential.
3198
3199 2000-12-02  Geoffrey Keating  <geoffk@redhat.com>
3200
3201         * c-common.c (combine_strings): When the ISO C standard specifies
3202         the maximum length of a string, it doesn't include the trailing
3203         zero byte.
3204
3205         * cpplib.c (do_ifdef): Add check_eol() call.
3206         (do_ifndef): Likewise.
3207
3208 2000-12-02  Daniel Berlin  <dberlin@redhat.com>
3209             Bruce Korb  <bkorb@gnu.org>
3210
3211         * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
3212         * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos*
3213         * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
3214         * fixinc/fixfix.c(wrap_fix): avoid wrapping files that
3215         use the "__need_" hackery.  It breaks them.
3216         * fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
3217         Sometimes on DOS and BeOS the temp output file cannot be opened.
3218         Skip the file noisily.  Ought to be fixed instead.
3219
3220 2000-12-02  Bruce Korb  <bkorb@gnu.org>
3221
3222         From: 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3223
3224         * fixfixes.c (emit_gnu_type, format_write): Prototype.
3225         (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
3226         custom uppercase ctype macros.
3227         * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
3228         Use gcc's custom uppercase ctype macros.
3229         (main): Prototype.
3230         (machine_matches): Add static prototype and constify variable.
3231         (create_file, test_test, egrep_test): Add static prototype.
3232         (quoted_file_exists): Likewise, and constify parameters.
3233         (extract_quoted_files, internal_fix, start_fixer, fix_applies,
3234         write_replacement, test_for_changes): Add static prototype.
3235         (write_replacement, test_for_changes): Delete excess argument to
3236         `create_file'.
3237         * fixtests.c (test): Make static.
3238         * server.c (load_data, sig_handler, server_setup, find_shell): Add
3239         static prototype.
3240         (sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
3241
3242 2000-12-02  Bruce Korb  <bkorb@gnu.org>
3243
3244         * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list
3245         (per Laurynas Biveinis  <lauras@softhome.net>)
3246
3247 2000-12-02  Richard Earnshaw  <rearnsha@arm.com>
3248
3249         * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
3250         macros.
3251         (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
3252         (REGNO_OK_FOR_FOR_BASE_P): Delete.
3253         (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
3254         both strict and non-strict uses.
3255         (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
3256         (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
3257         (REG_OK_FOR_INDEX_P): Define in terms of above.
3258         (REG_OK_FOR_BASE_P): Delete.
3259         (REG_OK_FOR_PRE_POST_P): Delete.
3260         (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
3261         (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
3262         (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
3263         (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
3264         (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes.  Use ARM
3265         specific variants rather than general ones.  Use ARM_REG_OK_FOR_BASE_P
3266         in pre/post increment cases.
3267         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
3268         (ARM_LEGITIMIZE_ADDRESS): Similarly.
3269         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
3270         * arm.c (legitimate_pic_address): Similarly.
3271
3272 2000-12-02  Neil Booth  <neilb@earthling.net>
3273
3274         * tradcpp.c (struct answer, parse_assertion, parse_answer,
3275         canonicalize_text, find_answer): New.
3276         (do_assert, do_unassert): Provide appropriate function bodies.
3277         (union hashval): New member answers.
3278
3279 2000-11-23  Marek Michalkiewicz  <marekm@linux.org.pl>
3280
3281         * config/avr/avr.md: Document UNSPEC usage.
3282         (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
3283         Make operand 0 input only, clobber it.  Use UNSPEC, not a bogus
3284         MEM for program memory word reference.  Do not add the label to
3285         the table index in each of the asm output templates, instead ...
3286         (casesi): ... do it in RTL.  Adjust to match the above change.
3287
3288 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
3289
3290         * c-common.c (PTRDIFF_TYPE): Provide default here, ...
3291         * c-decl.c: ... not here.
3292
3293         * haifa-sched.c (sched_dump): Renamed from dump.  All users changed.
3294         (old_max_uid): New variable.
3295         (compute_forward_dependences): Renamed from
3296         compute_block_forward_dependences; changed to accept block head and
3297         tail instead of block number.  Caller changed.
3298         (free_deps, init_dependency_caches, free_dependency_caches,
3299         init_regions, sched_init): New functions, split out from
3300         schedule_insns and compute_block_backward_dependences.
3301
3302 2000-12-02  Neil Booth  <neilb@earthling.net>
3303
3304         * cppexp.c (parse_number): Update diagnostic test.
3305
3306 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
3307
3308         * reload1.c (free_for_value_p): New function, frontend to
3309         reload_reg_free_for_value_p.  All callers of the latter now call
3310         this function with an additional mode argument.
3311
3312 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3313
3314         * install.texi (Configurations): Remove obsolete documentation for
3315         hppa*-*-*.
3316
3317 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3318
3319         * install.texi (Installation): Remove obsolete description for
3320         libstdc++ which is now an integral part of GCC.
3321
3322 2000-12-01  Jim Blandy  <jimb@redhat.com>
3323
3324         * dbxout.c (dbxout_parms): Correctly describe parameters passed by
3325         invisible reference in registers, but then spilled to the stack.
3326         Remove code to emit a second stab for such parameters; it attempts
3327         to describe the value's location by introducing a synthetic C++
3328         `reference' type, and then saying the stack slot has that
3329         reference type.  This loses type information (breaking GDB's
3330         `ptype' command, among other things) just to describe a location
3331         which stabs can represent correctly in other ways.
3332
3333 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
3334
3335         * final.c (output_addr_const) <PLUS>: Don't assume at least one
3336         operand is a CONST_INT.
3337
3338         * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
3339         (machine_dependent_reorg): Split all insns.
3340         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
3341         reg_class_contents[SIBCALL_REGS].
3342         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
3343         * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
3344         call_value_pcrel, call, call_value, sibcall): Match even when
3345         not optimizing.
3346         (sibcalli_pcrel, sibcall_pcrel): Likewise.  Use constraint `k'
3347         for call address.
3348         (sibcalli): Likewise.
3349
3350 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3351
3352         * c-common.c (warn_format, warn_format_y2k,
3353         warn_format_extra_args, warn_format_nonliteral): Define.
3354         (check_format_info): Check warn_format_nonliteral and
3355         warn_format_extra_args.
3356         (check_format_info_main): Check warn_format_y2k.
3357         (set_Wformat): New function.
3358         * c-common.h (warn_format_y2k, warn_format_extra_args,
3359         warn_format_nonliteral, set_Wformat): Declare.
3360         * c-decl.c (warn_format): Remove definition.
3361         (c_decode_option): Handle -Wformat-nonliteral,
3362         -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
3363         Use set_Wformat.
3364         * invoke.texi: Document these new options and -Wformat=2.
3365         * toplev.c (documented_lang_options): Add these new options.
3366
3367 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3368
3369         * builtins.def (BUILT_IN_IMAXABS): Add.
3370         * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
3371         * c-common.c (c_common_nodes_and_builtins): Create builtin
3372         functions __builtin_imaxabs, and plain imaxabs unless
3373         flag_no_nonansi_builtin outside C99 mode.
3374         (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
3375         * extend.texi: Document builtin imaxabs.
3376
3377 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3378
3379         * c-common.c: Include "defaults.h".
3380         (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
3381         (c_common_nodes_and_builtins): Create string_type_node,
3382         const_string_type_node, wint_type_node, intmax_type_node,
3383         uintmax_type_node, default_function_type, ptrdiff_type_node and
3384         unsigned_ptrdiff_type_node.
3385         * c-common.h (identifier_global_value): Declare.
3386         * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
3387         (init_decl_processing): Don't create string_type_node,
3388         const_string_type_node, wint_type_node, intmax_type_node,
3389         uintmax_type_node, default_function_type, ptrdiff_type_node and
3390         unsigned_ptrdiff_type_node.
3391         (identifier_global_value): New function.
3392
3393 2000-12-01  Neil Booth  <neilb@earthling.net>
3394
3395         * cppinit.c (initialize): Forgotten prototype.
3396         * cpplex.c (_cpp_lex_token): Loop until not skipping.
3397         Always clear PREV_WHITE upon meeting a new line.
3398         * cpplib.c (end_directive): Set pfile->skipping after
3399         skip_rest_of_line.
3400         * cpplib.h (cpp_reader): Remove macro_pos.
3401         * cppmacro.c (cpp_get_line): Don't do anything special inside
3402         macros.
3403         (parse_arg): Add PREV_WHITE if a token appears after new lines.
3404         (funlike_invocation_p): Save and restore the output position
3405         over a successful check for a '('.
3406         (enter_macro_context): Delete uses of macro_pos.
3407         (cpp_get_token): Don't use pfile->skipping.
3408
3409 2000-12-01  Phil Edwards  <pme@sources.redhat.com>
3410
3411         * diagnostic.c:  Fix typos in comments.
3412         * diagnostic.h:  Likewise.
3413
3414 2000-11-30  Phil Edwards  <pme@sources.redhat.com>
3415
3416         * rtl.texi (Machine Modes):  Document BImode and OImode.
3417
3418 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3419
3420         * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
3421         .FPP.
3422
3423 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3424
3425         * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
3426         incomplete element type.
3427         (grokparms): Before checking for incomplete parameter type, check
3428         the type isn't error_mark_node.
3429
3430 2000-12-01  Jakub Jelinek  <jakub@redhat.com>
3431
3432         * builtins.c (target_char_cast): New function.
3433         (expand_builtin_strchr): Use it.
3434         (expand_builtin_strrchr): Use it.
3435         (builtin_memset_read_str): New function.
3436         (expand_builtin_memset): Use target_char_cast.
3437         Try to optimize memset with second argument non-zero using
3438         store_by_pieces.
3439
3440 2000-11-30  Marek Michalkiewicz  <marekm@linux.org.pl>
3441
3442         * install.texi (avr): Replace incomplete list of supported MCU
3443         types with a link to the current one ...
3444         * invoke.texi (AVR Options): ... here.  Update -mmcu= to list
3445         all supported MCU types.  Document -minit-stack= default.
3446         Document new options -mno-tablejump, -mtiny-stack.
3447         * md.texi (AVR family):  Fix typo in 'w' constraint letter
3448         description.  Document 'q'.  Update 'O'.
3449
3450 2000-12-01  Bernd Schmidt  <bernds@redhat.co.uk>
3451
3452         * combine.c (cant_combine_insn_p): Only disallow insns involving
3453         hard regs if they are reg-reg moves.
3454         (try_combine, can_combine_p, combinable_i3pat): Delete old
3455         SMALL_REGISTER_CLASSES tests.
3456
3457 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
3458
3459         * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
3460         whether X is a CONST_INT.
3461         (addsubcosts): Likewise.
3462
3463         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
3464         mis-used XINT.
3465         (ARG_POINTER_REGNUM): Set to AP_REG.
3466
3467 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
3468
3469         * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
3470         splits): Only match on TARGET_SH4.
3471
3472         * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
3473         of subsequent insns.
3474
3475 2000-11-30  Richard Henderson  <rth@redhat.com>
3476
3477         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
3478         * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
3479
3480 2000-11-30  Richard Henderson  <rth@redhat.com>
3481
3482         * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
3483         (DO_SELECT_SECTION): New.
3484         (SELECT_SECTION): Use it.
3485         (UNIQUE_SECTION_P): New.
3486         (UNIQUE_SECTION): New.
3487
3488 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
3489
3490         * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
3491         from va_list before using it.
3492
3493 2000-11-30  Michael Matz  <matzmich@cs.tu-berlin.de>
3494
3495         * flow.c (make_edge): Early out, if no flags to set.
3496         (calculate_global_regs_live): Clear out garbage only when necessary.
3497
3498         * simplify-rtx.c (varray_type used_regs): New.
3499         (clear_table): Use it to only clear necessary items.
3500         (cselib_lookup, cselib_record_set): Remember newly set items.
3501         (cselib_update_varray_sizes, cselib_init): Initialize and grow
3502         used_regs.
3503
3504         * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
3505         Move clearing of dead regs out of insn-loop.
3506
3507 2000-11-30  Richard Henderson  <rth@redhat.com>
3508
3509         * calls.c (expand_call): Emit queued insns before creating
3510         the tail recursion sequence.
3511
3512 2000-11-30  J. David Anglin  <dave.anglin@nrc.ca>
3513             Bruce Korb  <bkorb@gnu.org>
3514
3515         * fixinc/inclhack.def(): prevent dual double definition protection
3516         * fixinc/fixincl.x: regenerate
3517
3518 2000-11-29  Loren J. Rittle  <ljrittle@acm.org>
3519
3520         * fixinc/Makefile.in (fixincl.x): Explicitly state the
3521         location of the generated file.
3522
3523 2000-11-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3524
3525         * README.FRESCO: Remove obsolete file.
3526
3527 2000-11-30  Mark Kettenis  <kettenis@gnu.org>
3528
3529         * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
3530         TARGET_LIBGCC2_CFLAGS): Remove.  We now use the settings from
3531         config/t-linux for the Hurd.
3532
3533 2000-11-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3534
3535         * config/mn10200/udivmod.c, config/mn10200/divmod.c,
3536         config/mn10200/udivmodsi4.c: Moved from here.
3537         * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
3538         * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
3539         C division functions.
3540         * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
3541
3542 Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
3543
3544         * pa.md (conditional moves): Avoid holes in operand list.
3545         (mod, umod patterns): Similarly.
3546         (variable extract/shift patterns): Similarly.
3547
3548 2000-11-30  Neil Booth  <neilb@earthling.net>
3549
3550         * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
3551         maybe_objc_check_decl, build_objc_string_object,
3552         objc_declare_alias, objc_declare_class, build_message_expr,
3553         build_protocol_expr, build_selector_expr, build_encode_expr,
3554         get_class_ivars, start_class, start_protocol): Remove
3555         redundant code, assuming doing_objc_thang is true.
3556
3557 2000-11-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3558
3559         * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
3560         (record_unscaled_index_insn_codes): Likewise.
3561         (unscaled_index_insn_codes): Delete.
3562         (max_unscaled_index_insn_codes_uid): Delete.
3563         (output_function_prologue, output_function_epilogue, pa_reorg):
3564         Don't use the unscaled index insn hack.
3565
3566         * pa.md: Remove hack from all index insns to reverse the operand
3567         order of frame and stack pointer references incorrectly created
3568         in the reload pass.
3569
3570         * function.h (emit_status): Delete member regno_pointer_flag and
3571         rename regno_pointer_flag_length to regno_pointer_align_length.
3572         Delete define for REGNO_POINTER_FLAG.
3573         * integrate.h (inline_remap): Delete member regno_pointer_flag.
3574         Add member x_regno_reg_rtx.
3575         * rtl.h (rtx_def): Use frame_related bit to indicate register is
3576         a pointer in REG expressions.  Define REG_POINTER macro.
3577         * alias.c (find_base_value, find_base_term): Use REG_POINTER
3578         instead of REGNO_POINTER_FLAG.
3579         * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
3580         * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
3581         of regno_pointer_flag_length.  Remove code which refers to
3582         regno_pointer_flag.
3583         (mark_reg_pointer): Use REG_POINTER.
3584         (free_emit_status): Remove code which refers to regno_pointer_flag.
3585         (init_emit, mark_emit_status): Likewise.
3586         * flow.c (dump_flow_info): Likewise.
3587         * function.c (preserve_temp_slots): Likewise.
3588         * integrate.c (expand_inline_function, copy_rtx_and_substitute):
3589         Use x_regno_reg_rtx instead of regno_pointer_flag for function
3590         pointer determination in map.
3591         * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
3592         * predict.c (estimate_probability): Likewise.
3593         * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
3594         * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
3595         regno_pointer_flag for function pointer determination in map.
3596         * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
3597         REG_POINTER.
3598         * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
3599         Use REG_POINTER.
3600         (restore_unscaled_index_insn_codes): Revise comment.
3601
3602         * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
3603
3604 2000-11-30  Joseph S. Myers  <jsm28@cam.ac.uk>
3605
3606         * extend.texi: Update documentation for attributes.
3607
3608 2000-11-29  David O'Brien  <obrien@FreeBSD.org>
3609
3610         * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
3611         (ASM_DECLARE_OBJECT_NAME): Same.
3612         (ASM_FILE_END): Same.
3613         (ASM_FINISH_DECLARE_OBJECT): Same.
3614         (ASM_IDENTIFY_GCC): Same.
3615         (ASM_IDENTIFY_LANGUAGE): Same.
3616         (ASM_OUTPUT_CONSTRUCTOR): Same.
3617         (ASM_OUTPUT_DEF): Same.
3618         (ASM_OUTPUT_DESTRUCTOR): Same.
3619         (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
3620         (ASM_OUTPUT_SECTION_NAME): Same.
3621         (ASM_WEAKEN_LABEL): Same.
3622         (BSS_SECTION_ASM_OP): Same.
3623         (COMMON_ASM_OP): Same.
3624         (CONST_SECTION_ASM_OP): Same.
3625         (CONST_SECTION_FUNCTION): Same.
3626         (CTORS_SECTION_ASM_OP): Same.
3627         (DTORS_SECTION_ASM_OP): Same.
3628         (ESCAPES): Same.
3629         (FINI_SECTION_ASM_OP): Same.
3630         (IDENT_ASM_OP): Same.
3631         (IDENT_ASM_OP): Same.
3632         (INIT_SECTION_ASM_OP): Same.
3633         (INT_ASM_OP): Same.
3634         (MAX_OFILE_ALIGNMENT): Same.
3635         (SBSS_SECTION_ASM_OP): Same.
3636         (SDATA_SECTION_ASM_OP): Same.
3637         (SECTION_FUNCTION_TEMPLATE): Same.
3638         (SELECT_SECTION): Same.
3639         (SE_CONST_SECTION): Same.
3640         (SIZE_ASM_OP): Same.
3641         (SKIP_ASM_OP): Same.
3642         (STRING_ASM_OP): Same.
3643         (STRING_LIMIT): Same.
3644         (TYPE_ASM_OP): Same.
3645         (TYPE_OPERAND_FMT): Same.
3646
3647 2000-11-29  Neil Booth  <neilb@earthling.net>
3648
3649         * c-decl.c (c_decode_option): Don't handle -lang-objc.
3650         * objc/lang-options.h: Remove -lang-objc.
3651         * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
3652         * objc/objc-act.c (lang_init_options): Set c_language.
3653
3654 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
3655
3656         * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
3657         tests.
3658
3659 2000-11-29  Neil Booth  <neilb@earthling.net>
3660
3661         * c-pragma.c (init_pragma): Update for parse_in type change.
3662
3663 2000-11-29  Laurynas Biveinis  <lauras@softhome.net>
3664
3665         * configure.in: recognize DOS-style absolute paths.
3666
3667 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
3668
3669         * expr.h (store_by_pieces): Add prototype.
3670         (can_store_by_pieces): Likewise.
3671         * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
3672         (can_store_by_pieces): New.
3673         (store_by_pieces): New.
3674         (clear_by_pieces): New.
3675         (clear_by_pieces_1): New.
3676         (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
3677         arbitrary compiler generated constants into memory block.
3678         (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
3679         * builtins.c (c_readstr): New.
3680         (builtin_memcpy_read_str): New.
3681         (expand_builtin_memcpy): If src is string constant and
3682         emit_block_move would move it by pieces, compute integer constants
3683         from the string and store it into memory block instead.
3684         (builtin_strncpy_read_str): New.
3685         (expand_builtin_strncpy): If N is not constant zero and c_strlen does
3686         not return INTEGER_CST, don't optimize.
3687         If N is larger than strlen(src) + 1, try to copy the string
3688         including padding with store_by_pieces.
3689         (expand_builtin_strcmp): If both arguments have side effects, don't
3690         optimize.
3691         (expand_builtin_fputs): If STR has side effects, don't optimize.
3692
3693 2000-11-29  Richard Earnshaw  <rearnsha@arm.com>
3694
3695         * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
3696         Add use of link register.
3697
3698 2000-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3699
3700         * extend.texi: Update documentation for default format attributes.
3701
3702 Tue Nov 28 21:56:45 2000  Jeffrey A Law  (law@cygnus.com)
3703
3704         * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
3705         a list, to keep track of the sections.
3706
3707 2000-11-28  Nick Clifton  <nickc@redhat.com>
3708
3709         * config/arm/arm.md (pic_load_addr): Split into
3710         pic_load_addr_arm and pic_load_addr_thumb.
3711
3712         * config/arm/arm.c (legitimize_pic_address): Generate either
3713         ARM or Thumb versions of pic_load_addr.
3714         (arm_finalize_pic): Generate either ARM or Thumb versions of
3715         pic_load_addr.
3716
3717 2000-11-28  Richard Henderson  <rth@redhat.com>
3718
3719         * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
3720         after sibcall do_pending_stack_adjust.
3721
3722 Wed Nov 29 00:08:23 2000  J"orn Rennecke <amylaar@redhat.com>
3723
3724         * jump.c (delete_insn): Check that REG_LABEL note actually contains
3725         a CODE_LABEL.
3726
3727 2000-11-28  Neil Booth  <neilb@earthling.net>
3728
3729         * c-common.h: Remove flag_digraphs.
3730         * c-decl.c: Remove flag_digraphs.
3731         (c_decode_option): Don't set it.
3732         * c-lex.c (init_c_lex): Don't do anything for digraphs.
3733
3734 2000-11-28  Richard Henderson  <rth@redhat.com>
3735
3736         * c-parse.in (finish_parse): Update for parse_in type change.
3737         (_yylex): Likewise.
3738
3739 2000-11-28  Neil Booth  <neilb@earthling.net>
3740
3741         * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
3742         indicating whether to scan all buffers on the stack or
3743         just one.
3744         * cppinit.c (do_includes): Update.
3745         * cppmain.c (main): Update.
3746         * cpplib.h: Update prototype.
3747
3748 2000-11-28  Richard Henderson  <rth@redhat.com>
3749
3750         * genoutput.c (validate_insn_operands): New.
3751         (gen_insn): Call it.
3752
3753         * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
3754         (divmoddi_internal): Likewise.
3755         * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
3756         * config/i960/i960.md (branch patterns): Likewise.
3757         * config/ia64/ia64.md (tbit_and_0): Likewise.
3758         (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
3759         * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
3760         * config/mips/mips.md (divmodsi4_internal): Likewise.
3761         (divmoddi4_internal): Likewise.
3762         * config/rs6000/rs6000.md (call patterns): Likewise.
3763         * config/sh/sh.md (movsi_y): Likewise.
3764         * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
3765
3766 2000-11-28  Richard Henderson  <rth@redhat.com>
3767
3768         * config.gcc: Kill residual pyramid support.
3769
3770 2000-11-28  Neil Booth  <neilb@earthling.net>
3771
3772         * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
3773         * c-decl.c (c_decode_option): Update to match.
3774         * c-lex.c (init_c_lex, yyparse): Update to match.
3775         * c-lang.c (lang_init_options): Use cpp_create_reader.
3776         * cppinit.c (cpp_init): Rename initialize.
3777         (cpp_reader_init): Rename cpp_create_reader.  Create the
3778         reader.  Initialize cpplib if appropriate.
3779         * cpplib.h (cpp_create_reader) New prototype.
3780         (cpp_init, cpp_reader_init): Delete prototypes.
3781         * cppmain.c (general_init, setup_callbacks): New functions.
3782         (main): Use them.
3783         * fix-header.c (scan_in): Change type to cpp_reader *.
3784         (read_scan_file): Update for new cpplib interface and scan_in type.
3785
3786         * cp/decl.c (parse_in): Change to cpp_reader *.
3787         (lang_decode_option): Update.
3788         * cp/lex.c (lang_init_options): Use new cpplib interface.
3789         (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
3790         * cp/spew.c (read_token): Update.
3791         * objc/objc-act.c (lang_init_options): Update new cpplib interface.
3792
3793 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
3794
3795         * loop.c (load_mems): Avoid using next_label to find end_label. If
3796         jumping outside of the loop (other than loop end), don't hoist MEMs
3797         out of loop.
3798
3799 2000-11-28  Jan Hubicka  <jh@suse.cz>
3800
3801         * calls.c (expand_call): Don't disable tail recursion based
3802         on the loop nest.
3803
3804 2000-11-28  Neil Booth  <neilb@earthling.net>
3805
3806         * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
3807         (struct directive): Drop 4th argument from handlers.
3808         (do_define, do_line, do_include, do_undef, do_else, do_elif,
3809         do_endif): Similarly.
3810         (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
3811         (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
3812         (make_definition, make_undef): Take a const char*.
3813         (make_assertion): New function.
3814         (struct directive_table): Update.
3815         (main): Handle -A command line argument.
3816         (handle_directive): Drop fourth handler argument.
3817
3818 2000-11-28  Bernd Schmidt  <bernds@redhat.co.uk>
3819
3820         * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
3821         is anything but REG or MEM, but look inside STRICT_LOW_PART.
3822
3823 Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3824
3825         * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
3826         (IS_ABSOLUTE_PATHNAME): New macro.
3827         * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
3828
3829 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
3830
3831         * config/i386/i386.md (truncxfsf2_2): Fix predicate.
3832
3833 2000-11-27  Jim Wilson  <wilson@redhat.com>
3834
3835         * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
3836
3837 2000-11-27  Matthias Klose  <doko@cs.tu-berlin.de>
3838
3839         * extend.texi (Nested Functions): Update URL of Usenix paper.
3840
3841 2000-11-27  Mark Mitchell  <mark@codesourcery.com>
3842
3843         * function.c (free_after_compilation): Clear x_clobber_return_insn.
3844
3845 2000-11-27  Neil Booth  <neilb@earthling.net>
3846
3847         * cppinit.c (cpp_reader_init): Remove handling of warn_paste
3848         command line options.
3849         (cpp_handle_option): Similarly.
3850         * cpplib.h (struct cpp_options): Remove warn_paste.
3851         * cppmacro.c (paste_tokens): Apart from assembler, make
3852         unpasteable token warning mandatory.
3853
3854 2000-11-27  Neil Booth  <neilb@earthling.net>
3855
3856         * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
3857         (main): Allocate a pending directive set of these.  Use it.
3858         Merge handling of -D and -U.  Update handling of pending
3859         directives.  Free the memory after use.
3860
3861 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
3862
3863         * flow.c (entry_exit_blocks): Add entry for cond_local_set.
3864         (struct propagate_block_info): Add new member cond_local_set.
3865         (propagate_block): Accept new arg cond_local_set.  All callers
3866         changed.
3867         (init_propagate_block_info): Likewise.
3868         (calculate_global_regs_live): Allocate & free cond_local_set.  Always
3869         rescan if there's overlap between cond_local_set and new_live_at_end.
3870         (mark_set_1): Set bits either in cond_local_set or local_set, as
3871         appropriate.
3872         * basic-block.h (struct basic_block_def): New field cond_local_set.
3873         (propagate_block, init_propagate_block_info): Update prototypes.
3874
3875 Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
3876
3877         * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
3878         T register.
3879
3880 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
3881
3882         * arm.c (select_dominance_cc_mode): Handle new way that combine
3883         canonicalizes conditional compares.
3884         (arm_select_cc_mode): Likewise.
3885         * arm.md: Garbage collect some dead code.
3886         (cmp_and, cmp_ior): New patterns.
3887         (splitter for conditional move with inverted false): Use cond_exec
3888         and handle unordered comparisons.
3889
3890 Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
3891
3892         * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
3893         * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
3894         * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
3895         ix86_force_to_memory and ix86_free_from_memory.
3896
3897 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
3898
3899         * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
3900         arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
3901         anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
3902         one_cmpldi2): Merge with splitters to create define_insn_and_split
3903         patterns.  Remove redundant splits.
3904         (peephole2 for add:SI of invalid immediate): New.
3905         (peephole2 for minus:SI of invalid immediate): New.
3906         (peephole2 for ior:SI of invalid immediate): New.
3907         (peephole for merge of move and compare): Convert ot peephole2.
3908         (addsf3, adddf3): Mark as commutative.
3909
3910         * arm.md (thumb peephole for merging stack adjustments): Convert to
3911         peephole2.
3912
3913 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
3914
3915         * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
3916
3917         * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
3918         (reload_cse_simplify_operands): Do nothing about operands where both
3919         the operand and the match_operand fail to give us a mode.
3920         * simplify-rtx.c (wrap_constant): New function.
3921         (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
3922         CONST describing the proper mode.
3923         (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
3924         cselib_lookup.
3925         (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
3926         htab_find_slot_with_hash.
3927         (cselib_lookup): Likewise.
3928
3929         Based on a patch from Geoff Keating <geoffk@redhat.com>:
3930         * loop.c (basic_induction_var): If a REG is set from something
3931         that is not a biv, then the REG is not a biv.  Even if it is
3932         earlier set from something that is a biv.
3933
3934 2000-11-27  Alexandre Oliva  <aoliva@redhat.com>
3935
3936         * configure.in (extra_objs): Enclose extra_headers in quotes.
3937         * configure: Rebuilt.
3938
3939 2000-11-27  Neil Booth  <neilb@earthling.net>
3940
3941         * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
3942         Combine into the new function cb_change_file.
3943         (init_c_lex): Update.
3944         * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
3945         (cpp_syshdr_flags): Delete.
3946         * cpphash.h (_cpp_do_file_change): New prototype.
3947         Move struct cpp_buffer here from...
3948         * cpplib.h (struct cpp_buffer): ... here.
3949         (enum cpp_fc_reason, struct cpp_file_loc,
3950         struct_cpp_file_change, change_file): New.
3951         (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
3952         * cpplib.c (do_line): Update for new cb_change_file callback.
3953         (_cpp_do_file_change): New function.
3954         (_cpp_pop_buffer): Update to use it.
3955         * cppmain.c (move_printer): Delete.
3956         (main): Set up single callback cb_change_file.
3957         (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
3958         (cb_change_file): New.
3959         * fix-header.c (cur_file, cb_change_file): New.
3960         (recognized_function, read_scan_file): Update.
3961         * scan-decls.c (scan_decls): Update.
3962         * scan.h (recognized_function): Update prototype.
3963
3964 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
3965
3966         * tree.h (mark_tree_hashtable): New function.
3967         * tree.c (mark_tree_hashtable_entry): New function.
3968         (mark_tree_hashtable): Likewise.
3969
3970 2000-11-27  Michael Meissner  <meissner@redhat.com>
3971
3972         * d30v-protos.h (srelational_si_operator): Correctly spell
3973         function.
3974         (urelational_si_operator): Ditto.
3975         (relational_si_operator): Ditto.
3976         (d30v_expand_prologue): Add prototype.
3977         (d30v_expand_epilogue): Ditto.
3978
3979         * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
3980
3981         * d30v.md (movcccc_*): Delete now unused patterns.
3982         (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
3983         IF_THEN_ELSE.
3984         (define_cond_exec): Use 'b' to select branch flags.
3985
3986 2000-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3987
3988         * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
3989         functions.
3990         (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
3991
3992         * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
3993
3994         * c-common.c (c_common_nodes_and_builtins): Declare builtin
3995         strncpy and strncmp.
3996
3997         * extend.texi (strncmp, strncpy): Document new builtins.
3998
3999 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
4000
4001         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
4002         a list, to keep track of the sections.
4003         * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
4004         parameter provided will always be a canonical string.
4005
4006 2000-11-26  Neil Booth  <neilb@earthling.net>
4007
4008         * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
4009         current buffer.
4010
4011 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
4012
4013         * makefile.vms: Remove EGCS references.
4014
4015 2000-11-26  Ulrich Drepper  <drepper@redhat.com>
4016
4017         * dwarf2out.c (output_file_names): New function.  Compute minimal
4018         combination of directory and file name table and emit them.
4019         (output_line_info): Remove code to emit directory and file name
4020         table and call output_file_names instead.
4021         (file_info_cmp): Helper function to sort directory names.
4022
4023 2000-11-26  Neil Booth  <neilb@earthling.net>
4024
4025         * cpplib.h (struct cpp_reader): Remove lang_asm.
4026         (struct cpp_options): Remove c89. New members lang,
4027         extended_numbers.
4028         * cppexp.c (parse_number): Use them.
4029         * cpphash.h (VALID_SIGN): Use them.
4030         * cppinit.c (set_lang, cpp_start_read): Update.
4031         * cpplex.c (parse_string, _cpp_lex_token): Update.
4032         * cpplib.c (_cpp_handle_directive): Update.
4033         * cppmacro.c (parse_args): Update.
4034         * cppmain.c (scan_buffer): Update.
4035
4036 Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4037
4038         * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
4039         proper type.
4040
4041 2000-11-26  Neil Booth  <neilb@earthling.net>
4042
4043         * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
4044         * c-decl.c: Remove parse_in declaration.
4045         * c-lang.c: Similarly.
4046         * c-lex.c: Similarly.
4047         * c-parse.in: Similarly.
4048         * c-pragma.c: Similarly.
4049         * configure.in: Similarly.
4050         * cp/Make-lang.in: Similarly.
4051         * cp/spew.c: Similarly.
4052         * cp/decl2.c: Remove check for lang-c++ option.
4053         * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
4054         * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
4055         * c-lex.h: Add declaration of parse_in.
4056         * cppinit.c: Call set_lang after allocating pfile->pending.
4057         * configure: Regenerate.
4058
4059 2000-11-25  Zack Weinberg  <zack@wolery.stanford.edu>
4060
4061         * combine.c (try_combine): Remove redundant test.
4062
4063 2000-11-25  Richard Henderson  <rth@redhat.com>
4064
4065         * c-common.h (DECL_C_HARD_REGISTER): New.
4066         * c-decl.c (finish_decl): Set it for asm register variables.
4067         * c-semantics.c (emit_local_var): Test it when instantiating one.
4068
4069 2000-11-25  Richard Henderson  <rth@redhat.com>
4070
4071         * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
4072         lineno for the start of the function.
4073
4074 2000-11-25  Richard Henderson  <rth@redhat.com>
4075
4076         * dwarf2out.c (file_table, file_table_allocated): Remove.
4077         (file_table_allocated): Remove.
4078         (struct file_table): New.
4079         (decl_file_table, line_file_table): New.
4080         (print_dwarf_line_table): Use them.
4081         (size_of_line_prolog): Likewise.
4082         (output_line_info): Likewise.
4083         (add_src_coords_attributes): Likewise.
4084         (gen_subprogram_die): Likewise.
4085         (gen_variable_die): Likewise.
4086         (dwarf2out_add_library_unit_info): Likewise.
4087         (dwarf2out_line): Likewise.
4088         (lookup_filename): Take a struct file_table argument.
4089         (init_file_table): New.
4090         (dwarf2out_init): Use it.
4091
4092 2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
4093
4094         * invoke.texi: Update sequence points references.
4095
4096 2000-11-25  Neil Booth  <neilb@earthling.net>
4097
4098         * c-common.c: Remove USE_CPPLIB conditional inclusions.
4099         * c-common.h: Similarly.
4100         * c-decl.c: Similarly.
4101         * c-lang.c: Similarly.
4102         * c-lex.c: Similarly.
4103         * c-parse.in: Similarly.
4104         * c-pragma.c: Similarly.
4105         * c-pragma.h: Similarly.
4106         * gcc.c: Similarly.
4107         * toplev.c: Similarly.
4108         * cp/cp-tree.h: Similarly.
4109         * cp/decl2.c: Similarly.
4110         * cp/lang-specs.h: Similarly.
4111         * cp/lex.c: Similarly.
4112         * cp/lex.h: Similarly.
4113         * cp/spew.c: Similarly.
4114         * java/lang-options.h: Similarly.
4115         * objc/lang-specs.h: Similarly.
4116         * objc/objc-act.c: Similarly.
4117
4118         * configure.in: Remove configure option.
4119         * config.in: Regenerate.
4120         * configure: Regenerate.
4121
4122 2000-11-25  Richard Henderson  <rth@redhat.com>
4123
4124         * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
4125         Revert 2000-11-22 change.
4126
4127 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
4128
4129         * config/i386/i386.h (FIXED_REGS): Make the three flags registers
4130         fixed.
4131
4132 2000-11-25  Philipp Thomas  <pthomas@suse.de>
4133         * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
4134         * configure: Rebuilt.
4135
4136 2000-11-25  Jakub Jelinek  <jakub@redhat.com>
4137
4138         * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
4139         Handle CONST_INT as second argument.
4140         * config/sparc/sparc.c (set_extends): Remove first argument.
4141         Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
4142         MOV.
4143         (sparc_check_64): Abort if first argument is not REG.
4144         If it is DImode REG, look at the lower register of the register
4145         pair.
4146
4147         * config/sparc/sparc.c (load_pic_register, restore_regs,
4148         output_return, sparc_v8plus_shift, sparc_function_profiler,
4149         sparc_function_block_profiler, sparc_block_profiler): Fix output
4150         formatting.
4151
4152 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>
4153
4154         * config/sh/sh.h (TARGET_NONE): New.
4155         (TARGET_SWITCHES): For all variant-selecting switch, use
4156         TARGET_NONE to reset all other variant-selecting switch.  Added
4157         empty strings to avoid warnings.
4158         (TARGET_DEFAULT): Set to SH1_BIT.
4159
4160         * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
4161         insn-codes.h.
4162
4163         * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
4164         (sibcall_pcrel): New insn_and_split.
4165         (sibcall, sibcall_value, sibcall_epilogue): New expands.
4166
4167         * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
4168         symPLT_label2reg, call, call_value): Don't set
4169         current_function_uses_pic_offset_table.
4170         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
4171         PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
4172         takes it into account.
4173         (FINALIZE_PIC): Delete, useless.
4174         (LEGITIMATE_CONSTANT_P): Delete, unused.
4175         * config/sh/sh.c (sh_expand_prologue): Don't use
4176         current_function_uses_pic_offset_table.  Don't special-case
4177         PIC_OFFSET_TABLE_REGNUM.  Initialize it if it's ever live and
4178         PIC is enabled.
4179         (sh_expand_epilogue, initial_elimination_offset): Don't
4180         special case PIC_OFFSET_TABLE_REGNUM.
4181
4182 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>, NIIBE Yutaka  <gniibe@m17n.org>
4183
4184         * config/sh/sh-protos.h (symbol_ref_operand): Declare.
4185         * config/sh/sh.md (UNSPEC_CALLER): New constant.
4186         (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
4187         (call_pcrel, call_value_pcrel): New insn_and_splits.
4188         (call, call_value): Use them.
4189         (call_site): New expand.
4190         (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
4191         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
4192         Output call_site label.
4193         (PREDICATE_CODES): Added symbol_ref_operand.
4194         * config/sh/sh.c (symbol_ref_operand): Define.
4195         * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
4196         to CALL_INSNs in the split sequence.
4197
4198 2000-11-24  Nick Clifton  <nickc@redhat.com>
4199
4200         * config.gcc (v850-*-*): Define c_target_objs and
4201         cxx_target_objs.
4202
4203         * config/v850/t-v850: Define how to build v850-c.o
4204
4205         * config/v850/v850.h (struct data_area_stack_element): Move
4206         definition here from v850.c.
4207
4208         * config/v850v850.c: Include gcc.h to avoid compile time
4209         warning.
4210         (push_data_area): Move to v850-c.c.
4211         (pop_data_area): Move to v850-c.c.
4212         (mark_current_function_as_interrupt): Move to v850-c.c.
4213         (GHS_default_section_names): Allow to be exported.
4214         (GHS_current_section_names): Allow to be exported.
4215         (data_area_stack_elements): Allow to be exported.
4216         (ghs_pragma_section): Move to v850-c.c.
4217         (ghs_pragma_interrupt): Move to v850-c.c.
4218         (ghs_pragma_starttda): Move to v850-c.c.
4219         (ghs_pragma_startsda): Move to v850-c.c.
4220         (ghs_pragma_startzda): Move to v850-c.c.
4221         (ghs_pragma_endtda): Move to v850-c.c.
4222         (ghs_pragma_endsda): Move to v850-c.c.
4223         (ghs_pragma_endzda): Move to v850-c.c.
4224
4225         * config/v850/v850-c.c: New file: Contains v850 specific
4226         pragma parsing functions.
4227
4228 2000-11-24  Nick Clifton  <nickc@redhat.com>
4229
4230         * config.gcc (extra_objs): Remove duplicate description.
4231         (c_target_objs): New variable.  Contains target specific
4232         object files for the gcc C compiler only.
4233         (cxx_target_objs): New variable.  Contains target specific
4234         object files for the gxx C++ compiler only.
4235
4236         * configure.in (c_target_objs): Substitute in the makefile.
4237         (cxx_target_objs): Substitute in the makefile.
4238         * configure: Regenerate.
4239
4240         * Makefile.in (C_TARGET_OBJS): Define and initialise from
4241         c_target_objs.
4242         (CXX_TARGET_OBJS): Define and initialise from
4243         cxx_target_objs.
4244         (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
4245
4246         * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
4247
4248         * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
4249         about how the use of the 'c_lex' function requires the use of
4250         the target specific, language specific object files feature of
4251         the configuration mechanism.
4252
4253 Fri Nov 24 18:50:58 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4254
4255         * gcc.c (process_command): Use F_OK, not R_OK.
4256
4257 2000-11-24  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
4258
4259         * flow.c (print_rtl_and_abort): Remove ANSIism.
4260
4261 Fri Nov 24 19:54:36 2000  Alexandre Oliva  <aoliva@redhat.com>
4262
4263         * config/sh/sh.h (GENERAL_REGISTER_P,
4264         GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
4265         FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros.  Use them
4266         all over.
4267         (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
4268         * config/sh/sh.c: Use new macros.
4269         * config/sh/sh.md: Likewise.
4270
4271 Fri Nov 24 19:46:16 2000  Alexandre Oliva  <aoliva@redhat.com>
4272
4273         * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
4274         instead of just MACH_REG in DImode.  Always refer to FPSCR_REG
4275         in PSImode.
4276
4277 Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
4278
4279         * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
4280         fixed.
4281         (machine_dependent_reorg): Wrong optimization based on
4282         NOTICE_UPDATE_CC removed.
4283
4284 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
4285
4286         * jump.c (delete_computation): Re-instate deletion of feeding insn.
4287         (delete_insn): Look for REG_LABEL notes.
4288         (redirect_tablejump): Delete feeding insns.
4289
4290 2000-11-24  Bernd Schmidt  <bernds@redhat.co.uk>
4291
4292         * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
4293         call_value_pop_1): Make sure operand numbers are contiguous.
4294
4295         * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
4296
4297         * reload1.c (conflicts_with_override): New function.
4298         (emit_input_reload_insns): Use it to tighten test for validity
4299         of substituting into output of previous insn.
4300
4301         * haifa-sched.c (struct ready_list): New.
4302         (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
4303         functions.
4304         (schedule_insn): Replace args READY and N_READY with a pointer to a
4305         ready_list; return void.  Use the new functions to access the ready
4306         list.  All callers changed.
4307         (queue_to_ready, debug_ready_list): Likewise.
4308         (schedule_block): Initialize a ready_list structure.  Use new
4309         functions to access it.
4310         (max_priority): Remove unused variable.
4311         (schedule_insn): Don't set it.
4312
4313         * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
4314
4315         * combine.c (cant_combine_insn_p): New function.
4316         (try_combine): Use it.
4317
4318         * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
4319         * c-common.c (c-obstack.c): Include "obstack.h".
4320         (struct reverse_tree): Delete.
4321         (reverse_list, reverse_max_depth): Delete.
4322         (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
4323         (struct tlist, struct tlist_cache): New.
4324         (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
4325         (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
4326         warn_for_collisions, warn_for_collisions_1, new_tlist): New
4327         static functions.
4328         (verify_sequence_points): Rewritten.
4329         * fold-const.c (fold): Don't lose possibly important sequence
4330         points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
4331
4332 2000-11-24  Richard Sandiford  <rsandifo@redhat.com>
4333
4334         * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
4335         when reversing a register-to-register copy.  Reversal now disabled
4336         when the previous instruction has a REG_EQUIV.
4337
4338 2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
4339
4340         * c-parse.in (unary_expr): Move VA_ARG from here ...
4341         (primary): ... to here.
4342
4343 2000-11-23  Graham Stott  <grahams@redhat.com>
4344
4345         * expr.c (store_constructor): If a field is non addressable and
4346         the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
4347
4348 2000-11-23  Bernd Schmidt  <bernds@redhat.co.uk>
4349
4350         * flow.c (print_rtl_and_abort): New function.
4351         (verify_wide_reg, verify_local_live_at_start): Try to dump more
4352         information before aborting.
4353
4354 2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
4355
4356         * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
4357         is narrower than requested mode.
4358         (gen_highpart): Abort if register mode is narrower than
4359         requested mode.
4360
4361 2000-11-23  Graham Stott  <grahams@redhat.com>
4362
4363         * cse.c (cse_insn): Initialise all regcost variables.
4364         Fix a typo add missing '='.
4365         Only compare costs if there is a replacement insn.
4366
4367 Thu Nov 23 04:33:33 2000  Alexandre Oliva  <aoliva@redhat.com>
4368
4369         * final.c (output_addr_const) [LABEL_REF]: Simplify.
4370         [MINUS]: Enclose non-CONST_INTs in parentheses.
4371         [default]: Try OUTPUT_ADDR_CONST_EXTRA.
4372         * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
4373         * varasm.c (decode_rtx_const) [CONST]: If it's not something
4374         PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
4375         instead of abort()ing.
4376         * sh.c (output_pic_addr_const): Removed.  Fixed all callers.
4377         * sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
4378         formerly handled in output_pic_addr_const.
4379         * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
4380         operands of MINUS in CONSTs so that decode_rtx_const() will
4381         accept them.
4382
4383 Thu Nov 23 04:10:30 2000  Alexandre Oliva  <aoliva@redhat.com>
4384
4385         * config/sh/sh.md (mova_const): New pattern.
4386         (GOTaddr2picreg): Use it.
4387         * config/sh/sh.c (broken_move): Match it.
4388         (mova_p): Don't match it.
4389         (machine_dependent_reorg): Adjust it.
4390
4391 Thu Nov 23 02:09:09 2000  Alexandre Oliva  <aoliva@redhat.com>
4392
4393         * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
4394         Moved most register-number #defines...
4395         * config/sh/sh.md (define_constants): ... here.  Use macros to
4396         refer to registers and unspecs.
4397         * config/sh/sh.c: Likewise.
4398
4399 Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
4400
4401         * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
4402         (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
4403         (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
4404         (splay-tree.o, hash.o): Likewise.
4405         GCONFIG_H: New.
4406         (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
4407         (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
4408         (hashtab.o): Likewise.
4409         (gcov.o): Depend on $(CONFIG_H).
4410         * configure.in: #include insn-codes.h in tm.h.
4411
4412 2000-11-22  Nick Clifton  <nickc@redhat.com>
4413
4414         * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
4415         const char * to avoid a compile time warning.
4416
4417         * config/arm/arm.md (define_constants): Define symbolic names for
4418         the link register, last integer register and the fake CC register.
4419         Update patterns to use these symbolic names.
4420
4421 2000-11-22  Neil Booth  <neilb@earthling.net>
4422
4423         * cpplex.c (trigraph_ok): Ensure we don't warn twice.
4424         * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
4425
4426 2000-11-22  Richard Henderson  <rth@redhat.com>
4427
4428         * haifa-sched.c (sched_analyze_1): Don't special-case calls
4429         for clobbering registers.
4430         (sched_analyze_2): Likewise.
4431         (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
4432
4433 2000-11-22  Chris Demetriou  <cgd@sibyte.com>
4434             Neil Booth  <neilb@earthling.net>
4435
4436         * gcc.c (validate_switches): Validate multiple switches named
4437         in '|' (or) expressions in specs.
4438         (handle_braces): If more than 1 alternative in a '|' spec
4439         matches, call do_spec1 just once.
4440
4441 2000-11-22  Michael Meissner  <meissner@redhat.com>
4442
4443         * d30v.h (TARGET_SWITCHES): Add documentation strings.
4444         (TARGET_OPTIONS): Ditto.
4445         (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
4446         -O3.
4447
4448 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
4449
4450         * pa.c (hppa_encode_label): Account for addition of encoding
4451         character when allocating persistent space for the new label
4452         name.
4453
4454 2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
4455
4456         * Makefile.in, config.gcc, configure.in: Expunge remaining
4457         traces of facility for running MD files through C preprocessor.
4458
4459 2000-11-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4460
4461         * gcov.texi: Add magic comments for texi2pod.pl.
4462         * Makefile.in: Add rules to generate and install gcov.1.
4463         * gcov.1: New (generated) file.
4464
4465 2000-11-21  Richard Henderson  <rth@redhat.com>
4466
4467         * regrename.c (scan_rtx_reg): Terminate the chain rather than
4468         abort on mark_read with NO_REGS.
4469
4470 2000-11-21  Mike Stump  <mrs@wrs.com>
4471
4472         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
4473         compilation with older compilers, such as /bin/cc on SunOS.
4474         * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
4475
4476 2000-11-21  Richard Henderson  <rth@redhat.com>
4477
4478         * varasm.c (record_constant): Pad the constructed
4479         constant_descriptor appropriately.
4480
4481 Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
4482
4483         * rtl.h (traverse_md_constants): Declare.
4484         (struct md_constant): Define.
4485         * Makefile.in (HOST_RTL): Add hashtab.o .
4486         (OBJS): Add hashtab.o .
4487         (hashtab.o): New rule.
4488         (rtl.o): Depends on HASHTAB_H.
4489         * rtl.c (hashtab.h): #include.
4490         (md_constants): New static variable.
4491         (def_hash, def_name_eq_p, read_constants): New static functions.
4492         (traverse_md_constants): New function.
4493         (read_name): Do constant expansion.
4494         (read_rtx): Recognize define_constants.
4495         * gencodes.c (print_md_constant): New function.
4496         (main): Emit #defines for all constant definitions encountered.
4497         * md.texi (Constant Definitions): New node.
4498         * gensupport.c (xcalloc): New function.
4499
4500 2000-11-21  Richard Henderson  <rth@redhat.com>
4501
4502         * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
4503         * config/alpha/alpha-protos.h: Declare it.
4504         * config/alpha/alpha.md (abstf_internal): Use it.
4505         (negtf_internal): Likewise.
4506         (andnotdi3): Unstar the name.
4507         (movtf_internal): Add o/G alternative.
4508
4509 2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
4510
4511         * stringpool.c (stringpool_statistics): Also report number and
4512         percentage of entries which are identifiers.
4513
4514 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
4515
4516         * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
4517         visited before visiting it.
4518
4519 2000-11-21  Nick Clifton  <nickc@redhat.com>
4520
4521         * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
4522         TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
4523
4524         * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
4525
4526 2000-11-21  Richard Henderson  <rth@redhat.com>
4527
4528         * c-common.c (c_unsafe_for_reeval): New function.
4529         (add_c_tree_codes): Register it.
4530         * c-common.h: Declare it.
4531         * tree.c (lang_unsafe_for_reeval): New hook.
4532         (unsafe_for_reeval): Call it.
4533         * tree.h: Declare it.
4534
4535 2000-11-21  Richard Henderson  <rth@redhat.com>
4536
4537         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
4538         references as well.
4539
4540 2000-11-21  Neil Booth  <neilb@earthling.net>
4541
4542         * do_includes: Revert to using cpp_read_file.
4543
4544 2000-11-21  Bernd Schmidt  <bernds@redhat.co.uk>
4545
4546         * loop.c (consec_sets_giv): If the reg we're examining is anything
4547         but UNKNOWN_INDUCT, do nothing.
4548         Reset the reg's type to UNKNOWN_INDUCT before returning.
4549
4550         Mostly from Vladimir Makarov (vmakarov@redhat.com)
4551         * ia64.md (attr itanium_class): Define insn types as described in
4552         Itanium docs.
4553         (all insn patterns): Use itanium_class, not type attributes.
4554         Occasionally split alternatives as necessary.
4555         (attr type): Compute from new attr itanium_class.
4556
4557 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4558
4559         * tradcpp.c (output_line_command): Mark system headers as such in
4560         `line' commands.
4561
4562 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
4563
4564         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
4565         support in as as well.
4566         * configure: Regenerate.
4567
4568 2000-11-20  Richard Henderson  <rth@redhat.com>
4569
4570         * c-lex.c (orig_filename): New variable.
4571         (init_c_lex): Set it.  Move call to cpp_start_read ...
4572         (yyparse): ... here.  New function.
4573         * c-parse.in (yyparse_1): Rename the parser entry point.
4574         * c-tree.h: Declare it.
4575
4576 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
4577
4578         * expr.c (do_compare_and_jump): If op0 was replaced by promoted
4579         integer constant, use type of op1 for comparison.
4580
4581 2000-11-20  Stan Shebs  <shebs@apple.com>
4582
4583         * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
4584         * config/rs6000/x-darwin: New file, Darwin host fragment.
4585         * config.gcc (powerpc-*-darwin*): New host.
4586         * system.h (HAVE_DESIGNATED_INITIALIZERS):  Allow this to be
4587         overridden by a config file.
4588
4589 2000-11-20  Neil Booth  <neilb@earthling.net>
4590
4591         * cppmacro.c (paste_tokens): Rename from paste_payloads.
4592         Change token type after pasting spellings.
4593         (paste_all_tokens): Use it.
4594         * gcc.dg/cpp/paste2.c: Update test.
4595         * objc/execute/paste.m: New test.
4596
4597 2000-11-20  Richard Henderson  <rth@redhat.com>
4598
4599         * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
4600         dwarf_subscr_data_formats bits.
4601         * dwarfout.c (simple_type_size_in_bits): Handle a type with
4602         no computed size as size zero.
4603         (field_byte_offset): Likewise.
4604         (subscript_data_attribute): Handle a range with no upper bound.
4605
4606 2000-11-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4607
4608         * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
4609
4610 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4611
4612         * c-typeck.c (build_conditional_expr): When merging type
4613         qualifiers for conditional expressions between a pointer and a
4614         pointer to a void type, merge the qualifiers on the target types
4615         rather than the pointer type.  Remove obsolete conditioned out
4616         code.
4617
4618 2000-11-20  Neil Booth  <neilb@earthling.net>
4619
4620         * c-lang.c (lang_init_options): Update call to
4621         cpp_reader_init.
4622         * cppmain.c (main): Similarly.
4623         * fix-header.c (read_scan_file): Similarly.
4624         * cp/lex.c (lang_init_options): Similarly.
4625         * objc/objc-act.c (lang_init_options): Similarly.
4626         * cppexp.c (parse_number): Only warn for unextended C89.
4627         * cppinit.c (set_lang): New function.
4628         (cpp_reader_init): Take a LANG argument and pass it to set_lang.
4629         (COMMAND_LINE_OPTIONS): New option std=c++98.
4630         (cpp_handle_option): Use set_lang.
4631         * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
4632         * cppib.h (enum_c_lang): New enumeration.  Update comments.
4633
4634 2000-11-20  Will Cohen  <wcohen@redhat.com>
4635
4636         * calls.c (expand_call): Clear target only when target is in
4637         hard register and current_function_check_memory_usage is set.
4638
4639 2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
4640
4641         * toplev.c (rest_of_compilation): Run optimize_mode_switching even
4642         if not optimizing.
4643         * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
4644
4645 2000-11-19  Richard Henderson  <rth@redhat.com>
4646
4647         * crtstuff.c (force_to_data): Use array size 1 not 0.
4648
4649         * dwarf2out.c (simple_type_size_in_bits): Handle a type with
4650         no computed size as size zero.
4651         (field_byte_offset): Likewise.
4652
4653 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4654
4655         * config.gcc: Fix another typo.
4656
4657 2000-11-19  Richard Henderson  <rth@redhat.com>
4658
4659         * c-decl.c (grokdeclarator): Support flexible array members.
4660         Use open-ended ranges for these and zero-length arrays.
4661         * c-typeck.c (push_init_level): Validate the context of
4662         initialization of a zero-length array.
4663         * tree.c (int_fits_type_p): Be prepared for missing bounds.
4664         * varasm.c (array_size_for_constructor): New.
4665         (output_constructor): Use it for arrays of unspecified length.
4666         * extend.texi (Zero Length): Mention C99 flexible array members.
4667         Document initialization in a top-level struct as valid.
4668
4669 2000-11-19  Joseph S. Myers  <jsm28@cam.ac.uk>
4670
4671         * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
4672
4673         * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
4674         stdarg and varargs functions.
4675
4676 2000-11-19  Zack Weinberg  <zack@wolery.stanford.edu>
4677
4678         * gcc.c (process_command): Define 'j' variable when
4679         MODIFY_TARGET_NAME is defined.
4680
4681 2000-11-19  Richard Henderson  <rth@redhat.com>
4682
4683         * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
4684
4685 2000-11-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4686
4687         * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
4688         calculation and allocation.
4689
4690 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4691
4692         * builtins.c (c_getstr): Constify variable.
4693         * gmon-sol2.c (_mcleanup): Comment out #endif labels.
4694         * conflict.c (const_conflict_graph_arc): New typedef.
4695         (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
4696         * cppmacro.c (builtin_macro): Likewise.
4697         * dwarf2out.c (output_comp_unit): Constify variable.
4698         * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
4699         * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
4700         * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
4701         away const-ness.
4702         * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
4703         ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
4704         * varasm.c (const_str_htab_hash, const_str_htab_eq,
4705         compare_constant_1, record_constant_1): Constify.
4706
4707 2000-11-18  Richard Henderson  <rth@redhat.com>
4708
4709         * c-decl.c (grokdeclarator): Special case the creation of an
4710         index for a zero-length array.
4711         * tree.c (build_index_type): Revert Oct 20 change.
4712
4713 2000-11-18  Marek Michalkiewicz  <marekm@linux.org.pl>
4714
4715         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
4716         * config/avr/avr.c (jump_tables_size): New variable.
4717         (function_prologue): Initialize it as 0.
4718         (function_epilogue): Add it to function_size.
4719         (avr_output_addr_vec_elt): New function.  Count words in jump
4720         tables in jump_tables_size.  Move code ...
4721         * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
4722         Call avr_output_addr_vec_elt instead.
4723         * config/avr/avr.md (tablejump): Remove disabled define_expand.
4724
4725 2000-11-18  Mark Mitchell  <mark@codesourcery.com>
4726
4727         * configure.in: Make --enable-new-gxx-abi the default.
4728         * configure: Likewise.
4729
4730 2000-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4731
4732         * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
4733
4734         * tradcif.y: Include tradcpp.h.  Constify.  Make functions static.
4735         Move extern function declarations to tradcpp.h.
4736
4737         * tradcpp.c: Likewise.
4738
4739         * tradcpp.h: New file.
4740
4741 2000-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
4742
4743         * c-decl.c (check_for_loop_decls): New function.
4744         * c-parse.in (for_init_stmt): New.
4745         (select_or_iter_stmt): Use for_init_stmt.
4746         * c-tree.h (check_for_loop_decls): New declaration.
4747
4748 2000-11-18  Neil Booth  <neilb@earthling.net>
4749
4750         * cppinit.c: Update comments.
4751         (cpp_reader_init): Make -imacro and -include use the standard
4752         #include "" search path.
4753         (do_includes): New function.
4754
4755 2000-11-18  Ben Elliston  <bje@redhat.com>
4756
4757         * config/sh/crt1.asm (start_l): Move PC-relative move instruction
4758         out of a branch delay slot.
4759
4760 2000-11-17  Richard Henderson  <rth@redhat.com>
4761
4762         * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
4763         (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
4764         (ASM_FILE_START): Only write out ecoff .file directive if
4765         emitting mdebug debugging.
4766
4767 2000-11-17  Richard Henderson  <rth@redhat.com>
4768
4769         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New.  Detect
4770         whether as accepts .file/.loc and produces dwarf2 line info.
4771         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
4772         the assembler supports it.
4773         * config.in, configure: Regenerate.
4774
4775 2000-11-17  Richard Henderson  <rth@redhat.com>
4776
4777         * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
4778
4779 2000-11-17  Jim Wilson  <wilson@redhat.com>
4780
4781         * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
4782         Don't clear need_barrier is next_insn is a CALL_INSN, or has
4783         instruction type B or UNKNOWN.
4784
4785 2000-11-17  Neil Booth  <neilb@earthling.net>
4786
4787         * cpperror.c (print_file_and_line): Don't display line number if 0.
4788
4789 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
4790
4791         * ggc.h: Delete ggc_add_string_root and ggc_mark_string.  Add
4792         digit_vector and digit_string.
4793         * stringpool.c (digit_vector): New.
4794         (ggc_alloc_string): Use digit_string.
4795
4796         * stmt.c (digit_strings): Delete.
4797         (init_stmt): Do not initialize digit_strings.
4798         (expand_asm_operands): Use ggc.h's digit_string macro.
4799         * toplev.c (mark_file_stack): Delete.
4800         (compile_file): Don't call init_tree_codes.
4801         (main): No need to make the file stack a GC root.
4802         * tree.c (init_tree_codes): Delete.
4803         * tree.h (init_tree_codes): Delete.
4804
4805         * c-lex.c: Don't include ggc.h.
4806         (mark_splay_tree_node, mark_splay_tree): Delete.
4807         (init_c_lex): No need to ggc_strdup string constant.  Don't add
4808         file_info_tree to GGC roots.
4809         (cb_enter_file, cb_rename_file): No need to ggc_strdup
4810         ip->nominal_fname.
4811
4812         * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
4813
4814         * dbxout.c (dbxout_init),
4815         dwarf2out.c (dwarf2out_line),
4816         ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
4817         varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
4818         xcoffout.c (xcoffout_source_file),
4819         i386.c (load_pic_register):
4820         Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
4821
4822         * except.c (create_rethrow_ref),
4823         profile.c (init_edge_profiler),
4824         toplev.c (compile_file),
4825         varasm.c (named_section, assemble_static_space,
4826         assemble_trampoline_template, output_constant_def, force_const_mem),
4827         i386.c (load_pic_register),
4828         ia64.c (ia64_encode_section_info),
4829         rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
4830         rs6000_emit_prologue, rs6000_emit_epilogue),
4831         rs6000.md (load_toc_aix_si, load_toc_aix_di):
4832         Change ggc_alloc_string (var, -1) to ggc_strdup (var).
4833
4834         * profile.c (output_func_start_profiler),
4835         tree.c (make_node),
4836         i386.c (load_pic_register): No need to ggc_strdup string constant.
4837
4838 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
4839
4840         * Makefile.in (config.status): Depend on config.gcc.
4841         * configure.in <for machine in $build $host $target>: Move
4842         contents of loop into config.gcc, removing autoconf quoting.
4843         Fix changequote bug for alpha*-*-vxworks*.
4844         * configure: Regenerate.
4845         * config.gcc: New.
4846
4847 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
4848
4849         * c-parse.in (if_prefix): Find the filename and line number at
4850         $-2 and $-1 respectively.
4851         * diagnostic.c (error_recursion): Add missing newline, use
4852         fputs, translate string.
4853
4854 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
4855
4856         * stringpool.c: New file.
4857         * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
4858         (ggc_alloc_string): Now in stringpool.o.
4859         * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
4860         * ggc.h: Delete prototype of ggc_add_string_root.  #define
4861         ggc_add_string_root and ggc_mark_string to nothing.  Prototype
4862         init_stringpool and stringpool_statistics.
4863         (ggc_alloc_string): Returns a const char *.
4864         * tree.c (hash_table, do_identifier_warnings): Delete.
4865         (init_obstacks): Don't initialize the identifier hash table.
4866         (get_identifier, maybe_get_identifier, start_identifier_warnings,
4867         set_identifier_size): Now in stringpool.c.
4868         * tree.h (struct tree_string): Constify pointer field.
4869         (approx_sqrt): Prototype.
4870
4871         * Makefile.in (stringpool.o): Add rule, mention in OBJS.
4872
4873         * toplev.c (approx_sqrt): New function.
4874         (compile_file): Call stringpool_statistics if mem_report is on.
4875         (main): Call init_stringpool.
4876
4877         * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
4878         (process_directive), c-typeck.c (constructor_asmspec, struct
4879         initializer_stack, start_init), except.c (create_rethrow_ref),
4880         stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
4881         (built_in_filename), varasm,c (in_named_name,
4882         assemble_static_space, struct constant_descriptor, struct
4883         deferred_string, struct pool_constant, force_const_mem),
4884         i386.c (pic_label_name, global_offset_table_name), rs6000.c
4885         (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
4886
4887         * c-common.c (combine_strings): Combine strings in scratch
4888         buffer, then pass to build_string.
4889         * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
4890         output_func_start_profiler), stmt.c (init_stmt), alpha.c
4891         (alpha_need_linkage), arm.c (arm_encode_call_attribute),
4892         i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
4893         rs6000.c (rs6000_encode_section_info): Create string in
4894         scratch buffer, then pass to ggc_alloc_string.
4895
4896         * stmt.c (expand_asm_operands): If we must adjust the
4897         constraint strings, do so by creating a new one, not by
4898         modifying the old one in place.  Constify some char *s.
4899         * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
4900         argument.  Create string in scratch buffer, then pass to
4901         ggc_alloc_string.
4902         * config/pa/pa-protos.h: Update prototype.
4903         * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
4904         hppa_encode_label takes only one argument.
4905
4906 2000-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4907
4908         * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
4909         malloc/realloc.
4910
4911         * cpplib.c (glue_header_name): Likewise.
4912
4913         * fixincl.c (run_compiles, start_fixer): Likewise.
4914
4915         * fixlib.c (load_file_data): Likewise.
4916
4917         * mkdeps.c (munge): Likewise.
4918
4919 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
4920
4921         * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
4922         trailing ';'.  Fix formatting.
4923
4924 2000-11-16  Jim Wilson  <wilson@redhat.com>
4925
4926         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
4927         Shift masks left by one to avoid conflict.
4928
4929         * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
4930         DECL_EXTERNAL set.
4931
4932 2000-11-16  Nick Clifton  <nickc@redhat.com>
4933
4934         * config/arm/arm.c (output_arm_prologue): Note nested functions.
4935         (arm_expand_prologue): For nested functions preserve the
4936         static chain register during stack frame creation.
4937
4938         * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
4939         (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
4940         with a stack frame there is a 4 byte gap between the arg
4941         pointer and the hard frame pointer (used to preserve the
4942         static chain register during stack frame creation).
4943
4944 2000-11-16  DJ Delorie  <dj@redhat.com>
4945
4946         * rtl.c (read_rtx): Provide suitable names for unnamed
4947         define_insn and define_insn_and_split patterns, based on file
4948         and line numbers.
4949
4950 2000-11-15  Neil Booth  <neilb@earthling.net>
4951
4952         * cpplib.c (start_directive, end_directive): New functions.
4953         (_cpp_handle_directive, run_directive): Use them.
4954         (_cpp_handle_directive): Don't -Wtraditional on indented
4955         null directives.
4956         (_cpp_push_buffer): Don't re-clear was_skipping.
4957         * cpplib.h (struct cpp_reader): New member la_saved.
4958         * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
4959         directives.
4960
4961         gcc.dg/cpp/_Pragma1.c: Update.
4962         gcc.dg/cpp/_Pragma2.c: New test.
4963
4964 2000-11-15  Mark Mitchell  <mark@codesourcery.com>
4965
4966         * toplev.c (wrapup_global_declarations): Don't write out
4967         artificial static variables that aren't needed.
4968
4969 2000-11-15  Bernd Schmidt  <bernds@redhat.co.uk>
4970
4971         * ia64.c (struct group): New structure.
4972         (last_group): New static array.
4973         (group_idx): New static variable.
4974         (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
4975         New static functions.
4976         (emit_insn_group_barriers): Initialize and keep track of group_idx
4977         and last_group.
4978         Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
4979         Replace all calls to emit_insn_after that emit a group barrier to use
4980         emit_group_barrier_after.
4981         * ia64.h (MASK_B_STEP): New.
4982         (other MASK_XXX macros): Renumbered.
4983         (TARGET_B_STEP): New.
4984         (TARGET_SWITCHES): Add -mb-step.
4985
4986 2000-11-15  Fred Fish  <fnf@be.com>
4987
4988         * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
4989         machines for which fixincludes is not needed.
4990         * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
4991
4992 2000-11-15  Jason Merrill  <jason@redhat.com>
4993
4994         * diagnostic.c (finish_abort): New fn.
4995         (fancy_abort, error_recursion): Use it.
4996         * toplev.c (crash_signal): Likewise.
4997         * diagnostic.h: Declare it.
4998
4999 2000-11-13  Andrew Haley  <aph@redhat.com>
5000
5001         * tree.c (build_type_no_quals): New function.
5002         * tree.h (build_type_no_quals): Declare.
5003         * c-common.c (c_get_alias_set): When considering type
5004         compatibility for pointer types, ignore cv-qualifiers anywhere in
5005         a pointer chain.
5006
5007 2000-11-15  Graham Stott  <grahams@redhat.com>
5008
5009         * regrename.c (scan_rtx_rtx): Skip to the next chain on
5010         encountering a terminated chain.
5011
5012 2000-11-14  Mark Mitchell  <mark@codesourcery.com>
5013
5014         * configure.in: Move check for V3 above check for C++ header-file
5015         directory.
5016         * configure: Regenerated.
5017
5018 2000-11-14  DJ Delorie  <dj@redhat.com>
5019
5020         * config/v850/v850.c: Remove obstacks.
5021
5022 Tue Nov 14 21:54:31 2000  Marek Michalkiewicz  <marekm@linux.org.pl> & Denis Chertykov  <denisc@overta.ru>
5023
5024         * config/avr/avr.c (avr_case_values_threshold): New.
5025         (avr_override_options): Set it depending on options, make it large
5026         when not optimizing to work around "unable to generate reloads".
5027
5028         * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
5029         (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
5030         executable if not AVR_MEGA.  Make sure jump tables are word-aligned.
5031         (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
5032         (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
5033         (avr_case_values_threshold): Declare as extern int.
5034         (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
5035
5036         * config/avr/avr.md (tablejump): Removed.
5037         (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
5038         (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
5039         index in the table, not multiplied by 2.
5040         (casesi): Change to match the above insns.  Always enable.
5041
5042         * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
5043         Change to expect the word address of the table, multiply it by 2
5044         here and not in the caller.  Change "adiw" to faster "inc".
5045
5046 2000-11-14  Neil Booth  <neilb@earthling.net>
5047
5048         * cppexp.c (parse_defined): Call cpp_get_token not
5049         _cpp_get_token.
5050         (lex): Similarly.
5051         * cpplex.c (cpp_output_line): Similarly.
5052         * cpplib.c (glue_header_name, do_line, do_ident,
5053         parse_answer, parse_assertion): Similarly.
5054         (_cpp_handle_diretive): Don't save to lookaheads
5055         when processing directives.
5056         * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
5057         _cpp_get_token.
5058         (funlike_invocation_p): Don't save to lookaheads
5059         when pre-expanding arguments.
5060         (_cpp_get_token): Delete.
5061         (cpp_get_token): Merge contents of _cpp_get_token.
5062
5063 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
5064
5065         * builtins.c (expand_builtin_setjmp): Set
5066         current_function_calls_setjmp.
5067         (expand_builtin_longjmp): Set current_function_calls_longjmp.
5068
5069         * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
5070         (do_builtin_setjmp_setup): New insn.
5071
5072 Tue Nov 14 12:34:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5073
5074         * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
5075         (int_fits_type_p): For variable bounds, call force_fit_type.
5076
5077 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
5078
5079         * varasm.c (struct deferred_string): New structure.
5080         (const_str_htab): New variable.
5081         (STRHASH): New macro.
5082         (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
5083         constr_str_htab_eq, const_str_htab_del): New functions.
5084         (output_constant_def): Add DEFER argument, defer string
5085         constants until mark_constant_pool time if requested.
5086         (mark_constant_pool): Walk the insn chain even if const_str_htab is
5087         not empty.
5088         (mark_constants): If a SYMBOL_REF for deferred string is found,
5089         output it and remove from hash table.
5090         (output_addressed_constants): Set DEFER to 0 in call to
5091         output_constant_def.
5092         * rtl.h (STRING_POOL_ADDRESS_P): Define.
5093         (output_constant_def): Adjust prototype.
5094         * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
5095
5096 2000-11-14  Chandrakala Chavva  <cchavva@redhat.com>
5097
5098         * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
5099         signed types if flag_trapv.
5100
5101 2000-11-14  Zack Weinberg  <zack@wolery.stanford.edu>
5102
5103         * tradcpp.c, tradcif.y: Update FSF mailing address, delete
5104         reference to GPLv1.
5105
5106 2000-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5107
5108         * c-common.h (CTI_C_SIZE_TYPE): Update comment.
5109
5110 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
5111
5112         * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
5113         to array of pool_constnat pointers.
5114         (struct pool_constant): Add next_sym and label members.
5115         (struct pool_sym): Remove.
5116         (init_varasm_status): Change pool_sym into pool_constant.
5117         (mark_pool_constant): Mark pc->label string as well.
5118         (mark_pool_sym_hash_table): Remove.
5119         (mark_varasm_status): Remove it from caller as well.
5120         (free_varasm_status): Don't free pool_sym structures.
5121         (force_const_mem): Don't allocate pool_sym structure, instead
5122         fill pool->label and chain it into rtx_sym hash table.
5123         (find_pool_constant, mark_constant_pool): Use pool_constant instead
5124         of pool_sym.
5125
5126 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
5127
5128         * reload1.c (emit_input_reload_insns): Honour forcing of constants
5129         into memory by PREFERRED_RELOAD_CLASS NO_REGS.
5130
5131 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
5132
5133         * dominance.c: New file.
5134         * Makefile.in (OBJS): Add dominance.o.
5135
5136         * flow.c (compute_flow_dominators): Remove.
5137         (compute_immediate_dominators): Remove.
5138         (compute_immediate_postdominators): Remove.
5139         * basic-block.h: Remove their prototypes.
5140         (calculate_dominance_info): Add prototype.
5141
5142         * dce.c (eliminate_dead_code): Change calls to above functions.
5143         Don't compute dominators but only immediate dominators.
5144         * flow.c (flow_loops_find): Change callers.
5145         * gcse.c (compute_code_hoist_data): Likewise.
5146         * haifa-sched.c (schedule_insns): Likewise.
5147         * ifcvt.c (if_convert): Likewise.
5148         * ssa.c (convert_to_ssa): Likewise, and only compute immediate
5149         dominators.
5150
5151 2000-11-14  Richard Henderson  <rth@redhat.com>
5152
5153         * stmt.c (warn_if_unused_value): Don't warn if the expression
5154         has side effects.
5155
5156         * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
5157         (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
5158
5159 2000-11-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5160
5161         * loop.c (basic_induction_var): Revert accidental checkin.
5162
5163 2000-11-13  Hans-Peter Nilsson  <hp@axis.com>
5164
5165         * c-lex.c (cb_leave_file): Harmonize conditions and order of
5166         statements to those of process_directive for (action == act_pop).
5167
5168         * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
5169
5170         * local-alloc.c (equiv_init_movable_p): References to CC0 are not
5171         movable.
5172
5173 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5174
5175         * c-parse.in (stmts_and_decls): Deprecate use of label at end of
5176         compound statement.
5177
5178 2000-11-13  Neil Booth  <neilb@earthling.net>
5179
5180         * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
5181         cases return without MI check.
5182         * cpplib.c (do_diagnostic): Take boolean of whether to
5183         print the directive name.
5184         (do_error, do_warning): Update.
5185         (do_pragma_dependency): Use it.
5186         * cpplib.h (VARARGS_FIRST): Delete.
5187         (struct cpp_token): Delete integer.
5188         * cppmacro.c (enter_macro_context): Move disabled check
5189         to _cpp_get_token.
5190         (_cpp_get_token): Simplify into a single loop.
5191
5192 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
5193
5194         * configure.in:  Use 'test -f' not '[ -e'.
5195         * configure: Regenerated.
5196
5197 2000-11-13  DJ Delorie  <dj@redhat.com>
5198
5199         * config/mn10300/mn10300.md (store_movm): Note which registers are
5200         really used or clobbered.
5201
5202 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5203
5204         * c-parse.in (ends_in_label): Remove from %union and %type.
5205         (decls, stmts, lineno_stmt_or_labels, xstmts,
5206         lineno_stmt_or_label, stmt_or_label): Remove.
5207         (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
5208         lineno_stmt_decl_or_labels_ending_decl,
5209         lineno_stmt_decl_or_labels_ending_label,
5210         lineno_stmt_decl_or_labels_ending_error,
5211         lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
5212         lineno_stmt, lineno_label): New.
5213         (compstmt_nostart): Use compstmt_contents_nonempty.
5214
5215 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5216
5217         * c-common.c (boolean_increment): New function.
5218         * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
5219         CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
5220         (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
5221         (boolean_increment): Declare.
5222         * c-convert.c (convert): Allow for BOOLEAN_TYPE.
5223         * c-decl.c (init_decl_processing): Create boolean nodes.
5224         (finish_struct): Allow for _Bool bitfields.
5225         * c-parse.in (reswords): Add _Bool.
5226         (rid_to_yy): Allow for RID_BOOL.
5227         * c-typeck.c (default_conversion): Make booleans promote to int.
5228         (convert_arguments, build_unary_op, build_modify_expr,
5229         convert_for_assignment): Allow for booleans.
5230         * ginclude/stdbool.h: Make conforming to C99.
5231
5232 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5233
5234         * c-parse.in (c99_block_start, c99_block_end,
5235         c99_block_lineno_labeled_stmt): New.
5236         (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
5237         (stmt): Split off selection and iteration statements into...
5238         (select_or_iter_stmt): New.  Use c99_block_lineno_labeled_stmt.
5239
5240 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5241
5242         * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
5243         -time): Update.
5244
5245 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
5246
5247         * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
5248         Rewrite to avoid use of match_dup.  Don't try to tie registers that
5249         are not in the same mode.
5250
5251 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5252
5253         * invoke.texi: Update lists of languages and suffixes supported.
5254
5255 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5256
5257         * configure.in: Take toplevel configure arguments from the
5258         environment to create configargs.h and substitute
5259         gcc_config_arguments, taking account of any existing configargs.h
5260         if reconfiguring.
5261         * configure: Regenerate.
5262         * gccbug.in: Include toplevel configure arguments in gccbug.
5263
5264 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
5265
5266         * varasm.c (struct constant_descriptor): Put CONTENTS inside a
5267         union to make it well-aligned.  Update all uses.
5268
5269 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5270
5271         * c-parse.in (initelt): Give appropriate pedantic warnings,
5272         depending on flag_isoc99, for non-ISO syntax and for C99 syntax
5273         outside C99 mode.
5274         (designator): If pedantic, pedwarn for a designator specifying a
5275         range of elements.
5276         * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
5277         these cases.
5278         * extend.texi: Document the C99 syntax as the preferred syntax,
5279         and the pre-2.5 syntax as obsolete.  Mention use of designator
5280         lists for nested subobjects.
5281
5282 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5283
5284         * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
5285         Add ATTRIBUTE_PRINTF.
5286         * tradcpp.c (v_message, warning, error, fatal, error_with_line):
5287         Add ATTRIBUTE_PRINTF*.
5288
5289 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
5290
5291         * function.c (assign_parms): When calling put_var_into_stack, make
5292         sure that there are no hidden pending sequences.
5293
5294 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5295
5296         * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
5297         BUILT_IN_RINDEX.  Add missing checks for BUILT_IN_STRCHR and
5298         BUILT_IN_STRRCHR.
5299
5300         * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
5301
5302         * c-common.c (c_common_nodes_and_builtins): Declare index and
5303         rindex when nonansi builtins are allowed.
5304
5305         * extend.texi (index, rindex): Document new builtins.
5306
5307 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
5308
5309         * configure.in: Turn on libstdc++ V3 by default.
5310         * configure: Regenerated.
5311
5312         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
5313
5314 2000-11-12  Jakub Jelinek  <jakub@redhat.com>
5315
5316         * reload1.c (set_label_offsets): Go inside of PARALLELs.
5317
5318 2000-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
5319
5320         * invoke.texi: Clean up option summary.
5321
5322 2000-11-12  Nick Clifton  <nickc@redhat.com>
5323
5324         * config/mcore/mcore.c: Fix comment formating, and adjust sequence
5325         of #include headers.
5326
5327 2000-11-12  Marc Espie <espie@openbsd.org>
5328
5329         * configure.in: Fix filds test.
5330         * configure: Regen.
5331
5332 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
5333
5334         * jump.c (delete_computation): Don't assume that just becuase an
5335         instruction sets a register, that register is dead.
5336
5337 2000-11-12  Neil Booth  <neilb@earthling.net>
5338
5339         * cppexp.c: Don't worry about pfile->skipping.
5340         * cpplib.c (struct if_stack): Make was_skipping unsigned char.
5341         (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
5342         for handled directives.
5343         (skip_rest_of_line): Use _cpp_lex_token after popping contexts
5344         and releasing lookaheads.
5345         (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
5346         (do_else, do_elif, push_conditional): Update logic.
5347         (do_endif): Set buffer->was_skipping rather than pfile->skipping.
5348         (unwind_if_stack): Inline into cpp_pop_buffer.
5349         (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
5350         * cpplex.c (_cpp_lex_token): Clear skipping on EOF.  Handle
5351         multiple-include optimisation.
5352         * cpplib.h (struct cpp_buffer): New member was_skipping.
5353         * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping.  This
5354         works because skipping == 0 in directives.
5355         (_cpp_release_lookahead): Renamed from release_lookahead.
5356         (cpp_get_token): No need to check skipping as _cpp_get_token does
5357         this for us.  No need to handle MI optimisation.
5358
5359 Sat Nov 11 21:14:02 2000  Mark P Mitchell  <mark@codesourcery.com>
5360
5361         * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
5362         declarations that use `__MATH_EXCEPTION' in their prototypes, too.
5363         * fixinc/fixincl.x: Regenerated.
5364
5365 2000-11-11  Bruce Korb  <bkorb@gnu.org>
5366
5367         * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
5368         (avoid_wchar_t_type): ditto
5369         * fixinc/fixinc.irix: obsoleted
5370
5371 2000-11-11  Zack Weinberg  <zack@wolery.stanford.edu>
5372
5373         * configure.in: Don't add $outputs to all_lang_makefiles.  Add
5374         $srcdir/$s/Makefile.in if it exists.
5375         * configure: Regenerate.
5376
5377 Sat Nov 11 18:41:20 2000  Mark P Mitchell  <mark@codesourcery.com>
5378
5379         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
5380
5381 2000-11-11  Jason Merrill  <jason@redhat.com>
5382
5383         * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
5384         give the parm a register and then call put_var_into_stack.
5385         * stmt.c (expand_decl): Likewise.
5386
5387 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5388
5389         * gcc.texi: Adjust wording.
5390
5391 2000-11-11  Mark Mitchell  <mark@codesourcery.com>
5392
5393         * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
5394         * fininc/fixincl.x: Regenerated.
5395
5396 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5397
5398         * invoke.texi: Correct spelling of -foptimize-register-move.
5399
5400 2000-11-11  Neil Booth  <neilb@earthling.net>
5401
5402         Remove CPP_PLACEMARKERs.
5403
5404         * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
5405         * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
5406         * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
5407                    Similarly.
5408         * cpplib.h: Remove CPP_PLACEMARKER.
5409         (struct lexer_state): Rename skip_newlines to next_bol.
5410         * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
5411         Simplify prev_white handling as a result.
5412         (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
5413         (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
5414         (parse_args): Similarly.  Update argument count tests.
5415         (enter_macro_context): Return 2 to indicate an empty macro.
5416         (replace_args): Don't bother pre-expanding an empty argument.
5417         Handle placemarkers and ## extension during pre-expansion.
5418         (cpp_get_token): Handle empty macro expansions.  Don't worry
5419         about CPP_PLACEMARKERs.
5420         (_cpp_create_definition): Empty macros are now empty.
5421         (cpp_macro_defintion): Don't special case empty macros.
5422         * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
5423         * c-lex.c: Similarly.
5424
5425 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
5426
5427         * gcc.texi, invoke.texi: Add new section discussing language
5428         standards; link to it where appropriate; refer to ISO C instead of
5429         ANSI C.
5430
5431 2000-11-11  Alexandre Oliva  <aoliva@redhat.com>
5432
5433         * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
5434         into account.
5435
5436         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
5437         modes.
5438
5439 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5440
5441         * gcc.texi, gcov.texi: Update dates and version numbers.
5442
5443 2000-11-10  Zack Weinberg  <zack@wolery.stanford.edu>
5444
5445         * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.  Look for
5446         flex and bison, specifically, first in a unified build and
5447         then installed on the system.
5448         * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@.  Rename
5449         LEXFLAGS to FLEXFLAGS.  Adjust ORDINARY_FLAGS_TO_PASS to
5450         match.
5451
5452         (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
5453         cppdefault.o): Remove pointless sed munging of source file
5454         name.
5455
5456 2000-11-10  Bernd Schmidt  <bernds@redhat.co.uk>
5457
5458         * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
5459         for address reloads.  Push replacements for REG_INC notes.
5460         (regno_clobbered_p): New arg SETS.  Examine SETs if it's nonzero.  All
5461         callers changed.
5462         * reload1.c (choose_reload_regs): Registers set in the insn can't be
5463         used for RELOAD_OTHER reloads.
5464
5465 2000-11-10  Mark Mitchell  <mark@codesourcery.com>
5466
5467         * c-dump.h: New file.
5468
5469 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5470
5471         * alpha.c (check_float_value): Use memcpy, not bcopy.
5472         * arm.c (output_move_double): Likewise.
5473         * arm.md: Likewise.
5474         * m88k.c (legitimize_operand): Likewise.
5475         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
5476         * m88k.md: Likewise.
5477         * mips.c (override_options): Likewise.
5478         * mips.md: Likewise.
5479         * romp.c (output_fpops): Likewise.
5480         * rs6000.c (rs6000_override_options): Likewise.
5481         * sh.md: Likewise.
5482         * vax.c (check_float_value): Likewise.
5483
5484         * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
5485         * expmed.c (synth_mult): Likewise.
5486         * final.c (add_bb_string): Likewise.
5487         * genattr.c (main): Likewise.
5488         * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
5489         Likewise.
5490         * jump.c (thread_jumps): Likewise.
5491         * prefix.c (save_string): Likewise.
5492         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
5493         * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
5494         * reload1.c (reload, eliminate_regs): Likewise.
5495
5496 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5497
5498         * gcc.texi (Service): Update to reflect current practice and
5499         location of the GNU service directory.
5500
5501 2000-11-09  Bernd Schmidt  <bernds@redhat.co.uk>
5502
5503         * regrename.c (build_def_use): Mark contents of REG_INC notes as
5504         needing replacement.
5505
5506         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
5507         a no-op move if regs are equal.
5508         * toplev.c (rest_of_compilation): Do the noop moves elimination pass
5509         when calling jump after post-reload splitting.
5510
5511 2000-11-09  Jan van Male  <jan.vanmale@fenk.wau.nl>
5512
5513         * c-tree.texi: Fix typos.
5514         * extend.texi: Likewise
5515         * gcov.texi: Likewise
5516         * rtl.texi: Likewise
5517         * tm.texi: Likewise
5518
5519 2000-11-09  Hans-Peter Nilsson  <hp@axis.com>
5520
5521         * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
5522         in_system_header and flags[1] before dereferencing flags[2].
5523
5524 2000-11-09  Matthew Hiller <hiller@redhat.com>
5525
5526         * reload1.c (reload_combine): Fixed calculation of
5527         first_index_reg, last_index_reg.
5528
5529 2000-11-09  Mark Mitchell  <mark@codesourcery.com>
5530
5531         * c-dump.c (dequeue_and_dump): Dump function bodies.
5532
5533         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
5534         (c-dump.o): New target.
5535         * c-common.h (flag_dump_translation_unit): New variable.
5536         (C_TYPE_QUALS): New macro.
5537         (strip_array_types): New function.
5538         (DECL_C_BIT_FIELD): New macro.
5539         (SET_DECL_C_BIT_FIELD): Likewise.
5540         (CLEAR_DECL_C_BIT_FIELD): Likewise.
5541         (dump_info_p): New typedef.
5542         (dump_tree_fn): Likewise.
5543         (lang_dump_tree): New variable.
5544         (dump_node_to_file): New function.
5545         * c-common.c (flag_dump_translation_unit): Define it.
5546         (strip_array_types): New function.
5547         * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
5548         * c-lang.c (finish_file): Call dump_node_to_file if
5549         flag_dump_translation_unit.
5550         * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
5551         * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
5552         * c-dump.c: New file.
5553
5554 2000-11-09  Christopher Faylor <cgf@cygnus.com>
5555
5556         * config/i386/cygwin.h: Add mingw startfile prefix.
5557
5558 2000-11-09  Richard Henderson  <rth@redhat.com>
5559
5560         * flow.c (invalidate_mems_from_set): Split out from ...
5561         (mark_set_1): ... here.
5562         (try_pre_increment_1): Use it.  Use propagate_block_delete_insn
5563         instead of turning insn into a NOTE_INSN_DELETED.
5564
5565 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
5566
5567         * extend.texi, invoke.texi: Move documentation of builtin versions
5568         of C library functions to one place and update.
5569
5570 2000-11-09  Richard Henderson  <rth@redhat.com>
5571
5572         * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
5573         the types themselves to discover type equivalence.
5574
5575 2000-11-09  Mike Stump  <mrs@wrs.com>
5576
5577         * Makefile.in (distclean): Remove a few extra leftovers.
5578
5579 2000-11-09  Richard Henderson  <rth@redhat.com>
5580
5581         * recog.c (validate_replace_rtx_1): Consider subregs when
5582         replacing a register with a constant inside a sign/zero_extend.
5583
5584         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5585
5586 2000-11-09  Geoffrey Keating  <geoffk@redhat.com>
5587
5588         * c-decl.c (finish_struct): When a structure is completed,
5589         check all its variant types for completeness.
5590
5591 2000-11-09  Neil Booth  <neilb@earthling.net>
5592
5593         * cpphash.c: Move cpp_defined here from cpplib.c.
5594         * cpplib.c: Update comments, move cpp_defined to cpphash.c.
5595         * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
5596         * cppmacro.c (cpp_get_token): Update comments, no need now
5597         to catch the CPP_EOF meaning EOL case.
5598
5599 2000-11-08  Geoffrey Keating  <geoffk@redhat.com>
5600
5601         * config/sparc/sparc.c (sparc_va_arg): When the required alignment
5602         is more than that provided, copy to a temporary.
5603
5604 2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
5605
5606         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
5607         interpreting $out as a macro assignment.
5608         * Makefile.in (T_TARGET): New auxiliary macro and target.
5609         (all): Add a target right in the beginning, so that we don't build
5610         T_TARGET by default.
5611
5612 2000-11-09  Graham Stott  <grahams@redhat.com>
5613
5614         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
5615         order for -mintel-syntax.  Remove comment now that the operand
5616         order has been checked.
5617         (mmx_pextrw): Likewise.
5618         (mmx_pshufw): Likewise.
5619
5620 2000-11-09  Jakub Jelinek  <jakub@redhat.com>
5621
5622         * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
5623         (c_getstr): New function.
5624         (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
5625         If both arguments are constant string, optimize out.
5626         (expand_builtin_strchr, expand_builtin_strrchr): New functions.
5627         (expand_builtin_strpbrk): Use c_getstr, do nothing if
5628         -fcheck-memory-usage.
5629         (expand_builtin_fputs): Likewise.
5630         (expand_builtin_strcmp): Add MODE argument.
5631         Use even if !HAVE_cmpstrsi.
5632         Optimize the case when both arguments are constant strings.
5633         (expand_builtin): Adjust expand_builtin_strcmp caller.
5634         Call expand_builtin_strchr and expand_builtin_strrchr.
5635         * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
5636         builtins.
5637         * builtins.def (BUILT_IN_STRRCHR): Add.
5638
5639 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5640
5641         * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
5642
5643 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
5644
5645         * calls.c (expand_call, emit_library_call_value_1), collect2.c
5646         (scan_prog_file), config/a29k/a29k.c (print_operand),
5647         config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
5648         instead of bcopy ().
5649         * real.h: Use memcmp () instead of bcmp ().
5650         * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
5651         (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
5652         ultrasparc_sched_init, ultrasparc_sched_reorder),
5653         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
5654         instead of bzero ().
5655         * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
5656         instead of rindex ().
5657         * configure.in: Don't check for bzero, bcmp, index or rindex.
5658         * configure, config.in: Regenerate.
5659         * system.h: Don't include declarations for bzero, bcmp, index or
5660         rindex.
5661         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
5662         bzero, bcmp, index or rindex.
5663
5664 Wed Nov  8 21:58:20 2000  Christopher Faylor <cgf@cygnus.com>
5665
5666         * config/i386/cygwin.h: Add -no-win32 switch.  Separate -mno-cygwin
5667         include and library paths from -mcygwin case.  Parameterize some
5668         declarations to avoid warnings.  Use standard locations for include and
5669         lib dirs.
5670
5671 2000-11-08  Nick Clifton  <nickc@redhat.com>
5672
5673         * config/arm/arm.md (mulsidi3adddi): Change output operand
5674         constraint from "=&" to "+&".
5675         (umulsidi3adddi): Change output operand constraint from "=&" to
5676         "+&".
5677
5678 2000-11-08  Richard Henderson  <rth@redhat.com>
5679
5680         * flow.c (init_propagate_block_info): Protect the rtx stored in
5681         mem_set_list from modification by find_auto_inc.
5682         (mark_set_1): Likewise.
5683
5684 2000-11-08  Neil Booth  <neilb@earthling.net>
5685
5686         Move directive handling into the lexer itself.
5687
5688         * cpplex.c (_cpp_lex_token): Handle directives directly.
5689         In the case of a directive interrupting a function-like
5690         macro invocation, use extra_char since read_ahead is
5691         used to store the '#'.  Return a CPP_EOF in this case.
5692         * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
5693         (cpp_get_token): Don't handle directives here.
5694         * cpplib.h: Remove CPP_DHASH token type.
5695
5696 Wed Nov  8 21:53:41 MET 2000  Jan Hubicka  <jh@suse.cz>
5697
5698         * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
5699         formed using PRE_MODIFY too.
5700
5701 2000-11-08  Mark Mitchell  <mark@codesourcery.com>
5702
5703         * c-tree.texi (VAR_DECL): Describe representation of GCC's
5704         extension for placing variables in particular registers.
5705
5706         * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
5707         unprototyped C functions with no parameters.
5708
5709 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
5710
5711         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
5712         before passing to fprintf.
5713
5714 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
5715
5716         * function.c (expand_function_start): Cast GET_MODE_SIZE to
5717         HOST_WIDE_INT before negating it.
5718
5719 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
5720
5721         * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
5722         passed in multiple non-contiguous locations.
5723
5724 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5725
5726         * README.gnat: Remove file.
5727
5728 2000-11-08  Alexandre Oliva  <aoliva@redhat.com>
5729
5730         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
5731         in-place.
5732
5733 2000-11-07  Richard Henderson  <rth@redhat.com>
5734
5735         * dwarfout.c (INSN_LABEL_FMT): Remove.
5736         (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
5737         (dwarfout_label): Remove.
5738         * dwarfout.h: Remove it's prototype.
5739         * dwarf2out.c (INSN_LABEL_FMT): Remove.
5740         (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
5741         (dwarf2out_label): Remove.
5742         * dwarf2out.h: Remove it's prototype.
5743         * final.c (final_scan_insn): Don't call dwarf[2]out_label.
5744
5745 2000-11-07  Richard Henderson  <rth@redhat.com>
5746
5747         * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
5748         search on the unwind region section.
5749
5750         * config/ia64/ia64.md (movbi): Add r/r alternative.
5751         (cmovdi_internal_astep): Describe all combinations of register
5752         classes for sources & destinations; remove matching constraints.
5753         (cmovdi_internal): Likewise.
5754
5755         * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
5756
5757 2000-11-07  Richard Henderson  <rth@redhat.com>
5758
5759         * c-lang.c (start_cdtor, finish_cdtor): New functions.
5760         (finish_file): Use them in building constructor/destructor functions.
5761
5762         * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
5763         LD_FINI_SWITCH): Move ...
5764         * config/alpha/osf.h: ... here.
5765         * config/alpha/alpha-interix.h: Don't undef them.
5766
5767 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
5768
5769         * config/mips/t-iris6 (FPBIT): New.  Added so that __unorddf2 is
5770         included in libgcc.a.
5771         (DPBIT): Likewise.
5772         (dp-bit.c): Likewise.
5773         (fp-bit.c): Likewise.
5774
5775 2000-11-07  Nick Clifton  <nickc@redhat.com>
5776
5777         * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
5778         (INTERNAL_ASM_OP): Add missing tab.
5779
5780 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5781
5782         * alias.c (init_alias_analysis), calls.c (expand_call,
5783         emit_library_call_value_1), combine.c (init_reg_last_arrays),
5784         cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
5785         (init_output_buffer, set_diagnostic_context), dwarf2out.c
5786         (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
5787         (init_emit_once), fold-const.c (mul_double, div_and_round_double),
5788         function.c (assign_parms), gcse.c (compute_can_copy,
5789         alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
5790         compute_hash_table, compute_set_hash_table,
5791         compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
5792         (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
5793         clear_units, schedule_block), integrate.c (initialize_for_inline,
5794         expand_inline_function), jump.c (thread_jumps), local-alloc.c
5795         (local_alloc), loop.c (combine_movables, count_loop_regs_set,
5796         load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
5797         regclass.c (init_reg_sets, init_reg_sets_1, regclass,
5798         record_reg_classes, allocate_reg_info), reload.c
5799         (get_secondary_mem, remove_address_replacements, find_reloads),
5800         reload1.c (reload, set_initial_label_offsets, finish_spills,
5801         reload_as_needed, choose_reload_regs_init,
5802         reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
5803         (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
5804         (rename_registers), stmt.c (expand_end_case), unroll.c
5805         (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
5806         () instead of bzero ().
5807
5808 2000-11-07  Neil Booth  <neilb@earthling.net>
5809
5810        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
5811
5812 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5813
5814         * c-common.c (combine_strings): Only warn about long strings for C.
5815
5816 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
5817
5818         * combine.c (distribute_notes): Fix typo in last change.
5819
5820 2000-11-07  Geoff Keating  <geoffk@redhat.com>
5821
5822         * config/rs6000/rs6000.md (movdi_internal32+1): Use
5823         operand_subreg_force rather than gen_rtx_SUBREG.
5824         (movdi_internal32+2): Likewise.
5825
5826 2000-11-07  Philip Blundell  <philb@gnu.org>
5827
5828         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
5829         * config/arm/linux-aout.h: Likewise.
5830         * configure: Regenerate.
5831
5832 2000-11-07  Philipp Thomas  <pthomas@suse.de>
5833
5834         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
5835         accepted my the gettext maintainer.
5836
5837 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5838
5839         * builtins.c (expand_builtin_strpbrk): New function.
5840         (expand_builtin): Handle BUILT_IN_STRPBRK.
5841
5842         * builtins.def (BUILT_IN_STRPBRK): New entry.
5843
5844         * c-common.c (c_common_nodes_and_builtins): Declare builtin
5845         strpbrk.
5846
5847 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
5848
5849         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
5850         * POTFILES.in: Add config/alpha/freebsd.h
5851         * configure.in: Add alpha*-freebsd support.
5852         * configure: Regenerate.
5853
5854 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5855
5856         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
5857         copy of ptr_type_node rather than ptr_type_node itself.
5858
5859 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
5860
5861         * combine.c (recog_for_combine): Allocate uninitialized vector with
5862         rtvec_alloc.
5863         * recog.c (apply_change_group): Likewise.
5864
5865 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
5866
5867         * flow.c (verify_local_live_at_start): Back out last change.
5868         * combine.c (distribute_notes): When parts of a hard reg are
5869         neither set nor referenced in PLACE, search backwards for a
5870         place to put a REG_UNUSED note; if none found, ask for flow
5871         info refresh.
5872
5873 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
5874
5875         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
5876         with (clobber (match_scratch...)).
5877
5878 2000-11-06  Neil Booth  <neilb@earthling.net>
5879
5880         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
5881         error status.
5882
5883 2000-11-06  Neil Booth  <neilb@earthling.net>
5884
5885         * tradcpp.c (special_symbol): Assign an null string rather
5886         than writing to an unallocated buffer.
5887
5888 2000-11-06  Neil Booth  <neilb@earthling.net>
5889
5890         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
5891         CPP_MACRO_ARG case.
5892
5893 2000-11-06  Neil Booth  <neilb@earthling.net>
5894
5895         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
5896         tok.val.arg_no as appropriate.
5897         * cppexp.c (lex): Similarly.
5898         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
5899         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
5900         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
5901         cpp_macro_definition): Similarly.
5902         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
5903
5904 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
5905
5906         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
5907         operands[1] is constant, calculate the sum and generate movdi.
5908         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
5909         (subsi3): Use SImode in call to arith_4096_operand.
5910
5911 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
5912
5913         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
5914         adjust %o1, not %o0 if the return type is large structure.
5915
5916 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
5917
5918         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
5919         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
5920
5921 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
5922
5923         * expmed.c (expand_divmod): For signed divide by 2, prefer
5924         a branch and fewer shifts if branches are very cheap.
5925
5926 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
5927
5928         * Makefile.in: Remove all targets related to building
5929         distributions and diffs, or INSTALL.
5930         * INSTALL, install1.texi: Remove.
5931         * configure.in: Remove mention of distdir.
5932         * configure: Regenerate.
5933         * objc/Make-lang.in: Remove mention of distdir.
5934
5935 2000-11-04  Neil Booth  <neilb@earthling.net>
5936
5937         * cpp.texi: Update for _Pragma.
5938
5939 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5940
5941         * gcc.texi (Contributing): Update URL for projects web page.
5942
5943 2000-11-04  Neil Booth  <neilb@earthling.net>
5944
5945         * cpplex.c (parse_string): Don't allow multiline strings in
5946         #include family directives.
5947
5948 2000-11-04  Neil Booth  <neilb@earthling.net>
5949
5950         * cpplib.c (do_line): Only warn pedantically if not reading
5951         preprocessed input.
5952
5953 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
5954
5955         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
5956         RETURN_POPS_ARGS().
5957
5958 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
5959
5960         * builtins.c (expand_builtin_strlen): Remove unused mode
5961         argument.
5962         * gcc.c (process_command): Remove unused variable.
5963         * fold-const.c: Include expr.h.
5964         * recog.c: Include reload.h.
5965         * Makefile.in (recog.o, fold-const.o): Update deps.
5966
5967 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
5968
5969         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
5970
5971 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
5972
5973         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
5974         handling.
5975         (STARTFILE_SPEC): Likewise.
5976         (LINK_SPEC): Likewise.
5977
5978 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5979
5980         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
5981         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
5982         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
5983
5984 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
5985
5986         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
5987         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
5988         perm_calloc, get_identifier, maybe_get_identifier,
5989         real_value_from_int_cst, simple_cst_equal), varasm.c
5990         (assemble_name, assemble_real, immed_real_const_1,
5991         compare_constant_1, decode_rtx_const, output_constant_pool): Use
5992         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
5993         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
5994         bzero ().
5995
5996 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
5997
5998         * cppfiles.c (open_file): If already read, then don't reopen.
5999         Immediately close an empty file.
6000
6001 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
6002
6003         * expr.h (fold_builtin): Move declaration...
6004         * tree.h (fold_builtin): ... here.
6005
6006 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
6007
6008         * flow.c (verify_local_live_at_start): Allow hard regs to die.
6009
6010 2000-11-02  Neil Booth  <neilb@earthling.net>
6011
6012 config:
6013         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
6014         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
6015         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
6016         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
6017         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
6018         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
6019         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
6020         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
6021         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
6022         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
6023         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
6024         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
6025         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
6026         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
6027         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
6028         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
6029         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
6030         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
6031         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
6032         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
6033         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
6034         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
6035         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
6036         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
6037         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
6038         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
6039         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
6040         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
6041         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
6042         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
6043         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
6044         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
6045         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
6046         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
6047         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
6048         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
6049         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
6050         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
6051         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
6052         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
6053         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
6054         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
6055         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
6056         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
6057         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
6058         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
6059         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
6060         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
6061         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
6062         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
6063         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
6064         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
6065         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
6066         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
6067         vax/vaxv.h, vax/vms.h, we32k/we32k.h
6068
6069         Replace -A() with -A=, the new assertion syntax.
6070
6071 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
6072
6073         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
6074         elim_i1.
6075         In REG_DEAD handling: When handling parts of multi-hard-reg hard
6076         registers, increment the loop counter by the size of the parts;
6077         use recursion to handle individual parts.
6078
6079 2000-11-02  Neil Booth  <neilb@earthling.net>
6080
6081         * configure.in: Make integrated CPP the default.
6082         * configure: Regenerate.
6083
6084 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
6085
6086         * reload.c (find_equiv_reg): Test all hard registers for membership
6087         in the requested class.
6088
6089 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6090
6091         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
6092         process_command, main), gcov.c (open_files, output_data), tlink.c
6093         (frob_extension, scan_linker_output), toplev.c
6094         (file_name_nondirectory): Use strchr () and strrchr () instead of
6095         index () and rindex ().
6096
6097 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6098
6099         * c-common.c (get_flag_spec, check_format_info_main,
6100         check_format_types): Use strchr () instead of index ().  Compare
6101         against error_mark_node instead of comparing the TREE_CODE against
6102         ERROR_MARK.
6103
6104 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
6105
6106         Integrated CPP.
6107
6108         * c-lex.c (init_c_lex): Update cpp_start_read call.
6109         (cb_ident): Update for new callback prototype.
6110         (cb_def_pragma): Update for new cpp_get_token prototype.
6111         (c_lex): Similarly.  Use cpp_get_line.
6112
6113         * c-parse.in (finish_parse): Update for new cpp_finish
6114         prototype.
6115
6116         * cp/lex.c (finish_parse): Similarly.
6117
6118 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
6119
6120         * machmode.def: Add V16QImode.
6121
6122 2000-11-01  Richard Henderson  <rth@redhat.com>
6123
6124         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
6125         from rtl_for_decl_location.
6126         (add_location_or_const_value_attribute): Likewise.
6127
6128 2000-11-01  Neil Booth  <neilb@earthling.net>
6129
6130         * cpplib.c (run_directive): Use correct line number for output
6131         of _Pragma.  Remember any in-progress directive.
6132
6133         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
6134
6135 2000-11-01  Richard Henderson  <rth@redhat.com>
6136
6137         * stmt.c (expand_start_null_loop): Set continue_label.
6138
6139 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
6140
6141         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
6142         (expand_builtin_constant_p): Move parts of the code into
6143         fold_builtin_constant_p.
6144         (expand_builtin_strlen): Move parts of the code into fold_builtin.
6145         * expr.h (fold_builtin): Declare.
6146         * fold-const.c (fold): Handle builtin calls.
6147
6148         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
6149
6150 2000-11-01  Richard Henderson  <rth@redhat.com>
6151
6152         * stmt.c (expand_start_null_loop): New.
6153         (expand_end_null_loop): New.
6154         * c-semantics.c (genrtl_do_stmt): Use them.
6155         * tree.h: Declare them.
6156
6157 2000-11-01  Richard Henderson  <rth@redhat.com>
6158
6159         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
6160
6161 2000-11-01  Neil Booth  <neilb@earthling.net>
6162
6163         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
6164         * cp/spew.c: Similarly.
6165         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
6166         * cppmacro.c (stringify_arg): Similarly.
6167         * cpplib.h (CPP_BACKSLASH): Delete.
6168
6169 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6170
6171         * builtins.c (expand_builtin_strstr): New function.
6172         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
6173
6174         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
6175
6176         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
6177         and builtin strchr.
6178
6179 2000-10-31  Richard Henderson  <rth@redhat.com>
6180
6181         * config/i386/i386.c (fcmov_comparison_operator): Check for
6182         CCFPmode or CCFPUmode instead of CCmode.
6183         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
6184         unordered operations as well.
6185
6186 2000-10-31  Richard Henderson  <rth@redhat.com>
6187
6188         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
6189         of integer_zero_node.
6190
6191 2000-10-31  Richard Henderson  <rth@redhat.com>
6192
6193         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
6194
6195 2000-10-31  Nick Clifton  <nickc@redhat.com>
6196
6197         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
6198         -fdata-sections to override the section attribute of a DECL.
6199
6200 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
6201
6202         * libgcc2.c (__shtab): Remove __shtab variable.
6203         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
6204         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
6205         members.
6206
6207 2000-10-31  Jim Wilson  <wilson@redhat.com>
6208
6209         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
6210         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
6211         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
6212         instead of ASM_OUTPUT_INTERNAL_LABEL.
6213         (dwarf2out_end_block, dwarf2out_label): Likewise.
6214         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
6215         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
6216
6217 2000-10-31  Richard Henderson  <rth@redhat.com>
6218
6219         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
6220         (size_of_locs): Set it.
6221         (output_loc_operands): Use it to compute branch displacement.
6222         (int_loc_descriptor): New.
6223         (mem_loc_descriptor): Dereference memory in the proper size.
6224         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
6225         (loc_descriptor_from_tree): New.
6226         (rtl_for_decl_location): Break out from ...
6227         (add_location_or_const_value_attribute): ... here.
6228         (add_bound_info): Use loc_descriptor_from_tree.
6229
6230 2000-10-31  Neil Booth  <neilb@earthling.net>
6231
6232         * cpp.texi: Update for new command line assertion syntax.
6233         * cpplib.c (cpp_define): Simplify a bit.
6234         (cpp_assert, cpp_unassert): Use handle_assertion.
6235         (handle_assertion): New function; accept new command line
6236         syntax with '='.
6237         * testsuite/gcc.dg/cpp/assert3.c: New tests.
6238
6239 2000-10-31  Neil Booth  <neilb@earthling.net>
6240
6241         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
6242         undefined.  Remove #ifdef check.
6243         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
6244         Define STDC_0_IN_SYSTEM_HEADERS to 1.
6245
6246 2000-10-31  Jan Hubicka  <jh@suse.cz>
6247             Jakub Jelinek  <jakub@redhat.com>
6248
6249         * config/i386/i386.h: Clarify CCNOmode description in comment.
6250         (EXTRA_CC_MODES): Remove CCRCmode.
6251         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
6252         (put_condition_code, ix86_match_ccmode): Likewise.
6253         (ix86_cc_mode): Likewise.  Fix comment.
6254         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
6255         * config/i386/i386.md: Add unspec 12 description.
6256         (adddi3 split): Use unspec 12 instead of CCRCmode.
6257         (addsi3_carry_rc): Remove.
6258         (addsi3_cc, addqi3_cc): New patterns.
6259         (addsi_3): Swap operands, match CCZmode.
6260         (addsi_4): Rewritten.
6261         (addsi_5): Renamed from addsi_6.
6262         (addsi_6): Removed.
6263         (addhi_3): Swap operands, match CCZmode.
6264         (addhi_4): Rewritten.
6265         (addhi_5): Renamed from addhi_6.
6266         (addhi_6): Removed.
6267         (addqi_3): Swap operands, match CCZmode.
6268         (addqi_4): Rewritten.
6269         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
6270         (subsi3_carry_rc): Removed.
6271         (iorqi_3): Use =q constraint for clobber.
6272         (xorqi_cc_2): Likewise.
6273         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
6274         (x86_movsicc_0_m1_rc): Removed.
6275         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
6276
6277 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
6278
6279         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
6280         and decrement of complex types.
6281
6282 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6283
6284         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
6285         builtin fputs, ensure we still evaluate the stream in case it
6286         has side-effects.
6287
6288 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
6289
6290         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
6291         to expand_shift.
6292
6293 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
6294
6295         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
6296         (fp_extended_operand, emit_fpscr_use): Likewise.
6297         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
6298         (fpul_operand): New function.
6299         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
6300         fp_extended_operand.  Add fpul_operand.
6301         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
6302         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
6303         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
6304         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
6305         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
6306         (divdf3_i): Likewise.
6307         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
6308         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
6309         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
6310         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
6311         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
6312
6313 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
6314
6315         * config/i386/i386.c (ix86_init_builtins): Correct return type
6316         building v4hi_ftype_v4hi_int_int tree node.
6317         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
6318         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
6319
6320         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
6321         for operand 1.
6322         (mmx__uavgv8qi3): Correct insn mnemonic.
6323         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
6324         (mmx_punpckhwd): Correct insn mnemonic.
6325         (mmx_punpckhdq): Likewise.
6326         (mmx_punpcklwd): Likewise.
6327         (mmx_punpckldq): Likewise.
6328         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
6329         Renumber case labels to match the _mm_prefetch constants defined in
6330         xmmintrin.h.
6331
6332         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
6333         if the splitter didn't emit new insns.
6334         Make sure we call cleanup_subreg_operands even when splitting the last
6335         insn in a basic block.
6336
6337         * invoke.texi (Debugging Options): Describe -do.
6338         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
6339         (dump_file): Likewise.
6340         (rest_of_compilation): Split .greg dump into .greg and .postreload.
6341
6342 2000-10-30  Neil Booth  <neilb@earthling.net>
6343
6344         * cppfiles.c (stack_include_file): Check for stacked contexts
6345         here.
6346         * cpphash.h (_cpp_do__Pragma): New prototype.
6347         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
6348
6349         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
6350         escaped newlines if !(buffer->from_stage3).
6351         (_cpp_lex_token): Warn about missing newlines iff
6352         !buffer->from_stage3.
6353
6354         * cpplib.c (get__Pragma_string, destringize,
6355         _cpp_do__Pragma): New functions.
6356         (run_directive): Set output_line for _Pragma to avoid line
6357         markers in output.  Set from_stage3 and prevent macro expansion
6358         for _Pragma and command-line options.  Check buffer exhaustion.
6359         (cpp_push_buffer): Don't check for stacked macro contexts, as
6360         this is perfectly legitimate for _Pragma.  Move the check to
6361         stack_include_file instead. Set from_stage3 iff buffer is
6362         preprocessed input.
6363
6364         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
6365         unsigned. New boolean from_stage3.
6366         (struct spec_nodes): Add n__Pragma.
6367
6368         * cppmacro.c (enter_macro_context): Flip sense of return value.
6369         (_cpp_get_token): Handle _Pragma operator.
6370
6371 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
6372
6373         * gcc.texi:  The C++ standard isn't "draft" anymore.
6374
6375 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
6376
6377         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
6378
6379 2000-10-29  Neil Booth  <neilb@earthling.net>
6380
6381         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
6382
6383 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
6384
6385         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
6386         fixinc/inclhack.def: Change comments mentioning C9X to refer to
6387         C99 instead.
6388
6389         * invoke.texi: Document that -V will only work for very similar
6390         versions of driver and compiler.
6391
6392 2000-10-29  Neil Booth  <neilb@earthling.net>
6393
6394         * cppmacro.c (_cpp_create_definition): Optimize the case of
6395         a macro defined to itself.
6396
6397 2000-10-29  Neil Booth  <neilb@earthling.net>
6398
6399         * cpplex.c (save_comment): Don't store new lines in C++ comments.
6400
6401 2000-10-29  Michael Hayes  <mhayes@redhat.com>
6402
6403         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
6404
6405 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
6406
6407         * cpphash.c (cpp_forall_identifiers): Add context variable
6408         for callback routine.
6409         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
6410         change.
6411         (main): Call cpp_forall_identifiers with null context.
6412         * cpplib.h (cpp_forall_identifiers): Update prototype.
6413
6414         * cppmain.c: Make `parse_in' and `print' static.
6415
6416 2000-10-28  Alan Modra <alan@linuxcare.com.au>
6417
6418         * c-decl.c (finish_function): Clear c_function_name_declared_p.
6419
6420 2000-10-28  Richard Henderson  <rth@redhat.com>
6421
6422         * regrename.c (scan_rtx_address): Frob action, not class,
6423         when trying to disable optimization.
6424
6425 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
6426
6427         * c-semantics.c (make_rtl_for_local_static): Don't clobber
6428         DECL_ASSEMBLER_NAME.
6429
6430 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
6431
6432         * configure.in: Determine and substitute gcc_version_full.
6433         * configure: Regenerate.
6434         * gccbug.in: Use it to give full version.  Don't allow
6435         confidential PRs.
6436
6437 2000-10-28  Richard Henderson  <rth@redhat.com>
6438
6439         * recog.c (split_all_insns): Run cleanup_subreg_operands
6440         after reload.
6441
6442         * regrename.c (regrename_optimize): Verify that all registers of
6443         a multiple register mode are available.
6444         (scan_rtx_address): Accept the mode of the address; all callers
6445         changed.
6446
6447         * cpplib.c (run_directive): Fix prototype.
6448
6449 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
6450
6451         * reload.c (find_reloads): Distinguish "wins" so that we know whether
6452         a given operand won because of a matching constraint or not; then use
6453         that information to compute goal_alternative_matched properly.
6454         * reload1.c (choose_reload_regs): Never set reload_override_in for an
6455         optional reload.
6456
6457         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
6458         accurate value for MULT.
6459         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
6460         2% or > 98% before using static branch prediction bits.
6461
6462 2000-10-28  Neil Booth  <neilb@earthling.net>
6463
6464         New macro expander.
6465
6466         * cpplib.c (struct answer): New.
6467         (struct if_stack): Use cpp_lexer_pos rather than line and col.
6468         Rename cmacro mi_cmacro.
6469         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
6470         IN_I): New directive and flags.
6471         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
6472         parse_answer, parse_assertion, find_answer): New functions.
6473         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
6474         (lex_macro_node): New function to replace parse_ifdef and
6475         get_define_node.
6476
6477         (_cpp_handle_directive): New function, combines _cpp_check_directive
6478         and _cpp_check_linemarker.
6479
6480         (do_define, do_undef, parse_include, do_include, do_import,
6481         do_include_next, read_line_number, do_line, do_ident, do_pragma,
6482         do_pragma_once, do_pragma_poison, do_pragma_dependency):
6483         Update for new token getting interface.
6484
6485         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
6486         : Update for new multiple-include optimisation technique.
6487         (do_elif): Don't forget to invalidate controlling macros.
6488
6489         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
6490         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
6491         Functions to handle assertions with the new token interface.
6492         (do_assert, do_unassert): Use them.
6493
6494         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
6495         Use run_directive.
6496
6497         (_cpp_init_stacks): Register directive names.  Don't register special
6498         nodes.
6499
6500         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
6501         new position recording regime.
6502         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
6503         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6504         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
6505         (cpp_type2name): Move to cpplex.c.
6506
6507         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
6508         (parse_defined): Update to handle new multiple include optimisation
6509         method.  Remove poisoned identifier warning.
6510         (parse_assertion, TYPE_NAME): Delete.
6511         (lex): Update for multiple include optimisation, removal of
6512         CPP_DEFINED, to use _cpp_test_assertion for assertions and
6513         cpp_token_as_text.
6514         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
6515         (op_as_text): New function, to wrap cpp_token_as_text.
6516
6517         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
6518         Update for MI optimisation.
6519         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
6520         segfault on diagnostic.
6521         (_cpp_compare_file_date): Take a token rather than 3 args.
6522         (cpp_read_file): Work correctly for zero-length files.
6523
6524         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
6525         _cpp_init_hashtable and _cpp_cleanup_hashtable.
6526         (cpp_lookup): Place identifiers at front of identifier pool
6527         for _cpp_lookup_with_hash.
6528         (_cpp_lookup_with_hash): Require identifiers to be at the front of
6529         the identifier pool.  Commit the memory if not already in the
6530         hash table.
6531
6532         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
6533         Initialise various members of cpp_reader, memory pools, and the
6534         special nodes.
6535         (cpp_printer_init): Delete.
6536         (cpp_cleanup): Update.
6537         (struct builtin, builtin_array, initialize_builtins): Update for new
6538         hashnode definition and builtin handling.
6539         (cpp_start_read, cpp_finish): Don't take or initialise a
6540         printer.  Update.
6541
6542         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
6543         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
6544         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
6545         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
6546         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
6547         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
6548         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
6549         struct toklist, struct cpp_context, struct specnodes,
6550         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
6551         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
6552         enum builtin_type, cpp_can_paste): New.
6553         (struct cpp_token): Delete line and col members.
6554         (struct cpp_buffer): New member output_lineno.
6555         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
6556         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
6557         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
6558         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
6559         base_context, context, directive, mi_state, mi_if_not_defined,
6560         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
6561         mlstring_pos, macro_buffer, macro_buffer_len.
6562         Delete members mls_line, mls_column, token_list, potential_control_macro,
6563         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
6564         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
6565         save_parameter_spellings, need_newline, .
6566         Change type of date, time and spec_nodes members.
6567         Change prototypes for include and ident callbacks.
6568         (struct cpp_hashnode): Change type of name.  Remove union members
6569         expansion and code.  Add members macro, operator and builtin.
6570
6571         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
6572         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
6573         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
6574         cpp_stop_lookahead): New prototypes.
6575         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
6576
6577         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
6578         Move from cpphash.h.
6579
6580         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
6581         ufputs): Move to cpplib.h.
6582         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
6583         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
6584         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
6585         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
6586         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
6587         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
6588         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
6589         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
6590         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
6591         _cpp_parse_assertion, _cpp_find_answer): Delete.
6592         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
6593         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
6594         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
6595         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
6596         _cpp_handle_directive, DSC): New.
6597         (struct include_file): New member defined.
6598
6599         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
6600         _cpp_compare_file_date): Update.
6601         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
6602         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
6603         _cpp_cleanup_hashtable.
6604
6605         * Makefile.in: Remove cppoutput.c.
6606
6607         * cppoutput.c: Delete
6608
6609         * fixheader.c (read_scan_file): Update for new cpp_get_token
6610         prototype.
6611         (recognized_function): New argument LINE.
6612
6613         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
6614         new cpp_get_token prototype.
6615
6616         * scan.h (recognized_function): Update prototype.
6617
6618         * po/POTFILES.in: Remove cppoutput.c.
6619
6620 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
6621
6622         * c-typeck.c (check_init_type_bitfields): Remove.
6623         (constructor_incremental): Likewise.
6624         (struct constructor_stack): Remove incremental bit.
6625         (struct initializer_stack): Likewise.
6626         (start_init): Don't play with constructor_incremental.
6627         (finish_init): Likewise.
6628         (really_start_incremental_init): Likewise.
6629         (push_init_level): Likewise.
6630         (pop_init_level): Likewise.
6631         (output_init_level): Likewise.
6632         (output_pending_init_elements): Likewise.
6633
6634 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
6635
6636         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
6637         Improve error messages.  Correct parsing of
6638         #pragma pack(pop [,id]).  Do not check the user-supplied
6639         alignment if we're popping.
6640
6641         * gcc.dg/pack-test-1.c: New test case.
6642         * gcc.dg/pack-test-2.c: New test case.
6643         * gcc.dg/pack-test-1.h: New file.
6644
6645 2000-10-27  Neil Booth  <neilb@earthling.net>
6646
6647         * cpp.texi: Update.
6648
6649 2000-10-27  Kelley Cook <kelley.cook@home.com>
6650
6651         * invoke.texi: Document -mintel-syntax
6652
6653 2000-10-27  Richard Henderson  <rth@redhat.com>
6654
6655         * invoke.texi: Document -frename-registers.  Add it to -O3.
6656         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
6657         (enum dump_file_index, dump_file): Update order.
6658         (main): Set flag_rename_registers at -O3.
6659
6660 2000-10-27  Richard Henderson  <rth@redhat.com>
6661
6662         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
6663         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
6664         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
6665         * config/alpha/alpha.md (call_osf_1): Use it.
6666         (call_value_osf_1): Likewise.
6667
6668         * config/ia64/ia64.c: Revert 10-23 patch.
6669         (ia64_hard_regno_rename_ok): New.
6670         * config/ia64/ia64-protos.h: Declare it.
6671         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
6672
6673 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
6674             Richard Henderson  <rth@redhat.com>
6675
6676         * regrename.c: Rewrite to handle multi-register modes and
6677         cond_exec instructions.
6678         * Makefile.in (regrename.o): Update dependancies.
6679         * recog.h (struct operand_alternative): Add is_address.
6680         * recog.c (preprocess_constraints) [case 'p']: Set it.
6681
6682 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
6683
6684         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
6685         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
6686         top level.  Kill oldstyle_subdirs.  Do not include
6687         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
6688         $outputs.  Do not run configure.lang from config.status.
6689         Rearrange warning-flag logic to correspond to what the
6690         makefile wants.  Put special vax stage1 options in
6691         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
6692         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
6693         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
6694         switch is given, nothing otherwise.
6695         * configure.lang: Delete.
6696
6697         * Makefile.in: Expunge all traces of extra_c_objs,
6698         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
6699         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
6700         warning options via a three level scheme so that -pedantic and
6701         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
6702         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
6703         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
6704         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
6705         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
6706         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
6707         generation rules.  Wrap all rules that change the current
6708         directory in parentheses; pmake doesn't spawn a new shell for
6709         each command.  Expunge all references to $(P).  When one
6710         command depends on another and they're run all at once, use &&
6711         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
6712         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
6713         and beyond.
6714
6715         * objc/Make-lang.in: Wrap all rules that change the current
6716         directory in parentheses.  Expunge all references to $(P).
6717         When one command depends on another and they're run all at
6718         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
6719         all object-file generation rules.  Delete obsolete variables.
6720         * objc/Makefile.in: Delete.
6721
6722 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
6723
6724         * calls.c (expand_call): If sibcall_failure is set during pass 1,
6725         clear tail_call_insns as well.
6726
6727 2000-10-27  Nick Clifton  <nickc@redhat.com>
6728
6729         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
6730         prototype.
6731
6732 2000-10-26  Richard Henderson  <rth@redhat.com>
6733
6734         * calls.c (expand_call): Supress sibcall if we have a
6735         BLKmode return in registers.
6736
6737 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
6738
6739         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
6740         into memory.
6741
6742 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
6743
6744         * tree.c (make_node, case 't'): Set alignment to that of
6745         char_type_node.
6746         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
6747
6748 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
6749
6750         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
6751         * configure.in (enable-libstdcxx-v3): Arrange to have
6752         HAVE_LIBSTDCXX_V3 substituted into the output files.
6753
6754 2000-10-25  Richard Henderson  <rth@redhat.com>
6755
6756         * recog.c (constrain_operands): Initialize which_alternative
6757         before no alternatives early exit.
6758
6759         * cse.c (find_comparison_args): Check that we can reverse a
6760         comparison if needed before accepting the substitution.
6761
6762         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
6763
6764         * simplify-rtx.c (simplify_relational_operation): Sign extend
6765         low words before sign extending to high words.
6766
6767 2000-10-25  Nick Clifton  <nickc@redhat.com>
6768
6769         * config/mcore/mcore.c: Include config.h before system.h.
6770
6771 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
6772
6773         * config/mcore/mcore.md (return): Force function epilogue to
6774         always be generated to work around epilogue suppression bug in
6775         M*Core backend.
6776
6777 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
6778
6779         * c-decl.c (grokdeclarator): Move warning for qualified void
6780         return types with -pedantic to when the function type is
6781         constructed.  At -W, warn in general for qualified function return
6782         types, except for volatile void.
6783         * invoke.texi: Document this new warning at -W.
6784
6785 2000-10-25  Neil Booth  <neilb@earthling.net>
6786
6787         * cpp.texi: Update with implementation-defined behavior and
6788         internal limits.
6789
6790 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
6791
6792         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
6793         incomplete type force it into alias set 0.
6794
6795 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
6796
6797         * alias.c: Include basic-block.h.
6798         (loop_p): New function.
6799         (mark_constant_function): Use it.
6800         * Makefile.in (alias.o): Update dependencies.
6801
6802 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
6803
6804         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
6805         like memory.
6806
6807 2000-10-24  Jim Wilson  <wilson@cygnus.com>
6808
6809         * expmed.c (store_bit_field): Move integer pun code down after
6810         code that calls emit_move_insn for entire register move.
6811         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
6812         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
6813
6814 2000-10-24  Richard Henderson  <rth@cygnus.com>
6815
6816         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
6817         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
6818
6819 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
6820
6821         * gcse.c (cprop_insn): do not propagate constants into jump_insn
6822         for machines with CC0 more than once.
6823
6824 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
6825
6826         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
6827         pseudos just like memory.
6828
6829 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
6830
6831         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
6832         when deleting libcall sequence collapsed to a single instruction.
6833
6834 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
6835
6836         * expr.c (do_store_flag): Don't crash if either side of a
6837         comparison is error_mark_node.
6838
6839 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
6840
6841         * sibcall.c (purge_mem_unchanging_flag): New function.
6842         (optimize_sibling_and_tail_recursive_calls): Call it.
6843
6844 2000-10-24  Philipp Thomas  <pthomas@suse.de>
6845
6846         * Makefile.in (check-po): New target for doing checks in the po
6847         subdir if all languages configured.
6848         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
6849         configure if NLS is enabled.
6850         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
6851         otherwise leave empty.
6852         * configure: Regenerate.
6853
6854 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
6855
6856         * i386.c (print_operand): Handle new 'A' formatting code.
6857         387 opcodes need suffixes even with -mintel-syntax.
6858         Check for explicit size override (codes 'b', 'w' and 'k').
6859         (print_operand_address): Check if register prefix is needed when
6860         emitting `ds' segment override.
6861         * i386.h: Add comment about new 'A' formatting code.
6862         * i386.md (jump and call patterns): Emit absolute references using %A.
6863
6864 2000-10-23  Richard Henderson  <rth@cygnus.com>
6865
6866         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
6867         output registers as fixed.
6868         (ia64_function_epilogue): Undo output fixation.
6869
6870 2000-10-23  Richard Henderson  <rth@cygnus.com>
6871
6872         * config/alpha/alpha.md: Add names for all unnamed insns; use
6873         define_insn_and_split in some obvious places.
6874         (lda): Remove.
6875         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
6876         (zero_extendqisi2, zero_extendqidi2): Likewise.
6877         (zero_extendhisi2, zero_extendhidi2): Likewise.
6878         (abs splitters): Fix match_scratch operand number.
6879         (bcc_reverse): Swap pc & label instead of non-canonical compare.
6880
6881 2000-10-23  Jim Wilson  <wilson@cygnus.com>
6882
6883         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
6884         CONST_INT.
6885         * ia64.md (cmpsi_adjusted): Use %r3.
6886         (cmpdi_adjusted): Likewise.
6887
6888 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
6889
6890         * config/i386/att.h (ASM_FILE_START): Define.
6891
6892 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
6893
6894         * config/i386/linux.h (ASM_FILE_START): Define.
6895
6896 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
6897
6898         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
6899         since this (only) drags in a crt0.o reference that the .ld files
6900         also introduce.
6901
6902 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
6903
6904         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
6905         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
6906         reloads just like an RELOAD_FOR_OUTPUT would.
6907
6908         * local-alloc.c (update_equiv_regs): Add an abort().  When
6909         deleting or moving insns, update reg_equiv[regno].init_insns.
6910
6911 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
6912
6913         * c-tree.texi: Improve documentation for IF_STMTs and related
6914         conditional statements.
6915
6916 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
6917
6918         * expr.c (do_preexpand_calls): Remove.
6919         (same_from_p): Don't use CALL_EXPR_RTL.
6920         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
6921         (preexpand_calls): Remove.
6922         * tree.c (first_rtl_op): Remove CALL_EXPR case.
6923         (unsave_expr_1): Likewise.
6924         * tree.def (CALL_EXPR): Give it only two slots.
6925         * tree.h (CALL_EXPR_RTL): Remove.
6926
6927 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
6928
6929         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
6930         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
6931         New functions.
6932
6933 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
6934
6935         * calls.c (combine_pending_stack_adjustment_and_call): Don't
6936         adjust stack when unadjusted_alignment ends up as zero.
6937
6938 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
6939
6940         * fixinc/genfixes: Remove EGCS reference.
6941         * install.texi: Remove EGCS reference.
6942         * INSTALL: Regenerate.
6943
6944 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
6945
6946         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
6947
6948 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6949
6950         * diagnostic.c: Remove EGCS reference in comment.
6951
6952 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6953
6954         * loop.c (strength_reduce): Fix error in last change.
6955
6956 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
6957
6958         * Makefile.in (SHLIB_NM_FLAGS): New.
6959         (libgcc.mk): Pass it.
6960         * mklibgcc.in (libgcc.map): Use it.
6961
6962         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
6963         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
6964
6965 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6966
6967         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
6968
6969         * sparc.c (load_pic_register): Delete unused varaible.
6970
6971         * libgcc2.c (__addvsi3): Delete unused variable.
6972
6973         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
6974         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
6975         __negvdi2): Prototype.
6976
6977         * ssa.c (apply_delayed_renames): Avoid undefined operation.
6978
6979         * toplev.c (display_target_options): Make static to match
6980         prototype.  Delete empty declaration.
6981
6982 2000-10-20  Tom Tromey  <tromey@cygnus.com>
6983
6984         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
6985         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
6986
6987 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6988
6989         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
6990         returned MEM.
6991         (expand_expr_unaligned, case ARRAY_REF): Check that index is
6992         a constant before comparing it; use tree_low_cst.
6993         * tree.c (save_expr): Set TREE_READONLY.
6994         (substitute_expr): Return inside of NON_LVALUE_EXPR.
6995         (build, build1): Set TREE_READONLY if all operands are.
6996         (build_index_type): If upper bound is a negative number, lower
6997         bound is zero and sizetype is unsigned, use upper bound of one and
6998         lower of zero.
6999
7000 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
7001
7002         * gcc.c (process_command, main): Use "because" instead of
7003         "since" in error messages.
7004
7005 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7006
7007         * stor-layout.c (compute_record_mode): Use tree_low_cst.
7008         Don't use mode of field for record unless sizes are the same.
7009         (layout_type, case ARRAY_TYPE): Remove special bounds handling
7010         previously added for Ada; also change to using host_integerp
7011         and tree_low_cst.
7012
7013         * loop.c (strength_reduce): Show when new register made for
7014         giv is known to be a pointer and its aligment if so and known.
7015         (loop_dump_aux): Show VERBOSE parameter unused.
7016
7017         * gcse.c (set_hash_table_size): Now unsigned.
7018         * sdbout.c (template_name_p): Add "const" to avoid warnings.
7019         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
7020         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
7021         (sdbout_end_epilogue): Remove variable NAME.
7022         * system.h (getopt): Add default definition.
7023         * config/alpha/alpha.c (print_operand): Don't continue processing
7024         after issuing error.
7025         (summarize_insn): Avoid use of UL in constant.
7026
7027         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
7028
7029         * fold-const.c (force_fit_type): Unsigned values can overflow
7030         if they are sizetype.
7031         (int_const_binop): Don't use cache if overflows.
7032
7033 2000-10-20  Richard Henderson  <rth@cygnus.com>
7034
7035         * function.c (locate_and_pad_parm): Zero alignment_pad.
7036
7037         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
7038         perform substitutions, and apply_change_group to see if it worked.
7039
7040 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7041
7042         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
7043
7044         * combine.c (struct undo): Change int to unsigned int.
7045         (do_SUBST_INT): Args are unsigned int.
7046         (make_extraction, force_to_mode): Use proper type when forming mask.
7047         (make_field_assignment): Likewise.
7048
7049 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7050
7051         * c-common.c (check_format_info_recurse): Extract string constant
7052         initializers from non-volatile constant arrays and check them as
7053         formats.
7054         * c-typeck.c (decl_constant_value): Don't check pedantic or check
7055         for DECL_MODE (decl) != BLKmode.
7056         (decl_constant_value_for_broken_optimization): New function which
7057         includes these checks.
7058         (default_conversion, convert_for_assignment, digest_init): Use
7059         decl_constant_value_for_broken_optimization instead of
7060         decl_constant_value.
7061
7062 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
7063
7064         * tree.h (DECL_ALIGN_UNIT): New macro.
7065
7066 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
7067
7068         * config/avr/avr-protos.h (avr_output_bld): New.
7069         (out_shift_with_cnt): Add t_len argument.
7070         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
7071         (output_movqi, output_movhi, output_movsisf): Optimize loading
7072         any constant with exactly one bit set to NO_LD_REGS.
7073         (out_shift_with_cnt): Optimize output code for size or speed,
7074         depending on optimize_size.  Handle small shift counts as well
7075         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
7076         with or without a scratch register, with help of __tmp_reg__
7077         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
7078         length of TEMPLATE in words, return total insn length in *LEN.
7079         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
7080         out_shift_with_cnt to work with the above change.
7081         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
7082         lshrsi3_out): Likewise.  Optimize more known shift count cases.
7083         Remove cases already well optimized in out_shift_with_cnt.
7084         (avr_output_bld): New function.
7085         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
7086         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
7087         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
7088         Add reload_completed to insn condition - only for peepholes.
7089         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
7090         in a register or memory.
7091         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
7092         Do not require a scratch register.
7093         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
7094         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
7095         Optimize shifts by known count using a scratch register, but only
7096         if one is still available after register allocation.
7097
7098 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7099
7100         * t-vax: New file.  Don't build modules from libgcc1.c.
7101
7102 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
7103
7104         * alias.c: (mark_constant_function): Don't check pure functions.
7105         Initialize and end alias analysis.
7106         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
7107         Don't make a special exception for recursion.  Handle
7108         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
7109         unless it's volatile.
7110
7111         * local-alloc.c (equivalence): New structure.
7112         (reg_equiv): Define.
7113         (contains_replace_regs): Remove array and use
7114         field in reg_equiv.
7115         (memref_referenced_p): Likewise.
7116         (no_equiv): Likewise.
7117         (update_equiv_regs): Likewise.
7118
7119         (equiv_init_varies_p,
7120         equiv_init_movable_p): New functions.
7121         (update_equiv_regs): Use them.  Use rtx_varies_p
7122         instead of function_invariant_p.  Process insns
7123         from end to beginning.  Allow a REG_EQUIV insn
7124         within the same loop as a use to be moved, also
7125         allow it to be moved out of a loop.  Update
7126         REG_DEAD notes when substituting into an insn.
7127
7128 2000-10-19  Jim Wilson  <wilson@cygnus.com>
7129
7130         * c-decl.c (start_decl): Check for error_mark_node type before using
7131         COMPLETE_TYPE_P.
7132         (finish_decl): Likewise.  Don't give an error if decl type is
7133         already error_mark_node.
7134
7135         * haifa-sched.c (compute_trg_info): Add explanatory comments.
7136         New local update_blocks.  Use update_blocks to remove duplicates
7137         when computing update blocks.  Check for bblst_table overflow.
7138         (schedule_block): Add explanatory comment.  Reduce bblst_size by
7139         factor of 2.
7140         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
7141         notes.
7142
7143 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
7144
7145         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
7146
7147 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
7148
7149         * expmed.c: Minor corrections in comments.
7150         * invoke.texi: Added desciption for the new option -ftrapv.
7151
7152 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
7153
7154         * libgcc2.c: Added the missing #endif.
7155
7156 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7157
7158         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
7159
7160 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
7161
7162         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
7163         Use smulv_optab for -ftrapv.
7164         (expand_mult_highpart): Use unsigned multiply.
7165         (expand_divmod): Special-case division by -1.
7166         For EXACT_DIV_EXPR, do right shift first, then the multiply.
7167         For complex divide, use abs with unsigned result.
7168         * expr.c (force_operand): Use unsigned multiply.
7169         (expand_expr): Use overflow-trapping optabs for signed types if
7170         flag_trapv.
7171         If flag_trapv, don't generate a recursive call with EXPAND_SUM
7172         if the type is signed and the original call wasn't EXPAND_SUM or
7173         EXPAND_INITIALIZER.
7174         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
7175         (negv_optab, absv_optab): Declare.
7176         * flags.h (flag_trapv): Declare.
7177         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
7178         smulv_optab, sdivv_optab, negv_optab and absv_optab.
7179         (gen_insn): Interpret '$P' as requiring an integer mode,
7180         including partial integer modes.
7181         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
7182         (product_cheap_p): Use unsigned expand_mult.
7183         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
7184         (negv_optab, absv_optab): Define.
7185         (expand_binop): Use overflow-trapping optabs for signed types if
7186         flag_trapv.
7187         Handle negv_optab libe neg_optab.
7188         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
7189         Use overflow-trapping optabs for signed result if flag_trapv.
7190         (expand_complex_abs): Use overflow-trapping optabs for signed types if
7191         flag_trapv.
7192         Don't open-code complex absolute-value operation for flag_trapv.
7193         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
7194         sdivv_optab, negv_optab and absv_optab.
7195         * toplev.c (flag_trapv): Define.
7196         (lang_independent_options f_options): Include flag_trapv.
7197         * tree.h (TYPE_TRAP_SIGNED): Define.
7198         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
7199         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
7200         New functions.
7201         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
7202         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
7203
7204 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
7205             David V. Henkel-Wallace  <gumby@cygnus.com>
7206
7207         * config/i386/t-netware: Bring in from the Red Hat tree.
7208         * config/i386/netware.h: Likewise.
7209         * config/netware.h: Likewise.
7210         * config/rs6000/netware.h: Delete.
7211         * configure.in: Add i[34567]86-*-netware.
7212         * configure: Hand-edit to match configure.in change.
7213
7214 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
7215
7216         * c-common.h (flag_no_builtin): Declare.
7217         (flag_no_nonansi_builtin): Likewise.
7218         (c_common_nodes_and_builtins): Change prototype.
7219         * c-common.c (flag_no_builtin): New variable.
7220         (flag_no_nonansi_builtin): Likewise.
7221         (c_common_nodes_and_builtins): Remove parameters.  Adjust
7222         accordingly.
7223         * c-decl.c (flag_no_builtin): Remove.
7224         (flag_no_nonansi_builtin): Likewise.
7225         (init_decl_processing): Adjust call to
7226         c_common_nodes_and_builtins.
7227
7228 2000-10-18  Marc Espie <espie@openbsd.org>
7229
7230         * tm.texi (LIBGCC_SPEC): Synch with reality.
7231
7232 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7233
7234         * c-common.c (check_format_types): Check for writing through a
7235         NULL pointer argument.
7236
7237 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
7238
7239         * tm.texi (Exception Region Output): Document
7240         DWARF_CIE_DATA_ALIGNMENT.
7241         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
7242         #ifndef.
7243         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
7244         DWARF_CIE_DATA_ALIGNMENT.
7245
7246 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
7247
7248         * basic-block.h (struct loop): Delete fields pre_header_root
7249         and pre_header_trace and replace with pre_header_edges
7250         and num_pre_header_edges.
7251         * flow.c (flow_loop_dump): Dump pre_header_edges.
7252         (flow_loops_free): Free pre_header_edges.
7253         (flow_loop_pre_header_scan): Calculate pre_header_edges.
7254
7255 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7256
7257         * contrib.texi: Update references to steering committee members
7258         and Jeff Law's entry.
7259
7260 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7261
7262         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
7263         (maybe_read_dollar_number, check_format_info_main): Use them for
7264         pedantic warning messages.
7265
7266 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
7267
7268         * c-common.c (check_format_info_main): Minor cleanup: move
7269         variables into inner scopes; initialize declarations where
7270         appropriate; don't hardcode "scanf" name on warning for zero
7271         width.
7272
7273 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
7274
7275         * c-common.c (back_end_hook): New variable.
7276         * c-common.h (back_end_hook): Declare it.
7277         * c-lang.c (finish_file): Use it.
7278
7279         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
7280         earlier.
7281
7282 2000-10-18  Jan Hubicka  <jh@suse.cz>
7283
7284         * i386.c (ix86_comparison_operator, put_condition_code,
7285         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
7286         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
7287         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
7288         * i386.md (adddi and negdi splitter): Use CCRCmode.
7289         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
7290         (subsi3_carry): add '*'
7291         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
7292         (cmp to add peep2): Use CCRCmode; swap operands.
7293
7294 2000-10-18  Kazu Hirata  <kazu@hxi.com>
7295
7296         * h8300.c: Fix a comment typo.
7297         (round_frame_size): New.
7298         (compute_saved_regs): Likewise.
7299         (push): Likewise.
7300         (pop): Likewise.
7301         (push_order): Remove.
7302         (pop_order): Likewise.
7303         (function_prologue): Rearrange code for readability.
7304         (function_epilogue): Likewise.
7305
7306         * config/h8300/h8300.md: Remove an unnecessary sign_extend
7307         expander that is used when not optimizing.  Output a tab after
7308         each assembly insns.
7309
7310         * reorg.c: Fix formatting.
7311
7312 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
7313
7314         * reload1.c (move2add_note_store): Check for simple
7315         auto-inc in destination.
7316
7317 2000-10-17  Michael Chastain  <chastain@redhat.com>
7318
7319         * config/i386/i386-aout.h: define INT_ASM_OP.
7320
7321 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
7322
7323         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
7324
7325 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
7326
7327         * i370.md: Fix spelling typo.
7328
7329 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7330
7331         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
7332         Fixes execute/20001017-1.c on powerpc-linux-gnu.
7333
7334         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
7335         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
7336         LABEL_REF.
7337
7338         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
7339         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
7340         here...
7341         * rs6000/aix.h: ...to here.
7342         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
7343
7344 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
7345
7346         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
7347
7348         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
7349         sure linker can relax even the delay slot mov %g1,%o7, fix output
7350         formating.
7351
7352 2000-10-17  Kazu Hirata  <kazu@hxi.com>
7353
7354         * config/h8300/h8300.md: Remove an unnecessary zero_extend
7355         expander that is used when not optimizing.  Output a tab after
7356         each assembly insns.
7357
7358 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
7359
7360         * gcc.c: New options --target-help.
7361         (process_command): Added code to parse this new option.
7362         * toplev.c (display_target_options): New function to support the
7363         above new option.
7364         * cppinit.c (new_pending_directive) : New option OPT_target__help.
7365         (cpp_handle_option): Support this new option.
7366         * invoke.texi: Added notes about --target-help option.
7367
7368 2000-10-17  Graham Stott  <grahams@redhat.com>
7369
7370         * config/i386/i386.md (testqi_1): Add missing operand prefix
7371         for operand 0.
7372         * config/i386/i386-protos.h: Add missing prototype.
7373
7374 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
7375
7376         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
7377         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
7378         using -mintel-syntax.
7379
7380 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7381
7382         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
7383         (format_types): Use it for printf.
7384         (maybe_read_dollar_number): Add parameter for the kind of format
7385         involved.  Warn for multiple use for arguments if this is
7386         inappropriate for the kind of format involved.
7387         (check_format_info_main): Update calls to maybe_read_dollar_number.
7388
7389 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7390
7391         * inclhack.def (hpux_maxint): Also apply fix to values.h.
7392         * fixincl.x: Rebuilt.
7393
7394 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
7395
7396         * genrecog.c (write_switch): Return the first condition that needs a
7397         label.
7398
7399 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
7400
7401         * c-tree.h (warn_sequence_point): Move declaration to...
7402         * c-common.h (warn_sequence_point): ... here.
7403         * c-decl.c (warn_sequence_point): Move definition to...
7404         * c-common.c (warn_sequence_point): ... here.
7405         (struct reverse_tree): New.
7406         (reverse_list, reverse_max_depth): New static variables.
7407         (build_reverse_tree, common_ancestor, modify_ok
7408         verify_sequence_points): New functions.
7409         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
7410         * c-typeck.c (check_modify_expr): Delete.
7411         (build_modify_expr): Don't call it.
7412
7413 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7414
7415         * c-common.h (warn_missing_format_attribute): New variable.
7416         * c-decl.c (warn_missing_format_attribute): New variable.
7417         (c_decode_option): Decode -Wmissing-format-attribute and
7418         -Wno-missing-format-attribute.
7419         * c-common.c (check_function_format): If
7420         -Wmissing-format-attribute, give a warning where a vprintf or
7421         vscanf function is called by a function without its own printf or
7422         scanf attribute.
7423         * toplev.c (documented_lang_options): Add
7424         -Wmissing-format-attribute.
7425         * invoke.texi: Document -Wmissing-format-attribute.
7426
7427 2000-10-17  Marc Espie <espie@openbsd.org>
7428
7429         * invoke.texi (-shared): Insist on requiring code generation flags
7430         to be used along with -shared, and document the subtle failure that
7431         may occur otherwise.
7432
7433 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7434
7435         * pa.md (return_internal): Move `use' after `return'.
7436
7437 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7438
7439         * machmode.def: Correct comment.
7440
7441 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
7442
7443         * print-rtl.c (print_rtx_head): Constify.
7444         * rtl.h (print_rtx_head): Similarly.
7445
7446         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
7447         Constify char * return value.
7448         * config/pa/pa/pa.c
7449         (output_64bit_and, output_64bit_ior): Constify char * return value.
7450         (pa_can_combine_p): Make static.
7451         (function_arg): Decorate unused `named' argument. Fix comment typo.
7452         (function_arg_partial_nregs): Decorate unused `named' argument.
7453
7454 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
7455
7456         * c-common.c (format_check_results): New structure.
7457         (finish_dollar_format_checking): Adjust to take a
7458         format_check_results * parameter.
7459         (check_format_info, check_format_info_recurse,
7460         check_format_info_main): Split check_format_info into three
7461         functions, the main checking going in check_format_info_main.
7462         Recurse when any reduction of the format string argument towards a
7463         string literal is done; go down both branches of a conditional
7464         expression.  Don't warn for extra format arguments or empty format
7465         strings if they only occur in some branches of a conditional
7466         expression.
7467
7468 2000-10-16  Kazu Hirata  <kazu@hxi.com>
7469
7470         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
7471
7472 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
7473
7474         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
7475
7476 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
7477
7478         * i386.md (*movsi_or): Switch operand order for intel syntax.
7479
7480 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
7481
7482         * PROBLEMS: Remove.
7483
7484         * gcc.texi (Contributing): Update.
7485
7486 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
7487
7488         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
7489         appropriate assembler dialect.
7490
7491 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
7492
7493         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
7494
7495 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
7496
7497         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
7498         constants 1 and 2 to NO_LD_REGS.
7499
7500 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7501
7502         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
7503
7504         * objc/Make-lang.in (objc-parse.c): Likewise.
7505
7506 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
7507
7508         * arm.c: Include obstack.h
7509         (minipool_obstack, minipool_startobj): Define.
7510         (arm_add_gc_roots): Initialize them.
7511         (create_fix_barrier): Use our new obstack.
7512         (push_minipool_barrier, push_minipool_fix): Likewise.
7513         (arm_reorg): Release obstack memory.
7514
7515 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
7516
7517         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
7518         (prologue, exception_receiver, builtin_setjmp_receiver): New
7519         patterns.
7520         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
7521         * config/sparc/sparc-protos.h (finalize_pic): Remove.
7522         (load_pic_register): New prototype.
7523         * config/sparc/sparc.c (pic_setup_code): Remove.
7524         (finalize_pic): Rename to...
7525         (load_pic_register): ...this function.
7526         Don't look for nonlocal_goto_receivers and emit pic setup code
7527         directly.  Don't check current_function_uses_pic_offset_table.
7528
7529 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
7530
7531         * tree.h (struct obstack): Declare.
7532
7533 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
7534
7535         Remove obstacks.
7536         * Makefile.in (ggc-callbacks.o): Remove target.
7537         (flow.o): Depend on GGC_H.
7538         * alias.c (init_alias_analysis):
7539         Remove ggc_p conditionals.
7540         (end_alias_analysis): Likewise.
7541         * basic-block.h (init_flow): New function.
7542         (allocate_reg_life_data): Declare.
7543         * bb-reorder.c  (function_obstack): Replace with ...
7544         (flow_obstack): ... new variable.
7545         (fixup_reorder_chain): Use it.
7546         * c-decl.c (ggc_p): Remove.
7547         (caller-save.c): Don't call oballoc/obfree.
7548         * combine.c (struct
7549         undobuf): Remove storage.
7550         (try_combine): Don't call oballoc.
7551         (undo_all): Don't call obfree.
7552         * cse.c (insert): Use xmalloc, not
7553         oballoc.
7554         (cse_main): Adjust accordingly.
7555         * dwarf2out.c (save_rtx): Remove
7556         obstack code.
7557         (dwarf2out_init): Remove ggc_p conditionals.
7558         * emit-rtl.c (rtl_obstack): Remove.
7559         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
7560         (make_insn_raw): Likewise.
7561         (emit_insn_before): Likewise.
7562         (emit_insn_after): Likewise.
7563         (emit_insn): Likewise.
7564         (gen_sequence): Likewise.
7565         (copy_insn_1): Remove handling of `b' RTL components.
7566         (init_emit_once): Remove ggc_p conditionals.
7567         * except.c (create_rethrow_ref): Don't fool with obstacks.
7568         (add_partial_entry): Likewise.
7569         (call_get_eh_context): Likewise.
7570         (begin_protect_partials): Likewise.
7571         (protect_with_terminate): Likewise.
7572         * explow.c
7573         (plus_constant_wide): Likewise.
7574         * expr.c (init_expr_once):
7575         Likewise.
7576         (emit_block_move): Likewise.
7577         (clear_storage): Likewise.
7578         (expand_expr): Likewise.
7579         * flow.c (function_obstack): Remove.
7580         (flow_obstack): New variable.
7581         (flow_firstobj): Likewise.
7582         (create_base_block): Use the flow_obstack.
7583         (split_block): Likewise.
7584         (split_edge): Likewise.
7585         (calculate_global_regs_live): Likewise.
7586         (allocate_bb_life_data): Make it static.  Likewiwse.
7587         (init_flow): New function.
7588         (size_int_type_wide): Remove ggc_p conditionals.
7589         * function.c
7590         (push_function_context_to): Don't call save_tree_status.
7591         (pop_function_context_from): Or restore_tree_status.
7592         (assign_stack_local_1): Don't call push_obstacks.
7593         (find_fixup_replacement): Use xmalloc.
7594         (fixup_var_refs_insns): Free the storage.
7595         (insns_for_mem_walk): Don't mess with obstacks.
7596         (instantiate_decls): Likewise.
7597         (trampoline_address): Likewise.
7598         (expand_function_end): Likewise.
7599         * function.h (sturct function):
7600         Remove obstack-related variables.
7601         (save_tree_status): Don't declare.
7602         (restore_tree_status): Likewise.
7603         * gcse.c (compute_can_copy):
7604         Don't call oballoc/obfree.
7605         * genattrtab.c (operate_exp): Remove
7606         ggc_p conditionals.
7607         (simplify_cond): Likewise.
7608         (simplify_test_exp): Don't mess with obstacks.
7609         (optimize_attrs): Likewise.
7610         * gengenrtl.c (gendef): Don't include
7611         ggc_p conditionals.
7612         * ggc-callbacks.c (ggc_p): Remove.
7613         * ggc-none.c (ggc_p): Remove.
7614         * ggc.h (ggc_p): Don't declare.
7615         * integrate.c (save_for_inline): Don't mess with obstacks.
7616         (integrate_decl_tree): Likewise.
7617         (output_inline_function): Likewise.
7618         * lists.c
7619         (init_EXPR_INSN_LIST_cache): Likewise.
7620         * loop.c (temp_obstack):
7621         Remove.
7622         (rtl_obstack): Likewise.
7623         (init_loop): Don't mess with obstacks.
7624         (reg_address_cost): Free BIVs and GIVs.
7625         (check_insns_for_bivs): Use xmalloc, not oballoc.
7626         (find_mem_givs): Likewise.
7627         (record_biv): Likewise.
7628         (general_induction_var): Likewise.
7629         (product_cheap_p): Likewse.
7630         * optabs.c (init_one_libfunc): Remove
7631         ggc_p conditional.
7632         * print-tree.c (debug_tree): Don't use
7633         oballoc/obfree.
7634         (print_node): Likewise.
7635         * profile.c (output_func_start_profiler):
7636         Remove call to temporary_allocation.
7637         * reload1.c
7638         (eliminate_regs_in_insn): Don't mess with obstacks.
7639         * resource.c
7640         (mark_target_live_regs): Use xmalloc.
7641         (free_resource_info): Free the memory.
7642         * rtl.c (rtl_obstack):
7643         Remove.
7644         (rtvec_alloc): Don't mess with obstacks.
7645         (rtx_alloc): Likewise.
7646         (rtx_free): Remove.
7647         (copy_rtx): Don't handle `b' cases.
7648         (read_rtx): Use a local rtl_obstack.
7649         * rtl.h (oballoc): Remove.
7650         (obfree): Likewise.
7651         (pop_obstacks): Likewise.
7652         (push_obstacks): Likewise.
7653         (allocate_bb_life_data): Likewise.
7654         (allocate_reg_life_data): Likewise.
7655         (rtx_free): Likewise.
7656         * sdbout.c (sdbout_queue_anonymous_type):
7657         Use tree_cons, not saveable_tree_cons.
7658         * simplify-rtx.c
7659         (cselib_init): Don't mess with obstacks.
7660         * stmt.c
7661         (mark_block_nesting): Mark the label_chain.
7662         (epxand_label): Use ggc_alloc, not oballoc.
7663         (clear_last_expr): Don't mess with obstacks.
7664         (expand_decl_cleanup): Likewise.
7665         (expand_dcc_cleanup): Likewise.
7666         (expand_dhc_cleanup): Likewise.
7667         (expand_anon_union_decl): Likewise.
7668         (add_case_node): Use xmalloc, not oballoc.
7669         (free_case_nodes): New function.
7670         (expand_end_case): Call it.
7671         * stor-layout.c (layout_type): Don't
7672         mess with obstacks.
7673         (layout_type): Likewise.
7674         * toplev.c (wrapup_global_declarations):
7675         Likewise.
7676         (compile_file): Remove ggc_p conditionals.
7677         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
7678         (decode_f_option): Remove ggc_p conditionals.
7679         * tree.c
7680         (function_maybepermanent_obstack): Remove.
7681         (maybepermanent_obstack): Likewise.
7682         (function_obstack): Likewise.
7683         (tmeporary_obstack): Likewise.
7684         (momentary_obstack): Likewise.
7685         (temp_decl_obstack): Likewise.
7686         (saveable_obstack): Likewise.
7687         (rtl_obstack): Likewise.
7688         (current_obstack): Likewise.
7689         (expression_obstack): Likewise.
7690         (struct obstack_stack): Likewise.
7691         (obstack_stack): Likewise.
7692         (obstack_stack_obstack): Likewise.
7693         (maybepermanent_firstobj): Likewise.
7694         (temporary_firstobj): Likewise.
7695         (momentary_firstobj): Likewise.
7696         (temp_decl_firstobj): Likewise.
7697         (momentary_function_firstobj): Likewise.
7698         (all_types_permanent): Likewise.
7699         (struct momentary_level): Likewise.
7700         (momentary_stack): Likewise.
7701         (init_obstacks): Remove initialization of removed obstacks.
7702         (save_tree_status): Remove.
7703         (restore_tree_status): Likewise.
7704         (temporary_allocation): Liekwise.
7705         (end_temporary_allocation): Liekwise.
7706         (resume_temporary_allocation): Likewise.
7707         (saveable_allocation): Likewise.
7708         (push_obstacks): Likewise.
7709         (push_obstacks_nochange): Likewise.
7710         (pop_obstacks): Likewise.
7711         (allocation_temporary_p): Likewise.
7712         (permanent_allocation): Likewise.
7713         (preserve_data): Likewise.
7714         (preserve_initializer): Likewise.
7715         (rtl_in_current_obstack): Likewise.
7716         (rtl_in_saveable_obstack): Likewise.
7717         (oballoc): Likewise.
7718         (obfree): Likewise.
7719         (savealloc): Likewise.
7720         (expralloc): Likewise.
7721         (print_obstack_name): Likewise.
7722         (debug_obstack): Likewise.
7723         (object_permanent_p): Likewise.
7724         (push_momentary): Likewise.
7725         (perserve_momentary): Likewise.
7726         (clear_momentary): Likewise.
7727         (pop_momentary): Likewise.
7728         (pop_momentary_nofree): Likewise.
7729         (suspend_momentary): Likewise.
7730         (resume_momentary): Likewise.
7731         (make_node): Don't set TREE_PERMANENT.
7732         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
7733         Don't set TREE_PERMANENT.
7734         (get_identifier): Remove ggc_p conditionals.
7735         (build_string): Likewise.
7736         (make_tree_vec): Likewise.
7737         (build_decl_list): Remove.
7738         (build_expr_list): Likewise.
7739         (tree_cons): Remove ggc_p conditionals.
7740         (decl_tree_cons): Remove.
7741         (expr_tree_cons): Likewise.
7742         (perm_tree_cons): Likewise.
7743         (temp_tree_cons): Likewise.
7744         (saveable_tree_cons): Likewise.
7745         (build1): Remove ggc_p conditionals.
7746         (build_parse_node): Likewise.
7747         (build_type_attribute_variant): Don't mess with obstacks.
7748         (build_type_copy): Likewise.
7749         (type_hash_canon): Likewise.
7750         (build_pointer_type): Likewise.
7751         (build_reference_type): Likewise.
7752         (build_index_type): Likewise.
7753         (build_range_type): Likewise.
7754         (dump_tree_statistics): Don't print obstack information.
7755         * tree.h
7756         (struct tree_common): Remove permanent_flag.
7757         (TREE_PERMANENT): Remove.
7758         (TREE_SET_PERMANENT): Likewise.
7759         (TYPE_OBSTACK): Likewise.
7760         (struct tree_type): Remove obstack.
7761         (oballoc): Remove.
7762         (savealloc): Likewise.
7763         (build_decl_list): Likewise.
7764         (build_expr_list): Likewise.
7765         (perm_tree_cons): Likewise.
7766         (temp_tree_cons): Likewise.
7767         (saveable_tree_cons): Likewise.
7768         (decl_tree_cons): Likewise.
7769         (expr_tree_cons): Likewise.
7770         (suspend_momentary): Likewise.
7771         (allocation_temporary_p): Likewise.
7772         (resume_momentary): Likewise.
7773         (push_obstacks_nochange): Likewise.
7774         (permanent_allocation): Likewise.
7775         (push_momentary): Likewise.
7776         (clear_momentary): Likewise.
7777         (pop_momentary): Likewise.
7778         (end_temporary_allocation): Likewise.
7779         (pop_obstacks): Likewise.
7780         (push_obstacks): Likewise.
7781         (pop_momentary_nofree): LIkewise.
7782         (preserve_momentary): Likewise.
7783         (saveable_allocation): Likewise.
7784         (temporary_allocation): Likewise.
7785         (resume_temporary_allocation): Likewise.
7786         (perserve_initializer): Likewise.
7787         (debug_obstack): Likewise.
7788         (rtl_in_current_obstack): Likewise.
7789         (rtl_in_saveable_obstack): Likewise.
7790         (obfree): Likewise.
7791         * varasm.c (current_obstack): Remove.
7792         (saveable_obstack): Remove.
7793         (rtl_obstack): Remove.
7794         (immed_double_const): Don't mess with obstacks.
7795         (immed_real_cons): Likewise.
7796         (output_constant_def): Likewise.
7797         (init_varasm_status): Use xcalloc.
7798         (mark_pool_constant): Mark the pool constant itself.
7799         (free_varasm_status): Free memory.
7800         (decode_rtx_const): Call bzero directly, rather than expanding it
7801         inline.
7802         (record_rtx_const): Don't mess with obstacks.
7803         (force_const_mem): Likewise.
7804         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
7805         conditionals.
7806         (aof_pic_entry): Likewise.
7807         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
7808         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
7809         * config/pa/pa.c (saveable_obstack): Remove.
7810         (rtl_obstack): Likewise.
7811         (current_obstack): Likewise.
7812         (output_call): Don't mess with obstacks.
7813         (hppa_encode_label): Remove ggc_p conditionals.
7814         * config/romp/romp.c (get_symref): Don't mess with obstacks.
7815         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
7816         (rs6000_encode_section_info): Likewise.
7817         * config/sh/sh.c (get_fpscr_rtx): Likewise.
7818
7819 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
7820
7821         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
7822         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
7823         (addsi3_carry): Canonicalize.
7824         (addqi_5): Remove '*'.
7825         (sbb pattern): Canonicalize.
7826
7827         * i386.md (cmp to inc/add peep2): New.
7828
7829 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
7830
7831         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
7832         the exit block.
7833
7834 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7835
7836         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
7837         * README.TRAD, TESTS.FLUNK: Remove.
7838
7839 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7840
7841         * c-common.c (decl_attributes): Don't allow strftime formats with
7842         first_arg_num nonzero.
7843         (check_format_info): Set wanted_type and wanted_type_name to zero
7844         before they are possibly assigned and used.
7845
7846 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7847
7848         * c-common.c (scanf_flag_specs): Add flags ' and I.
7849         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
7850         or the ^ and # flags together.
7851         (scan_char_table): Handle the ' and I flags.
7852         (format_types): Add ' and I flags for scanf.
7853
7854 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7855
7856         * c-common.c (print_char_table): Use the unpromoted type for
7857         lengths "h" and "hh" with conversions dioxXu.
7858         (check_format_types): Apply the default argument promotions where
7859         the wanted type is not a pointer target.
7860
7861 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
7862             Joseph S. Myers  <jsm28@cam.ac.uk>
7863
7864         * c-typeck.c (check_modify_expr): New function.
7865         (build_modify_expr): Call it if warn_sequence_point.
7866         * c-decl.c (warn_sequence_point): New variable.
7867         (c_decode_option): Handle -Wsequence-point and
7868         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
7869         * c-tree.h (warn_sequence_point): Declare.
7870         * invoke.texi (-Wsequence-point): Document.
7871         * toplev.c (documented_lang_options): Add -Wsequence-point and
7872         -Wno-sequence-point.
7873         Original work by Michael Meeks, 16 Jun 1998.
7874
7875 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7876
7877         * tree.c (get_narrower): Don't look at precision of field if
7878         not laid out yet.
7879
7880 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
7881
7882         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
7883         declaration for data with "progmem" attribute.
7884
7885 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
7886
7887         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
7888         Correct insn length if shift count is a memory operand.
7889         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
7890         (*iorhi3_clobber): Change lo8 to hi8.
7891         (zero_extendhisi2): Change %B0 to %A1.
7892         (ashlhi3, ashrhi3): Correct insn length.
7893         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
7894         from "clobber" to "set_n" in some alternatives.
7895
7896 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
7897
7898         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
7899         remove its insn_chain structure as well.
7900
7901 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7902
7903         * dbxout.c (dbxout_source_line): Remove extra tab.
7904
7905 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
7906
7907         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
7908
7909 2000-10-09  Richard Henderson  <rth@cygnus.com>
7910
7911         * Makefile.in (LANG_LIB2FUNCS): Remove.
7912         (LIB2FUNCS): Remove _pure.
7913         (LIB2ADD): Remove LANG_LIB2FUNCS.
7914         (stage_a): Don't set LANG_LIB2FUNCS.
7915         * libgcc2.c (__terminate): Mark noreturn.
7916         (__pure_virtual): Remove.
7917         * mklibgcc.in: Remove LIB2ADD .txt processing.
7918
7919 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
7920
7921         * arm.md (push_multi): Revert unintended change.
7922
7923 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
7924
7925         * arm.c: Miscellaneous white space and comment clean-ups.  No
7926         functional change.
7927         * arm.md: Likewise.
7928
7929 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7930
7931         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
7932         STRING_CST by calling combine_strings.
7933
7934 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
7935
7936         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
7937         (thumb_output_move_mem_multiple): Support new insn format.
7938         * arm.md (movmem12b): Use SSA compatible format.
7939         (movmem8b): Likewise.
7940
7941 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
7942
7943         * arm.md (predicable): New attribute, default to "no".
7944         (all patterns): Mark as predicable if appropriate.
7945         (conditional execution splits): Split using predication format.
7946         (define_cond_exec): Define.
7947         * arm.c (arm_print_operand): handle insn predicate.
7948
7949 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7950
7951         * README.NS32K: Remove file.
7952
7953 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7954
7955         * README-bugs: Remove file.
7956
7957 2000-10-08  Philipp Thomas  <pthomas@suse.de>
7958         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
7959         for test.
7960         * configure: Rebuilt.
7961
7962 2000-10-08  Philipp Thomas  <pthomas@suse.de>
7963         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
7964         disable catalog building if no suitable program was found.
7965         Move warning message from here
7966         (AM_GNU_GETTEXT): To here.
7967         * configure: Rebuilt.
7968
7969 2000-10-08  Philipp Thomas  <pthomas@suse.de>
7970         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
7971         different cache variables.
7972         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
7973         uses different cache variables.
7974         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
7975         * configure: Regenerated.
7976
7977 2000-10-08  Richard Henderson  <rth@cygnus.com>
7978
7979         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
7980         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
7981         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
7982         Use SHLIB_EXT.
7983
7984         * config/t-linux (SHLIB_EXT): New.
7985         (SHLIB_LINK): Use the entire build command, with substitutions.
7986         (SHLIB_LIBS): Remove.
7987         * config/alpha/t-osf4: Likewise.
7988         * config/mips/t-iris6: Likewise.
7989         * config/sparc/t-sol2: Likewise, but move shlib stuff...
7990         * config/sparc/t-slibgcc-sld: ...here.
7991         * config/sparc/t-slibgcc: New file.
7992
7993 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7994
7995         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
7996         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
7997         CTI_UINTMAX_TYPE.
7998         (intmax_type_node, uintmax_type_node): Define.
7999         * c-common.c (decl_attributes): If pedantic, warn if `mode'
8000         attributes create a type wider than intmax_t.
8001         (T_IM, T_UIM): Define properly.
8002         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
8003         defined.
8004         (init_decl_processing): Initialize intmax_type_node and
8005         uintmax_type_node.
8006         * c-lex.c (lex_number): When pedantic and warning for integer
8007         constants that are too large, in C99 mode warn for those that have
8008         a type wider than long long.
8009
8010 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8011
8012         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
8013         FMT_FLAG_FANCY_PERCENT_OK): Define.
8014         (format_char_info): Add flag "4" to comment.
8015         (format_flag_spec, format_flag_pair): New structures.
8016         (format_kind_info): Add additional fields to control format
8017         checking.
8018         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
8019         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
8020         arrays.
8021         (time_char_table): Use "4" flag to handle %Ey.
8022         (format_types): Add entries for new fields.
8023         (get_flag_spec): New function.
8024         (check_format_info): Increase size of flag_chars[] to 256.
8025         Control format checking using the new fields of a format_kind_info
8026         and the new tables; remove all conditionals on printf_format_type,
8027         scanf_format_type or strftime_format_type.  Handle all details of
8028         bad combinations of flags (including width, precision and strftime
8029         modifiers) through data rather than ad hoc code.  Handle all
8030         details of standard versions in which flags appeared through
8031         data.  Use the "4" flag.
8032
8033 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
8034
8035         * config/h8300/h8300.md: Remove the memory alternative and correct
8036         the insn lengths in the templates for sign extention and zero
8037         extention.
8038
8039 2000-10-07  Richard Henderson  <rth@cygnus.com>
8040
8041         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
8042         * flow.c (make_edges): Revert last change.
8043
8044         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
8045         TREE_THIS_VOLATILE.
8046         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
8047
8048 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
8049
8050         * config/alpha/elf.h: Standardize the formatting.
8051
8052 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
8053
8054         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
8055         #undef.
8056
8057 2000-10-06  Richard Henderson  <rth@cygnus.com>
8058
8059         * function.c (diddle_return_value): Examine
8060         current_function_return_rtx instead of the DECL_RESULT.
8061         (expand_function_end): Handle reloading DECL_RESULT from memory
8062         into a hard register.  Query promote_mode for sign of mismatched
8063         modes.
8064
8065 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
8066
8067         * haifa-sched.c (schedule_insns): Fix typo in freeing
8068         forward_dependency_cache.
8069
8070 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
8071
8072         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
8073         `TARGET_SH2' as a condition.
8074
8075 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
8076
8077         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
8078         forward_dependency_cache): New variables.
8079         (add_dependence, remove_dependence): Use anti_dependency_cache and
8080         output_dependency_cache.
8081         (compute_block_forward_dependences): Use forward_dependency_cache.
8082         (schedule_insns): Allocate and free memory for anti/output/forward
8083         dependencies caches.
8084
8085 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
8086
8087         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
8088         `! TARGET_SH1'.  Reindent.
8089
8090 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8091
8092         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
8093         Move functions from here ...
8094
8095         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
8096         ... to here.
8097         (c_expand_builtin): New function.
8098         (init_function_format_info): Don't set `check_function_format_ptr'.
8099         (c_common_nodes_and_builtins): Set built_in_class type for
8100         printf/__builtin_printf to BUILT_IN_FRONTEND.
8101         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
8102
8103         * c-common.h (build_function_call): Declare.
8104
8105         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
8106         to `lang_expand_expr' rather than `expand_builtin'.
8107
8108         * tree.c (check_function_format_ptr): Delete.
8109
8110         * tree.h (check_function_format_ptr): Likewise.
8111
8112 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
8113
8114         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
8115         DW_OP_bregx when cfa->reg > 31.
8116
8117         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
8118         break.
8119
8120 2000-10-05  Richard Henderson  <rth@cygnus.com>
8121
8122         * c-decl.c (warn_missing_noreturn): Remove.
8123         (c_expand_body): Don't set or check can_reach_end.
8124         * c-tree.h (warn_missing_noreturn): Move ...
8125         * flags.h: ... here.
8126         (can_reach_end): Remove.
8127         * flow.c (check_function_return_warnings): New.
8128         (make_edges): No edge to exit for noreturn sibcalls.
8129         * function.c (expand_function_end): Save the return value
8130         clobber instruction.
8131         (mark_function_status): Mark it.
8132         * function.h (struct function): Add x_clobber_return_insn.
8133         * jump.c (can_reach_end): Remove.
8134         (calculate_can_reach_end): Remove.
8135         (jump_optimize_1): Don't call it.
8136         * output.h (check_function_return_warnings): Declare.
8137         * toplev.c (warn_missing_noreturn): Move from c-decl.c
8138         (rest_of_compilation): Call check_function_return_warnings.
8139
8140 2000-10-05  Richard Henderson  <rth@cygnus.com>
8141
8142         * Makefile.in (NM_FOR_TARGET): New.
8143         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
8144         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
8145         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
8146         shared library build on that and EXTRA_MULTILIB_PARTS.
8147         * mkmap-flat.awk: New file.
8148         * mkmap-symver.awk: New file.
8149         * libgcc-std.ver: New file.
8150         * config/libgcc-glibc.ver: New file.
8151         * config/ia64/libgcc-ia64.ver: New file.
8152         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
8153         (SHLIB_LINK): Add --version-script.
8154         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
8155         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
8156         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
8157         (SHLIB_LINK): Add -M.
8158
8159 2000-10-05  Richard Henderson  <rth@cygnus.com>
8160
8161         * Makefile.in (LIB2FUNCS): Add _clz.
8162         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
8163         (__clz_tab): Put in its own unit, non-static.
8164         * libgcc2.h: Always include longlong.h.
8165
8166         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
8167         a zero instead of -1.
8168         (count_trailing_zeros): Likewise.
8169
8170 2000-10-05  Richard Henderson  <rth@cygnus.com>
8171
8172         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
8173         when second op1 is const0_rtx.  Validate op0 as a register.
8174         * config/alpha/alpha.md (setcc_internal): Don't allow constants
8175         in the first argument of the compare.
8176         (setcc_swapped_internal): Likewise.
8177         (setne_internal): Likewise.
8178
8179 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
8180
8181         * tree.c (tree_size): New function split out of copy_node.
8182         (make_node): Remove obstack handling.  Use tree_size.
8183         (copy_node): Use tree_size.
8184         * tree.h: Prototype tree_size.
8185
8186 2000-10-05  Richard Henderson  <rth@cygnus.com>
8187
8188         * diagnostic.c (output_format): Add missing break.
8189
8190 2000-10-05  Jim Wilson  <wilson@cygnus.com>
8191
8192         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
8193         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
8194         sequence insn to INSN, and delete last sequence insn.
8195
8196 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
8197
8198         * gcc.c (main): Include generated configargs.h header
8199         and use arguments in '-v' output.
8200
8201 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8202
8203         * gcc.c: Move data on prefixes forward in file and reorganize.
8204         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
8205         Always define, but make null if no value.
8206         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
8207         and "md_startfile_prefix_1".
8208         (main): Check whether md_exec_prefix and the others are the
8209         null string rather than whether the macro is defined.
8210
8211 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
8212
8213         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
8214         from PSImode to SImode.
8215
8216 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
8217
8218         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
8219         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
8220         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
8221         sizeof(long).
8222
8223 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8224
8225         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
8226         negation in proper type.a
8227
8228 2000-10-04  Richard Henderson  <rth@cygnus.com>
8229
8230         * configure.in (enable-shared): New.
8231         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
8232         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
8233         * mklibgcc.in: Use them to link shared a libgcc.
8234         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
8235         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
8236         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
8237         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
8238
8239         * configure.in (alpha-osf*): Use t-osf and x-osf.
8240         * config/alpha/t-osf: New file.
8241         * config/alpha/t-osf4: New file.
8242         * config/alpha/x-osf: New file.
8243         * config/alpha/x-alpha: Remove file.
8244
8245 2000-10-04  Will Cohen  <wcohen@redhat.com>
8246
8247         * c-typeck.c (process_init_element): Added warning for zero-length
8248         array.
8249
8250         * extend.texi (Zero Length): State that static initializers for
8251         zero-length arrays are not allowed.
8252
8253 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8254
8255         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
8256         to come last.
8257
8258 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8259
8260         * config/float-c4x.h: New.
8261         * configure.in (c4x-*): Set float_format to c4x.
8262         * configure: Regenerate.
8263
8264 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8265
8266         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
8267         compilation for solaris versions 2.7 and greater.
8268
8269 2000-10-02  Marc Espie <espie@openbsd.org>
8270
8271         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
8272         instead of redefining from scratch.
8273
8274 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
8275
8276         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
8277
8278 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
8279
8280         * config/ns32k/genix.h: Remove.
8281         * config/ns32k/x-genix: Likewise.
8282         * config/ns32k/xm-genix.h: Likewise.
8283         * config/fx80: Remove all filee in directory.
8284         * config/pyr: Likewise.
8285         * config/tahoe: Likewise.
8286         * config/gmicro: Likewise.
8287         * config/spur: Likewise.
8288         * configure.in: Remove configury bits for above targets.
8289         * configure: Regenerated.
8290
8291         * configure.in: Don't configure chill by default.
8292         * configure: Regenerated.
8293
8294         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
8295         (lang_mark_false_label_stack): Remove.
8296         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
8297         <top level> string in GC area.
8298         (mark_splay_tree_node): New function.
8299         (mark_splay_tree): Likewise.
8300         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
8301         if it exists.
8302         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
8303         * ggc-common.c (lang_mark_false_label_stack): Change type.
8304         * ggc.h (ggc_alloc_string): Add comment.
8305         (ggc_strdup): New function.
8306
8307 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
8308
8309         * config/avr/avr.h (BRANCH_COST): Define as 0.
8310
8311         * config/pdp11/pdp11.c: #include "tree.h" added.
8312
8313 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
8314
8315         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
8316         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
8317         with known shift count.
8318         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
8319         New alternative for shift count 2 with no scratch register.
8320         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
8321         "set_n" for shift counts 1 and 2.
8322
8323 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
8324
8325         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
8326         the mask value from the individual SET operations.
8327         (return_internal_si): Move the USE after the RETURN.
8328         (return_internal_di): Likewise.
8329         (return_and_restore_fpregs_si): Likewise.
8330         (return_and_restore_fpregs_di): Likewise.
8331         (return_eh_si): Likewise.
8332         (return_eh_di): Likewise.
8333         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
8334         or check, the USE.
8335         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
8336         Don't generate a PARALLEL around a single operation movsi_to_cr.
8337         Generate the RETURN first in any PARALLELs.
8338
8339         * rtlanal.c (single_set_1): Use fatal_insn to display the
8340         invalid insn.  Check for more cases when a USE or CLOBBER occurs
8341         before a SET.
8342         * Makefile.in: Update dependencies for rtlanal.o.
8343
8344 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
8345
8346         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
8347
8348 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
8349
8350         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
8351         Consistently use @email for formatting email addresses.
8352
8353 2000-09-29  Richard Henderson  <rth@cygnus.com>
8354
8355         * cse.c (notreg_cost): New argument outer.
8356         (COST): Pass in SET to notreg_cost
8357         (COST_IN): New.
8358         (fold_rtx): Use COST_IN.  Prefer constants when costs
8359         are the same.
8360
8361 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
8362
8363         * fixinc/inclhack.def (broken_cabs): Generalize regex.
8364         * fixinc/fixincl.x: Regenerate.
8365
8366 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8367
8368         * loop.c (check_final_value): A GIV is not replaceable if used
8369         before set.
8370
8371 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
8372
8373         * version.c: Bump to gcc-2.97.
8374
8375 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8376
8377         * final.c (final_scan_insn): Remove extra extract_insn call;
8378         Use caching for constrain_operands.
8379         (cleanup_subreg_operands): Use caching for extract_insn.
8380         * recog.c (constrain_operands_cached): New.
8381         * recog.h (constrain_operands_cached): Declare.
8382         * i386.c (ix86_attr_length_immediate_default,
8383         ix86_attr_length_address_default, ix86_agi_dependant): Cache
8384         extract_insn call.
8385
8386         * recog.c (asm_noperands): Tweak.
8387         (extract_insn): Do not call asm_noperads for non-asm instructions.
8388
8389 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8390
8391         * recog.c (recog_memoized): Rename to recog_memoized_1.
8392         * recog.h (recog_memoized): Rename to recog_memoized_1.
8393         (recog_memoized): New macro.
8394         * rtl.h (single_set): Rename to single_set_1
8395         (single_set): New macro.
8396         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
8397         to be last.
8398
8399         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
8400         Do not use match_dup of input operands at outputs.
8401         Use register_operand for memory expression.
8402         (rep_movsi): Put use last, canonicalize.
8403         Use register_operand for memory expression.
8404         (rep_movqi): Put use last.
8405         Use register_operand for memory expression.
8406         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
8407         of input operands at outputs.  Use register_operand for memory
8408         expression.
8409         (rep_stossi): Put use last; canonicalize; fix match_dup in
8410         the address expression
8411         (rep_stosqi): Likewise.
8412         (memcmp expander): Update calls.
8413         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
8414         the clobbers.
8415
8416         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
8417         VOIDmode.
8418         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
8419
8420 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
8421
8422         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
8423         Contains the old contents of config/i386/freebsd.h
8424         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
8425         Contains the old contents of config/i386/freebsd-elf.h
8426         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
8427         config/i386/freebsd.h.
8428         * configure.in: Adjust for above changes.
8429         * po/POTFILES.in: Likewise.
8430         * po/en_GB.po: Likewise.
8431         * po/gcc.pot: Likewise.
8432         * configure: Rebuilt.
8433
8434 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8435
8436         * doloop.c (doloop_modify): Prevent delete_insn() from
8437         deleting too much.  Prefer loop->top over loop->start as
8438         target for the new JUMP insn.
8439         (doloop_valid_p): Ignore loop with exit_count != 0.
8440
8441 2000-09-28  Philipp Thomas  <pthomas@suse.de>
8442
8443         * invoke.texi (i386 Options): Add athlon to table of possible
8444         choices for -mcpu=.
8445
8446 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
8447
8448         * diagnostic.h (output_clear_message_text): New function.
8449         (output_message_text): New macro.
8450
8451         * diagnostic.c (clear_text_info): Rename to
8452         output_clear_message_text.
8453         (output_clear): Adjust.
8454         (output_finish): Rename to output_finalize_message.  Tweek.
8455         (output_to_stream): Adjust.
8456
8457 2000-09-28  Neil Booth  <neilb@earthling.net>
8458
8459         * cpperror.c (_cpp_begin_message):  Do the test for suppression
8460         of warnings and pedantic warnings before the "is a warning an
8461         error" tests.
8462         * cppinit.c (cpp_handle_option): Remove surplus \n.
8463         * cpplex.c (ON_REST_ARG): Delete.
8464         (skip_block_comment): Initialise prevc.
8465         (parse_args): Improve error messages.
8466         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
8467         than ON_REST_ARG.
8468         * cpplib.c (cpp_push_buffer): Fix grammar in message.
8469         * cppmain.c (main): Set callbacks for #ident and #pragma
8470         only if no_output option is false.
8471         (do_pragma_implementation): Only call the #pragma handler
8472         if it is set in the cpp_reader structure.
8473
8474 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
8475
8476         * integrate.c (copy_insn_list): if an ignored return value
8477         is being clobbered, skip cloning that into the inline copy.
8478
8479 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
8480
8481         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
8482         use @uref for formatting URLs.
8483
8484 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
8485
8486         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
8487         name and prefix.
8488
8489 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
8490
8491         * gcc.c (cpp_options): Add spec for -ftabstop=.
8492         (invoke_as): New spec that handles invoking as.
8493         Update specs to handle -save-temps and -traditional.
8494         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
8495         Use invoke_as.
8496         * cp/lang-specs.h, objc/lang-specs.h: Update to use
8497         invoke_as, and handle -save-temps and -traditional (if
8498         appropriate).
8499
8500 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
8501
8502         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
8503         op0 is a SUBREG.
8504         (function_arg_slotno): Accept TImode/CTImode.
8505         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
8506         to UNITS_PER_WORD.
8507
8508 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
8509
8510         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
8511         from entry block.
8512
8513 2000-09-25  Jim Wilson  <wilson@cygnus.com>
8514
8515         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
8516         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
8517         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
8518         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
8519
8520 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
8521
8522         * cpplex.c (parse_args): Don't set VOID_REST flag.
8523         (CONTEXT_VARARGS): New flag.
8524         (maybe_paste_with_next): Set context earlier in loop.  Use
8525         it.  Do varargs test with CONTEXT_VARARGS flag.
8526         (push_arg_context): Set CONTEXT_VARARGS flag if we're
8527         pushing an argument context for a varargs argument.
8528         * cpplib.h (VOID_REST): Delete.
8529         * gcc.dg/cpp/vararg1.c: Add test case.
8530
8531 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
8532
8533         * flags.h:  Declare warning flag warn_system_headers.
8534         * toplev.c:  Define it.
8535         (W_options): Add option -Wsystem-headers.
8536         * diagnostic.c (count_error): Test warn_system_headers.
8537         * invoke.texi:  Add description for -Wsystem-headers.
8538         * cpplib.h (cpp_options): New member warn_system_headers.
8539         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
8540         CPP_IN_SYSTEM_HEADER.
8541         * cpplib.c (do_import, do_pragma_once): Likewise.
8542         * cpperror.c (_cpp_begin_message): Test warn_system_headers
8543         and CPP_IN_SYSTEM_HEADER.
8544         * cppinit.c (handle_option): Recognize -Wsystem_headers.
8545         (print_help): Describe -Wsystem_headers.
8546         * cpplex.c (lex_line): Reorganize condition so that warnings
8547         about C++ comments in system headers can be enabled. Remove
8548         label do_line_comment.
8549
8550 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
8551
8552         * cpplex.c (save_comment): Only store the initial '/'
8553         now.
8554         (lex_token): Combine handling of the two comment types.
8555         Pass everything but the initial '/' to save_comment.
8556
8557 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
8558
8559         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
8560         _cpp_can_paste): New library-internal prototypes.
8561         * cpplex.c (dump_param_spelling, output_line_command,
8562         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
8563         cpp_printf, cpp_output_list): Move to cppoutput.c.
8564         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
8565         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
8566         cppoutput.c.
8567         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
8568         dump_param_spelling, output_line_command, cpp_scan_buffer,
8569         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
8570         from elsewhere.
8571         * Makefile.in: Add cppoutput.c.
8572         * po/POTFILES.in: Add cppoutput.c.
8573
8574 2000-09-25  Richard Henderson  <rth@cygnus.com>
8575
8576         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
8577         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
8578         split until after reload.
8579         (rotlsi3, rotldi3): New.
8580
8581 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
8582
8583         * diagnostic.c (output_last_position): Define.
8584         (set_real_maximum_length): Tweek.
8585         * diagnostic.h (output_last_position): Declare.
8586
8587 2000-09-25  Kazu Hirata  <kazu@hxi.com>
8588
8589         * config/i386/i386.c: Fix formatting.
8590
8591 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
8592
8593         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
8594         UNITS_PER_WORD is small.
8595
8596 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
8597
8598         * c-common.c (format_char_info): Add flags2; update comments.
8599         (print_char_table, scan_char_table, time_char_table): Split some
8600         flags out into flags2.
8601         (check_format_info): Use flags2 for those flags, for identifying
8602         the initial character of a scanf scanset, and for identifying
8603         printf formats where the '0' flag is ignored with precision.
8604
8605 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
8606
8607         Changes below marked "here" add TABs on either or both sides,
8608         covering start of line, up to any operand for all noted .*ASM.*_OP
8609         definitions.  All callers changed.
8610         * tm.texi: Make documented *_ASM.*_OP:s include spacing
8611         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
8612         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
8613         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
8614         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
8615         Fix typos in description for LONG_LONG_TYPE_SIZE and
8616         FINI_SECTION_ASM_OP.
8617         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
8618         why these defaults don't have leading spacing.
8619         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
8620         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8621         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
8622         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
8623         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
8624         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
8625         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
8626         * varasm.c (ASM_STABS_OP): Here.
8627         * xcoffout.h (ASM_STABS_OP): Here.
8628         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
8629         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
8630         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
8631         STRING_ASM_OP): Here.
8632         * config/freebsd.h (IDENT_ASM_OP): Here.
8633         * config/linux-aout.h (SET_ASM_OP): Here.
8634         * config/linux.h (SET_ASM_OP): Here.
8635         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8636         INT_ASM_OP): Here.
8637         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
8638         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
8639         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
8640         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8641         INT_ASM_OP): Here.
8642         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
8643         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
8644         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
8645         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
8646         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
8647         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8648         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
8649         * config/a29k/udi.h (INT_ASM_OP): Here.
8650         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
8651         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
8652         SET_ASM_OP): Here.
8653         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
8654         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8655         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8656         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
8657         ASM_STABD_OP): Here.
8658         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
8659         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
8660         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8661         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
8662         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
8663         SIZE_ASM_OP, STRING_ASM_OP): Here.
8664         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
8665         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
8666         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
8667         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
8668         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
8669         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
8670         Here.
8671         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8672         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
8673         * config/arm/coff.h (INT_ASM_OP): Here.
8674         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
8675         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
8676         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
8677         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
8678         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
8679         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8680         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
8681         STRING_ASM_OP): Here.  Update documentation copy in comments.
8682         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
8683         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
8684         DATA_SECTION_ASM_OP): Here.
8685         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
8686         Here.
8687         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
8688         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
8689         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8690         BSS_SECTION_ASM_OP): Here.
8691         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8692         BSS_SECTION_ASM_OP): Here.
8693         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8694         Here.
8695         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
8696         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
8697         * config/h8300/h8300.h (ASM_WORD_OP): Here.
8698         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8699         BSS_SECTION_ASM_OP): Here.
8700         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
8701         * config/i386/bsd.h (ASM_BYTE_OP): Here.
8702         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
8703         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
8704         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
8705         Here.
8706         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
8707         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
8708         Here.
8709         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
8710         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
8711         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
8712         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
8713         SET_ASM_OP): Here.
8714         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
8715         * config/i386/netbsd.h (INT_ASM_OP): Here.
8716         * config/i386/openbsd.h (INT_ASM_OP): Here.
8717         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
8718         IDENT_ASM_OP): Here.
8719         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
8720         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
8721         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
8722         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
8723         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
8724         SHARED_BSS_SECTION_ASM_OP): Here.
8725         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
8726         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
8727         DATA_SECTION_ASM_OP): Here.
8728         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8729         CONST_SECTION_ASM_OP): Here.
8730         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
8731         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8732         BSS_SECTION_ASM_OP): Here.
8733         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
8734         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
8735         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
8736         BSS_ASM_OP): Here, but use trailing spaces.
8737         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
8738         DATA_SECTION_ASM_OP): Here.
8739         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
8740         Here.
8741         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
8742         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
8743         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8744         TDESC_SECTION_ASM_OP): Here.
8745         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
8746         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
8747         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8748         Here.
8749         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8750         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
8751         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8752         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
8753         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
8754         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
8755         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8756         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
8757         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
8758         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
8759         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
8760         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
8761         SET_ASM_OP): Here.
8762         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
8763         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
8764         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
8765         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
8766         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
8767         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
8768         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
8769         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8770         GLOBAL_ASM_OP): Here.
8771         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
8772         BSS_SECTION_ASM_OP): Here.
8773         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
8774         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8775         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
8776         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
8777         SKIP_ASM_OP): Here.
8778         * config/m68k/newsgas.h (SET_ASM_OP): Here.
8779         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
8780         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
8781         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
8782         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
8783         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
8784         but use trailing spaces.
8785         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
8786         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
8787         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
8788         Here.
8789         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
8790         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
8791         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8792         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
8793         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8794         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
8795         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
8796         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
8797         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
8798         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
8799         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8800         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
8801         ASM_BYTE_OP): Here.
8802         * config/m88k/openbsd.h (SET_ASM_OP): Here.
8803         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8804         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
8805         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
8806         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
8807         DTORS_SECTION_ASM_OP): Here.
8808         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
8809         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
8810         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
8811         BSS_SECTION_ASM_OP): Here.
8812         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
8813         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
8814         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
8815         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
8816         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
8817         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
8818         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
8819         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
8820         Here.
8821         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
8822         Here.
8823         * config/mips/osfrose.h (SET_ASM_OP): Here.
8824         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
8825         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
8826         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
8827         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8828         Here.
8829         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
8830         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
8831         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
8832         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
8833         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
8834         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8835         Here.
8836         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8837         Here.
8838         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
8839         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
8840         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
8841         Here.
8842         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
8843         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
8844         * config/sparc/linux.h (COMMON_ASM_OP): Here.
8845         * config/sparc/linux64.h (COMMON_ASM_OP,
8846         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
8847         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
8848         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
8849         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
8850         * config/sparc/pbd.h (ASM_INT_OP): Here.
8851         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
8852         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
8853         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
8854         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
8855         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
8856         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
8857         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
8858         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
8859         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
8860         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
8861         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
8862         EH_FRAME_SECTION_ASM_OP): Here.
8863         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
8864         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8865         Here.
8866         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8867         Here.
8868         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
8869         TCOMMON_ASM_OP): Here.
8870         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
8871         Here.
8872         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
8873         ASM_BYTE_OP): Here.
8874
8875 2000-09-25  Richard Henderson  <rth@cygnus.com>
8876
8877         * expmed.c (store_bit_field): Adjust last change to not consider
8878         any word-sized field naturally aligned.
8879
8880 2000-09-24  Richard Henderson  <rth@cygnus.com>
8881
8882         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
8883         TFmode unordered compares properly.  Revalidate integer compare
8884         operands.
8885         (alpha_emit_setcc): New.
8886         (alpha_emit_conditional_move): Revalidate integer compare operands.
8887         * config/alpha/alpha-protos.h: Update.
8888         * config/alpha/alpha.md (cmpdi): Allow general operands.
8889         (sne): Use alpha_emit_setcc.
8890         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
8891         (sunordered, sordered): New.
8892
8893 2000-09-24  Richard Henderson  <rth@cygnus.com>
8894
8895         * config/ia64/ia64-protos.h: Update.
8896         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
8897         (ia64_expand_call): New.
8898         (ia64_expand_prologue): Emit an alloc if we need extra input
8899         registers.
8900         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
8901         instruction if true.
8902         (struct reg_flags): Add is_sibcall.
8903         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
8904         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
8905         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
8906         * config/ia64/ia64.h (PREDICATE_CODES): Update.
8907         * config/ia64/ia64.md (call): Use ia64_expand_call.
8908         (call_value): Likewise.
8909         (sibcall, sibcall_value): New.
8910         (call patterns): Remove extra expanders; tidy.
8911         (sibcall_epilogue): New.
8912         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
8913
8914 2000-09-24  Richard Henderson  <rth@cygnus.com>
8915
8916         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
8917
8918         * sibcall.c (skip_pic_restore): New.
8919         (identify_call_return_value): Use it.
8920
8921 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
8922
8923         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
8924         functions.  Generalize to handle both C and C++.
8925         * Makefile.in (c-tree.info): New target.
8926         (info): Add c-tree.info.
8927
8928 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8929
8930         * expr.c (store_field): If BITSIZE is negative, use size of type.
8931         (expand_expr, case COMPONENT_EXPR): Likewise.
8932
8933 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
8934
8935         * cpplex.c: Update TODO comment.
8936         * cpplib.c (do_error, do_warning): Merge common code of
8937         do_error and do_warning into do_diagnostic.  Use it.
8938         (do_diagnostic): New function.
8939         * cpplib.h: Fix comment typo.
8940
8941 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
8942
8943         * c-common.c (check_format_info): Warn for a wide character string
8944         used as a non-wide format argument.
8945
8946 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
8947
8948         * builtins.def (BUILT_IN_LLABS): Add.
8949         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
8950         * c-common.c (c_common_nodes_builtins): Create builtin functions
8951         __builtin_llabs, and plain llabs unless no_nonansi_builtins
8952         outside of C99 mode.
8953         (expand_tree_builtin): Handle BUILT_IN_LLABS.
8954
8955 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
8956
8957         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
8958         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
8959         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
8960         _cpp_free_toklist): No need to worry about extra dummy token
8961         at the start of token lists any more.
8962         (trigraph_ok): Only warn outside comments.
8963         (skip_block_comment): Set and clear lexing_comment.
8964         (skip_line_comment): Take a cpp_reader not cpp_buffer.
8965         Set and clear lexing_comment.
8966         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
8967         (check_long_token): Delete.
8968         (lex_percent, lex_dot): New subroutines of lex_token to
8969         handle lexing of '.' and '%' without lookback.
8970         (lex_token): Use lex_dot and lex_percent.
8971         (lex_line): Don't check for LIST_OFFSET.
8972         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
8973         * cpplib.c (_cpp_parse_assertion): Similarly.
8974         (cpp_push_buffer): Initialize extra_char.
8975         * cpplib.h (LIST_OFFSET): Delete.
8976         (struct cpp_buffer): New member extra_char.
8977         (struct lexer_state): New members lexing_comment and seen_dot.
8978
8979 2000-09-23  Jason Merrill  <jason@redhat.com>
8980
8981         * config/rs6000/x-aix41 (CLIB): Define here.
8982         * config/rs6000/t-aix43: Not here.
8983         * config/rs6000/t-aix41: Or here.  Remove.
8984         * configure.in: Don't use it.
8985
8986 2000-09-22  Jason Merrill  <jason@redhat.com>
8987
8988         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
8989         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
8990         * config.in: Regenerate.
8991
8992         * configure.in: Fix checks for assembler features when using a
8993         one-tree assembler that has not yet been built.
8994         Fix --disable-threads.
8995
8996 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
8997
8998         * stmt.c (expand_asm_operands): Allow # in constraints.
8999
9000 2000-09-22  Jason Merrill  <jason@redhat.com>
9001
9002         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
9003
9004         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
9005         function-local names.
9006
9007 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
9008             Mark Mitchell  <mark@codesourcery.com>
9009
9010         * toplev.c (warn_disabled_optimization): Declare new warning flag.
9011         * flags.h (warn_disabled_optimization): Add it here.
9012         * gcse.c (gcse_main): Add warning when disabled.
9013         * invoke.texi: Document -Wdisabled-optimization.
9014
9015 2000-09-21  Jason Merrill  <jason@redhat.com>
9016
9017         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
9018
9019         * dwarf2out.c (tree_add_const_value_attribute): New fn.
9020         (gen_variable_die): Call it for non-definitions.
9021
9022         * dwarf2out.c (die_struct): Add die_mark field.
9023         (mark_dies, unmark_dies): New fns.
9024         (clear_die_sizes): Remove.
9025         (print_die): Check die_symbol rather than die_offset.
9026         (build_abbrev_table, output_pubnames, output_aranges): Check
9027         die_mark rather than die_offset.
9028         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
9029         Call mark_dies.
9030
9031 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
9032
9033         * cppfiles.c (lookup_include_file): Rename to open_file.
9034         Always create a splay tree value, even on syscall failures.
9035         Negative entries indicated by fd == -2.
9036         Re-open files closed in the meantime.
9037         (_cpp_fake_include): Create a negative splay tree entry.
9038         (find_include_file, cpp_read_file): Update for function name
9039         change.
9040         * gcc.gd/cpp/mi4.c: Testcase.
9041
9042 2000-09-21  Nick Clifton  <nickc@redhat.com>
9043
9044         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
9045         ARM and THUMB modes.
9046
9047         * config/mcore/mcore.c: Fix compile time warnings.
9048         * config/mcore/mcore-protos.h: Fix compile time warnings.
9049
9050 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9051
9052         * configure.in: Correct test of gcc_cv_glibc.
9053         * configure: Rebuilt.
9054         * config.in: Rebuilt.
9055
9056 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9057
9058         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
9059         (expand_builtin): Handle BUILT_IN_FWRITE.
9060
9061         * builtins.def (BUILT_IN_FWRITE): New entry.
9062
9063         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
9064
9065 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9066
9067         * gcc.c (modify_target): New variable and struct.
9068         (process_command): Handle MODIFY_TARGET_NAME.
9069         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
9070         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
9071
9072         * c-decl.c (finish_decl): Add else's to avoid referencing
9073         TYPE_DOMAIN of an ERROR_MARK.
9074
9075 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
9076
9077         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
9078         `reload_in*' insns.
9079
9080 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
9081
9082         * config/avr/avr.md (neghi2): Add alternative for input and output
9083         operands in different registers, as in negsi2.
9084         (*negsi2): Remove '*' from the name.  Use "movw" if available.
9085
9086 2000-09-19  Jim Wilson  <wilson@cygnus.com>
9087
9088         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
9089         HAVE_GAS_HIDDEN macro.
9090
9091 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
9092
9093         * cpplex.c (lex_line): Drop the EOF token for unknown
9094         directives in assembler.
9095
9096 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
9097
9098         * configure.in: Allow enable_threads_flag value of "aix".  Define
9099         thread_file as "aix" for AIX 4.3 and above.
9100         * configure: Regenerated.
9101
9102         * gthr-aix.h: New file.
9103
9104         * rs6000/t-aix43: Replace soft-float multilib with pthread.
9105         Remove 403 processor multilib match.  Fix rios2 processor multilib
9106         match.
9107
9108         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
9109         to return to appropriate csect.
9110
9111 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9112
9113         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
9114         functions.
9115         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
9116         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
9117         BUILT_IN_PRINTF.
9118
9119         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
9120         New entries.
9121
9122         * c-common.c (init_function_format_info): Handle __builtin_printf.
9123         Set `check_function_format_ptr'.
9124         (c_common_nodes_and_builtins): Set `puts_ftype' and
9125         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
9126         __builtin_printf and printf.
9127
9128         * tree.c, tree.h (check_function_format_ptr): Declare.
9129
9130 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
9131
9132         * cppfiles.c (read_include_file): Take no special action for
9133         zero-length files.
9134
9135 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
9136
9137         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
9138         rather than that of branch.
9139         (shorten_branches): Don't increment insn_current_address twice.
9140
9141         Undo most of the Wed Jan 27 23:39:53 1999 patch:
9142         * loop.h (struct induction): Delete members derived, ix and last_use.
9143         (struct loop_ivs): Delete members first_increment_giv and
9144         last_increment_giv.
9145         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
9146         recombine_givs): Delete functions.
9147         (find_and_verify_loops): Don't initialize cont_dominator.
9148         (strength_reduce): Lose code to try to find bivs that can be
9149         expressed as givs of another biv, and to convert biv increments
9150         into givs.
9151         Lose loop_scan_start variable, always use loop->scan_start.
9152         Don't call recombine_givs.  Don't handle derived givs.
9153         (record_giv): Don't initialize derived and last_use fields.
9154         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
9155         givs.
9156         * unroll.c (derived_regs): Delete static variable.
9157         (unroll_loop): Don't initialize it.
9158         (copy_loop_body): Lose code to handle derived givs.
9159         (find_splittable_givs): Don't check for givs made from biv
9160         increments.
9161         Don't set derived_regs.
9162
9163         Fix misapplied earlier patch:
9164         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
9165         to fpul.
9166         (floatsisf2): Generate floatsisf_ie by default.
9167         (floatsisf_i4): Conditional on TARGET_SH4.
9168
9169         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
9170         predicate for the expanders.
9171
9172 2000-09-19  Richard Henderson  <rth@cygnus.com>
9173
9174         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
9175         in addition to pentium and pentiumpro symbols.
9176         (CPP_CPU_DEFAULT_SPEC): Likewise.
9177
9178         * c-typeck.c (c_expand_asm_operands): Restore the output tree
9179         after expanding.
9180
9181         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
9182         if the tree has side effects.
9183         (warn_if_unused_value): Do not warn about void constructs.
9184
9185         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
9186
9187         * unroll.c (copy_loop_body): Update LABEL_NUSES before
9188         calling invert_jump.
9189
9190 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
9191
9192         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
9193         into anything.
9194
9195 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9196
9197         * Makefile.in (c-common.o): Depend on diagnostic.h.
9198
9199         * c-common.c: Include diagnostic.h.
9200         (tfaff): Delete.
9201         (status_warning): New function.
9202         (check_format_info, maybe_read_dollar_number, check_format_types,
9203         finish_dollar_format_checking, check_function_format): Accept a
9204         `status' parameter.  All callers changed.
9205
9206         * c-common.h (check_function_format): Accept a `status' parameter.
9207
9208         * c-typeck.c: Update call to `check_function_format'.
9209
9210 2000-09-18  Richard Henderson  <rth@cygnus.com>
9211
9212         * c-decl.c (c_expand_body): Call mark_varargs before
9213         expand_function_start.
9214
9215 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
9216
9217         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
9218         * config/rs6000/eabi-ci.asm: Likewise.
9219
9220 2000-09-18  Richard Henderson  <rth@cygnus.com>
9221
9222         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
9223         for BImode.
9224
9225 2000-09-18  Jim Wilson  <wilson@cygnus.com>
9226
9227         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
9228         before passing it to fold_rtx_mult_add.
9229
9230         * unroll.c (final_giv_value): Pass increment through
9231         extend_value_for_giv before passing it to emit_iv_add_mult.
9232
9233         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
9234         paradoxical subreg, then directly substitute the replacement and
9235         return.
9236
9237 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
9238
9239         * cpp.texi: Update documentation, including some clarifications,
9240         the treatment of various newline combinations, and space between
9241         backslash and newline.
9242
9243 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
9244
9245         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
9246         Replace ASM_OUTPUT_LABELREF with assemble_name.
9247
9248 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
9249
9250         * sh.c (addsubcosts): CONST is not cheap.
9251         (find_barrier): For Sh1, take alignment after jumps into account.
9252
9253 2000-09-15  Andrew Haley  <aph@redhat.com>
9254
9255         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
9256         remove all SETs of SUBREGs of hard registers.
9257         * function.c (purge_hard_subreg_sets): New function.
9258         (purge_single_hard_subreg_set): New function.
9259         * rtl.h: (purge_hard_subreg_sets): New function.
9260
9261 2000-09-18  Richard Henderson  <rth@cygnus.com>
9262
9263         * config/ia64/ia64-protos.h: Update.
9264         * config/ia64/ia64.c (signed_inequality_operator): New.
9265         (ia64_expand_compare): New.
9266         (ia64_register_move_cost): Handle PR_REGS moves.
9267         (ia64_secondary_reload_class): Require a GR when moving to a PR.
9268         (struct reg_write_state): Add written_by_and/or.
9269         (struct reg_flags): Add is_and/or.
9270         (rws_update): Set them.
9271         (rws_access_regno): Test them to allow parallel comparisons.
9272         (rtx_needs_barrier): Recognize parallel comparisons.
9273         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
9274         Call recog_memoized; ignore pred_rel_mutex.
9275         (emit_predicate_relation_info): Don't call find_basic_blocks here.
9276         (ia64_reorg): Do it here instead.
9277         * config/ia64/ia64.h: s/CCmode/BImode/g
9278         (MODES_TIEABLE_P): Don't tie BImode.
9279         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
9280         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
9281         (RTX_COSTS): Make multiply 4 insns.
9282         (MEMORY_MOVE_COST): New.
9283         (PREDICATE_CODES): Update.
9284         * config/ia64/ia64.md: s/CCmode/BImode/g
9285         (movcci, movbi): New.
9286         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
9287         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
9288         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
9289         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
9290         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
9291         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
9292         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
9293         (mulsi, muldi): Use xmpy not xma.
9294         (cmpbi): New.
9295         (movcc, movcc_internal): Remove.
9296         (branch expanders): Use ia64_expand_compare.
9297         (setcc expanders): Likewise.
9298         (cmov insns): Use move_operand and ia64_move_ok.
9299         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
9300         scheduler from moving it past a use.
9301         * config/ia64/build.hacks: Remove.
9302
9303 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
9304
9305         * cpphash.h (HASHSTEP): Take character rather than pointer
9306         to character.
9307         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
9308
9309         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
9310
9311         * cpplex.c (auto_expand_name_space, trigraph_replace,
9312         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
9313         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
9314         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
9315         KNOWN_DIRECTIVE): Delete.
9316
9317         (handle_newline, check_long_token, skip_escaped_newlines,
9318         unterminated): New functions.
9319         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
9320
9321         (parse_identifier): Was parse_name, new implementation.
9322         (skip_line_comment, skip_block_comment, skip_whitespace,
9323         parse_number, parse_string, trigraph_ok, save_comment,
9324         adjust_column, _cpp_get_line): New implementations.
9325
9326         (lex_token): New function.  Lexes a token at a time, looking
9327         forwards.  Contains most of the guts of the old lex_line.
9328         (lex_line): New implementation, using lex_token to obtain
9329         individual tokens.
9330         (cpp_scan_buffer): Use the token's line, not the list's line.
9331
9332         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
9333          New implementations.
9334         (do_assert): Don't bother setting the answer's list's line.
9335         (cpp_push_buffer): Initialise new pfile and read_ahead members
9336         of struct cpp_buffer.
9337
9338         * cpplib.h (cppchar_t): New typedef.
9339         (struct cpp_buffer): read_ahead, pfile and col_adjust are
9340         new members.
9341         (struct lexer_state): New structure that determines the state
9342         and behaviour of the lexer.
9343         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
9344         (struct cpp_reader): New member "state". Rename
9345         multiline_string_line and multiline_string_column. Delete
9346         col_adjust, in_lex_line members.
9347         (CPP_BUF_COLUMN): Update.
9348
9349 2000-09-18  Richard Henderson  <rth@cygnus.com>
9350
9351         * combine.c (simplify_comparison): Shift a NOT out of a single
9352         bit test.
9353
9354         * combine.c (if_then_else_cond): Canonicalize BImode true to
9355         STORE_FLAG_VALUE.
9356         * explow.c (trunc_int_for_mode): Likewise.
9357
9358         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
9359         the NOT for De Morgan's rule.
9360         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
9361         of a comparison to the reverse comparison.
9362
9363         * combine.c (try_combine): Allow split to create a single insn.
9364
9365         * machmode.def: Add BImode.  Add a column for bitsize.
9366         * machmode.h (DEF_MACHMODE): Adjust for extra column.
9367         (GET_MODE_BITSIZE): Use it.
9368         * rtl.c (DEF_MACHMODE): Adjust for extra column.
9369         (mode_bitsize): New.
9370         (mode_mask_array): Use bitsize.
9371         * combine.c (combine_simplify_rtx): Require inner and outer
9372         modes to match on nonzero_bits optimizations.
9373
9374 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
9375
9376         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
9377         its entry in spill_reg_store.
9378         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
9379         * sh.c (reg_no_subreg_operand): New function.
9380         * sh-protos.h (reg_no_subreg_operand): Declare it.
9381         * sh.h (PREDICATE_CODES): Add it.
9382         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
9383         input operand that needs to be in fpul.
9384         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
9385         * sh.c (find_barrier): Take into account that machine_dependent_reorg
9386         might add new insns.
9387
9388 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
9389
9390         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
9391         MAYBE_DEAD.
9392         (sh_expand_epilogue): Take the PIC register into account when
9393         computing the frame size.
9394
9395         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
9396         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
9397         LABEL_REFs with a PIC-safe unspec.
9398
9399 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
9400
9401         * c-common.c (check_format_info): Properly save the argument
9402         number and parameter for $ operand number formats in case width
9403         and precision arguments are also used.  Allow printf width and
9404         precision arguments to have operand numbers even if none was
9405         specified for the main format, since this is OK for %*.*m.  Only
9406         object to missing $ operand number if the format used requires an
9407         argument.
9408
9409 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
9410
9411         * c-common.c (format_char_info): Add 'W' flag to comment.
9412         (print_char_table, scan_char_table): Use it.
9413         (check_format_info): Use the 'W' flag to determine whether a
9414         format argument is written into.
9415
9416 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
9417
9418         * c-common.c (check_format_types): Reorganise and clean up,
9419         checking earlier for ERROR_MARKs and making cur_type into its
9420         TYPE_MAIN_VARIANT where convenient.
9421
9422 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
9423
9424         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
9425
9426 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
9427
9428         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
9429
9430         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
9431         * i386.c (struct builtin_description): New.
9432         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
9433         (mmx_reg_operand): Declare MODE arg as unused.
9434         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
9435         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
9436         ix86_expand_binop_builtin, ix86_expand_store_builtin,
9437         ix86_init_builtins, ix86_expand_builtin): New functions.
9438         * i386.h (ix86_builtins): New enumeration.
9439         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
9440         * i386.md (attr length_immediate): 0 for mmx/sse types.
9441         (attr prefix_0f): 1 for mmx/sse types.
9442         (setcc_2): Remove "*" so we get gen_setcc_2.
9443         (emms): Account for changed register numbering.  Set "memory" attr
9444         to unknown.
9445         (sfence): Set "memory" attr to unknown.
9446
9447 2000-09-18  Andreas Jaeger  <aj@suse.de>
9448
9449         * configure.in: Define _GNU_SOURCE only when using the GNU C
9450         Library.
9451         * configure: Regenerated.
9452         * config.in: Regenerated.
9453
9454 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
9455
9456         * cppinit.c (cpp_init): Don't use ANSI prototypes.
9457         * flow.c (flow_dump_loop): Likewise.
9458         (flow_loops_dump): Likewise.
9459
9460         * c-typeck.c (c_start_case): Fix typo.
9461
9462 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9463
9464         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
9465         to int for plain complex which defaults to complex double.  Do
9466         warn about defaulting to complex double if pedantic.  Warn about
9467         complex integer types if pedantic.  Warn about complex types if
9468         pedantic and not in C99 mode.
9469         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
9470         for complex conjugation.
9471
9472 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9473
9474         * contrib.texi: Update my entry.
9475
9476 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
9477
9478         * config/avr/avr.md (mcu_enhanced): New attribute.
9479         (mcu_mega): Likewise.
9480         (extendhisi2): Use mcu_enhanced.
9481         (zero_extendhisi2): Likewise.
9482         (call_insn): Use mcu_enhanced and mcu_mega.
9483         (call_value_insn): Likewise.
9484         (*sbrx_branch): Use mcu_mega.
9485         (*sbrx_and_branchsi): Likewise.
9486         (*sbrx_and_branchhi): Likewise.
9487         (*tablejump_lib): Likewise.
9488
9489 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9490
9491         * alias.c (true_dependence): Allow non-unchanging read to conflict
9492         with unchanging write.
9493
9494         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
9495         (store_constructor): Pass alias_set to it.
9496
9497         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
9498         TYPE_MAIN_VARIANT of ERROR_MARK.
9499         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
9500
9501         * simplify-rtx.c (simplify_unary_operation): Add cases
9502         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
9503
9504 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
9505
9506         * expr.h (emit_library_call, emit_library_call_value): Delete
9507         declarations.
9508         * rtl.h (enum libcall_type): New.
9509         (emit_library_call, emit_library_call_value): Change fn_type arg to
9510         be of type enum libcall_type.
9511         * calls.c: Likewise for the function definitions.  Several callers
9512         throughout changed to use the new enumeration appropriately.
9513         (emit_library_call_value_1): Likewise.  Put back code to make libcall
9514         blocks of equal form, but only use it for the two new higher
9515         enumeration values.
9516
9517 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
9518
9519         Convert the C front-end to use function-at-a-time mode.
9520         * c-common.h: Include splay-tree.h.
9521         (C_DECLARED_LABEL_FLAG): New macro.
9522         (struct language_function): Add x_scope_stmt_stack and
9523         x_function_name_declared_p.
9524         (RECHAIN_STMTS): Move definition.
9525         (lang_statment_code_p): Likewise.
9526         (lang_expand_stmt): Likewise.
9527         (lang_expand_decl_stmt): New variable.
9528         (lang_expand_function_end): Likewise.
9529         (current_scope_stmt_stack): New function.
9530         (add_decl_stmt): Likewise.
9531         (add_scope_stmt): Likewise.
9532         (mark_stmt_tree): Likewise.
9533         (struct c_lang_decl): New structure.
9534         (DECL_SAVED_TREE): Define.
9535         (c_mark_lang_decl): New function.
9536         (c_expand_start_cond): Change prototype.
9537         (c_finish_then): New function.
9538         (c_finish_else): Likewise.
9539         (current_function_name_declared): Remove.
9540         (set_current_function_name_declared): Likewise.
9541         (mark_c_language_function): Declare.
9542         (case_compare): Likewise.
9543         (c_add_case_label): Likewise.
9544         (c_expand_expr): Likewise.
9545         (c_safe_from_p): Likewise.
9546         * c-common.c (lang_expand_function_end): New variable.
9547         (struct if_elt): Add if_stmt.
9548         (c_expand_start_cond): Add the if-statement to the statement-tree,
9549         rather than generating RTL.
9550         (c_finish_then): New function.
9551         (c_expand_start_else): Don't generate RTL.
9552         (c_finish_else): New function.
9553         (c_expand_expr_stmt): Don't generate RTL.
9554         (statement_code_p): Add SCOPE_STMT.
9555         (case_compare): New function.
9556         (c_add_case_label): Likewise.
9557         (mark_stmt_tree): Likewise.
9558         (c_mark_lang_decl): Likewise.
9559         (mark_c_language_function): Likewise.
9560         (c_expand_expr): Likewise.
9561         (c_safe_from_p): Likewise.
9562         * c-decl.c (c_stmt_tree): New variable
9563         (c_scope_stmt_stack): Likewise.
9564         (c_function_name_declared_p): Likewise.
9565         (lang_expand_expr_stmt): Remove.
9566         (poplevel): Don't call output_inline_function for nested
9567         functions.
9568         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
9569         `extern' function.
9570         (redeclaration_error_message): Change means of computing whether
9571         or not a function is nested.
9572         (lookup_label): Don't call label_rtx.
9573         (init_decl_processing): Add more GC roots.
9574         (start_decl): Add DECL_STMTs to the statement-tree, rather than
9575         calling rest_of_decl_compilation.
9576         (finish_decl): Don't call expand_decl.
9577         (store_parm_decls): Begin the statement-tree, but don't generate
9578         RTL.
9579         (finish_function): Tie off the statement-tree.  Call c_expand_body
9580         if appropriate.
9581         (c_expand_body): New function.
9582         (push_c_function_context): Save more information.
9583         (pop_c_function_contxt): Likewise.
9584         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
9585         (lang_mark_tree): Mark it.
9586         (current_stmt_tree): Adjust.
9587         (current_scope_stmt_stack): New function.
9588         (do_case): Remove.
9589         (set_current_name_declared): Likewise.
9590         (c_begin_compound_stmt): Define.
9591         (c_expand_decl_stmt): Likewise.
9592         * c-lang.c: Include rtl.h and expr.h.
9593         (lang_init): Set more language-specific hooks.
9594         * c-lex.c: Include expr.h.
9595         * c-parse.in: Changes throughout to add statements to the
9596         statement-tree, rather than generating RTL after every statement.
9597         * c-semantics.c (lang_expand_decl_stmt): Define.
9598         (add_decl_stmt): New function.
9599         (add_scope_stmt): Likewise.
9600         (finish_stmt_tree): Tweak.
9601         (genrtl_expr_stmt): Likewise.
9602         (genrtl_decl_stmt): Handle local labels, and call
9603         lang_expand_decl_stmt if required.
9604         (genrtl_for_stmt): Fix line-number handling.
9605         (genrtl_case_label): Handle cleanups.
9606         (genrtl_asm_stmt): Don't call combine_strings.
9607         (genrtl_compound_stmt): Simplify.
9608         (expand_stmt): Handle SCOPE_STMTs.
9609         * c-tree.h (struct lang_decl): New structure.
9610         (C_DECLARED_LABEL_FLAG): Remove.
9611         (c_begin_compound_stmt): Declare.
9612         (c_expand_decl_stmt): Likewise.
9613         (c_expand_start_case): Rename to c_start_case.
9614         (c_finish_case): New function.
9615         * c-typeck.c (start_init): Tweak setting of
9616         constructor_incremental.
9617         (c_expand_asm_operands): Tweak error-handling.  Add to the
9618         statement-tree.
9619         (c_expand_return): Add to the statement-tree.
9620         (c_expand_start_case): Rename to ...
9621         (c_start_case): ... this.
9622         (struct c_switch): New type.
9623         (switch_stack): New variable.
9624         (do_case): Simplify.
9625         (c_finish_case): New function.
9626         * dependence.c: Include expr.h.
9627         (enum dependence_type): Change spelling of enumerals.
9628         (check_node_dependence): Adjust.
9629         * expr.h (lang_safe_from_p): Declare.
9630         (safe_from_p): Likewise.
9631         * expr.c (lang_safe_from_p): New variable.
9632         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
9633         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
9634         * toplev.c (rest_of_decl_compilation): Robustify.
9635         * tree.c (contains_placeholder_p): Likewise.
9636         * Makefile.in: Update dependencies.
9637         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
9638         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
9639         (objc_expand_function_end): New function.
9640         (finish_method_def): Use it.
9641         (init_objc): Initialize more language-specific hooks.
9642         * objc/Make-lang.in: Update dependencies.
9643
9644 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
9645
9646         * configure.in: Define macros that affect features before
9647         testing for features.  Don't define _XOPEN_SOURCE.
9648         * configure: Regenerated.
9649         * config.in: Regenerated.
9650
9651 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
9652
9653         * rtlanal.c (rtx_varies_p): Volatile asms vary.
9654         (rtx_unstable_p): Restructure code.  Volatile asms
9655         are unstable.
9656
9657 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9658
9659         * function.h (no_debugging_symbols): New field.
9660         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
9661         Initialize no_debugging_symbols.
9662         (output_inline_function): Save and restore write_symbols and set from
9663         no_debugging_symbols.
9664         * toplev.c (rest_of_compilation): Call save_for_inline.
9665         * tree.h: Update comment.
9666
9667         * stor-layout.c (place_field): Don't do anything if field or
9668         its type are ERROR_MARK.
9669
9670 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
9671
9672         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
9673         (read_include_file): Ensure inc->mmaped is initialized.
9674
9675 2000-09-16  Richard Henderson  <rth@cygnus.com>
9676
9677         * cppiles.c (purge_cache): Use PTR not caddr_t.
9678
9679 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
9680
9681         * gcc.c: In description for %{<S}, say the option removed is -S.
9682         * invoke.texi (Spec Files): Ditto.
9683
9684 2000-09-16  Andreas Jaeger  <aj@suse.de>
9685
9686         * configure.in: Always define _GNU_SOURCE to make interfaces
9687         visible that were hidden by only defining _GNU_SOURCE.
9688         * configure: Regenerated.
9689
9690 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
9691
9692         * cpplex.c (push_macro_context): Set an argument's level after
9693         calling parse_args.  We could loop infinitely otherwise.
9694
9695 2000-09-15  Tom Tromey  <tromey@cygnus.com>
9696
9697         * configure, config.in: Rebuilt.
9698         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
9699
9700 2000-09-15  Greg McGary  <greg@mcgary.org>
9701
9702         * cppmacro.c (check_trad_stringification): Check token
9703         text pointers against limit before dereferencing.
9704
9705 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9706
9707         * c-common.c (format_wanted_type): New structure.
9708         (check_format_types): New function.
9709         (check_format_info): Pass all checking of types of format
9710         arguments, including width and precision arguments, to this new
9711         function.
9712
9713 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9714
9715         * BUGS: Remove file.
9716
9717 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
9718
9719         * config/alpha/alpha.c (override_options): ev6 cache latencies
9720         from Richard Henderson.  Don't allow -mmemory-latency=L0.
9721
9722         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
9723         (TARGET_OPTIONS): Add tune=.
9724         (alpha_tune_string): Declare.
9725         * config/alpha/alpha.c (override_options): Add cpu_table.
9726         Use alpha_cpu_string first to set both alpha_cpu and target_flags
9727         and then alpha_tune_string to set alpha_cpu only.
9728         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
9729         * config/alpha/elf.h (ASM_FILE_START): Likewise.
9730         * config/alpha/osf.h (ASM_FILE_START): Likewise.
9731         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
9732
9733 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9734
9735         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
9736         Remove.
9737         (ix86_comparison_operator, ix86_cc_mode): Declare
9738         * i386.h (CCGC, CCGCO): New modes.
9739         (SELECT_CC_MODE): Move offline to ....
9740         * i386.c (ix86_cc_mode): .... here; use new modes.
9741         (ix86_comparison_operator): New.
9742         (fcmov_comparison_operator): Ensure proper mode.
9743         (put_condition_mode): More sanity checking.
9744         (ix86_match_ccmode): Handle new modes.
9745         (ix86_expand_fp_compare): GEU requires CCmode.
9746         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
9747         doing it by hand.
9748         * i386.md (cmp?i_ccz_1): Remove
9749         (cmp?i_ccno_1): Use ix86_match_ccmode.
9750         (cmp?i_minus_1): New.
9751         (cmpsi_1): New expander.
9752         (cmpqi_ext_1): Use match_ccmode
9753         (cmpqi_ext_3): New expander.
9754         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
9755         (cmpqi_ext_4): Use match_ccmode.
9756         (add?i_?): Use match_ccmode.
9757         (add?i_6): New.
9758         (test?i_ccz_1): Remove
9759         (test?i_1): New.
9760         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
9761         (testqi_ext_0): Use ix86_match_ccmode.
9762         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
9763         (xorqi_cc_ext_1): New expander.
9764         (shift patterns): Use CCGOCmode for all shifts except for sar.
9765         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
9766         (setcc_3, jcc_3, miv?icc_c): Remove.
9767
9768 2000-09-15  Will Cohen  <wcohen@redhat.com>
9769
9770         * dwarf2out.c (add_const_value_attribute): Changed array into a
9771         xmalloced object, so it exists after function exit.
9772         (free_AT): Added case for dw_val_class_float to free allocated
9773         memory.
9774
9775 2000-09-15  Kazu Hirata  <kazu@hxi.com>
9776
9777         * config/i386/i386.md: Fix a comment typo.
9778         * gcc.c: Fix formatting.
9779
9780 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
9781
9782         * optabs.c (emit_libcall_block): If target is a user variable,
9783         copy to a temporary first.
9784         * expr.c (convert_move): When generating a libcall, make a libcall
9785         block.
9786         * calls.c (emit_library_call_value_1): Don't create a libcall
9787         sequence here; our caller will in most cases do it.
9788
9789         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
9790         MACH into FPUL.
9791         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
9792         * sh.md (reload_outsf): Generate recognizable patterns for
9793         TARGET_SH3E.
9794         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
9795         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
9796         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
9797         truncdfsf2_i4): Change not to use explicit references to fpul.
9798         (floatsisf2_ie): Remove USE of fpscr.
9799         (floatsisf2): Change default expansion to match this.
9800         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
9801         unused patterns.
9802
9803 2000-09-15  Richard Henderson  <rth@cygnus.com>
9804
9805         * expmed.c (store_bit_field): Consider naturally aligned
9806         memory for direct reference.
9807
9808 2000-09-15  Richard Henderson  <rth@cygnus.com>
9809
9810         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
9811         AND addresses into alias set 0.
9812         (alpha_expand_unaligned_store): Likewise.
9813         (alpha_expand_unaligned_load_words): Likewise.
9814         (alpha_expand_unaligned_store_words): Likewise.
9815
9816 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
9817
9818         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
9819         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
9820         is defined.
9821         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
9822         rsize of UNITS_PER_WORD.
9823
9824 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
9825
9826         * cpplex.c (ON_REST_ARG): Correct the test.
9827         (maybe_paste_with_next): Duplicate a token that fail pasting,
9828         and clear its PASTE_LEFT flag, so that nested pasting attempts
9829         do not occur.
9830
9831 2000-09-14  Richard Henderson  <rth@cygnus.com>
9832
9833         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
9834         * cse.c (rtx_cost): Likewise.
9835         * optabls.c (expand_binop): Likewise.
9836         (expand_twoval_binop, prepare_cmp_insn): Likewise.
9837         * regclass.c (copy_cost): Likewise.
9838         * reload1.c (reload_cse_move2add): Likewise.
9839
9840 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9841
9842         * c-parse.in (reswords): Add _Complex.
9843
9844 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9845
9846         * gcc.1: Delete documentation for -undef preprocessor option.
9847
9848 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
9849
9850         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
9851         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
9852         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
9853         Remove undefine before config/elfos.h.
9854         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
9855
9856 2000-09-14  Kazu Hirata  <kazu@hxi.com>
9857
9858         * invoke.texi (H8/300 Options): Add -ms2600.
9859         * config/h8300.c (h8300_init_once): Output an error when -ms2600
9860         is used without -ms.
9861         * config/h8300.h (TARGET_MAC): New.
9862         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
9863         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
9864         machine other than H8/S2600.
9865         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
9866         of the H8/S2000.
9867
9868 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
9869
9870         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
9871         pseudos that refer to the original pseudos, not only to their
9872         equivalent memory locations.
9873
9874 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9875
9876         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
9877         when making new MEM.
9878
9879         * Makefile.in (LN): Remove duplicate definition.
9880
9881 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
9882
9883         From Joern Rennecke:
9884         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
9885         on an insn and function_invariant_p returns nonzero for the source,
9886         add a REG_EQUAL note.
9887
9888 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
9889
9890         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
9891         conflict with frame_pointer_rtx.
9892
9893 2000-09-13  Kazu Hirata  <kazu@hxi.com>
9894
9895         * loop.c: Fix formatting.
9896         * loop.h: Likewise.
9897
9898 2000-09-13  Richard Henderson  <rth@cygnus.com>
9899
9900         * config/ia64/ia64.md (divsf3): New.
9901         (divsf3_internal_lat, divsf3_internal_thr): New.
9902         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
9903         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
9904         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
9905         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
9906         (nmadddf4_alts, nmadddf4_trunc): New.
9907         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
9908         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
9909         (multf3_truncsf_alts, multf3_truncdf_alts): New.
9910         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
9911         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
9912         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
9913         (nmaddtf4_truncdf_alts): New.
9914         (recip_approx): Don't predicate.
9915
9916 2000-09-13  Richard Henderson  <rth@cygnus.com>
9917
9918         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
9919
9920 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9921
9922         * flags.h (flag_dump_rtl_in_asm): Declare.
9923         * toplev.c (flag_dump_rtl_in_asm): Define.
9924         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
9925         if -dP is specified.
9926         * rtl.h (print_rtx_head): Declare.
9927         * print-rtl.c (print_rtx_head): Define.
9928         (print_rtx): Print the string pointed to by print_rtx_head
9929         at beginning of each dump line.
9930         (print_rtl): Likewise.
9931         (print_rtl_single): Likewise.
9932         * final.c (final_scan_insn): Dump the insn in the assembly
9933         file for debugging.
9934         * gcc.1: Document -dP option.
9935         * invoke.texi (Debugging Options): Likewise.
9936
9937 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9938
9939         * md.texi (Machine Constraints): Document the 68HC11 constraints.
9940         * install.texi (Configurations): Document the 68HC11&68HC12 port.
9941         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
9942
9943 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
9944
9945         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
9946         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
9947         (*clrstrqi): Likewise.
9948         (xorhi3,xorsi3,absqi2): Likewise.
9949         (one_cmplhi2,one_cmplsi2): Likewise.
9950         (addsi3): Two stupid constraint alternatives removed.
9951         (extendhisi2): Use `movw' for enhanced avr cores.
9952         (zero_extendhisi2): Likewise.
9953
9954 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
9955
9956         * alias.c (find_base_term): Use frame_pointer_rtx
9957         when handling an ADDRESSOF.
9958
9959         * cse.c (canon_hash): Handle USE of BLKmode memory.
9960         (cse_insn): Outgoing arguments for a libcall don't
9961         affect any recorded expressions.
9962
9963 2000-09-12  Tom Tromey  <tromey@cygnus.com>
9964
9965         * configure, config.in: Rebuilt.
9966         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
9967
9968 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
9969
9970         * c-lex.c (lex_string): Use charwidth to compute bytemask.
9971         * expr.c (expand_expr): Don't optimize constant array references
9972         initialized with wide string constants.
9973
9974 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
9975
9976         * loop.c (note_set_pseudo_multiple_uses): Correct.
9977
9978 2000-09-12  Jim Wilson  <wilson@cygnus.com>
9979
9980         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
9981         else block, and X has side-effects, then fail.
9982
9983 2000-09-12  Greg McGary  <greg@mcgary.org>
9984
9985         * config/mips/mips-protos.h
9986         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
9987         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
9988         (PREDICATE_CODES): Add "trap_cmp_op".
9989         * config/mips/mips.c
9990         (trap_cmp_op, mips_gen_conditional_trap): New functions.
9991         * config/mips/mips.md (trap, conditional_trap): New patterns.
9992
9993 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
9994
9995         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
9996         pointer.
9997
9998 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9999
10000         * builtins.c (built_in_decls): New array.
10001         (expand_builtin_fputs): New function.
10002         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
10003
10004         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
10005
10006         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
10007
10008         * tree.h (built_in_decls): New array.
10009
10010 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
10011
10012         * convex.md: Use "+" instead of "=" for outputs wrapped in a
10013         STRICT_LOW_PART.
10014         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
10015
10016 2000-09-12  Kazu Hirata  <kazu@hxi.com>
10017
10018         * haifa-sched.c: Fix formatting.
10019
10020         * genattrtab.c: Fix formatting.
10021
10022         * unroll.c: Fix formatting.
10023
10024 2000-09-12  Bruce Korb  <bkorb@gnu.org>
10025
10026         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
10027         remove obsolete code
10028         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
10029         * fixinc/fixincl.tpl: make non-exported arrays static scope
10030         * fixinc/fixincl.x: regenerate
10031         * fixinc/fixlib.h: Use PARAMS, not _P_
10032         * fixinc/fixtests.c: make a type for the test proc & use it
10033         * fixinc/server.h: Use PARAMS, not _P_
10034
10035 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10036
10037         * c-typeck.c (process_init_element): Avoid union init warnings on
10038         floating point zero.  Don't crash on unions containing structs.
10039
10040 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
10041
10042         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
10043         general_movsrc_operand, and remove CONST_INT from
10044         general_movdst_operand.
10045
10046 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
10047
10048         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
10049         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
10050         regs with a higher cost.
10051         (preferrable): Deal with cases where either cost or regcost is
10052         MAX_COST.
10053         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
10054         regcost values.
10055         (COSTS_N_INSNS): Move definition...
10056         * rtl.h: ...here.
10057         (MAX_COST): New macro.
10058         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
10059         constant.
10060
10061 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
10062
10063         * c-common.h (genrtl_clear_out_block): Remove.
10064         * c-semantics.c (genrtl_clear_out_block): Remove.
10065         (genrtl_while_stmt): Don't call it.
10066         (genrtl_for_stmt): Likewise.
10067
10068 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
10069
10070         * cppfiles.c: Move all default-#defines to top of file.
10071         (open_include_file): Replace by lookup_include_file.
10072         (read_with_read, read_file): Merged into read_include_file.
10073         (stack_include_file, purge_cache): New functions.
10074         (close_cached_fd): Delete.
10075         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
10076         Cache the in-memory buffer, not the file descriptor.
10077
10078         * cpphash.h (struct include_file): Add buffer, st, refcnt,
10079         mapped fields.
10080         (xcnew): New utility macro.
10081         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
10082         * cpplib.h (struct cpp_buffer): Remove mapped field.
10083
10084 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
10085
10086         * cpplex.c (parse_string): Accept backslash space newline as a
10087         line continuation.
10088         (lex_line): Likewise.
10089         (_cpp_get_token): Remove hard limit on macro nesting.
10090
10091 2000-09-12  Philipp Thomas  <pthomas@suse.de>
10092
10093         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
10094         * configure: Rebuilt.
10095
10096 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
10097
10098         * flow.c (split_block): Fix update of registers live at
10099         end of split block.
10100
10101 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10102
10103         * i386.md (add?i_3, add?i_5): New.
10104         (add?i_4): Rename from add?i_3;  Fix compare pattern.
10105         (sub?i_3, xor?i_3, ior?i_3): New.
10106
10107         * genrecog.c (write_tree): Output code to clear insn_extract cache.
10108         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
10109         instead of extract_insn and extract_constrain_insn_cache instead of
10110         extract_insn and constrain_operands.
10111         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
10112         New functions.
10113         (extract_insn): Clear which_alternative.
10114         (constrain_operands): Set which_alternative to -1 when failed.
10115         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
10116         Declare.
10117
10118 2000-09-11  Matthew Hiller  <hiller@redhat.com>
10119
10120         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
10121         on operand 0 to '+'.
10122         (movstricthi): Likewise.
10123
10124 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
10125
10126         * loop.h (LOOP_IVS): New macro.
10127         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
10128         (struct loop_ivs): New.
10129         (struct loop_info): Add ivs field.
10130         (reg_iv_type, reg_iv_info): Delete prototype.
10131         (reg_biv_class, loop_iv_list): Likewise.
10132         * loop.c (record_biv, find_life_end): Pass loop argument.
10133         (reg_iv_type): Remove global array and use
10134         field in loop_regs structure within loop_ivs structure.
10135         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
10136         (first_increment_giv, last_increment_giv): Use entry in
10137         loop_ivs structure.
10138         (record_initial): Pass ivs pointer.
10139         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
10140
10141 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
10142
10143         * loop.h (LOOP_REGS): New macro.
10144         (struct loop_regs): New.
10145         (struct loop_info): Add regs field.
10146         * loop.c (set_in_loop): Remove global array and store
10147         in loop_regs structure as part of loop_info structure.
10148         (n_times_set, may_not_optimize): Likewise.
10149         (reg_single_usage, moved_once): Likewise.
10150         (count_one_set): Add regs argument.
10151         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
10152         (set_pseudo_multiple_uses): Pass regs pointer.
10153
10154 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
10155
10156         * unroll.c (iteration_info): Subsume into loop_iterations.
10157         * loop.h (loop_info): New field iv.
10158
10159 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
10160
10161         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
10162         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
10163         (flow_loops_update): New prototype.
10164         (flow_loops_find): Add flags to prototype.
10165         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
10166         * flow.c (flow_loop_pre_header_scan): New.
10167         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
10168         (flow_loop_free): Free pre-header root and trace and exit dominators.
10169         (flow_loops_find): New argument flags.
10170         (flow_loops_update): New function.
10171         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
10172
10173 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
10174
10175         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
10176         * flow.c (split_block, update_bb_for_insn): New functions.
10177
10178 2000-09-11  Richard Henderson  <rth@cygnus.com>
10179
10180         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
10181
10182 2000-09-11  Richard Henderson  <rth@cygnus.com>
10183
10184         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
10185         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
10186         (ia64_override_options): Prevent optimizing division for both
10187         latency and throughput.
10188         (rtx_needs_barrier): Handle frcpa.
10189         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
10190         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
10191         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
10192         (TARGET_SWITCHES): Add -minline-divide-min-latency and
10193         -minline-divide-max-throughput.
10194         (PREDICATE_CODES): Update.
10195         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
10196         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
10197         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
10198         (extendsftf2): Likewise.
10199         (extenddftf2): Likewise.
10200         (fix_trunctfdi2_alts): New.
10201         (fixuns_trunctfdi2_alts): New.
10202         (madd*4): Rename from madd*3.
10203         (divsi3, modsi3, udivsi3, umodsi3): New.
10204         (divsi3_internal): New.
10205         (divdi3, moddi3, udivdi3, umoddi3): New.
10206         (divdi3_internal_lat, divdi3_internal_thr): New.
10207         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
10208         (recip_approx): New.
10209
10210 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
10211
10212         * print-rtl.c (debug_call_placeholder_verbose): New variable.
10213         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
10214         set.
10215         * integrate.c (copy_rtx_and_substitute): Don't share
10216         LEAF_REG_REMAPpable registers with the inlined function.  Don't
10217         share the function value with calling sequences.
10218
10219 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
10220
10221         * c-decl.c (do_case): Fix a typo.
10222
10223         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
10224         to a if the comparison is floating mode and not -ffast-math.
10225         * simplify-rtx.c (simplify_ternary_operation): Likewise.
10226
10227 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
10228
10229         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
10230         gen_ic_invalidate_line.
10231
10232 2000-09-11  Philip Blundell  <pb@futuretv.com>
10233
10234         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
10235
10236 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
10237
10238         * install.texi (LANGUAGES): Update to include new languages.
10239         * INSTALL: Rebuilt.
10240
10241 2000-09-11  DJ Delorie  <dj@redhat.com>
10242
10243         * gcc.c (main): Don't warn about unused -B prefixes
10244         (unused_prefix_warnings): remove
10245
10246 2000-09-11  Kazu Hirata  <kazu@hxi.com>
10247
10248         * final.c: Fix formatting.
10249
10250         * integrate.c: Fix formatting.
10251
10252 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
10253
10254         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
10255
10256 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
10257
10258         * reload.c (regno_clobbered_p): Fix thinko in previous change.
10259
10260 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10261
10262         * gcc.1: Document 68hc11 specific options.
10263
10264 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
10265
10266         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
10267         (TARGET_LONG_DOUBLE_128): Define.
10268         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
10269         (LONG_DOUBLE_TYPE_SIZE): Redefine.
10270         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
10271         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
10272         of __LONG_DOUBLE_128__.
10273         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
10274         passed.
10275         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
10276         (CPP_SYSV_DEFAULT_SPEC): Define.
10277         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
10278         (INIT_TARGET_OPTABS): Define.
10279
10280         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
10281         (RS6000_UITRUNC): Likewise.
10282         (INIT_TARGET_OPTABS): New macro.
10283         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
10284         (trunc_defined): Delete.
10285         (output_prolog): Don't output .extern definitions for fp->int
10286         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
10287         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
10288         (trunc_defined): Delete.
10289         (RS6000_ITRUNC): Moved to aix.h.
10290         (RS6000_UITRUNC): Likewise.
10291         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
10292         only emit a libcall.
10293         (fixuns_truncdfsi2): Delete.
10294         (trunc_call): Delete.
10295         (trunc_call_rtl): Delete.
10296
10297 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
10298
10299         * varasm.c (make_decl_rtl): Restore leading star on
10300         DECL_ASSEMBLER_NAME set for decls with an asmspec.
10301
10302 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
10303
10304         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
10305         won't give a spurious error for '#pragma pack()'.  Simplify
10306         control flow for readability.  'reset' action is not necessary.
10307
10308 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
10309
10310         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
10311         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
10312         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
10313         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
10314
10315         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
10316         profile.c, sdbout.c, tradcif.y, tree.c:
10317         Include defaults.h if not already included.
10318         Don't define the above macros.
10319
10320         * Makefile.in: Update dependencies.
10321
10322 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
10323
10324         * c-common.h (add_stmt): Change prototype.
10325         (RECHAIN_STMTS): New macro.
10326         (CASE_LABEL_DECL): Likewise.
10327         (genrtl_case_label): Change prototype.
10328         (c_expand_start_case): Remove prototype.
10329         (build_case_label): Change prototype.
10330         (decl_constant_value): Declare.
10331         * c-common.c (check_case_value): Handle C++'s extensions to C
10332         semantics.
10333         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
10334         field.
10335         * c-parse.in (stmt): Adjust handling of return statements and case
10336         laels.
10337         * c-semantics.c (add_stmt): Return the new statement.
10338         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
10339         returned expression.  Directly generate RTL, rather than calling
10340         c_expand_return.
10341         (genrtl_switch_stmt): Don't call c_expand_start_case.
10342         (build_case_label): Take the LABEL_DECL as input, too.
10343         (genrtl_case_label): Just call add_case_node.
10344         (expand_stmt): Adjust calls to genrtl_return_stmt and
10345         genrtl_case_label.
10346         * c-tree.h (c_expand_start_case): Declare.
10347         * c-typeck.c (decl_constant_value): Give it external linkage.
10348         (c_expand_return): Don't call expand_return or expand_null_return;
10349         use genrtl_return_stmt instead.
10350         * stmt.c (struct nesting): Remove num_ranges field.
10351         (add_case_node): Give it external linkage.
10352         (expand_start_case): Don't set num_ranges.
10353         (expand_start_case_dummy): Don't clear it.
10354         (pushcase): Rely on add_case_node to handle `default' labels.
10355         (add_case_node): Handle `default' labels.
10356         * tree.c (tree_int_cst_compare): New function.
10357         * tree.h (tree_int_cst_compare): Declare.
10358         (add_case_node): Likewise.
10359
10360 2000-09-10  Richard Henderson  <rth@cygnus.com>
10361
10362         * c-parse.in: Revert last change.
10363         (init_reswords): Do not enter disabled keywords into the ridpointers
10364         table, modulo objc weirdness.
10365         (_yylex): Return the canonical spelling for a keyword.
10366
10367 2000-09-10  Philip Blundell  <philb@gnu.org>
10368
10369         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
10370         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
10371
10372 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
10373
10374         * alias.c (find_base_term): Handle ADDRESSOF.
10375         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
10376
10377 2000-09-10  Denis Chertykov  <denisc@overta.ru>
10378
10379         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
10380         outputting templates with many lines.
10381
10382 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10383
10384         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
10385         to decide whether 64-bit support must be generated.
10386
10387 2000-09-10  Richard Henderson  <rth@cygnus.com>
10388
10389         * c-parse.in (asm patterns): Fix volatile check.
10390
10391 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10392
10393         * cppmacro.c (check_trad_stringification): New function.
10394         (save_expansion): If -Wtraditional, warn about stringification of
10395         macro arguments.
10396
10397 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
10398
10399         * loop.h (struct loop_mem_info): Move from loop.c
10400         (struct loop_info): Add fields store_mems, mems, mems_idx,
10401         mems_allocated, unknown_address_altered,
10402         unknown_constant_address_altered, num_mem_sets, and
10403         first_loop_store_insn.
10404
10405         * loop.c (loop_store_mems): Replace with field in loop_info struct.
10406         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
10407         (unknown_address_altered, unknown_constant_address_altered): Likewise.
10408         (num_mem_sets): Likewise.
10409         (replace_loop_mems, replace_loop_regs): New.
10410         (struct loop_replace_args): New.
10411         (load_mems): Use replace_loop_mems.
10412         (try_copy_prop): Use replace_loop_regs.
10413         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
10414
10415 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10416
10417         * configure.in: Recognize m6811-elf and m6812-elf.
10418         * configure: Regenerate.
10419
10420 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
10421
10422         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
10423         to operand_subword.
10424
10425 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
10426
10427         * loop.c (struct movables): New.
10428         (num_movables): Move into struct movables.
10429         (the_movables): Change type to struct movables.
10430         (ignore_some_movables): Change struct movable arg to struct movables.
10431         (force_movables, combine_movables, regs_match_p): Likewise.
10432         (rtx_equal_for_loop_p, move_movables): Likewise.
10433         (scan_loop): Change movables to be of type struct movables.
10434         Replace last_movable with field in movables structure.
10435
10436 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
10437
10438         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
10439         (init_pragma): Avoid warning if pfile happens to be unused.
10440         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
10441         define init_pragma to nothing.  Always prototype
10442         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
10443
10444         * c-lex.c (process_directive): Always call dispatch_pragma.
10445         Initialize entering_c_header to 0.
10446
10447 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10448
10449         * config/m68hc11/m68hc11.md: New file, machine description for
10450         68HC11 & 68HC12.
10451         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
10452         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
10453         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
10454         * config/m68hc11/m68hc11-protos.h: New file.
10455         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
10456         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
10457         * config/m68hc11/xm-m68hc11.h: New file, target defs.
10458         * config/m68hc11/larith.asm: New file, libgcc routines.
10459
10460 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10461
10462         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
10463         (FPBIT_FUNCS): Add _usi_to_sf.
10464         * config/fp-bit.c (usi_to_float): New function.
10465         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
10466         (usi_to_float): Add appropriate #define.
10467
10468 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
10469
10470         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
10471         new functions.
10472         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
10473         * i386.md (attr "type"): Add sse and mmx types.
10474         (attr "memory"): Handle them without a crash.
10475         (movsi_1, movdi_2): Allow MMX regs.
10476         (movdi splits): Don't split moves involving MMX regs.
10477         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
10478         (movv4sf_internal, movv4si_internal, movv8qi_internal,
10479         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
10480         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
10481         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
10482         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
10483         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
10484         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
10485         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
10486         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
10487         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
10488         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
10489         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
10490         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
10491         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
10492         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
10493         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
10494         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
10495         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
10496         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
10497         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
10498         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
10499         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
10500         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
10501         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
10502         mmx_clrdi): New patterns.
10503
10504 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
10505
10506         * arm.c: Don't include tm.h directly.
10507
10508 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10509
10510         * recog.c (validate_replace_rtx_1): Fix confusion about equality
10511         testing; simplify subregs of constants and nested subregs.
10512
10513 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
10514
10515         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
10516
10517 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
10518
10519         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
10520         VEC_CONCAT.
10521         * rtl.texi (description of USE): Add note about possible pitfalls
10522         with this rtx.
10523         From Richard Henderson:
10524         * reload1.c (choose_reload_regs): Compute need_mode properly.
10525
10526 2000-09-07  Richard Henderson  <rth@cygnus.com>
10527
10528         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
10529         (__modsi3, __umodsi3): Likewise.
10530         (__udivsi3): Likewise.  Normalize the TFmode values.
10531
10532 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
10533
10534         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
10535         with a prototype.
10536         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
10537         warning.
10538
10539 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
10540
10541         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
10542         (cmpeqdi_t): Add output pattern.
10543         (cmpeqdi_t+1): Don't split when not optimizing.
10544         Restore proper splitting operation.
10545
10546 2000-09-07  Richard Henderson  <rth@cygnus.com>
10547
10548         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
10549         do not call dispatch_pragma.
10550
10551 2000-09-07  Jim Wilson  <wilson@cygnus.com>
10552
10553         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
10554         to CLASS_CANNOT_CHANGE_MODE.
10555         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
10556         mode classes are different.
10557
10558 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
10559
10560         * cpplib.h (struct cpp_options): Add user_label_prefix member,
10561         left out of commit which removed cppulp.c.
10562
10563 2000-09-07  Richard Henderson  <rth@cygnus.com>
10564
10565         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
10566         after switch for CASE_DROPS_THROUGH.
10567
10568 2000-09-07  Richard Henderson  <rth@cygnus.com>
10569
10570         * loop.c (strength_reduce): Call check_ext_dependant_givs.
10571         Properly extend the biv initial value for the giv.
10572         (record_biv): Zero ext_dependant.
10573         (record_giv): New argument ext_val.  Update all callers.
10574         (general_induction_var): Likewise.
10575         (consec_sets_giv): Likewise.
10576         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
10577         a sign-extend, zero-extend, or truncate.
10578         (combine_givs_p): Make sure modes are compatible.
10579         (check_ext_dependant_givs): New.
10580         (extend_value_for_giv): New.
10581         * loop.h (struct induction): Add ext_dependant.
10582         * unroll.c (iteration_info): Extend the biv initial value for the giv.
10583         (find_splittable_givs): Likewise.
10584         (final_giv_value): Likewise.
10585
10586 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
10587
10588         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
10589         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
10590         definitions from cpplib.h.
10591         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
10592         already done it.
10593         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
10594         documentation for REGISTER_TARGET_PRAGMAS.
10595
10596         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
10597         default-pragma callback to implement -Wunknown-pragmas if
10598         USE_CPPLIB.
10599         * c-parse.in: Move all includes to top of file.
10600         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
10601         tm_p.h.
10602         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
10603         warning.
10604         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
10605
10606         * arm.h, arm-protos.h, arm.c,
10607           c4x.h, c4x-protos.h, c4x.c,
10608           h8300.h, h8300-protos.h, h8300.c,
10609           i370.h, i370-protos.h, i370.c,
10610           i960.h, i960-protos.h, i960.c,
10611           sh.h, sh-protos.h, sh.c,
10612           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
10613         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
10614
10615         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
10616         multiple include guard.
10617         * i370.md (untyped_call): Use GEN_CALL.
10618         (umodsi3): Remove unused variable.
10619         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
10620         * v850.c (output_move_single, output_move_double): Constify
10621         return value.
10622         (print_operand): Constify a char *.
10623         * v850.h (struct small_memory_info): Constify name member.
10624
10625 2000-09-07  Kazu Hirata  <kazu@hxi.com>
10626
10627         * config/h8300.h: Fix comment typos.
10628         * config/h8300/h8300.md: Likewise.
10629         * config/h8300/lib1funcs.asm: Likewise.
10630
10631 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
10632
10633         * Makefile.in: Remove references to cppulp.{c,o}.
10634         * cppinit.c (initialize_builtins, cpp_start_read,
10635         cpp_handle_option): Update to use cpp_options structure.
10636         * cppulp.c: Remove.
10637
10638 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10639
10640         * c-common.c (time_char_table): Allow %#b and %#h.
10641
10642 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10643
10644         * reorg.c (find_end_label): If the basic block reorder pass moves the
10645         return insn to some other place try to locate it again and put our
10646         end_of_function_label there.
10647         * reorg.c (relax_delay_slots): Check if find_end_label created a
10648         new label that invalidates the current optimazation.
10649
10650 2000-09-07  Catherine Moore  <clm@redhat.com>
10651
10652         * unroll.c (unroll_loop): Check for unconditional jumps
10653         to loop continuation.  Delete if n_iterations is 1.
10654         (ujump_to_loop_cont): New routine.
10655
10656 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
10657
10658         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
10659         MODE_VECTOR_FLOAT.
10660         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
10661         to handle multiword modes correctly.  All callers and the declaration
10662         changed.
10663
10664 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
10665
10666         * c-common.h (prep_stmt): Declare.
10667         (lang_expand_stmt): Likewise.
10668         * c-decl.c (lang_expand_stmt): Remove.
10669         * c-semantics.c (lang_expand_stmt): Define.
10670         (prep_stmt): New function.
10671         (expand_stmt): Handle common statement types here.
10672
10673 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
10674
10675         * configure.in (sh-*-linux*): Added.
10676         * configure: Rebuilt.
10677         * config/sh/t-linux: New file.
10678         * config/sh/sh.h (USERMODE_BIT): Define.
10679         (TARGET_USERMODE): Likewise.
10680         (TARGET_SWITCHES): New switches for the bits above.
10681         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
10682         * config/sh/linux.h: New file.
10683         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
10684         underscore on linux.
10685         (L_sdivsi3, L_udivsi3): Define for linux.
10686         (L_ic_invalidate): Define.
10687         * invoke.texi (SH Options): Document -musermode.
10688
10689 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
10690
10691         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
10692         CSE unless generating PIC.
10693
10694         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
10695         the PIC register.
10696
10697 2000-09-06  H.J. Lu  (hjl@gnu.org)
10698
10699         * Makefile.in (clean_s1): Depend on stage_b.
10700         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
10701         stage2. They are used for "make compare".
10702
10703 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
10704
10705         Move statement-tree facilities from C++ to C front-end.
10706         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
10707         (void_zero_node): New macro.
10708         (struct stmt_tree_s): New type.
10709         (stmt_tree): New typedef.
10710         (struct language_function): New type.
10711         (last_tree): New macro.
10712         (last_expr_type): Likewise.
10713         (walk_tree_fn): New typedef.
10714         (current_stmt_tree): New function.
10715         (begin_stmt_tree): Likewise.
10716         (add_stmt): Likewise.
10717         (finish_stmt_tree): Likewise.
10718         (statement_code_p): Likewise.
10719         (lang_statement_code_p): New variable.
10720         (walk_stmt_tree): New function.
10721         (STMT_IS_FULL_EXPR_P): New macro.
10722         * c-common.c (lang_statement_code_p): New variable.
10723         (c_common_nodes_and_builtins): Initialize void_zero_node.
10724         (statement_code_p): New function.
10725         (walk_stmt_tree): Likewise.
10726         * c-decl.c (language_function): Rename to ...
10727         (c_language_function): ... this.  Include language_function.
10728         (push_c_function_context): Adjust accordingly.
10729         (pop_c_function_context): Likewise.
10730         (mark_c_function_context): Likewise.
10731         (current_stmt_tree): Define.
10732         * c-semantics.c (begin_stmt_tree): New function.
10733         (add_stmt): Likewise.
10734         (prune_unused_decls): Likewise.
10735         (finish_stmt_tree): Likewise.
10736
10737 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10738
10739         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
10740
10741 2000-09-06  Kazu Hirata  <kazu@hxi.com>
10742
10743         * calls.c: Fix formatting.
10744
10745 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
10746
10747         * config/i386/i386.h (ADDRESS_COST): Fix typo.
10748
10749 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
10750
10751         Integrated preprocessor.
10752
10753         * Makefile.in: Remove all references to c-parse.gperf,
10754         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
10755         generating c-parse.c.  Update dependencies.
10756         * c-parse.gperf, c-gperf.h: Delete.
10757
10758         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
10759         yy_lim, or yy_get_token.  Don't define get_directive_line if
10760         USE_CPPLIB.
10761         * c-common.h: Add multiple include guard.  Define RID values
10762         for every keyword in C, C++, and Objective C.  Put all the
10763         modifiers first.
10764         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
10765         * c-decl.c (c_decode_option): Handle -lang-objc here.
10766         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
10767         (grokdeclarator): Adjust for new RID scheme.
10768         (extract_interface_info): New stub.
10769         * c-lang.c: Don't declare yy_cur or parse_options.
10770         (lang_init_options): Call cpp_init.  Don't call
10771         cpp_options_init.
10772         (lang_init): Don't call check_newline if USE_CPPLIB.
10773
10774         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
10775         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
10776         rendered unnecessary by new architecture.  Move routines not
10777         shared with C++ to c-parse.in.  Maintain a local idea of the
10778         line number.    Handle C++ as well as C.
10779         [USE_CPPLIB]: Declare and register callbacks for #ident and
10780         for entering/leaving files.
10781         (init_c_lex, c_lex): Are now the entry points to this file.
10782         (check_newline): Break out directive handling to
10783         process_directive.
10784         (read_ucs, is_extended_char, utf8_extend_token): Moved here
10785         from C++ front end.
10786         (readescape, parse_float): Overhaul.
10787         (lex_number, lex_string, lex_charconst): Break out of c_lex
10788         (n'ee yylex).
10789         (get_fileinfo, update_header_times, dump_one_header,
10790         dump_time_statistics): New and/or moved here from C++.
10791         Support per-file data needed by C++ and per-header timing
10792         statistics (C++ only, at the moment).
10793         * c-lex.h: Update prototypes.  Add multiple include guard.
10794         * c-tree.h (struct lang_identifier): Add rid_code field.
10795         (C_IS_RESERVED_WORD, C_RID_CODE): New.
10796
10797         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
10798         reinit_parse_for_function and/or position_after_white_space.
10799         (save_filename, save_lineno): Look ahead before saving.
10800         (label -> identifier ':'): Save file and line before shifting ':'.
10801         (reservedwords): No need to call get_identifier.
10802         (init_parse, finish_parse, yyerror, yylex, yyprint,
10803         make_pointer_declarator): Are now here for C/ObjC.
10804         (rid_to_yy): Conversion table from RID constants to Yacc codes.
10805
10806         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
10807         #pragma registry.  Provide dummy implementation of that
10808         interface if !USE_CPPLIB.
10809         * c-pragma.h: Update to match.
10810
10811         * flags.h: Add multiple include guard.
10812         (flag_detailed_statistics): Moved here from C++.
10813         * toplev.c: Define flag_detailed_statistics.
10814
10815         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
10816         #if USE_CPPLIB.
10817         * timevar.def (TV_CPP, TV_LEX): New.
10818         * timevar.h: Add multiple include guard.
10819
10820         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
10821         #if USE_CPPLIB.
10822         * objc/objc-act.c: Don't mention yy_cur or parse_options.
10823         Initialize cpplib properly.  Force lineno to 0 after first
10824         call to check_newline.  Don't handle -lang-objc here.
10825         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
10826
10827 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
10828
10829         * rs6000.md: Correct function unit definitions for cr_logical and
10830         mtjmpr.
10831         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
10832         and use portable method for >=0 and floating point >=.  Remove
10833         associated matchers.
10834
10835 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
10836
10837         * extend.texi: Mark named return value extension as deprecated.
10838
10839 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
10840
10841         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
10842         the result.
10843
10844 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
10845
10846         * toplev.c (display_help): Fix thinko in documentation.
10847
10848         * diagnostic.h (output_buffer::indent_skip): New fields.
10849         (output_indentation): New macro.
10850
10851         * diagnostic.c (output_indent): New function.
10852         (output_set_prefix, clear_diagnostic_info): Use.
10853         (output_emit_prefix): Predict future indentation.
10854
10855 2000-09-06  DJ Delorie  <dj@redhat.com>
10856
10857         * Makefile.in (stage_*): add more dependencies to ensure parallel
10858         builds build correctly
10859
10860 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
10861
10862         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
10863         not bootstrap-lean_f.
10864
10865 2000-09-06  Andreas Schwab  <schwab@suse.de>
10866
10867         * mklibgcc.in: Emit rule for libgcc-stage-start.
10868         * Makefile.in (stage1-start, stage2-start, stage3-start,
10869         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
10870
10871 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
10872
10873         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
10874         (update_equiv_regs): Likewise, except for the mn10200 kludge.
10875         (combine_regs): Likewise.
10876
10877         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
10878         * cse.c: Include "basic-block.h".
10879         (struct table_elt): New field REGCOST.
10880         (CHEAP_REG): Delete macro.
10881         (COST): Return 0 for REGs.
10882         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
10883         (notreg_cost): Return 0 for appropriate SUBREGs.
10884         (COSTS_N_INSNS): Return N * 2.
10885         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
10886         SUBREGs.
10887         (CHEAPER): Use new function preferrable.
10888         (insert): Initialize REGCOST member.
10889         (find_best_addr): Use approx_reg_cost for estimation of register
10890         usage.
10891         (cse_insn): Likewise.
10892         * loop.c (iv_add_mult_cost): New function.
10893         (add_cost, shift_cost, mult_cost): Delete variables.
10894         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
10895         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
10896         Make code that detects autoinc opportunities slightly less optimistic.
10897         (simplify_giv_expr): If expression contains other reg that is also a
10898         giv, only increment benefit if this is the only use of that reg.
10899         (consec_sets_giv): Take that change into account.
10900         (combine_givs): Slightly more verbose output.
10901
10902         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
10903         not the cost of an equivalent shift.
10904         * sh-protos.h (addsubcosts): Declare.
10905         * sh.c (addsubcosts): New function.
10906         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
10907         (RTX_COSTS): Tweak.  Use addsubcosts.
10908         (ADDRESS_COST): Return higher cost for reg+reg addressing.
10909
10910 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
10911
10912         * config/rs6000/rs6000.c (validate_condition_mode): New function.
10913         (branch_comparison_operator): Call validate_condition_mode to
10914         abort rather than returning 0.
10915         (branch_positive_comparison_operator): New function.
10916         (scc_comparison_operator): Call validate_condition_mode to abort
10917         rather than returning 0.
10918         (ccr_bit): Call validate_condition_mode.  Update for
10919         new branch scheme.
10920         (print_operand): Delete %C modifier.  Update %E case
10921         to use EQ bit not SO bit.
10922         (rs6000_reverse_condition): New function.
10923         (rs6000_generate_compare): New function.
10924         (rs6000_emit_sCOND): New function.
10925         (rs6000_emit_cbranch): New function.
10926         (output_cbranch): The length of a long branch insn is
10927         now only 8 bytes.  Add validate_condition_mode.  Use
10928         rs6000_reverse_condition.  Remove cror generation.
10929
10930         * config/rs6000/rs6000.h: Update comments.
10931         (PREDICATE_CODES): Add new predicate.  Update codes used
10932         by branch_comparison_operator and scc_comparison_operator.
10933         * config/rs6000/rs6000-protos.h: Add prototypes for
10934         new external functions.
10935         * config/rs6000/rs6000.md: Add new scheduling parameters
10936         for cr_logical instructions.  Change length of branch
10937         instructions.
10938         (bCOND patterns): Call rs6000_emit_cbranch.
10939         (sCOND patterns): Call rs6000_emit_sCOND.
10940         (branch patterns): Change lengths to 4.
10941         (cr logical patterns): New.
10942
10943 2000-09-06  Richard Henderson  <rth@cygnus.com>
10944
10945         * config/i386/i386.md (call_pop): Fix test for setting
10946         current_function_uses_pic_offset_table.
10947         (call, call_value_pop, call_value): Likewise.
10948
10949 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
10950
10951         * timevar.c (timevar_add): Delete.
10952         (timevar_get): Also count time since the selected timer was
10953         last updated.  Do not examine the timevar stack if the
10954         selected timer is standalone.
10955
10956 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
10957
10958         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
10959
10960 2000-09-05  Jason Merrill  <jason@redhat.com>
10961
10962         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
10963         for 'extern' arrays.
10964
10965 2000-09-05  Richard Henderson  <rth@cygnus.com>
10966
10967         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
10968         Eliminate final copy from non-trapping case.
10969         (__divdf3, __divsf3): Likewise.
10970
10971 2000-09-05  Richard Henderson  <rth@cygnus.com>
10972
10973         * config/ia64/ia64.md (mulhi3): Fix typo last change.
10974         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
10975
10976 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
10977
10978         * Makefile.in: Restructure bootstrap stages to allow clean
10979         restart after failure.
10980
10981 2000-09-05  Richard Henderson  <rth@cygnus.com>
10982
10983         * config/ia64.md (movsi and movdi patterns): Allow moves from
10984         8-bit constants to AR registers.
10985
10986 2000-09-05  Richard Henderson  <rth@cygnus.com>
10987
10988         * config/ia64/ia64.md (mulhi3): New.
10989
10990 2000-09-05  Richard Henderson  <rth@cygnus.com>
10991
10992         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
10993         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
10994         Optimization Guide, minimum latency alternative.
10995         (__moddi3, __udivdi3, __umoddi3): Likewise.
10996         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
10997
10998 2000-09-05  Bruce Korb  <bkorb@gnu.org>
10999
11000         * fixinc/fixincl.c (load_file): always read header files
11001         with sizes that are a multiple of the page size.
11002         & use libiberty's getpagesize for determining that.
11003
11004 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
11005
11006         * gcse.c (hash_string_1): Add prototype.
11007         * cse.c (canon_hash_string): Likewise.
11008
11009 2000-09-04  Craig Newell  <CraigN@ieee.org>
11010
11011         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
11012
11013 2000-09-04  Andreas Schwab  <schwab@suse.de>
11014
11015         * Makefile.in (STAGESTUFF): Remove libgcc.
11016         (stage1-start, stage2-start, stage3-start): Copy the contents of
11017         the libgcc directory explicitly.
11018         (mostlyclean): Clean libgcc.
11019
11020 2000-09-04  Andrew Haley  <aph@redhat.com>
11021
11022         * dwarf2out.c: (stack_adjust_offset): New prototype.
11023
11024 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
11025
11026         * combine.c (make_extraction): Fix rtx_cost comparison to
11027         match the comment.
11028
11029 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
11030
11031         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
11032         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
11033         Add '*' to insn pattern name.
11034
11035 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
11036
11037         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
11038         use posn - 1 to index into tokens array.
11039         (maybe_paste_with_next): Adjust caller.
11040
11041 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
11042
11043         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
11044
11045         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
11046         (REGNO_REG_CLASS): Use symbolic register
11047         names.
11048
11049 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
11050
11051         * arm.c (final_prescan_insn): If the form of a jump insn isn't
11052         recognized, don't try to conditionally execute it.
11053
11054 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
11055
11056         * config/avr/avr.md ("*tablejump_lib"): New pattern.
11057         (call_value_insn): Right length claculation.
11058         (call_insn): Likewise.
11059
11060 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
11061
11062         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
11063         gas_output_limited_string, gas_output_ascii, output_movqi,
11064         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
11065         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
11066         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
11067         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
11068         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
11069         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
11070         Add "const" as needed to remove warnings.
11071
11072         * config/avr/avr.c (avr_override_options, avr_init_once,
11073         function_prologue, function_epilogue, frame_pointer_required_p,
11074         class_likely_spilled_p, order_regs_for_local_alloc,
11075         avr_address_cost, avr_ret_register): Use K&R style arguments.
11076         (initial_elimination_offset, gas_output_limited_string):
11077         Remove ATTRIBUTE_UNUSED from the used arguments.
11078         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
11079         Use local variables src, dest, base to access operands[].
11080         Rename reg_dest to reg_src if that's what it is.
11081         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
11082         constants to LD_REGS if reg_was_0.
11083         (output_reload_insisf): Change arg 3 to insn length and set it.
11084         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
11085         access to 16-bit I/O register pairs.
11086         (avr_address_cost): Lower cost for the above case.
11087         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
11088         may be clobbered, also for LD_REGS.
11089         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
11090         with a CONST_INT.
11091
11092         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
11093
11094         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
11095         macro to test_hard_reg_class function.
11096         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
11097         for loading immediate constants to LD_REGS.
11098         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
11099
11100
11101 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
11102
11103         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
11104         * config/avr/libgcc.S: Lost part of the previous patch.
11105
11106 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11107
11108         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
11109         object before calling pthread_mutex_init.
11110
11111 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
11112
11113         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
11114         config/sh/crtn.asm: New files.
11115         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
11116         (crt1.o, crti.o, crtn.o): New targets.
11117         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
11118         sh/t-elf.
11119         * configure: Rebuilt.
11120         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
11121         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
11122         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
11123         Undefine for config/elfos.h to redefine.
11124         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
11125
11126 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
11127
11128         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
11129         legitimize_pic_address, output_pic_addr_const): Declare.
11130         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
11131         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
11132         (TARGET_SWITCHES): New switch -mprefergot.
11133         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
11134         (PIC_OFFSET_TABLE_REGNUM): Define.
11135         (GOT_SYMBOL_TABLE): Likewise.
11136         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
11137         (ENCODE_SECTION_INFO): Define.
11138         (FINALIZE_PIC): New macros.
11139         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
11140         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
11141         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
11142         (prepare_move_operands): Call emit_pic_move or
11143         emit_pic_const_move if appropriate.
11144         (output_far_jump): For PIC, use braf and output long offset.
11145         (machine_dependent_reorg):
11146         (sh_expand_prologue): Save and initialize the PIC register.
11147         (sh_expand_epilogue): Restore it.
11148         (initial_elimination_offset): Account for it.
11149         (nonpic_symbol_mentioned_p): New function.
11150         (legitimize_pic_address): Likewise.
11151         (output_pic_addr_const): Likewise.
11152         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
11153         (call, call_value): Use them.
11154         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
11155         symPLT_label2reg): New expands.
11156         * invoke.texi (SH Options): Document -mprefergot.
11157
11158 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
11159
11160         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
11161         * gcse.c (hash_string_1): New function.
11162         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
11163         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
11164         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
11165         (canon_hash_string): New function.
11166         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
11167         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
11168         (fold_rtx): Use ASM_OPERANDS accessor macros.
11169         * emit-rtl.c (copy_insn_1): Likewise.
11170         * integrate.c (copy_rtx_and_substitute): Likewise.
11171         * stmt.c (expand_asm_operands): Likewise.  Give an
11172         ASM_OPERANDS rtx the mode of the output reg being set from it.
11173
11174 2000-09-01  Fred Fish  <fnf@be.com>
11175
11176         * fix-header.c (write_rbrac): Add putc and getc to list of
11177         functions to protect against prior definition as a macro.
11178
11179 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
11180
11181         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
11182         (c_size_type_node): Define.
11183         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
11184         * c-common.c (enum format_lengths, enum format_std_version,
11185         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
11186         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
11187         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
11188         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
11189         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
11190         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
11191         format_types): Define.
11192         (format_char_info, print_char_table, scan_char_table,
11193         time_char_table): Rearrange for new organization of information
11194         about format length modifiers and standard versions.
11195         (T_ST): Redefine to use c_size_type_node.
11196         (check_format_info): Obtain information about length modifiers and
11197         standard versions from tables.  Adjust warning message wordings.
11198         Use the name from the user's program for `ll' and `hh' length
11199         modifiers in warning messages.  Use more informative names for
11200         wanted types where available (for wchar_t, wint_t, size_t, signed
11201         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
11202
11203 2000-09-01  Jim Wilson  <wilson@cygnus.com>
11204
11205         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
11206         * combine.c (distribute_notes): Handle REG_NORETURN.
11207         * rtl.c (reg_note_name): Add REG_NORETURN.
11208         * rtl.h (enum reg_note): Likewise.
11209
11210         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
11211         ia64_file_start.
11212         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
11213         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
11214         (emit_predicate_relation_info): Handle conditional calls with
11215         REG_NORETURN.
11216         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
11217         instead of ia64_file_start.
11218         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
11219         * config/ia64/ia64.md (safe_across_calls_all,
11220         save_across_calls_normal): New patterns.
11221
11222         * loop.c (check_final_value): Check for biv use before checking for
11223         giv use.  Check for both biv and giv uses.  Always set last_giv_use
11224         if there is a giv use.
11225
11226 2000-09-01  Richard Henderson  <rth@cygnus.com>
11227
11228         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
11229         (madddi3): Likewise.
11230         (maddsi3): New.
11231
11232 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11233
11234         * expr.c (clear_storage): Don't use emit_move_insn unless
11235         either BLKmode or proper size.
11236         (store_constructor): Don't call clear_storage if REG of wrong size.
11237
11238         * flow.c (init_propagate_block_info): Don't mark frame dead at end
11239         of function if returns wiht stack pointer depressed.
11240
11241 2000-09-01  Andrew Haley  <aph@redhat.com>
11242
11243         * dwarf2out.c (stack_adjust_offset): New function.
11244         (dwarf2out_stack_adjust): Break out stack adjust logic into
11245         new stack_adjust_offset function.  Look inside parallels and
11246         sequences for stack adjustments.
11247
11248 2000-08-31  Jeff Law <law@cygnus.com>
11249
11250         * arm.md: Use no_new_pseudos to determine when it is safe
11251         to create new pseudo registers.
11252
11253         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
11254         when we can safely allocate new registers.
11255
11256 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
11257
11258         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
11259         so that CONCATs are not generated for ASMs.
11260         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
11261         not generating_concat_p.
11262         * function.c (pop_function_context_from): Reset
11263         generating_concat_p.
11264         (prepare_function_start): Likewise.
11265         * rtl.c (generating_concat_p): Define.
11266         * rtl.h (generating_concat_p): Declare.
11267         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
11268
11269 2000-08-22  Philipp Thomas  <pthomas@suse.de>
11270             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
11271
11272         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
11273         for translation.
11274
11275 2000-08-30  Greg McGary  <greg@mcgary.org>
11276
11277         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
11278         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
11279         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
11280
11281 2000-08-30  Greg McGary  <greg@mcgary.org>
11282
11283         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
11284         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
11285         (TREE_INT_CST): New macro.
11286         * varasm.c (const_hash, compare_constant_1, record_constant_1):
11287         Use new macro TREE_INT_CST.
11288
11289 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
11290
11291         * contrib.texi: Add self.
11292
11293 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
11294
11295         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
11296         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
11297         and labels.
11298
11299 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11300
11301         * fixinc/gnu-regex.c: Don't define `const'.
11302
11303 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11304
11305         * expr.c (store_constructor): Allow variable bounds of array type.
11306         (expand_expr): Don't blow up if type is ERROR_MARK.
11307         * varasm.c (output_constructor): Don't access lower bound of array
11308         type unless need it if index is supplied (so it can be a variable
11309         if no index is supplied).
11310         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
11311         Other minor cleanups.
11312
11313 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11314
11315         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
11316         for compilations in stage 1 and subsequent stages, respectively.
11317         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
11318         * configure: Rebuilt.
11319         * x-vax, x-vax-gcc: Deleted.
11320
11321 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
11322
11323         * c-common.c (declare_function_name): Use func_id_node,
11324         function_id_node, and pretty_function_id_node.  Do not make
11325         __func__ visible at file scope.
11326         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
11327         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
11328         (function_id_node, pretty_function_id_node, func_id_node): New
11329         macros.
11330         * c-decl.c (init_decl_processing): Initialize function_id_node,
11331         pretty_function_id_node, and func_id_node.
11332         (c_make_fname_decl): Correct comment.
11333
11334         * tree.h (struct tree_identifier): Constify pointer member.
11335
11336         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
11337         * c-pragma.h (struct weak_syms): Constify name and value members.
11338         (add_weak): Constify arguments.
11339
11340         * calls.c (special_function_p): Constify a char *.
11341         (expand_call): Remove variable which is initialized and then
11342         never used.
11343         * dependence.c (struct def_use, struct induction, struct subscript):
11344         Constify 'variable' member.
11345         (get_low_bound, have_induction_variable): Constify char * argument.
11346         (find_induction_variable): Add braces to avoid dangling else.
11347         (classify_dependence): Constify char * arrays.
11348         * profile.c (output_func_start_profiler): Constify a char *.
11349         * stor-layout.c (finalize_record_size): Constify a char *.
11350         * tree.c (is_attribute_p): Constify a char *.
11351         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
11352
11353         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
11354         for comprehensibility.  Do not call get_identifier if we did
11355         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
11356         create temporary string constants, not ggc_alloc_string.  No
11357         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
11358         char * to hold IDENTIFIER_POINTERs.
11359
11360 2000-08-29  Richard Henderson  <rth@cygnus.com>
11361
11362         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
11363         for the inputs.
11364
11365 2000-08-29  Richard Henderson  <rth@cygnus.com>
11366
11367         * reload.c (push_secondary_reload): Allow class == reload_class
11368         if we're using a reload_in/out pattern.
11369
11370         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
11371         the half that does not conflict with the reload register.
11372         (reload_outti): Likewise.
11373
11374 2000-08-29  Kazu Hirata  <kazu@hxi.com>
11375
11376         * reload.c: Fix formatting.
11377
11378         * stmt.c: Fix formatting.
11379
11380         * gcc.c: Fix formatting.
11381
11382 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
11383
11384         * flags.h (time_report, mem_report): New global flags.
11385         * toplev.c: Define time_report and mem_report.
11386         (f_options): Add -ftime-report and -fmem-report.
11387         (compile_file): Turn on time_report if quiet_flag is off.
11388         Call ggc_print_statistics at very end if mem_report is on.
11389         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
11390
11391         * ggc-common.c (ggc_print_statistics): Rename to
11392         ggc_print_common_statistics; all callers changed.  Scale
11393         quantities above 10K to kilobytes and above 10M to megabytes.
11394         * ggc-page.c (ggc_page_print_statistics): Rename to
11395         ggc_print_statistics.  Report memory consumed by internal data
11396         structures for each allocation bucket.  Scale quantities above
11397         10K to kilobytes and above 10M to megabytes.
11398         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
11399         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
11400         Define tally_leaves always.
11401         (ggc_print_statistics): New function.
11402         * ggc.h: Adjust for renamed functions.
11403
11404 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
11405
11406         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
11407         output_movsisf instead of which_alternative.
11408
11409         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
11410
11411 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
11412
11413         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
11414         (avr_progmem_p): New prototype.
11415         (output_movsisf): Prototype declaration changed.
11416         (output_movqi): New prototype.
11417         (output_movhi): New prototype.
11418         (call_insn_operand): Likewise.
11419         (final_prescan_insn): Likewise.
11420         (avr_simplify_comparision_p): Likewise.
11421         (avr_normalize_condition): Likewise.
11422         (compare_eq_p): Likewise.
11423         (out_shift_with_cnt): Likewise.
11424         (const_int_pow2_p): Likewise.
11425         (output_reload_inhi): Prototype declaration changed.
11426
11427         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
11428         (ldi_reg_rtx): New. rtx for r31.
11429         (avr_init_stack): Initialize as "__stack".
11430         (function_prologue): Use it.
11431         Replace all TARGET_ENHANCED with AVR_ENHANCED.
11432         (avr_mcu_name): Initialize as "avr2".
11433         (avr_enhanced_p, avr_mega_p): New variables.
11434         (mcu_types, avr_override_options): Handle all known MCU types.
11435         Also handle avr1 (only preprocess, assemble and link).
11436         (print_operand): Using of `%K' in output template removed.
11437         (out_movqi_r_mr): Optimized.
11438         (out_movhi_r_mr): Likewise.
11439         (output_movqi): New function.
11440         (output_movhi): Likewise.
11441         (out_movsi_r_mr): Optimized.
11442         (output_movsisf): Compute insn length for `adjust_insn_length'
11443         (out_movqi_mr_r): Optimized.
11444         (out_movhi_mr_r): Optimized.
11445         (adjust_insn_length): Use output_movsisf, output_movqi,
11446         output_movhi for insn length adjusting.
11447         (reg_unused_after): Use dead_or_set_p.
11448         (preferred_reload_class): Now havn't any restriction.
11449         (reg_was_0): New function.
11450         (io_address_p): Likewise.
11451         (const_int_pow2_p): Likewise.
11452         (output_reload_inhi): Likewise.
11453         (output_reload_insisf): Likewise.
11454
11455         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
11456         (LIB_SPEC): Use -lc for all supported devices.
11457         (LIBGCC_SPEC): Use -lgcc for all supported devices.
11458         (AVR_MEGA): Define as avr_mega_p.
11459         (AVR_ENHANCED): New, define as avr_enhanced_p.
11460         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
11461         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
11462         (CRT_BINUTILS_SPECS): Handle all known MCU types.
11463         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
11464         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
11465         (ASM_SPEC): Pass -mmcu=... to the assembler.
11466         Change all -DAVR_* to -D__AVR_*__.
11467         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
11468         Rename library functions to start with two underscores.
11469         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
11470         alignment.
11471         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
11472         (SUPPORTS_WEAK): Likewise.
11473         (LDI_REG_REGNO): New. Register r31 will be used as temporary
11474         register for loading constants to r0-r14.
11475
11476         * config/avr/avr.md: Replace all TARGET_ENHANCED with
11477         AVR_ENHANCED.
11478         (*mov_r_sp): Removed. Handled by output_movhi.
11479         (*mov_sp_r): Likewise.
11480         (*mov_sp_r_no_interrupts): Likewise
11481         (*mov_sp_r_tiny): Likewise.
11482         (*movqi): Use output_movqi.
11483         (*reload_inqi): New.
11484         (*movhi): Use output_movhi.
11485         (*reload_inhi): New.
11486         (*negsi2): Optimized.
11487         (*negsf2): Likewise.
11488         Added peepholes (define_peephole2) for loading constants to r0-r14
11489         and for using `cpse' command.
11490
11491         * config/avr/libgcc.S: Rename library functions to start with two
11492         underscores.
11493         Add support for enhanced core.
11494         (_moqhi3): Fix typo, now _modqi3.
11495         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
11496         (__prologue_saves__): Remove test for stack adjust by 0.
11497         (__tablejump__): New.
11498
11499         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
11500         Add multilib support.
11501
11502 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
11503
11504         * loop.c (prescan_loop): Don't check unknown_address_altered
11505         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
11506         to loop_store_mems as necessary.
11507         (loop_invariant_p): Don't check unknown_address_altered
11508         or unknown_constant_address_altered.
11509
11510 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11511
11512         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
11513
11514 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
11515
11516         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
11517         print just the filename.
11518         * cpplex.c (_cpp_run_directive): Add additional argument, the
11519         name to give the synthetic buffer.  This defaults to
11520         translated "<command line>".
11521         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
11522         Adjust to match.
11523         (_cpp_define_builtin): New function.
11524         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
11525         * cpphash.h: Update prototypes.
11526
11527         * tradcpp.c (main): Process -D and -U simultaneously, in the
11528         order they appeared on the command line.
11529
11530 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11531
11532         * c-decl.c (define_label): Call warning_with_file_and_line and
11533         error_with_file_and_line instead of plain warning or error.
11534
11535         * c-parse.in (label): Use save_filename/save_lineno to ensure
11536         correct values for calls to define_label.
11537
11538 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
11539
11540         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
11541         away.
11542         * expr.c (expand_expr, case TARGET_EXPR): Don't call
11543         mark_addressable.
11544         * tree.h (get_file_function_name): Remove two duplicate
11545         declarations.
11546
11547 2000-08-28  Kazu Hirata  <kazu@hxi.com>
11548
11549         * tree.c: Fix formatting.
11550
11551         * xcoffout.c: Fix formatting.
11552
11553 2000-08-28  Jason Merrill  <jason@redhat.com>
11554
11555         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
11556
11557 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
11558
11559         * dwarf2out.c (dwarf2out_finish): Don't bother calling
11560         break_out_includes if it won't do anything.
11561
11562 2000-08-28  Richard Henderson  <rth@cygnus.com>
11563
11564         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
11565         (find_reloads): Likewise.
11566         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
11567         (reload_inhi): Likewise.
11568
11569 2000-08-28  Richard Henderson  <rth@cygnus.com>
11570
11571         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
11572         (call_insn_operand): Don't expect a surrounding mem.
11573         (constant_call_address_operand): Likewise.
11574         * config/i386/i386.h (PREDICATE_CODES): Update.
11575         * config/i386/i386.md (call patterns): Move the match_operand
11576         for the call destination inside the mem.
11577
11578 2000-08-28  Richard Henderson  <rth@cygnus.com>
11579
11580         * local-alloc.c (requires_inout): Don't use reserved range for
11581         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
11582         * recog.c (asm_operand_ok): Likewise.
11583         (preprocess_constraints, constrain_operands): Likewise.
11584         * regclass.c (record_reg_classes): Likewise.
11585         * reload.c (find_reloads): Likewise.
11586         * reload1.c (maybe_fix_stack_asms): Likewise.
11587         (reload_cse_simplify_operands): Likewise.
11588         * stmt.c (expand_asm_operands): Likewise.
11589
11590         * md.texi: Update constraints documentation.
11591         * tm.texi (EXTRA_CONSTRAINT): Update.
11592
11593 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
11594
11595         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
11596         (print_die): If we don't know the offset of the
11597         target die, try the symbol.  Add a trailing newline.
11598         (reverse_all_dies): New fn.
11599         (dwarf2out_finish): Call it.
11600         (break_out_includes): Reorganize for clarity.
11601         (add_sibling_attributes): Don't call reverse_die_lists.
11602         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
11603         primary CU, too.
11604         * flags.h: Add flag_eliminate_dwarf2_dups.
11605         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
11606
11607 2000-08-28  Jason Merrill  <jason@redhat.com>
11608
11609         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
11610         * dwarf2out.c: #include "md5.h".
11611         (DIE_LABEL_PREFIX): New macro.
11612         (dw_val_struct): Add 'external' flag to val_die_ref.
11613         (add_AT_die_ref, AT_ref): Adjust.
11614         (AT_ref_external, set_AT_ref_external): New fns.
11615         (build_abbrev_table): Call set_AT_ref_external.
11616         (value_format): Call AT_ref_external.
11617         (die_struct): Add die_symbol field.
11618         (new_die): Clear it.
11619         (dwarf_tag_name): Handle BINCL/EINCL.
11620         (dwarf2out_start_source_file): Add BINCL DIE.
11621         (dwarf2out_end_source_file): Add EINCL DIE.
11622         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
11623         (loc_checksum, attr_checksum, die_checksum): New fns.
11624         (is_type_die, is_comdat_die, is_symbol_die): New fns.
11625         (compute_section_prefix, assign_symbol_names): New fns.
11626         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
11627         (output_die): Call output_die_symbol and AT_ref_external.
11628         (output_comdat_comp_unit): New fn, split out from...
11629         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
11630         secondary CUs.
11631         (output_pubnames, output_aranges): Abort if we see entries from
11632         secondary CUs.
11633         * toplev.h: Declare file_name_nondirectory.
11634         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
11635         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
11636         (debug_start_source_file): Call dwarf2out_start_source_file
11637         regardless of debug verbosity.
11638         (debug_end_source_file): Similarly.
11639         * tree.h: Declare clean_symbol_name.
11640         * tree.c (clean_symbol_name): Split out from...
11641         (get_file_function_name_long): ...here.
11642
11643         * dwarf2out.c (new_loc_descr): Use calloc.
11644         (splice_child_die): Remove the die from the right parent.
11645         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
11646
11647 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11648
11649         * toplev.c (decode_g_option): Don't give warning for unknown -g
11650         option; return 0 instead.
11651         (main): If -g option is not recognized by front end or
11652         language-independent code, give warning.
11653
11654 2000-08-28  Greg McGary  <greg@mcgary.org>
11655
11656         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
11657         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
11658         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
11659
11660 2000-08-27  Greg McGary  <greg@mcgary.org>
11661
11662         * cpplex.c (parse_string): Don't look for backslash
11663         before first char in `namebuf'.
11664         * loop.c (strength_reduce): Skip NOTEs.
11665
11666 2000-08-27  Jason Merrill  <jason@redhat.com>
11667
11668         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
11669         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
11670         TREE_ASM_WRITTEN, either.
11671         (finish_decl): Adjust.
11672
11673 2000-08-28  Philipp Thomas  <pthomas@suse.de>
11674
11675         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
11676         they have been incorporated into the gettext CVS. Change the text to
11677         reflect the current status of NLS. Add instructions for accessing
11678         the gettext CVS and add the patch from Martin v. Loewis.
11679
11680 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
11681
11682         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
11683         by using gen_lowpart_common.
11684         (movdi_internal64+6): Likewise.
11685
11686 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
11687
11688         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
11689         Document.
11690
11691         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
11692         numbers to the ranges used by GDB.
11693
11694 2000-08-25  Richard Henderson  <rth@cygnus.com>
11695
11696         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
11697         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
11698         (ia64_expand_prologue): Likewise.
11699         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
11700         argument for stdargs.
11701
11702 2000-08-25  Jason Merrill  <jason@redhat.com>
11703
11704         * integrate.c (expand_inline_function): Pull out the original decl.
11705
11706 2000-08-25  Jim Wilson  <wilson@cygnus.com>
11707
11708         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
11709
11710         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
11711
11712 2000-08-25  Greg McGary  <greg@mcgary.org>
11713
11714         * flow.c (dump_edge_info): Use ARRAY_SIZE.
11715         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
11716
11717 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
11718
11719         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
11720
11721 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
11722
11723         * i386.c (ix86_find_base_term): New.
11724         * i386-protos.h (ix86_find_base_term): Prototype.
11725         * i386.h (FIND_BASE_TERM): Define.
11726         * alias.c (find_base_term): Use it.
11727         * tm.texi (FIND_BASE_TERM): Document it.
11728
11729         * alias.c (true_dependence, write_dependence_p): Unchanging
11730         memory can't conflict with non-unchanging memory.
11731
11732         * alias.c (memrefs_conflict_p): A BLKmode reference
11733         to a symbol (or CONST_INT address) always conflicts
11734         with a reference to another symbol.
11735
11736 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
11737
11738         * c-common.c (time_char_table): Don't allow width and flags with
11739         "z" format.
11740
11741 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
11742
11743         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
11744         way as LT and LTU when the second operand has 0 in low word.
11745
11746 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
11747
11748         * basic-block.h (struct loop): Rename `exits' field to
11749         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
11750
11751         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
11752         (flow_loop_entry_edges_find): Add.
11753         (flow_edge_list_print): Rename from flow_exits_print.
11754         (flow_loops_find): Call flow_loop_entry_edges_find.
11755         (flow_loop_dump): Dump entry_edges list.
11756         (flow_loops_free): Free entry_edges.
11757
11758 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
11759
11760         * loop.c (loop_dump_aux, debug_loop): New functions.
11761         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
11762
11763         * flow.c (flow_loops_dump): Add callback parameter.
11764         (flow_loop_dump): Add callback parameter and call it.  Move
11765         loop note debugging code to loop_dump_aux.
11766
11767         * basic-block.h (flow_loop_dump): Add callback parameter
11768         (flow_loops_dump): Likewise.
11769
11770         * toplev.c (rest_of_compilation): Add NULL callback function pointer
11771         to call to flow_loops_dump.
11772
11773 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
11774
11775         * loop.c (count_loop_regs_set): Replace start and end arguments
11776         with loop argument.  All callers udated.
11777
11778 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
11779
11780         * loop.c (constant_high_bytes): Delete.
11781
11782 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
11783
11784         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
11785         and NOTE_INSN_LOOP_VTOP to...
11786         (find_and_verify_loops) ...here.
11787
11788 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
11789
11790         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
11791         (fini_dummy, init_dummy): Use it.
11792
11793 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
11794
11795         * cpplex.c (is_macro_disabled): Caller has already checked
11796         that we're not a preprocessed file.
11797
11798 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
11799
11800         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
11801         (c-iterate.o): Remove target.
11802         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
11803         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
11804         (finish_decl): Don't handle iterators.
11805         (grokdeclarator): Likewise.
11806         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
11807         * gcc/c-gperf.h: Regenerated.
11808         * gcc/c-iterate.c: Removed.
11809         * gcc/c-lex.c (init_lex): Don't handle iterators.
11810         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
11811         (compstmt_primary_start): Remove push_iterator_stack call.
11812         (stmt): Don't allow iterator statements.  Replace iterator_expand
11813         with expand_expr_stmt.
11814         (all_iter_stmt): Remove.
11815         (all_iter_stmt_simple): Likewise.
11816         (all_iter_stmt_with_decl): Likewise.
11817         * gcc/c-tree.h (ITERATOR_P): Remove.
11818         (ITERATOR_BOUND_P): Likewise.
11819         (init_iterators): Remove declaration.
11820         (iterator_expand): Likewise.
11821         (iterator_for_loop_start): Likewise.
11822         (iterator_for_loop_end): Likewise.
11823         (iterator_for_loop_record): Likewise.
11824         (push_iterator_stack): Likewise.
11825         (pop_iterator_stack): Likewise.
11826         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
11827         (readonly_warning): Likewise.
11828         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
11829
11830 2000-08-24  Jim Wilson  <wilson@cygnus.com>
11831
11832         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
11833         Copy type in a TYPE_DECL, just like pushdecl does.
11834
11835 2000-08-24  Richard Henderson  <rth@cygnus.com>
11836
11837         * toplev.c (main): Enable flag_reorder_blocks at -O2.
11838
11839 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
11840
11841         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
11842         asked for one page, allocate GGC_QUIRE_SIZE of them and put
11843         the extras on the free list.
11844         (release_pages): Clean up.
11845         (ggc_set_mark): Don't adjust G.allocated here...
11846         (sweep_pages): ... do it here.
11847
11848 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
11849
11850         * cppfiles.c (read_include_file): Rearrange initializations.
11851
11852 2000-08-24  Richard Henderson  <rth@cygnus.com>
11853
11854         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
11855
11856         * config/ia64/ia64-protos.h: Update.
11857         * config/ia64/ia64.c (gr_register_operand): New.
11858         (fr_register_operand, grfr_register_operand): New.
11859         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
11860         (grfr_reg_or_8bit_operand): New.
11861         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
11862         use gr_register_operand.
11863         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
11864         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
11865         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
11866         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
11867         (fr_reg_or_fp01_operand): Likewise.
11868         (not_postinc_memory_operand): New.
11869         (ia64_split_timode): Remove unused variables.
11870         (rtx_needs_barrier): Check arguments to cmpxchg.
11871         (builtin_description): Remove.
11872         (bdesc_2argsi, bdesc_2argdi): Remove.
11873         (ia64_init_builtins): Declare all builtins directly.
11874         (ia64_expand_fetch_and_op): Rewrite to be called from
11875         ia64_expand_builtin directly.  Use expand_binop and co.
11876         (ia64_expand_op_and_fetch): Likewise.
11877         (ia64_expand_compare_and_swap): Likewise.
11878         (ia64_expand_binop_builtin): Remove.
11879         (ia64_expand_lock_test_and_set): New.
11880         (ia64_expand_lock_release): New.
11881         (ia64_expand_builtin): Use them.
11882         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
11883         (EXTRA_CONSTRAINT): Use it.
11884         (PREDICATE_CODES): Update.
11885         * config/ia64/ia64.md (*): Use gr_register_operand and co.
11886         (mf): Indicate that we set memory as well as use it.
11887         (fetchadd_acq_si): Show memory being modified as well.
11888         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
11889         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
11890         (lock_test_and_set_si, lock_test_and_set_di): Remove.
11891         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
11892         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
11893         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
11894         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
11895         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
11896         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
11897         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
11898         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
11899         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
11900         return type.  Pretty print definitions.
11901
11902 2000-08-24  Jim Wilson  <wilson@cygnus.com>
11903
11904         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
11905         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
11906
11907 2000-08-24  Jason Merrill  <jason@redhat.com>
11908
11909         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
11910         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
11911         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
11912         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
11913
11914 2000-08-24  Greg McGary  <greg@mcgary.org>
11915
11916         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
11917         and extendtab within their proper array boundaries.
11918         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
11919         for the entire array.
11920
11921         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
11922         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
11923         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
11924         * config/fr30/fr30.c (fr30_print_operand): Likewise.
11925         * config/i386/dgux.c (output_options): Likewise.
11926         * config/i386/dgux.h (ASM_FILE_START): Likewise.
11927         * config/m88k/m88k.c (output_options): Likewise.
11928         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
11929         * config/mcore/mcore.c (mcore_output_inline_const_forced,
11930         layout_mcore_frame, handle_structs_in_regs): Likewise.
11931         * config/mips/mips.c (output_block_move): Likewise.
11932         * config/rs6000/rs6000.c (rs6000_override_options,
11933         rs6000_file_start): Likewise.
11934         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
11935         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
11936         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
11937         * builtins.c (expand_builtin_setjmp): Likewise.
11938         * expr.c (safe_from_p): Likewise.
11939         * flow.c (life_analysis): Likewise.
11940         * fold-const.c (size_int_type_wide): Likewise.
11941         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
11942         * genattrtab.c (make_length_attrs): Likewise.
11943         * genopinit.c (gen_insn): Likewise.
11944         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
11945         * global.c (global_alloc): Likewise.
11946         * local-alloc.c (find_free_reg): Likewise.
11947         * mips-tdump.c (print_symbol): Likewise.
11948         * mips-tfile.c (parse_def, parse_input): Likewise.
11949         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
11950         * stmt.c (expand_nl_goto_receiver): Likewise.
11951         * stor-layout.c (set_sizetype): Likewise.
11952         * varasm.c (decode_reg_name): Likewise.
11953         * toplev.c (decode_f_option, decode_W_option,
11954         set_target_switch, print_switch_values): Likewise.
11955         (NUM_ELEM): Remove macro.
11956         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
11957
11958 2000-08-24  Greg McGary  <greg@mcgary.org>
11959
11960         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
11961         (MAIN_NAME_P, main_identifier_node): New macros.
11962         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
11963         * c-decl.c (start_decl, grokdeclarator, start_function,
11964         store_parm_decls, finish_function): Use MAIN_NAME_P.
11965         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
11966         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
11967         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
11968         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
11969
11970 2000-08-24  Greg McGary  <greg@mcgary.org>
11971
11972         * cppfiles.c (actual_directory): Don't write beyond `dir'
11973         when it contains "".
11974         * real.c (asctoeg): Stay within bounds of etens[][].
11975
11976 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11977
11978         * dependence.c (dependence_string, direction_string,
11979         dump_one_node, dump_node_dependence): Hide unused identifiers.
11980         (get_low_bound, normalize_coefficients): Match definition to
11981         static prototype.
11982         (get_one_coefficient): Initialize variables `value0_is_idx' and
11983         `value1_is_idx'.
11984         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
11985         (ziv_test): Delete variable `idx', use parameter `sub' instead.
11986         (direction_merge): Avoid automatic aggregate initialization.
11987         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
11988         Initialize variables `dest_idx' and `src_idx'.
11989         (end_dependence_analysis): Avoid C89 style function definition.
11990
11991 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
11992
11993         * c-common.c (time_char_table): Don't allow width with %F.
11994         (check_format_info): Don't allow "Z" length with scanf.
11995
11996 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
11997
11998         * diagnostic.c (finish_diagnostic): Define.
11999         (output_do_printf): Use wrap_text instead of output_add_string.
12000         (default_print_error_function): Avoid embedded '\n'.
12001
12002         * diagnostic.h (flush_diagnostic_buffer): Declare.
12003
12004 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
12005
12006         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
12007
12008 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
12009
12010         * Makefile.in (GCC_PASSES): Add specs.
12011
12012 2000-08-23  Jim Wilson  <wilson@cygnus.com>
12013
12014         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
12015         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
12016         EHANDLER nor UHANDLER bit is set.
12017         (__get_except_table): Likewise.
12018
12019 2000-08-23  Nick Clifton  <nickc@redhat.com>
12020
12021         * config/arm/lib1funcs.asm: Replace upper case condition codes
12022         with lower case versions.
12023
12024         * config/arm/arm.h (STRUCT_VALUE): Define.
12025         (STRUCT_VALUE_REGNUM): Delete.
12026
12027 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
12028
12029         * cpphash.h (IN_I): New flag for directive table.
12030         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
12031         #pragma with IN_I.
12032         (_cpp_check_directive): If -fpreprocessed, execute directives
12033         marked with IN_I.  Issue no warnings in this case.
12034         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
12035
12036 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
12037
12038         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
12039         %u.
12040         (check_format_info): Support printf 'I' flag; warn about it with
12041         -pedantic.
12042
12043 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
12044
12045         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
12046         barrier can't be ignored by the alias analysis code.
12047
12048 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
12049
12050         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
12051         works inside fixincl.
12052
12053 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
12054
12055         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
12056         simplify_relational_operation() unless both operands are of
12057         VOIDmode.
12058         * cse.c (fold_rtx): Likewise.
12059
12060 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
12061
12062         * rtlanal.c (rtx_unstable_p): The pic register is stable
12063         (within one function) and the actual rtx should be used
12064         when checking the registers.
12065         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
12066
12067         * alias.c (true_dependence, write_dependence_p): Fix
12068         bug in previous patch.
12069
12070         * i386.c (ix86_GOT_alias_set): New.
12071         (legitimize_pic_address): Use it.
12072
12073         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
12074         only stable if its address is stable.
12075         (rtx_varies_p): An unchanging MEM can't vary if
12076         its address doesn't vary.
12077
12078 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12079
12080         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
12081
12082 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
12083
12084         * vax.h (ASM_SPEC): Pass `-J' to assembler.
12085         * x-vax-gcc: New file for bootstrapping with gcc.
12086         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
12087         * configure.in: Use x-vax-gcc with gcc.
12088         * configure: Rebuilt.
12089
12090 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12091
12092         * toplev.c (rest_of_compilation): Rebuild label notes after
12093         post-reload splitting pass if new labels have been created.
12094
12095 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
12096
12097         * diagnostic.h (output_buffer_state): New macro.
12098         * diagnostic.c (diagnostic_for_decl, sorry,
12099         default_print_error_function, output_do_verbatim,
12100         report_diagnostic, report_problematic_module): Use it.
12101         (wrap_text): Tweak.
12102         (output_format): Use wrap_text instead of maybe_wrap_text.
12103
12104 2000-08-22  Nick Clifton  <nickc@redhat.com>
12105
12106         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
12107         Common code for ARM divide and modulus functions.
12108         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
12109         ARM_DIV_MOD_BODY.
12110         (FUNC_END): New macro: Common code at the end of the division and
12111         modulo functions.
12112         (THUMB_FUNCTION_START): New macro:  Common code at the start of
12113         Thumb functions.
12114         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
12115
12116 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
12117
12118         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
12119
12120         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
12121         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
12122         const0_rtx.
12123
12124 2000-08-22  Nick Clifton  <nickc@redhat.com>
12125
12126         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
12127         restorative additions, test for bottom bits of IP being set,
12128         rather than relying upon the RORs not matching.
12129         (__modsi3): Ditto.
12130
12131 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
12132
12133         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
12134         text_section() as appropriate instead of emitting text csect
12135         pseudo-op directly.
12136         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
12137         (UNIQUE_SECTION): Define macro.
12138         (ASM_OUTPUT_SECTION_NAME): Define macro.
12139         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
12140         on AIX if debugging and -fdata-sections always.
12141
12142 2000-08-22  Steven King  <sxking@uswest.net>
12143
12144         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
12145         machinery.
12146         (LDBL_MAX): Same here.
12147
12148 2000-08-22  Richard Henderson  <rth@cygnus.com>
12149
12150         * flow.c (tidy_fallthru_edge): Update b->end properly.
12151
12152 2000-08-22  Stan Cox  <scox@redhat.com>
12153
12154         * Makefile.in (OBJS): Add dependence.o.
12155         * dependence.c: New file.
12156
12157 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
12158
12159         * calls.c (check_sibcall_argument_overlap_1): Adjust for
12160         ARGS_GROW_DOWNWARD.
12161         (check_sibcall_argument_overlap): Likewise.
12162
12163 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
12164
12165         * invoke.texi (SH Options): Document -m4-nofpu,
12166         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
12167         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
12168
12169 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
12170
12171         * c-common.c (check_format_info): Give the 'some locales' warning
12172         for strftime %Ey rather than the unconditional 'only last 2 digits
12173         of year' one.
12174
12175 2000-08-22  Richard Henderson  <rth@cygnus.com>
12176
12177         * alias.c (init_alias_analysis): Do not register
12178         struct_value_incoming_rtx or static_chain_rtx as pointing
12179         to stack memory.
12180
12181 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
12182
12183         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
12184
12185 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
12186
12187         * diagnostic.h (report_problematic_module): Declare.
12188         * diagnostic.c (report_problematic_module): New function.
12189         (report_error_function): Tweak.
12190
12191 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12192
12193         * stmt.c (expand_goto_internal, fixup_gotos): Only check
12194         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
12195
12196 2000-08-21  Richard Henderson  <rth@cygnus.com>
12197
12198         * flow.c (calculate_global_regs_live): Mark frame pointer live
12199         everywhere before reload.
12200
12201 2000-08-21  Jim Wilson  <wilson@cygnus.com>
12202
12203         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
12204         INTEL_EXTENDED_IEEE_FORMAT.
12205         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
12206         clear last two bytes of output FP value.
12207
12208 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
12209
12210         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
12211
12212 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
12213
12214         * unroll.c (loop_find_equiv_value): If ret is modified between
12215         insn and loop_start, ret might not be equivalent to reg.
12216
12217 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
12218
12219         * c-common.c (init_dollar_format_checking,
12220         maybe_read_dollar_number, finish_dollar_format_checking): New
12221         functions.
12222         (dollar_arguments_used, dollar_arguments_count,
12223         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
12224         New variables.
12225         (check_format_info): Support $ formats for scanf and printf width
12226         and precision.  Always increment format_chars to advance past the
12227         '*' of precision, not just when the format parameters are
12228         available to check.
12229
12230 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12231
12232         * mips.c (block_move_loop, expand_block_move,
12233         function_arg_partial_nregs, save_restore_insns, function_prologue,
12234         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
12235         constant suffix.
12236         (function_arg_advance, function_arg): Match argument to format
12237         specifier `%p'.
12238
12239 2000-08-21  Nix  <nix@esperi.demon.co.uk>
12240
12241         * gcc.c (do_spec_1): Implement %j spec flag.
12242         Remove dead comment.
12243
12244         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
12245         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
12246         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
12247         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
12248
12249         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
12250         writable) instead of hardcoded value.
12251
12252         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
12253
12254         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
12255         MKTEMP_EACH_FILE.
12256
12257         * gcc.c (cc1_options): Do not process -o or run the assembler if
12258         -fsyntax-only.
12259         * objc/lang-spec.h: Likewise.
12260
12261 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
12262
12263         * fixinc/fixincl.c (fix_with_system): Pipe the output of
12264         "external" fixes through `cat', to avoid truncating the input
12265         file by redirection.
12266
12267 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
12268
12269         * config/i386/i386.md (lea_general_1): Copy insn condition to split
12270         condition.
12271         (lea_general_2, lea_general_3): Likewise.
12272
12273 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12274
12275         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
12276         warnings to user code.
12277
12278         * c-lex.c (readescape, yylex): Likewise.
12279
12280         * c-typeck.c (store_init_value, process_init_element): Likewise
12281         (c_expand_start_case): Format.
12282
12283 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12284
12285         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
12286
12287         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
12288         and linker_endian_spec to endian_spec.
12289         (ENDIAN_SPEC): Add %{EB} and %{EL}.
12290         (LINK_SPEC): Remove %{EB} and %{EL}.
12291         (ASM_SPEC): Likewise.  Use %(endian_spec).
12292
12293 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
12294
12295         * c-tree.h (flag_hosted): Move declaration from here...
12296         * c-common.h (flag_hosted): ... to here.
12297         (flag_noniso_default_format_attributes): New declaration.
12298         * c-decl.c (flag_noniso_default_format_attributes): New variable.
12299         (c_decode_option): Set it appropriately for options choosing
12300         language standard variant.
12301         * c-common.c (init_function_format_info): Only provide default
12302         format attributes if flag_hosted.  Only provide the gettext
12303         formats if flag_noniso_default_format_attributes.  Update
12304         comments.
12305         (check_format_info): Disable treatment of %a as a scanf flag in
12306         C99 mode.
12307
12308 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
12309
12310         * c-common.c (scan_char_table): Add 'w' to flags for all formats
12311         except 'n'.
12312         (check_format_info): Set 'wide' for scanf format widths.  Warn for
12313         a zero scanf width.  Make the check for writing into a constant
12314         object at the first level of indirection; at later levels, warn if
12315         any type qualifiers are encountered.
12316
12317 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
12318
12319         * reload.c (reload_inner_reg_of_subreg): New function broken out of
12320         push_reload.
12321         (push_reload): Use reload_inner_reg_of_subreg.
12322         (combine_reloads): Do not combine reloads if the input reload
12323         is a SUBREG in which the inner part will need reloading.
12324
12325         * global.c (global_alloc): Avoid passing dumpfile argument to
12326         reload routines.
12327         * toplev.c (rest_of_compilation): Likewise.
12328         * reload.h (reload): Remove dumpfile argument.  Callers changed.
12329         (debug_reload, debug_reload_to_stream): Move prototypes here.
12330         * rtl.h  (reload): Remove dumpfile argument.
12331         * reload.c (debug_reload): Remove prototype.
12332         (debug_reload_to_stream): Likewise.
12333         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
12334         instead.
12335
12336 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
12337
12338         * diagnostic.c (context_as_prefix): Export.
12339         (need_error_newline): Remove.
12340         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
12341         (error_module_changed, record_last_error_module,
12342         error_function_changed, record_last_error_function): New functions.
12343         (initialize_diagnostics): Default intialize
12344         lang_diagnostic_starter, lang_diagnostic_finalizer.
12345         (init_output_buffer): Tweak.
12346         (file_name_as_prefix): New function.
12347         (announce_function, default_print_error_function,
12348         report_error_function, set_diagnostic_context): Tweak.
12349
12350 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
12351
12352         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
12353         condition expression.
12354
12355 2000-08-20  Richard Henderson  <rth@cygnus.com>
12356
12357         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
12358
12359 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
12360
12361         * cppinit.c (cpp_init): Set global flag when called.
12362         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
12363
12364 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
12365
12366         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
12367         before `process_directive' so that newlines won't be missed
12368         for directives.
12369         (cpp_printf): Increment `print->lineno' when newline is emitted.
12370
12371         * cppmain.c (cb_ident): Likewise.
12372         (cb_define): Likewise.
12373         (cb_undef): Likewise.
12374         (cb_include): Likewise.
12375         (cb_def_pragma): Likewise.
12376         (dump_macros_helper): Likewise.
12377
12378 2000-08-20  Richard Henderson  <rth@cygnus.com>
12379
12380         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
12381         assigned before a loop.
12382
12383         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
12384         (ashrsi3, lshrsi3): Likewise.
12385
12386 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
12387
12388         * c-lang.c: #include diagnostic.h
12389         (c_tree_printer): New function.
12390         (lang_init): Initialize lang_printer.
12391
12392         * Makefile.in (c-lang.o): Depends on diagnostic.h
12393
12394 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
12395
12396         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
12397
12398         * diagnostic.c (default_diagnostic_starter,
12399         default_diagnostic_finalizer): New functions.
12400         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
12401         (pedwarn, pedwarn_with_file_and_line, error,
12402         error_with_file_and_line, fatal, warning,
12403         warning_with_file_and_line): Adjust call to report_diagnostic.
12404         (report_diagnostic): Rework.
12405         (set_diagnostic_context): New function.
12406
12407         * diagnostic.h (struct diagnostic_context): New data structure.
12408         (diagnostic_message, diagnostic_argument_list,
12409         diagnostic_file_location, diagnostic_line_location,
12410         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
12411         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
12412         (set_diagnostic_context): Declare.
12413         (report_diagnostic): Change prototype.
12414
12415 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
12416
12417         * fix-header.c (main): Initialize cpplib.
12418
12419 2000-08-19  Michael Meissner  <meissner@redhat.com>
12420
12421         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
12422         instructions in it before checking for indirect jumps.
12423
12424         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
12425         in a indirect jump as a potential for conditional execution.
12426
12427         * d30v.h (d30v_init_expanders): Don't declare here.
12428         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
12429         prototype.
12430
12431 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
12432
12433         * cpp.texi: Add @section for assertions.
12434
12435 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
12436
12437         * loop.c (scan_loop): Use CONST_CALL_P instead of
12438         checking for REG_LIBCALL / REG_RETVAL.
12439
12440 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
12441
12442         * reload1.c (reload_as_needed): Accept dumpfile argument,
12443         pass it to emit_reload_insns.
12444         (emit_reload_insns): Add new dumpfile argument.  If non-null
12445         then dump the reloads for each insn into the dumpfile.
12446         (reload): Pass dumpfile to reload_as_needed.
12447
12448         * invoke.texi: Clean up linux-gnu vs linux comments.
12449
12450 2000-08-19  Richard Henderson  <rth@cygnus.com>
12451
12452         * config/ia64/ia64.c (reg_or_5bit_operand): New.
12453         (ia64_depz_field_mask): New.
12454         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
12455         (PREDICATE_CODES): Update.
12456         * config/ia64/ia64.md: Update commentary.
12457         (depz_internal): New.
12458         (ashlsi3): Implement directly.
12459         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
12460         (ashldi3): Use shladd.
12461         * config/ia64/ia64-protos.h: Update.
12462
12463 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
12464
12465         * toplev.c (independent_decode_option): Always process -g.
12466         Remove third argument, now unused.  Adjust caller to match.
12467
12468 2000-08-18  Richard Henderson  <rth@cygnus.com>
12469
12470         * combine.c (make_compound_operation): Break after creating
12471         the extraction.
12472
12473 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
12474
12475         * cpplib.c (cpp_register_pragma_space): Just return if the
12476         namespace is already registered.
12477
12478 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
12479
12480         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
12481         constant amount.  Do not generate ROTL instruction.
12482
12483 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
12484
12485         * config/sh/elf.h: Do not include sh/sh.h.
12486         * config/sh/rtems.h: Likewise.
12487         * config/sh/rtemself.h: Do not include sh/elf.h.
12488         * configure.in: Get them included with `tm_file's.
12489         * configure: Rebuilt.
12490
12491         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
12492         * config/sh/sh.c (fpscr_set_from_mem): Use them.
12493
12494 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12495
12496         * stor-layout.c (compute_record_type): Don't use mode of single
12497         field as mode of record if not integer mode of same type.
12498
12499         * regmove.c (perhaps_ends_bb_p): New function.
12500         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
12501         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
12502         (fixup_match_1): Likewise.
12503         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
12504         avoid signed/unsigned warnings.
12505
12506         * function.c (fixup_var_refs_1, case MEM): Update CODE after
12507         updating X.
12508
12509 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
12510
12511         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
12512         (_cpp_trigraph_map): Declaration moved from cpplex.c
12513
12514         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
12515         instead of 256.  Use consistent test for designated initializers.
12516         (cpp_init): Initialize trigraph_map.
12517         (initialize_standard_includes, parse_option):  Use memcmp
12518         instead of strncmp.
12519
12520         * cpplex.c (init_trigraph_map): Remove.
12521         (trigraph_ok, trigraph_replace, lex_line): Refer to
12522         _cpp_trigraph_map.
12523
12524         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
12525         (do_unassert): Remove unused "next" local.
12526
12527         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
12528
12529 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
12530
12531         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
12532         insn.
12533
12534 2000-08-17  Richard Henderson  <rth@cygnus.com>
12535
12536         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
12537         the first insn in a sequence.
12538
12539 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
12540
12541         * alias.c (true_dependence, write_dependence_p): A read
12542         involving a label_ref or the constant pool doesn't create
12543         a dependency.
12544
12545         * rtl.h (unchanging): Improve documentation.
12546
12547 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
12548
12549         * cse.c (insert_regs): Remove unused `regno'.
12550
12551 2000-08-17  Neil Booth  <NeilB@earthling.net>
12552
12553         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
12554         remove_dup_dirs.  If qtail == brack, remove brack not
12555         qtail.
12556         (remove_dup_dir, remove_dup_dirs): New functions.
12557
12558 2000-08-17  Neil Booth  <NeilB@earthling.net>
12559
12560         * cppinit.c (cpp_cleanup): Free include dir chains.
12561         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
12562         (do_unassert): Free the assert with _cpp_free_definition.
12563         * cppmacro.c (_cpp_free_definition): Free memory allocated for
12564         assertions.  Make the node a T_VOID node.
12565
12566 2000-08-17  Neil Booth  <NeilB@earthling.net>
12567
12568         * cppinit.c (path_include, append_include_chain):
12569         Remove 2nd parameter (struct cpp_pending *).
12570         (path_include, initialize_standard_includes, cpp_handle_option):
12571         Update callers appropriately.
12572         (cpp_handle_option): Use pend.
12573
12574 2000-08-17  Neil Booth  <NeilB@earthling.net>
12575
12576         * cppinit.c (sort_options): Remove, put functionality in
12577         cpp_init.
12578         (cpp_init): New.
12579         (initialize_builtins): Free memory.
12580         (cpp_start_read): Move init_IStable to cpp_init.
12581
12582         * cpplib.h (cpp_init): New prototype.
12583         * cppmain.c (main): Call cpp_init.
12584
12585 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
12586
12587         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
12588         (rtx_unstable_p, rtx_varies_p): Process vectors.
12589
12590 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
12591
12592         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
12593         references to GLOBAL symbols.  Use LOCAL where appropriate.
12594
12595 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12596
12597         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
12598         use t-aix41 when host == target.
12599
12600 2000-08-16  Richard Henderson  <rth@cygnus.com>
12601
12602         * reload.c (push_secondary_reload): Revert last change.
12603         If we use a reload_in/out pattern, make the when the same
12604         as the primary reload.
12605         (find_reloads): Likewise.
12606
12607 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
12608
12609         * configure.in (libstdcxx-v3): Fix test.
12610         * configure: Regenerate.
12611
12612 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12613
12614         * calls.c (calls_function_1, expand_call): Only test
12615         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
12616         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12617
12618 2000-08-16  Richard Henderson  <rth@cygnus.com>
12619
12620         * combine.c (simplify_shift_const): Revert previous two
12621         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
12622         before the main loop.
12623
12624 2000-08-15  Richard Henderson  <rth@cygnus.com>
12625
12626         * combine.c (simplify_shift_const): Bound shift count when
12627         combining shifts.
12628
12629 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12630
12631         * calls.c (ECF_SP_DEPRESSED): New macro.
12632         (calls_function_1): Treat calling sp-depressed function as alloca.
12633         (emit_call_1): Don't adjust SP if calling sp-depressed function.
12634         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
12635         If sp-depressed, ensure block saves and restores SP.
12636         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
12637         for INTEGER_TYPE.
12638         * function.c (keep_stack_depressed): New function.
12639         (thread_prologue_and_epilogue_insns): Call it.
12640         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
12641         to print DECL_OFFSET_ALIGN.
12642         Print no-force-blk and transparent-union flags properly.
12643         * stmt.c (expand_goto_internal): Don't restore stack if last block
12644         and function returns with sp depressed.
12645         (fixup_gotos): Likewise.
12646         (save_stack_pointer): New function, from code in expand_decl.
12647         (expand_decl): Call new function.
12648         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
12649         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
12650         (save_stack_pointer): New declaration.
12651
12652         * diagnostic.c (fatal_function): New variable.
12653         (set_fatal_function): New function.
12654         (fatal): Call it.
12655         * diagnostic.h (set_fatal_function): New declaration.
12656
12657 2000-08-15  William Cohen  <wcohen@redhat.com>
12658
12659         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
12660         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
12661         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
12662
12663 2000-08-15  Richard Henderson  <rth@cygnus.com>
12664
12665         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
12666
12667 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
12668
12669         * arm.c (arm_function_ok_for_sibcall): New function.
12670         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
12671         * arm.md (call expanders): Don't check here for calls that can't
12672         be sibling calls.
12673
12674 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
12675
12676         * arm.md (splits generating cond_exec): Disable.
12677
12678 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
12679
12680         * arm/linux-elf.h (text_section): Delete declaration.
12681
12682 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
12683
12684         ARM support for unordered FP operations.
12685         * arm-protos.h (arm_comparison_operator): Declare.
12686         * arm.c (arm_comparison_operator): New function.
12687         (arm_select_cc_mode): Add unordered comparison codes.
12688         (get_arm_condition_code): Likewise.
12689         (arm_final_prescan_insn): Can't handle unordered jumps that can't
12690         be done in one insn.
12691         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
12692         * arm.md (all uses of comparison_operator): Replace with
12693         arm_comparison_operator.
12694         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
12695         expands.
12696         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
12697         patterns.
12698
12699 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
12700
12701         * gthr-posix.h: Conditionally include <sched.h>; include
12702         <config.h> from libobjc/.
12703
12704 2000-08-14  Richard Henderson  <rth@cygnus.com>
12705
12706         * config/i386/i386.c (legitimize_pic_address): Use Pmode
12707         for all CONSTs.
12708
12709 2000-08-14  Richard Henderson  <rth@cygnus.com>
12710
12711         * configure.in (ia64-*): Set float_format for i386 long double.
12712
12713         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
12714         as we would for i386 XFmode.
12715         (PUT_REAL): Likewise.
12716         (endian, ereal_atof, real_value_truncate): Likewise.
12717         (ereal_isneg, toe64, etens, make_nan): Likewise.
12718         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
12719
12720         * config/ia64/ia64-protos.h: Update.
12721         * config/ia64/ia64.c (general_tfmode_operand): New.
12722         (destination_tfmode_operand): New.
12723         (tfreg_or_fp01_operand): New.
12724         (ia64_split_timode): New.
12725         (spill_tfmode_operand): New.
12726         (ia64_expand_prologue): Use TFmode not XFmode.
12727         (ia64_expand_epilogue): Likewise.
12728         (ia64_function_arg): Likewise.
12729         (ia64_function_arg_advance): Likewise.
12730         (ia64_return_in_memory): Likewise.
12731         (ia64_function_value): Likewise.
12732         (ia64_print_operand): Likewise.
12733         (ia64_register_move_cost): Set GR<->FR to 5.
12734         (ia64_secondary_reload_class): Get GR for TImode memory op.
12735         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
12736         (ROUND_TYPE_ALIGN): Remove.
12737         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
12738         (INTEL_EXTENDED_IEEE_FORMAT): Define.
12739         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
12740         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
12741         (MODES_TIEABLE_P): Use TFmode, not XFmode.
12742         (CLASS_MAX_NREGS): Likewise.
12743         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
12744         (PREDICATE_CODES): Update.
12745         * config/ia64/ia64.md (movti): New.
12746         (movti_internal): Use a clobber for memory alternatives.
12747         (reload_inti, reload_outti): New.
12748         (movsfcc_astep): Predicate properly.
12749         (movdfcc_astep): Likewise.
12750         (movxf): Remove.
12751         (movtf): New.
12752         (extendsftf2, extenddftf2): New.
12753         (trunctfsf2, trunctfdf2): New.
12754         (floatditf2, fix_trunctfdi2): New.
12755         (floatunsditf2, fixuns_trunctfdi2): New.
12756         (addtf3, subtf3, multf3, abstf2): New.
12757         (negtf2, nabstf2, mintf3, maxtf3): New.
12758         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
12759         (cmptf): New.
12760         (fr_spill): Use TFmode, not XFmode.
12761         (fr_restore): Likewise.
12762         * config/ia64/lib1funcs.asm (__divtf3): New.
12763         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
12764
12765 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12766
12767         * cse.c (fold_rtx): Avoid empty body in an if-statement.
12768
12769         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
12770         `U' integer constant suffix.
12771
12772         * dwarf2out.c (add_subscript_info): Avoid empty body in an
12773         else-statement.
12774
12775         * sparc/sol2.h (__enable_execute_stack): Prototype.
12776
12777 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
12778
12779         * collect2.c: Remove use of AIX import file.
12780
12781         * longlong.h: Test ARCH_PWR not ARCH_POWER.
12782
12783         * rs6000.c (print_operand, case 'E'): Add else.
12784
12785 2000-08-14  Richard Henderson  <rth@cygnus.com>
12786
12787         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
12788         (movdi_symbolic): New.
12789
12790 2000-08-14  Jim Wilson  <wilson@cygnus.com>
12791
12792         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
12793         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
12794         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
12795         to GNU as.
12796
12797 2000-08-14  Richard Henderson  <rth@cygnus.com>
12798
12799         * expr.c (emit_group_load): Don't force constants into registers.
12800         Special case source already in the correct mode.
12801
12802 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
12803
12804         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
12805         * fixinc/inclhack.def: Likewise.
12806         * fixinc/mkfixinc.sh: Likewise.
12807         * configure: Regenerate.
12808         * fixinc/fixincl.x: Regenerate.
12809         * install.texi: Document equivalence of linux and linux-gnu.
12810
12811 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12812
12813         * cse.c (insert_regs): Also in REG case: When finding an invalid
12814         value, and we make a new quantity, make sure that it won't be
12815         mistaken by for a valid one by mention_regs.
12816
12817 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
12818
12819         * h8300.md: Remove obsolete peepholes.
12820
12821 2000-08-13  Kazu Hirata  <kazu@hxi.com>
12822
12823         * invoke.texi (H8/300 Options): Fix typos.
12824         * config/h8300.c: Fix formatting.
12825         * config/h8300.h: Fix comment typos.
12826         (OVERRIDE_OPTIONS): Fix formatting.
12827
12828         * function.c: Fix formatting.
12829
12830         * cse.c: Fix formatting.
12831
12832 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
12833
12834         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
12835         (attempt_auto_inc): Suppress parentheses warning.
12836         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
12837         * loop.c (load_mems): Remove `u' suffix in two places.
12838         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
12839         hex constants.
12840         * config/rs6000/rs6000.h: Likewise.
12841         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
12842         __eabi dummy routine.
12843         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
12844         variable `buf_ptr'.
12845
12846         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
12847         not put stuff in .sdata unnecessarily.
12848         (rs6000_unique_section): New function.
12849         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
12850         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
12851
12852         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
12853         arrays in C99.  Don't try to look at DECL_REGISTER of a
12854         COMPONENT_REF.  Don't complain twice about the same error.
12855
12856         * fixinc/inclhack.def (aix_pthread): New fix.
12857         (aix_sysmachine): New fix.
12858         * fixinc/fixincl.x: Regenerate.
12859
12860         * expr.c (expand_expr): Call convert_modes when turning a large
12861         multiply into a small one.
12862
12863 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
12864
12865         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
12866         the tree structure an exponent rather than an explicit alignment
12867         so it doesn't overflow.
12868         (SET_DECL_OFFSET_ALIGN): New macro.
12869         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
12870         rather than DECL_OFFSET_ALIGN.
12871         (place_field): Likewise.
12872         * expmed.c (store_bit_field): Abort on align==0 to avoid
12873         antisocial machine behaviour.
12874
12875 2000-08-12  Richard Henderson  <rth@cygnus.com>
12876
12877         * sibcall.c (uses_addressof): Accept both addressof and
12878         current_function_internal_arg_pointer inside a mem.
12879         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
12880         if current_function_uses_addressof.
12881         * stmt.c (expand_return): Kill tail recursion and HAVE_return
12882         optimizations.
12883
12884 2000-08-11  Richard Henderson  <rth@cygnus.com>
12885
12886         * config/ia64/ia64.md (addsi3): Remove expander.
12887         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
12888         (*addsi3_shladd): New.
12889
12890 2000-08-11  Richard Henderson  <rth@cygnus.com>
12891
12892         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
12893         (do_restore): Likewise.
12894         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
12895         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
12896         (rtx_needs_barrier): Track actual bit manipulation for
12897         ar.unat moves, gr_spill, and gr_restore.
12898         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
12899         (process_set): Don't handle varargs spills.
12900         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
12901         .mem.offset here instead of in process_set.
12902         (gr_restore): Likewise.
12903
12904 2000-08-11  Richard Henderson  <rth@cygnus.com>
12905
12906         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
12907
12908 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
12909
12910         * gcc.texi (The Configuration File): Document
12911         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
12912         UPDATE_PATH_HOST_CANONICALIZATION.
12913
12914 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12915
12916         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
12917         unprototyped function pointer casts on integer constants.
12918
12919 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
12920
12921         * fixproto: Recognize DOS paths with drive letters as absolute paths.
12922
12923 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
12924
12925         * extend.texi (Volatiles): Fix typos.
12926
12927 2000-08-11  Kazu Hirata  <kazu@hxi.com>
12928
12929         * flow.c: Fix formatting.
12930
12931 2000-08-11  Richard Henderson  <rth@cygnus.com>
12932
12933         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
12934         pattern, always allocate a tertiary scratch register.
12935
12936         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
12937         (reload_inhi): Likewise.
12938
12939 2000-08-11  Richard Henderson  <rth@cygnus.com>
12940
12941         * function.c (put_reg_into_stack): Allow type to be NULL.
12942         (schedule_fixup_var_refs): Likewise.
12943         (gen_mem_addressof): Allow decl to be NULL.
12944         (put_addressof_into_stack): Likewise.
12945
12946         * flow.c (merge_blocks_nomove): Be more careful about
12947         locating the beginning of block A.
12948
12949         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
12950
12951 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
12952
12953         * configure.in:
12954         * configure:
12955         * gthr-posix.h:
12956         * config.in: Reverted the check for <sched.h>.
12957
12958 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
12959
12960         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
12961         macros define the name of CTOR and DTOR sections.
12962         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
12963         DTOR_LIST_END): Change to use attributes to specify
12964         sections.
12965         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
12966         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
12967         DTOR_LIST_END): Same as in mips/elf.h.
12968
12969 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
12970
12971         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
12972         disabling just crt0.o.
12973
12974 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
12975
12976         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
12977         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
12978         (EXTRA_SPECS): Add them.
12979         * arm/lib1funcs.asm: Support builds for interworking.
12980         Use macros to eliminate duplicated pieces of code.
12981
12982 2000-08-10  Kazu Hirata  <kazu@hxi.com>
12983
12984         * h8300.c (expand_a_rotate): New.
12985         (emit_a_rotate): Likewise.
12986         (h8300_adjust_insn_length): Add support for the rotate insns.
12987         * h8300.md (rotlqi3): New.
12988         (*rotlqi3_1): Likewise.
12989         (rotlhi3): Likewise.
12990         (*rotlhi3_1): Likewise.
12991         (rotlhi3): Likewise.
12992         (*rotlhi3_1): Likewise.
12993         * h8300-proto.h: Add prototypes for expand_a_rotate and
12994         emit_a_rotate.
12995
12996         * h8300.c: Fix comment typos.
12997         (dosize): Declare the variable amount as unsigned.
12998         (get_shift_alg): Fix a comparison between signed and unsigned.
12999         (emit_a_shift): Likewise.
13000         (h8300_adjust_insn_length): Simplify the code.
13001
13002         * c-decl.c: Fix formatting.
13003
13004 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13005
13006         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
13007         warning about non-traditional numeric constant suffixes.
13008
13009         * cppexp.c (parse_number): Likewise.
13010
13011         * invoke.texi: (-Wtraditional): Document new behavior.
13012
13013 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
13014
13015         * gthr-posix.h: Include auto-host.h. Conditionally include
13016         <sched.h>.
13017         * configure.in: Check for the <sched.h> header file.
13018         * config.in: Added define for HAVE_SCHED_H.
13019
13020 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13021
13022         * c-typeck.c (process_init_element): For -Wtraditional, warn about
13023         initialization of unions.
13024
13025         * invoke.texi (-Wtraditional): Document new behavior.
13026
13027 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
13028
13029         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
13030         instead of extra_c_flags.
13031         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
13032         * configure: Regenerate.
13033         * config.in: Regenerate.
13034
13035         * cpperror.c (cpp_type2name): New function.
13036         * cpplex.c (lex_line): If we issued an error for an invalid
13037         preprocessing directive, discard that logical line.
13038         * cpplib.c (do_line): Call a hook function if the current file
13039         is renamed by #line.
13040         (do_ident): Pass the contents of the string, not the entire
13041         token, to the callback function.
13042         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
13043         (cb.rename_file): New hook function.
13044         (cb.ident): Adjust prototype.
13045         (cpp_type2name): Prototype.
13046         * cppmacro.c (dump_macro_args): Correct precedence lossage.
13047
13048         * cppmain.c (cb_ident): Update for changed interface.
13049         (cb_rename_file): New function.
13050         (main): Set rename callback.
13051
13052 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
13053
13054         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
13055         multi-word registers.
13056
13057 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13058
13059         * c-common.c (combine_strings, check_format_info): Refer to ISO C
13060         or ISO C89 instead of ANSI C.
13061         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
13062         build_enumerator, do_case): Likewise.
13063         * c-lex.c (parse_float, yylex): Likewise.
13064         * c-parse.in: Likewise.
13065         * c-typeck.c (common_type, build_array_ref, build_binary_op,
13066         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
13067         build_c_cast, convert_for_assignment, set_init_index,
13068         set_init_label, c_expand_start_case): Likewise.
13069         * toplev.c (documented_lang_options, display_help): Likewise.
13070
13071 2000-08-08  Kazu Hirata  <kazu@hxi.com>
13072
13073         * h8300.c: Fix formatting.
13074         * h8300.h: Likewise.
13075         * h8300.md: Likewise.
13076         (movsi_h8300hs): Fix formatting of the resulting assembly code.
13077
13078         * reload1.c: Fix formatting.
13079
13080 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
13081
13082         * alpha/alpha.c (alpha_emit_xfloating_libcall):
13083         Use GEN_CALL_VALUE define.
13084         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
13085         * clipper/clipper.md (untyped_call): Likewise.
13086         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
13087         * fx80/fx80.md (untyped_call): Likewise.
13088         * mips/mips.md (untyped_call): Likewise.
13089         * ns32k/ns32k.md (untyped_call): Likewise.
13090         * pa/pa.md (untyped_call): Likewise.
13091         * romp/romp.md (untyped_call): Likewise.
13092         * sparc/sparc.md (untyped_call): Likewise.
13093
13094 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
13095
13096         * config/i860/i860.c (singlemove_string): Do not generate assembler
13097         pseudo instructions that must be expanded (that is, with signed
13098         constants larger than 16 bits).
13099
13100 2000-08-08  Richard Henderson  <rth@cygnus.com>
13101
13102         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
13103         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
13104         (init_propagate_block_info): Don't kill memory stores at -O0.
13105         (mark_set_1, mark_used_regs): Likewise.
13106
13107 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
13108
13109         * rs6000.c (optimization_options): Decorate 'level' as
13110         ATTRIBUTE_UNUSED.
13111         (mask64_operand): Remove sign-extend thinko.
13112         (rldic_operand): New function.
13113         (load_multiple_operation): regno's are unsigned ints.
13114         (store_multiple_operation): Likewise.
13115         (lmw_operation): Likewise.
13116         (stmw_operation): Likewise.
13117         (includes_lshift_p): shift_mask is unsigned int.
13118         (includes_lshift64_p): New function.
13119         (addrs_ok_for_quad_peep): unsigned int reg1.
13120         (print_operand): Consistently add "else" after
13121         output_operand_lossage().
13122         (print_operand, case 'b'): Fold in case 'W'.
13123         (print_operand, case 'W'): Print rldic MB value.
13124         (output_epilogue): Update Objective-C language string.
13125         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
13126         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
13127         * rs6000.md (ashldi3): Add rldic instruction.
13128         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
13129         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
13130         modifier.
13131
13132 2000-08-08  Richard Henderson  <rth@cygnus.com>
13133
13134         * config/ia64/ia64-protos.h: Remove duplicates.  Update
13135         for massive code rearrangements.
13136         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
13137         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
13138         (ia64_local_regs, ia64_need_regstk): Remove.
13139         (ar_ccv_reg_operand): New.
13140         (ia64_gp_save_reg): New.
13141         (struct ia64_frame_info): Combine most of the size elements;
13142         add new gr save elements.
13143         (find_gr_spill): New.
13144         (next_scratch_gr_reg): New.
13145         (mark_reg_gr_used_mask): New.
13146         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
13147         to GR backing store regs when possible.
13148         (ia64_initial_elimination_offset): New.
13149         (ia64_rap_fp_offset): Remove.
13150         (save_restore_insns): Remove.
13151         (setup_spill_pointers): New.
13152         (finish_spill_pointers): New.
13153         (spill_restore_mem): New.
13154         (do_spill, do_restore): New.
13155         (ia64_expand_prologue): Rewrite to use them.
13156         (ia64_expand_epilogue): Likewise.
13157         (ia64_direct_return): Update for current_frame_info changes.
13158         (ia64_function_prologue): Simplify .prologue emission.  Emit
13159         .spill when needed.
13160         (ia64_setup_incoming_varargs): Don't ever emit rtl.
13161         (ia64_dbx_register_number): New.
13162         (ia64_initialize_trampoline): New.
13163         (ia64_secondary_reload_class): Request GR_REGS for integer
13164         arithmetic destined for FR_REGS.
13165         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
13166         (ia64_mark_machine_status): Mark ia64_gp_save.
13167         (rws_access_regno): Rename from rws_access_reg; don't treat
13168         predicates specially.
13169         (rws_access_reg): New.  Update all callers.
13170         (rtx_needs_barrier): Remove dead unspecs.
13171         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
13172         (ia64_encode_section_info): Silence signed/unsigned warnings.
13173         (spill_offset, sp_offset, spill_offset_emitted): Remove.
13174         (tmp_reg, tmp_saved): Remove.
13175         (process_set): Rewrite to expect complicated bits via
13176         REG_FRAME_RELATED_EXPR.
13177         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
13178         in the use of ar.ccv; never set RTX_UNCHANGING_P.
13179         (ia64_expand_op_and_fetch): Likewise.
13180         (ia64_expand_compare_and_swap): Likewise.
13181         (ia64_expand_builtin): Likewise.
13182         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
13183         (FIRST_PSEUDO_REGISTER): Update.
13184         (AR_M_REGNO_P): Update.
13185         (FIXED_REGS): Don't mark three local registers as used.
13186         (EXTRA_CC_MODES): New.
13187         (SELECT_CC_MODE): New.
13188         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
13189         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
13190         (FRAME_GROWS_DOWNWARD): Unset.
13191         (STARTING_FRAME_OFFSET): Zero.
13192         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
13193         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
13194         (HARD_FRAME_POINTER_REGNUM): New.
13195         (CAN_DEBUG_WITHOUT_FP): Define.
13196         (TRAMPOLINE_TEMPLATE): Remove.
13197         (TRAMPOLINE_SIZE): Lower to 32.
13198         (TRAMPOLINE_ALIGNMENT): Lower to 64.
13199         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
13200         (PREDICATE_CODES): Update.
13201         (struct machine_function): Add ia64_gp_save.
13202         * config/ia64/ia64.md: Purge unused unspecs.
13203         (movsi patterns): Allow moves to/from AR_M_REGS.
13204         (movdi patterns): Allow moves to/from p0.
13205         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
13206         (gr_spill, gr_restore): Indicate ar.unat read/written.
13207         (nonlocal_goto): Don't pass old frame_pointer.
13208         (nonlocal_goto_receiver): Remove.
13209         (exception_receiver): New.
13210         (builtin_setjmp_setup): New.
13211         (builtin_setjmp_receiver): New.
13212         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
13213         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
13214         (__ia64_restore_stack_nonlocal): Likewise.
13215         (__ia64_trampoline): New.
13216         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
13217         function.
13218         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
13219
13220 2000-08-08  Richard Henderson  <rth@cygnus.com>
13221
13222         * frame.h (ia64_frame_state): Add my_psp.
13223         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
13224         (__throw): Pass it in.  Don't clobber r7.
13225         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
13226         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
13227         and nothing to do with sp.
13228         (normalize_reg_loc): Use frame->my_psp.
13229         (frame_translate): Handle frame-pointer-less functions.  Set
13230         spill_base correctly, in absence of being told.
13231         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
13232         (__ia64_backtrace_helper): New sp argument.  Use
13233         builtin_return_address instead of label addresses.
13234         (print_record) [mem_stack_v]: No size member.
13235
13236 2000-08-08  Richard Henderson  <rth@cygnus.com>
13237
13238         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
13239
13240 2000-08-08  Richard Henderson  <rth@cygnus.com>
13241
13242         * tm.texi (LOCAL_REGNO): Document.
13243         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
13244         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
13245         * reload1.c (reload): Likewise when considering nonlocal labels.
13246
13247         * config/ia64/ia64.h (LOCAL_REGNO): New.
13248         * config/sparc/sparc.h (LOCAL_REGNO): New.
13249
13250 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13251
13252         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
13253
13254 2000-08-07  Nick Clifton  <nickc@redhat.com>
13255
13256         * config/mips/mips.c: Fix compile time warning messages.
13257         * config/mips/mips-protos.h: Add prototype for equality_op.
13258
13259         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
13260
13261 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
13262
13263         * mn10300.md: Use nonimmediate_operand instead of general_operand
13264         on output operands.
13265
13266         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
13267
13268 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
13269
13270         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
13271         * sh.c (expand_block_move): Break long lines.
13272         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
13273         * sh.md (mulsi3): Likewise.
13274         (movdi): Adjust spacing.
13275
13276 2000-08-07  Richard Henderson  <rth@cygnus.com>
13277
13278         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
13279         * expr.c (emit_group_store): Don't set it.
13280
13281 2000-08-07  Kazu Hirata  <kazu@hxi.com>
13282
13283         * invoke.texi (Options for Debugging Your Program or GCC): Remove
13284         duplicate entries for 'w' and 'z'.
13285
13286         * flow.c: Fix a comment typo.
13287
13288 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
13289
13290         * c-parse.in: Changed the language string for Objective-C to "GNU
13291         Objective-C".
13292
13293 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
13294
13295         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
13296         to improve the Posix thread support for Objective-C.
13297
13298 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
13299
13300         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
13301         CTI_UNSIGNED_PTRDIFF_TYPE.
13302         (signed_size_type_node): Define.
13303         (unsigned_ptrdiff_type_node): Define.
13304         * c-decl.c (init_decl_processing): Create the
13305         signed_size_type_node and unsigned_ptrdiff_type_node types.
13306         * c-common.c (T_SC): Define.
13307         (T_SST): Define.
13308         (T_UPD): Define.
13309         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
13310         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
13311         %s and %p.
13312         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
13313         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
13314         flags for %c, %s and %[.
13315         (check_format_info): Only allow leniency for signedness of targets
13316         of character pointers (when pedantic) for formats flagged with
13317         "c", so for strings but not for %hh formats.  When pedantic, don't
13318         allow character pointers to substitute for void pointers if a
13319         second level of indirection is present.
13320
13321 2000-08-06  Kazu Hirata  <kazu@hxi.com>
13322
13323         * invoke.texi (Options for Debugging Your Program or GCC): Update
13324         the names of dump files.
13325
13326         * h8300.c (dosize): Rearrange code for conciseness.
13327         (split_adds_subs): Likewise.
13328
13329         * loop.c: Fix formatting.
13330
13331         * dwarf2out.c: Fix formatting.
13332
13333         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
13334
13335         * expr.c: Fix formatting.
13336
13337 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13338
13339         * rs6000.c (rs6000_maybe_dead): Prototype.
13340
13341 2000-08-06  Richard Henderson  <rth@cygnus.com>
13342
13343         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
13344         HAVE_nonlocal_goto as well.
13345         * config/i960/i960.md (nonlocal_goto): Don't do it here.
13346         * config/pj/pj.md (nonlocal_goto): Likewise.
13347
13348 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
13349
13350         * loop.c (try_swap_copy_prop): New function.
13351         (load_mems): Rename copies to load_copies and add new regset
13352         store_copies.  Check for sets of shadow registers and mark
13353         in store_copies.   Call try_swap_copy_prop for registers
13354         marked in store_copies.
13355
13356 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
13357
13358         * objc/objc-act.c: New command line option -fconstant-string-class
13359         to allow specifying a user defined constant string class,
13360         different from NXConstantString.
13361
13362         * toplev.c: Moved the Objective-C specific options to
13363         objc/lang-options.h.
13364
13365         * objc/lang-options.h: Moved the Objective-C specific options from
13366         toplev.c. Added -fconstant-string-class.
13367
13368 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
13369
13370         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
13371         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
13372         __CTOR_LIST__ from func_ptr array to just func_ptr, to
13373         avoid extra alignment imposed on arrays.
13374         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
13375         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
13376
13377         * mips.h: Clean up comments and spacing near MASKs.
13378         (TARGET_UNIX_ASM): Delete.
13379         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
13380         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
13381         values contiguous.
13382
13383 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
13384
13385         * c-common.c (print_char_table): Add entries for the X/Open '
13386         format flag (print decimals with locale's thousands grouping
13387         character).  Make %C expect wint_t.
13388         (check_format_info): If pedantic, warn when the %n$ operand
13389         number form is used.  Allow for the ' flag; warn about it if
13390         pedantic.
13391
13392 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
13393
13394         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
13395         type is a float mode, cfun->decl's return type is not, and
13396         TARGET_FLOAT_RETURNS_IN_80387.
13397
13398 2000-08-04  Andreas Schwab  <schwab@suse.de>
13399
13400         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
13401         token list, which are always `#' and `pragma'.
13402
13403 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
13404
13405         * tree.c (tree_expr_nonnegative_p): Move to...
13406         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
13407         (rtl_expr_nonnegative_p): New.
13408         * tree.h: Add prototype for rtl_expr_nonnegative_p.
13409
13410         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
13411         CONST_DOUBLE_CHAIN: Move to...
13412         * rtl.h: ...here.  Use XCINT/XCEXP.
13413
13414         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
13415         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
13416         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
13417         to VOL_FILES.
13418
13419         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
13420
13421 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13422
13423         * config/c4x/c4x.md (return_indirect_internal): New.
13424         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
13425
13426 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13427
13428         * c-common.c (time_char_table): Mark up formats added in C99 and
13429         make other corrections.  %D and %g were added in C99.  %Og is an
13430         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
13431         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
13432         C99 rather than GNU extensions, but %OG and %Oz are extensions.
13433         %h was added in C99.  %C was added in C99.  %OY and %OC are
13434         extensions.  Add the C99 format %F.
13435         (check_format_info): If pedantic and not in C99 mode, warn for C99
13436         formats, %E and %O.
13437
13438 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13439
13440         * function.c (schedule_fixup_var_refs): New function, broken out
13441         of put_reg_into_stack.
13442         (put_reg_into_stack): Use it.
13443         (put_var_into_stack): In CONCAT case, fixup up references for
13444         components only after fixing up references to the whole concat.
13445
13446 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
13447
13448         * alias.c (mark_constant_function): Use INSN_P.
13449         (init_alias_analysis): Likewise.
13450         * combine.c (combine_instructions): Use INSN_P.
13451         (can_combine_p): Likewise.
13452         (try_combine): Likewise.
13453         (distribute_notes): Likewise.
13454         (distribute_links): Likewise.
13455         * cse.c (cse_around_loop): Use INSN_P.
13456         (invalidate_skipped_block): Likewise.
13457         (cse_set_around_loop): Likewise.
13458         (cse_end_of_basic_block): Likewise.
13459         (delete_trivially_dead_insns): Likewise.
13460         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
13461         (unshare_all_rtl_1): Likewise.
13462         (next_cc0_user): Likewise.
13463         (try_split make_insn_raw): Likewise.
13464         (remove_unnecessary_notes): Likewise.
13465         * final.c (shorten_branches): Use INSN_P.
13466         (leaf_renumber_regs): Likewise.
13467         (leaf_renumber_regs_insn): Likewise.
13468         * flow.c (find_label_refs): Use INSN_P.
13469         (verify_wide_reg): Likewise.
13470         (notice_stack_pointer_modification): Likewise.
13471         (count_or_remove_death_notes): Likewise.
13472         (verify_flow_info): Likewise.
13473         (clear_log_links): Likewise.
13474         * function.c (fixup_var_refs_insns): Use INSN_P.
13475         (compute_insns_for_mem): Likewise.
13476         * gcse.c (alloc_gcse_mem): Use INSN_P.
13477         (compute_sets): Likewise.
13478         (compute_hash_table): Likewise.
13479         (classic_gcse): Likewise.
13480         (cprop): Likewise.
13481         (insert_insn_end_bb): Likewise.
13482         (delete_null_pointer_checks_1): Likewise.
13483         * global.c (expand_preferences): Use INSN_P.
13484         (build_insn_chain): Likewise.
13485         * graph.c (node_data): Use INSN_P.
13486         * haifa-sched.c (priority): Use INSN_P.
13487         (rm_line_notes): Likewise.
13488         (rm_other_notes): Likewise.
13489         (find_insn_reg_weight): Likewise.
13490         (init_target_units): Likewise.
13491         (schedule_block): Likewise.
13492         (compute_block_forward_dependences): Likewise.
13493         (debug_dependencies): Likewise.
13494         (set_priorities): Likewise.
13495         * integrate.c (function_cannot_inline_p): Use INSN_P.
13496         (save_parm_insns): Likewise.
13497         (copy_insn_list): Likewise.
13498         * jump.c (mark_all_labels): Use INSN_P.
13499         (never_reached_warning): Likewise.
13500         * lcm.c (optimize_mode_switching): Use INSN_P.
13501         * local-alloc.c (validate_equiv_mem): Use INSN_P.
13502         (memref_used_between_p): Likewise.
13503         (update_equiv_regs): Likewise.
13504         (block_alloc): Likewise.
13505         (no_conflict_p): Likewise.
13506         * loop.c (scan_loop): Use INSN_P.
13507         (find_and_verify_loops): Likewise.
13508         (count_loop_regs_set): Likewise.
13509         (loop_reg_used_before_p): Likewise.
13510         (strength_reduce): Likewise.
13511         (recombine_givs): Likewise.
13512         (check_dbra_loop): Likewise.
13513         (load_mems): Likewise.
13514         (try_copy_prop): Likewise.
13515         * print-rtl.c (print_rtx): Use INSN_P.
13516         * recog.c (find_single_use): Use INSN_P.
13517         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
13518         (next_flags_user): Likewise.
13519         (swap_rtx_condition): Likewise.
13520         * regmove.c (mark_flags_life_zones): Use INSN_P.
13521         (optimize_reg_copy_1): Likewise.
13522         (optimize_reg_copy_2): Likewise.
13523         (optimize_reg_copy_3): Likewise.
13524         (reg_is_remote_constant_p): Likewise.
13525         (fixup_match_2): Likewise.
13526         (regmove_optimize): Likewise.
13527         (fixup_match_1): Likewise.
13528         * regrename.c (build_def_use): Use INSN_P.
13529         (replace_reg_in_block): Likewise.
13530         (consider_use): Likewise.
13531         * reload.c (find_equiv_reg): Use INSN_P.
13532         * reload1.c (reload): Use INSN_P.
13533         (maybe_fix_stack_asms): Likewise.
13534         (calculate_needs_all_insns): Likewise.
13535         (reload_as_needed): Likewise.
13536         (emit_output_reload_insns): Likewise.
13537         (delete_address_reloads_1): Likewise.
13538         (reload_cse_regs_1): Likewise.
13539         (reload_combine): Likewise.
13540         (reload_cse_move2add): Likewise.
13541         * reorg.c (redundant_insn): Use INSN_P.
13542         (dbr_schedule): Likewise.
13543         * resource.c (find_dead_or_set_registers): Use INSN_P.
13544         (mark_target_live_regs): Likewise.
13545         * rtlanal.c (reg_used_between_p): Use INSN_P.
13546         (reg_referenced_between_p): Likewise.
13547         (reg_set_between_p): Likewise.
13548         (reg_set_p): Likewise.
13549         (single_set): Likewise.
13550         (multiple_sets): Likewise.
13551         (find_last_value): Likewise.
13552         (reg_set_last): Likewise.
13553         (find_reg_note): Likewise.
13554         (find_regno_note): Likewise.
13555         * sibcall.c (sequence_uses_addressof): Use INSN_P.
13556         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
13557         * ssa.c (find_evaluations): Use INSN_P.
13558         (rename_block): Likewise.
13559         (rename_equivalent_regs): Likewise.
13560         * unroll.c (loop_find_equiv_value): Use INSN_P.
13561         (set_dominates_use): Likewise.
13562         * varasm.c (mark_constant_pool): Use INSN_P.
13563         (mark_constants): Likewise.
13564         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
13565         (alphaev4_next_group): Likewise.
13566         (alphaev5_next_group): Likewise.
13567         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
13568         (c4x_rptb_rpts_p): Likewise.
13569         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
13570         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
13571         (rs6000_adjust_priority): Likewise.
13572         * config/sh/sh.c (sh_loop_align): Use INSN_P.
13573         (machine_dependent_reorg): Likewise.
13574         (split_branches): Likewise.
13575         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
13576
13577 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
13578
13579         * combine.c (recog_for_combine): Remove the old notes
13580         prior to attempting to recognize the new pattern.
13581         (distribute_notes): Ignore REG_NONNEG notes.
13582
13583 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
13584
13585         * varasm.c (output_constructor): Add .align 0 for packed vars.
13586
13587 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
13588
13589         * configure.in: Use default thread_file even when enable_threads is
13590         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
13591         * configure: Rebuilt.
13592
13593         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
13594
13595 2000-08-04  Donn Terry (donnte@microsoft.com)
13596
13597         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
13598
13599 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
13600
13601         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
13602         Delete code that conditionally modifies 'version'.
13603         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
13604         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
13605         * gcc.c (main): Use it.
13606         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
13607         * prefix.c (update_path): Use it.
13608         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
13609         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
13610         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
13611         code.
13612         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
13613         (SUBTARGET_SWITCHES): Adjust.
13614         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
13615         defining.
13616         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
13617
13618 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13619
13620         * c-common.h (flag_isoc94): Declare.
13621         * c-decl.c (flag_isoc94): Define.
13622         (c_decode_option): Set flag_isoc94 as appropriate.
13623         * c-common.c (T_PD, T_IM, T_UIM): Define.
13624         (format_char_info): Add tlen and jlen.
13625         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
13626         %F.  Allow %lf.
13627         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
13628         %l[.
13629         (time_char_table): Add NULL entries for %t and %j.
13630         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
13631         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
13632         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
13633         precision.  Allow precision argument to be unsigned int.  If
13634         pedantic, warn for %p passed an argument not a pointer to possibly
13635         qualified void or a possibly qualified character type, and for
13636         pointer targets of the wrong sign, except for character pointers.
13637
13638 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13639
13640         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
13641         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
13642         (wint_type_node): Define.
13643         * c-decl.c (WINT_TYPE): Define.
13644         (init_decl_processing): Create the wint_type_node type.
13645         * c-common.c (T_WI): Define.
13646         (print_char_table): Use T_WI for %lc format.
13647
13648 2000-08-04  Bruce Korb  <bkorb@gnu.org>
13649
13650         * fixinc/:  Verified that the MSDOS patch does not break
13651         the UNIX functionality and applied the next three patches
13652         from July:
13653
13654 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
13655
13656         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
13657         output file with the temporary one by appending ".X" to generate
13658         the temporary fuile's name.  If the output file already has an
13659         extension, replace it with ".X".
13660
13661         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
13662         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
13663         reallocate the command buffer while copying the command-line
13664         argument.  Redirect the output directly to the temporary file,
13665         instead of going through another temporary file.
13666         (process): Close the temporary file before unlinking it.
13667         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
13668         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
13669         (run_compiles): Pass p_fixd argument to machine_matches, as it
13670         expects.
13671
13672         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
13673         environment, assume there are no symlinks in the include
13674         directory.  When cleaning up the DONE files, look for them
13675         case-insensitively.  Don't try to remove symlinks if they aren't
13676         there.
13677
13678         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
13679         all callers changed.  Declare pz "const char *", to avoid compiler
13680         warnings.
13681
13682         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
13683         Change prototype of make_raw_shell_str.
13684
13685 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
13686
13687         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
13688         (initialize) [__MSDOS__]: Use tempnam.
13689         (initialize): Don't use SIGPIPE if it is not defined.
13690
13691         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
13692         return stdout.
13693
13694 2000-07-25  Bruce Korb  <bkorb@gnu.org>
13695
13696         * fixinc/fix*.[ch]: substantially reworked to make it possible
13697         to run this program without using fork(2) or pipe(2) (i.e. in
13698         a DOS environment).
13699
13700 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
13701
13702         * cppdefault.h (WINT_TYPE): Define.
13703         * cppinit.c (builtin_array): Define __WINT_TYPE__.
13704         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
13705         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
13706
13707 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
13708
13709         * (mips_legitimate_address_p): Don't allow register+offset
13710         if the offset is large and negative, and we are compiling
13711         for 64 bit registers.
13712
13713 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13714
13715         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
13716         insn_code_number + 1.
13717
13718 2000-08-04  Kazu Hirata  <kazu@hxi.com>
13719
13720         * h8300.c (function_prologue): Rearrange code for conciseness.
13721         (function_epilogue): Likewise.
13722         * h8300.h (OK_FOR_U): Fix formatting.
13723
13724         * cse.c: Fix a comment typo. Fix formatting.
13725
13726 2000-08-03  Richard Henderson  <rth@cygnus.com>
13727
13728         * config/i386/i386.md (return_indirect_internal): New.
13729         * config/i386/i386.c (ix86_expand_epilogue): Use it.
13730
13731 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
13732
13733         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
13734         before the name.
13735         (lex_line): Glue @ onto the beginning of identifiers and
13736         string constants, in Objective-C mode.
13737         (output_token, spell_token): Handle CPP_OSTRING.
13738         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
13739         beginning of a NAME or a STRING, in objc mode.
13740
13741         * cpplib.c (get_define_node): Do not permit identifiers that
13742         begin with @ to be #defined.
13743         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
13744         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
13745
13746         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
13747         * c-tree.h (build_objc_string): Delete prototype.
13748         * objc/objc-tree.def: Delete OBJC_STRING_CST.
13749         * c-lex.c (yylex): Use build_string for all three kinds of strings.
13750
13751         * c-parse.in, objc/objc-act.c: Update commentary.
13752
13753 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
13754
13755         * extend.texi: Fix typo in last change.
13756
13757         * extend.texi: Add commentary on statement-expressions and their
13758         interactions with C++.
13759
13760 2000-08-03  Nick Clifton  <nickc@cygnus.com>
13761
13762         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
13763         * dwarf.h (LANG_JAVA): Change value to 0x000b.
13764
13765 2000-08-03  Anthony Green  <green@cygnus.com>
13766
13767         * dwarf2out.c (gen_compile_unit_die): Add java language support.
13768         (add_bound_info): Check for java language.
13769         (is_java): New function.
13770         * dwarfout.c (output_compile_unit_die): Ditto.
13771         * dwarf.h (dwarf_source_language): Add java source language type.
13772         * dwarf2.h (dwarf_source_language): Ditto.
13773
13774 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
13775
13776         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
13777         operands.
13778
13779         * i386.c (ix86_expand_branch): Mode of comparison in
13780         IF_THEN_ELSE is VOIDmode.
13781
13782 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
13783
13784         * gengenrtl.c, rtl.c: Avoid #elif.
13785
13786 2000-08-03  Michael Poole  <poole@troilus.org>
13787
13788         * tm.texi (Register Classes): Clarify order of sub-initializers
13789         in REG_CLASS_CONTENTS.
13790
13791 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13792
13793         From SAITOH Masanobu:
13794         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
13795
13796 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
13797
13798         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
13799         is not supported by tradcpp and isn't actually needed for cygwin.
13800
13801 2000-08-03  Kazu Hirata  <kazu@hxi.com>
13802
13803         * h8300.c: Fix a comment typo.
13804         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
13805
13806         * jump.c: Fix formatting.
13807
13808         * toplev.c: Fix formatting.
13809
13810 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
13811
13812         * flow.c (find_auto_inc): Verify that we've got a REG before
13813         peeking at its regno.  Fail, don't abort if we can't find
13814         the increment of the desired register.
13815
13816         * pa.md (shadd height reduction patterns/splitters): Remove.
13817
13818 2000-08-02  Jim Wilson  <wilson@cygnus.com>
13819
13820         * config/ia64/ia64-protos.h (flag_ssa): Declare.
13821         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
13822
13823 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
13824
13825         * dce.c: Remove all uses of assert.
13826         * dwarf2out.c: Likewise.
13827         * dwarfout.c: Likewise.
13828         * ssa.c: Likewise.
13829
13830 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
13831
13832         * gcc.h (lang_specific_driver): Constify second argument.
13833         * gcc.c (translate_options, process_command, main): Likewise.
13834         Constify variables to match.  Cast second argument to
13835         pexecute.
13836
13837         * cppspec.c, gccspec.c: Adjust type of second argument to
13838         lang_specific_driver, and update code as necessary.
13839
13840 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
13841
13842         * loop.c (scan_loop): Ensure update_end label does not
13843         go away until reg_scan_update is run.
13844
13845 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
13846
13847         * c-common.h: Prototype min_precision and c_build_qualified_type here...
13848         * c-tree.h: ... not here.
13849         * errors.h: Prototype fancy_abort.
13850
13851         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
13852         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
13853         * regrename.c (regrename_optimize): Make control flow explicit.
13854         (replace_reg_in_block): Initialize reg_use to 0.
13855
13856         * i386.c (legitimate_address_p): Rename error label to
13857         report_error to avoid namespace clash.
13858
13859 2000-08-02  Kazu Hirata  <kazu@hxi.com>
13860
13861         * fold-const.c: Fix formatting.
13862
13863 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
13864
13865         * i386.c (legitimate_address_p): Accept other bases than
13866         pic_offset_table_rtx for GOTOFF constructs.
13867
13868 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
13869
13870         * i386.md (shift to lea splitter): Use const_int_operand.
13871
13872 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
13873
13874         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
13875         cppspec.c: Do not use 'legal' or 'illegal' in error messages
13876         and comments.
13877
13878         * cppmain.c (cb_define, cb_undef): Don't generate any output
13879         if not done_initializing.
13880         * cpplex.c (maybe_paste_with_next): When the token after a ##
13881         is an omitted rest argument, only delete the token before it
13882         if that token is a comma.  Do not warn about bogus token
13883         pastes for , ## rest_arg.
13884
13885         * cpp.texi: Update.
13886         * cpp.1: Regenerate.
13887
13888 2000-08-02  Fred Fish  <fnf@be.com>
13889
13890         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
13891         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
13892         and later.
13893
13894         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
13895         Be directories to search path.
13896
13897         Remove support for __declspec(dllimport) and __declspec(dllexport).
13898         This is leftover cruft from the earlier BeOS gcc port when BeOS
13899         used Microsoft's PE object file format.
13900         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
13901         * config/i386/t-beos (winnt.o): Remove Makefile frag.
13902         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
13903         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
13904         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
13905         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
13906         (REDO_SECTION_INFO_P): Remove.
13907         (ASM_EXPORT_DECL): Remove.
13908         (ASM_DECLARE_FUNCTION_NAME): Remove.
13909         (ASM_DECLARE_OBJECT_NAME): Remove.
13910         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
13911         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
13912         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
13913         (STRIP_NAME_ENCODING): Remove.
13914
13915         Remove support for obsolete version of BeOS that is no longer
13916         supported by Be.
13917         * configure.in (i*86-*-beospe*): Remove.
13918         * config/i386/beos-pe.h: Remove.
13919
13920 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
13921             Mark Mitchell <mark@codesourcery.com>
13922
13923         * Makefile.in (OBJS): Added dce.o.
13924         (ssa.o): Updated target to include ssa.h.
13925         (flow.o): Likewise.
13926         (toplev.o): Likewise.
13927         (dce.o): Created target.
13928         * basic-block.h: Added comments.
13929         (INVALID_BLOCK): Added definition.
13930         (connect_infinite_loops_to_exit): Added declaration.
13931         Moved SSA declarations to ssa.h.
13932         * flow.c: Added inclusion of ssa.h.
13933         (struct depth_first_search_dsS, depth_first_search_ds):
13934         Added definitions.
13935         (compute_immediate_postdominators): Added definition.
13936         (connect_infinite_loops_to_exit): Likewise.
13937         (flow_dfs_compute_reverse_init): Likewise.
13938         (flow_dfs_compute_reverse_add_bb): Likewise.
13939         (flow_dfs_compute_reverse_execute): Likewise.
13940         (flow_dfs_compute_reverse_finish): Likewise.
13941         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
13942         (LABEL_P): Added definition.
13943         (JUMP_P): Likewise.
13944         (NOTE_P): Likewise.
13945         (BARRIER_P): Likewise.
13946         (JUMP_TABLE_DATA_P): Likewise.
13947         (INSN_DEAD_CODE_P): Likewise.
13948         * ssa.c: Replaced inclusions with ssa.h inclusion.
13949         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
13950         (rename_registers): Removed unnecessary variables.
13951         * ssa.h: Created by moving declarations from ssa.c and
13952         basic-block.h.
13953         * timevar.def: Defined TV_DEAD_CODE_ELIM.
13954         * toplev.c: Added ssa.h inclusion.
13955         (dump_file_index): Added DFI_dce.
13956         (dump_file): Added "dce" entry.
13957         Defined flag_ssa.
13958         (f_options): Added dce entry.
13959         * invoke.texi: Document -fdce.  Emphasize experimental status of
13960         -fssa.
13961         * dce.c: New file.
13962
13963 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
13964
13965         * cpperror.c (v_message): Split into _cpp_begin_message and
13966         v_message macro.  All callers updated.
13967         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
13968         checks here.
13969
13970         * cppfiles.c (cpp_syshdr_flags): New function.
13971         (read_include_file): Don't call cpp_output_tokens.  Call
13972         enter_file hook.
13973         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
13974         (cpp_reader_init): Don't initialize token_buffer.  Call
13975         _cpp_init_internal_pragmas.
13976         (cpp_cleanup): Don't clear token_buffer.
13977         (cpp_start_read): Don't worry about output from -D processing.
13978         Don't call cpp_output_tokens.
13979         (cpp_finish): Don't dump macros here.  Don't call
13980         cpp_output_tokens.
13981         * cppmacro.c (_cpp_dump_definition): Rename
13982         cpp_dump_definition.  Write directly to a FILE *.
13983         (dump_funlike_macro): Delete.
13984         (dump_macro_args): New.
13985
13986         * cpplex.c (TOKEN_LEN): Convert to inline function.
13987         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
13988         cpp_scan_line, _cpp_dump_list): Delete.
13989         (cpp_printf, cpp_output_list): New.
13990         (output_line_command): Don't worry about entering or leaving files.
13991         (cpp_scan_buffer): Just output each token as we hit it.
13992         (process_directive): Don't call cpp_output_tokens.
13993         (_cpp_glue_header_name): Don't use token_buffer.
13994         (output_token, dump_param_spelling): Write directly to a FILE *.
13995
13996         * cpplib.c (pass_thru_directive, dump_macro_name,
13997         pragma_dispatch, do_pragma_gcc): Delete.
13998         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
13999         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
14000         functions.
14001         (do_error, do_warning, pragma_dependency): Call
14002         _cpp_begin_message, then cpp_output_list.
14003         (cpp_register_pragma, cpp_register_pragma_space,
14004         _cpp_init_internal_pragmas): New.
14005         (do_pragma): Walk the pragmas table here.
14006         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
14007         do_pragma_dependency): Return void.
14008         (do_pragma_implementation): Moved to cppmain.c.
14009
14010         * cpplib.h: Update prototypes.
14011          (struct cpp_reader): Remove printer, token_buffer,
14012         token_buffer_size, and limit.  Add struct cb, and pragmas.
14013         (struct cpp_printer): Remove last_id and written.
14014         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
14015         CPP_ADJUST_WRITTEN): Delete.
14016         * cpphash.h: Update prototypes.
14017         (ufputs): New wrapper.
14018
14019         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
14020         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
14021         (main): Set up callbacks.  Register #pragma implementation.
14022         Dump macros from here.
14023
14024 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
14025
14026         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
14027         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
14028         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
14029         insns if they have a REG_MAYBE_DEAD note attached.
14030         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
14031         (rs6000_emit_load_toc_table): TOC loads may go dead.
14032
14033 2000-08-01  Jim Wilson  <wilson@cygnus.com>
14034
14035         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
14036         type exists before using it.  Use number of words as alignment
14037         otherwise.
14038         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
14039         ia64_va_arg): Propagate ia64_function_args changes here.
14040
14041 2000-08-01  Richard Henderson  <rth@cygnus.com>
14042
14043         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
14044         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14045
14046 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
14047
14048         From Joern Rennecke:
14049         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
14050         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
14051         unless TARGET_SH3E is set.
14052         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
14053
14054         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
14055         (ashlsi3_std): New pattern.
14056         (ashlsi3 expander): Use it for TARGET_SH3.
14057         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
14058
14059 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14060
14061         * loop.c (canonicalize_condition):  Use destination, not source to
14062         determine SET's mode.
14063
14064 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
14065
14066         * flow.c (clear_log_links): Fix typo.
14067
14068 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
14069
14070         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
14071         on targets which need more than one insn for a compare/cbranch
14072         operation.
14073
14074 2000-07-31  Jim Wilson  <wilson@cygnus.com>
14075
14076         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
14077         when computing offset.
14078
14079 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
14080
14081         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
14082
14083 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
14084
14085         * flow.c (clear_log_links): Nuke global_live_at_start and
14086         global_live_at_end data, since if the log_links stuff is invalid
14087         so is global_live_at_*.
14088
14089 2000-07-31  Richard Henderson  <rth@cygnus.com>
14090
14091         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
14092
14093 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
14094
14095         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
14096         (_cpp_get_token): Don't macro expand a just pasted token if it
14097         was pasted at no_expand_level.
14098
14099 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
14100
14101         * cppmacro.c (find_param, count_params, save_expansion):
14102         Permit 'defined' as a macro parameter name.
14103
14104 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
14105
14106         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
14107         xcpp to cpp throughout.
14108         (native): Remove unnecessary dependency on cpp.
14109
14110         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
14111         tradcpp to tradcpp0.
14112         (.i spec): Add missing output-file spec to cc1 command line.
14113         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
14114
14115 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
14116
14117         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
14118         (implicit_decl_warning): New function.
14119         (implicitly_declare): Use it.
14120         * c-typeck.c (build_external_ref): Use implicit_decl_warning
14121         to complain about implicit decls of builtins.
14122
14123         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
14124         based on pedantic && flag_isoc99, if not already set.
14125         * c-tree.h: Declare mesg_implicit_function_declaration.
14126         Prototype implicit_decl_warning.
14127
14128 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
14129
14130         * Makefile.in (ssa.o): Updated header files in dependences.
14131         * basic-block.h: Added compute_immediate_postdominators declaration.
14132         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
14133         definition.
14134         * flow.c (compute_immediate_dominators): Updated comment.
14135         (compute_immediate_postdominators): Added definition.
14136         * rtl.h (HARD_REGISTER_P): Added definition.
14137         * ssa.c: Include additional header files.
14138         (assert): Added definition.
14139         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
14140         include select hard registers.
14141         (ssa_rename_to_insert): Likewise.
14142         (ssa_rename_from_initialize): Likewise.
14143         (ssa_rename_from_lookup): Likewise.
14144         (original_register): Likewise.
14145         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
14146         include select hard reigsters.
14147         (ssa_rename_from_traverse): Likewise.
14148         (ssa_rename_from_free): Likewise.
14149         (ssa_rename_from_print): Likewise.
14150         (ssa_rename_from_print_1): Likewise.
14151         (ssa_rename_from_hash_function): Likewise.
14152         (ssa_rename_from_equal): Likewise.
14153         (ssa_rename_from_delete): Likewise.
14154         (simplify_to_immediate_dominators): Removed in favor of
14155         flow.c:compute_immediate_dominators.
14156         (find_evaluations_1): Modified to work with hard registers.
14157         (insert_phi_node): Likewise.
14158         (insert_phi_nodes): Likewise.
14159         (struct rename_set_data): Updated prev_reg comment.
14160         (create_delayed_rename): Modified to work with hard registers.
14161         (RENAME_NO_RTX): Updated comment.
14162         (apply_delayed_renames): Modified to work with hard registers.
14163         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
14164         (rename_block): Updated to use revised ssa_rename_to interface.
14165         (rename_registers): Updated to use revised ssa_rename_to and
14166         ssa_rename_from interface.
14167         (convert_to_ssa): Revised to use compute_immediate_dominators and
14168         deal with hard registers.
14169         (make_regs_equivalent_over_bad_edges): Modified to work with hard
14170         registers.  Added check for illegal unification of hard register.
14171         (make_equivalent_phi_alternatives_equivalent): Modified to work
14172         with hard registers.
14173         (compute_conservative_reg_partition): Likewise.
14174         (coalesce_if_unconflicting): Modified to work with hard registers
14175         and check for conflicting hard registers.
14176         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
14177         registers.
14178         (rename_equivalent_regs_in_insn): Modified to work with hard
14179         registers.
14180         (record_canonical_element_1): Added definition.
14181         (check_hard_regs_in_partition): Added definition.
14182         (convert_from_ssa): Added data structure deallocation and check
14183         for illegal hard register unification.
14184         (conflict_hard_regs_p): Added definition.
14185         * toplev.c (rest_of_compilation): Added comment.
14186
14187 2000-07-31  Anthony Green  <green@redhat.com>
14188
14189         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
14190
14191 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
14192
14193         * builtins.c (expand_builtin_apply): Don't defer pop during
14194         argument setup.
14195
14196 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14197
14198         * calls.c (combine_pending_stack_adjustment_and_call): Only use
14199         preferred_unit_stack_boundary when it is > 1.
14200
14201 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
14202
14203         * c-common.c (init_function_format_info): Add C99 format functions
14204         in C99 mode.
14205
14206         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
14207         void' or 'register void' as being the special case of 'void' alone
14208         in a parameter list.
14209
14210         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
14211         discarding qualifiers into a plain warning.
14212
14213 2000-07-31  Kazu Hirata  <kazu@hxi.com>
14214
14215         * combine.c: Fix formatting.
14216
14217         * h8300.md: Fix formatting.
14218
14219         * local-alloc.c: Fix formatting.
14220
14221         * h8300.c (get_shift_alg): Remove the variable alg.
14222         (emit_a_shift): Rearrange code to improve readability.
14223
14224         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
14225
14226         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
14227         HImode on all architectures and a combination of HImode and SImode
14228         on H8/300H and H8/S.
14229
14230         * h8300.c (split_adds_subs): Rearrange code for conciseness.
14231
14232 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14233
14234         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
14235         in my last checkin.
14236
14237 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14238
14239         * recog.c (extract_insn): Set operand_mode according to
14240         operand if match_operand is VOIDmode.
14241
14242 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14243
14244         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
14245
14246 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
14247
14248         * c-parse.in (extdefs): Call ggc_collect between external
14249         definitions.
14250
14251 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
14252             Richard Henderson  <rth@cygnus.com>
14253
14254         * Makefile.in (OBJS): Add doloop.o.
14255         * doloop.c: New file.
14256
14257         * final.c (insn_current_reference_address): Return 0 before final.
14258         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
14259         * jump.c (any_uncondjump_p): Likewise.
14260         * loop.c (indirect_jump_in_function): Make static.
14261         (strength_reduce): Call doloop_optimize.
14262         (insert_bct, instrument_loop_bct): Remove.
14263         * loop.h (doloop_optimize): Prototype.
14264         * recog.c (split_all_insns): Split all INSN_P.
14265         * toplev.c (flag_branch_on_count_reg): Default on.
14266
14267         * config/c4x/c4x.c (c4x_optimization_options): Don't set
14268         flag_branch_on_count_reg.
14269         * config/i386/i386.c (override_options): Likewise.
14270         * config/rs6000/rs6000.c (optimization_options): Likewise.
14271
14272         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
14273         (doloop_end): New.
14274         (dbra_ge): Remove, as well as all it's splitters.
14275
14276         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
14277         (doloop_end): New.
14278
14279         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
14280         (ia64_register_move_cost): Declare.
14281         * config/ia64/ia64.c (ar_lc_reg_operand): New.
14282         (struct ia64_frame_info): Add ar_size.
14283         (ia64_compute_frame_size): Set it.
14284         (save_restore_insns): Save and restore ar.lc.
14285         (ia64_register_move_cost): New, moved from header file.  Handle
14286         application registers.
14287         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
14288         (emit_insn_group_barriers): Special case doloop_end_internal.
14289         (ia64_epilogue_uses): Mark ar.lc live at end.
14290         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
14291         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
14292         (FIRST_PSEUDO_REGISTER): Make room.
14293         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
14294         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
14295         (REG_ALLOC_ORDER): Update.
14296         (HARD_REGNO_MODE_OK): Update.
14297         (REGISTER_NAMES): Update.
14298         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
14299         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
14300         (REGNO_REG_CLASS): Update.
14301         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
14302         (REGISTER_MOVE_COST): Move out of line.
14303         (PREDICATE_CODES): Update.
14304         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
14305         (addsi3_plus1_alt, adddi3_plus1_alt): New.
14306         (shladd_elim splitter): Allow constants in the predicate.
14307         (doloop_end, doloop_end_internal): New.
14308
14309 2000-07-30  Richard Henderson  <rth@cygnus.com>
14310
14311         * genattrtab.c (struct insn_def): Add lineno member.
14312         (struct insn_ent): Likewise.
14313         (struct attr_desc): Likewise.
14314         (struct delay_desc): Likewise.
14315         (struct function_unit_op): Likewise.
14316         (struct function_unit): Likewise.
14317         (check_attr_value): Use message_with_line.
14318         (check_defs): Likewise.
14319         (expand_units): Likewise.
14320         (check_attr_test): Take a lineno argument.
14321         (gen_attr): Likewise.
14322         (gen_insn): Likewise.
14323         (gen_delay): Likewise.
14324         (gen_unit): Likewise.
14325         (main): Give it to them.
14326         (convert_set_attr_alternative): Take an insn_def argument
14327         instead of num_alt and insn_index.
14328         (convert_set_attr): Likewise.
14329         (write_test_expr): Protect INSN_ADDRESSES load
14330         with INSN_ADDRESSES_SET_P.
14331
14332 2000-07-30  Richard Henderson  <rth@cygnus.com>
14333
14334         * flow.c (init_propagate_block_info): Use pc_set.
14335
14336 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14337
14338         * i386.md (*lea_general_[123]) New insns and splits.
14339         (addsi3 to lea splitter): Handle other modes too.
14340         (shlsi3 to lea splitter): Likewise.
14341         (addhi_1_lea, shlhi_1_lea): New patterns.
14342         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
14343
14344 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14345
14346         * recog.c (general_operand, nonimmediate_operand): Accept
14347         any mode for VOIDmode CONSTANT_P operands.
14348
14349 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14350
14351         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
14352         instead of replace_rtx.
14353         * recog.c (validate_replace_rtx_subexp): New function.
14354         * recog.h (validate_replace_rtx_subexp): Declare.
14355
14356 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14357
14358         * combine.c (simplify_set, make_extraction, make_compound_operation
14359         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
14360         as force_to_mode argument.
14361
14362 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14363
14364         * combine.c (if_then_else_cond): Be sure that mode fits in
14365         HOST_WIDE_INT.
14366
14367 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14368
14369         * combine.c (record_promoted_value):  Allow bitsize of mode
14370         to be equivalent to HOST_BITS_PER_WISE_INT.
14371
14372 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14373
14374         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
14375         Do not call gen_mode_alignment when mode is BLKmode.
14376
14377 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14378
14379         * loop.c (express_from_1): Fix call of simplify_gen_binary.
14380
14381 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
14382
14383         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
14384         VOIDmode implies both operands to be VOIDmode.
14385         (simplify_ternary_operation): Compute properly the mode of comparison.
14386         * combine.c (combine_simplify_rtx): Likewise.
14387
14388 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
14389
14390         * basic-block.h (struct loops): New field rc_order.
14391         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
14392         (flow_loops_free): Free rc_order.
14393         (flow_depth_first_order_compute): New parameter rc_order.
14394         (flow_loops_find): Allocate rc_order and swap usage with
14395         dfs_order.
14396
14397 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14398            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14399
14400         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
14401         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
14402         (nodb_call, return_from_epilogue): Likewise.
14403         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
14404         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
14405         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
14406         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
14407         (c4x_valid_type_attribute_p): Likewise.
14408         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
14409         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
14410
14411 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14412
14413         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
14414         and loadhi_big_constant if applicable.
14415         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
14416         and add new splitter.s
14417
14418 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14419
14420         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
14421
14422 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14423
14424         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
14425
14426 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14427
14428         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
14429
14430 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14431
14432         * config/c4x/libgcc.S (divqf3): Improve accuracy.
14433
14434 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
14435
14436         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
14437         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
14438         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
14439         (get_prev_bb_note): Likewise.
14440         (remove_scope_notes): Likewise.
14441         * flow.c (commit_one_edge_insertion): Likewise.
14442         (merge_blocks_nomove): Likewise.
14443         (verify_flow_info): Likewise.
14444         * gcse.c (insert_insn_end_bb): Likewise.
14445         * reg-stack.c (emit_swap_insn): Likewise.
14446         * ssa.c (first_insn_after_basic_block_note): New function.
14447         (insert_phi_node): Use it.
14448         (rename_block): Likewise.
14449         (eliminate_phi): Likewise.
14450         (make_regs_equivalent_over_bad_edges): Likewise.
14451         (make_equivalent_phi_alternatives_equivalent): Likewise.
14452         (for_each_successor_phi): Likewise.
14453         (convert_from_ssa): Modify phi-node deletion algorithm.
14454
14455 2000-07-29  Andreas Jaeger  <aj@suse.de>
14456
14457         * configure.in (mips*-*-linux*): Use mips*el to check for little
14458         endian MIPS, add tmake_file.
14459
14460         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
14461         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
14462         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
14463
14464 2000-07-28  Richard Henderson  <rth@cygnus.com>
14465
14466         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
14467         Sign extend mode size before negating.
14468
14469 2000-07-28  Richard Henderson  <rth@cygnus.com>
14470
14471         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
14472
14473 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
14474
14475         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
14476         (cse_insn): Likewise.
14477         (addr_affects_sp_p): Likewise.
14478         * expr.c (move_by_pieces): Likewise.
14479         (clear_by_pieces): Likewise.
14480         * gcse.c (oprs_unchanged_p): Likewise.
14481         * haifa-sched.c (sched_analyze_2): Likewise.
14482         * recog.c (offsettable_address_p): Likewise.
14483         * regclass.c (record_address_regs): Likewise.
14484         * reload.c (find_reusable_reload): Likewise.
14485         (push_reload): Likewise.
14486         (operands_match_p): Likewise.
14487         (decompose): Likewise.
14488         (find_reloads_address_1): Likewise.
14489         (find_inc_amount): Likewise.
14490         * reload1.c (elimination_effects): Likewise.
14491         * resource.c (mark_set_resources): Likewise.
14492         * flow.c (attempt_auto_inc): New function; mostly broken out
14493         of find_auto_inc.
14494         (find_auto_inc): Split into two functions and enhanced to
14495         generate POST_MODIFY.
14496         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
14497         * rtl.h (count_all_occurrences):  Declare.
14498         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
14499         defined.
14500         * rtlanal.c (count_all_occurrences): New function.
14501         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
14502         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
14503
14504         * config/ia64/ia64-protos.h (destination_operand): Declare.
14505         * config/ia64/ia64.c (destination_operand): New function.
14506         (ia64_print_operand): Handle POST_MODIFY.
14507         (rtx_needs_barrier): Likewise.
14508         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
14509         (HAVE_POST_MODIFY_REG): Define to 1.
14510         (MAX_REGS_PER_ADDRESS): Change to 2.
14511         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
14512         (LEGITIMATE_ADDRESS_REG): New helper macro.
14513         (LEGITIMATE_ADDRESS_DISP): Likewise.
14514         (PREDICATE_CODES): Add entry for destination_operand.
14515         * config/ia64/ia64.md (all mov patterns): Use destination_operand
14516         predicate for operand 0.
14517
14518 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14519
14520         * dwarf2out.c: Indent #error directive.
14521
14522         * gbl-ctors.h: Fix typo in comment.
14523         (__do_global_ctors): Prototype.
14524
14525         * gcse.c (record_one_set, pre_delete): Remove unused variables.
14526
14527         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
14528         (print_operand): Initialize variable `t'.
14529
14530 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
14531
14532         * config/arm/arm.md ("call_value"): removed constraints.
14533         Constraints are ignored in expanders.
14534         (*call_value_reg): split =rf into various constraints.
14535         (*call_value_mem): same
14536         (*call_value_symbol): same
14537         (*sibcall_value_insn): same
14538
14539 2000-07-28  Philipp Thomas  <pthomas@suse.de>
14540
14541         * install.texi (--enable-nls): Change the description of the NLS
14542         related configure options to match the current state.
14543         (--with-included-gettext): Likewise.
14544         (--enable-maintainer-mode): New description added.
14545         * extend.texi (-fstrict-prototype): Add missing '.'.
14546
14547 2000-07-27  Jim Wilson  <wilson@cygnus.com>
14548
14549         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
14550         DECL_INITIAL (decl) == NULL_TREE.
14551
14552 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
14553
14554         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
14555         on insn-attr.h with it.
14556         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
14557         * insn-addr.h: New header.
14558         (insn_addresses_): Renamed from insn_addresses.
14559         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
14560         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
14561         INSN_ADDRESSES_NEW): New macros.
14562         * genattrtab.c (write_test_expr): Use new macros.
14563         * final.c (insn_addresses, init_insn_lengths): Likewise.
14564         (align_fuzz, shorten_branches): Likewise.
14565         (final): Likewise.  Do not reject new insns if their addresses
14566         have been added to INSN_ADDRESSES.
14567         * config/arm/arm.c, config/avr/avr.c: Use new macros.
14568         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
14569         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
14570         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
14571         * config/sh/sh.c: Likewise.
14572         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
14573
14574         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
14575
14576 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
14577
14578         * gcc.c (struct prefix_list): Add member priority.
14579         (enum path_prefix_priority): Declare.
14580         (add_prefix): Replace ``first'' with ``priority''.  Append new
14581         entry but keep list in priority order.
14582         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
14583         PREFIX_PRIORITY_LAST to add_prefix.
14584         (process_command): Move include kludge - foo/stageN - to before
14585         foo/include.
14586
14587 2000-07-27  Jason Merrill  <jason@redhat.com>
14588
14589         * dwarf2out.c (gen_typedef_die): Abort if we get identical
14590         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
14591
14592 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
14593
14594         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
14595         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
14596
14597 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
14598
14599         * c-decl.c (finish_function): Don't treat 'main' specially unless
14600         flag_hosted.  In C99 mode, return 0 from 'main' unless
14601         DEFAULT_MAIN_RETURN is otherwise defined.
14602
14603         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
14604         parameters defaulting to int in an old-style function definition.
14605
14606 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14607
14608         * c-parse.in (string): For -Wtraditional, warn about string
14609         concatenation only once per line.
14610
14611 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
14612
14613         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
14614         for HI-UX/WE2 systems.
14615
14616 2000-07-24  Bruce Korb  <bkorb@gnu.org>
14617
14618         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
14619         defining the __xxx_TYPE__ macros.
14620         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
14621         * fixincl/fixlib.h: don't need to include "tm.h" anymore
14622         * fixincl/inclhack.def(type_map): now obsolete
14623
14624 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
14625
14626         * cpp.texi: Append a trailing full-stop to xrefs where needed.
14627
14628 2000-07-26  Dave Pitts  <dpitts@cozx.com>
14629
14630         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
14631         routine constants.
14632         (mvs_hash_alias): New function.
14633         (mvs_add_alias): Change argument spacing.
14634         (mvs_need_alias): Change aliasing criteria. Added documentation.
14635         (mvs_get_alias): Change to use hashed name. The hashed name prevents
14636         CSECT name collisions.
14637         (mvs_check_alias): Likewise.
14638         (handle_pragma): Change documentation.
14639         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
14640         mode from SImode to DImode.
14641         (iorhi3): Changed LTORG size for insn.
14642
14643 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
14644
14645         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
14646         mem if the address is a mode_dependent_address_p.
14647
14648 2000-07-26  Kazu Hirata  <kazu@hxi.com>
14649
14650         * h8300.c (print_operand): Print ":8" when the 'R' operand is
14651         suitable for 8-bit absolute.
14652         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
14653         (OK_FOR_U): Add a case for the 8-bit constant address on the
14654         H8/300H.
14655
14656 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
14657
14658         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
14659         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
14660         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
14661         lack of implemented alignment.
14662
14663 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
14664
14665         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
14666         cross-compiling between 64-bit and 32-bit machines.
14667
14668 2000-07-27  Richard Henderson  <rth@cygnus.com>
14669
14670         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
14671         (movhicc_astep, movhi_internal_astep): New.
14672         (movsicc_astep, movsi_internal_astep): New.
14673         (movdicc_astep, movdi_internal_astep): New.
14674         (movsfcc_astep, movsf_internal_astep): New.
14675         (movdfcc_astep, movdf_internal_astep): New.
14676         (movxfcc_astep, movxf_internal_astep): New.
14677         (cmovdi_internal_astep, cmovsi_internal_astep): New.
14678         Unify the cmov[ds]i splitters.
14679
14680 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
14681
14682         * real.c (asctoeg): Rename `error' label to unexpected_char_error
14683
14684 2000-07-26  Nick Clifton  <nickc@cygnus.com>
14685
14686         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
14687         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
14688
14689         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
14690         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
14691
14692 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
14693
14694         * c-decl.c (finish_enum): Convert enumerations that fit in an
14695         `int' to `int'.
14696         (build_enumerator): In pedantic mode, cast to `int' those that
14697         don't.
14698
14699 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
14700
14701         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
14702
14703 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14704
14705         * sh.md (cmpgtdi_t): Must be split.
14706         (cmpgtdi_t+1): New splitter.
14707
14708 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
14709
14710         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
14711         warnings for indented directives even if we are skipping.
14712
14713 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
14714
14715         * invoke.texi (strict-prototypes): Remove.
14716         * extend.texi (Deprecated Features): Add strict-prototypes.
14717         (Backwards Compatibility): New node.
14718
14719 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
14720
14721         * config/i386/i386.md (andsi_1+1): Allow HImode.
14722         (andsi_1+2): Require q_regs_operand.
14723
14724 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
14725
14726         * config/i386/i386.md (call_pop): Check operands[0],
14727         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
14728         (call): Likewise.
14729         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
14730         (call_value): Likewise.
14731
14732 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
14733
14734         * toplev.c (pipe_closed): Delete.
14735         (crash_signal): New.  Generate ICE for a fatal signal.
14736         (float_signal): Call crash_signal outside a float-handler
14737         block, not abort.
14738         (main): Install crash_signal as handler for core-dumping signals.
14739
14740 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
14741
14742         * rs6000.c (print_operand, case 'T'): New case.
14743
14744         * rs6000.md (call_indirect_aix32): Convert to expander of
14745         scheduled instructions.
14746         (call_indirect_aix64): Likewise.
14747         (call_value_indirect_aix{32,64}): Likewise.
14748         (call, call_value): Invoke expanders for AIX.  Fall through to
14749         matchers for SysV.
14750         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
14751         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
14752         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
14753         only "g" constraint.
14754         (call_nonlocal_aix64): Likewise.
14755         (call_value_nonlocal_aix{32,64}): Likewise.
14756         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
14757         operands.
14758         (call_value_nonlocal_sysv): New pattern.
14759         (indirect_jump{si,di}): Use new 'T' modifier.
14760         (tablejump{si,di} matchers): Likewise.
14761         (return_internal_{si,di}): Likewise.
14762         (return_eh_{si,di}): Likewise.
14763
14764 2000-07-24  Richard Henderson  <rth@cygnus.com>
14765
14766         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
14767         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
14768         * config/ia64/ia64.md (movdi_internal): Use it.
14769
14770 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
14771
14772         * cppexp.c: Warn about unary + if -Wtraditional.
14773         * cpplex.c (lex_line): Always set BOL on the first token of a line.
14774
14775 2000-07-24  Michael Meissner  <meissner@redhat.com>
14776
14777         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
14778         unsupported macro.
14779
14780 2000-07-24  Nick Clifton  <nickc@cygnus.com>
14781
14782         * config/arm/arm.c (emit_multi_reg_push): Generate a
14783         REG_FRAME_RELEATED_NOTE that is compatable with the code in
14784         dwarf2out_debug_frame_expr.
14785
14786 2000-07-24  Jason Merrill  <jason@redhat.com>
14787
14788         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
14789         UNALIGNED_INT_ASM_OP.
14790         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
14791         a location expression.
14792         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
14793         assume indirect access if we're saving the CFA address exactly.
14794
14795         * Makefile.in (bootstrap): Move -BstageN/ to the end.
14796
14797 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
14798
14799         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
14800         as well.
14801
14802 2000-07-24  Michael Meissner  <meissner@redhat.com>
14803
14804         * invoke.texi (D30V Options): Add d30v options.
14805
14806 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
14807
14808         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
14809         needed by our gcse pass anymore.
14810         (free_pre_mem): Corresponding changes.
14811         (compute_pre_data): Do not call compute_transpout anymore.
14812
14813         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
14814         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
14815         changes.
14816
14817         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
14818         (compute_pre_data): Do it here instead.
14819
14820         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
14821         'temp_bitmap'.
14822         (pre_delete): Corresponding changes.
14823
14824 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
14825
14826         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
14827         to figure out whether or not a variable has already been emitted.
14828
14829 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
14830
14831         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
14832         instead of gen_call.
14833
14834 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
14835
14836         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
14837
14838 2000-07-23  Kazu Hirata  <kazu@hxi.com>
14839
14840         * h8300.c: Fix formatting.
14841
14842 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
14843
14844         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
14845         for `long' switch expression into a plain warning.
14846
14847         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
14848         (yylex): Don't pedwarn for "inline" in C99 mode.
14849
14850         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
14851         with %p.
14852         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
14853         ggc_alloc): Likewise.
14854         * bb-reorder.c (dump_scope_forest_1): Likewise.
14855
14856 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
14857
14858         * reload.c (find_reloads_toplev): Add new parameter
14859         "address_reloaded".
14860         (find_reloads): Add new parameter to find_reloads_toplev calls.
14861
14862 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
14863
14864         * collect2.c (main): Typo fixed.
14865         * diagnostic.c: Typo fixed.
14866         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
14867         * eh-common.h: Typo fixed.
14868         * emit-rtl.c (start_sequence): Typo fixed.
14869         * flow.c (find_label_refs): Typo fixed.
14870         (calculate_global_regs_live): Typo fixed.
14871         (mark_regno_cond_dead): Typo fixed.
14872         (create_edge_list): Typos fixed.
14873         (verify_edge_list): Typo fixed.
14874         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
14875         * loop.c (strength_reduce): Typo in function name fixed.
14876         * rtl.h: Added comments.  Typo in function name fixed.
14877         * rtlanal.c: Typo in function name fixed.
14878         (insn_dependant_p): Rename to ...
14879         (insn_dependent_p): ... this.
14880         (computed_jumo_p): Typo fixed.
14881
14882 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14883
14884         * system.h (__FUNCTION__): Wrap definition in #ifndef.
14885
14886 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
14887
14888         * rs6000.h (SIZE_TYPE): Define.
14889
14890 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
14891
14892         * ssa.c (rename_insn_1): Don't rename registers that are
14893         CLOBBERed.
14894
14895 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
14896
14897         * diagnostic.c (trim_filename, fancy_abort): Moved here from
14898         rtl.c.
14899         (fatal_function, set_fatal_function): Removed.
14900         (fatal): Don't prepare for or call the fatal_function.
14901         (diagnostic_lock, error_recursion): New.
14902         (diagnostic_for_decl, report_diagnostic): Guard against
14903         re-entering the error reporting routines.
14904         (fancy_abort): Assume function is not NULL.
14905
14906         * errors.c (fancy_abort): New.  Assume function is not NULL.
14907         * tradcpp.c (fancy_abort): Assume function is not NULL.
14908
14909         * system.h: Provide default definition of __FUNCTION__.
14910         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
14911         Always use __FUNCTION__ in definition of abort.
14912         * tree.h: Likewise.
14913         * varray.h: Likewise.
14914         * toplev.h: Likewise.  Don't prototype set_fatal_function.
14915
14916 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
14917
14918         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
14919         in 64-bit mode.
14920         * glimits.h: Don't do #if defined for ARCH_PPC.
14921
14922         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
14923         constants of size no larger than a pointer should go in the TOC.
14924         Add 'MODE' parameter.
14925         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
14926         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
14927         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
14928         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
14929         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
14930         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
14931         (rs6000_legitimize_address): Likewise.
14932         (rs6000_emit_move): Likewise.
14933         (rs6000_select_rtx_section): Likewise.
14934         (output_toc): Deal properly with outputting small constants like
14935         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
14936         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
14937         MODE parameter.  Put small constants in the TOC.
14938
14939         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
14940         easy in SImode.
14941         (rs6000_emit_move): When reload calls us with an illegitimate
14942         address, exit early.  Move the change_address calls to one place
14943         at the end of the routine.  Merge the SImode and DImode expanders.
14944         When called by reload to put an integer into a FP register, force
14945         it to memory.
14946
14947         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
14948         field.
14949         (rs6000_hash_constant): Hash mode too.
14950         (toc_hash_function): Allow for key_mode.
14951         (toc_hash_eq): Structures are different if key_mode differs.
14952         (output_toc): Add 'mode' parameter.  Save key_mode.
14953         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
14954         Pass 'mode' parameter.
14955         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
14956
14957         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
14958         for vtable references.
14959
14960         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
14961         choice, don't put integer values in FP regs.
14962
14963 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
14964
14965         * flow.c (verify_flow_info): Revamp code to verify that the
14966         head and end of each basic block are in the insn chain.
14967
14968 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
14969
14970         * gcse.c (record_one_set): Prepend instead of append onto
14971         reg_set_table, making it O(n) instead O(n^2).
14972         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
14973         Use a queue instead of a stack as worklist.
14974
14975 2000-07-20  Kazu Hirata  <kazu@hxi.com>
14976
14977         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
14978         * h8300.h (OK_FOR_T): New.
14979         (EXTRA_CONSTRAINT): Support OK_FOR_T.
14980         * h8300.md: Use inc/dec.[wl] for increment/decrement
14981         by 1 and 2 in HI and SI modes.
14982
14983 2000-07-20  Jim Wilson  <wilson@cygnus.com>
14984
14985         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
14986         larger than 14 bits.
14987
14988 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
14989
14990         * cppmacro.c (CAN_PASTE_AFTER): New macro.
14991         (count_params): Don't set GNU_REST_ARGS on anything.
14992         (save_expansion): Set PASTE_LEFT only on tokens for which
14993         CAN_PASTE_AFTER is true, or which are named operators.
14994
14995         * cpplex.c (parse_args): Distinguish between a rest argument
14996         given one empty argument, and a rest argument given zero arguments.
14997         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
14998         deletion of previous token based on that.
14999         (get_raw_token): Flatten some control structure.
15000
15001         * cpplib.h (CPP_LAST_EQ): Correct.
15002         (VOID_REST): New token flag.
15003         (GNU_REST_ARGS): Delete.
15004
15005         * tradcpp.c (main): Don't munge -D options.
15006         (make_definition): Bring -D handling in line with cpplib.
15007         (do_define): Strip all leading whitespace from macro definitions.
15008
15009 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
15010
15011         * Makefile.in (tradcpp): Depend on intl.o and version.o.
15012
15013 2000-07-20  Bruce Korb  <bkorb@gnu.org>
15014
15015         * fixincl/check.tpl: strip the platform specific types before testing
15016         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
15017         * fixincl/fixincl.tpl: use platform specific types
15018         * fixincl/fixlib.h: include the platform specific types
15019         * fixincl/inclhack.def(gnu_types): don't supply the types
15020         * fixincl/fixincl.x: regen
15021
15022 2000-07-19  Jim Wilson  <wilson@cygnus.com>
15023
15024         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
15025         GR_REGS.
15026
15027 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
15028
15029         * tradcpp.c (rescan): Do not recognize directives when the #
15030         is indented.
15031
15032 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
15033
15034         Implement C++ named operators.
15035
15036         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
15037         of operators allowed in #if and having an _EQ variant.  Add
15038         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
15039         (cpp_token flags): Add NAMED_OP.
15040         (enum node_type): Add T_OPERATOR.
15041         (struct cpp_hashnode): Add code slot to value union.
15042         * cpphash.h (spec_nodes): Remove n_defined.
15043
15044         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
15045         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
15046         (is_macro_disabled): Tweak error messages.
15047
15048         * cpplib.c (get_define_node): Disallow all named operators as
15049         macro names.  Tweak error messages.
15050         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
15051
15052         * cppinit.c (builtin_array): Add entries for the named operators.
15053         * cppexp.c (lex): Check for CPP_DEFINED token.
15054         (priority table): Add entries for CPP_MIN and CPP_MAX.
15055         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
15056
15057 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
15058
15059         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
15060         larger than the array of cuids.
15061         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
15062         cuids.
15063
15064 2000-07-19  Bruce Korb  <bkorb@gnu.org>
15065
15066         * fixinc/fixincl.c:  Convert to using a table of environment variables
15067         and activate the auto-edit marker on the fixed output files.
15068         * fixinc/fixlib.h:  Define the environment table
15069         * fixinc/fixincl.sh: export the ${INPUT} dir
15070         * fixinc/check.tpl: likewise
15071
15072 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
15073
15074         * gcc.c (.h spec): Fix typo.
15075
15076 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
15077
15078         * Makefile.in: Fix tradcif.c path.
15079
15080 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
15081
15082         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
15083           macros, not five.
15084
15085         * cpphash.h (TOKEN_NAME): New macro.
15086         (_cpp_spell_operator): Deleted.
15087         (token_spellings): Now _cpp_token_spellings.
15088
15089         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
15090         * cpplex.c: Use OP and TK macros when expanding the
15091         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
15092         store the stringification of the enumeration name (CPP_CHAR,
15093         etc.) in the name slot of token_spellings.
15094         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
15095         token_spellings directly.
15096         * cpplib.c: Use TOKEN_SPELL.
15097
15098         * cpplex.c (_cpp_push_token): If the token being pushed back
15099         is the previous token in this context, just subtract one from
15100         context->posn.
15101         * cppmacro.c (save_expansion): Clear aux field when storing a
15102         placemarker.
15103
15104 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
15105
15106         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
15107         buffer, provided it is not NULL.
15108
15109 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
15110
15111         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
15112         case of invalid volatile re-declaration.
15113
15114 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
15115
15116         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
15117         (expand_call): Adjust caller.
15118
15119 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
15120
15121         * diagnostic.h (report_diagnostic): Change prototype.
15122
15123         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
15124         diagnostic_for_decl):  Change prototype.
15125         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
15126         error, warning, error_with_file_and_line,
15127         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
15128         Adjust call to report_diagnostic, diagnostic_for_decl.
15129         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
15130         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
15131
15132         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
15133         varaible argument list.
15134
15135 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
15136
15137         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
15138         moved to cppmacro.c.
15139         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
15140         dump_hash_helper): Delete.
15141         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
15142         cpp_forall_identifiers): New. Implement specialized version of
15143         Vlad's expandable hash table.
15144         (cpp_lookup): Use new functions.
15145         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
15146         implementation.
15147         * cppmacro.c: New file.
15148         * cppinit.c (dump_macros_helper): New.
15149         (cpp_finish): Iterate over the identifier table directly.
15150         * cpplex.c (parse_name): Calculate the hash of the identifier
15151         while we scan it.  Use _cpp_lookup_with_hash when we can.
15152
15153         * cpphash.h: Update prototypes.
15154         (xcnewvec, HASHSTEP): New helper macros.
15155         * cpplib.h: Update prototypes.
15156         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
15157         (cppmacro.o): New rule.
15158         (cpphash.o): Update deps.
15159
15160         * cppmain.c: Do not set pfile->printer if no_output is on.
15161
15162 2000-07-15  Neil Booth  <neilb@earthling.net>
15163
15164         * cpplib.c: Change all directive-handler functions to return
15165         void, not int.
15166         * cpphash.h: Update typedefs.
15167
15168 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
15169
15170         * configure: Regenerate.
15171
15172         * extend.texi (Extended Asm): Mention that a memory clobber
15173         does not count as a side-effect.
15174
15175         * unroll.c (copy_loop_body): Fix one instance of using host
15176         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
15177         cross-compile.
15178
15179         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
15180
15181 2000-07-17  Richard Henderson  <rth@cygnus.com>
15182
15183         * config/ia64/ia64.md (movdi): Split out load address code.
15184         New post-reload splitter for symbolic operands.
15185         (movdi_internal): Abort if we didn't split symbolic operands
15186         when we should have.
15187         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
15188         (ia64_reorg): Split insns when not optimizing.
15189         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
15190
15191 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
15192
15193         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
15194         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
15195
15196 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
15197
15198         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
15199
15200 2000-07-17  Jason Merrill  <jason@redhat.com>
15201
15202         * Makefile.in (clean): Remove libgcc directory.
15203
15204         * configure.in (-Wno-long-long check): Use higher-level macros.
15205
15206 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
15207
15208         * simplify-rtx.c (simplify_binary_operation): Recognize
15209            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
15210         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
15211            a CONST_INT, it will always be zero.
15212
15213 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
15214
15215         * loop.c (check_dbra_loop) : Return if more than one condition is
15216         present to control the loop.
15217
15218 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
15219
15220         * mips.c (mips_expand_prologue): Don't calculate the last argument
15221         register unless we need it.  When we are calculating this, make
15222         sure FUNCTION_ARG is giving us a REG.
15223
15224 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
15225
15226         * flow.c (libcall_dead_p): Use single_set to verify the insn
15227         has only one set and get for analysis.
15228         (propagate_one_insn): Don't pass the PATTERN of the insn.
15229
15230 2000-07-17  Mark Klein <mklein@dis.com>
15231
15232          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
15233
15234 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
15235
15236         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
15237         * configure.in (TARGET_GETGROUPS_T): Evaluate.
15238         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
15239         of second argument of getgroups.
15240         * configure, config.in: Rebuilt.
15241
15242 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
15243
15244         * simplify-rtx.c (simplify_relational_operation): Two signed
15245         values with equal high words are less/greater than each other if
15246         their low words are less/greater when considered as unsigned.
15247
15248 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
15249
15250         * configure.in (vax-*-openbsd):  Change to new style configuration,
15251         add collect2/float_format information.
15252         * configure:  Rebuilt.
15253         * config/vax/openbsd1.h:  New.
15254         * config/vax/openbsd.h:  New.
15255         * config/vax/t-openbsd:  New.
15256
15257 2000-07-17  Chip Salzenberg  <chip@valinux.com>
15258
15259         * c-common.c (shorten_compare): Quiet warnings about unsigned
15260         comparisons with zero when they occur in a system header.
15261
15262 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
15263
15264         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
15265         update to describe current practice.
15266
15267         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
15268
15269         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
15270         references to C9X.  Change references to -fstd and -flang-isoc9x
15271         to refer to -std.
15272
15273         * c-common.c (scan_char_table): Allow "z" length modifiers on
15274         diouxXn formats.
15275         (check_format_info): Use TYPE_DOMAIN on the type matched against
15276         for "z" formats, to retrieve the language size_t rather than the
15277         internal one.
15278
15279         * c-common.c (check_format_info): Do not make a pedantic objection
15280         to the 'L' length modifier if used with a floating point type
15281         character.
15282
15283         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
15284         constants in C99 mode.
15285
15286 2000-07-17  Kazu Hirata  <kazu@hxi.com>
15287
15288         * h8300.md: Fix the format of mac.
15289         (movsi_h8300hs): Output a tab after stmac instead of a space.
15290
15291         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
15292         profitable adds/subs sequences.
15293
15294         * fold-const.c: Fix comment typos.
15295
15296 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
15297
15298         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
15299
15300 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15301
15302         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
15303
15304 2000-07-16  Neil Booth  <NeilB@earthling.net>
15305
15306         * cpplex.c: Update comments.
15307         * README.Portability: Small update.
15308
15309 2000-07-16  Neil Booth  <NeilB@earthling.net>
15310
15311         * README.Portability:  Small update.
15312
15313 2000-07-15  Richard Henderson  <rth@cygnus.com>
15314
15315         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
15316         * config/ia64/ia64.c (ia64_move_ok): New function.
15317         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
15318         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
15319
15320 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
15321
15322         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
15323         immediately following a paste operator.
15324         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
15325         (cpp_reader_init): Call it, if HOST_EBCDIC.
15326         (cpp_handle_options): Do not sort option list here.
15327         (handle_option): Rename to cpp_handle_option and export.
15328         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
15329         _cpp_get_token directly.
15330         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
15331         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
15332         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
15333         cpp_scan_line.
15334
15335 2000-07-15  Richard Henderson  <rth@cygnus.com>
15336
15337         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
15338         cast around an expression.  Tidy other unsigned tests.
15339
15340 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
15341
15342         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
15343         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
15344         (v_message_with_decl): Rename to ...
15345         (format_with_decl): ... this. Tweak
15346         (diagnostic_for_decl): New function.
15347         (fatal_io_error): Use verbatim in lieu of notice.
15348         (announce_function): Use verbatim.
15349         (default_print_error_function): Likewise.
15350         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
15351         infratructure.
15352
15353 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15354
15355         * mips.c (function_arg_pass_by_reference): Don't do automatic
15356         aggregate initialization.
15357         (machine_dependent_reorg): Initialize variable `mode'.
15358
15359         * mips.md (absdi2): Change variable `regno1' to unsigned int.
15360         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
15361         conflicts with sys/param.h macro of the same name.
15362         (reload_outdi): Likewise.
15363
15364 2000-07-15  Michael Meissner  <meissner@redhat.com>
15365
15366         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
15367         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
15368         create a new node instead.
15369
15370 2000-07-15  Neil Booth  <NeilB@earthling.net>
15371
15372         * README.Portability: Correct example about calling a function
15373         through a pointer to function.  Format wide paragraphs.
15374
15375 2000-07-15  Michael Meissner  <meissner@redhat.com>
15376
15377         * README.Portability: Update integer suffixes and function
15378         prototype sections.
15379
15380 2000-07-15  Neil Booth  <NeilB@earthling.net>
15381
15382         * README.Portability: Small update.
15383
15384 2000-07-15  Neil Booth  <NeilB@earthling.net>
15385
15386         * README.Portability: New file.
15387
15388 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
15389
15390         * INSTALL: Give special instructions for building GCC on Irix 6.
15391         * config/mips/x-iris6 (CC): Don't set it.
15392         (OLDCC): Likewise.
15393
15394 2000-07-14  Jason Merrill  <jason@redhat.com>
15395
15396         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
15397         register in the stack and later in another register, use the new
15398         register.
15399
15400 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
15401
15402         * config/mips/mips.md: (absdi2): Handle sign_extend for
15403         second operand.
15404
15405 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
15406
15407         * cpplib.c (do_pragma_dependency): Tidy warning messages.
15408
15409 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
15410
15411         * .cvsignore: Correct typo.
15412
15413 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
15414
15415         * .cvsignore: Add generated YACC files.
15416         * objc/.cvsignore: New file.
15417
15418 2000-07-14  Neil Booth  <NeilB@earthling.net>
15419
15420         * cpplex.c (adjust_column): New funcion.
15421         (skip_whitespace): Use it.
15422         (skip_block_comment): Use it, and warn about /*/* with
15423         -Wcomments.
15424
15425 2000-07-14  Neil Booth  <NeilB@earthling.net>
15426
15427         * cpphash.c (struct macro_info): Add new members.
15428         (_cpp_free_definition): Delete the macro directly.
15429         (count_params): Return void, with first token of
15430         expansion in struct macro_info on success.
15431         (parse_define): Return int.  Hoist syntax checking from
15432         save_macro_expansion.  Leave call to save_expansion to
15433         _cpp_create_definition.
15434         (alloc_macro): Needs just 2 arguments.
15435         (free_macro): Delete.
15436         (save_expansion): Don't perform syntax check.
15437         (_cpp_create_definition): Call save_expansion.
15438
15439 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15440
15441         * genrecog.c (write_header): Split long string.
15442
15443         * cpphash.c (macro_info): Don't use the `signed' keyword.
15444
15445         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
15446
15447 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
15448
15449         * calls.c (stored_args_map): New variable.
15450         (check_sibcall_argument_overlap_1): New.
15451         (check_sibcall_argument_overlap): New.
15452         (expand_call): Initialize stored_args_map.
15453         Call check_sibcall_argument_overlap.
15454
15455 2000-07-13  Bruce Korb  <bkorb@gnu.org>
15456
15457         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
15458         (emit_gnu_type): utility procedure for gnu_type_fix
15459         (gnu_type_fix): implement various pre-processor guards around
15460         standard types so these types can be defined over and over
15461         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
15462         types alluded to above will have GNU-compliant base types
15463         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
15464         * fixinc/inclhack.def: add test_text entries and utilize the new
15465         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
15466         * fixinc/fixincl.x: regenerate
15467
15468 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
15469
15470         * diagnostic.c (vline_wrapper_message_with_location,
15471         v_message_with_file_and_line, v_error_with_file_and_file,
15472         v_error_for_asm, v_warning_for_asm, vfatal,
15473         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
15474         vsorry, verror, vwarning, vpedwarn): Remove.
15475         (diagnostic_for_asm): New function.
15476         (pedwarn, error, warning, pedwarn_with_file_and_line,
15477         error_with_file_and_line, warning_with_file_and_line, sorry,
15478         error_for_asm, warning_for_asm, fatal): Reimplement.
15479         (finish_diagnostic): Clear diagnostic info as well.
15480
15481 2000-07-13  Neil Booth  <NeilB@earthling.net>
15482
15483         * c-common.h (flag_digraphs): New.
15484         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
15485         * c-lex.c (yylex): Use flag_digraphs to decide whether to
15486         honour digraphs.
15487
15488 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
15489
15490         * gcc.c (do_spec_1): Add new %B operator.
15491         (set_input): Prepare for %B.
15492
15493         (link_command_spec): Move up with the other tm.h-
15494         overrideable specs.  Factor out the portion conditional on
15495         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
15496         (struct compiler): Just have a single spec string.  All users
15497         updated.
15498         (default_compilers): Remove unnecessary braces.
15499         (static_specs): Update.
15500
15501         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
15502         named specs.
15503         (C and assembly specs): Use the new named specs, as appropriate.
15504
15505         * objc/lang-specs.h: Use the new named specs.
15506         Remove unnecessary braces.
15507
15508 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
15509
15510         * gcc.c (execute): If a subprocess gets a fatal signal, report
15511         strsignal() of the signal number, and ask for a bug report.
15512         Do not do this for SIGPIPE if there's already been an error.
15513
15514         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
15515         Delete pipe_closed.
15516
15517         * tradcif.c: Remove.
15518
15519 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
15520
15521         * final.c (profile_function): Do not emit profile counters in
15522         the data section, if NO_PROFILE_COUNTERS is defined.
15523         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
15524         FUNCTION_PROFILER.
15525
15526         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
15527         (FUNCTION_PROFILER): Just emit a call to mcount.
15528
15529 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
15530
15531         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
15532
15533         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
15534         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
15535         traditional, lang_chill, or lang_fortran.
15536
15537         * cppfiles.c: #undef strcmp to suppress warning about macros
15538         used without arguments.
15539         (_cpp_execute_include): Use f, not fname, in "No include path"
15540         error.
15541         (_cpp_pop_file_buffer): New function.
15542         * cpplib.c: Don't include <sys/mman.h>.
15543         (cpp_push_buffer): Set line_base and lineno in new buffer.
15544         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
15545
15546         * cpplex.c: Move all prototypes and structure declarations to the
15547         top of the file.  Properly parenthesise some macro arguments.
15548         (cpp_scan_line): New function.
15549         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
15550         don't need to walk up the stack counting.
15551
15552 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15553
15554         * c-common.c (combine_strings): Emit a pedantic warning when a
15555         string length is greater than the minimum ANSI C is required
15556         to support.
15557
15558 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
15559
15560         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
15561         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
15562
15563 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15564
15565         * c-decl.c (define_label): Warn about identifier conflicts with
15566         labels in traditional C.
15567
15568         * c-parse.in (unop +): Warn about the unary plus operator for
15569         traditional C.
15570
15571         * c-typeck.c (store_init_value): Warn about automatic aggregate
15572         initialization for traditional C.
15573
15574         * invoke.texi (-Wtraditional): Document new warnings.
15575
15576 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
15577
15578         * Makefile.in (c-errors.o): Fix thinko in dependency.
15579
15580 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
15581
15582         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
15583         -traditional, -ftraditional, or -traditional-cpp was given.
15584         Do not pass -traditional to the preprocessor.
15585         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
15586         preprocessor does it automatically.
15587         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
15588
15589         * ch/lang-specs.h: Always use tradcpp.  Do not pass
15590         -traditional, -trigraphs, or -pedantic to the preprocessor.
15591         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
15592         _LANGUAGE_FORTRAN.
15593
15594 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
15595
15596         * cppexp.c (LOGICAL): Delete macro.
15597         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
15598         and && directly.
15599
15600         * cpphash.c (HASHSIZE): Increase to 4096.
15601         (struct hashdummy): Add hash field.
15602         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
15603         the string values using memcmp.
15604         (cpp_lookup): Set dummy.hash.
15605
15606 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
15607
15608         * configure.in (m88k-openbsd): Express configuration using new fragment
15609         style.
15610         * configure: Rebuilt.
15611         * m88k/aout-dbx.h: New.
15612         * m88k/openbsd.h: New.
15613         * m88k/xm-openbsd.h: New.
15614
15615 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15616
15617         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
15618
15619 2000-07-12  Richard Henderson  <rth@cygnus.com>
15620
15621         * reload.c (push_secondary_reload): Make sure to add the new
15622         reload at the end, after acquiring secondary memory.
15623
15624 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15625
15626         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
15627
15628         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
15629         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
15630
15631         * c-parse.in (stmt): Delete unused variables.
15632
15633         * convert.c (convert_to_vector): Likewise.
15634
15635         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
15636
15637         * tree.c (finish_vector_type): Prototype.
15638
15639 2000-07-12  Bruce Korb  <bkorb@gnu.org>
15640
15641         * fixinc/fixfixes.c: use xmalloc
15642         * fixinc/fixincl.c(initialize): set program name for xmalloc
15643         * fixinc/fixlib.c(must_malloc): obsolete
15644         (is_cxx_header): no longer used - disabled
15645         (skip_quote): inserted and disabled for future use
15646         * fixinc/fixlib.h: reflects above
15647         * fixinc/fixtests.c: removed dinkleberries
15648
15649 2000-07-12  Neil Booth  <NeilB@earthling.net>
15650
15651         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
15652         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
15653
15654         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
15655         struct toklist_dummy): New.
15656         (cpp_free_definition): Free macros with free_macro.
15657         (count_params): Don't save paramter spellings.  Save macro
15658         information in a struct macro_info.
15659         (parse_define): Don't allocate a token list.
15660         (save_expansion): Allocate the macro's token list, and
15661         save parameter spellings if necessary.  Use TOKEN_SPELL.
15662         (cpp_create_definition): Make list const.
15663
15664 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
15665
15666         * c-typeck.c (pedwarn_c99): Move to
15667         * c-errors.c: ... Here.
15668         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
15669         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
15670         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
15671         (c-errors.o): List dependency.
15672
15673 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
15674
15675         * c-parse.c: Remove.
15676         * c-parse.h: Likewise.
15677         * c-parse.y: Likewise.
15678         * objc/objc-parse.c: Likewise.
15679         * objc/objc-pasre.y: Likewise.
15680
15681 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
15682
15683         * gcc.texi: Fix minor typos
15684         * extend.texi: Fix minor typos
15685
15686 2000-07-11  Marc Espie <espie@openbsd.org>
15687
15688         * collect2.c (main): Recognize .lo as object files.
15689
15690 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
15691
15692         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
15693         true.
15694
15695         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
15696         with MAP_ANONYMOUS and MAP_ANON.
15697         * configure, config.in: Rebuilt.
15698
15699 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
15700
15701         * diagnostic.c (save_output_state): Remove.
15702         (restore_output_state): Likewise.
15703         (clear_text_info): New function.
15704         (clear_diagnostic_info): Likewise.
15705         (output_text_length, is_starting_newline, output_prefix,
15706         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
15707         prefixing_policy, output_buffer_ptr_to_format_args): New macros
15708         (set_real_maximum_length, output_set_maximum_length,
15709         output_set_prefix, output_get_prefix, output_set_maximum_length,
15710         output_destroy_prefix, init_output_buffer,
15711         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
15712         output_add_newline, output_add_character, output_add_space,
15713         output_append_r, output_append, wrap_text, output_format,
15714         output_do_printf, output_printf, output_do_verbatim,
15715         output_verbatim, verbatim): Use them.
15716         (output_clear): Split into cleat_text_info and
15717         clear_diagnostic_info.
15718         (struct output_state): Move to...
15719
15720         * diagnostic.h: ...Here
15721         (struct output_buffer): Adjust.
15722
15723 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
15724
15725         * cpplex.c (parse_name): No longer inline (premature optimization).
15726         (do_pop_context): Fold into pop_context.
15727         (pop_context): Returns int.
15728         (lex_next): Hoist test for end of directive into pop_context.
15729         (push_macro_context): Returns int; takes just reader and token.
15730         Hoist test for excessive nesting to caller.
15731         (push_arg_context): Returns void; takes just reader and token.
15732         Do not call stringify_arg or get_raw_token.
15733         (get_raw_token): Convert tail recursion through push_arg_context
15734         to a loop at this level.  Call stringify_arg here if appropriate.
15735         (maybe_paste_with_next): Convert tail recursion to a while loop.
15736         Hoist test of paste_level to caller.
15737
15738         (stringify_arg): Push arg context at beginning.
15739         (cpp_get_token): Split out core into _cpp_get_token.  Call
15740         process_directive here.  Throw away CPP_PLACEMARKER tokens.
15741         (_cpp_get_token): Convert tail recursion through
15742         push_macro_context to a loop at this level.
15743         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
15744         _cpp_get_raw_token): Use _cpp_get_token.
15745         (_cpp_skip_rest_of_line): Drop the context stack directly; do
15746         not call pop_context.
15747         (_cpp_run_directive): Call lex_next directly.
15748
15749         * cpphash.h: Prototype _cpp_get_token.
15750         * cppexp.c (lex): Use it.
15751         * cpphash.c (parse_define): Use it.
15752         * cpplib.c (get_define_node, do_undef, parse_include,
15753         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
15754         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
15755         parse_ifdef, validate_else): Use it.
15756         (cpp_push_buffer): Tweak error message; abort if anyone tries
15757         to push a buffer while macro expansions are stacked.
15758
15759 2000-07-11  Donn Terry  <donnte@microsoft.com>
15760
15761         * cpplex.c (free_macro_args, save_token): Cast arg of free
15762         and/or xrealloc to PTR.
15763         (_cpp_init_input_buffer): Clear all fields of the base context.
15764
15765 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
15766
15767         * gensupport.c (process_rtx): Make rtl checking stop
15768         complaining about the define_insn while it is being
15769         converted from a define_insn_and_split.
15770
15771 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
15772
15773         * config/mips/mips.c (simple_memory_operand): Access the
15774         INTVAL of the address, not it's containing MEM.
15775
15776 2000-07-11  Bruce Korb  <bkorb@gnu.org>
15777
15778         * fixinc/fixtests.c(double_slash): obsolete
15779         (else_endif_label): likewise
15780         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
15781         (libc1_ifdefd_memx): correct initial comment
15782         and omit the #if/#endif pair from the memxxx declarations
15783         * fixinc/fixincl.x: regen
15784
15785 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15786
15787         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
15788
15789 2000-07-11  Neil Booth  <NeilB@earthling.net>
15790
15791         * cpp.texi: Update.
15792
15793 2000-07-11  Neil Booth  <NeilB@earthling.net>
15794
15795         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
15796         (handle_option): Set digraphs according to standard.
15797         Merge OPT_lang_c89 handler with OPT_std_c89.
15798
15799         * cpplex.c: (lex_line, can_paste): Honour digraphs in
15800         accordance with the digraphs flag.
15801
15802         * cpplib.h: (struct cpp_options): New option digraphs.
15803
15804 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
15805             Bruce Korb  <bkorb@gnu.org>
15806
15807         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
15808         * fixinc/fixincl.x: Regenerate.
15809         * fixinc/tests/base/testing.h: Add testcase.
15810
15811 2000-07-10  Richard Henderson  <rth@cygnus.com>
15812
15813         * config/ia64/ia64.c (got_symbolic_operand): New.
15814         (symbolic_operand, move_operand): Revert 0701 change.
15815         * config/ia64/ia64.h (PREDICATE_CODES): Update.
15816         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
15817         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
15818         split the offset into a 14-bit low part instead of a 13-bit low part.
15819         (load_fptr): Mark the mem as unchanging.
15820         (load_symptr): Use got_symbolic_operand.
15821
15822 2000-07-10  Nick Clifton  <nickc@cygnus.com>
15823
15824         * libgcc2.c (next_stack_level): Cast result of computation to
15825         (void **) so that the assignment does not generate a warning.
15826
15827 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
15828
15829         * flags.h : Add new variable flag_single_precision_constant.
15830         * toplev.c (display_help) : Add -fsingle-precision-constant option.
15831         (flag_single_precision_constant): New.
15832         * c-lex.c (yylex): Convert floating point constant to single
15833         precision constant.
15834         * invoke.texi : Add documentation for this new option.
15835
15836 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
15837
15838         * diagnostic.c (output_octal): Second parameter is unsigned.
15839         (output_long_octal): Likewise.
15840         (output_hexadecimal): Likewise.
15841         (output_long_hexadecimal): Likewise.
15842         (output_format): Adjust arguments extraction. Tweak.
15843         (output_verbatim, verbatim): End variable argument list.
15844         (report_diagnostic): Improve documentation.
15845
15846 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
15847
15848         * c-common.h (build_stmt): Declare.
15849         (build_continue_stmt): Likewise.
15850         (build_break_stmt): Likewise.
15851         (build_return_stmt): Likewise.
15852
15853         * c-decl.c (do_case): Rewrite to do what previously done in
15854         c-parse.in.
15855
15856         * c-semantics.c (build_stmt): Define.
15857         (build_return_stmt): Likewise.
15858         (build_break_stmt): Likewise.
15859         (build_continue_stmt): Likewise.
15860         (build_case_label): Likewise.
15861
15862         * c-parse.in (BREAK): Change to build tree, then generate RTL.
15863         (CONTINUE): Likewise.
15864         (RETURN): Likewise.
15865         (CASE): Likewise.
15866         (DEFAULT): Likewise.
15867
15868         * c-parse.y: Regenerate.
15869         * c-pasre.c: Likewise.
15870
15871 2000-07-09  Jason Merrill  <jason@redhat.com>
15872
15873         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
15874
15875         * tree.h (STRIP_NOPS): Check for error_mark_node.
15876         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
15877         (dwarf2out_*): Remove duplicate declarations.
15878
15879         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
15880         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
15881
15882 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
15883
15884         * diagnostic.c (wrap_text): New function.
15885         (maybe_wrap_text): Likewise.
15886         (output_add_string): Use it.
15887         (output_format): Likewise.
15888         (count_error): Use verbatim instead of notice.
15889         (report_error_function): Likewise. Don't use plain fprintf.
15890         (finish_diagnostic): New function.
15891         (output_do_verbatim): Tweak.  Commonalize functionalities in
15892         output_verbatim and verbatim.
15893         (output_verbatim): Adjust.
15894         (verbatim): Likewise.
15895         (report_diagnostic): Define.
15896
15897         * diagnostic.h (report_diagnostic): Prototype.
15898
15899 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
15900
15901         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
15902
15903 2000-07-09  Neil Booth  <NeilB@earthling.net>
15904
15905         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
15906         IShspace, ISspace: Update.
15907
15908         * cppinit.c: ISTABLE: Update.
15909         V: New.
15910
15911         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
15912         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
15913         (skip_block_comment, skip_line_comment, parse_string,
15914         lex_line): Use is_vspace rather than IS_NEWLINE.
15915         (skip_whitespace, lex_line): Clean up to use is_nvspace.
15916         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
15917         gets a BOL flag.
15918         (lex_next): Unconditionally stop if within a directive.
15919         Treat directives within macro invocations as directives
15920         (after parse_args emits error), not as the argument.
15921
15922 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
15923
15924         * diagnostic.c (diagnostic_args): New macro.
15925         (diagnostic_msg): Likewise.
15926         (output_formatted_integer): Likewise.
15927         (output_state): New data type.
15928         (digit_buffer): Make global.
15929         (output_add_integer): Rename to output_decimal. Squeeze
15930         digit_buffer.
15931         (output_long_decimal, output_unsigned_decimal,
15932         output_long_unsigned_decimal, output_octal, output_long_octal,
15933         output_hexadecimal, output_long_hexadecimal): New functions.
15934         (output_append_r): New function.
15935         (output_append): Tweak.
15936         (output_flush_on): Rename to output_to_stream.
15937         (output_format): Change prototype.  Improve documentation. Handle
15938         more format specifiers.
15939         (build_location_prefix): Rename to context_as_prefix.
15940         (output_notice): Rename to output_do_printf.
15941         (output_printf): Tweak.
15942         (line_wrapper_printf): Likewise.
15943         (vline_wrapper_message_with_location): Adjust call to renamed
15944         functions.
15945         (v_message_with_decl): Likewise.
15946         (default_print_error_function): Likewise.
15947         (save_output_state): New function.
15948         (restore_output_state): Likewise.
15949         (output_do_verbatim): Likewise.
15950         (output_verbatim): Define.
15951         (verbatim): Likewise.
15952
15953         * diagnostic.h (printer_fn): Change return type from void to int.
15954         Improve documentation.
15955         (output_add_integer): Rename to output_decimal.
15956         (output_flush_on, output_format): Don't export.
15957         (output_verbatim, verbatim): Declare.
15958
15959 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
15960
15961         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
15962         Check whether c divides op1 exactly if operation is not
15963         multiplication.
15964
15965 2000-07-08  Richard Henderson  <rth@cygnus.com>
15966
15967         * final.c (final): Do not abort when reg-stack introduces
15968         a new insn.
15969
15970 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
15971
15972         * cpplib.h (struct cpp_name): Now struct cpp_string.
15973         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
15974         CPP_HEADER_NAME): Change to type S.
15975         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
15976         field, a cpp_hashnode *.  All references to val.name updated
15977         to use val.str or val.node as appropriate.
15978         (struct cpp_reader): Add spec_nodes field.
15979         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
15980
15981         * cpphash.h (struct spec_nodes): New.
15982         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
15983         val.str.  All references to 'spelling > SPELL_NONE' updated to
15984         match.
15985
15986         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
15987         pfile->buffer->inc are not NULL before dereferencing them.
15988
15989         * cpplex.c (parse_name): Take a pointer to the current token,
15990         plus current position and limit as args; return the new
15991         position; don't copy the text of a name into the string
15992         buffer, instead call cpp_lookup and store the node pointer.
15993         If extending a token, copy out the text of the old into a
15994         scratch buffer, append the new, look that up and store the new
15995         node pointer.  Inline.
15996         (maybe_paste_with_next): If the result of paste is a NAME,
15997         then look up the pasted text and store its node pointer.
15998         (lex_line): Adjust for new parse_name interface.
15999         Check for L"str", L'str' using spec_nodes->n_L.
16000         (spell_token): SPELL_IDENT tokens have their spelling in
16001         val.node->name.  Handle SPELL_STRING tokens that don't have
16002         string delimiters.
16003         (_cpp_expand_name_space,
16004         (can_paste): Check for L ## "str" using spec_nodes->n_L.
16005         (cpp_get_token, special_symbol): No need to call cpp_lookup.
16006         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
16007         return 1=equal 0=not, not a tristate.
16008
16009         * cpphash.c (var_args_str): Delete.
16010         (find_param): Compare node fields directly.
16011         (is__va_args__): Use CPP_PEDANTIC.  Just compare
16012         token->val.node with spec_nodes->n__VA_ARGS__.
16013         (dump_funlike_macro): Don't use var_args_str.
16014
16015         * cpplib.c (_cpp_check_directive): Just walk through
16016         spec_nodes->dirs comparing pointers.
16017         (get_define_node, do_pragma_poison, detect_if_not_defined,
16018         parse_ifdef): The identifier has already been looked up.
16019         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
16020         node.
16021         (do_if): Only call detect_if_not_defined at beginning of file.
16022         (_cpp_parse_assertion): Only copy string pointers for
16023         SPELL_STRING tokens.
16024         (pragma_dispatch): Take a node pointer and examine its name
16025         field.
16026         (_cpp_init_stacks): Also initialize the spec_nodes structure.
16027
16028         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
16029         _cpp_init_macros.
16030         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
16031         reverse order from the corresponding _cpp_init_* routines.
16032
16033         * cppexp.c (parse_number, parse_charconst, parse_defined,
16034         lex): Check val.node->type instead of calling cpp_defined.
16035         Use spec_nodes entries where appropriate.
16036
16037         * fix-header.c, scan-decls.c: Update for interface changes.
16038
16039 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
16040
16041         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
16042         emitting aux_truncdfsf2.
16043
16044 2000-07-03  Donn Terry  (donnte@microsoft.com)
16045
16046         * cppinit.c (print_help): split overlong line into ISO C89
16047         maximum chunks.
16048
16049 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
16050
16051         * cppexp.c: Update all code for new lexer interface.
16052         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
16053         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
16054         * cpplex.c (token_names): Trim leading CPP_ from names; make
16055         the strings unsigned.
16056         (_cpp_spell_operator): New.
16057         (is_macro_disabled): Disable all macros if rescanning
16058         preprocessed text.
16059         (_cpp_get_directive_token): Remove.
16060
16061         * cppinit.c: Don't set no_macro_expand.
16062         * cpplib.c (read_line_number, do_line): Check only for EOF,
16063         not VSPACE.
16064         * cpphash.h: Update prototypes.
16065         * cpplib.h (CPP_VSPACE): Remove.
16066         (struct cpp_reader): Remove no_macro_expand.
16067
16068 2000-07-08  Neil Booth  <NeilB@earthling.net>
16069
16070         * cpphash.c (is__va_args__): New function.
16071         (count_params): Fix line reported in error messages.  Use
16072         is__va_args__.  Don't return ')' on error.  Flag GNU style
16073         rest args macro definitions.
16074         (parse_define): Check macro name is not __VA_ARGS__.
16075         (save_expansion): Check identifier in non-varargs-macro is
16076         not __VA_ARGS__.  Don't flag GNU_VARARGS.
16077         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
16078         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
16079          than per-token GNU_VARARGS.
16080         * cpplib.h (GNU_VARARGS): Remove.
16081         (GNU_REST_ARGS): New.
16082
16083 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
16084
16085         * i386.md (call_pop, call, call_value_pop): Do not set
16086         current_function_uses_pic_offset_table for calls to static
16087         functions or indirect calls.
16088
16089 2000-07-07  Jim Wilson  <wilson@cygnus.com>
16090
16091         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
16092         is_predicate_reg, then take max write_count of register pair.
16093
16094 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16095
16096         * tradcpp.c (main): Rename label `include' to `add_include' to
16097         avoid conflicts with variable `include' in traditional C.
16098
16099 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
16100
16101         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
16102
16103 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
16104
16105         * sibcall.c (uses_addressof): Add INMEM argument, check for
16106         current_function_internal_arg_pointer outside of MEM rtxs in addition
16107         to ADDRESSOFs.
16108         (sequence_uses_addressof): Update caller.
16109
16110 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
16111
16112         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
16113         and friends.
16114
16115 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16116
16117         * system.h (UNION_INIT_ZERO): New macro for initializing union
16118         members in structs.
16119
16120         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
16121
16122 2000-07-07  Neil Booth  <NeilB@earthling.net>
16123
16124         * cpp.texi: Update.
16125
16126 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
16127
16128         * final.c (final): Detect out of bounds array access to
16129         the insn_lengths array.
16130
16131 2000-07-07  Kazu Hirata  <kazu@hxi.com>
16132
16133         * fold-const.c (fold): Fix a comment typo.
16134
16135 2000-07-07  Neil Booth  <NeilB@earthling.net>
16136
16137         * cpp.texi: Update to new lexer.
16138
16139 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
16140
16141         * tradcpp.c: New file.
16142         * tradcif.y: New file.
16143         * tradcif.c: New generated file.
16144
16145         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
16146         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
16147         dependencies of C.  Install tradcpp from install-common, in
16148         $(libsubdir).
16149
16150 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
16151
16152         * cppinit.c: Include cppdefault.h.  Refer to
16153         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
16154         to GCC_INCLUDE_DIR and its length.
16155         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
16156         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
16157         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
16158         cppdefault.h.
16159         (include_defaults_array): Move to cppdefault.c.
16160
16161         * cppdefault.h: New file.
16162         * cppdefault.c: New file.
16163
16164         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
16165         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
16166         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
16167         this file.
16168
16169 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16170
16171         * reload.c (push_reload): When seeing if can reuse a register,
16172         check extra registers against widest of INMODE and OUTMODE.
16173
16174 2000-07-06  Neil Booth  <NeilB@earthling.net>
16175
16176         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
16177         based on full length of predicate.
16178
16179 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
16180
16181         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
16182         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
16183
16184 2000-07-05  Kazu Hirata  <kazu@hxi.com>
16185
16186         * h8300-proto.h: Fix formatting.
16187         * h8300.c: Likewise.
16188         * h8300.h: Likewise.
16189
16190 2000-07-05  Jim Wilson  <wilson@cygnus.com>
16191
16192         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
16193         CCmode.
16194
16195 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
16196
16197         * invoke.texi: Fix minor typos
16198         * md.texi: Fix minor typos
16199
16200 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
16201
16202         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
16203
16204 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
16205
16206         * cpplex.c: Don't include sys/mman.h.
16207         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
16208
16209         * cpplib.c: Include sys/mman.h and obstack.h.
16210         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
16211         obstack.
16212         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
16213         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
16214         bother freeing if stack entries (they will be freed with their buffer).
16215         (do_endif): Free if stack entries from the buffer obstack.
16216         (push_conditional): Allocate if stack entries from the buffer obstack.
16217
16218         (find_answer): Rename to _cpp_find_answer.
16219         (do_assert, do_unassert): Update.
16220
16221         * cpphash.h: Update prototypes.
16222         (xobnew): New convenience macro.
16223         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
16224         Update comments.
16225         (struct cpp_hashnode): Remove disabled field.
16226
16227         * cppinit.c: Don't include hashtab.h or splay-tree.h.
16228         (report_missing_guard): Moved to cppfiles.c.
16229         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
16230         cpp_init_includes.
16231         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
16232         cpp_cleanup_includes.  Don't destroy hashtab or
16233         all_include_files here.
16234         (cpp_finish): Use _cpp_report_missing_guards.
16235
16236         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
16237         (_cpp_init_include_table): Rename _cpp_init_includes.
16238         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
16239
16240         * cppexp.c (parse_assertion): Update for new name of
16241         find_answer.
16242
16243         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
16244
16245 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
16246
16247         * cpplib.c (do_ident): s/VSPACE/EOF/
16248
16249 2000-07-05  Neil Booth  <NeilB@earthling.net>
16250
16251         * cpplex.c: Fix trigraph replacement within strings.
16252
16253 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16254
16255         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
16256
16257         * xcoffout.c (assign_type_number): Constify.
16258         (xcoffout_source_file): Add static prototype.  Don't needlessly
16259         cast away const-ness.
16260
16261 2000-07-04  Jason Merrill  <jason@redhat.com>
16262
16263         * frame.h (frame_state): Move base_offset to end.
16264
16265 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
16266
16267         * calls.c (emit_library_call_value_1): Revert previous change.
16268
16269 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
16270
16271         * fix-header.c (struct partial_proto): Remove unnecessary fields.
16272         (recognized_extern, recognized_function, read_scan_file):
16273         Update for new scheme.
16274         (check_protection): It's still a multiple include guard even
16275         if it doesn't always trigger.
16276         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
16277         new scheme.
16278         * scan.h: Declare struct cpp_token.  Update prototypes.
16279
16280 2000-07-03  Neil Booth  <neilb@earthling.net>
16281             Zack Weinberg  <zack@wolery.cumb.org>
16282
16283         Complete overhaul of the lexer and macro expander.
16284
16285         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
16286         arg, arglist, argdata, reflist, collect_objlike_expansion,
16287         collect_funlike_expansion, collect_params,
16288         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
16289         unsafe_chars, macarg, compare_defs, special_symbol,
16290         scan_arguments, stringify, funlike_macroexpand,
16291         _cpp_quote_string, monthnames): Delete.
16292         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
16293         _cpp_create_definition, _cpp_dump_definition,
16294         dump_hash_helper): Adjust.
16295         (find_param, count_params, parse_define, var_args_str,
16296         check_macro_redefinition, save_expansion): New.
16297
16298         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
16299         parse_string, output_line_command, trigraph_replace,
16300         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
16301         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
16302         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
16303         _cpp_skip_rest_of_line): Modify.
16304
16305         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
16306         find_position, null_warning, bump_column, expand_name_space,
16307         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
16308         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
16309         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
16310         _cpp_prescan): Delete.
16311
16312         (dump_param_spelling, process_directive, lex_next,
16313         is_macro_disabled, stringify_arg, expand_context_stack,
16314         output_token, make_string_token, alloc_number_token,
16315         special_symbol, duplicate_token, maybe_paste_with_next,
16316         can_paste, prevent_macro_expansion, restore_macro_expansion,
16317         get_temp_token, release_temp_tokens, quote_string,
16318         token_names, token_spellings, _cpp_expand_name_space,
16319         _cpp_glue_header_name, _cpp_reserve_name_space,
16320         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
16321         placemarker_token, eof_token, cpp_context, macro_args,
16322         get_raw_token, parse_arg, parse_args, save_token,
16323         push_arg_context, push_macro_context, pop_context,
16324         do_pop_context, free_macro_args, _cpp_get_line,
16325         _cpp_run_directive): New.
16326
16327         * cpplib.c (validate_else, parse_include, push_conditional,
16328         pass_thru_directive, read_line_number, parse_ifdef,
16329         detect_if_not_defined, _cpp_check_directive, do_define,
16330         do_undef, do_include, do_import, do_include_next, do_error,
16331         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
16332         top_pragmas, do_pragma_gcc, do_pragma_implementation,
16333         do_pragma_poison, do_pragma_system_header,
16334         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
16335         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
16336         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
16337         cpp_defined): Update for new scheme.
16338         (strtoul_for_line, get_define_node, dump_macro_name,
16339         _cpp_check_linemarker, _cpp_parse_assertion): New.
16340         (_cpp_handle_directive, do_pragma_default): Delete.
16341
16342         * cpphash.h (struct predicate): Now struct answer.
16343         (enum spell_type, struct token_spelling, struct directive,
16344         directive_handler): New.
16345         Update prototypes.  Remove unused macros.
16346         * cpplib.h: Update prototypes.  Remove unused macros,
16347         structure definitions, and fields.
16348
16349         * cpperror.c (print_containing_files, v_message): Adjust.
16350         * cppexp.c (parse_assertion, lex, parse_escape,
16351         _cpp_parse_expr): Adjust.
16352         * cppfiles.c (open_include_file, _cpp_execute_include,
16353         _cpp_compare_file_date, cpp_read_file, read_include_file):
16354         Adjust.
16355         * cppinit.c (dump_special_to_buffer): Delete.
16356         (append_include_chain, merge_include_chains, cpp_reader_init,
16357         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
16358         cpp_finish, handle_option, print_help): Adjust.
16359         * cppmain.c (main): Adjust.
16360
16361 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
16362
16363         * cppspec.c (lang_specific_driver): Use double quotes in error
16364         message.
16365
16366 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
16367
16368         * calls.c (emit_library_call_value_1): Use valreg instead
16369         of hard_libcall_value.
16370
16371 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
16372
16373         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
16374         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
16375         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
16376         (movhi): Likewise.
16377         (movqi): Likewise.
16378         (movdf): Likewise.
16379         (movsf): Likewise.
16380         (movdi): Likewise.
16381         (movti): Likewise.
16382
16383         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
16384         mode instead of wider_mode is being used.
16385
16386 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
16387
16388         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
16389         of 'r'. Use q_regs_operand.
16390         (andsi_1+2): Use q_regs_operand.
16391
16392 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
16393
16394         * builtins.c (get_memory_rtx): Always put into alias set 0.
16395
16396 2000-07-03  Nick Clifton  <nickc@cygnus.com>
16397
16398         * config/arm/arm.md: Fix post increment and pre increment
16399         peepholes so that they do not generate UNPREDICATBLE opcodes.
16400         (ie ones where the increment clobbers the source/destination).
16401
16402 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
16403
16404         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
16405         change too big for -mtiny-stack" a warning, if larger than 63.
16406         (out_set_stack_ptr): Change the logic so -mno-interrupts is
16407         always safe to use on possible future devices.
16408         (function_prologue): Write SPH before SPL, for consistency.
16409         If interrupt_func_p true, we know we have enabled interrupts.
16410         (avr_num_arg_regs): New function.  Round up to even number of
16411         bytes if no -mpack-args or if calling a libgcc function.
16412         (function_arg, function_arg_advance): Use it.
16413         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
16414         Output "movw" if available.
16415         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
16416         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
16417         (asm_output_section_name): Add blanks for consistent output.
16418         (encode_section_info): Set TREE_READONLY for progmem data to
16419         avoid gas warnings about changed section attributes.
16420         (avr_hard_regno_mode_ok): Force non-QImode data to start in
16421         even numbered registers on devices with "movw".
16422         * config/avr/avr.h (MASK_*): Define bits for target_flags.
16423         (TARGET_SWITCHES): Mark help strings for translation.
16424         Add new -mpack-args and -menhanced switches.
16425         (TARGET_OPTIONS): Mark help strings for translation.
16426         (progmem_section): Add section attributes.
16427         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
16428         Output "movw" if available.
16429         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
16430         New patterns.
16431         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
16432         call convention (arguments aligned on even registers).
16433         (_cleanup, _exit): Make weak symbols libc can override.
16434
16435 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16436
16437         * fp-bit.h: New file.
16438
16439         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
16440         Comment #endif statements.
16441         (__thenan_sf, __thenan_df): Add missing braces around initializer.
16442
16443 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
16444
16445         * gcse.c (compute_pre_data): Compute ae_kill using other local
16446         properties instead of calling compute_ae_kill.
16447
16448         * alias.c (init_alias_analysis): Do not call
16449         prologue_epilogue_contains until after reload has completed.
16450
16451 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
16452
16453         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
16454         (genrtl_finish_compound_stmt): Likewise.
16455         (genrtl_compound_stmt): Change to return void.
16456
16457         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
16458         move code from here to ...
16459         (genrtl_compound_stmt): ... here.
16460         (genrtl_finish_compound_stmt): Remove.
16461         (expand_stmt): Add comment.
16462
16463 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
16464
16465         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
16466         and VOID_TYPE_P.
16467
16468 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
16469
16470         * cpplib.h (struct cpp_reader): New field include_depth.
16471         (struct cpp_printer): Rename last_bsd to last_id.
16472         * cppfiles.c (read_include_file): Bump include_depth.
16473         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
16474         (output_line_command): Output correct #line if a header
16475         is including itself and is not protected against multiple inclusion.
16476         Use include_depth instead of buffer_stack_depth, last_id instead of
16477         last_bsd.
16478         * cppinit.c (cpp_start_read): Initialize last_id instead of
16479         last_bsd.
16480
16481 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
16482
16483         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
16484         (c-semantics.o): New target.
16485
16486         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
16487         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
16488         (genrtl_clear_out_block): Likewise.
16489         (genrtl_goto_stmt): Likewise.
16490         (genrtl_expr_stmt): Likewise.
16491         (genrtl_decl_stmt): Likewise.
16492         (genrtl_if_stmt): Likewise.
16493         (genrtl_while_stmt): Likewise.
16494         (genrtl_do_stmt): Likewise.
16495         (genrtl_return_stmt): Likewise.
16496         (genrtl_for_stmt): Likewise.
16497         (genrtl_break_stmt): Likewise.
16498         (genrtl_continue_stmt): Likewise.
16499         (genrtl_scope_stmt): Likewise.
16500         (genrtl_switch_stmt): Likewise.
16501         (genrtl_case_label): Likewise.
16502         (genrtl_begin_compound_stmt): Likewise.
16503         (gerntl_finish_compound_stmt): Likewise.
16504         (genrtl_compound_stmt): Likewise.
16505         (genrtl_asm_stmt): Likewise.
16506         (genrtl_decl_cleanup): Likewise.
16507         (DECL_ANON_UNION_ELEMS): Likewise.
16508         (emit_local_var): Likewise.
16509         (make_rtl_for_local_static): Likewise.
16510         (expand_cond): Likewise.
16511         (expand_stmt): Likewise.
16512         (c_expand_return): Likewise.
16513         (c_expand_start_case): Likewise.
16514         (do_case): Likewise.
16515         (COMPOUND_STMT_NO_SCOPE): Likewise.
16516         (c_expand_asm_operands): Likewise.
16517         (NEW_FOR_SCOPE_P): New macro.
16518         (expand_expr_stmt_fn): New type.
16519
16520         (set_current_function_name_declared): Likewise.
16521         (current_function_name_declared): Likewise.
16522         (lang_expand_stmt): Likewise.
16523         (stmts_are_full_exprs_p): Likewise.
16524         (anon_aggr_type_p): Likewise.
16525         (lang_expand_expr_stmt): Likewise.
16526         (build_case_label): Likewise.
16527
16528         * c-decl.c (lang_expand_expr_stmt): Initialize.
16529         (stmts_are_full_exprs_p): Define.
16530         (current_function_name_declared): Likewise.
16531         (do_case): Likewise.
16532         (lang_expand_stmt): Likewise.
16533         (set_current_function_name_declared): Likewise.
16534         (anon_aggr_type_p): Likewise.
16535
16536         * c-semantics.c: New file.
16537         (expand_cond): Moved from cp/semantics.c.
16538         (genrtl_do_pushlevel): Likewise.
16539         (genrtl_clear_out_block): Likewise.
16540         (genrtl_goto_stmt): Likewise.
16541         (genrtl_expr_stmt): Likewise.
16542         (genrtl_decl_stmt): Likewise.
16543         (genrtl_if_stmt): Likewise.
16544         (genrtl_while_stmt): Likewise.
16545         (genrtl_do_stmt): Likewise.
16546         (genrtl_return_stmt): Likewise.
16547         (genrtl_for_stmt): Likewise.
16548         (genrtl_break_stmt): Likewise.
16549         (genrtl_continue_stmt): Likewise.
16550         (genrtl_scope_stmt): Likewise.
16551         (genrtl_switch_stmt): Likewise.
16552         (genrtl_case_label): Likewise.
16553         (genrtl_begin_compound_stmt): Likewise.
16554         (genrtl_finish_compound_stmt): Likewise.
16555         (genrtl_compound_stmt): Likewise.
16556         (genrtl_asm_stmt): Likewise.
16557         (genrtl_decl_cleanup): Likewise.
16558         (make_rtl_for_local_static): Moved from cp/decl.c.
16559         (emit_local_var): Likewise.
16560         (expand_stmt): Define.
16561
16562         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
16563         (c_expand_return): Likewise.
16564         (c_expand_start_case): Likewise.
16565
16566 2000-07-01  Richard Henderson  <rth@cygnus.com>
16567
16568         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
16569         with the low 13 bits set.
16570         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
16571         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
16572         of the low 13 bits into a CONST plus an adddi3.
16573         (load_symptr): Set RTX_UNCHANGING_P.
16574
16575 See ChangeLog.3 for earlier changes.