OSDN Git Service

* config/c4x/rtems.h: New file.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2
3         * config/c4x/rtems.h: New file.
4
5 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
6
7         * reload1.c (spill_failure): Take class of failed reload as argument
8         and print it.  Caller changed.
9                 
10 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11
12         * rs6000.h (SUBTARGET_DEFAULT): New macro.
13         (TARGET_SWITCHES): Allow subtargets to default switches.
14         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
15
16 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
17
18         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
19         in a main program.
20
21 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
22
23         * cccp.c (main): Define __STDC_VERSION__ as necessary.
24         * cppinit.c (cpp_handle_option): Likewise.
25
26         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
27         determine when to define.
28
29 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
30
31         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
32         cmove with mismatched test and data modes.
33
34 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
35
36         * c-typeck.c (c_expand_start_case): Don't warn for long switch
37         in system headers.
38
39 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40
41         * alias.c: Minor reformatting.
42         * flow.c: Likewise.
43         * regs.h: Likewise.
44         * stor-layout.c: Likewise.
45         * fold-const.c: Likewise.
46         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
47         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
48         not arg itself.
49         (size_int_wide): Cache nodes even if garbage collecting.
50         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
51         of SAVE_EXPR has no side effects.
52         * cse.c: Move a comment.
53         * tree.c: Minor reformatting.
54         (int_size_in_bytes): Return -1 if constant overflows.
55
56 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
57
58         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
59
60 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
61
62         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
63         after any change to c-parse.in, even if objc-parse.y didn't
64         change.  Oops.
65
66 1999-12-18  David S. Miller  <davem@redhat.com>
67
68         * toplev.c (rest_of_compilation): Restore BLOCK tree
69         reconstruction and branch shortening changes lost in
70         December 18th change.
71
72 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
73
74         * config/arm/linux-elf.h: Change all instances of 
75         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
76         * config/arm/uclinux-elf.h: Likewise.
77
78 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
79
80         * toplev.c (notice, vmessage, v_message_with_file_and_line,
81         v_message_with_decl, file_and_line_for_asm,
82         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
83         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
84         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
85         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
86         pfatal_with_name, fatal_io_error, need_error_newline,
87         last_error_function, last_error_tick, announce_function,
88         default_print_error_function, print_error_function,
89         report_error_function, fnotice, error_with_file_and_line,
90         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
91         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
92         warning_with_decl, warning_for_asm, warning, pedwarn,
93         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
94         diagnostic.c
95         (compile_file): Use fnotice instead of notice.  Adjust call.
96
97         * diagnostic.c: New file.
98
99         * Makefile.in (OBJS): Include diagnostic.o
100         (diagnostic.o): Define dependence.
101
102 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
103
104         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
105         Tweak formatting.
106
107 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
108         
109         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
110
111 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
112
113         * fixtests.c (is_cxx_header): New fn, split out of
114         double_slash_test.
115         (else_endif_label): Allow "#endif // comment" in C++ headers,
116         as determined by is_cxx_header.
117         * fixfixes.c (else_endif_label_fix): Update comment.
118         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
119         a tty.
120         * genfixes: Correct double thinko in commandline parsing.
121         * hackshell.tpl: Generate correct sh syntax for bypass
122         entries.
123
124         * inclhack.def (all): Whenever an inserted preprocessor
125         conditional is split over multiple lines, use double
126         backslashes in this file so the fixed header will be readable.
127
128         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
129         and add bypass entry for correct version of this header.
130         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
131         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
132
133         (hpux8_bogus_inlines): New fix, split from...
134         (ultrix_atof_param) ... here.
135         (math_expression): Add bypass entry keyed to glibc comment
136         indicating the problem has been dealt with; disable
137         unnecessary sed operations; update commentary.
138         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
139         add select and bypass entries, simplify shell operation.
140         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
141
142         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
143          ultrix_atof_param): Add select entry.
144         (stdio_va_list, sunos_mather_decl): Add bypass entry.
145         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
146         comments with the fixes they describe.
147
148         * c-parse.in (string action): Do not warn about ANSI string
149         concatenation in system headers.  Affects C parser only.
150         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
151
152 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
153
154         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
155         compiling libgcc2 the macro depends always on arch cpp defines.
156
157 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
158
159         * loop.c (insert_loop_mem): Don't record MEMs from inside 
160         EXPR_LISTs.
161
162 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
163
164         * regclass.c (regclass): Do not use flowgraph when not optimizing.
165
166         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
167         notes too, create one when replacement failed, attempt to simplify
168         resulting notes.
169         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
170         or REG_EQUIV notes.
171
172 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
173
174         * crtstuff.c (__dso_handle): Declare.
175         (__cxa_finalize): Likewise.
176         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
177         non-NULL.
178
179         * invoke.texi: Document -fuse-cxa-atexit.
180         
181         * tree.h (ptr_type_node): Document.
182         (const_ptr_type_node): Likewise.
183
184 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
185
186         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
187         (optimize_reg_copy_2): Likewise.
188         (optimize_reg_copy_3): Likewise.
189         (fixup_match_2): Likewise.
190         (regmove_optimize): Likewise.
191         (fixup_match_1): Liekwise.
192
193         * i386.md (HI to SImode promoting splitters): Rewrite.
194         (pushsf mem peep2): New.
195         (testhi to andhi peep2): Remove.
196         * i386.h (x86_promote_QImode): New.
197         (TARGET_PROMOTE_QImode): New.
198         (PREDICATE_CODES): Add promotable_binary_operator.
199         * i386.c (x86_promote_QImode0: New.
200         (promotable_binary_operator): New.
201         * i386-protos.h (promotable_binary_operator): New.
202
203         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
204         condition.
205         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
206
207 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
208
209         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
210         * function.c (insert_block_after_note): Remove.
211         (retrofit_block): Likewise.
212         (identify_blocks): Fix indentation.
213         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
214         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
215         * function.h (insert_block_after_note): Remove prototype.
216         (retrofit_block): Likewise.
217         * integrate.c (expand_inline_function): Don't call
218         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
219         just expand_start_bindings.  Use the block_map to remap old
220         NOTE_BLOCKs to new ones.
221         (integrate_decl_tree): Keep track of remapped blocks.
222         * integrate.h (struct inline_remap): Add block_map.
223         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
224         NOTE_BLOCK on the notes.
225         (expand_start_bindings): Rename to ...
226         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
227         (expand_end_bindings): Set NOTE_BLOCK.
228         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
229         reconstruct the BLOCK tree.
230         * tree.h (expand_start_bindings): Macroize.  Call ...
231         (expand_start_bindings_and_block): New function.
232         
233 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
234
235         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
236         to match the format.
237
238 1999-12-16  David S. Miller  <davem@redhat.com>
239
240         * expr.c (emit_move_insn_1): Only emit clobbers if one of
241         the outputs is a SUBREG.
242         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
243         change.
244
245         * config/sparc/sparc.c (epilogue_renumber): Add default case
246         to switch stmt.
247
248 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
249
250         * toplev.c (rest_of_compilation): Run branch shortening after
251         reg-stack.
252
253         * regclass.c (loop_depth): Remove
254         (scan_one_insn): Do not handle LOOP_NOTE insns.
255         (regclass): Go through basic blocks and set loop_cost
256
257 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
258
259         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
260
261 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
262
263         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
264         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
265         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
266
267 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
268
269         * loop.c (insert_loop_mem): Ignore memory clobbers.
270
271         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
272         to (OP A B).
273
274 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
275
276         * profile.c: Remove redundant #include "output.h".
277
278         * h8300.md (HImode preinc peephole): Fix typo.
279
280 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
281
282         * function.c (retrofit_block): Abort if we don't find a suitable insn.
283         (insert_block_after_note): Abort if we don't have a previous block.
284         Remove FN parameter.
285         * function.h: Adjust.
286
287 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
288
289         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
290         argument more than once.
291
292 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
293
294         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
295
296 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
297
298         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
299
300 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
301
302         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
303         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
304         update stack_alignment_needed.
305         (prepare_function_start): Initialize stack_alignment_needed
306         * function.h (struct function): Add field stack_alignment_needed.
307
308 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
309
310         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
311         Handle live_throughout / dead_or_set instead of live_before /
312         live_after.
313         (save_call_clobbered_regs): Get register livenessinformation from
314         chain->live_throughout.
315         (add_stored_regs): New function.
316         (insert_restore, insert_save): Add restored / saved registers to
317         dead_or_set.
318         * global.c (reg_dies): New parameter chain.
319         (reg_becomes_live): Third parameter is regs_set now.
320         Changed all callers.
321         (reg_dies): New parameter chain.  Changed all callers.
322         (build_insn_chain): Set live_throughout instead of
323         live_before / live_after.
324         * reload.h (struct insn_chain): Replace members live_before /
325         live_after with live_throughout / dead_or_set.
326         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
327         instead of live_before / live_after.
328         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
329         (order_regs_for_reload, find_reg, finish_spills): Likewise.
330         (choose_reload_regs_init): Likewise.
331         * stupid.c (current_chain, find_clobbered_regs): Delete.
332         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
333         instead of chain->live_before / chain->live_after.
334         (mark_hard_ref): New function.
335         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
336
337 1999-12-15  David S. Miller  <davem@redhat.com>
338
339         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
340
341 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
342
343         * flow.c (calculate_loop_depth): Make global, remove prototype,
344         rewrite to use new loop infrastructure.
345         (find_basic_block): Remove calculate_loop_depth call.
346         * toplev.c (rest_of_compilation): Call find_basic_block.
347         * output.h (calculate_loop_depth): Declare.
348
349         * flow.c (dump_flow_info): Dump loop_depth.
350         (flow_loops_nodes_find): Increase loop_depth for basic block in the
351         body.
352         (flow_loops_find): Initialize the loop_depth for each basic block.
353
354 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
355
356         * tree.c (decl_function_context): Handle virtual functions.
357
358         * tlink.c (scan_linker_output): Don't look in demangled name when
359         looking for linker output keywords.
360
361         * dwarfout.c (output_type): We can defer namespace-scope classes.
362
363 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
364
365         * regclass.c (record_reg_classes): Update comment for merging
366         register class preferences in reg->reg copies.  Tighten conditions
367         for merging register class preferences in reg->reg copies.
368
369 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
370
371         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
372
373 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
374
375         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
376         (INIT_SECTION_ASM_OP): Delete.
377         (FINI_SECTION_ASM_OP): Delete.
378         (STARTFILE_SPEC): Define to hold just crtbegin.o.
379
380 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
381
382         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
383         the abstract origin wasn't emitted.
384
385         * dwarf2out.c (class_scope_p): New fn.
386         (gen_subprogram_die): Use it.
387         (gen_variable_die): Use it.  Tweak logic.
388         (gen_struct_or_union_type_die): Check context_die to determine
389         if we're function-local.
390         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
391
392 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
393
394         * loop.c (check_dbra_loop): Can't reverse a biv that has
395         maybe_multiple set.
396
397 1999-12-14  Nick Clifton  <nickc@cygnus.com>
398
399         * config/arm/arm.c: Add support for -mcpu=arm720 command line
400         switch. 
401
402 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
403
404         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
405         for givs made from biv increments.
406
407 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
408
409         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
410         * alpha.c (override_options): Recognize -mcpu=ev67.
411         * alpha.h (CPP_CPU_EV67_SPEC): New.
412         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
413         (EXTRA_SPECS): Update.
414
415 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
416
417         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
418         appropriate for -lang-c89 and -std=*.
419         * cppinit.c (cpp_handle_option): Likewise.
420         (new_pending_define): New, split out from cpp_handle_option.
421         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
422         or enable trigraphs for -ansi/-std=*.
423
424         * ginclude/stdarg.h (__va_copy): New.
425         (va_copy): Don't define for C89.
426
427 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
428
429         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
430         for long long multiply-accumulate.
431
432 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
433
434         * regclass.c (scan_one_insn): Set loop_cost to 1 when
435         optimizing for size.
436
437 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
438
439         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
440         if something changed.  Back out that part of yesterday's changes.
441
442         * loop.c (loop_max_reg): New static variable.
443         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
444         max_reg_num.
445         (scan_loop): Call reg_scan_update whenever we may have added new
446         registers, and update loop_max_reg.
447
448 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
449
450         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
451         when source does not die.
452
453         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
454
455 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
456
457         * config/sparc/linux64.h (TARGET_LIVE_G0,
458         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
459         variants on Linux.
460         * config/sparc/linux.h (TARGET_LIVE_G0,
461         TARGET_BROKEN_SAVERESTORE): Likewise.
462         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
463         TARGET_BROKEN_SAVERESTORE): Likewise.
464
465         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
466         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
467         not %g2.
468         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
469         as sparc64 block profiling register.
470         * config/sparc/sparc.c (sparc_override_options): Allow block
471         profiling with -m32.
472         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
473         profiling register.
474         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
475         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
476         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
477
478         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
479         for sparc64.
480         * config/sparc/sparc.h: Likewise.
481         * config/sparc/xm-sysv4-64.h: Likewise.
482         * config/float-sparc.h: Likewise.
483         * glimits.h: Likewise.
484         * longlong.h: Likewise.
485
486         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
487         (ASM_IDENTIFY_GCC): Remove.
488
489 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
490
491         * combine.c (combine_simplify_rtx): Don't make shared rtl.
492         (simplify_logical): Likewise.
493
494 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
495
496         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
497         * cppfiles.c (INO_T_EQ): Likewise.
498
499 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
500
501         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
502         * i386/mingw32.h (LIB_SPEC): Likewise.
503         (STARTFILE_SPEC): Likewise.
504         * i386/uwin.h (LIB_SPEC): Likewise.
505         (STARTFILE_SPEC): Likewise.
506
507         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
508         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
509
510 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
511
512         * combine.c (combine_simplify_rtx): Fix order of checks for
513         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
514         
515 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
516
517         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out 
518         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
519
520 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
521
522         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
523         defined.
524         * regclass.c (inv_reg_alloc_order): New array.
525         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
526
527         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
528         counted_for_groups, counted_for_nongroups.  Add fields rld and
529         n_reloads.
530         * reload.c (push_secondary_reload): Don't set nongroup field of
531         new reloads.
532         (push_reload): Likewise.
533         (find_reloads): Delete code to compute nongroup fields.
534         * reload1.c (reload_insn_firstobj): New static variable.
535         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
536         users changed.
537         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
538         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
539         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
540         functions.
541         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
542         functions.
543         (struct hard_reg_n_uses): Deleted.
544         (potential_reload_regs): Deleted.
545         (init_reload): Initialize spilled_pseudos and pseudos_counted.
546         (reload): Don't try to allocate reload registers if we already know
547         we have to make another pass.  Call select_reload_regs.  Free memory
548         starting with reload_firstobj when starting another pass.
549         Don't allocate spilled_pseudos.
550         (calculate_needs_all_insns): Call copy_reloads for an insn that
551         needs reloads; don't call calculate_needs.
552         (spill_cost): New static array.
553         (used_spill_regs_local): New static variable.
554         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
555         to compute potential_reload_regs.
556         (find_reload_regs): Completely rewritten to use find_reg.
557         (allocate_reload_reg): Don't test counted_for_groups or
558         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
559         all cllers changed.
560         (choose_reload_regs): Add fallback code that uses the existing
561         register allocation from find_reload_regs.
562
563 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
564
565         * flow.c (create_edge_list): Cast xmalloc return value.
566
567 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
568
569         * doprnt.c: Remove incorrect comment closure.
570
571         * cse.c: Fix a few minor whitespace goofs.
572
573 1999-12-13  Don Bowman  <don@pixstream.com>
574
575         * mips/vxworks.h: Fix problem with comment termination.
576         (EXTRA_SECTIONS): Add in_sbss.
577         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
578
579 1999-12-12  David S. Miller  <davem@redhat.com>
580
581         * cse.c (struct cse_reg_info): Add hash_next member,
582         reorder rest of struct for better packing on 64-bit
583         hosts.
584         (cse_reg_info_tree): Kill.
585         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
586         REGHASH_FN): New custom pow2 hash mechanism.
587         (NBUCKETS): Kill.
588         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
589         use a pow2 hash table.
590         (get_cse_reg_info): Rework to use new REGHASH.
591         (new_basic_block): Likewise, use HASH_SIZE, and inline
592         free_element call.
593         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
594         and inline free_element call.
595         (lookup_as_function, insert, flush_hash_table, invalidate,
596         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
597         invalidate_for_call, use_related_value, find_comparison_args,
598         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
599         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
600         get_element): Kill.
601         
602 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
603
604         * cse.c (cse_basic_block): Free qty_table consistently.
605
606 1999-12-12  David S. Miller  <davem@redhat.com>
607             Jakub Jelinek    <jakub@redhat.com>
608
609         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
610         SUBREGs by hand, gen the appropriate hard reg directly.
611         (movtf reg/mem split): Likewise and alter_subreg on destination
612         if necessary.
613         (movtf mem/reg split): Similarly.
614         (movdf_cc_sp64): Rename from hidden pattern.
615         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
616         (movtf_cc_sp64, following split): New pattern and splitter.
617         (movdf_cc_reg_sp64): Rename from hidden pattern.
618         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
619         TARGET_HARD_QUAD.
620         (movtf_cc_reg_sp64, following split): New pattern and splitter.
621
622 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
623
624         * loop.c (load_mems): Don't hoist written floating point mem
625         if -ffloat-store.
626         
627 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
628
629         * except.h (struct eh_queue): Add `next' pointer.
630         (struct eh_status): Make x_ehqueue a pointer.
631         (push_ehqueue):  Declare.
632         (pop_ehqueue): Likewise.
633         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
634         pointer.
635         (expand_fixup_region_end): Likewise.
636         (expand_leftover_cleanups): Likewise.
637         (push_ehqueue): Define.
638         (pop_ehqueue): Likewise.
639         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
640         than doing it inline.
641         (expand_start_all_catch):  Adjust now that ehqueue is a
642         pointer.
643         (mark_eh_queue): Mark all level of the queue.
644         (mark_eh_status):  Adjust now that ehqueue is a
645         pointer.
646         (init_eh_for_function): Allocate ehqueue.
647         (free_eh_status): Free it.
648         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
649         expansion for a fixup.
650
651 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
652
653         * gthr-single.h (__gthread_active_p): Add prototype arguments.
654
655         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
656         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
657         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
658         function_ptr, getpagesize, __enable_execute_stack,
659         __enable_execute_stack, __clear_insn_cache,
660         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
661         _cleanup, _exit, __default_terminate, __terminate_func,
662         __terminate, __empty, __throw, new_eh_context,
663         eh_context_initialize, eh_context_static, eh_context_specific,
664         get_eh_context, __get_eh_context, __get_eh_info,
665         init_reg_size_table, eh_threads_initialize,
666         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
667         __unwinding_cleanup, throw_helper, __throw, __rethrow,
668         __pure_virtual): Add prototype arguments.       
669         (__bb_exit_func): Cast a sizeof to long when comparing against one.
670         Cast a signed value to unsigned long when comparing against one.
671         (new_eh_context): Wrap in _GTHREADS macro.
672         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
673         declaration.
674         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
675         (throw_helper): Initialize variables `handler_p' and `pc_p'.
676         
677 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
678
679         * combine.c (record_promoted_value): Remove unused variable
680         `links2'.
681
682         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
683
684         * global.c (record_conflicts): Likewise for `j'.
685
686         * genoutput.c (output_insn_data): Don't unnecessarily cast away
687         const-ness.
688
689 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
690
691         * i386-protos.h (output_387_binary_op, output_fix_trunc,
692         output_fp_compare): Constify a char*.
693
694         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
695         static prototypes.
696         (override_options, ix86_comp_type_attributes, print_operand,
697         output_387_binary_op, output_fix_trunc, output_fp_compare):
698         Constify a char*.
699         (ix86_sched_reorder): Mark parameter `clock_var' with
700         ATTRIBUTE_UNUSED.
701
702         * i386.h (DEBUG_PRINT_REG): Constify a char*.
703
704 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
705
706         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
707         operand, for use in the Java front-end.
708
709 1999-12-10  Ben Collins  <bcollins@debian.org>
710
711         * configure.in: Fix typo for "-64" in 64bit as check.
712         * configure: Rebuilt.
713         
714 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
715
716         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
717         appropriate.
718
719 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
720
721         * c-parse.in (string): With -Wtraditional, warn if ANSI string
722         concatenation is utilized.
723
724         * invoke.texi (-Wtraditional): Document it.
725
726 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
727
728         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
729         Cast a ptrdiff_t to long and pass it to printf with %ld.
730
731 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
732
733         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
734         68881, we have no 68881 registers at all.
735         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
736         value in a 68881 register if it is available.
737
738 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
739
740         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
741         for long long multiply-accumulate.
742
743 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
744
745         * loop.c (insert_loop_mem): Undo last change.
746
747 1999-12-10  David S. Miller  <davem@redhat.com>
748
749         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
750         New functions.
751         * config/sparc/sparc-protos.h: Add them.
752         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
753         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
754         constraints which use those helpers.
755         (EXTRA_CONSTRAINT): Use this new macro.
756         * md.texi: Update sparc target constraints documentation.
757         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
758         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
759         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
760         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
761         (movsf high/lo_sum split): Rework for new patterns.
762         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
763
764 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
765
766         * c-common.c (c_common_nodes_and_builtins): 
767         Create __builtin_ptrdiff_t and __builtin_size_t.
768
769 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
770
771         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
772
773 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
774
775         * regclass.c (globalize_reg): Re-instate test that allows
776         fixed registers to be declared as a variable even after functions
777         are defined.
778
779 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
780
781         * i386.md (cpu attribute): Add "athlon".
782         (athlon_decode): New attribute.
783         (Athlon scheduling units definitions): New.
784         (fcmp and shld patterns): Set athlon_decode to "vector".
785         * i386.c (athlon_cost): New.
786         (m_ATHLON): New.
787         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
788         x86_use_sahf): Set for Athlon.
789         (x86_use_fiop): Unset for Athlon.
790         (override_options): Define Athlon alignments and "athlon" name.
791         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
792         * i386.h (TARGET_ATHLON): New.
793         (enum processor_type): Add PROCESSOR_ATHLON.
794         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
795         for CPU_DEFAULT==5
796         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
797
798 1999-12-09  Andreas Jaeger  <aj@suse.de>
799
800         * loop.c (record_biv): Declare parameter as int.
801
802         * config/i386/i386-protos.h: Declare long_memory_operand.
803
804 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
805
806         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
807         EXPR_WITH_FILE_LOCATION.
808
809 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
810
811         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
812         in expander.
813
814         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
815
816         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
817         updating code.
818
819 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
820
821         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
822         default on linux64 again.
823         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
824         models for multilibing.
825         * genmultilib: Accept | as alternative separator within a set in
826         MULTILIB_OPTIONS.
827
828         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
829
830         * calls.c (precompute_arguments): Make sure initial_value contains
831         value pseudo which CSE expects.
832         * cse.c (struct set): New entry orig_src.
833         (cse_insn): Set it early on entry, use it for libcall EQUIV note
834         replacement.
835
836 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
837
838         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
839
840 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
841
842         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
843
844 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
845
846         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
847         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
848
849         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
850         if TARGET_ARCH32.
851
852         * longlong.h: Merge in changes from glibc.
853         Also don't clobber %g2 register in 32bit SPARC assembly, so that
854         -mno-app-regs libgcc can be compiled.
855         * libgcc2.c: Add defines so that the updated longlong.h
856         can be used in libgcc2.a. Also, make sure on most architectures
857         (at least on all which have optimized code in longlong.h defined
858         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
859
860 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
861
862         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
863         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
864         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
865         is GNU ld.
866         * configure: Rebuilt.
867
868 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
869
870         * alpha.c (secondary_reload_class): For !BWX, sub-simode
871         outputs require a register.
872
873 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
874
875         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
876         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
877         functions like dptoul will be resolved.
878         (libgcc2.a): Make sure that the object files from DPBIT are named
879         differently (prefix `_dp') from those that would be coming from
880         FPBIT.
881
882 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
883
884         * configure.in: When target is sparc* and tm_file contains 64,
885         test for 64bit support in assembler.  If not supported, remove
886         sparc/t-sol2-64 from target-dependent Makefile fragments.
887         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
888         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
889         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
890         * acconfig.h (AS_SPARC64_FLAG): Added.
891         * configure, config.in: Rebuilt.
892         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
893         support.  Use AS_SPARC64_FLAG.
894
895 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
896
897         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
898         suitable for holding OFmode values so that gcc works with complex
899         quad long doubles.
900         (hard_64bit_mode_classes): Likewise.
901
902         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
903         so that it is actually matched.
904         (sethi_di_medlow): Likewise.
905
906         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
907         as legitimate constant if -mvis.
908         * config/sparc/sparc.md (movtf): Likewise.
909         (clear_sf): Use const_double_operand.
910         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
911
912         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
913         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
914         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
915         routines, _Qp_* cannot be handled like that now.
916         (INIT_TARGET_OPTABS): Likewise.
917         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
918         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
919         sparc_emit_float_lib_cmp if ARCH64 and soft float.
920         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
921         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
922         divtf3, sqrttf3): New expanders.
923         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
924         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
925         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
926         non-_hq patterns.
927
928         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
929         * configure: Rebuilt.
930         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
931         -mcpu is given and we're doing 64bit compiles.
932
933 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
934
935         * loop.h (struct induction): Add multi_insn_incr.
936         * loop.c (basic_induction_var): New multi_insn_incr argument.
937         Set it if we search back through previous insns for the biv.
938         (record_biv): New multi_insn_incr argument; fill in struct induction.
939         (strength_reduce): Discard an iv with multiple bivs, any of
940         which require multiple insns to increment.
941
942 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
943
944         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
945         documentation.
946         
947 1999-12-06  David S. Miller  <davem@redhat.com>
948
949         * combine.c (check_promoted_subreg): Do not conditionalize this upon
950         PROMOTE_FUNCTION_RETURN.
951
952 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
953
954         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
955         and handle REG_UNUSED note on insn.
956
957         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
958         inner_mask instead of mask.
959
960 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
961
962         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
963         zero if there was an error.
964
965 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
966
967         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
968         output string.
969
970         * longlong.h: Fix clobbers in SPARC asm statements.
971
972         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
973         valid sethi operations when TARGET_ARCH64.
974
975         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
976         always use move_by_pieces to avoid infinite recursion.
977         (restore_fixed_argument_area): Likewise.
978
979         * combine.c (check_promoted_subreg, record_promoted_value): New
980         functions.
981         (combine_instructions): Use them to retain nonzero and sign bit
982         information after SUBREGs are eliminated by optimizations in
983         this pass if PROMOTE_FUNCTION_RETURN.
984
985         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
986         .register declaration. Don't use variables with __ prefixes.
987
988 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
989
990         * fold-const.c (optimize_bit_field_compare): Only use one mode
991         for both RHS and LHS in non-constant case.
992
993 1999-12-06  Nathan Sidwell  <nathan@acm.org>
994
995         * frame.c (start_fde_sort): Only allocate erratic array, if
996         linear one was allocated. Return allocated flag.
997         (fde_insert): Only insert, if there's a valid array.
998         (fde_end_sort): Split, sort and merge if linear and erratic
999         arrays exist, else just sort linear one.
1000         (search_fdes): New function. Linear search through original fde
1001         structure.
1002         (frame_init): Permit multiple initializations. Cope with
1003         memory shortages.
1004         (find_fde): Fallback on linear search, if failed to sort array.
1005         (__deregister_frame_info): Only free sorted array, if we
1006         allocated it.
1007
1008 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
1009
1010         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
1011
1012 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
1013
1014         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
1015
1016 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
1017
1018         * tree.h (special_function_p): Declare.
1019         * calls.c (special_function_p): Make it global.  Don't take `name'
1020         as a parameter.  Fix typo in 1999-11-28 change.
1021         (expand_cal): Adjust.
1022
1023 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
1024
1025         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
1026         * tree.h (EXPR_WFL_FILENAME): Define in terms of
1027         EXPR_WFL_FILENAME_NODE.
1028         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
1029         the TREE_CHAIN.
1030         * print-tree.c (print_note): Print TREE_PRIVATE and
1031         TREE_PROTECTED.
1032         
1033         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
1034         the original die cannot be found.
1035
1036         * varray.h (varray_head_tag): Add elements_used.
1037         (VARRAY_PUSH): New macro.
1038         (VARRAY_POP): Likewise.
1039         (VARRAY_TOP): Likewise.
1040         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
1041         types. 
1042         * varray.c (varray_init): Initialize elements_used.
1043         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
1044         (INTEGRATE_H): New variable.
1045         (integrate.o): Depend on INTEGRATE_H.
1046         (unroll.o): Likewise.
1047         
1048         * function.h (insert_block_after_note): Declare.
1049         * function.c (insert_block_after_note): Split out from ...
1050         (retrofit_block): ... here.
1051
1052         * stmt.c (expand_fixup): Fix typo in comment.
1053
1054 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1055
1056         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
1057         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
1058         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
1059         (regmove_optimize, fixup_match_1): Likewise.
1060
1061 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1062
1063         * flow.c (flow_loops_dump): Add missing argument when calling
1064         flow_loop_nested_p.
1065
1066 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
1067             Greg McGary  <gkm@gnu.org>
1068
1069         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
1070         (init_attributes): Add A_NO_LIMIT_STACK.
1071         (decl_attributes): Handle A_NO_LIMIT_STACK.
1072         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
1073         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
1074         Handle stack bounds checking.
1075         * flags.h (flag_stack_check): Use the word 'probe' rather than
1076         'check', because the flag doesn't actually cause any checking to
1077         be done.
1078         * function.c (expand_function_start): Set
1079         current_function_limit_stack.
1080         * function.h (struct function): Add limit_stack.
1081         (current_function_limit_stack): Define.
1082         * invoke.texi (Code Gen Options): Document new options.
1083         * rtl.h: Declare stack_limit_rtx.
1084         * toplev.c (stack_limit_rtx): New variable.
1085         (decode_f_option): Handle new options -fstack-limit-register=REG,
1086         -fstack-limit-symbol=IDENT, -fno-stack-limit.
1087         (main): Add stack_limit_rtx as GC root.
1088         * tree.h (DECL_NO_LIMIT_STACK): New macro.
1089         (struct tree_decl): New member no_limit_stack.
1090
1091         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
1092         stack_limit_rtx.
1093         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
1094         (conditional_trap+1): Get new mnemonic correct.
1095         (conditional_trap+2): New pattern for DImode traps.
1096
1097         * config/m68k/m68k.c (output_function_prologue): Handle
1098         stack_limit_rtx.
1099         * config/m68k/m68k.md (trap): New insn.
1100         (conditional_trap): New insn.
1101         * md.texi (Standard Names): Document `trap' and
1102         `conditional_trap'.
1103         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
1104         so a cc0 setter doesn't get emitted at some random place in the
1105         function.
1106
1107         * config/i960/i960.md (trap): New insn.
1108         (conditional_trap): New expander.
1109         (conditional_trap+1, conditional_trap+2): New insns for signed
1110         and unsigned cases.
1111         * config/i960/i960.c (i960_function_prologue): Use 
1112         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
1113
1114 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
1115                           Geoffrey Keating  <geoffk@cygnus.com>
1116
1117         * flags.h (warn_padded, warn_packed): Add global var decls.
1118         * toplev.c (warn_padded, warn_packed): Add global var defns.
1119         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
1120         * stor-layout.c (layout_record): Add local variable `type'
1121         to hold often-used TREE_TYPE (field).  Add local variable
1122         `unpacked_align' to hold alignment that would be in force
1123         if no `packed' attribute were present.  Warn if `packed' attribute
1124         is unnecessary, or even harmful.  Warn when gcc inserts padding
1125         to satisfy alignment requirements of members.  Use NULL_TREE
1126         when checking whether var_size is set.
1127         * invoke.texi: Document new flags.
1128
1129 1999-12-03  Nathan Sidwell  <nathan@acm.org>
1130
1131         * frame.c (fde_split): Reimplement to avoid variable sized array.
1132
1133 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1134
1135         * combine.c (try_combine): Before fixing up LOG_LINKS for the
1136         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
1137
1138 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
1139
1140         * invoke.texi: Document the mips option -mno-crt0
1141
1142 1999-12-02  Mike Karr  <mkarr@mathworks.com>
1143
1144         * cccp.c (argdata): Added free_ptr member.
1145         (macroexpand): Initialize free_ptr of each argument. When an
1146         argument's buffers are freed, if the argument's free_ptr corresponds
1147         to a buffer on the input stack, then return the free_ptr to that stack
1148         frame, otherwise, free it.
1149         (macarg): If an argument begins and ends on the same input stack level,
1150         then transfer the free_ptr of that buffer to the argument in case
1151         the stack is popped during the processing of a subsequent argument.
1152
1153 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
1154
1155         * loop.c (note_reg_stored): New function.
1156         (struct note_reg_stored_arg): New structure.
1157         (try_copy_prop): Change to be more conservative; only replace within
1158         one extended basic block and stop replacing if a store to the
1159         replacement reg is seen.
1160
1161 1999-12-02  Nick Clifton  <nickc@cygnus.com>
1162
1163         * config/fp-bit.c: Initialise all fields of the NAN
1164         constants. 
1165
1166         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
1167         to HANDLE_PRAGMA.
1168
1169 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
1170
1171         * i386.md (extend?f?f2): Force the input into a register, not
1172         the output.
1173
1174 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
1175
1176         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
1177         regclass' sake.
1178         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
1179         alternative because setting up 64bit constant is usually costly,
1180         especially when reload is in progress or completed.
1181         (movdf_const_intreg_sp64): Likewise.
1182         (movdf_const_intreg split): Fix building up constants when
1183         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
1184
1185 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
1186
1187         * combine.c (if_then_else_cond): Use const_true_rtx instead of
1188         const1_rtx for return values in EQ/NE comparison against (const_int 0)
1189         case.
1190
1191         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
1192         (asm_file_start): Emit .am33 into assembly file when compiling for
1193         the AM33.
1194         (print_operand_address): Handle POST_INC addresses.
1195         (can_use_return_insn, initial_offset): Check AM33 registers too.
1196         (expand_prologue): Check & save AM33 registers too.
1197         (expand_epilogue): Similarly.
1198         (secondary_reload_class): Handle AM33 specific secondary reloads.
1199         (output_tst): Emit efficient code for the AM33 too.
1200         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
1201         (TARGET_SWITCHES): Add -mam33 switch.
1202         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
1203         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
1204         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
1205         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
1206         (enum reg_class, REG_CLASS_NAMES): Likewise.
1207         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
1208         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
1209         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
1210         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
1211         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
1212         (HAVE_POST_INCREMENT): Define.
1213         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
1214         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
1215         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
1216         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
1217         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
1218         (zero_extend to SI from QI/HI): Likewise.
1219         (sign_extend to SI from QI/HI): Likewise.
1220         (mulsidi3, umulsidi3): New patterns for the AM33.
1221         (tstsi with zero extension from QI/HI): Add AM33 variants.
1222         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
1223         (return_internal_regs, store_movm): Handle new AM33 registers.
1224         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
1225         (LIBGCC, INSTALL_LIBGCC): Likewise.
1226         * invoke.texi: Document new flags.
1227
1228 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1229
1230         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
1231         (addsi3_carry): Likewise.
1232         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
1233         (sbbsi3_carry): Likewise.
1234         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
1235         (mulhi3): Likewise.
1236         (test?i_1): Ensure that only one operand is memory.
1237         (conditional move patterns): likewise.
1238         (shift and rotate patterns): Rewrite to expander, add
1239         "binary_operator_ok" to the condition.
1240
1241         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
1242         * i386.h (procesor_costs): Add movzbl_load field.
1243         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
1244         non-Q registers, accept DImode registers anywhere.
1245         (Q_CLASS_P): New.
1246         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
1247         * i386.c (*_cost): Set value for movxbl_load field.
1248
1249         * (addsi): New add to lea splitter.
1250         (ashlsi): Likewise.
1251         (lea to add/shift peep2): New.
1252
1253 1999-12-01  Mark Salter <msalter@cygnus.com>
1254
1255         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
1256         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
1257         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
1258
1259 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1260
1261         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
1262         * i386.md (movsi_xor): New.
1263         (movsi_or): New.
1264         (movsi_1, movhi_1, movqi_1): Remove.
1265         (movsi_2): Rename to movsi_1.
1266         (movhi_2): Rename to movhi_1.
1267         (movqi_2): Rename to movqi_1.
1268         (movdi_1): Remove; remove splitter.
1269         (movdi_2): Rename to movdi_1.
1270         (divmodsi4 splitter): Do not emit clobbers for move patterns.
1271         (long move peep2): Do not create QI or HI mode mov0s
1272         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
1273
1274         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
1275         rewrite splitters.
1276
1277         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
1278         (abs?f2_if): Likewise.
1279
1280 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
1281
1282         * ggc.h (ggc_test_and_set_mark): New macro.
1283         (ggc_mark_rtx): Use ggc_test_and_set_mark.
1284         (ggc_mark_tree): Likewise.
1285         (ggc_mark_rtvec): Likewise.
1286         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. 
1287
1288 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
1289
1290         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
1291         containing types.
1292         (decl_scope_table): Just an array of trees now.
1293         (push_decl_scope): Simplify.
1294         (dwarf2out_init): Adjust.
1295         (local_scope_p): New fn.
1296         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
1297         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
1298         (gen_typedef_die): Likewise.
1299         (gen_lexical_block_die): Don't call push/pop_decl_scope.
1300         (gen_inlined_subroutine_die): Likewise.
1301         (gen_abstract_function): Set current_function_decl temporarily.
1302         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
1303         Handle block extern declarations.  Don't call push/pop_decl_scope.
1304         (gen_decl_die): Fix logic for block externs.
1305
1306 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1307
1308         * calls.c (special_function_p): Remove `realloc' and add `strdup'
1309         to the list of functions which have attribute malloc by default.
1310
1311 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1312
1313         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
1314         integer constant does not match the traditional type, limit the
1315         warnings to cases where the base of the type is ten.
1316
1317         * invoke.texi (-Wtraditional): Document it.
1318
1319 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1320
1321         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
1322         * rs6000.md: Only access a CONST_INT with INTVAL
1323
1324 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
1325
1326         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
1327         (compute_nearerout): Likewise.
1328         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
1329         size_t to unsigned long for formatting.
1330
1331 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
1332
1333         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
1334         Allow the user to override call-used/fixed state of %g2-5
1335         registers from the command line (with the exception of %g4 for
1336         embedded model).
1337         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
1338         there is a higher chance of having a leaf function.
1339         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
1340         for ARCH64 which has %ccr register.
1341         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
1342         patterns.
1343         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
1344         insn accept into delay slot any insn which does not use %[ol]
1345         registers.  Accept some LO_SUM and shift left by 1 for the normal
1346         restore case.
1347         (output_function_epilogue): Likewise.
1348         (epilogue_renumber): Added argument which inhibits any renumbering
1349         and just tests if the rtx does not use any %[ol] registers.
1350         (output_return): Reflect above change.
1351
1352 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
1353
1354         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
1355         aggregate passing for sizes <= 16 bytes.
1356
1357 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
1358
1359         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
1360         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
1361         * reload.c (find_dummy_reload): Likewise.
1362         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
1363         * reload1.c (reload_as_needed): Likewise.
1364         * stupid.c (stupid_find_reg): Likewise.
1365         * tm.texi (Obsolete Register Macros): Delete section.
1366         * gmicro.h: Remove all traces of the two macros.
1367         * i386.h: Likewise.
1368         * m88k.h: Likewise.
1369         * mips.h: Likewise.
1370
1371 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
1372
1373         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
1374         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
1375         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
1376         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
1377         units for the sparclite86x chip.
1378         (flush): Revert October 14th change; add SImode specifically.
1379         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
1380         * invoke.texi: Document it.
1381
1382 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
1383
1384         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
1385         psimode_truncation_operand.
1386
1387         * config/mn10200/mn10200.c (psimode_truncation_operand): New
1388         function.  Return true if the operand is either a MEM valid
1389         for a PSImode address or not a MEM at all.
1390
1391         * config/mn10200/mn10200.md (truncsipsi2): Use
1392         psimode_truncation_operand.
1393
1394 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1395
1396         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
1397         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
1398         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
1399         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
1400         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
1401         (flow_loop_level_compute, low_loops_level_compute): Likewise.
1402         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
1403         * basic-block.h: Protect from multiple inclusion.
1404         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
1405         (struct loops, struct loop): Define structures.
1406         * sbitmap.c (sbitmap_a_subset_b_p): New function.
1407         * sbitmap.h: Protect from multiple inclusion.
1408         (sbitmap_a_subset_b_p): Add prototype.
1409         * Makefile.in (LOOP_H): New macro.
1410         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
1411
1412 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
1413
1414         * cppinit.c (CAT): The argument list of this macro may not contain
1415         spaces !
1416
1417 1999-11-29  David S. Miller  <davem@redhat.com>
1418
1419         Move quantity tables and register equivalence chains into
1420         per-qty and per-register structure arrays respectively.
1421         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
1422         qty_const_insn, qty_comparison_code, qty_comparison_const,
1423         qty_comparison_qty): Delete, replace with...
1424         (qty_table): this structure table.
1425         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
1426         (reg_eqv_table): this structure table.
1427         (make_new_qty): Add argument MODE.  Caller updated.
1428         Update to use qty_table and reg_eqv_table.
1429         (make_regs_eqv, delete_reg_equiv, insert_regs,
1430         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
1431         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
1432         cse_process_notes, cse_main, cse_basic_block): Likewise.
1433
1434 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1435
1436         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
1437         operation if C is negative.
1438         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
1439         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
1440         law for some divisions if constant is negative and change other
1441         divisions to the opposite rounding.
1442
1443         * expr.c (store_constructor_field): If bit position is not multiple
1444         of alignment of TARGET's mode, use BLKmode.
1445
1446         * expr.c (expand_expr_unaligned): Add more code from full case
1447         that is needed when OP0 is in a register.
1448
1449 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1450
1451         * dwarfout.c (field_byte_offset): Size can be zero if there was
1452         an error.
1453
1454 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
1455
1456         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
1457         (associate_trees): Delete unused var TEM.
1458         (extract_muldiv): Delete unused var CANCEL_P.
1459                         
1460         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
1461         (target_isinf, target_isnan, target_negative): Add return types to
1462         function definitions.
1463
1464 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
1465
1466         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
1467         * fixinc/hackshell.tpl: ditto
1468         * fixinc/fixtests.c(double_slash_test): more C++ header testing
1469         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
1470
1471 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
1472
1473         * reload.c (push_reload): When looking for a register to put into
1474         reg_rtx, make sure all hard regs in a multi-reg register are in the
1475         right class and nonfixed.
1476
1477         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
1478         pending_read_insns, pending_write_insns, pending_read_mems,
1479         pending_write_mems, pending_list_length, last_pending_memory_flush,
1480         last_function_call, sched_before_next_call): Move static variables
1481         into a structure.
1482         (bb_ prefixed versions): Replace with single array bb_deps.
1483         (struct deps): New structure.
1484         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
1485         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
1486         argument of type "struct deps *"; use that instead of global
1487         variables.  All callers changed.
1488         (init_rgn_data_dependencies): Delete function.
1489         (init_rtx_vector): Delete function.
1490         (init_deps): New function.
1491
1492         (free_pending_lists): Simplify, we always use the bb_deps array even
1493         if only one basic block.
1494         (compute_block_backward_dependences): Likewise.
1495         (schedule_region): Likewise.
1496
1497         (propagate_deps): New function, broken out of
1498         compute_block_backward_dependences.
1499         (compute_block_backward_dependences): Use it.
1500
1501         * alpha.md: Delete useless patterns that tried to work around
1502         register elimination problems.
1503
1504         * unroll.c (loop_iterations): Don't abort if iteration variable
1505         was made by loop.
1506
1507         From Joern Rennecke:
1508         * reload1.c (reloads_conflict): Reverse test comparing operand
1509         numbers when testing for conflict between output/outaddr reloads.
1510
1511 1999-11-29  David S. Miller  <davem@redhat.com>
1512
1513         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
1514         arg.
1515         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
1516
1517 1999-11-28  Robert Lipe  <robertl@cygnus.com>
1518
1519         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
1520         table from .fini into .dtor.                                
1521
1522 1999-11-28  Anthony Green  <green@cygnus.com>
1523
1524         * tree.h (struct tree_decl): Add malloc_flag.
1525         (DECL_IS_MALLOC): Define.
1526         * c-common.c (attrs): Add A_MALLOC attribute.
1527         (init_attributes): Add this attribute to the table.
1528         (decl_attributes): Handle malloc attribute.
1529         * calls.c (special_function_p): Check for the malloc attribute.
1530         * extend.texi (Function Attributes): Document malloc attribute.
1531
1532 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
1533
1534         * pa.md (reload shift-add patterns): Remove.
1535
1536 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1537
1538         * reorg.c (dbr_schedule) Print more statistics. Corrected
1539         problem when printing info when 3 delay slots are filled.
1540
1541 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
1542
1543         * combine.c (setup_incoming_promotions): Pass an outgoing
1544         regno to FUNCTION_ARG_REGNO_P which it expects.
1545
1546 1999-11-28  Andreas Jaeger  <aj@suse.de>
1547
1548         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
1549
1550 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
1551
1552         * cccp.c (do_include): Avoid initialization of automatic variable.
1553
1554         * integrate.c (mark_stores): Function definition made void, to match
1555         previous declaration.
1556         * regclass.c (dump_regclass): Ditto.
1557         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
1558
1559 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1560
1561         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
1562         known to be multiple of divisor.
1563
1564         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
1565
1566         * combine.c (try_combine): Add code to try to merge a set of a
1567         two-word pseudo to a constant with a setting of one of those words
1568         to a constant.
1569
1570         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
1571         (split_tree): Completely rework to make more general.
1572         (make_range, fold): Call negate_expr.
1573         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
1574         (fold, associate): Call new split_tree and associate_trees.
1575         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
1576
1577 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
1578
1579         * loop.c (try_copy_prop): Avoid GNU C extension.
1580
1581 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
1582
1583         * except.c (init_eh_for_function): Still zero eh_return_context,
1584         eh_return_stack_adjust, and eh_return_handler.
1585
1586         * except.h (eh_status): Adjust documentation for x_protect_list.
1587         (begin_protect_partials): New function.
1588         * except.c (enqueue_eh_entry): Fix formatting.
1589         (get_first_handler): Add consistency check.
1590         (add_partial_entry): Adjust usage of protect_list.
1591         (emit_cleanup_handler): Save and restore ehqueue.
1592         (expand_start_all_catch): Add comment.
1593         (begin_protect_partials): New function.
1594         (end_protect_partials): Adjust usage of protect_list.
1595         (init_eh_for_function): Use xcalloc.
1596
1597 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1598
1599         * c-common.c (check_format_info): Don't call a variadic function
1600         with a non-literal format string.
1601
1602         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
1603
1604         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
1605         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
1606         Likewise.
1607
1608         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
1609         Likewise.
1610
1611         * collect2.c (collect_wait): Likewise.
1612
1613         * dbxout.c (dbxout_type): Likewise.
1614
1615         * gcc.c (do_spec_1): Likewise.
1616
1617         * genemit.c (gen_insn, gen_expand): Likewise.
1618
1619         * genrecog.c (write_switch, write_subroutine): Likewise.
1620
1621         * mips-tfile.c (catch_signal, botch): Likewise.
1622
1623         * print-rtl.c (print_rtx): Likewise.
1624
1625         * toplev.c (default_print_error_function, report_error_function,
1626         _fatal_insn): Likewise.
1627
1628 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
1629
1630         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
1631
1632 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1633
1634         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
1635         operations when needed.
1636         * i386.md (fop_?f_comm): New.
1637         (fop_?f_1): Do not accept commutative operands.
1638
1639 1999-11-25  Andreas Jaeger  <aj@suse.de>
1640
1641         * config/mips/mips.md (casesi_internal): Add missing brace.
1642
1643 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
1644
1645         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
1646         (splice_child_die): Handle moving a child DIE from the declaration
1647         DIE of a class to its specification.
1648         (gen_struct_or_union_type_die): Use 'complete' consistently.
1649         (gen_decl_die): Generate the virtual context DIE first.
1650         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
1651
1652 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
1653
1654         * config/mips/mips.md (call_value_multiple_interanal1): New.
1655
1656 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
1657
1658         * dwarf2out.c (free_AT, free_die): New fns.
1659         (remove_children): Call them.
1660         (output_line_info): Disable removal of duplicate notes.
1661
1662         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
1663         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
1664         means pretend the type isn't defined.
1665         Don't defer emitting types.
1666         (gen_type_die_for_member): New fn.
1667         (gen_decl_die): Call it.
1668         (splice_child_die): New fn.
1669         (gen_member_die): Call it rather than generate duplicate dies.
1670
1671         Defer emitting information for the abstract instance of an inline
1672         until we either inline it or emit an out-of-line copy.
1673         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
1674         from output_inline_function if DECL_ABSTRACT is also set.
1675         (block_ultimate_origin): Likewise.
1676         (gen_abstract_function): New fn.
1677         (gen_decl_die, gen_inlined_subroutine_die): Call it.
1678         (gen_subprogram_die):  An abstract instance is not a declaration
1679         just because it doesn't match current_function_decl.  Don't abort
1680         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
1681         has an abstract origin.
1682         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
1683         abstract instance here.
1684
1685 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
1686
1687         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
1688         where we need to reload fpul from a system register.
1689
1690 1999-11-24  Andreas Jaeger  <aj@suse.de>
1691
1692         * config/mips/linux.h (CPP_PREDEFINES): Added.
1693         (LINK_SPEC): Remove -Y since this is only needed on sparc.
1694
1695 1999-11-24  Andreas Jaeger  <aj@suse.de>
1696
1697         * config/mips/linux.h (TARGET_VERSION): Added.
1698         (HANDLE_SYSV_PRAGMA): Added.
1699         (DEFAULT_VTABLE_THUNKS): Added.
1700
1701 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1702
1703         * local-alloc.c (qty): New structure and static variable.
1704         (qty_phys_reg): Remove, all references changed to qty.
1705         (qty_n_refs): Likewise.
1706         (qty_min_class): Likewise.
1707         (qty_birth): Likewise.
1708         (qty_death): Likewise.
1709         (qty_size): Likewise.
1710         (qty_mode): Likewise.
1711         (qty_n_calls_crossed): Likewise.
1712         (qty_alternate_class): Likewise.
1713         (qty_changes_size): Likewise.
1714         (qty_first_reg): Likewise.
1715         (alloc_qty): Rename variable QTY to QTYNO.
1716         (finf_free_reg): Likewise.
1717         (local_alloc): Allocate qty, do not allocate the removed variables.
1718
1719 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
1720
1721         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
1722         when -membedded-pic is passed.
1723
1724         * config/mips/mips.md (casesi): Handle 64-bit case too.
1725         (casesi_internal_di): New insn.
1726
1727         * config/mips/mips.c (embedded_pic_offset): Always make the
1728         embedded-pic subtractions relative to the name of the current
1729         function by use of the magic string "..CURRENT_FUNCTION".
1730         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
1731
1732 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
1733
1734         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
1735         of (const_int 0), when what we really care about is
1736         whether it's a zero constant anyway.
1737         (div_trap_mips16): Likewise.
1738
1739 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
1740
1741         * loop.c (loop_optimize): Always find_loop_tree_blocks and
1742         unroll_block_trees when generating debuggable code.
1743
1744         * tree.h (unsave_expr_1): New function.
1745         (lang_unsave): New variable.
1746         (get_callee_fndecl): New function.
1747         * tree.c (unsave_expr_now_r): New function.
1748         (lang_unsave): Define.
1749         (unsave_expr_1): Likewise.
1750         (unsave_expr_now_r): Split out from unsave_expr_now.
1751         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
1752         call unsave_expr_now_r.
1753         (get_callee_fndecl): Define.
1754
1755         * Makefile.in (gencheck): Don't depend on lang_tree_files.
1756         (gencheck.o): Do depend on lang_tree_files.
1757
1758         * integrate.h (copy_decl_for_inlining): New declaration.
1759         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
1760         (copy_decl_for_inlining): New function.
1761         (integrate_parm_decls): Use it.
1762         (integrate_decl_tree): Likewise.
1763
1764 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
1765
1766         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split 
1767         the second two from the first.
1768         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
1769         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
1770         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than 
1771         ISA_HAS_FP4.
1772         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
1773         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
1774         ISA_HAS_FP4.
1775
1776 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
1777
1778         * pa.md (call_internal_symref, call_value_internal_symref): No mode
1779         needed on the address operand.
1780         * pa.c (call_operand_address): Check for the correct mode.
1781
1782 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
1783
1784         * loop.c: Include "basic-block.h".
1785         (try_copy_prop, replace_loop_reg): New functions.
1786         (load_mems): Detect registers that just hold copies of the hoisted
1787         mem, and call try_copy_prop to eliminate them.
1788         * Makefile.in (loop.o): Update dependencies.
1789
1790 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
1791
1792         * Makefile.in (gencheck.o): Depend on gencheck.h.
1793         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
1794         (insn-peep.o): Depend on except.h and function.h.
1795         (insn-attrtab.o): Depend on RECOG_H.
1796         (insn-output.o): Depend on toplev.h and flags.h.
1797         (gengenrtl.o): Depend on real.h.
1798         (gen-protos.o): Depend on cpplib.h and cpphash.h.
1799         Unify all dependencies to be on RECOG_H rather than recog.h.
1800
1801 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1802
1803         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
1804         * configure.in: Try building a bi-arch 32/64-bit compiler on
1805         sparc-*-solaris2.7 and higher.
1806         * configure: Rebuild.
1807
1808 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
1809
1810         * config/freebsd.h: New, FreeBSD architecture independent file.
1811         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
1812         independent pieces.
1813         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
1814         directly by i386/freebsd.h.
1815         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
1816         independent configuration file.
1817         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
1818         directly by i386/freebsd.h.
1819         * configure: Rebuilt.
1820
1821         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
1822         which is in the user's namespace.
1823         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
1824         `i386' which is not in our namespace.
1825
1826 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
1827
1828         * invoke.texi (ARM Options): Add in -mno-alignment-traps
1829
1830 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
1831
1832         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
1833         (add_dwarf_attr, add_child_die): Just push onto the front.
1834         (reverse_die_lists): New fn.
1835         (add_sibling_attributes): Use it.
1836         (push_decl_scope): Reorganize.
1837         (add_name_and_src_coords_attributes): Don't set file and line for
1838         an artificial decl.
1839         (gen_subprogram_die): An artificial function doesn't need to match
1840         file and line.
1841         (gen_compile_unit_die): Return the generated die.  Only add 
1842         AT_comp_dir if the filename is relative.
1843         (remove_AT): Simplify loop.  Also free string values.
1844         (output_die): A DIE ref can't be null.
1845         (output_value_format, value_format): Take a dw_attr_ref.
1846         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
1847         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
1848         AT_addr, AT_lbl): New fns.
1849         (various): Use them.
1850         (various): Constify.
1851
1852 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1853
1854         * combine.c (combine_simplify_rtx): When handling a SUBREG,
1855         take SUBREG_WORD into account.
1856         (if_then_else_cond): Likewise.
1857
1858 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
1859
1860         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising 
1861         clause from BSD license, pursuant with
1862
1863           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
1864
1865 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
1866
1867         * loop.c (load_mems): Reformat slightly.
1868         * basic-block.h (regset_head): New typedef.
1869         (INIT_REG_SET): New macro.
1870
1871 1999-11-22  Bruce Korb  <autogen@linuxbox.com
1872
1873         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
1874         (mips-dec-bsd*): non-functional code
1875         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
1876
1877         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
1878         added three replacement fixes
1879         (no_double_slash): removed comments that are not (any longer) pertinent
1880         (bad_lval): this fix currently runs against many files.
1881         The comment seems to indicate that we should select for files
1882         containing 'pragma extern_prefix'.
1883
1884         * fixinc/fixinc.x86-linux-gnu: deleted
1885         * fixinc/inclhack.sh:  regen
1886         * fixinc/fixincl.x:  regen
1887         * fixinc/fixincl.sh:  regen
1888
1889 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
1890
1891         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
1892         its code is INSN and it has no notes.
1893
1894 1999-11-22  Andrew Haley  <aph@cygnus.com>
1895
1896         * varasm.c (function_defined): Remove.
1897         (make_function_rtl): Don't set function_defined.
1898         (make_decl_rtl): Remove global register warning.
1899         * regclass.c (no_global_reg_vars): New variable.
1900         (globalize_reg): Warn if function has already been defined.
1901         (regclass_init): Set no_global_reg_vars.
1902
1903 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1904
1905         * regclass.c (reg_pref): New structure and static variable
1906         (prefclass): Delete.
1907         (altclass): Delete.
1908         (all uses of prefclass and altclass): Use reg_pref instead.
1909
1910 1999-11-21  Nick Clifton  <nickc@cygnus.com>
1911
1912         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
1913         -malignment-traps. 
1914         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
1915         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
1916         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
1917
1918 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
1919
1920         * varasm.c (output_constructor): Solve problem with long long
1921         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
1922
1923 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1924
1925         * global.c (allocno): New structure and static variable.
1926         (allocno_reg): Remove, all references replaced by allocno.
1927         (allocno_size): Likewise.
1928         (hard_reg_conflicts): Likewise.
1929         (hard_reg_preferences): Likewise.
1930         (hard_reg_copy_preferences): Likewise.
1931         (hard_reg_full_preferences): Likewise.
1932         (regs_someone_prefers): Likewise.
1933         (allocno_calls_crossed): Likewise.
1934         (allocno_n_refs): Likewise.
1935         (allocno_live_length): Likewise.
1936         (find_reg): Rename ALLOCNO to NUM.
1937
1938         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
1939         references updated.
1940         (may_move_out_cost): New variable.
1941         (init_reg_sets_1): Initialize may_move_out_cost.
1942         (record_reg_classes): Use may_move_out_cost.
1943
1944         * regclass.c (dump_regclass): New function.
1945         (regclass): New parameter DUMP, call DUMP_REGCLASS.
1946         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
1947         pass rtl_dump_file to regclass.
1948         * rtl.h (regclass): Update prototype.
1949
1950 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1951
1952         * i386.md (neg, not and abs patterns): Revmap to use
1953         ix86_expand_unary_operator and ix86_unary_operator_ok.
1954         (add?f and sub?f expanders): Force operand 1 to register.
1955         * i386.c (ix86_expand_unary_operator): Rewrite.
1956         (ix86_unary_operator_ok): Ensure that memory operands
1957         match real opcode.
1958         (ix86_binary_operator_ok): Do not allow operand 1 to
1959         come into memory and operand 0 not.
1960         (ix86_expand_binary_operator): Ensure that
1961         src1 is not non-matching memory.
1962
1963         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
1964         to support integer registers and memory.
1965         (abss?2_integer): Likewise.
1966
1967         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
1968         (REG_CLASS_NAMES): Likewise.
1969         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
1970         and GENERAL_REGS.
1971         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
1972         (movsf): Likewise; unify 4th and 5th alternative.
1973         (pushdf): Likewise.
1974         (movdf_1): Likewise; rename to movdf_integer.
1975         (pushxf): Likewise; rename to pushxf_integer; fix output template;
1976         remove redundant splitter.
1977         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
1978         (movdf_nointeger): New.
1979         (movxf_nointeger): New.
1980         (pushxf_nointeger): New.
1981
1982         * i386.md (extend?f?f): Split to expander and pattern, refuse two
1983         memory operands in patterns.
1984         (fop*): Refuse two memory operands.
1985
1986         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
1987         on !TARGET_USE_CLTD CPUs.
1988
1989 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
1990
1991         * extend.texi: Document C++ restricted pointers and references. 
1992
1993 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
1994
1995         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
1996         (invalidate_skipped_set): Call it unconditionally.
1997         (cse_set_around_loop): Likewise.
1998
1999 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
2000
2001         * rtl.texi (mem): Add documentation for alias-set argument 
2002         to RTX `mem'.
2003
2004 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
2005
2006         * i386.h (struct_processor_costs): New fields int_load, int_store,
2007         fp_move, fp_load and fp_store
2008         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
2009         fp->int moves
2010         (MEMORY_MOVE_COST): New macro.
2011         * i386.c (386_cost): Define new fields.
2012         (i486_cost): Likewise.
2013         (pentium_cost): Likewise.
2014         (pentiumpro_cost): Likewise.
2015         (k6_cost): Likewise.
2016
2017 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
2018                           Geoffrey Keating  <geoffk@cygnus.com>
2019
2020         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
2021
2022         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
2023         MASK_ALIGN_INT.
2024         
2025         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
2026         (TARGET_STRICT_ALIGNMENT): New macro.
2027         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
2028         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
2029         * invoke.texi (M680x0 Options): Document -mstrict-align.
2030
2031 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
2032                           Richard Henderson  <rth@cygnus.com>
2033
2034         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
2035         (ix86_split_long_move): Declare.
2036         * i386.c (split_xf, ix86_split_movdi): Remove.
2037         (ix86_split_to_parts, ix86_split_long_move): New.
2038         * i386.md (dimode move splitters): Use ix86_split_long_move.
2039         (dfmode move splitters): Likewise.
2040         (xfmode move splitters): Likewise.
2041         (movsf_1): Allow F->r.
2042         (movdf_1, movxf_1): Allow F->ro.
2043
2044 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
2045
2046         * except.h (struct eh_entry): Add goto_entry_p.
2047         (eh_region_from_symbol): Remove prototype.
2048         * except.c (find_func_region_from_symbol): New function.
2049         (emit_cleanup_handler): Likewise.
2050         (eh_region_from_symbol): Make it static.
2051         (add_new_handler): Verify the argument.
2052         (find_func_region): Update comment.
2053         (expand_eh_region_end): Expand handlers here, rater than waiting
2054         until expand_leftover_cleanups or start_all_catch.
2055         (expand_leftover_cleanups): Don't expand here.
2056         (expand_start_all_catch): Or here.
2057         (expand_rethrow): Check the return value from find_func_region.
2058         * function.c (expand_function_end): Emit the catch_clauses.
2059         
2060 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
2061
2062         * integrate.c (expand_inline_function): Add necessary check for NULL.
2063
2064 1999-11-18  Nick Clifton  <nickc@cygnus.com>
2065
2066         * toplev.c (main): Correctly detect an unrecognised option.
2067
2068         * cppinit.c (cpp_handle_option): Do not claim to have consumed
2069         a -f option if it has not been recognised.
2070
2071 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
2072
2073         * basic-block.h (update_life_extent): Remove trailing comma on
2074         enumeration type list.
2075
2076 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2077
2078         * varasm.c (output_constructor) Solved problem with long long
2079         bitfields. Corrected calculating this_time and shift. Also
2080         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
2081
2082 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
2083
2084         * flow.c (split_edge): Take looping structure into account when
2085         determining where to put the new block note.
2086
2087 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
2088
2089         * Makefile.in (ggc-none.o): Provide host specific version if
2090         needed.
2091
2092 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
2093
2094         * cse.c (delete_trivially_dead_insns): Identify no-op insns
2095         containing subregs too.
2096
2097 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
2098
2099         * invoke.texi: Add documentation for -muninit-const-in-rodata.
2100         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
2101         (TARGET_UNINIT_CONST_IN_RODATA): Define.
2102         (text_section): Add switches -munint-const-in-rodata and
2103         -mno-uninit-const-in-rodata.
2104         (ASM_OUTPUT_COMMON): Remove.
2105         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
2106         const objects should be placed in read-only data. Otherwise declare
2107         them in common.
2108
2109 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
2110
2111         * jump.c (jump_optimize_1): Revert last change.
2112
2113 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
2114
2115         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
2116         test if optimizing for size.
2117
2118 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
2119
2120         * Makefile.in (toplev.o): Depend on except.h.
2121         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
2122
2123 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
2124
2125         * i386.md (divmodsi4): Rewrite to expander.
2126         (*divmodsi4_nocltd): New.
2127         (*divmodsi4_cltd): New.
2128         (divmodsi4 splitter): Handle the case when input comes in edx.
2129         (udivmodhi4): Do not use constraints in exander.
2130         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
2131
2132 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
2133
2134         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
2135         for the common case.
2136
2137 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
2138
2139         * explow.c (hard_function_value): Add outgoing argument.
2140         * expr.h (hard_function_value): Declare it.
2141         * calls.c (expand_call, emit_library_call_value): Update callers.
2142         * function.c (aggregate_value_p): Ditto.
2143         (diddle_return_value): Must look at the outgoing registers
2144         on archs with register windows.
2145
2146 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
2147
2148         * alpha.c (alpha_build_va_list): Use make_lang_type and
2149         initialize TYPE_NAME for the va_list record.
2150
2151         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
2152
2153         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
2154         for printing.
2155         * ggc.h (struct ggc_statistics): Rearrange elements for better
2156         packing on 64-bit hosts.
2157         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
2158         (compute_nearerout): Likewise.
2159
2160 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
2161
2162         * config/rs6000/rs6000.c (first_reg_to_save): Save
2163         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
2164
2165 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
2166
2167         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
2168         notion of nesting to find the DIE for a type or function.
2169         DIEs can go in limbo even if we got a context_die.
2170         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
2171         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
2172         for local type.
2173         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
2174         (gen_type_die): Writing out the context doesn't cause member class
2175         template instantiations to be written out as well.
2176
2177 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
2178
2179         * rs6000.h (ASM_OUTPUT_DEF): New.
2180         Based on proposed addition from David Edelsohn.
2181
2182 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
2183             Bruce Korb  <autogen@linuxbox.com>
2184
2185         * fixinc/inclhack.def
2186         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
2187         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
2188                 in net/inet.h.
2189         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
2190         (svr4_endian): enabled with SVR5
2191         (svr4_mkdev): simplified syntax and enabled with SVR5
2192
2193 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
2194
2195         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
2196         * configure: Rebuilt.
2197         * config/t-freebsd-thread: New file.
2198
2199 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
2200
2201         * i386.c (ix86_decompose_address): Verify the base is a REG
2202         before trying to examine its register number.
2203
2204         * basic-block.h: Remove all #defines and prototypes related to
2205         integer lists.
2206         (free_bb_mem, compute_preds_succs): Remove prototype.
2207         * rtl.h (free_bb_mem): Remove prototype.
2208         * flow.c (alloc_int_list_node); Remove function.
2209         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
2210         (compute_preds_succs, free_bb_mem): Likewise.
2211         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
2212         * toplev.c (rest_of_compilation): Likewise.
2213         * haifa-sched.c (build_control_flow): Use flow generated edge
2214         list to build the haifa specific edge list.
2215         (find_rgns): Use new CFG data structures instead of pred/succ lists.
2216         (schedule_insns): Do not build pred/succ lists anymore.  Instead
2217         build the edge table.
2218
2219         * basic-block.h (dump_bb_data): Remove declaration.
2220         * flow.c (dump_bb_data): Remove function.
2221         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
2222         (sbitmap_union_of_predsucc): Likewise.
2223
2224         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
2225         argument.  All callers changed.
2226         (delete_null_pointer_checks_1): No longer need to compute the
2227         pred/succ lists.
2228
2229         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
2230         All callers changed.
2231         (pre_expr_reaches_here_p_work): Likewise.
2232         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
2233         * lcm.c (compute_laterin): Fix initialization of LATER.
2234         (compute_nearerout): Similarly for NEARER.
2235
2236 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2237
2238         * cse.c (set_nonvarying_address_components): Delete unused function.
2239         (refers_to_p): Likewise.
2240
2241 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
2242
2243         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
2244         needed.
2245
2246 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2247
2248         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
2249         definition in do while (0).
2250
2251 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
2252
2253         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
2254
2255 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
2256
2257         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
2258
2259 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
2260
2261         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
2262         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
2263         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
2264         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
2265
2266         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
2267         saved on the stack.  Output more accurate stack frame statistics
2268         into assembler file.
2269
2270 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
2271
2272         * genextract.c (record_insn_name): New function.
2273         (get_insn_name): No longer a stub.
2274         (main): Call record_insn_name for each insn.  After each label
2275         written, print the insn name in a comment.
2276
2277 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2278
2279         * output.h (const_section, init_section, fini_section): Add
2280         prototypes.
2281
2282         * alpha/elf.h (const_section): Delete declaration.
2283
2284         * svr4.h (const_section): Likewise.
2285
2286 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
2287
2288         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
2289         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
2290         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
2291         expressions.
2292         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
2293         variable-sized array bounds.
2294         
2295 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
2296
2297         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
2298         ASM_OUTPUT_LABEL.
2299
2300 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2301
2302         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
2303         addresses the same way GO_IF_LEGITIMATE_INDEX does. 
2304
2305 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2306
2307         * cse.c (hash_arg_in_struct): Delete.
2308         (struct table_elt): Delete elt in_struct.
2309         (struct set): Delete elt src_in_struct.
2310         (merge_equiv_classes): Don't set either hash_arg_in_struct or
2311         the corresponding in_struct elts.
2312         (canon_hash): Likewise.
2313         (safe_hash): Likewise.
2314         (find_best_addr): Likewise.
2315         (record_jump_cond): Likewise.
2316         (cse_insn): Likewise.
2317
2318 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
2319
2320         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
2321
2322         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
2323         unsigned types.
2324
2325 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
2326
2327         * function.c (diddle_return_value): Put back check that the DECL_RTL
2328         for the function is a register.
2329
2330         * function.c (diddle_return_value): Use hard_function_value to
2331         get an rtx suitable for use in the USE/CLOBBER insn.
2332
2333         * global.c (global_conflicts): Update comments.
2334         (record_conflicts): No need to record conflicts between pseudos here.
2335
2336 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
2337
2338         * fixinc/fixincl.c: Added verbose levels for status messages
2339
2340 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2341
2342         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
2343         operand as argument to expand_and or expand_binop.
2344
2345 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
2346
2347         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
2348         gcc_add_string_root.
2349
2350 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
2351
2352         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
2353
2354 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
2355
2356         * flow.c (compute_flow_dominators): Initially put all blocks on
2357         the worklist.
2358         * lcm.c (compute_antinout_edge, compute_available): Similarly.
2359         * gcse.c (compute_cprop_avinout): Remove.
2360         (compute_cprop_data): Use compute_available.
2361         (delete_null_pointer_checks_1): Use compute_available.
2362
2363         * basic-block.h (compute_available): Returns a void now.
2364         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
2365         to return a value anymore.
2366         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
2367         worklists.  Fix boundary cases. Compute maximal solutions.
2368         (compute_laterin, compute_nearerout): Similarly.
2369
2370         * dwarf2out.c (add_AT_location_description): Allow
2371         (mem (plus (pseudo) (...)) too.
2372
2373 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
2374
2375         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
2376
2377 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
2378                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2379
2380         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
2381
2382         * gansidecl.h: Likewise.
2383
2384         * rtl.c: Likewise.
2385
2386         * rtl.h: Likewise.
2387
2388         * toplev.h: Likewise.
2389
2390         * tree.c: Likewise.
2391
2392         * tree.h: Likewise.
2393
2394         * varray.c: Likewise.
2395
2396         * varray.h: Likewise.
2397
2398 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
2399
2400         * gcov.c (struct arcdata): Add hits and total, remove prob.
2401         (output_branch_counts): New.
2402         (process_args): Set output_branch_counts if -c.
2403         (calculate_branch_probs): Store hits and total instead of
2404         percentage.
2405         (output_data): Emit counts if output_branch_counts is true.
2406         * gcov.texi (Invoking Gcov): Document -c switch..
2407
2408 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
2409
2410         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
2411         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
2412
2413 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
2414
2415         * invoke.texi (C Dialect Options): Add missing builtins from
2416         c-common.c to list.
2417         * extend.texi (Other Builtins): Copy to this list.
2418
2419 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2420
2421         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
2422         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
2423         redundant bitmap.h.
2424
2425 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
2426
2427         * flow.c (compute_flow_dominators): No longer treat basic block 0
2428         or (n_basic_blocks - 1) specially.  Clear the AUX field before
2429         starting computation of doms/pdoms.  Fix initial state for pdoms.
2430
2431 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2432
2433         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
2434         match rtl.o's: added ggc.h and toplev.h
2435         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
2436         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
2437         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
2438
2439 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
2440
2441         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
2442         from HAVE_DOS_BASED_FILESYSTEM.
2443         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
2444         HAVE_DOS_BASED_FILESYSTEM.
2445         (main): Likewise.
2446         (split_directories): Only special-case DOS file names if
2447         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
2448         instead of explicit tests.  Conditionalize on !VMS.
2449         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
2450         tests.  Conditionalize on !VMS.
2451         (process_command): Only use make_relative_prefix if !VMS.
2452         (free_split_directories): Conditionalize on !VMS.
2453         (DIR_UP): Conditionalize on !VMS.
2454
2455 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2456
2457         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
2458
2459 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2460
2461         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
2462         case.
2463
2464 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
2465
2466         * invoke.texi (Environment Variables): Document relative path
2467         lookup.
2468         * gcc.c (DIR_UP): If not defined, define as "..".
2469         (standard_bindir_prefix): New static, holds target location to
2470         install binaries.
2471         (split_directories): New function to split a filename into
2472         component directories.
2473         (free_split_directories): New function, release memory allocated
2474         by split_directories.
2475         (make_relative_prefix): New function, make a relative pathname if
2476         the compiler is not in the expected location.
2477         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
2478         can figure out an appropriate prefix from argv[0].
2479         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
2480         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
2481         STANDARD_BINDIR_PREFIX.
2482
2483 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2484
2485         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
2486         in c4x.c.
2487         * config/c4x/c4x.h: Moved prototypes to c4x.h.
2488         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
2489         c4x_secondary_memory_needed) Delete.
2490         (fp_zero_operand): Add mode argument.
2491
2492 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
2493
2494         * reload1.c (reload_reg_free_for_value_p): Don't use a register
2495         that is in reload_reg_used.
2496
2497 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
2498
2499         * config/arm/arm-protos.h: New file: Prototypes for functions
2500         defined in arm.c and pe.c.
2501         * config/arm/arm.h: Fix compile time warnings.
2502         * config/arm/arm.c: Fix compile time warnings.
2503         * config/arm/pe.h: Fix compile time warnings.
2504         * config/arm/aout.h: Fix compile time warnings.
2505
2506 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
2507
2508         * config/m32r/m32r-protos.h: New file: Prototypes for functions
2509         defined in m32r.c
2510         
2511         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
2512         Add support for subtargets.
2513         Add prototypes for new predicates.
2514         Add scheduling macros.
2515         
2516         * config/m32r/m32r.c: Fix compile time warnings.
2517         (int8_operand): New predicate function.
2518         (reg_or_cmp_int16_operand): New predicate function.
2519         (extend_operand): New predicate function.
2520         (m32r_adjust_code): New scheduling function.
2521         (m32r_adjust_priorty): New scheduling function.
2522         (m32r_sched_init): New scheduling function.
2523         (m32r_sched_reorder): New scheduling function.
2524         (m32r_sched_variable_issue): New scheduling function.
2525         (direct_return): New codegen function.
2526         (m32r_not_same_reg): New rtl testsing function.
2527         
2528         * config/m32r/m32r.md: Fix compile time warnings.
2529         Add support for pre decrement and post increment memory
2530         references.
2531         Add S<cc> patterns.
2532         Add fabs patterns.
2533         
2534 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2535
2536         * global.c (EXECUTE_IF_CONFLICT): Don't define.
2537         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
2538         (find_reg): Likewise.
2539
2540 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
2541
2542         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
2543         to avoid assembler errors.
2544
2545 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
2546
2547         * config/v850/v850-protos.h: New file: Prototypes for functions
2548         defined in v850.c
2549         * config/v850/v850.h: Move prototypes to v850-protos.h
2550         * config/v850/v850.c: Move prototypes to v850-protos.h
2551         * config/v850/v850.md: Fix compile time warnings.
2552
2553         * config/fr30/fr30-protos.h: New file: Prototypes for functions
2554         defined in fr30.c
2555         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
2556         * config/fr30/fr30.c: Fix compile time warnings.
2557         * config/fr30/fr30.md: Fix compile time warnings.
2558
2559 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
2560
2561         * tree.h (get_containing_scope): Declare it.
2562         * tree.c (get_containing_scope): New fucntion.
2563         (decl_function_context): Use it.
2564         * toplev.c (rest_of_compilation): Use get_containing_scope.
2565
2566 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2567
2568         * Makefile.in (rtl.o): Depend on toplev.h.
2569
2570 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
2571
2572         * cse.c (delete_trivially_dead_insns): Replace alloca with
2573         xmalloc/xcalloc.
2574         * except.c (update_rethrow_references): Likewise.
2575         (init_eh_nesting_info): Likewise.
2576         * function.c (identify_blocks): Likewise.
2577         * gcse.c (dump_hash_table): Likewise.
2578         * graph.c (print_rtl_graph_with_bb): Likewise.
2579         * loop.c (combine_movables): Likewise.
2580         (move_movables): Likewise.
2581         (count_loop_regs_set): Likewise.
2582         (strength_reduce): Likewise.
2583         * profile.c (compute_branch_probabilities): New function, split
2584         out from ...
2585         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
2586         * regclass.c (regclass): Likewise.
2587         * regmove.c (regmove_optimize): Likewise.
2588         * toplev.c (compile_file): Likewise.
2589         (main): Don't mess with the stack rlimit.
2590         
2591 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
2592
2593         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
2594         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
2595
2596 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
2597
2598         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
2599
2600 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
2601
2602         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
2603         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
2604         macro expansion.
2605
2606 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
2607
2608         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
2609
2610 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
2611
2612         * gcse.c (post_dominators): Kill.
2613         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
2614         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
2615         pass in a pdom array since we do not need pdoms.
2616         * haifa-sched.c (schedule_insns): Similarly.
2617         * flow.c (compute_dominators): Remove dead function.
2618         (compute_flow_dominators): Do not compute doms or pdoms if the
2619         caller does not request them.  Split up loop to build doms and
2620         pdoms.  Use a worklist to compute doms and pdoms.
2621         * basic-block.h (compute_dominators): Remove prototype.
2622
2623 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
2624
2625         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
2626         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
2627         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
2628         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
2629         (cant_move, fed_by_spec_load, is_load_insn): Remove.
2630         (schedule_region): Remove unused variable.
2631         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
2632
2633 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
2634
2635         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
2636         (update_equiv_regs): Likewise.
2637         (block_alloc): Likewise.
2638         * reg-stack.c (reg_to_stack): Likewise.
2639         (convert_regs_2): Likewise.
2640         * reload1.c (reload_as_needed): Likewise.
2641         
2642 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
2643
2644         * Makefile.in (dbxout.o): Depend on ggc.h.
2645         (dwarf2out.o): Likewise.
2646         (xcoffout.o): Likewise.
2647         * dbxout.c: Include ggc.h.
2648         (dbxout_init): Register lastfile as a root.
2649         * dwarf2out.c: Include ggc.h.
2650         (dwarf2out_line): Register lastfile as a root.
2651         * xcoffout.c: Include ggc.h.
2652         (xcoffout_source_line): Register xcoff_lastfile as a root.
2653
2654 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
2655
2656         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
2657
2658 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
2659
2660         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
2661         defined.
2662         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2663
2664 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2665
2666         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
2667         (EXECUTE_IF_CONFLICT): Likewise.
2668         (ALLOCNO_LIVE_P): Avoid signed division.
2669         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
2670         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
2671         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
2672
2673 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
2674
2675         * haifa-sched.c (schedule_block): Don't crash if there's no
2676         next insn for an interblock movement.
2677         (add_branch_dependences): Don't allow clobber insns to move either.
2678
2679 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
2680
2681         * i386.c (split_xf): New.
2682         * i386-protos.h: Declare it.
2683         * i386.md (movxf_1): Add general regs alternatives.
2684         (movxf_1+1): New splitter for same.
2685
2686 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
2687
2688         * function.c (purge_addressof_1): Add missing return values.
2689
2690 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
2691
2692         * function.c (is_addressof): New function.  Returns true if
2693         the given piece of RTL is an ADDRESSOF.
2694         (purge_addressof_1): Make boolean.  Return false if the
2695         ADDRESSOFs could not be purged.
2696         (purge_addressof): If ADDRESSOFs could not be purged from the
2697         notes attached to an insn, remove the offending note(s),
2698         unless they are attached to a libcall.
2699
2700 1999-11-05  Andreas Jaeger  <aj@suse.de>
2701
2702         * genoutput.c (null_operand =): Initialize all fields.
2703
2704         * errors.h: Add extern to prototypes.
2705
2706 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
2707
2708         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
2709         * configure: Rebuilt.
2710
2711 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2712
2713         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
2714         (mirror_conflicts): New function.
2715         (global_alloc): Call it.
2716         (expand_preferences): Remove redundant CONFLICTP test.
2717         (find_reg, dump_conflicts): Likewise.
2718         (prune_preferences): Process conflicts one word at a time.
2719
2720 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
2721
2722         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
2723         instead of an explicit loop.
2724
2725 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
2726
2727         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
2728         if REG_RETVAL check succeeds, then put classp in src_elt.
2729
2730 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
2731
2732         * function.c (pad_to_arg_alignment): Only update argument_pad
2733         if the argument's alignment is greater than STACK_BOUNDARY.
2734
2735 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
2736
2737         * bitmap.h (BITMAP_XFREE): New.
2738         * flow.c (life_analysis): Use it.
2739         (life_analysis_1): Free blocks.
2740
2741         * combine.c (undo_commit): New.
2742         (try_combine): Use it.  Don't zap undobuf.undos.
2743         (combine_instructions): Don't zap undobuf.undos; free the
2744         undobuf.frees list.
2745
2746         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
2747
2748         * stmt.c (cost_table_): New.
2749         (estimate_case_costs): Use it instead of xmalloc.
2750
2751         * toplev.c (compile_file): Reuse dumpname memory instead
2752         of strdup'ing it.
2753
2754 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
2755
2756         * reg-stack.c (convert_regs_1): Initialize target_stack->top
2757         after verifying an EH edge.
2758
2759         * haifa-sched.c (init_rgn_data_dependences): Correctly
2760         size bb_pending_lists_length when zeroing.
2761
2762 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
2763
2764         * function.c (diddle_return_value): New.
2765         (expand_function_end): Use it.
2766         * stmt.c (expand_null_return): Likewise.
2767         (expand_value_return): Likewise.
2768
2769         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
2770
2771         * reload1.c (reload): Don't remove return value clobbers.
2772
2773 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
2774
2775         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
2776
2777 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
2778
2779         * cse.c (cse_main): Use xmalloc, not alloca.
2780         (cse_basic_block): Likewise.
2781         * local-alloc.c (local_alloc): Likewise.
2782
2783 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
2784                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2785
2786         * rtl.c: Include toplev.h.
2787         (fatal): Remove declaration.
2788
2789 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
2790
2791         * haifa-sched.c (schedule_block): Fix thinko.
2792
2793 1999-11-03  James McKelvey <mckelvey@fafnir.com>
2794
2795         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
2796         S_IR* defined values
2797
2798 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
2799
2800         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
2801         call `malloc' instead.
2802
2803 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
2804
2805         * flags.h (flag_renumber_insns): Declare.
2806         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
2807         renumbering table.
2808         * rtl.h (renumber_insns): Change prototype.
2809         * toplev.c (flag_renumber_insns): Define.
2810         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
2811         
2812 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
2813
2814         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
2815         and fpsqrtd.  Use them and create fdiv function unit to more
2816         accurately represent fpu sqrt pipeline semantics on UltraSparc.
2817         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
2818
2819 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
2820
2821         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
2822         3 on UltraSparc.
2823         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
2824         insn into ready list, do not use just a raw swap.
2825
2826 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
2827
2828         * rtl.h (renumber_insns): New function.
2829         (remove_unnecessary_notes): Likewise.
2830         * emit-rtl.c (renumber_insns): Define.
2831         (remove_unncessary_notes): Likewise.
2832         * toplev.c (rest_of_compilation): Remove dead code.
2833         Use renumber_insns and remove_unncessary_notes.
2834
2835         * gcse.c (struct null_pointer_info): New type.
2836         (get_bitmap_width): New function.
2837         (current_block): Remove.
2838         (nonnull_local): Likewise.
2839         (nonnull_killed): Likewise.
2840         (invalidate_nonnull_info): Take a null_pointer_info as input.
2841         (delete_null_pointer_checks_1): New function.
2842         (delete_null_pointer_checks): Use it.
2843
2844         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
2845         (split_edges): Likewise.
2846         (schedule_block): Likewise.
2847         (compute_block_backward_dependencies): Likewise.
2848         (schedule_region): Likewise.
2849         (schedule_insns): Likewise.
2850         
2851 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
2852
2853         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
2854         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
2855         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
2856         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
2857         * jump.c (delete_unreferenced_labels): Don't delete if
2858         LABEL_ALTERNATE_NAME is set.
2859         * print-rtl.c (print_rtx): Dump alternate name.
2860         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
2861         * rtl.h (LABEL_ALTERNATE_NAME): Define.
2862         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
2863         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
2864
2865 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2866
2867         * fix-header.c (recognized_extern, recognized_function): Constify
2868         a char*.
2869
2870         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
2871         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
2872         (compute_available): Remove unused variable `last'.
2873         (compute_nearerout): Remove unused variable `temp_bitmap'.
2874         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
2875         Remove unused variable `x'.
2876
2877         * scan.h (recognized_function, recognized_extern): Constify a
2878         char*.
2879
2880         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
2881
2882 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2883
2884          * varasm.c (decode_rtx_const): Use XSTR to access the string
2885          of a SYMBOL_REF.
2886
2887 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
2888
2889         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
2890
2891 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2892
2893         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
2894
2895 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
2896
2897         * pa.c (ireg_operand): New function.
2898         * pa.h (PREDICATE_CODES): Handle ireg_operand.
2899         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
2900         Fix out of date comment.
2901
2902         * pa.md (negdi2): Turn into expander + anonymous pattern.
2903
2904         * reload.c (find_reloads): Fix typos in recent change.
2905
2906         * dwarf2out.c: Do not include ctype.h.
2907
2908 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2909
2910         * regclass.c (record_reg_classes): Always use may_move_cost when
2911         seeing how operand fits with various register classes.
2912
2913 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
2914
2915         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
2916         * toplev.c: Revert Nov 1 13:22 change.
2917
2918 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
2919
2920         * config/pa/pa.md (height reduction patterns): Add checks for
2921         overlapping operands to avoid semantic-destroying splits for 
2922         height reduction patterns.
2923
2924 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2925
2926         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
2927         have been an hyphen, fixed.
2928         * configure: Rebuilt.
2929
2930 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
2931
2932         * config/arm/tpe.h: Add prototypes for exported functions.
2933         * config/arm/pe.c: Fix compile time warnings.
2934         * config/arm/semi.h: Fix compile time warnings.
2935         * config/arm/arm.c: Fix compile time warnings.
2936         * config/arm/arm.h: Fix compile time warnings.
2937         * config/arm/arm.md: Fix compile time warnings.
2938         * config/arm/thumb.c: Fix compile time warnings.
2939         * config/arm/thumb.h: Fix compile time warnings.
2940         * config/arm/thumb.md: Fix compile time warnings.
2941
2942 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
2943
2944         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
2945         detection code
2946
2947         * unroll.c (unroll_loop): Remove LOOP notes when loop is
2948         completely unrolled.
2949
2950 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2951
2952         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
2953
2954 Tue Nov  2 09:43:00 1999   Catherine Moore  <clm@cygnus.com>
2955
2956         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
2957         * rtl.h (rtx_equal_p): Move prototype.
2958         * rtl.c (rtx_equal_function_value_matters): Move from 
2959         rtlanal.c
2960         (rtx_equal_p): Likewise.
2961         * rtlanal.c (rtx_equal_function_value_matters): Delete.
2962         (rtx_equal_p): Likewise.
2963
2964 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
2965
2966         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
2967         ! HAS_INIT_SECTION.
2968
2969 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
2970
2971         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
2972
2973         * pa.h (ADDR_VEC_ALIGN): Define.
2974
2975         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
2976         notes when presented with "if (foo) break; end_of_loop" and
2977         the break sequence gets moved out of the loop.
2978
2979         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
2980         Remove explicit zero initializations of entries within MAP.
2981
2982 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
2983
2984         * reg-stack.c (convert_regs_1): Handle EH edges specially.
2985
2986 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
2987
2988         * bitmap.h (BITMAP_XMALLOC): New macro.
2989         * flow.c (CLEAN_ALLOCA): Remove.
2990         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
2991         (life_analysis): Likewise.
2992         (update_life_info): Don't use CLEAN_ALLOCA.
2993         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
2994         (calculate_global_regs_live): Likewise.
2995         (print_rtl_with_bb): Likewise.
2996         (verify_flow_info): Likewise.
2997         * global.c (global_alloc): Likewise.
2998         (global_conflicts): Likewise.
2999         * integrate.c (save_for_inline_nocopy): Likewise.
3000         (expand_inline_function): Likewise.
3001         * jump.c (jump_optimize_1): Likewise.
3002         (duplicate_loop_exit_test): Likewise.
3003         (thread_jumps): Likewise.
3004         * loop.c (loop_optimize): Likewise.
3005         (combine_givs): Likewise.
3006         (recombine_givs): Likewise.
3007         * reorg.c (dbr_schedule): Likewise.
3008         * unroll.c (unroll_loop): Likewise.
3009         
3010         * combine.c (combine_instructions): Use xmalloc instead of alloca.
3011
3012 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
3013
3014         * toplev.c (rest_of_compilation): Don't optimize the CFG
3015         when rebuilding, just before dbr.
3016
3017 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3018
3019         * output.h (assemble_end_function, assemble_destructor,
3020         assemble_constructor, assemble_gc_entry, assemble_global,
3021         assemble_label, output_constant_pool) Constify a char*.
3022
3023         * varasm.c (assemble_destructor, assemble_constructor,
3024         assemble_gc_entry, assemble_end_function, assemble_global,
3025         assemble_label, output_constant_pool): Likewise.
3026
3027 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
3028
3029         * config/arm/thumb.c (thumb_expand_prologue): Add comments
3030         explaining what is goin on in this function.
3031
3032 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3033
3034         * regclass.c (record_reg_classes): In matching case, recompute
3035         costs since the direction of movement is different.
3036
3037 Sun Oct 31 21:59:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
3038
3039         * resource.c (mark_target_live_regs): For unconditional branches,
3040         the resources found at the branch target should be added to the
3041         resources found so far, not intersected.
3042
3043 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
3044
3045         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
3046         old cpp's.
3047         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
3048         (sys/mman.h): Include this file only if #HAVE_MMAP.
3049         (run_compiles): Initialize `esac_fmt' with one old KR string, not
3050         with automatically concatenated ANSI strings.
3051
3052 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
3053
3054         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
3055         (DIV_ROUND_UP): Robustify.
3056         (ggc_recalculate_in_use_p): New function.
3057         (release_pages): Don't inline it.
3058         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
3059         outer contexts.
3060         (ggc_pop_context): Use ggc_recalculate_in_use_p.
3061         (clear_marks): Always save in_use_p.
3062         (sweep_pages): Use ggc_recalculate_in_use_p.
3063         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
3064         Release pages before counting statistics.
3065         
3066 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
3067
3068         * toplev.c (rest_of_compilation): Fix thinko in this change:
3069         
3070         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
3071
3072         (rest_of_compilation): If inside an inlined external function,
3073         pretend we are just being declared.
3074
3075 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
3076
3077         * flow.c (calculate_global_regs_live): Fix thinko.
3078
3079         * integrate.c (expand_inline_function): Fix bugs in previous
3080         change from Oct 28, 1999.
3081
3082 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
3083
3084         * stmt.c (expand_value_return): Fix typo in this change:
3085
3086         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3087         (expand_value_return): Correctly convert VAL when promoting function
3088         return; support RETURN_REG being a PARALLEL.
3089         
3090 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
3091
3092         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
3093
3094 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3095
3096         * hard-reg-set.h (reg_names): Constify a char*.
3097
3098         * regclass.c  (reg_names): Likewise.
3099
3100         * regs.h (reg_names): Likewise
3101
3102         * a29k/a29k.c (reg_names): Delete declaration.
3103
3104         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
3105
3106         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
3107         arc_output_function_epilogue): Likewise.
3108
3109         * elxsi/elxsi.c (reg_names): Likewise.
3110
3111         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
3112         
3113         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
3114         Likewise.
3115
3116         * m88k/m88k.c (output_function_profiler): Likewise.
3117
3118         * sparc/sparc.c (sparc_flat_output_function_prologue,
3119         sparc_flat_output_function_epilogue): Likewise.
3120
3121 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
3122
3123         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
3124         warning from -Wuninitialized and put it under -W.
3125         * function.c (uninitialized_vars_warning): Warn only when the
3126         corresponding flag is set.
3127
3128 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
3129
3130         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
3131         is nonzero and the single set does not have an elt, then assign
3132         it an elt.
3133
3134         * simplify-rtx.c: New file.
3135         * Makefile.in (OBJS): Add simplify-rtx.o
3136         (simplify-rtx.o): Add dependencies.
3137         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
3138         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
3139         (cse_gen_binary, simplify_unary_operation): Delete.
3140         (simplify_binary_operation, simplify_plus_minus): Likewise.
3141         (check_fold_consts, simplify_relation_operation): Likewise.
3142         (simplify_ternary_operation): Likewise.
3143         (delete_trivially_dead_insns): Simplify the contents of the
3144         REG_EQUAL note before trying to substitute it into the source
3145         of the reg-reg copy at the end of a libcall sequence.
3146
3147         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
3148         references/callers changed.
3149
3150         * mn10200.c (mn10200_va_arg): Force the return value into a
3151         register.
3152
3153         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
3154
3155         * cccp.c (macroexpand): Avoid out of range accesses for omitted
3156         arguments.
3157
3158 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
3159
3160         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
3161
3162 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
3163
3164         * fold-const.c (fold): Fix thinko when optimizing comparisons
3165         against -0.0.
3166
3167 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
3168
3169         * gcc.texi (Passes): Update front-end files to their current 
3170         location.
3171
3172 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
3173
3174         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
3175         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3176         (PREDICATE_CODES): Add addition_operation.
3177         * alpha-protos.h (addition_operation): Declare.
3178         (secondary_reload_class): Likewise.
3179         * alpha.c (addition_operation): New.
3180         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
3181         * alpha.md (adddi3): Turn into expander.
3182         (*lda, *adddi_2): New.
3183         (movsf, movdf patterns): Don't preference integer regs.
3184         (movsi, movdi patterns): Don't preference fp regs.
3185
3186 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
3187
3188         * genrecog.c (write_switch): Check for duplicate CODE cases.
3189
3190 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
3191
3192         * ggc-common.c: Update pre-function commentary.
3193         * ggc-page.c: Likewise.
3194         (poison): Remove.
3195         (poison_pages): Use memset directly.
3196         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
3197         (ggc_collect): Poison before sweeping.
3198         * ggc-simple.c: Update pre-function commentary.
3199         (ggc_alloc_obj): Poison non-zeroed memory.
3200
3201 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
3202
3203         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
3204         match format string, even on 64-bit hosts.
3205         * gcc-page.c (ggc_page_print_statistics): Likewise.
3206
3207 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
3208
3209         * config/i386/i386.c (ix86_cpu): Revert last patch.
3210         * config/i386/i386.h (ix86_cpu): Ditto.
3211
3212 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
3213
3214         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
3215         TYPE_SIZE, convert type of result to sizetype.
3216
3217 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
3218
3219         * flow.c (count_or_remove_death_notes): Equate NULL with the
3220         universal set.
3221
3222         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
3223         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
3224         dbr_schedule.
3225
3226         * i386.c (pic_label_no): Delete.
3227         (ix86_attr_length_default): Don't use single_set to peek
3228         inside a parallel.
3229
3230         * recog.c (peephole2_optimize): Allow recog_next_insn to index
3231         the first insn after bb->end.
3232         * i386.md (push mem peeps): Scratch is live after evaluation
3233         of the memory.
3234         (cmp mem peep): Similarly.
3235
3236 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
3237
3238         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
3239         * function.c (pad_to_arg_alignment): Add missing braces.
3240
3241 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3242
3243         * alpha/alpha-protos.h (literal_section): Add prototype.
3244         (alpha_need_linkage, alpha_start_function,alpha_end_function):
3245         Constify a char*.
3246
3247         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
3248         prototype.
3249         (alpha_start_function, alpha_end_function, float_strings,
3250         alpha_need_linkage): Constify a char*
3251
3252         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
3253
3254         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
3255
3256         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
3257
3258         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
3259
3260 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3261
3262         * flow.c (debug_flow_info): Add prototype.
3263
3264         * gcc.c (main): Likewise.
3265
3266         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
3267         Likewise.
3268
3269         * reload1.c (failed_reload, set_reload_reg): Likewise.
3270         
3271         * mips-tfile.c (main): Likewise.
3272         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
3273         with ATTRIBUTE_NORETURN.
3274
3275 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
3276
3277        * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
3278        DECL is not a memory ref.
3279  
3280 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
3281
3282         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
3283         * config/i386/i386.c (ix86_cpu): Add extern attribute.
3284
3285 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
3286
3287         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
3288         * config/mips/elf64.h: ditto.
3289
3290 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
3291
3292         * expr.c (emit_push_insn): New argument alignment_pad.
3293         Update all callers.  Adjust stack pointer based on alignment pad.
3294         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
3295         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
3296         (locate_and_pad_parm): New argument alignment_pad.  Update all
3297         callers.
3298         * expr.h (emit_push_insn): Update prototype.
3299         (locate_and_pad_parm): Update prototype.
3300         * calls.c (arg_data):  Add new field alignment_pad.
3301         (initialize_argument_information): Initialize alignment_pad.
3302
3303 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
3304
3305         * except.c (free_eh_nesting_info): Free the info itself.
3306         * function.c (free_after_compilation): Don't free NULL.
3307         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
3308         (pre_edge_insert): Free inserted.
3309         * stmt.c (free_stmt_status): Don't free NULL.
3310
3311 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
3312
3313         * gcov.c (DIR_SEPARATOR): Provide default.
3314         (output_data): Add test for MS-DOS format absolute filename.
3315         (fancy_abort): Correct program name.
3316         (open_files): Open all files in binary mode.
3317         * libgcc2.c (__bb_exit_func): Likewise.
3318
3319         * profile.c (init_branch_prob): Specify binary when opening files.
3320
3321         * flags.h (flag_unwind_tables): New decl.
3322         * toplev.c (flag_unwind_table): New definition.
3323         (f_options): Add -funwind-tables.
3324         (decode_g_option): Clarify warning when unknown -g option is given.
3325         (rest_of_compilation): If inside an inlined external function,
3326         pretend we are just being declared.
3327
3328         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
3329         (dwarf2out_frame_finish): Likewise.
3330
3331 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
3332
3333         * fold-const.c (merge_ranges): If not in0, but in1, handle
3334         upper bounds equal like subset case.
3335
3336 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
3337
3338         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
3339         passed in a register but moved to the stack.
3340
3341 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
3342
3343         * gcc.c (pass_exit_codes, greatest_status): New variables.
3344         (struct option_map): Add entry for "--pass-exit-codes".
3345         (execute): Update greatest_status if error.
3346         (display_help): Add documentation for -pass-exit-codes.
3347         (process_command): Handle -pass-exit-codes.
3348         (main): Look at pass_exit_codes and greatest_status on call to exit.
3349
3350 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3351
3352         * reload.c (find_reloads): Refine test for no input reload
3353         case to not includes reloads emitted after insn.
3354
3355         * function.c (find_temp_slots_from_address): Handle sum involving
3356         a register that points to a temp slot.
3357         (update_temp_slot_address): Make recursive call if both old and
3358         new are PLUS with a common operand.
3359         * calls.c (expand_call): Mark temp slot for result as having
3360         address taken.
3361         
3362         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
3363
3364         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
3365         component as well as "BINUTILS".
3366
3367         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
3368         * integrate.c (copy_rtx_and_substitute): Likewise.
3369         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
3370         All callers changed.
3371         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
3372         
3373         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
3374         gdb extensions, write size of type; also be more consistent
3375         in using references when this is a subtype.
3376
3377         * pa.md (extv, extzv, insv): Use define_expand to reject constant
3378         that is out of range.
3379
3380         * loop.c (unknown_constant_address_altered): New variable.
3381         (prescan_loop): Initialize it.
3382         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
3383         (invariant_p, case MEM): Remove handling for volatile and readonly;
3384         check new variable if readonly.
3385         (check_dbra_loop): Chdeck unknown_constant_address_altered.
3386
3387         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
3388         (addr_affects_sp_p): Removed from note_mem_written and only
3389         define #ifdef AUTO_INC_DEC.
3390
3391         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
3392
3393         * regclass.c (record_reg_classes): Properly handle register move
3394         directions.
3395
3396         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
3397         Don't think valid if both operands are invalid.
3398         (struct constant_descriptor): New field RTL.
3399         (mark_const_hash_entry): Mark it.
3400         (record_constant{,_rtx}): Initialize it.
3401         (output_constant_def): Allocate RTL in permanent obstack and
3402         save in table.
3403         ({record,compare}_constant_1): Modes must match for
3404         CONSTRUCTOR of ARRAY_TYPE.
3405
3406         * c-common.h (initializer_constant_valid_p): Delete decl from here.
3407         * output.h (initializer_constant_valid_p): Move decl to here.
3408         * c-common.c (initializer_constant_valid_p): Delete function from here.
3409         * varasm.c (initializer_constant_valid_p): Move function to here.
3410
3411         * tree.h (STRIP_SIGN_NOPS): New macro.
3412         * fold-const.c (optimize_minmax_comparison): New function.
3413         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
3414         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
3415         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
3416         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
3417         widening conversions.
3418         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
3419         to look at size of mode, not precision of type; also add missing cases.
3420         (optimize_bit_field_compare, decode_field_reference): Don't try to
3421         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
3422
3423         * dwarf2out.c (ctype.h): Include.
3424         (dwarf2out_set_demangle_name_func): New function.
3425         (size_of_line_info): Deleted.
3426         (output_line_info): Compute size of line info table from difference
3427         of labels.
3428         (base_type_die, add_name_attribute): Call demangle function, if any.
3429         (field_byte_offset): Use bits per word for variable length fields.
3430         (gen_array_type_die): Add array name.
3431         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
3432         (dwarf2out_add_library_unit_info): New function.
3433
3434         * explow.c (set_stack_check_libfunc): New function.
3435         (stack_check_libfunc): New static variable.
3436         (probe_stack_range): Allow front-end to set up a libfunc to call.
3437
3438         * combine.c (simplify_comparison): When making comparison in wider
3439         mode, check for having commuted an AND and a SUBREG.
3440         (contains_muldiv): New function.
3441         (try_combine): Call it when dividing a PARALLEL.
3442         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
3443         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
3444         a PLUS.
3445         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
3446         use one of the CLOBBERs instead.
3447         (if_then_else_cond): If comparing against zero, just return thing
3448         being compared.
3449
3450         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
3451         Don't generate shifts and subtract if have conditional arithmetic.
3452
3453         * rtl.h (delete_barrier): New declaration.
3454         * jump.c (jump_optimize): Set up to handle conditional call.
3455         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
3456         (delete_barrier): New function.
3457
3458         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
3459
3460         * recog.c (nonmemory_operand): Accept ADDRESSOF.
3461
3462         * tree.c (build_type_attribute_variant): Push to obstack of
3463         ttype around type_hash_canon call.
3464
3465         * expr.c (placeholder_list): Move decl to file scope.
3466         (expand_expr): Don't force access to volatile just because its
3467         address is taken.
3468         If ignoring reference operations, just expand the operands.
3469         (expand_expr, case COMPONENT_REF): Propagate
3470         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
3471         Refine test for using bitfield operations vs pointer punning.
3472         (expand_expr, case CONVERT_EXPR): If converting to
3473         BLKmode UNION_TYPE from BLKmode, just return inner object.
3474         Use proper mode in store_field call.
3475         Properly set sizes of object to store and total size in store_field
3476         call for convert to union.
3477         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
3478         memory (like for ADDR_EXPR).  Also, don't put constant in register if
3479         we'll want it in memory.
3480         (readonly_fields_p): New function.
3481         (expand_expr, case INDIRECT_REF): Call it if LHS.
3482         (expand_assignment): Handle a RESULT_DECL where
3483         DECL_RTL is a PARALLEL.
3484         (do_jump, case WITH_RECORD_EXPR): New case.
3485         (get_inner_reference): Always go inside a CONVERT_EXPR
3486         and NOP_EXPR if both modes are the same.
3487         (store_field): Use bitfield operations if size of bitsize is not same
3488         as size of RHS's type.
3489         Check for bitpos not a multiple of alignment in BLKmode case.
3490         Do block move in largest possible alignment.
3491         (store_constructor): Set BITSIZE to -1 for variable size and properly
3492         in case of array of BLKmode.
3493         (expand_expr_unaligned): New function.
3494         (do_compare_and_jump): Call it.
3495
3496         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
3497         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
3498         does not include 'o'.
3499
3500         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
3501         both SET_DEST and SET_SRC reference a virtual register.
3502         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
3503
3504         * integrate.c (expand_inline_function): Handle case of setting
3505         virtual stack vars register (from built in setjmp); when parameter
3506         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
3507         (subst_constant): Add new parm, MEMONLY.
3508         (expand_inline_function, integrate_parm_decls): Pass new parm.
3509         (integrate_decl_tree): Likewise.
3510         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
3511         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
3512         (copy_rtx_and_substitute, case SET): Add explicit calls to
3513         copy_rtx_and_substitute for both sides.
3514
3515         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
3516         constraints.
3517         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
3518         within INDEX_TYPE, instead of before.
3519         (fixup_gotos): Use f->target_rtl, not the next insn,
3520         since latter may be from a later fixup.
3521         (expand_value_return): Correctly convert VAL when promoting function
3522         return; support RETURN_REG being a PARALLEL.
3523         (expand_return): When checking for result in regs and having
3524         cleanup, consider PARALLEL in DECL_RTL as being in regs.
3525
3526 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
3527
3528         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
3529         last_nominal_fname): Mark const.
3530         (struct include_hash: name, nshort, control_macro): Mark
3531         const.
3532         (struct macrodef: symnam): Mark const.
3533         (struct if_stack: fname): Mark const.
3534         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
3535         (IStable): New character-syntax array which encompasses all
3536         the old is_foo arrays.
3537         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
3538         is_space): New macros for interrogating IStable.
3539         (check_macro_name): Kill last argument.  All callers changed.
3540
3541         * cppinit.c (initialize_char_syntax): Delete.
3542         (is_idchar, is_idstart, is_hor_space, is_space,
3543         trigraph_table): Delete.
3544         (IStable): New.  Initialize with clever macros to avoid
3545         information duplication.
3546         (builtin_array): Table of builtins to get rid of explicit list
3547         in initialize_builtins.
3548         (initialize_builtins): Use builtins_array.
3549         (cpp_start_read): Call init_IStable, and set IStable['$'] if
3550         opts->dollars_in_ident.
3551
3552         * cppexp.c: Change all refs to is_xyz[] arrays to use new
3553         is_xyz() macros.
3554         (cpp_parse_expr): Avoid 'format string is not constant'
3555         warning. Use ISGRAPH to identify printable chars.
3556         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
3557         is_xyz() macros.
3558         (read_and_prescan): Map trigraphs to chars with open-coded
3559         if-else-if-... sequence, not a lookup table.
3560         * cpphash.c: Change all refs to is_xyz[] arrays to use new
3561         is_xyz() macros.
3562         * cpplib.c: Change all refs to is_xyz[] arrays to use new
3563         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
3564         (check_macro_name): Remove ability to report an invalid
3565         assertion name, which is never used.
3566         (do_line): Constify a couple of char *'s.
3567         * cppmain.c (main): Call cpp_cleanup before returning.
3568
3569 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
3570
3571         * ggc.h (struct ggc_statistics): New type.
3572         (ggc_get_size): New function.
3573         (ggc_print_statistics): Likewise.
3574         * ggc-common.c (ggc_stats): New variable.
3575         (ggc_mark_rtx_children): Keep statistics.
3576         (ggc_mark_tree_children): Likewise.
3577         (ggc_print_statistics): New function.
3578         * ggc-page.c (struct globals): Add bytes_mapped field.
3579         (alloc_anon): Update it.
3580         (release_pages): Likewise.
3581         (ggc_get_size): New function.
3582         (ggc_page_print_statistics): New function.
3583         * ggc-simple.c (ggc_get_size): New function.
3584         
3585 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
3586
3587         * flow.c (propagate_block): When the last reference to a label
3588         before an ADDR_VEC is deleted because the reference is a dead
3589         store, delete the ADDR_VEC.
3590
3591 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
3592
3593         * resource.c (find_free_register): Don't use the frame pointer
3594         if frame_pointer_needed.
3595
3596 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
3597
3598         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
3599         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
3600
3601         * config/i960/i960.c (i960_va_start): New locals base, num.
3602         Use INDIRECT_REF instead of ARRAY_REF on valist.
3603         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
3604
3605 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
3606
3607         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
3608
3609 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
3610
3611         * tree.def (PLACEHOLDER_EXPR): Update comments.
3612
3613 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3614
3615         * c-common.c (check_format_info): Avoid non-literal format string
3616         warnings when `first_arg_num' is zero.
3617
3618 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3619
3620         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
3621
3622 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
3623
3624         * arm.md (casesi_insn): Add a clobber of the condition code
3625         register.
3626
3627 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
3628
3629         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
3630         used by both cc1 and cc1plus.
3631         
3632 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
3633
3634         * config/arm/arm.c: Initialise arm_structure_size_boundary to
3635         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
3636         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
3637         to the value 32 if it has not already been defined.
3638         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
3639         Override definition in arm.h with a value of 8.
3640
3641 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
3642
3643         * c-pragma.c (push_alignment): Don't check the return value
3644         of xmalloc.
3645
3646 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
3647
3648         * sparc.h (ADJUST_COST): Fix thinko.
3649
3650 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
3651
3652         * cccp.c (rescan): Fixed obp pointer handling around call to
3653         check_expand subroutine.
3654
3655 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
3656
3657         * gcse.c (delete_null_pointer_checks): Only record non-null info
3658         for pseudos when examining stores.
3659
3660         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
3661         splitters for these patterns.  Use "#" for output templates.
3662         (addsi3_carryin_shift): New pattern.
3663
3664 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
3665
3666         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
3667         of the function return register into a plain REG until
3668         after function inlining is done.
3669
3670 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
3671
3672         * jump.c (jump_optimize_1): If we did cross-jumping, and
3673         the data will matter, rebuild the CFG.
3674         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
3675         not optimizing.  Don't run shorten_branches.
3676         * toplev.c (rest_of_compilation): Run shorten_branches after
3677         reg_to_stack.
3678
3679 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
3680
3681         * rtl.h (note_stores): Add additional paramter.
3682         * rtlanal.c (reg_set_p_1): Take additional paramter.
3683         (reg_set_last_1): Likewise.
3684         (reg_set_p): Adjust call to note_stores.
3685         (reg_set_last): Likewise.
3686         (note_stores): Pass data parameter to worker function.
3687         * alias.c (record_set): Take additional parameter.
3688         (init_alias_analysis): Pass it.
3689         * caller-save.c (mark_set_regs): Take additional parameter.
3690         (save_call_clobbered_regs): Pass NULL to note_stores.
3691         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
3692         parameter.
3693         (record_dead_and_set_regs_1): Likewise.
3694         (reg_dead_at_p_1): Likewise.
3695         (combine_instructions): Adjust calls to note_stores.
3696         (try_combine): Likewise.
3697         (record_dead_insn): Remove.
3698         (record_dead_and_set_regs): Adjust calls to note_stores.
3699         (reg_dead_at_p): Likewise.
3700         * cse.c (invalidate_skipped_set): Take additional parameter.
3701         (cse_check_loop_start): Likewise.
3702         (cse_check_loop_start_value): Remove.
3703         (cse_set_around_loop): Adjust calls to note_stores.
3704         * flow.c (notice_stack_pointer_modification): Take additional
3705         parameter.  Remove duplicate declaration.
3706         (record_volatile_insns): Adjust calls to note_stores.
3707         * gcse.c (record_set_info): Take additional parameter.
3708         (record_last_set_info): Likewise.
3709         (invalidate_nonnull_info): Likewise.
3710         (record_set_insn): Remove.
3711         (compute_sets): Adjust calls to note_stores.
3712         (last_set_insn): Remove.
3713         (compute_hash_table): Adjust calls to note_stores.
3714         (insert_insn_end_bb): Likewise.
3715         (delete_null_pointer_checks): Likewise.
3716         * global.c (mark_reg_store): Take additional parameter.
3717         (mark_reg_clobber): Likewise.
3718         (reg_becomes_live): Likewise.
3719         (global_conflicts): Adjust calls to note_stores.
3720         (build_insn_chain): Likewise.
3721         * integrate.c (note_modified_parmregs): Take additional parameter.
3722         (mark_stores): Likewise.  Make it static.
3723         (save_for_inline_nocopy): Adjust calls to note_stores.
3724         (try_constants): Likewise.
3725         * integrate.h (mark_stores): Remove declaration.
3726         * jump.c (mark_modified_reg): Take additional parameter.
3727         (thread_jumps): Adjust calls to note_stores.
3728         * local-alloc.c (validate_equiv_mem_from_store): Take additional
3729         parameter.
3730         (no_equiv): Likewise.
3731         (reg_is_set): Likewise.
3732         (validate_equiv_mem): Adjust calls to note_stores.
3733         (update_equiv_regs): Likewise.
3734         (block_alloc): Likewise.
3735         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
3736         (note_addr_stored): Take additional parameter.
3737         (note_set_pseudo_multiple_uses): Likewise.
3738         (record_initial): Likewise.
3739         (prescan_loop): Adjust calls to note_stores.
3740         (strength_reduce): Likewise.
3741         (check_dbra_loop): Likewise.
3742         * regmove.c (flags_set_1): Take additional paramter.
3743         (mark_flags_life_zones): Adjust calls to note_stores.
3744         * reload1.c (mark_not_eliminable): Take additional parameter.
3745         (forget_old_reloads_1): Likewise.
3746         (reload_cse_invalidate_rtx): Likewise.
3747         (reload_cse_check_clobber): Likewise.
3748         (reload_combine_note_store): Likewise.
3749         (move2add_note_store): Likewise.
3750         (reload): Adjust calls to note_stores.
3751         (reload_as_needed): Likewise.
3752         (emit_reload_insns): Likewise.
3753         (reload_cse_regs_1): Likewise.
3754         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
3755         (reload_combine): Adjust calls to note_stores.
3756         * resource.c (update_live_status): Take additional paramter.
3757         (mark_target_live_regs): Adjust calls to note_stores.
3758         * stupid.c (find_clobbered_regs): Take additional parameter.
3759         (stupid_life_analysis): Adjust calls to note_stores.
3760         
3761 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
3762
3763         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
3764         definition. 
3765
3766         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
3767         definition.
3768
3769         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
3770         of the variable arm_structure_size_boundary.
3771
3772 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
3773
3774         * alias.c (init_alias_analysis): Allocate reg_known_value and
3775         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
3776         and reg_seen.
3777         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
3778         * cse.c (cse_main): Call end_alias_analysis.
3779         * haifa-sched.c (schedule_insns): Likewise.
3780         * local-alloc. (update_equiv_regs): Likewise.
3781         * reload1.c (reload_cse_regs): Likewise.
3782         
3783 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3784
3785         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
3786         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
3787         mapping from MASK_FPU.
3788
3789 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
3790
3791         * sparc.md (call): Don't bound structure return size to 0xfff.
3792
3793 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
3794
3795         * resource.c (mark_target_live_regs): Check that the target
3796         insn wasn't created after compute_bb_for_insn.
3797
3798 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
3799
3800         * ggc-page.c (poison_pages): Don't be overzealous.
3801
3802 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
3803
3804         * alias.c: Update comments for ADDRESS.
3805         (nonlocal_reference_p): Look inside the ADDRESS to determine if
3806         it is a local memory reference.
3807
3808         * c-typeck.c (build_function_call): Check that the built-in
3809         function is of class BUILT_IN_NORMAL before trying to recongize
3810         it as BUILT_IN_ABS.
3811         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
3812         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
3813
3814 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
3815
3816         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
3817         of alloca.
3818         (pre_gcse): Likewise.
3819         (hoist_expr_reaches_here_p): Likewise.
3820         (hoist_code): Likewise.
3821         (pre_expr_reaches_here_p): Replace alloca with xcalloc.   Move core
3822         code to ...
3823         (pre_expr_reaches_here_p_work): ... here.
3824         (expr_reaches_here_p): Replace alloca with xcalloc.   Move core 
3825         code to ...
3826         (expr_reaches_here_p_work): ... here.
3827
3828 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
3829
3830         * resource.c (find_basic_block): Delete.
3831         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
3832         (init_resource_info): Call compute_bb_for_insn.
3833
3834 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
3835
3836         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
3837         with already adjacent blocks, but no fallthru.
3838         (merge_blocks_move_successor_nojumps): Simplify.
3839         (debug_flow_info): New.
3840
3841         * toplev.c (rest_of_compilation): Open jump1 dump file before
3842         jump and close after, as opposed to just using dump_rtl.
3843
3844 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3845
3846         * reload.h (earlyclobber_operand_p): Declare.
3847         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
3848         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
3849         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
3850         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
3851
3852 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
3853                           Richard Henderson  <rth@cygnus.com>
3854
3855         * emit-rtl.c (emit_block_insn_before): New.
3856         (emit_block_insn_after): New.
3857         * basic-block.h: Declare them.
3858
3859         * bitmap.h: Protect from multiple inclusion.
3860
3861         * recog.c (scratch_operand): Handle VOIDmode correctly.
3862
3863         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
3864
3865         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
3866         * function.c (assign_parms): Likewise.
3867         * global.c (global_conflicts): Clarify STACK_REGS commentary.
3868
3869         * reg-stack.c (max_uid): Remove.
3870         (blocks, block_begin, block_end, block_drops_in): Remove.
3871         (block_stack_in, block_out_reg_set, block_number): Remove.
3872         (struct block_info_def, BLOCK_INFO): New.
3873         (enum emit_where): New.
3874         (current_block): New.
3875         (BLOCK_NUM): Remove.
3876         (mark_regs_pat, record_label_references): Remove.
3877         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
3878         (nan): New.
3879         (goto_block_pat, print_blocks, dump_stack_info): Remove.
3880         (reg_to_stack): Simplified test for existance of fp code.  Use
3881         flow.c code.  Call shorten_branches after cross-jump opt.
3882         (check_asm_stack_operands): Renamed from record_asm_reg_life.
3883         Return false if the asm doesn't use stack regs.  Don't do life
3884         analysis on the asm.
3885         (emit_pop_insn): Replace function pointer arg `when' with
3886         enum `where'.  Update all callers.
3887         (change_stack): Likewise.  Update basic block end.
3888         (emit_swap_insn): Use current_block->head to limit reverse search
3889         for start of block.  Use emit_block_insn_after.
3890         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
3891         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
3892         structure assignment instead of bcopy.
3893         (print_stack): New.
3894         (convert_regs_entry, convert_regs_exit): New.
3895         (convert_regs_1, convert_regs_2): Split out from convert_regs.
3896         Work on basic blocks and the CFG.
3897         (convert_regs): Use them.
3898
3899         * i386.c (output_fix_trunc): Remove code for DImode input operand
3900         not at top-of-stack.
3901         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
3902         appropriate mode.
3903         (fix_truncdi_1): Allow any mode scratch.
3904
3905 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
3906
3907         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
3908         * linux.h, netbsd.h, vms.h: Not here.
3909
3910 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
3911
3912         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
3913         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
3914         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
3915         CONDITIONAL_REGISTER_USEAGE): Use them. 
3916         * config/mips/mips.c (mips_move_1word,mips_move_2words,
3917         gen_conditional_branch,override_options) : Use them.
3918         * config/mips/mips.md : Use them.
3919
3920 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
3921
3922         * i386.md (zero_extendqihi2): Use SImode register name with andl.
3923
3924 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
3925
3926         * integrate.c (function_cannot_inline_p): Don't allow inlining
3927         if setjmp is used.
3928
3929 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3930
3931         * c-parse.in (cast_expr): Constify.
3932
3933         * cccp.c (special_symbol): Likewise.
3934
3935         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
3936
3937         * dwarf2out.c (base_type_die): Likewise.
3938
3939         * global.c (allocno_compare): Likewise.
3940
3941         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
3942
3943         * regclass.c (fix_register): Likewise.
3944
3945         * rtl.h (fix_register): Likewise.
3946
3947         * stupid.c (stupid_reg_compare): Likewise.
3948
3949         * toplev.c (decode_f_option): Likewise.
3950
3951         * tree.c (build_complex_type): Likewise.
3952
3953 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
3954
3955         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
3956
3957 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3958
3959         * reload.c (find_reloads): Compute mode and nregs fields of all
3960         reloads.
3961         * reload1.c (calculate_needs_all_insns): Simplify a bit.
3962         (calculate_needs): Use precomputed mode/nregs values.
3963         (allocate_reload_reg): Likewise.
3964         Break out two...
3965         (failed_reload, set_reload_reg): ... new functions.
3966         (choose_reload_regs_init): New function, mostly broken out from...
3967         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
3968         Also lose one #if 0 block.
3969
3970 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
3971
3972         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name 
3973         substitution.
3974
3975 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
3976
3977         * tree.h (BLOCK_TYPE_TAGS): Remove.
3978         (BLOCK_END_NOTE): Likewise.
3979         (BLOCK_LIVE_RANGE_FLAG): Likewise.
3980         (BLOCK_LIVE_RANGE_START): Likewise.
3981         (BLOCK_LIVE_RANGE_END): Likewise.
3982         (tree_block): Remove live_range_flag, live_range_var_flag, and
3983         type_tags.  Remove end_note, live_range_start, and live_range_end.
3984         (remember_end_note): Remove prototype.
3985         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
3986         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
3987         remember_end_note.
3988         * ggc-common.c (ggc_mark_tree_children): Don't mark
3989         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
3990         * integrate.c (adjust_copied_decl_tree): Remove.
3991         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
3992         * stmt.c (last_block_end_note): Remove.
3993         (init_stmt): Don't add a GC root for it.
3994         (expand_fixup): Don't set it.
3995         (remember_end_note): Remove.
3996         (expand_end_bindings): Don't set last_block_end_note.
3997
3998 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3999
4000         * reload1.c (reload_reg_free_for_value_p): Show
4001         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
4002         reloads.
4003
4004 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
4005
4006         * expmed.c (extract_bit_field): Allow for the case of non-integer
4007         objects that are smaller than a word (like SFmode on a 64-bit
4008         machine).
4009
4010         * loop.c (basic_induction_var): A non-integer variable which is
4011         being set by a paradoxical subreg is probably not a biv.
4012
4013 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4014
4015         * prefix.c (translate_name) Check for empty prefix string.
4016
4017 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
4018
4019         * Makefile.in (CPP_CROSS_NAME): New variable.
4020         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
4021         xcpp.
4022         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
4023         names of the files to be uninstalled.
4024
4025 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
4026
4027         * collect2.c (IS_DIR_SEPARATOR): Define.
4028         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
4029
4030         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
4031         functions too.
4032
4033         * haifa-sched.c (add_dependence): Update the true dependency
4034         cache the first time we add a true dependence to the LOG_LINKS chain.
4035
4036 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
4037
4038         * fold-const.c (fold): Fix comment.
4039
4040 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4041
4042         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
4043         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
4044         dbxout_start_new_source_file, dbxout_source_file,
4045         dbxout_source_line, dbxout_finish, dbxout_type_fields,
4046         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
4047         Constify a char*.
4048         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
4049         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
4050         (dbxout_block): Initialize variable `blocknum'. 
4051
4052         * dbxout.h (dbxout_init, dbxout_finish,
4053         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
4054         dbxout_args, dbxout_source_line): Constify a char*.
4055
4056         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
4057         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
4058         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
4059         low_pc_attribute, high_pc_attribute, body_begin_attribute,
4060         body_end_attribute, comp_dir_attribute, sf_names_attribute,
4061         src_info_attribute, mac_info_attribute, producer_attribute,
4062         lookup_filename, generate_macinfo_entry, fundamental_type_code,
4063         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
4064         dwarfout_undef): Constify a char*.
4065         (add_incomplete_type, retry_incomplete_types): Add prototypes.
4066
4067         * dwarfout.h (dwarfout_define, dwarfout_undef,
4068         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
4069
4070 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
4071
4072         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
4073         (MULTILIB_ISA_DEFAULT): New.
4074         (MULTILIB_DEFAULTS): Use it.
4075         * config/mips/mips.c (): Remove the now unnecessary definition
4076         of MIPS_ISA_DEFAULT.
4077         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
4078         unnecessary definition.
4079
4080 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
4081
4082         * arm.md (pic_load_addr): Add constraints to operand 1.
4083
4084 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
4085
4086         * fixinc/genfixes:  Provide a means for specifying -D options to
4087         AutoGen
4088
4089 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
4090
4091         * arm.c (arm_override_options): Correct initialization of
4092         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
4093         arm_is_strong, and arm_is_6_or_7.
4094
4095         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
4096         (note_set_pseudo_multiple_uses): New function.
4097         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
4098         if a pseudo set in the loop exit is used elsewhere.
4099
4100 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
4101
4102         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
4103
4104 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
4105
4106         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
4107         a single load-address pattern.
4108
4109 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
4110
4111         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
4112         depending on whether or not line-number notes are present.
4113
4114 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4115
4116         * cccp.c (progname, file_buf, default_include, include_file,
4117         macrodef, definition, hashval, wchar_type, user_label_prefix,
4118         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
4119         expand_to_temp_buffer, is_system_include, base_name,
4120         absolute_filename, read_name_map, open_include_file,
4121         record_control_macro, check_precompiled, check_preconditions,
4122         pcfinclude, pass_thru_directive, create_definition,
4123         check_macro_name, comp_def_part, collect_expansion,
4124         check_assertion, read_token_list, assertion_install,
4125         assertion_lookup, eval_if_expression, conditional_skip,
4126         validate_else, skip_quoted_string, quote_string, macarg1,
4127         error_from_errno, install, lookup, hashf, dump_defn_1,
4128         perror_with_name, pfatal_with_name, main, trigraph_pcp,
4129         check_white_space, rescan, handle_directive, monthnames,
4130         special_symbol, do_include, remap_include_file, write_output,
4131         arglist, do_assert, do_unassert, do_line, do_error, do_once,
4132         do_ident, do_sccs, do_xifdef, skip_if_group,
4133         output_line_directive, macroexpand, macarg, change_newlines,
4134         initialize_builtins, make_definition): Constify a char*.
4135
4136         * pcp.h (stringdef): Likewise.
4137
4138 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
4139
4140         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
4141         not of pattern.
4142
4143 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
4144                           Richard Henderson  <rth@cygnus.com>
4145
4146         * alias.c: Include ggc.h.
4147         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
4148         (record_set): Verify enough room in reg_base_value.
4149         (init_alias_analysis): Allocate reg_base_value with xcalloc.
4150         Register it as a GC root.
4151         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
4152         * Makefile.in (alias.o): Depend on ggc.h.
4153
4154         * unroll.c (unroll_loop): Verify the insn before a barrier
4155         is a JUMP_INSN before checking JUMP_LABEL.
4156
4157 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4158
4159         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
4160         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
4161         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
4162         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
4163         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
4164         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
4165
4166 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4167
4168         * output.h (ctors_section, dtors_section, bss_section): Prototype.
4169
4170         * alpha/alpha-interix.h (text_section): Delete prototype.
4171         * alpha/elf.h (text_section): Likewise.
4172         * arm/linux-elf.h (text_section): Likewise.
4173         * arm/linux-telf.h (text_section): Likewise.
4174         * c4x/c4x.h (text_section): Likewise.
4175         * dsp16xx/dsp16xx.h (bss_section): Likewise.
4176         * elfos.h (text_section): Likewise.
4177         * i386/aix386ng.h (text_section): Likewise.
4178         * i386/i386-interix.h (text_section): Likewise.
4179         * i386/sco5.h (text_section): Likewise.
4180         * i386/svr3gas.h (text_section): Likewise.
4181         * nextstep.h (text_section): Likewise.
4182         * psos.h (text_section): Likewise.
4183         * ptx4.h (text_section): Likewise.
4184         * svr3.h (text_section): Likewise.
4185         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
4186
4187 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4188
4189         * final.c (peephole): Delete prototype.
4190
4191         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
4192         (pre_insert_copies): Remove unused variable `bb'.
4193
4194         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
4195         prototypes.
4196
4197         * output.h (peephole): Add prototype.
4198
4199 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
4200
4201         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
4202         -O0.
4203
4204 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
4205
4206         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
4207         for inlined declarations.
4208
4209 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
4210
4211         * arm.c (logical_binary_operator): New fucntion.
4212         * arm.h (logical_binary_operator): Declare it.
4213         (PREDICATE_CODES): Handle logical_binary_operator.
4214         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
4215         output constraints.  Add appropriate splitters.
4216         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
4217         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
4218         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
4219
4220 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4221
4222         * genoutput.c (struct operand_data): New elt eliminable.
4223         (output_operand_data): Write it.
4224         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
4225         (compare_operands): Take it into account.
4226         * recog.h (struct insn_operand_data): New elt eliminable.
4227         * reload1.c (check_eliminable_occurrences, elimination_effects): New
4228         functions.
4229         (old_asm_operands_vec, new_asm_operands_vec): Delete.
4230         (eliminate_regs): Move code that detects changes to elimination
4231         target regs into new function elimination_effects.
4232         Delete one #if 0 block.
4233         Abort for USE, CLOBBER, ASM_OPERANDS and SET. 
4234         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
4235         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
4236         Only call eliminate_regs for real operands of the insn, not for parts
4237         of its structure or parts matched by things like match_operator.
4238         Use elimination_effects and check_eliminable_occurrences.  Use
4239         copy_insn to duplicate the pattern when not in the final pass.
4240
4241 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
4242
4243         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
4244         and fld.
4245
4246 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
4247
4248         * fixinc/README: document the "mach" machine matching test
4249         * fixinc/fixfixes.c: Implement the #else/#endif label fix
4250         * fixinc/fixtests.c: Implement the #else/#endif label test
4251         * fixinc/inclhack.def: utilize these tests and fixes
4252         * fixinc/inclhack.sh:  regen
4253         * fixinc/fixincl.x:  regen
4254         * fixinc/fixincl.sh:  regen
4255
4256 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
4257
4258         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
4259         depend on ggc.h.
4260
4261 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
4262
4263         * gcc.1: Document exit codes.
4264
4265 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4266
4267         * calls.c: Include tm_p.h later, so everything we need is defined.
4268         * expr.c: Likewise.
4269         * function.c: Likewise.
4270
4271         * except.c: Include tm_p.h.
4272
4273         * sparc.c: Likewise.
4274         (dwarf2out_cfi_label): Don't prototype.
4275         (check_return_regs, epilogue_renumber,
4276         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
4277         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
4278         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
4279         ultra_schedule_insn): Add static prototype.
4280         (data_segment_operand, text_segment_operand): Call itself with the
4281         proper number of arguments.
4282         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
4283
4284         * sparc.h: Move all declarations to sparc-protos.h.
4285         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
4286         symbolic_operand.
4287
4288         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
4289
4290         * config/svr4.h (text_section, ctors_section, dtors_section): Add
4291         Prototypes.
4292         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
4293         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
4294         ASM_OUTPUT_ASCII): Constify a char*.
4295         
4296         * sparc-protos.h: New file for sparc prototypes.
4297         
4298 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4299
4300         * function.c (record_insns, contains): Always declare and define.
4301         (record_insns): Mark with ATTRIBUTE_UNUSED.
4302
4303 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4304
4305         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
4306         to .section when outputting a .bss section to deal with multiple
4307         .bss input sections (as happens with -fdata-sections)
4308         Also output %progbits, not @progbits so the assembler doesn't treat as
4309         a comment.
4310         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
4311
4312         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
4313         thumb parts even when building with non-thumb CPUs, by forcing
4314         thumb mode.     
4315
4316 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
4317
4318         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
4319         (movdf_const_intreg_sp64): Similarly.
4320
4321         * local-alloc.c (update_equiv_regs): Check the correct insn
4322         for pre-existing REG_EQUIV notes.
4323
4324 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
4325
4326         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
4327         block reached by a branch if we're not going to actually process
4328         this block.
4329
4330 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
4331
4332         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
4333         a local extern function declaration.
4334
4335 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
4336
4337         * i386.c (ix86_expand_prologue): Properly wrap USE around
4338         reg for CALL_INSN_FUNCTION_USAGE.
4339
4340 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
4341
4342         * config/mips/mips.md (movdf_internal1a): Allow floating-point
4343         move between GP_REGs.
4344
4345 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
4346
4347         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
4348         the mode size when finding out if an offset is legal.
4349
4350 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
4351
4352         * basic-block.h (PROP_*): Move constants from ...
4353         * flow.c: ... here.
4354         (compute_bb_for_insn): Free the array before reallocating.
4355         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
4356         (allocate_reg_life_data): Reset all reg variables collected by
4357         propagate_block.
4358         (get_block_head_tail): Don't convert from bb to block.
4359         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
4360         (find_insn_reg_weight): Take block not bb.
4361         (schedule_block): Don't set block num for moved insns.
4362         (schedule_region): Don't update_life_info or find_insn_reg_weight.
4363         (schedule_insns): Do it here instead.
4364         * combine.c (combine_instructions): Invoke compute_bb_for_insn
4365         before update_life_info.
4366         * recog.c (split_all_insns, peephole2_optimize): Update for
4367         new arg to update_life_info.
4368         * rtlanal.c (remove_note): Cope with NULL note.
4369         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
4370         if we did sched1.
4371
4372 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
4373
4374         * jump.c (jump_optimize_1): More accurately detect casesi insns.
4375
4376         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
4377         block records so that merge_blocks_nomove will clean up correctly.
4378         (split_edge): Handle casesi insns.
4379
4380         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
4381
4382 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
4383
4384         * pa.md (call, call_value): Do not emit a blockage after restoring
4385         the PIC register.
4386
4387 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
4388
4389         * c-typeck.c (c_expand_asm_operands): Fix typo.
4390
4391 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4392
4393         * arm.c (fpu_rhs_operand): Verify modes.
4394         (fpu_add_operand): Likewise.
4395         (di_operand): Likewise.
4396         (soft_df_operand): Likewise.
4397
4398 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
4399
4400         * arm.c (arm_return_in_memory): APCS rules state that the elements
4401         of a structure returned in a register must be 'integer-like'.
4402
4403 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
4404
4405         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
4406         in the source tree when the generated targets are out of date
4407         * fixinc/genfixes: Alter it to run individual fixes for make.
4408         * fixinc/README: rewrite
4409         * fixinc/inclhack.def: moved initial comments to README
4410
4411 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
4412
4413         * toplev.c (main): Do not generate an error message if an
4414         unrecognised command line switch is recognisable by another
4415         language.  If extra_warnings are enabled, then generate a
4416         warning message instead.
4417
4418 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
4419
4420         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
4421         (insert_pack_attributes): Delete prototype.
4422
4423         * c-pragma.c (default_alignment): New static variable.
4424         (push_alignment): Initialize to current effective alignment.
4425         (pop_alignment): Use to set new alignment.
4426         (insert_pack_attributes): Delete function.
4427         (handle_pragma_token): Set default_alignment as well each time 
4428         a #pragma pack(<n>) is encountered.
4429
4430 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
4431
4432         * reg-stack.c (stack_result): Aggregates are not returned in
4433         stack registers.
4434
4435 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
4436
4437         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
4438
4439 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
4440
4441         * basic-block.h (set_block_num): Declare.
4442         * flow.c (update_life_info): Don't call compute_bb_for_insn
4443         or free_basic_block_vars.
4444         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
4445         (insn_orig_block): Remove.
4446         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
4447         (schedule_block): Keep BLOCK_NUM up-to-date.
4448         (schedule_insns): Use compute_bb_for_insn.
4449         * recog.c (split_all_insns): Likewise.
4450         (peephole2_optimize): Likewise.
4451
4452 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
4453
4454         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
4455         if the pic register is used.
4456
4457 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4458
4459         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
4460         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
4461         if that tests TREE_PERMANENT.
4462
4463 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
4464
4465         * cse.c (invalidate_for_call): Do not remove memory references from
4466         the table here.  It's handled elsewhere.
4467
4468         * haifa-sched.c (add_dependence): Protect references to the
4469         true dependency cache with #ifdef INSN_SCHEDULING.
4470         (remove_dependence): Similarly.
4471
4472         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
4473         to the cfg code that this is a return instruction.
4474         * mn10300.md (return_internal): Similarly.
4475
4476         * combine.c (get_last_value): If the last set of a register
4477         is after subst_low_cuid, then we can not use it to determine
4478         the register's last value.
4479
4480 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
4481
4482         * Makefile.in: Back out previous change.
4483         
4484 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
4485
4486         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
4487
4488         * haifa-sched.c (add_dependence): Only check/update the cache
4489         if it exists.
4490         (remove_dependence): Likewise.
4491         (schedule_insns): Only create the true_dependency_cache if the
4492         average number of instructions in a basic block is very large.
4493
4494 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
4495
4496         * Makefile.in (ggc-common.o): Depend on genrtl.h.
4497         (ggc-simple.o): Likewise.
4498         (ggc-page.o): Likewise.
4499
4500 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
4501
4502         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
4503         Prototype for exported functions.
4504         (pre_lcm, pre_rev_lcm): Remove prototypes.
4505         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
4506         (compute_available): Move to lcm.c, and change parameter order.
4507         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
4508         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
4509         (gcse_main): No longer call compute_preds_succs.  Rebuild the
4510         set table after reach pre pass.
4511         (pre_insert_map, pre_delete_map, edge_list): New.
4512         (alloc_pre_mem): Allocate edge vectors.
4513         (free_pre_mem): Delete edge vectors.
4514         (compute_pre_data): Call new edge based lcm routines.
4515         (process_insert_insn): New function.
4516         (insert_insn_end_bb): Use it.
4517         (pre_edge_insert): New function.
4518         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
4519         needed.
4520         (pre_insert_copies): Revamp using new edge based lcm outputs.
4521         (pre_delete): Likewise.
4522         (one_pre_gcse_pass): Insert & remove fake edges to the exit
4523         block.
4524         (compute_code_hoist_vbeinout): New new edge based routines.
4525         * lcm.c: Remove all the old LCM functions.  Replace with new ones
4526         that work with the new cfg datastructures and work with edges
4527         instead of blocks.
4528
4529 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4530
4531         * reload.h (struct reload): Add new fields "mode" and "nregs".
4532         * reload1.c: Change all occurrences of reload_mode and reload_nregs
4533         to reference the "mode" and "nregs" field within struct reload.
4534
4535 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
4536
4537         * haifa-sched.c (true_dependency_cache): New.
4538         (add_dependence): Use the true dependency cache to avoid expensive
4539         walks down the LOG_LINKS dependency list.  Add entries to the
4540         cache as necessary.
4541         (remove_dependence): Remove entries from the true dependency cache
4542         as needed.
4543         (schedule_insns): Allocate and initialize and free the true
4544         dependency cache.
4545
4546         * haifa-sched.c (schedule_insns): Do not remove inter-block
4547         dependencies anymore.
4548
4549 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
4550
4551         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
4552         * i386/t-winnt: Likewise.
4553
4554 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
4555
4556         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
4557
4558 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
4559
4560         * Makefile.in (LANGUAGES): Omit "proto".
4561         (clean): Remove stale comment about removing unprotoize.c.
4562
4563 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4564
4565         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
4566         using arithmetic on void pointers.
4567
4568 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
4569
4570         * haifa-sched.c (compute_block_forward_dependencies): Only check
4571         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
4572
4573 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
4574
4575         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
4576         (expr_equiv_p): Reject memories with different alias sets.
4577
4578 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
4579
4580         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
4581         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
4582         (f_options): Add "bounded-pointers" and "bounds-check" entries.
4583         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
4584         (lang_init): Set default for flag_bounds_check if still "unspecified".
4585
4586 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4587
4588         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
4589
4590 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4591
4592         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
4593         instructions.
4594
4595 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4596
4597         * config/c4x/c4x.md (*db_noclobber, 
4598         *decrement_and_branch_until_zero_noclobber): New patterns and 
4599         associated splitters.
4600
4601 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4602
4603         * config/c4x/c4x.md (parallel instruction patterns): Rework
4604         constraints to keep reload happy.
4605
4606 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4607
4608         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
4609         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
4610         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
4611         Add new patterns and associated post-reload splitters.
4612
4613 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4614
4615         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
4616
4617 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4618
4619         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
4620         if appropriate.
4621         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
4622
4623 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4624
4625         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
4626         memory mode.
4627
4628 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
4629
4630         * pa.c (move_operand): Rely on memory_address_p to determine the
4631         validity of non-indexed memory addresses.
4632         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
4633         operand in DFmode and SFmode when generating PA2.0 code.
4634
4635 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
4636
4637         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
4638
4639 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
4640
4641         * mips.c (function_prologue): Fix argument types.
4642         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
4643         (casesi_internal): Write to the scratch register.
4644
4645 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
4646
4647         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
4648         to U_CHAR **.
4649         (parse_charconst): Delete unnecessary cast when calling
4650         cpp_parse_escape.
4651         (cpplib.h): Kill prototype of cpp_parse_escape.
4652
4653 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
4654
4655         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
4656         * unroll.c (unroll_loop): Cast return value of alloca.
4657         * i370/i370.c: Include function.h and toplev.h.
4658         (i370_label_scan): Remove c++ commented abort.
4659         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
4660         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
4661         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
4662         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
4663
4664 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
4665
4666         * config/t-freebsd: Do not override USER_H.
4667         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
4668
4669 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
4670                           Mumit Khan  <khan@xraylith.wisc.edu>
4671
4672         * c-parse.in (component_decl): Support anonymous struct/union.
4673         (%expect): Update.
4674         * c-parse.y: Regenerate.
4675         * c-parse.c: Likewise.
4676         * objc/objc-parse.y: Likewise.
4677         * objc/objc-parse.c: Likewise.
4678         * c-decl.c (finish_struct): Don't sort the fields.
4679         (field_decl_cmp): Delete unused function.
4680
4681 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
4682
4683         * sparc.md (movsf_const_intreg): Revert last constraint change.
4684         (movdf_const_intreg_sp32): Likewise.
4685
4686 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
4687
4688         * cse.c: Include hashtab.h instead of splay-tree.h
4689         (struct cse_reg_info): No longer use variant union.  Add new
4690         field "regno".  All references changed to avoid union.
4691         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
4692         (free_cse_reg_info): Remove.
4693         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
4694         (get_cse_reg_info): Revamp to use expandable hash tables instead
4695         of splay trees.  Initialize new fields in cse_reg_info structure.
4696         (new_basic_block): Similarly.
4697
4698 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
4699
4700         * genrecog.c (message_with_line): Prototype.
4701         (validate_pattern): Pass along the set for the dest, not a flag.
4702         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
4703         Check for PC/CC0 as sources.
4704         (nodes_identical): Check for children position match before 
4705         allowing the combination.
4706
4707         * rtl.c (read_rtx): Track line number across \\\n.
4708
4709 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
4710
4711         * mips.h (SPECIAL_MODE_PREDICATES): New.
4712         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
4713         (movdi+1, movsi+1): Add output reload constraint.
4714         (casesi_internal): Likewise.  Fix commentary.
4715         (return_internal): Use pmode_register_operand.
4716
4717 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
4718
4719         * 1750a.md (movstrqi): Add missing output reload constraint.
4720         (call_value): Likewise.
4721         * a29k.md (cpxxx patterns): Add missing match_operator mode.
4722         (jmpfdec): Add missing inout reload constraint.
4723         * elxsi.md (addsi patterns): Add missing output reload constraint.
4724         (move from sp): Use @ alternates.
4725         (call_value): No constraint on output.
4726         * fr30.md (movsi_pop): Add missing output reload constraint.
4727         (movsf_constant_store): Likewise.
4728         (splits): Remove constraints.
4729         (subsi3): Add missing mode.
4730         * i370.md (cmpstrsi+1): Add missing output reload constraint.
4731         (call_value): Likewise.
4732         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
4733         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
4734         * m32r.md (movsicc_internal): Add output reload constraint.
4735         (movstrsi_internal): Add inout reload constraints.
4736         * m88k.h (reg_names): Don't declare.
4737         (SPECIAL_MODE_PREDICATES): New.
4738         * m88k.md (*): Use register_operand not reg_or_0_operand
4739         on destinations.
4740         * mn10200.h (PREDICATE_CODES): New.
4741         * ns32k.md (ffs pattern): Add output reload constraint.
4742         * pdp11.md (sob pattern): Add inout reload constraint.
4743         * sh.md (splits): Remove constraints.
4744         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
4745         * v850.md (pattern_is_ok_for_epilogue): Likewise.
4746         * vax.md (jgequ pattern): Add inout reload constraint.
4747
4748 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
4749
4750         * configure.in (djgpp): Revert previous patch.
4751         * configure: Rebuit.
4752         * config/i386/djgpp.h: Revert previous patch.
4753
4754 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
4755
4756         * fixinc/inclhack.def: Restore patch lost during last merge of
4757         "no_bogosity" branch.
4758         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
4759
4760 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4761
4762         * fixincludes: Add a HPUX 11 fix for inttypes.h.
4763         * fixinc/inclhack.def: Same.
4764         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
4765
4766 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
4767
4768         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
4769         as the base of a PLUS.
4770
4771 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4772
4773         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
4774         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
4775         
4776 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
4777
4778         * pa.md (post_stw+1): Use pmode_register_operand.
4779         (dcacheflush, icacheflush): Likewise.
4780
4781         * i386.md (movstricthi_1): Allow r/r.
4782
4783 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
4784
4785         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
4786         to (not (and (arg0) (arg1))). Similary for and.
4787
4788         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
4789         fallthrough to associate code.
4790         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
4791         bits in common.
4792
4793         * combine.c (simplify_logical): Convert XOR to IOR if operands have
4794         no bits in common; remove XOR to ROTATE conversion.
4795
4796 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4797
4798         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
4799
4800 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4801
4802         * config/c4x/c4x.c (dst_operand): New.
4803         (PREDICATE_CODES): Update.
4804         * config/c4x/c4x.h (dst_operand): Declare it.
4805         * config/c4x/c4x.md:  Define mode for each unspec usage.
4806         (move patterns):  Use dst_operand predicate instead of src_operand.
4807         (movqi_update, movqf_update): Delete.
4808
4809 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
4810
4811         * recog.c (pmode_register_operand): New.
4812         * recog.h: Declare it.
4813         * genrecog.c (pred_codes): Likewise.
4814         (special_mode_pred_table): Likewise.
4815         (validate_pattern): Don't warn no mode for address_operand.
4816
4817         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
4818         if the operand is not insn-like.
4819
4820 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
4821                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
4822
4823         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
4824
4825 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
4826
4827         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
4828         instead of general_operand in a SET_DEST.  Use const_double_operand
4829         instead of an explicit test against CONST_DOUBLE.
4830         (movsf_const_lo): Add missing register mode.
4831         (goto_handler_and_restore): Add auxiliary test for Pmode.
4832         (flush): Adjust to use address_operand.
4833         (return_sf_no_fpu): Add missing output constraint.
4834
4835 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
4836
4837         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
4838         for call return value.
4839         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
4840
4841 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
4842
4843         * toplev.c (main): Only warn about options for other languages.
4844         * collect2.c (main): Pass -w to sub-gcc.
4845
4846 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
4847
4848         * flow.c (propagate_block): Add call-clobbered registers to
4849         significant too.
4850
4851         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
4852         zapping mem_set_list.
4853         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
4854         (mark_set_1, mark_used_regs): Likewise.
4855
4856 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
4857
4858         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
4859
4860 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4861
4862         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
4863         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
4864         options. Also add a new item "C-only Warning Options" to the
4865         option summary.
4866
4867 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
4868
4869         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
4870         from multiple calls.
4871
4872 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
4873
4874         * i386.md (call value patterns): Move to the end of the file.
4875         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
4876
4877 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
4878
4879         * configure.in (djgpp configuration): Define extra_objects..
4880         * configure: Rebuilt.
4881         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
4882         (DTORS_SECTION_ASM_OP): Define.
4883         (INIT_SECTION_ASM_OP): Define.
4884         (FINI_SECTION_ASM_OP): Define.
4885         (DATA_SECTION_ASM_OP): Define.
4886         (TEXT_SECTION_ASM_OP): Define.
4887         (EH_FRAME_SECTION_ASM_OP): Define.
4888         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
4889         (STARTFILE_SPEC): Add crtbegin.o.
4890         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
4891         to here from LINK_COMMAND_SPEC.
4892         (DO_GLOBAL_CTORS_BODY): Define.
4893         (CRTSTUFF_USE_FINI_SECTION): Define
4894         (HAS_INIT_SECTION): Delete.
4895
4896 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
4897
4898         * Makefile.in (all.cross): Depend on xcpp$(exeext).
4899
4900 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
4901
4902         * pa.h (PREDICATE_CODES): New.
4903
4904         * genrecog.c (validate_pattern): Condense the destination
4905         non-lvalue message.
4906
4907 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
4908
4909         * alpha.md (call-1): Supply missing mode for operator.
4910         (*): Add missing output reload constraints.  Remove constraints
4911         from define_splits.
4912
4913         * i386.h (SPECIAL_MODE_PREDICATES): New.
4914         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
4915         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
4916         (addsi_lea_3): Add missing mode for op 3.
4917         (prologue_set_got, prologue_get_pc): Add missing modes.
4918         (*) Add missing output reload constraints.
4919
4920 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
4921
4922         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
4923         check for member bit-size overflow and use var_size if it occurs.
4924         (layout_record): Use bitsize_int() to define the type size in bits.
4925         Likewise for computation and assignment to DECL_FIELD_BITPOS.
4926         (layout_decl): Likewise when assigning to DECL_SIZE.
4927
4928 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
4929
4930         * genrecog.c (validate_pattern): Typo last change.  Verify
4931         that output operands have output reloads.
4932
4933 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
4934
4935         * genrecog.c (special_mode_pred_table): New.
4936         (NUM_SPECIAL_MODE_PREDS): New.
4937         (find_operand): New.
4938         (validate_pattern): New argument `insn'.  Warn for assignment to
4939         any predicate accepting non-lvalues.  Conditionaly warn for
4940         match_operand without a mode.  Try much harder to match source
4941         and destination modes on a set.
4942         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
4943
4944 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
4945
4946         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
4947
4948 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
4949
4950         * combine.c (simplify_logical): Recognize xor pattern that encodes
4951         rotation.
4952
4953 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4954
4955         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
4956         alignment.
4957
4958 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
4959
4960         * ggc-page.c (MAP_FAILED): Provide default.
4961
4962 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
4963
4964         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
4965         * sparc.h (PREDICATE_CODES): Update.
4966
4967 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
4968
4969         * alpha.c (some_ni_operand): New.
4970         * alpha-protos.h: Declare it.
4971         * alpha.h (PREDICATE_CODES): Update.
4972         * alpha.md (sXaddq reload insns): Use some_ni_operand 
4973         for SET_DEST instead of some_operand.
4974
4975 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
4976                           Jim Wilson  <wilson@cygnus.com>
4977
4978         * genrecog.c (maybe_both_true_2): Don't compare modes of
4979         two DT_pred tests.
4980         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
4981         after find_afterward.
4982         (debug_decision_1): Dump next and afterward codes.
4983
4984 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
4985
4986         * rtl.c (dump_and_abort): Remove.
4987         (fatal_with_file_and_line): New.
4988         (fatal_expected_char): New.
4989         (read_rtx_lineno, read_rtx_filename): New.
4990         (read_skip_spaces): Track line number.
4991         (read_name): Use fatal_with_file_and_line.
4992         (read_rtx): Use fatal_expected_char.  Track line number.
4993         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
4994
4995         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
4996         if it isn't a CODE_LABEL.
4997
4998         * genattr.c (main): Set read_rtx_filename.
4999         * genattrtab.c (main): Likewise.
5000         * gencodes.c (main): Likewise.
5001         * genconfig.c (main): Likewise.
5002         * genemit.c (main): Likewise.
5003         * genextract.c (main): Likewise.
5004         * genflags.c (main): Likewise.
5005         * genopinit.c (main): Likewise.
5006         * genoutput.c (main): Likewise.
5007         * genpeep.c (main): Likewise.
5008
5009         * genrecog.c (decision_test.u.insn): Add `lineno'.
5010         (pattern_lineno, error_count): New variables.
5011         (message_with_line): New.
5012         (add_to_sequence): Break out checking code to ...
5013         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
5014         (merge_insn): Use message_with_line.
5015         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
5016         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
5017
5018 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5019
5020         * expr.c (store_constructor): Clear union if constructor is empty.
5021
5022 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
5023
5024         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
5025         Add !endian checks.  Change %{...} to %(...).
5026
5027 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
5028
5029         * i386.md (*addsi3_cc): Renamed from addcsi3.
5030         (*addsi3_carry): Renamed from addxsi3.
5031         (*subsi3_cc): Renamed from subcsi3.
5032         (*subsi3_carry): Renamed from subxsi3.
5033         (*xorqi_cc_1): Renamed from xorcqi_1.
5034         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
5035         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
5036
5037 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
5038
5039         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
5040         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
5041
5042 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
5043
5044         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
5045         climb up the chain of insns.
5046
5047 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
5048
5049         * genrecog.c (write_subroutine): Careful for null trees.
5050         (process_tree): Don't elide empty functions.
5051
5052 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
5053
5054         * Makefile.in (genrtl.o): Depend on ggc.h.
5055         * configure.in (valloc): Probe for it.
5056         (with-gc): Use ggc-page if valloc present.
5057         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
5058         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
5059         (ggc_alloc_string): Moved from ggc-page.c.
5060         * ggc-none.c (ggc_alloc_obj): New.
5061         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
5062         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
5063         (struct globals): Likewise for dev_zero_fd.
5064         (init_ggc): Likewise for it's initialization.
5065         (ggc_allocated_p): Move careful dereference from ...
5066         (ggc_lookup_page_table): ... here.  Delete.
5067         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
5068         (alloc_anon): Use valloc if no mmap.
5069         (release_pages): Use free if using valloc.
5070         (ggc_alloc_obj): Renamed from alloc_obj.
5071         (ggc_set_mark): Renamed from mark_obj.
5072         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
5073         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
5074         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
5075         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. 
5076         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
5077         (ggc_collect): Use fp printing instead of our own rounding.
5078         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
5079         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
5080         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
5081         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
5082         (struct ggc_string, struct ggc_any): Delete.
5083         (offsetof): Provide default definition.
5084         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
5085         (PTR_KEY): New.
5086         (struct ggc_mem): New, from corpse of ggc_any.
5087         (struct ggc_status): Delete.
5088         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
5089         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
5090         (n_strings_collected, n_anys_collected): Delete.
5091         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
5092         (ggc_alloc_string, ggc_alloc): Delete.
5093         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
5094         (ggc_free_string, ggc_free_any): Delete.
5095         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
5096         (ggc_compare_addresses, ggc_mark_string): Delete.
5097         (ggc_mark_string_if_gcable, ggc_mark): Delete.
5098         (search_data): Delete.
5099         (struct globals): New.
5100         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.   
5101         (tree_insert, tree_lookup): New.
5102         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
5103         (clear_marks, sweep_objs): New.
5104         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
5105         (init_ggc): Set allocated_last_gc.
5106         (ggc_push_context): Gut.  Use G.context.
5107         (ggc_pop_context): Likewise.
5108         (ggc_pop_context_1): New.
5109         (debug_ggc_tree): New.
5110         (debug_ggc_balance, tally_leaves): New.
5111         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
5112         (ggc_mark_string_if_gcable): Remove decl.
5113         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
5114         (ggc_mark_rtvec_children): New.
5115         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
5116         (ggc_mark_if_gcable): New decl.
5117         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
5118         (ggc_alloc_tree, ggc_alloc): Likewise.
5119         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
5120         (ggc_alloc_obj): New decl.
5121         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
5122         (ggc_alloc_tree, ggc_alloc): Likewise.
5123         (ggc_set_mark): New decl.
5124         * rtl.h (struct rtx_def): Remove gc_mark.
5125         (struct rtvec_def): Likewise.
5126         * tree.h (struct tree_common): Likewise.
5127
5128 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
5129
5130         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
5131         float_format and thread_file definitions.
5132         * configure: Rebuilt.
5133
5134 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
5135
5136         * extend.texi (Function Names): Document types of function names.
5137
5138 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5139
5140         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
5141         an earlyclobbered output conflict with RELOAD_INPUT reloads.
5142
5143 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5144
5145         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
5146
5147 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5148
5149         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
5150
5151 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
5152
5153         * collect2.c (main): Do prelimnary link on AIX if rflag.
5154
5155 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5156
5157         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
5158         __CTOR_LIST__ in opposite order, which is the correct order for sorted
5159         constructors.
5160         (__do_global_dtors): similarly for __DTOR_LIST__.
5161
5162 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5163                                 Diego Novillo <dnovillo@cygnus.com>
5164
5165         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
5166         FPUL_REGS.
5167
5168 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
5169
5170         * fixincl/*: Merged "no_bogosity" branch
5171         * fixincl/fixlib.h: protect against doubly defining t_bool
5172         * fixincl/server.h: protect against doubly defining t_bool
5173
5174 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
5175
5176         * genoutput.c: Include toplev.h.
5177
5178 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
5179
5180         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
5181         Undef.
5182         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
5183         * configure: Regenerate.
5184
5185 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
5186
5187         * gcse.c (delete_null_pointer_checks): Returns void.
5188
5189 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5190
5191         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
5192         * emit-rtl.c (copy_insn_1): Likewise.
5193
5194 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
5195
5196         * config/mips/mips.c (mips_build_va_list): Correct
5197         TREE_CHAIN setting when hard-float.
5198         (mips_va_start): Use corrected setting.
5199         (mips_va_arg): Likewise.  Also pass a tree to build of
5200         POSTINCREMENT_EXPR rather than a naked 'int'.
5201
5202 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
5203
5204         * ggc.h (ggc_push_context): Fix comment.
5205         (ggc_pop_context): Likewise.
5206         (mark_string_if_gcable): Likewise.
5207         * ggc-common.c (ggc_mark_rtx_children): Use
5208         ggc_mark_string_if_gcable.
5209         * ggc-page.c (ggc_lookup_page_table): New function.
5210         (ggc_allocated_p): Likewise.
5211         (mark_obj): Fix formatting.
5212         (ggc_mark_string_if_gcable): New function.
5213         * ggc-simple.c (ggc_allocated_strings): New variable.
5214         (ggc_strings_used): Likewise.
5215         (ggc_compare_addresses): New function.
5216         (ggc_pop_context): Pop the `any' memory too.
5217         (ggc_mark_string_if_gcable): New function.
5218         (ggc_collect): Initialize and tear down ggc_allocated_strings.
5219         
5220 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
5221
5222         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
5223         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
5224         * rs6000.c (expand_block_move): Match movstrsi_?reg register
5225         changes.
5226
5227 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
5228
5229         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
5230         (sched_reg_live_length, sched_reg_basic_block): Delete.
5231         (current_block_num, bb_live_regs, old_live_regs): Delete.
5232         (dead_notes, struct sometimes): Delete.
5233         (sched_note_set, birthing_insn_p): Delete.
5234         (adjust_priority): Gut useless reg lifetime code.
5235         (create_reg_dead_note, attach_deaths): Delete.
5236         (attach_deaths_insn, new_sometimes_live): Delete.
5237         (finish_sometimes_live): Delete.
5238         (find_pre_sched_live, find_post_sched_live): Delete.
5239         (update_reg_usage): Delete.
5240         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
5241         (schedule_insns): Delete reg lifetime code.
5242         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
5243         (unlink_other_notes): Adjust REG_NOTE commentary.
5244         (reemit_notes): Use REG_SAVE_NOTE.
5245         (schedule_block): Likewise.
5246         (schedule_region): Allocate bitmap of blocks in region.  Use
5247         count_or_remove_death_notes.  Use update_life_info.
5248
5249         * rtl.h (REG_SAVE_NOTE): New.
5250         * rtl.c (reg_note_name): Update.
5251         
5252 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
5253
5254         * combine.c (refresh_blocks, need_refresh): New.
5255         (combine_instructions): Allocate refresh_blocks.  Invoke
5256         update_life_info if needed.
5257         (distribute_notes): Mark refresh_blocks instead of installing
5258         USE insns.
5259         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
5260         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
5261
5262         * Makefile.in (recog.o): Depend on basic-block.h.
5263
5264 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
5265
5266         * genrecog.c (add_to_sequence): Thinko last change: delete
5267         shadowing allow_const_int variable.
5268
5269 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5270
5271         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
5272         __GNUC__ and __GNUC_MINOR__.
5273
5274         * gansidecl.h: Likewise.
5275
5276         * rtl.c: Likewise.
5277         
5278         * rtl.h: Likewise.
5279
5280         * toplev.h: Likewise.
5281
5282         * tree.c: Likewise.
5283
5284         * tree.h: Likewise.
5285
5286         * varray.c: Likewise.
5287
5288         * varray.h: Likewise.
5289
5290 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5291
5292         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
5293         use one before a jump table.
5294
5295         * rtl.def (ADDRESS): Change documentation to match reality.
5296         * md.texi: Don't document it.
5297         * gmicro.md (load address pattern): Use 'p' constraint, delete use
5298         of ADDRESS rtx.
5299
5300         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
5301
5302 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
5303
5304         * genrecog.c (add_to_sequence): Move allow_const_int test outside
5305         known predicate block; default allow_const_int true.
5306         (debug_decision_list): New.
5307
5308 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
5309
5310         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
5311
5312 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
5313
5314         * gcse.c (gcse_main): Avoid global optimizations if we have a
5315         large number of basic blocks and the ratio of edges to blocks
5316         is high.
5317         (delete_null_pointer_checks): Likewise.
5318
5319 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
5320
5321         * c-common.c (check_format_info): Warn if format string isn't a
5322         string literal.
5323
5324 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5325
5326         * configure.in (arm*-*-*): Don't let autoconf remove brackets
5327         * configure: regenerate
5328
5329 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
5330
5331         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
5332         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
5333         (peepholes): Re-enable.
5334
5335 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
5336
5337         * Makefile.in (flow.o): Depend on TREE_H.
5338         * basic-block.h (REG_SET_EQUAL_P): New.
5339         (XOR_REG_SET): New.
5340         (n_edges): Declare.
5341         (free_regset_vector): Remove declaration.
5342         (flow_delete_insn_chain): Declare.
5343         (enum update_life_extent): New.
5344         (update_life_info, count_or_remove_death_notes): Declare.
5345         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
5346         Verify register live at bb->global_live_at_start before adding USE.
5347         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
5348         (CLEAN_ALLOCA): New.
5349         (n_edges): New. 
5350         (PROP_*): New flags.
5351         (find_basic_blocks_1): Use alloc_EXPR_LIST.
5352         (clear_edges): Zero n_edges.
5353         (make_edge): Increment n_edges.
5354         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
5355         (flow_delete_insn_chain): Export.
5356         (delete_block): Decrement n_edges.
5357         (merge_blocks_nomove): Likewise.
5358         (life_analysis): Give life_analysis_1 PROP flags.
5359         (verify_wide_reg_1, verify_wide_reg): New.
5360         (verify_local_live_at_start): New.
5361         (update_life_info): Rewrite to call into propogate_block.
5362         (mark_reg): New.
5363         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
5364         always mark stack pointer.  Conditionally mark PIC register.
5365         After reload, mark call-saved registers, return regsiters.
5366         (life_analysis_1): Accept PROP flags not remove_dead_code.
5367         Call mark_regs_live_at_end before zeroing regs_ever_live.
5368         Use calculate_global_regs_live.  Copy global_live_at_end before
5369         calling final propagate_block.  Zero reg_next_use on exit.
5370         (calculate_global_regs_live): New.
5371         (allocate_bb_life_data): Don't allocate bb->local_set.
5372         (init_regset_vector, free_regset_vector): Remove.
5373         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
5374         Test flags before every operation.  Warn if prologue/epilogue insn
5375         would have been deleted.
5376         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
5377         Use alloc_EXPR_LIST.
5378         (mark_used_regs): Accept and use FLAGS, not FINAL.
5379         Remove special handling for RETURN.
5380         (try_pre_increment): Use alloc_EXPR_LIST.
5381         (dump_flow_info): Dump n_edges.
5382         (unlink_insn_chain, split_hard_reg_notes): Remove.
5383         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
5384         (find_insn_with_note, new_insn_dead_notes): Remove.
5385         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
5386         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
5387         (replace_insns): Remove.
5388         (count_or_remove_death_notes): New.
5389         (verify_flow_info): Abort on error after all checks.
5390         (remove_edge): Decrement n_edges.
5391         (remove_fake_edges): Tweek format.
5392         * haifa-sched.c (schedule_insns): Use split_all_insns.
5393         * output.h (update_life_info): Remove declaration.
5394         * recog.c (split_all_insns): From the corpse of split_block_insns,
5395         do the whole function block by block.  Use update_life_info.
5396         (recog_last_allowed_insn): New.
5397         (recog_next_insn): Mind it.
5398         (peephole2_optimize): Set it.  Walk backwards through blocks.
5399         Use update_life_info.
5400         * rtl.h (update_flow_info, replace_insns): Remove declarations.
5401         (split_all_insns): Declare.
5402         * toplev.c (rest_of_compilation): Thread prologue before flow2.
5403         Use split_all_insns.
5404
5405         * i386.md (or -1 peep2s): Disable.
5406
5407 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
5408
5409         * config/mips/mips.md (movstrsi+[123]) : Combine these into
5410         a single pattern.  Scrap the 'd' versions as unnecessary. 
5411
5412         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
5413         tablejump_mips162,tablejump_internal4): The operands to a
5414         label_ref must be VOIDmode.
5415
5416 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5417
5418         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
5419
5420 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
5421
5422         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
5423
5424 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
5425
5426         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
5427         cache every function if ggc_p.
5428
5429 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5430
5431         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
5432         instead of copy_rtx.  Accept sequences that contain asm statements.
5433         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
5434         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
5435         orig_asm_operands_vector, copy_asm_operands_vector,
5436         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
5437         variables.
5438         * rtl.h (copy_insn, copy_insn_1): Declare.
5439
5440 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5441
5442         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
5443
5444         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
5445         arguments to `current_file_function_operand'.
5446
5447         * genrecog.c: Include hard-reg-set.h and resource.h in the
5448         generated output file.
5449
5450         * real.c: Include tm_p.h.
5451
5452 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5453
5454         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
5455         output operand.
5456
5457 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
5458
5459         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
5460         before the fctiwz insn.
5461
5462 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5463                           Mark Mitchell  <mark@codesourcery.com>
5464
5465         * tree.c (make_lang_type_fn): New funtion pointer.
5466         (make_lang_type): Call it.
5467         * tree.h (make_lang_type): Declare.
5468         (make_lang_type_fn): Likewise.
5469         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
5470
5471 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
5472
5473         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
5474         make sure that HIGH instructions are copied into BASE_REGS.
5475
5476 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
5477
5478         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
5479
5480 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
5481
5482         * c-decl.c (finish_struct): Use simpler method of
5483         removing elements of a singly-linked list.
5484
5485 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
5486
5487         * alpha.md (peephole2's): Comment out peephole2's that generate
5488         buggy code.
5489
5490 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
5491
5492         * genrecog.c (add_to_sequence): Disable mode check for
5493         wildcard matches.
5494
5495 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5496
5497         * ggc-simple.c (init_ggc): Set empty_string.
5498
5499 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
5500
5501         * configure.in: Detect mmap.  Add --with-gc=foo to select
5502         garbage collector; default to page if mmap available.
5503         * Makefile.in (GGC): Substitute.
5504
5505 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
5506
5507         * c-decl.c (ggc_p): Enable.
5508
5509 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5510
5511         * flow.c (verify_flow_info): Make it extern & unconditionally define.
5512
5513 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
5514
5515         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
5516         string for little-endian-data.
5517
5518 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
5519
5520         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
5521         case somebody tries to compile --enable-checking code with gcc
5522         1.34 or such.
5523
5524 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
5525
5526         * genrecog.c (add_to_sequence): Verify operand to label_ref is
5527         VOIDmode.
5528
5529 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
5530
5531         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
5532         * jump.c (jump_optimize_1): Document why.
5533
5534 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5535
5536         * collect2.c (scan_prog_file, scan_libraries): Prototype function
5537         pointers and casts for `int_handler' and `quit_handler'.
5538
5539         * flow.c (verify_flow_info, split_hard_reg_notes,
5540         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
5541         remove_edge, remove_fake_successors): Add static prototypes.
5542         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
5543         (mark_set_1): Initialize variable `regno'.
5544         (unlink_insn_chain): Likewise for variable `curr'.
5545         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
5546
5547         * loop.c (strength_reduce): Initialize variable
5548         `unrolled_insn_copies'.
5549         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
5550         prototypes.  Change these functions to take const PTR parameters
5551         to avoid prototype conflict when used as the comparson argument
5552         for qsort.
5553         (check_dbra_loop): Initialize variable `comparison_val'.
5554
5555         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
5556         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
5557         (find_valid_class): Initialize variable `best_class'.
5558         (find_reloads): Call memcpy, not bcopy.
5559
5560         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
5561         (hard_reg_use_compare): Don't needlessly cast away const.
5562         (reload_reg_class_lower): Likewise.
5563         (choose_reload_regs): Initialize variable `regno'.
5564
5565 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
5566
5567         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
5568
5569 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
5570
5571         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
5572         ({,d}discard): Add forward declarations.  Declare parameter as
5573         unused.
5574         (main_without_main): Explicitly declare return type to be int.
5575         (memcpy): Properly declare.
5576
5577         * libgcc2.c (toplevel): If inhibit_libc is defined and not
5578         building the trampoline support, declare malloc, free, and
5579         atexit.
5580         (__clear_cache): Mark arguments as potentially unused.
5581         
5582         * frame.c (toplevel): If inhibit_libc is defined, declare
5583         malloc and free.
5584
5585 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
5586
5587         * flow.c (make_edge): Accept an optional 2D bitmap in which
5588         to cache edge existence.  Update all callers.
5589         (make_label_edge, make_eh_edge): Pass through the edge cache.
5590         (make_edges): Provide the cache.
5591
5592 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5593
5594         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
5595         a char*.
5596         (local_mbtowc): Change the type of variable `i' from int to size_t.
5597
5598         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
5599         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
5600
5601 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
5602
5603         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
5604         after other includes that define the appropriate types.  Include
5605         tm_p.h for getting user prototypes.
5606         * ggc-callbacks.c (toplevel): Ditto.
5607         * ggc-none.c (toplevel): Ditto.
5608         * gcc-page.c (toplevel): Ditto.
5609         * ggc-simple.c (toplevel): Ditto.
5610
5611 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
5612                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
5613
5614         * config/mips/mips.c (mips_move_2words): Split doubles if
5615         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
5616
5617 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
5618
5619         * genrecog.c (struct decision_test): New.
5620         (struct decision): Remove test-related members, sort the rest by size.
5621         (IS_SPLIT): Simplify.
5622         (new_decision, new_decision_test): New.
5623         (add_to_sequence): Use them.  No special handling for args of
5624         non-MATCH codes.
5625         (maybe_both_true): Renamed from not_both_true; return sense changed.
5626         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
5627         of maybe_both_true and adjusted for decision_test.
5628         (position_merit): Remove.
5629         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
5630         (merge_accept_insn): New, broken out of merge_trees.
5631         (merge_trees): Use them.  No special case for c_test; no node
5632         splitting; use test type instead of position_merit.
5633         (factor_tests): New.
5634         (simplify_tests): New.
5635         (break_out_subroutines): Don't write code now.
5636         (find_afterward): New.
5637         (write_afterward, write_switch, write_cond): New.
5638         (write_action, is_unconditional): New.
5639         (write_node): New.  Use them.
5640         (write_tree_1): Rewrite.  Use the new functions above.
5641         (write_tree): Remove afterward processing.
5642         (write_subroutine): Simplify function variant emission.
5643         (write_subroutines): New.
5644         (same_codes, clear_codes): Remove.
5645         (same_modes, clear_modes): Remove.
5646         (write_header): New, broken out of main.
5647         (make_insn_sequence): Use new_decision and new_decision_test.
5648         (process_tree): New, broken out of main.
5649         (main): Adjust for merge_trees interface change. 
5650         Don't #define operands in the output file.
5651         (record_insn_name): New, broken out of make_insn_sequence.
5652         (debug_decision_2, debug_decision_1, debug_decision_0): New.
5653         (debug_decision): New.
5654
5655 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
5656
5657         * resource.c (find_free_register): Mark class_str argument const.
5658         * resource.h: Update prototype to match.
5659
5660         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
5661         * i386.md: Give all anonymous insns names.
5662
5663 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
5664
5665         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
5666         blocks.
5667
5668 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
5669
5670         * toplev.c (dbr_sched_time): Unconditional.
5671         (peephole2_time): New.
5672         (compile_file): Add pass numbers to all of the dump file suffixes.
5673         Dump peephole2_time.  Don't dump times for non-applicable passes.
5674         (rest_of_compilation): Add pass numbers to dump file suffixes.
5675         Conditionalize calls to the scheduler.
5676         * invoke.texi: Update.
5677
5678 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
5679
5680         * flow.c (make_edges): Fix insn iteration.
5681         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
5682         (find_basic_blocks_1): Fix spelling mistake.
5683
5684 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
5685
5686         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
5687         always have side-effects.  Use memset not bzero.
5688         (make_node): Likewise.
5689
5690 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
5691
5692         * stmt.c (expand_anon_union_decl): When any of the elements of the
5693         union is addressable, so is the entire union.
5694
5695 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
5696
5697         * sbitmap.c (sbitmap_ones): Don't set too many bits.
5698
5699         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
5700         * bitmap.c (bitmap_operation): Return true iff TO changed.
5701         (bitmap_equal_p): New.
5702         (bitmap_bit_p): Tidy arithmetic.
5703         (debug_bitmap_file): Likewise.
5704
5705 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
5706
5707         * toplev.c (rest_of_compilation): Turn on cse_not_expected
5708         before cse2 instead of after.
5709
5710 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
5711
5712         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
5713         register offsets. 
5714
5715 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5716
5717         * cppinit.c (is_idchar initializer): Loosen tests to accept
5718         gcc 2.>6 and >2.
5719
5720 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
5721
5722         * mips.md: Define conditional move patterns for floating point
5723         operands and DI mode conditions.
5724
5725 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
5726
5727         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
5728         always have side-effects.
5729
5730 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
5731
5732         * mn10200.c (asm_file_start): Fix typo.
5733
5734         * cppinit.c (is_idchar initializer): Tighten tests for when
5735         to put the table into initialized memory.
5736
5737         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
5738         not an array of rtunion.
5739         * gcc-page.c (ggc_alloc_rtvec): Similarly.
5740         * gcc-simple (ggc_free_rtvec): Similarly.
5741
5742         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
5743         of rtunions.
5744
5745         * mbchar.h: Add missing #endif.
5746
5747         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
5748         (FPBIT, DPBIT): Define.
5749
5750 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5751
5752         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
5753
5754         * profile.c (instrument_arcs, output_gcov_string,
5755         tablejump_entry_p): Add static prototypes.
5756         (output_gcov_string): Constify a char*.
5757         
5758         * regmove.c (replacement_quality, fixup_match_2): Add static
5759         prototypes.
5760
5761         * resource.h (reg_dead_p): Add extern prototype.
5762
5763         * rtl.c (trim_filename): Add static prototype.
5764
5765         * scan-decls.c (skip_to_closing_brace): Likewise.
5766
5767         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
5768         (expand_end_case): Initialize variable `range'.
5769         (emit_case_nodes): Remove unused prototype `rtx_fn'.
5770
5771         * varasm.c (asm_emit_uninitialised): Add static prototype.
5772         (asm_emit_uninitialised, assemble_variable): Mark parameter with
5773         ATTRIBUTE_UNUSED.
5774
5775 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5776
5777         * cpplib.c (if_directive_nameo): Add static prototype.
5778
5779         * cse.c (cse_insn): Remove unused variable `p'.
5780
5781         * except.c (create_rethrow_ref, push_entry,
5782         receive_exception_label, new_eh_region_entry, find_func_region,
5783         clear_function_eh_region, process_nestinfo): Add static prototypes.
5784         (get_reg_for_handler): Hide definition.
5785         (process_nestinfo): Initialize variable `extra_handlers'.
5786
5787         * expr.h (expand_builtin_longjmp): Add extern prototype.
5788
5789         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
5790
5791         * function.c (prepare_function_start): Likewise.
5792         (pop_function_context_from): Mark parameter `context' with
5793         ATTRIBUTE_UNUSED.
5794         (push_temp_slots_for_block, flush_addressof): Hide definition.
5795         
5796         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
5797         solve_program_flow_graph, calculate_branch_probs,
5798         function_summary, main, fancy_abort): Add prototypes.
5799
5800         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
5801         (add_hash): Constify a char*.
5802
5803         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
5804         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
5805         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
5806
5807         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
5808
5809         * lists.c (free_list, zap_lists): Likewise.
5810
5811 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5812
5813         * alias.c (nonlocal_reference_p): Add static prototype.
5814
5815         * bitmap.c (bitmap_element_allocate): Prototype args in function
5816         pointer cast.
5817
5818         * builtins.c (stabilize_va_list): Add static prototype.
5819         (expand_builtin_va_arg): Constify a char*.
5820         
5821         * c-lex.c (getch, put_back, extend_token_buffer_to,
5822         read_line_number, token_getch, token_put_back): Add static
5823         prototypes.
5824
5825         * c-parse.gperf (hash, is_reserved_word): Likewise.
5826
5827         * cccp.c (is_dir_separator): Likewise.
5828
5829 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5830
5831         * graph.h: New file to prototype functions exported by graph.c.
5832
5833         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
5834
5835         * graph.c: Include graph.h.
5836
5837         * toplev.c: Likewise.  Remove redundant prototypes.
5838
5839 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
5840
5841         * invoke.texi: Removed duplicated description for -Q.
5842
5843 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
5844
5845         * extend.texi: Grammar fix in __extension__ text.
5846
5847 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
5848
5849         * md.texi (define_peephole2): New section.
5850
5851 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
5852
5853         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
5854         (mov $-1 to or peepholer): Enable for pentium when optimizing for
5855         speed.
5856
5857 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
5858
5859         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
5860
5861 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
5862
5863         * i386.md (ffs expander): Emit Pentium friendly code for
5864         TARGET_PENTIUM.
5865
5866 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
5867
5868         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
5869         for non-trees.
5870         (build1): Likewise.
5871         
5872 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5873
5874         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
5875
5876 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
5877
5878         * config/m68k/m68k.c (use_return_insn): Return false if the pic
5879         register is in use.
5880
5881 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5882
5883         * md.texi (No Constraints): Delete section.
5884         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
5885         * final.c (final_scan_insn): We always have register constraints.
5886         * genattrtab.c: Don't include "insn-config.h".
5887         (write_attr_case): We always have register constraints.
5888         * genconfig.c (register_constraint_flag): Delete.
5889         (walk_insn_part): Don't check whether we have register constraints.
5890         (main): Don't write out "#define REGISTER_CONSTRAINTS".
5891         * genoutput.c (have_constraints): Delete.
5892         (main): Don't set it.
5893         (output_operand_data): We always have constraints.
5894         (scan_operands): Likewise.
5895         (compare_operands): Likewise.
5896         * local-alloc.c (block_alloc): We always have constraints.
5897         (requires_inout): Always compile this function.
5898         * recog.c (extract_insn): We always have constraints.
5899         (constrain_operands, reg_fits_class_p): Always compile these
5900         functions.
5901         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
5902         fields.
5903         (struct insn_operand_data): Likewise.
5904         * regclass.c (regclass): We always have constraints.
5905         (record_reg_classes, copy_cost, record_address_regs,
5906         auto_inc_dec_reg_p): Always compile these functions.
5907         * regmove.c (regmove_optimize): We always have constraints.
5908         * reload.c (find_reloads): Likewise.
5909         * reload1.c (reload): Likewise.
5910         (reload_cse_simplify_operands): Likewise.
5911         * i860.c (output_delay_insn): Likewise.
5912
5913 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
5914
5915         * iris6.h (BUILD_VA_LIST_TYPE): Define.
5916
5917 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5918
5919         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
5920         for the va_list record.
5921
5922 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
5923
5924         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
5925         prologues.
5926
5927 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
5928
5929         * alias.c: Include insn-flags.h.
5930         * Makefile.in (alias.o): Update.
5931
5932 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
5933
5934         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
5935         to LTU and GEU.  Handle more cases using sbb.
5936
5937 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
5938
5939         * i386.md (truncatexfdf splitters): Do not use subreg.
5940         (fop XFmode patterns): Fix mode in operand testing.
5941
5942 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
5943
5944         * jump.c (jump_optimize_1): Amend last change to test only the
5945         form of the operand, not the insn.
5946
5947         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
5948         not register_operand to determine when B may need preloading.
5949
5950 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
5951
5952         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
5953         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
5954         (call-value patterns): Move to end of file.
5955         (*): Remove mode from label_ref in (pc) context.
5956         (movstrqi): Use memory not general_operand for BLKmode operands.
5957         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
5958         to register_operand operands.
5959         (peep2 patterns): Convert from commented-out peephole patterns.
5960
5961 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5962
5963         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
5964         to BUILT_IN_INIT_DWARF_REG_SIZES.
5965         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
5966         Renamed from BUILT_IN_DWARF_REG_SIZE; call
5967         expand_builtin_init_dwarf_reg_sizes.
5968         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
5969         with __builtin_init_dwarf_reg_size_table.
5970         * dwarf2out.c (struct reg_size_range): Delete.
5971         (expand_builtin_init_dwarf_reg_sizes): New function.
5972         (expand_builtin_dwarf_reg_size): Delete.
5973         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
5974         (expand_builtin_dwarf_reg_size): Don't declare.
5975         * libgcc2.c (dwarf_reg_size_table_initialized): New.
5976         (dwarf_reg_size_table): New.
5977         (init_reg_size_table): New function.
5978         (copy_reg): Use dwarf_reg_size_table.
5979         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
5980         before use.
5981
5982 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
5983
5984         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
5985         Correctly build argument list to constructor and destructor functions.
5986
5987 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
5988
5989         * c-tree.h (warn_float_equal): Declare.
5990         * c-decl.c (warn_float_equal): Define.
5991         (c_decode_option): Recognize -W[no-]float-equal.
5992         * c-typeck.c (build_binary_op): Conditionally warn
5993         about equality tests of floating point types.
5994         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
5995         * invoke.texi: Add docs for -Wfloat-equal warning.
5996
5997 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
5998
5999         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
6000         generating RTL directly.
6001         * mips.h (INIT_TARGET_OPTABS): Likewise.
6002         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
6003
6004         * expr.h (init_mov_optab): Delete declaration
6005
6006         * h8300.c (WORD_REG_USED): Update to avoid useless register
6007         saves in interrupt functions and functions which never return.
6008
6009         * cse.c (struct set): Delete inner_dest_loc field. 
6010         (cse_insn): Remove assignments to inner_dest_loc field.
6011
6012 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
6013
6014         * ggc-page.c: Don't include <unistd.h> etc taken care of
6015         by "system.h".  Include <sys/mman.h> afterward.
6016
6017 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
6018
6019         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
6020         ggc_alloc_string.
6021
6022 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
6023
6024         * xcoffout.c (xcoffout_declare_function): Add documentation.
6025         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
6026         TARGET_64BIT.  Compare constant to -1, not bit pattern.
6027         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
6028         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
6029         gen_movsi typos.
6030
6031 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
6032
6033         * dwarf2out.c (add_abstract_origin_attribute): Abort if
6034         origin_die is NULL.
6035         (gen_inlined_enumeration_type_die): Do not abort if the type has
6036         not been writeen out.
6037         (gen_inlined_structure_type_die): Do not abort if the type has
6038         not been writeen out.
6039         (gen_inlined_union_type_die): Do not abort if the type has
6040         not been writeen out.
6041         (gen_tagged_type_instantiation_die): Do not abort if the type
6042         has not been written out.
6043
6044 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6045
6046         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
6047         call it.
6048         * reg-stack.c (straighten_stack): Copy hard reg set with
6049         COPY_HARD_REG_SET.
6050
6051 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
6052
6053         * builtins.c (stabilize_va_list): Stabilize array type va_list
6054         to a pointer type, not the base record type.
6055         (expand_builtin_va_copy): Dereference the pointers explicitly;
6056         use the correct size for the copy.
6057
6058         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
6059         (rs6000_va_arg): Likewise.
6060
6061 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
6062
6063         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
6064
6065 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
6066
6067         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
6068         field.
6069         (DECL_BUILT_IN_CLASS): Adjust accordingly.
6070
6071 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
6072
6073         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
6074         (init_ggc): Use it instead of a constant.
6075         (ggc_collect): Bound allocated_last_gc by it.
6076
6077 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
6078
6079         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
6080         with va_list.
6081
6082 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
6083
6084         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
6085         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
6086         * configure:  Regen.
6087         * config/mips/openbsd.h:  New, OpenBSD little endian target.
6088         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
6089         * config/mips/xm-openbsd.h:  New, OpenBSD host.
6090
6091 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
6092
6093         * config/m68k/m68k.c (output_function_prologue,
6094         output_function_epilogue): Use
6095         current_function_uses_pic_offset_table instead of regs_ever_live
6096         to decide whether to save/restore pic register.
6097         (legitimize_pic_address): Don't modify regs_ever_live any more.
6098
6099 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
6100
6101         * function.h (struct function): Add x_dont_save_pending_sizes_p.
6102         * stor-layout.c (variable_size): Don't add sizes to the pending
6103         sizes list if x_dont_save_pending_sizes_p is set.
6104         
6105 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
6106
6107         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
6108         for symbolic_operand().
6109         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
6110
6111 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6112
6113         * combine.c (gen_rtx_combine): Add missing call to va_end().
6114
6115         * final.c (asm_fprintf): Likewise.
6116
6117         * genattrtab.c (attr_rtx): Likewise.
6118
6119 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
6120
6121         * cse.c: Update comments.
6122         (cse_insn): When converting a conditional/computed jump into
6123         an unconditional jump, always make sure a BARRIER immediately
6124         follows the converted jump.  Do not delete unreachable code.
6125         (cse_basic_block): Do not delete unreachable code.
6126         * toplev.c (rest_of_compilation): Move call to 
6127         delete_trivially_dead_insns after the conditional call to
6128         jump_optimize.
6129
6130 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6131
6132         * collect2.c (make_temp_file): Don't prototype.
6133
6134         * gcc.c (make_temp_file): Likewise.
6135
6136         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
6137
6138 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
6139
6140         * varasm.c (asm_emit_uninitialised): New function: Generate
6141         the assembler statements necessary to declare an uninitialised 
6142         variable.
6143         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
6144         variable.
6145         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
6146         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
6147         section.
6148         (assemble_variable): Use asm_emit_uninitialised to emit an
6149         uninitialised variable.
6150
6151 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
6152
6153         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
6154         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
6155         <geoffk@cygnus.com>.
6156
6157 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6158
6159         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
6160         * c-common.h (builtin_function): Don't declare.
6161
6162         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
6163         DECL_BUILT_IN.
6164         (pushdecl): Likewise.
6165         (finish_decl): Likewise.
6166         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
6167         int.  All callers changed.
6168         Set the builtin's DECL_BUILT_IN_CLASS.
6169         * tree.h (enum built_in_class): New.
6170         (enum built_in_function): Delete NOT_BUILT_IN.
6171         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
6172         in a union.
6173         (DECL_SET_FUNCTION_CODE): Likewise.
6174         (DECL_BUILT_IN_CLASS): New macro.
6175         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
6176         (struct tree_decl): Split builtin function code field into a
6177         struct.
6178         (builtin_function): Declare.
6179
6180 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
6181
6182         * optabs.c (init_traps): Fix typo in last change.
6183
6184 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
6185
6186         * toplev.c (rest_of_decl_compilation): Update comment.
6187
6188 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
6189
6190         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
6191         in .sbss if appropriate.
6192         (EXTRA_SECTION_FUNCTIONS): Add sbss.
6193         (SBSS_SECTION_ASM_OP): New macro.
6194         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
6195         (EXTRA_SECTIONS): Add in_sbss.
6196         * config/mips/mips.h: Prototype sbss_section.
6197
6198 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
6199
6200         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
6201         to disappear.
6202
6203 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
6204
6205         * optabs.c (init_traps): Register trap_rtx as a GC root.
6206
6207 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6208
6209         * config/mips/mips.c (function_arg_pass_by_reference): Define
6210         unconditionally, since it's called unconditionally.
6211
6212 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
6213
6214         * toplev.c (documented_lang_options): Add -fshort-wchar.
6215         * c-decl.c (c_decode_option): Likewise.
6216         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
6217         for wchar_t.
6218         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
6219         * gcc.c (default_compilers): If -fshort-wchar, 
6220         override __WCHAR_TYPE__.
6221         * tm.texi (C Dialect Options): Add -fshort-wchar.
6222
6223         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
6224         symbol for a variable.
6225
6226         * cpplib.h (CPP_PREPROCESSED): New macro.
6227         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
6228         we're seeing this input for a second time.
6229
6230 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
6231
6232         * emit-rtl.c (init_emit_once): Initialize modes first.
6233
6234 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
6235
6236         * config/i386/i386.c (pic_label_name): Change to char pointer.
6237         (global_offset_table): New variable.
6238         (load_pic_register): Fill global_offset_table if it hasn't
6239         already been done.  Allocate pic_label_name dynamically.
6240         * ggc.h (empty_string): New variable.
6241         * ggc-simple.c (empty_string): Likewise.
6242         (init_ggc): Allocate empty_string and add as root.
6243         * stmt.c (digit_strings): New variable.
6244         (init_stmt): Add last_block_end_note as root.  Allocate and
6245         initialize digit_strings. 
6246         (expand_asm_operands): Use empty_string instead of string
6247         constant.  Use digit_strings instead of string constants.
6248         * profile.c (init_arc_profiler): Allocate string with
6249         ggc_alloc_string instead of xmalloc.
6250         (output_func_start_profiler): Likewise.
6251         * c-typeck.c (digest_init): Check if init is error_mark_node.
6252
6253 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
6254                           Richard Henderson  <rth@cygnus.com>
6255
6256         * ggc-page.c: New file.
6257         * Makefile.in (ggc-page.o): New.
6258
6259 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
6260
6261         * invoke.texi: Document -fdelete-null-pointer-checks
6262         * toplev.c (flag_delete_null_pointer_checks): New.
6263         (f_options): Add entry for -fdelete-null-pointer-checks.
6264         (rest_of_compilation): Conditionalize null pointer check
6265         elimination on flag_delete_null_pointer_checks.
6266         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
6267
6268 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
6269
6270         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
6271         copyright notice and special exception to GPL.
6272
6273 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6274
6275         * abi64.h (mips_function_value): Add prototype arguments.
6276
6277         * mips-protos.h: New file with mips prototypes.
6278
6279         * mips.c: Include "tm_p.h".
6280         (mktemp, lookup_name): Add prototype arguments.
6281         (extern_list, string_constant, mips_fill_delay_slot,
6282         mips_output_external, mips_output_external_libcall,
6283         mips_output_filename, mips_declare_object, function_prologue,
6284         mips_expand_prologue, function_epilogue, mips16_constant,
6285         build_mips16_function_stub, mips_output_conditional_branch):
6286         Constify a char*.
6287         (mips_va_start): Remove unused variable `u'.
6288         (mips_va_arg): Cast value to unsigned when comparing against one.
6289         (trace): Delete.
6290         (save_restore_insns, mips_expand_prologue): Add missing arg in
6291         call to `large_int'.
6292
6293         * mips.h: Move prototypes to mips-protos.h.
6294         (data_section, memory_address_p, rdata_section,
6295         readonly_data_section, simple_epilogue_p, text_section): Delete
6296         prototypes delcared elsewhere.
6297         (mips_epilogue_delay_slots, print_options): Delete unused decls.
6298         (trace): Delete.
6299         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
6300
6301         * mips.md: Delete extra args in call to `mips_move_2words'.
6302
6303         * xm-iris6.h (alloca): Add prototype argument.
6304
6305         * genpeep.c: Include "tm_p.h" in generated output file.
6306
6307 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6308
6309         * basic-block.h (find_edge_index): Change parameters.
6310         * flow.c (verify_edge_list): Pass basic_block parameters to
6311         find_edge_index instead of integers.
6312
6313 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
6314
6315         * combine.c (simplify_comparison): Use an unsigned shift to adjust
6316         the constant.
6317
6318 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
6319
6320         * gcc.1: Fix a formatting error.
6321
6322 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6323
6324         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
6325         i786, mn10200, mn10300, pdp11, v850.
6326
6327 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
6328
6329         * libgcc2.c (num_digits): Add prototype with 
6330         __attribute__((const)).
6331         (__terminate): Add prototype.
6332
6333 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
6334
6335         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
6336
6337         * alpha/alpha.c (print_operand): Fix type of `code'.
6338         (alpha_output_filename): Constify.
6339         * alpha/alpha.h: Move all function declarations ...
6340         * alpha/alpha-protos.h: ... here.  New file.
6341         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
6342         (SECTION_FUNCTION_TEMPLATE): Likewise.
6343
6344 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6345
6346         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
6347         * expr.c (expand_expr): Likewise.
6348         (do_jump): Likewise.
6349         (do_store_flag): Pass ccp_store_flag to can_compare_p.
6350         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
6351         accessor macros.
6352         (enum can_compare_purpose): New.
6353         (can_compare_p): Adjust prototype.
6354         (prepare_cmp_insn, prepare_operand): Declare.
6355         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
6356         * optabs.c (cmp_available_p): Deleted.
6357         (expand_abs): Pass ccp_jump to can_compare_p.
6358         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
6359         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
6360         Call can_compare_p rather than cmp_available_p.
6361         (prepare_operand): No longer static.
6362         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
6363         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
6364         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
6365         sequence to use emit_cmp_and_jump_insns.
6366         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
6367
6368 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
6369
6370         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
6371         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
6372         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
6373         (plus (reg) (const_int 0))
6374         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
6375         
6376 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
6377
6378         * rs6000.c (expand_block_move): DImode loads and stores require
6379         word-aligned displacements.  Increment address registers with
6380         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
6381
6382 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
6383
6384         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
6385         is no name for the base type, rather than segfault.  If we are
6386         writing out a complex integer type, use DW_ATE_lo_user.
6387
6388         * expr.c (emit_move_insn_1): If we are copying a complex that fits
6389         in one word or less (complex char, complex short, or on 64 bit
6390         systems complex float) to/from a hard register, copy it through
6391         memory instead of dying in gen_{real,imag}part.  If we have a
6392         short complex type, prevent inlining since it allocates stack
6393         memory.
6394
6395         * tree.c (build_complex_type): If we are writing dwarf2 output,
6396         generate a name for complex integer types.
6397
6398 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6399
6400         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
6401         * flow.c (remove_edge): Remove extra whitespace.
6402         (remove_fake_edges): Fix comment.
6403         (add_noreturn_fake_exit_edges): Use the correct name.
6404
6405 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
6406
6407         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
6408         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
6409         (clean): Depend on INTL_CLEAN.
6410         (maintainer-clean): Adjust.
6411
6412 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6413
6414         * configure.in (AC_PREREQ): Bump to 2.13.
6415         (AC_C_STRINGIZE): Call this instead of using a custom macro.
6416
6417         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
6418
6419         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
6420
6421         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
6422
6423         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
6424         (HAVE_STRINGIZE): Define.
6425
6426 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
6427
6428         * c-parse.in: save and restore warn_pointer_arith on __extension__
6429         along with pedantic.
6430         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
6431         Set the type of extension to itype rather than $<itype>1 kludge.
6432         * extend.texi (Alternate Keywords): Adjust documentation.
6433         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
6434
6435 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
6436
6437         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
6438         most assembler templates.
6439
6440         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
6441         FP loads and stores.
6442         (following_call): Always return zero for the PA8000.
6443         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
6444         FP loads and stores.
6445         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
6446
6447         * pa.h (BRANCH_COST): Define.
6448
6449         * pa.md (return, return_internal): Use bve for PA2.0.
6450
6451         * pa.md (fused multiply): Add variants which reduce height for the
6452         fused multiply, but which still generate 2 insns.
6453         (fnegabs): Similarly.
6454
6455         * pa.md (subsi3): Turn into an expander.  Create two anonymous
6456         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
6457         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
6458
6459         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
6460         for TARGET_PA_20.
6461         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
6462         code generation.
6463         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
6464         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
6465
6466         * regclass.c (init_regs): Add "top_of_stack" as a garbage
6467         collection root.
6468
6469         * flow.c (record_active_eh_regions): Terminate loop after finding
6470         the last insn in the last basic block.
6471
6472 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6473
6474         * config/c4x/c4x.md: Delete parallel instruction peepholes.
6475
6476 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6477
6478         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
6479
6480 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6481
6482         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
6483         splitting to not use output template.
6484
6485 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6486
6487         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
6488         * config/c4x/c4x.c (c4x_va_start): New function.
6489
6490 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
6491
6492         * genrecog.c (not_both_true): Handle correctly cases when called for
6493         tests with different positions in the insn.
6494
6495 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6496
6497         * machmode.h (HOST_PTR_PRINTF): Move from here ...
6498
6499         * system.h (HOST_PTR_PRINTF): ... to here.
6500
6501         * mips-tfile.c: Don't include machmode.h.
6502
6503         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
6504         (mips-tfile.o): Don't depend on machmode.h.
6505
6506 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6507
6508         * haifa-sched.c (sched_analyze): Rename local variable `region' to
6509         avoid conflicts with typedef struct `region' at the top level scope.
6510
6511 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
6512
6513         * basic-block.h (basic_block): Add eh_beg, eh_end.
6514         * flow.c (entry_exit_blocks): Update.
6515         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
6516         Call new functions.
6517         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
6518         lists.c functions to allocate insn lists.
6519         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
6520         edge creation ...
6521         (make_eh_edge): ... here.  New.
6522         (move_stray_eh_region_notes): New.
6523         (record_active_eh_regions): New.
6524         (delete_unreachable_blocks): Split out block merging ...
6525         (try_merge_blocks): ... here.  New.
6526         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
6527         Dump debugging data.
6528         (merge_blocks_move_successor_nojumps): Likewise.
6529         (merge_blocks): Use eh_beg+eh_end to validate block movement.
6530
6531 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6532
6533         * extend.texi (Bound member functions): Document unbound pmf
6534         conversion.
6535
6536 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6537
6538         * flow.c (split_edge): Handle insertion on a fallthrough edge which
6539         has the EXIT_BLOCK as a dest.
6540
6541 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6542
6543         * flow.c (remove_edge): New function to remove an edge from the 
6544         flow graph.
6545         (remove_fake_successors): New function to remove fake successor edges.
6546         (remove_fake_edges): New function to remove all fake edges from the
6547         flow graph.
6548         (add_fake_exit_edges): New function to add fake edges from all blocks
6549         with no successors to the exit block.
6550         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
6551         prototypes for new functions.
6552
6553 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6554
6555         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
6556         Use Pmode to determine whether to output .dword or .word.
6557
6558 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
6559
6560         * tree.c (built_in_filename): New variable.
6561         (BUILT_IN_FILENAME): New macro.
6562         (init_tree_codes): Allocate built_in_filename.
6563         (make_node): Use built_in_filename instead of string constant.
6564
6565 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
6566
6567         * configure.in: Add fr30 target.
6568         * configure: Regenerate.
6569         * config/fr30: New directory.
6570         * config/fr30/crti.asm: New file.
6571         * config/fr30/fr30.c: New file.
6572         * config/fr30/crtn.asm: New file.
6573         * config/fr30/fr30.h: New file.
6574         * config/fr30/fr30.md: New file.
6575         * config/fr30/lib1funcs.asm: New file.
6576         * config/fr30/t-fr30: New file.
6577         * config/fr30/xm-fr30.h: New file.
6578
6579 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
6580
6581         * flow.c (merge_blocks_move_successor_nojumps): Delete the
6582         BARRIER at the end of the successor, not the BARRIER before
6583         the successor.
6584
6585         * pa.c (pa_add_gc_roots): Fix thinko in last change.
6586
6587 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
6588
6589         * stmt.c (any_pending_cleanups): Don't crash when 
6590         current_function->stmt is unset.
6591
6592 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6593
6594         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
6595         other initializations that may use it for relative offsets.
6596
6597 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6598
6599         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
6600         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
6601         * config/i386/sol2dbg.h: Removed.
6602         * config/i386/sol2gas.h: New file, to enable gas work-around.
6603         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
6604         Don't use sol2dbg.h.
6605         * configure: Rebuilt.
6606
6607 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
6608
6609         * invoke.texi (-fthis-is-variable): Remove documentation.
6610
6611 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
6612
6613         * basic-block.h (compute_bb_for_insn): Declare.
6614         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
6615         to use; set size of basic_block_for_insn directly.
6616         (find_basic_blocks): Update.
6617
6618 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6619
6620         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
6621
6622 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6623
6624         * crtstuff.c (ON_EXIT): Delete empty macro definition.
6625         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
6626
6627 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
6628
6629         * c-decl.c (c_decode_option): Extend comment.
6630
6631 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
6632
6633         * toplev.c (progname): Make 'const char *'
6634         (flag_print_mem): Move out of main.
6635         (version_flag): Move out of main.
6636         (filename): Move out of main.
6637         (debug_args): Remove g prefix from options.
6638         (documented_lang_options): Remove cpplib specific options.
6639         (display_help): Add g prefix to debug options.
6640         (check_lang_option): Delete this function.
6641         (decode_d_option): New function: Decode -d... option.
6642         (decode_f_option): New function: Decode -f... option.
6643         (decode_W_option): New function: Decode -W... option.
6644         (decode_g_option): New function: Decode -g... option.
6645         (independent_decode_option): New function: Decode a language
6646         independent command line option.
6647         (main): Invoke lang_decode_option and then
6648         independent_decode_option on each command line option in
6649         turn. 
6650
6651 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
6652
6653         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
6654          * fold-const.c (fold_range_test): Do not try to fold the range
6655          test if the rhs or lhs has side effects.
6656
6657         * basic-block.h (compute_flow_dominators): Declare.
6658
6659         * gcse.c (alloc_code_hoist_mem): New function.
6660         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
6661         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
6662         (hoist_code, one_code_hoisting_pass): Likewise.
6663         (gcse_main): If optimizing for size, then hoist expressions
6664         computed in multiple dominated basic blocks.
6665
6666         * gcse.c (invalid_nonnull_info): New function.
6667         (delete_null_pointer_checks): Likewise.
6668         * rtl.h (delete_null_pointer_checks): Declare.
6669         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
6670
6671         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
6672         (merge-blocks_move_successor_nojumps): Likewise.
6673         (merge_blocks): Allow merging of some blocks, even if it requires
6674         physical movement of the blocks, but not if it requires new jumps.
6675
6676         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
6677         Callers and prototype changed.
6678         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
6679
6680 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6681
6682         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
6683         -YP when both -p and -pg are present.  From i386/sol2.h.
6684
6685 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6686
6687         * Makefile.in (distclean): Delete tm_p.h.
6688         * configure.in: Create a new file, "tm_p.h", from a list in
6689         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
6690         "i386/i386-protos.h".
6691
6692         * alias.c: Include "tm_p.h".
6693         * c-typeck.c: Likewise.
6694         * calls.c: Likewise.
6695         * cse.c: Likewise.
6696         * emit-rtl.c: Likewise.
6697         * explow.c: Likewise.
6698         * expmed.c: Likewise.
6699         * expr.c: Likewise.
6700         * final.c: Likewise.
6701         * flow.c: Likewise.
6702         * fold-const.c: Likewise.
6703         * function.c: Likewise.
6704         * gcse.c: Likewise.
6705         * global.c: Likewise.
6706         * haifa-sched.c: Likewise.
6707         * integrate.c: Likewise.
6708         * jump.c: Likewise.
6709         * local-alloc.c: Likewise.
6710         * loop.c: Likewise.
6711         * optabs.c: Likewise.
6712         * recog.c: Likewise.
6713         * reg-stack.c: Likewise.
6714         * regclass.c: Likewise.
6715         * regmove.c: Likewise.
6716         * reload.c: Likewise.
6717         * reload1.c: Likewise.
6718         * reorg.c: Likewise.
6719         * resource.c: Likewise.
6720         * stmt.c: Likewise.
6721         * stor-layout.c: Likewise.
6722         * toplev.c: Likewise.
6723         * tree.c: Likewise.
6724         * unroll.c: Likewise.
6725         * genattrtab.c (main): Make generated file include "tm_p.h".
6726         * genemit.c (main): Likewise.
6727         * genoutput.c (main): Likewise.
6728         * genrecog.c (main): Likewise.
6729
6730         * i386.h: Delete all prototypes.
6731         * i386.c: Include "tm_p.h".
6732         (ix86_attr_length_default): Call constant_call_address_operand
6733         with correct number of arguments.
6734         * i386-protos.h: New file.
6735         * i386.md (unnamed patterns): Call constant_call_address_operand
6736         with correct number of arguments.
6737         (exception_receiver): Call load_pic_register with correct number
6738         of arguments.
6739
6740 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
6741
6742         * c-pragma.c (mark_align_stack): Dereference the void* properly.
6743
6744 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
6745
6746         * rtl.h (insns_safe_to_move_p): New function.
6747         * loop.c (find_and_verify_loops): Use it.
6748         * rtlanal.c (insns_safe_to_move_p): Define it.
6749
6750 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
6751
6752         * c-pragma.c: Include ggc.h.
6753         * Makefile.in (c-pragma.o): Update.
6754
6755 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6756
6757         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
6758         (LIB_SPEC): Likewise.
6759         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
6760         Reindent -YP/-p/-pg.
6761         Copied from config/sparc/sol2.h.
6762
6763 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
6764
6765         * c-pragma.c (mark_align_stack): New.
6766         (init_pragma): New.
6767         * c-pragma.h (init_pragma): Declare it.
6768         * c-lex.c (init_parse): Call it.
6769
6770 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6771
6772         * configure.in: Pick up thread library on Solaris/x86 just
6773         like on Solaris/sparc.
6774         * configure: Rebuilt.
6775
6776 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
6777
6778         * rtl.h (global_rtx_index): New enum.
6779         (global_rtl): Change to array of rtx.
6780         (pc_rtx, cc0_rtx): Redefine accordingly.
6781         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
6782         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
6783         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
6784         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
6785         (const_int_rtx): Change to array of rtx.
6786         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
6787         accordingly. 
6788         * emit-rtl.c (global_rtl): Change to array of rtx.
6789         (const_int_rtx): Change to aray of rtx.
6790         (gen_rtx_CONST_INT): Redefine accordingly.
6791         (init_emit_once): Allocate and initialize global_rtl.  Likewise
6792         for const_int_rtx.  Add both as GC roots.
6793         * genattrtab.c (global_rtl): Update declaration.
6794
6795 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
6796
6797         * Makefile (USER_H): Add iso646.h back.
6798
6799 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
6800
6801         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
6802         zapping the LOG_LINKS of sched_before_next_call.
6803
6804         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
6805         * pa.c (insn_refs_are_delayed): Renamed from
6806         insn_sets_and_refs_are_delayed.
6807
6808 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
6809
6810         * functiion.h (struct function): Add x_whole_function_mode_p.
6811         (retrofit_block): Declare.
6812         * function.c (retrofit_block): New function.
6813         (identify_blocks): Add assertions.  Allow an incomplete set of
6814         block notes if we're still generating code for the function.
6815         * integrate.c: Include loop.h.
6816         (expand_inline_function): Call find_loop_tree_blocks to map block
6817         notes to blocks when in whole-function mode.  Use retrofit_block
6818         to insert new BLOCKs for the inlined function, rather than
6819         insert_block.
6820         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
6821         * Makefile.in (integrate.o): Depend on loop.h.
6822
6823 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
6824
6825         * tree.h (warn_about_unused_variables): Declare.
6826         * stmt.c (warn_about_unused_variables): New function, split out
6827         from ...
6828         (expand_end_bindings): Here.
6829
6830 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
6831
6832         * stmt.c (preserve_subexpressions_p): Don't crash when
6833         current_function->stmt is unset.
6834
6835 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
6836
6837         * stmt.c (expand_start_bindings): Allow callers to pass a flag
6838         indicating that no NOTE_INSN_BLOCK_BEG note is required.
6839         (expand_start_target_temps): Use it.
6840         * except.c (expand_eh_region_start_for_decl): Likewise.
6841         * expr.c (expand_expr): Likewise.
6842
6843 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6844
6845         * fold-const.c (operand_equal_p): Pay attention to side effects.
6846
6847 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
6848
6849         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
6850         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
6851
6852         * tlink.c (scan_linker_output): Look for keywords before accepting
6853         a mangled name in quotes.
6854
6855 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
6856
6857         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
6858         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
6859
6860 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
6861
6862         * alpha.md: Revert Thu Nov 26 change that came in through the
6863         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
6864         Avoid earlyclobber when possible.
6865
6866 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6867
6868         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
6869
6870         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
6871         Define HAVE_ON_EXIT.
6872
6873 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6874
6875         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
6876         CTYPE_CONV in all ctype macros.
6877
6878         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
6879         from system.h.
6880
6881         * cexp.y (initialize_random_junk): Likewise.
6882
6883         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
6884
6885         * i370.c (handle_pragma): Likewise.
6886
6887         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
6888
6889         * v850.c (override_options): Likewise.
6890
6891         * doprint.c (_doprnt): Likewise.
6892
6893         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
6894         Likewise.
6895
6896         * fixinc/server.c (load_data): Likewise.
6897
6898         * fold-const.c (real_hex_to_f): Likewise.
6899
6900         * genattr.c (write_upcase, gen_attr): Likewise.
6901
6902         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
6903         write_upcase): Likewise.
6904
6905         * genemit.c (print_code): Likewise.
6906
6907         * genopinit.c (gen_insn): Likewise.
6908
6909         * genpeep.c (print_code): Likewise.
6910
6911         * genrecog.c (print_code): Likewise.
6912
6913         * optabs.c (init_libfuncs): Likewise.
6914
6915 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
6916
6917         * haifa-sched.c (sched_analyze): Keep the list of notes organized
6918         in pairs.
6919         (reemit_notes): Likewise.
6920
6921 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
6922
6923         * ggc.h (ggc_root): Move to ggc-common.c.
6924         (roots): Remove.
6925         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
6926         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
6927         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
6928         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
6929         * ggc-common.c (ggc_root): Move from ggc.h.
6930         (roots): Declare, static.
6931         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
6932         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
6933         null or check/set mark bit.
6934         (ggc_mark_roots): New.
6935         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
6936
6937 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
6938
6939         * m32r.c: Include toplev.h.
6940         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
6941         (gen_compare): Rename swap_p to must_swap to match uses.
6942         Add default abort case.
6943         (m32r_output_function_epilogue): Remove unused variables.
6944         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
6945         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
6946         define to empty parameter list.  Update all uses.
6947         (predicate decls): Use enum machine_mode not int.
6948         * m32r.md (movsi): Call abort, not fatal_insn.
6949         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
6950
6951 1999-09-14  Andrew Haley  <aph@cygnus.com>
6952
6953         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
6954         use $0 instead of 0.
6955
6956 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6957
6958         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
6959         computation out of loop over hard regs.
6960
6961 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
6962
6963         * function.c (identify_blocks): Don't shadow a variable in an 
6964         outer scope.
6965         * integrate.c (integrate_decl_tree): Don't use pushlevel,
6966         pushdecl, or poplevel to build up the new BLOCK tree.
6967         (expand_inline_function): Likewise.
6968         (integrate_parm_decls): Likewise.
6969
6970 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
6971
6972         * c-typeck.c (qualify_type): Merge qualifiers from both types.
6973
6974 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
6975
6976         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
6977         * invoke.texi: Document this change.
6978
6979 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
6980
6981         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
6982         Free the struct.
6983         (mark_emit_status): Renamed from mark_emit_state.
6984         * except.c (mark_eh_status): Renamed from mark_eh_state.
6985         Check not null before marking.
6986         (free_eh_status): New.
6987         * expr.c (mark_expr_status, free_expr_status): New.
6988         * function.c (free_machine_status): New.
6989         (free_after_parsing): New.
6990         (free_after_compilation): Move bits to free_after_parsing; call
6991         free_eh_status, free_expr_status; zero the marked members of the
6992         function state.
6993         (prepare_function_start): No can_garbage_collect. 
6994         Call init_eh_for_function.
6995         (expand_dummy_function_end): Free up current_function state.
6996         (mark_function_status): Renamed from mark_function_state.
6997         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
6998         * function.h (struct function): No can_garbage_collect.
6999         (free_machine_status, free_after_parsing): Declare.
7000         (free_eh_status, free_expr_status): Declare.
7001         * ggc.h (mark_expr_status): Declare.
7002         * stmt.c (free_stmt_status): Free the struct.
7003         (mark_stmt_status): Renamed from mark_stmt_state.
7004         (init_stmt): Don't call init_eh.
7005         (init_stmt_for_function): Don't call init_eh_for_function.
7006         * toplev.c (compile_file): Call init_eh.
7007         (rest_of_compilation): Free basic block info before ggc_collect.
7008         Call free_after_parsing; conditionally call free_after_compilation.
7009         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
7010         Check not null before marking.
7011         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
7012
7013 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
7014
7015         * c-lex.c (yylex): Initialize warn.
7016
7017 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
7018
7019         * pa.c (emit_move_sequence): Properly set the mode of the scratch
7020         register when performing secondary reloads for the SAR register.
7021
7022 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
7023
7024         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
7025         (NOTE_BLOCK): New macro.
7026         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
7027         * function.h (identify_blocks): Change prototype.
7028         * function.c (identify_blocks): Simplify.
7029         (reorder_blocks): Likewise.
7030         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
7031         NOTE_INSN_BLOCK_{BEG,END}.
7032         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
7033         the list of saved notes if the note isn't a
7034         NOTE_INSN_BLOCK_{BEG,END}.
7035         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
7036         NOTE_BLOCK_NUMBER.
7037         (reemit_notes): Adjust recreation of notes to reflect new saved
7038         note structure.
7039         * print-rtl.c (print_rtx): Print the address of the BLOCK when
7040         printing a block note.
7041         * stmt.c (block_vector): Remove.
7042         (find_loop_tree_blocks): Simplify.
7043         (unroll_block_trees): Likewise.
7044         * tree.h (reorder_block): Change prototype.
7045         
7046 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
7047
7048         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
7049         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
7050         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
7051         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
7052         (atexit, exit): Simplify.
7053         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
7054         * config/lots: Remove defns of HAVE_ATEXIT.
7055
7056 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
7057
7058         * calls.c (precompute_arguments): Fix typo in comment.
7059         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
7060         TARGET_EXPR.
7061
7062 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
7063
7064         * dsp16xx.c (override_options): Fix typos in GC root registration.
7065
7066 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
7067
7068         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
7069         from config/svr4.h.
7070         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
7071         (FUNCTION_PROFILER): Redefine appropriately for Linux.
7072         (CC1_SPEC): Likewise.
7073
7074 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7075
7076         * genattr.c (main): Add extern prototype.  Call return, not exit.
7077         * genattrtab.c (main): Likewise.
7078         * gencheck.c (main): Likewise.
7079         * gencodes.c (main): Likewise.
7080         * genconfig.c (main): Likewise.
7081         * genemit.c (main): Likewise.
7082         * genextract.c (main): Likewise.
7083         * genflags.c (main): Likewise.
7084         * gengenrtl.c (main): Likewise.
7085         * genopinit.c (main): Likewise.
7086         * genoutput.c (main): Likewise.
7087         * genpeep.c (main): Likewise.
7088         * genrecog.c (main): Likewise.
7089         
7090         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
7091         * genattrtab.c (get_insn_name): Likewise.
7092         * gencodes.c (get_insn_name): Likewise.
7093         * genconfig.c (get_insn_name): Likewise.
7094         * genemit.c (get_insn_name): Likewise.
7095         * genextract.c (get_insn_name): Likewise.
7096         * genflags.c (get_insn_name): Likewise.
7097         * genopinit.c (get_insn_name): Likewise.
7098         * genpeep.c (get_insn_name): Likewise.
7099         
7100         * gencheck.c (usage): Add static prototype.
7101         * genextract.c (print_path): Constify a char*.
7102         * genopinit.c (optabs): Likewise.
7103         * genoutput.c (operand_data, data, output_predicate_decls,
7104         compare_operands): Likewise.
7105         * genrecog.c (write_tree): Add default case in switch.
7106
7107 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7108
7109         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
7110
7111         * print-rtl.c (get_insn_name): Remove prototype.
7112
7113         * toplev.h (progname): Declare const.
7114
7115         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
7116         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
7117         dump_sched_info, dump_local_alloc, regset_release_memory,
7118         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
7119         error_with_file_and_line, error_with_decl, error_for_asm, error,
7120         fatal, warning_with_file_and_line, warning_with_decl, warning,
7121         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
7122         Remove redundant prototypes.
7123
7124         (notice, check_lang_option, report_file_and_line, vnotice,
7125         mark_file_stack): Add static prototype.
7126         (set_fatal_function): Add prototype.
7127         (vnotice, report_file_and_line, set_fatal_function,
7128         check_lang_option): Constify a char*.
7129         (main): Prototype.  Call return, not exit.
7130
7131 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7132
7133         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
7134
7135         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
7136
7137         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
7138
7139         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
7140
7141 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7142
7143         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
7144         behave as if it's zero in all cases.
7145         (expand_function_start): Adjust call to assign_parms.
7146         * tree.h (assign_parms): Adjust prototype.
7147         * objc/objc-act.c (hack_method_prototype): Adjust call to
7148         assign_parms.
7149
7150 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
7151
7152         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
7153         arg_pointer_rtx fixed if the argument pointer register is
7154         not fixed.
7155         (NONZERO_BASE_PLUS_P): Likewise.
7156
7157 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
7158
7159         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
7160         match_insn2 to match_insn.
7161         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
7162
7163 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
7164
7165         * Makefile.in (USER_H): Remove va-foo.h.
7166
7167         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
7168         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
7169         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
7170         va-spur.h,va-v850.h}: Remove.
7171
7172 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
7173
7174         * sparc/sparc.md (eligible_for_return_delay): New attribute.
7175         (in_return_delay): Use it instead of match_insn.
7176
7177 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7178
7179         * config/alpha/va_list.h (va-alpha.h): Do not include.
7180         (__gnuc_va_list): Typedef as in varargs.h.
7181
7182 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
7183
7184         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
7185         DECL_LIVE_RANGE_RTL.
7186
7187 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
7188
7189         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
7190         not NOTE_BLOCK_NUMBER.
7191         (expand_eh_region_end): Likewise.
7192         (find_exception_handler_labels): Likewise.
7193         (scan_region): Likewise.
7194         (exception_optimize): Likewise.
7195         (update_rethrow_references): Likewise.
7196         (set_insn_eh_region): Likewise.
7197         * final.c (final_scan_insn): Likewise.
7198         * flow.c (make_edges): Likewise.
7199         * integrate.c (expand_inline_function): Likewise.
7200         * print-rtl.c (print_rtx): Likewise.
7201
7202 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
7203
7204         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
7205         terms of builtin functions and types.
7206
7207         * mips.c (mips_build_va_list): New.
7208         (mips_va_start, mips_va_arg): New.
7209         * mips.h (BUILD_VA_LIST_TYPE): New.
7210         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
7211
7212         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
7213         (sh_build_va_list, sh_va_start, sh_va_arg): New.
7214         * sh.h (BUILD_VA_LIST_TYPE): New.
7215         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
7216
7217 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
7218
7219         * recog.h (struct recog_data): Make dup_num, operand_address_p,
7220         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
7221         (struct insn_data): Likewise with n_operands, n_dups, 
7222         n_alternatives, output_format.
7223         * regclass.c (scan_one_insn): Cast n_operands to int before
7224         arithmetic inside comparison.
7225
7226 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
7227
7228         * toplev.c (compile_function): Unconditionally emit nop.
7229
7230 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7231
7232         * haifa-sched.c (actual_hazard): Move declaration of variable
7233         `this_cost' into the scope where it is used.
7234
7235 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7236
7237         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
7238         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
7239         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
7240
7241         * genrecog.c (make_insn_sequence): Call memset, not bzero.
7242
7243         * jump.c (find_insert_position): Don't declare or define unless
7244         !HAVE_conditional_arithmetic.
7245         (returnjump_p_1, delete_prior_computation): Add static prototypes.
7246
7247         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
7248         
7249         * recog.c (offsettable_address_p): Prototype function pointer.
7250         (preprocess_constraints): Call memset, not bzero.
7251         
7252         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
7253         (gcc_obstack_init): Don't declare.
7254         (fix_sizetype): Add static prototype.
7255         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
7256         (tree_cons): Call memset, not bzero.
7257
7258         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
7259         definition in macro ASM_WEAKEN_LABEL.
7260         (mark_const_hash_entry): Add static prototype.
7261
7262 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7263
7264         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
7265
7266         * unroll.c (find_common_reg_term, subtract_reg_term,
7267         loop_find_equiv_value): Add static prototypes.
7268         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
7269         (copy_loop_body): Remove unreachable break statement.
7270         
7271         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
7272
7273         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
7274         
7275 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7276
7277         Undo some changes from the gcc2 merge:
7278         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
7279         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
7280         pointers.
7281
7282         Undo this change:
7283         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
7284         * emit-rtl.c (gen_lowpart_common): Disable optimization of
7285         initialized float-int union if the value is a NaN.
7286
7287 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
7288
7289         * gthr-win32.h: New file.
7290
7291         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
7292         shared as a valid attribute.
7293         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
7294         * extend.texi: Document `shared' variable attribute.
7295
7296 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
7297
7298         * configure.in: Handle --enable-threads on FreeBSD.
7299         * configure: Rebuit.
7300
7301 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
7302
7303         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
7304         thread support.
7305         * configure: Rebuilt.
7306
7307 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
7308                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
7309                           Rosimildo DaSilva <rdasilva@connecttel.com>
7310
7311         * configure.in (m68k-*-rtemscoff*): Added.
7312         * configure.in (mips64orion-*-rtems*): Converted to ELF.
7313         * configure.in (sparc-*-rtemsaout*): Added as alias for old
7314         sparc-rtems configuration.
7315         * configure.in (sparc-*-rtemself*): Added.
7316         * configure.in (sparc-*-rtems*): Now ELF not a.out.
7317         * config/i386/rtems.h: Added comment.
7318         * config/sparc/rtemself.h: New file.
7319
7320         * configure.in (m68k-rtemself): Added.
7321         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
7322         and DWARF_DEBUGGING_INFO.
7323         * config/m68k/crti.s: New file.
7324         * config/m68k/crtn.s: New file.
7325         * config/m68k/t-crtstuff: New file.
7326         * config/m68k/rtemself.h: New file.
7327
7328         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
7329         global ctor/dtor and C++ exception handling.
7330         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
7331         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
7332         ENDFILE_SPEC.
7333         * config/i386/t-rtems-i386: New File.
7334
7335 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
7336
7337         * stmt.c (expand_end_case): Return right away if the case stack is
7338         empty.
7339
7340 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
7341
7342         * Makefile.in (version.c): Remove rule incorrectly brought in from
7343         the gcc2 merge.
7344
7345 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
7346
7347         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
7348         * msdos/top.sed:  Take into account a prepended $(SHELL) to
7349         move-if-change.
7350         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
7351
7352         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
7353
7354 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7355
7356         * regmove.c (fixup_match_1): Don't change an unchanging register.
7357         (stable_but_for_p): Renamed to:
7358         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
7359         Changed all callers.
7360
7361 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
7362
7363         * loop.c (strength_reduce): Don't call reg_used_between_p if the
7364         insn from BL2 is after the insn from BL.
7365
7366 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
7367
7368         * recog.h (INSN_OUTPUT_FORMAT_*): New.
7369         (struct insn_data): Merge `template' and `outfun' into `output'.
7370         Add `output_format'.
7371         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
7372         (struct data): Remove `outfun'; add `output_format'.
7373         (name_for_index): Remove declaration.
7374         (output_insn_data): Handle output formats.
7375         (process_template): Emit the bare array for @.
7376         (gen_expand, gen_split): Set output_format to NONE.
7377         * output.h (get_insn_template): Declare.
7378         * final.c (get_insn_template): New.
7379         (final_scan_insn): Use it.
7380         * toplev.c (compile_file): Likewise.
7381
7382         * c4x/c4x.c (c4x_process_after_reload): Likewise.
7383         * i860/i860.c (output_delayed_branch): Likewise.
7384         (output_delay_insn): Likewise.
7385
7386 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7387
7388         * rtl.c (obstack_alloc_rtx): Removed.
7389
7390 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
7391
7392         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
7393
7394 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
7395
7396         * i386.c (call_insn_operand): Reject const_int.
7397         (expander_call_insn_operand): Use call_insn_operand.
7398
7399 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7400
7401         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
7402
7403 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
7404
7405         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
7406         Use DImode operation.
7407
7408 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
7409
7410         * gcc.c: Include sys/resource.h.
7411         (report_times): New flag.
7412         (execute):  If report_times is set, calculate and report the
7413         CPU time consumed by each subprocess.
7414
7415         (rus, prus): New globals.
7416         (option_map): Add --time.
7417         (display_help): Document -time.
7418         (process_command): Set report_times if -time is given.
7419         Turn off -pipe if -time is given.
7420
7421         * invoke.texi: Document new option -time.
7422
7423         * configure.in: Check for getrusage.  Check if we have to
7424         prototype getrusage.
7425         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
7426         * configure: Regenerate.
7427         * config.in: Regenerate.
7428
7429 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
7430
7431         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
7432         fields.
7433
7434 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
7435
7436         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
7437         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
7438         (nan): Return _thenan_sf or _thenan_df as appropriate.
7439         (L_thenan_sf): Define _thenan_sf.
7440         (L_thenan_df): Define _thenan_df.
7441
7442         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
7443         (DPBIT_FUNCS): Add _thenan_df.
7444
7445 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
7446
7447         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
7448         TYPE_SIZE_UNIT.
7449
7450 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7451
7452         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
7453
7454         * gcc.h: New file.
7455         (lang_specific_driver): Don't take a function pointer parameter.
7456         All callers changed.
7457
7458         * gcc.c: Include gcc.h.
7459         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
7460         lang_specific_extra_outfiles, fatal): Don't declare.
7461         (multilib_defaults_raw): Constify.
7462         (read_specs): Call memset, rather than bzero.
7463         (main): Call return, not exit.
7464         (lookup_compiler): Call memcpy, not bcopy.
7465         (fatal): Make extern.
7466
7467         * cppspec.c: Include gcc.h.
7468         (lang_specific_driver): Initialize variable `quote'.  Constify a
7469         char*.  All calls to the function pointer parameter now
7470         explicitly call `fatal'.
7471
7472         * gccspec.c (lang_specific_driver): Include gcc.h.
7473
7474 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
7475
7476         * arm.c (note_invalid_constants): Use recog_data.operand_type
7477         for recog_op_type.
7478
7479 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7480
7481         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
7482         Declare.
7483
7484         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
7485         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
7486         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
7487         reload_secondary_in_reload, reload_secondary_out_reload,
7488         reload_secondary_in_icode, reload_secondary_out_icode,
7489         reload_reg_rtx, reload_when_needed): Delete declarations.
7490         (struct reload): New structure.
7491         (rld): Declare new array.
7492         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
7493         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
7494         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
7495         reload_secondary_in_reload, reload_secondary_out_reload,
7496         reload_secondary_in_icode, reload_secondary_out_icode,
7497         reload_reg_rtx, reload_when_needed): Delete definitions.
7498         (rld): New array.
7499         (whole file): Replace uses of the deleted arrays with uses of rld.
7500         * reload1.c (whole file): Replace uses of the deleted arrays with
7501         uses of rld.
7502         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
7503         explicit loops, not with bcopy.
7504
7505 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
7506
7507         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
7508         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
7509         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
7510         insn_name): Delete and consolidate into new structures.
7511         (insn_operand_predicate_fn): New.
7512         (insn_output_fn): New.
7513         (insn_gen_fn): New.
7514         (struct insn_operand_data): New.
7515         (struct insn_data): New.
7516         (insn_data): New.
7517         (OUT_FCN): Update for insn_data change.
7518         * builtins.c (expand_builtin_strlen): Likewise.
7519         (expand_builtin_memcmp): Likewise.
7520         * combine.c (make_extraction, simplify_comparison): Likewise.
7521         * cse.c (canon_reg, cse_insn): Likewise.
7522         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
7523         * expmed.c (store_bit_field, extract_bit_field): Likewise.
7524         (emit_store_flag): Likewise.
7525         * expr.c (convert_move, emit_block_move): Likewise.
7526         (clear_storage, emit_push_insn, expand_increment): Likewise.
7527         (do_store_flag): Likewise.
7528         * expr.h (GEN_FCN): Likewise.
7529         (insn_gen_function): Die.
7530         * final.c (final_scan_insn): Update for insn_data change.
7531         (output_asm_name): Likewise.
7532         * function.c (fixup_var_refs_1): Likewise.
7533         * loop.c (check_dbra_loop): Likewise.
7534         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
7535         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
7536         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
7537         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
7538         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
7539         * regmove.c (gen_add3_insn): Likewise.
7540         * reload.c (push_secondary_reload, combine_reloads): Likewise.
7541         (find_reloads, find_reloads_address_1): Likewise.
7542         (debug_reload_to_stream): Likewise.
7543         * reload1.c (emit_reload_insns, gen_reload): Likewise.
7544         * stmt.c (expand_end_case): Likewise.
7545         * toplev.c (compile_file): Likewise.
7546
7547         * c4x/c4x.c (c4x_process_after_reload): Likewise.
7548         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
7549
7550         * print-rtl.c (insn_name_ptr): Remove declaration.
7551         (get_insn_name): Declare.
7552         (print_rtx): Use it.
7553         * genoutput.c (insn_name_ptr): Remove.
7554         (next_operand_number): New.
7555         (struct operand_data): New.
7556         (null_operand, odata, odata_end): New.
7557         (struct data): Use struct operand_data.
7558         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
7559         (get_insn_name): Renamed from name_for_index.
7560         (output_prologue): Define NO_MD_PROTOTYPES.
7561         (output_predicate_decls): Break out from output_epilogue.
7562         Iterate over the operands list.
7563         (output_operand_data): Break out from output_epilogue.  Emit
7564         just the operands list.
7565         (output_insn_data): Break out from output_epilogue.  Emit just
7566         the insn data.
7567         (output_epilogue): Remove.
7568         (output_get_insn_name): New.
7569         (constraints, op_n_alternatives, predicates, address_p): Die.
7570         (modes, strict_low, seen): Die.
7571         (scan_operands): Take new param `d' instead of writing to 
7572         seven global variables.
7573         (compare_operands): New.
7574         (place_operands): New.
7575         (validate_insn_alternatives): Update for struct data change.
7576         (gen_insn): Don't zero or copy 7 global arrays.  Update for
7577         scan_operands; call place_operands.
7578         (gen_peephole, gen_expand, gen_split): Likewise.
7579         (main): Update for new output routines.
7580
7581         * genattr.c (insn_name_ptr): Remove.
7582         (get_insn_name): New function.
7583         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
7584         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
7585         * genrecog.c: Likewise.
7586
7587         * alpha.md (adddi3): Make `pattern' array static.
7588
7589 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7590
7591         * config/c4x/c4x.h (c4x_rpts_cycles_string,
7592         c4x_cpu_version_string): Constify char *.
7593         * config/c4x/c4x.c (c4x_rpts_cycles_string,
7594         c4x_cpu_version_string): Likewise.
7595
7596 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
7597
7598         * tree.c (save_tree_status): Revert 10 Sep change.
7599         (restore_tree_status): Likewise.  Call obstack_free with NULL 
7600         before freeing the obstack proper.
7601
7602 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
7603
7604         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
7605
7606         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
7607         surrounding context.
7608
7609 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
7610
7611         * tree.c (type_hash_canon): Put all types in the hash-table, when
7612         GC'ing.
7613
7614 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
7615
7616         * recog.h (struct recog_data, recog_data): New.
7617         (recog_foo variables): Kill.
7618         * recog.c (recog_operand, recog_operand_loc): Kill.
7619         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
7620         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
7621         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
7622         (recog_data): Define.
7623         (extract_insn): Update all recog_foo references to use recog_data.
7624         (preprocess_constraints, constrain_operands): Likewise.
7625         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
7626         * genattrtab.c (main): Likewise.
7627         * genextract.c (main): Likewise.
7628         * genoutput.c: Likewise.
7629         * genrecog.c (write_subroutine, main): Likewise.
7630         * local-alloc.c (block_alloc): Likewise.
7631         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
7632         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
7633         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
7634         * reload.c (find_reloads, find_reloads_toplev): Likewise.
7635         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
7636         (reload_cse_simplify_operands): Likewise.
7637
7638         * arc/arc.c (arc_final_prescan_insn): Likewise.
7639         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
7640         * h8300/h8300.c (notice_update_cc): Likewise.
7641         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
7642         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
7643         * mn10200/mn10200.c (notice_update_cc): Likewise.
7644         * mn10300/mn10300.c (notice_update_cc): Likewise.
7645         * romp/romp.c (update_cc): Likewise.
7646         * sparc/sparc.c (check_pic): Likewise.
7647         * v850/v850.c (notice_update_cc): Likewise.
7648
7649         * genemit.c (main): Don't declare recog_operand.
7650
7651 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
7652
7653         * ggc.h (rtvec_def): Forward declare.
7654         (tree_node): Likewise.
7655         (ggc_root): Define.
7656         (roots): Declare.
7657         (ggc_set_mark_rtx): Add prototype.
7658         (ggc_set_mark_rtvec): Likewise.
7659         (ggc_set_mark_tree): Likewise.
7660         * ggc-simple.c (ggc_root): Don't define.
7661         (roots): Don't declare.
7662         (ggc_mark_rtx): Remove.
7663         (ggc_mark_rtvec): Likewise.
7664         (ggc_mark_tree): Likewise.
7665         (ggc_mark_varray): Likewise.
7666         (ggc_mark_tree_hash_table_entry): Likewise.
7667         (ggc_mark_tree_hash_table): Likewise.
7668         (ggc_set_mart_rtx): New function.
7669         (ggc_set_mark_rtvec): Likewise.
7670         (ggc_set_mark_tree): Likewise.
7671         (ggc_add_root): Remove.
7672         (ggc_add_rtx_root): Likewise.
7673         (ggc_remove_tree_root): Likewise.
7674         (ggc_add_string_root): Likewise.
7675         (ggc_add_tree_varray_root): Likewise.
7676         (ggc_add_tree_hash_table_root): Likewise.
7677         (ggc_del_root): Likewise.
7678         (ggc_mark_rtx_ptr): Likewise.
7679         (ggc_mark_tree_ptr): Likewise.
7680         (ggc_mark_string_ptr): Likewise.
7681         (ggc_mark_tree_varray_ptr): Likewise.
7682         (ggc_mark_tree_hash_table_ptr): Likewise.
7683         * ggc-common.c: New file.
7684         * Makefile.in (OBJS): Add ggc-common.o.
7685         (ggc-common.o): List dependencies.
7686
7687 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
7688
7689         * cppalloc.c (xstrdup): Use memcpy.
7690         * cpperror.c (cpp_print_containing_files): Don't use
7691         cpp_notice.
7692         * cpplib.c (conditional_skip): Set temp->lineno.
7693         (do_endif): Make error message less obscure.
7694         (if_directive_name): New function.
7695         (cpp_get_token [case EOF]): Unwind the if stack and generate
7696         error messages for each unterminated conditional in this file.
7697         (parse_string):  Do not behave differently if -traditional.
7698
7699 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
7700
7701         * builtins.c (expand_builtin_va_arg): Cope with an array-type
7702         va_list decomposing to pointer-type.
7703         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
7704         (rs6000_va_arg): Likewise.
7705
7706 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
7707
7708         * except.c (start_dynamic_handler): Compute size using
7709         STACK_SAVEAREA_MODE.
7710
7711 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7712
7713         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
7714         include directory headers.  Don't define strrchr.  Don't provide
7715         my_* replacement functions.  Prefer PTR over `pointer_type'.
7716         Don't prototype system functions.  Don't redefine getopt.
7717
7718         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
7719         safe_read, safe_write, save_pointers, restore_pointers,
7720         is_id_char, in_system_include_dir, directory_specified_p,
7721         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
7722         find_corresponding_lparen, referenced_file_is_newer,
7723         save_def_or_dec, munge_compile_params, gen_aux_info_file,
7724         process_aux_info_file, identify_lineno, check_source,
7725         seek_to_line, forward_to_next_token_char, output_bytes,
7726         output_string, output_up_to, other_variable_style_function,
7727         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
7728         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
7729         find_static_definition, connect_defs_and_decs, add_local_decl,
7730         add_global_decls, needs_to_be_converted, visit_each_hash_node,
7731         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
7732         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
7733         scan_for_missed_items, edit_file, string_list_cons): Add static
7734         prototypes.
7735         (standard_exec_prefix, target_machine, target_version,
7736         default_syscalls_dir, string_list, string_list_cons, find_file,
7737         do_cleaning): Constify a char*.
7738         (safe_read, safe_write): Use PTR, not a char*.
7739         (is_id_char): Take an int, not a char.
7740         (main): Add prototype.  Call return, not exit.
7741
7742 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
7743
7744         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
7745         when comparing types.
7746
7747 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
7748
7749         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
7750         (strength_reduce): Release the varrays from the no-bivs early exit.
7751
7752         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
7753         the loop over the registers.
7754
7755         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
7756         for a new obstack.
7757         (restore_tree_status): Check that instead when freeing the obstack.
7758
7759 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
7760
7761         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
7762         as pointers.
7763
7764 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7765
7766         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
7767         operand size modifiers.
7768
7769 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7770
7771         * c-common.c (c_common_nodes_and_builtins): Don't build
7772         va_list_type_node.
7773         * c-common.h (enum c_tree_index and related accesor macros): Remove
7774         everything now declared in tree.h.
7775         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
7776         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
7777         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
7778         (error_mark_node, void_type_node, char_type_node, integer_type_node,
7779         unsigned_type_node, ptr_type_node, va_list_type_node,
7780         integer_zero_node, null_pointer_node, integer_one_node): Delete.
7781         (init_decl_processing): Call build_common_tree_nodes and
7782         build_common_tree_nodes_2 instead of building their nodes here.
7783         Don't add roots for these nodes.
7784         * stor-layout.c (size_zero_node, size_one_node): Delete.
7785         (set_sizetype): Make a new node for bitsizetype each time.
7786         * tree.c (global_trees): New variable.
7787         (init_obstacks): Add a gc root for it.
7788         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
7789         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
7790         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
7791         (build_common_tree_nodes): New function.
7792         (fix_sizetype): New function.
7793         (build_common_tree_nodes_2): New function.
7794         * tree.h (enum tree_index): New.
7795         (global_trees): Declare.
7796         Add accessor macros for all nodes now moved to global_trees.
7797         Delete their declarations.
7798
7799 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
7800
7801         * c-decl.c (finish_function): When processing a nested function,
7802         push and pop GC context around rest_of_compilation.
7803
7804 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
7805
7806         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
7807         Default ix86_arch to PROCESSOR_I386.
7808         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
7809         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
7810         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
7811         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
7812         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
7813         (EXTRA_SPECS): Remove deleted specs.
7814
7815 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
7816
7817         * function.c (assign_stack_local_1): Allocate from
7818         function->x_frame_offset, not frame_offset.
7819
7820 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
7821
7822         * ggc.h (lang_cleanup_tree): Remove.
7823         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
7824         * ggc-callbacks.c (lang_cleanup_tree): Remove.
7825
7826         * c-decl.c (finish_struct): Use ggc_alloc to allocate
7827         TYPE_LANG_SPECIFIC when garbage collecting.
7828         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
7829         (lang_cleanup_tree): Remove.
7830
7831 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
7832
7833         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
7834         * crtstuff.c: Not here.
7835         * dwarf2out.c: Or here.
7836         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
7837         info.
7838
7839 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
7840
7841         * function.h (free_after_compilation): Remove decl parameter.
7842         (free_varasm_status0: Likewise.
7843         (free_emit_status): Likewise.
7844         (free_stmt_status): Likewise.
7845         (free_after_compilation): Likewise.
7846         (init_lang_status): New variable.
7847         (free_lang_status): Likewise.
7848         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
7849         * function.c (init_lang_status): New variable.
7850         (free_lang_status): Likewise.
7851         (push_function_context_to): Don't set function::decl here.
7852         (free_after_copmilation): Make decl parameter implicit.  Call
7853         free_lang_status if defined.
7854         (prepare_function_start): Call init_lang_status if defined.
7855         (init_function_start): Set function::decl here.
7856         * profile.c (output_func_start_profiler): Don't call pushdecl
7857         until we've actually started the function.
7858         * stmt.c (free_stmt_status): Make decl parameter implicit.
7859         * toplev.c (rest_of_compilation): Don't pass decl to
7860         free_after_compilation.
7861         * varasm.c (free_varasm_status): Likewise.
7862
7863 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7864
7865         * except.c (call_get_eh_context): Add root when allocating static
7866         tree variable.
7867
7868 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
7869
7870         * arm.c: Include "ggc.h".
7871         (arm_add_gc_roots): New function.
7872         (arm_override_options): Call it.
7873         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
7874
7875         * arm.md (define_asm_attributes): Add a pool_range attribute.
7876
7877 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
7878
7879         * extend.texi (Volatiles): New node.
7880
7881 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
7882
7883         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
7884         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
7885         (struct ggc_any): Replace `mark' with `magic_mark'.
7886         (ggc_alloc_string): Use memcpy, not bcopy.
7887         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
7888         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
7889         (ggc_free_any): New.
7890         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
7891         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
7892         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
7893         Use IS_MARKED. Use ggc_free_any.
7894
7895 1999-09-09  Scott Bambrough <scottb@netwinder.org>
7896
7897         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
7898
7899 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
7900
7901         * toplev.c (main): Always init_ggc.
7902
7903 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
7904
7905         * except.c (find_all_handler_type_matches): Free the list if
7906         we found no matches.
7907
7908         * combine.c (SUBST): Break out to a real function do_SUBST.
7909         (SUBST_INT): Likewise.
7910         * gcse.c (free_pre_mem): Free `temp_bitmap'.
7911         (pre_insert): Free `inserted'.
7912         * loop.c (basic_induction_var): Always set `location'.
7913
7914         * function.c (expand_function_end): Add initial_trampoline as a root.
7915         * rtl.h (init_varasm_once): Declare.
7916         * toplev.c (compile_file): Call it.
7917         * ggc-simple.c (ggc_mark_string_ptr): New.
7918         (ggc_add_string_root): New.
7919         (ggc_collect): Disable collection avoidance temporarily.
7920         * ggc.h (ggc_add_string_root): Declare.
7921         * except.c (create_rethrow_ref): Use ggc_alloc_string.
7922         * optabs.c (init_libfuncs): Likewise.
7923         * varasm.c (named_section): Use ggc_alloc_string.
7924         (make_function_rtl): Likewise.
7925         (make_decl_rtl): Likewise.
7926         (assemble_static_space): Likewise.
7927         (assemble_trampoline_template): Likewise.
7928         (output_constant_def): Likewise.
7929         (force_const_mem): Likewise.
7930         (mark_const_hash_entry): New.
7931         (mark_pool_sym_hash_table): New.
7932         (mark_varasm_state): Use it.
7933         (init_varasm_once): New.
7934
7935         * expr.h (init_one_libfunc): Declare.
7936         * optabs.c (init_one_libfunc): New.
7937         (init_optabs): Use it.
7938         * config/gofast.h: Likewise.
7939         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
7940         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
7941
7942 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
7943
7944         * Makefile.in (cppexp.o): Depend on cpphash.h.
7945         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
7946         Include cpphash.h.
7947         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
7948         * cpplib.c (do_define): Generalise to handle poisoned definitions,
7949         redefining poisoned identifiers, etc.
7950         (do_undef): Don't allow poisoned identifiers to be undefined.
7951         (do_pragma): Add #pragma poison.
7952         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
7953
7954         * cccp.c: Add T_POISON node type.
7955         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
7956         poisoned xxx.
7957         (do_define): Generalise to handle poisoned definitions,
7958         redefining poisoned identifiers, etc.
7959         (do_undef): Don't allow poisoned identifiers to be undefined.
7960         (do_pragma): Add #pragma poison.
7961         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
7962
7963         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
7964         * c-pragma.h: Add ps_poison state.  We now always have generic
7965         pragmas.
7966
7967 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
7968
7969         * ggc.h (ggc_alloc): New function.
7970         (ggc_mark): Likewise.
7971         * ggc-simple.c (ggc_any): New structure.
7972         (ggc_status): Add anys.
7973         (n_anys_collected): New variable.
7974         (ggc_alloc): Define.
7975         (ggc_mark): Likewise.
7976         (ggc_collect): Collect the anys.
7977
7978 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7979
7980         * c-decl.c (mark_binding_level): Make static to match prototype.
7981
7982 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
7983
7984         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
7985
7986 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
7987
7988         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
7989         will use into account.  Expand the max width to 5.
7990         * rtl.c: Likewise.
7991
7992 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
7993
7994         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
7995         for the rtx length.
7996
7997 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
7998
7999         * alpha.md (call value patterns): Remove the result predicates.
8000
8001 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
8002
8003         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
8004         last change.
8005
8006 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8007
8008         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
8009         changed from extern char *, to extern PTR.  Also fix typo in
8010         NEED_DECLARATION_REALLOC test.
8011
8012         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
8013
8014 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8015
8016         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
8017         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
8018         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
8019         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
8020
8021         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
8022
8023         * cccp.c (pcfinclude): Likewise.
8024
8025         * global.c (allocno_compare): Likewise.
8026
8027         * haifa-sched.c (rank_for_schedule): Likewise.
8028
8029         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
8030
8031         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
8032
8033         * stupid.c (stupid_reg_compare): Likewise.
8034
8035         * tree.c (_obstack_allocated_p): Likewise.
8036
8037         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
8038
8039 1999-09-08  Bruce Korb  autogen@linuxbox.com
8040
8041         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
8042         why "gperf -F" fails.
8043         * gcc/cp/Makefile.in: ditto
8044         * gcc/Makefile.in: ditto
8045         * gcc/java/Makefile.in: ditto
8046
8047 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
8048
8049         * lists.c: Include ggc.h.
8050         (zap_lists): New.
8051         (init_EXPR_INSN_LIST_cache): Install it.
8052
8053         * ggc-simple.c (init_ggc): Absorb the old init.
8054         (ggc_push_context): Use xcalloc.
8055         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
8056         (ggc_collect): Add [rvts] tags to the collection stats.
8057
8058 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
8059
8060         * cccp.c (main): Fix handling of -include and -imacros options.
8061
8062 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
8063
8064         * cpplib.c (cpp_push_buffer): Fix order of arguments.
8065
8066 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
8067
8068         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
8069         genrtl.c.
8070
8071 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
8072
8073         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
8074         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
8075         and SET_DEST. Update comment.
8076
8077 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8078
8079         * config/c4x/c4x.c: Include ggc.h.
8080         (c4x_add_gc_roots): New function.
8081         (c4x_override_options): Call c4x_add_gc_roots.
8082
8083 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
8084
8085         * defaults.h (TARGET_ESC): Move ...
8086         * system.h: ... here, where Linas had it in the first place.  Silly me.
8087
8088 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
8089
8090         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
8091         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
8092         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
8093         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
8094         * defaults.h (TARGET_ESC): Add default.
8095
8096 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
8097
8098         * configure.in: add i370-*-openedition, i370-*-mvs and
8099         i370-*-linux targets
8100
8101 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
8102
8103         * dsp16xxx.c: Include ggc.h
8104         (override_options): Mark GC roots.
8105         * mn10200.c: Include ggc.h.
8106         (asm_file_start): Mark GC roots.
8107         * tahoe.c: Include ggc.h.
8108         (extensible_operand): Mark GC roots.
8109
8110 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
8111
8112         * README: Add section discussing status of ELF ABI.
8113         * i370.c: Fix misc spelling mistakes.
8114         (i370_label_scan): Updated notes, exception handling.
8115         (i370_function_prolog): Simplify ELF stack handling.
8116         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
8117         (STACK_GROWS_DOWNWARD): ELF stack grows down.
8118         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
8119         * i370.md: (movdi): Add notes.
8120         (floatsidf2): Use stack not rtca for scratch float area.
8121         (iorsi3): Correct operand constraints.
8122         * x-oe: Restore TAROUTOPTS which are used by pax.
8123
8124 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
8125
8126         * rs6000.c: Include ggc.h.
8127         (rs6000_add_gc_roots): New function.
8128         (override_options): Call it.
8129
8130 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
8131
8132         * alpha.h (alpha_compare): New.
8133         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
8134         * alpha.c: Likewise for the definitions.
8135         (alpha_emit_conditional_branch): Update for alpha_compare.
8136         (alpha_emit_conditional_move): Likewise.
8137         * alpha.md (cmpdf, cmpdi): Likewise.
8138         (setcc patterns): Likewise.  Zero alpha_compare after use.
8139         (sne): Optimize (x != 0) into (0U < x).
8140
8141 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
8142
8143         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
8144         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
8145         (INIT_EXPANDERS): Remove.
8146         * alpha.c: Include ggc.h.
8147         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
8148         (alpha_init_machine_status, alpha_mark_machine_status): New.
8149         (override_options): Install them.
8150         (struct machine_function): Moved to alpha.h.
8151         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
8152         (alpha_init_expanders): Remove.
8153         (alpha_return_addr): Adjust to use current_function->machine.
8154         (alpha_ra_ever_killed): Likewise.
8155         (alpha_expand_epilogue): Likewise.
8156         * alpha.md (eh_epilogue): Likewise.
8157
8158 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
8159                           Melissa O'Neill  <oneill@cs.sfu.ca>
8160                           Geoffrey Keating  <geoffk@cygnus.com>
8161
8162         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
8163         call-used registers (call-saved registers must still be contiguous
8164         and end with r31, of course).
8165
8166 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
8167
8168         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
8169         (self_promoting_type_p): Delete.
8170         (self_promoting_args_p): Move ...
8171         * c-common.c: ... here.
8172         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
8173         (simple_type_promotes_to): New.
8174         * builtins.c (lang_type_promotes_to): New.
8175         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
8176         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
8177         * c-common.h: ... here.
8178         (self_promoting_args_p, simple_type_promotes_to): Declare.
8179         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
8180         (grokdeclarator): Likewise.
8181         * tree.h (lang_type_promotes_to): Declare.
8182
8183 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
8184
8185         Add some machine-dependent GC roots.
8186         * sparc.c: Include ggc.h.
8187         (sparc_add_gc_roots): New function.
8188         (mark_ultrasparc_pipeline_state): Likewise.
8189         (override_options): Call sparc_add_gc_roots.
8190         * pa.c: Include ggc.h.
8191         (pa_add_gc_roots): New function.
8192         (mark_deferred_plabels): Likewise.
8193         (override_options): Call pa_add_gc_roots.
8194         * mips.c: Include ggc.h.
8195         (mips_add_gc_roots): New function.
8196         (override_options): Use it.
8197
8198 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8199
8200         * cpperror.c (cpp_file_line_for_message): Constify a char*.
8201
8202         * cppexp.c (parse_number, parse_charconst, cpp_lex,
8203         cpp_parse_expr): Add static prototypes.
8204         (parse_charconst): Don't cast away const-ness.
8205         (token): Constify a char*.
8206
8207         * cppfiles.c (file_name_list, include_hash, find_include_file,
8208         finclude, initialize_input_buffer): Constify a char*.
8209         (file_cleanup, find_position): Add static prototypes.
8210
8211         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
8212         collect_expansion): Add static prototypes.
8213         (cpp_install, create_definition, monthnames): Constify a char*.
8214
8215         * cpphash.h (cpp_install): Likewise.
8216
8217         * cppinit.c (known_suffixes, default_include,
8218         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
8219         (base_name, dump_special_to_buffer, initialize_dependency_output):
8220         Add static prototypes.
8221
8222         * cpplib.c (my_strerror): Constify a char*.
8223         (null_underflow, null_cleanup, skip_comment, copy_comment,
8224         copy_rest_of_line, handle_directive, pass_thru_directive,
8225         get_directive_token, read_line_number, cpp_print_file_and_line,
8226         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
8227         v_cpp_warning_with_line, detect_if_not_defined,
8228         consider_directive_while_skipping): Add static prototypes.
8229         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
8230         cpp_pedwarn_with_file_and_line): Constify a char*.
8231
8232         * cpplib.h (cpp_options, include_hash, progname, definition,
8233         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
8234         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
8235         find_include_file, deps_output, include_hash): Constify a char*.
8236
8237         * cppmain.c (progname): Constify.
8238         (main): Add prototype.  Use return, not exit.
8239
8240         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
8241         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
8242         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
8243         check_protection): Add static prototype.
8244         (xfree): Remove.
8245         (progname, recognized_macrom, recognized_extern): Constify a char*.
8246         (main): Add prototype.
8247
8248         * gen-protos.c (progname): Constify a char*.
8249
8250 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
8251
8252         * emit-rtl.c (free_emit_status): Take decl as a parameter.
8253         (init_emit_once): Add more GC roots.
8254         * except.c (mark_func_eh_entry): New function.
8255         (mark_eh_node): Mark false_label and rethrow_label.
8256         (init_eh): Add more GC roots.
8257         * function.c (free_after_compilation): Take decl as a paramter.
8258         Call free_stmt_status.
8259         (mark_function_state): Don't assume x_parm_reg_stack_loc is
8260         non-NULL.
8261         * function.h (free_after_compilation): Change prototype.
8262         (free_varasm_status): Likewise.
8263         (free_emit_status): Likewise.
8264         (free_stmt_status): New function.
8265         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
8266         Remove, replacing with ...
8267         (ggc_status): New structure.
8268         (ggc_chain): New variable.
8269         (init_gcc): Define.
8270         (ggc_push_context): New function.
8271         (ggc_pop_context): Likewise.
8272         (ggc_alloc_rtx): Adjust for use of ggc_chain.
8273         (ggc_alloc_rtvec): Likewise.
8274         (ggc_alloc_tree): Likewise.
8275         (ggc_alloc_string): Likewise.
8276         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
8277         (ggc_mark_tree): Give language-dependent code a chance to mark
8278         `x' nodes.
8279         (ggc_mark_tree_varray): Handle empty arrays.
8280         (ggc_collect): Adjust for use of ggc_chain.  Clear
8281         bytes_alloced_since_last_gc.
8282         * ggc.h (ggc_pop_context): New function.
8283         (ggc_push_context): Likewise.
8284         * print-tree.c (print_node): Don't print obstacks when GC'ing.
8285         * stmt.c (free_stmt_status): New function.
8286         (init_stmt_for_function): Clear last_expr_value.
8287         * toplev.c (rest_of_compilation): Always call free_after_compilation.
8288         Conditionalize call to ggc_collect.
8289         (main): Call init_ggc.
8290         * tree.c (push_obstacks): Do the push, even when GC'ing.
8291         (push_obstacks_nochange): Likewise.
8292         (pop_obstacks): Liekwise.
8293         * varasm.c (free_varasm_status): Take decl as a parameter.
8294
8295 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8296
8297         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
8298         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
8299         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
8300         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
8301
8302 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
8303
8304         * pa/x-pa-mpeix: New file for the MPE port.
8305
8306         * pa/quadlib.asm: New file for long double support.
8307
8308         * configure.in: Add hppa1.0-*-mpeix for MPE port.
8309         * configure: Rebuilt.
8310
8311 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
8312
8313         * final.c (shorten_branches): Fix last change.
8314
8315 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
8316
8317         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
8318
8319 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
8320
8321         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
8322         details.
8323
8324 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8325
8326         * c-aux-info.c (concat): Don't define.
8327
8328         * cccp.c (my_strerror): Likewise.  All callers changed to use
8329         xstrerror instead.
8330         (do_include): Call xstrdup, not xmalloc/strcpy.
8331         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
8332         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
8333
8334         * collect2.c (my_strsignal): Likewise.  All callers changed to use
8335         strsignal instead.
8336         (locatelib): Call xstrdup, not xmalloc/strcpy.
8337
8338         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
8339
8340         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
8341
8342         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
8343
8344         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
8345
8346         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
8347
8348         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
8349
8350         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
8351         malloc/realloc.
8352         (find_all_handler_type_matches): Likewise.  Don't check return
8353         value.
8354         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
8355         xmalloc, not malloc.
8356         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
8357
8358         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
8359         (init_spec): Call xcalloc, not xmalloc/bzero.
8360         (set_spec): Call xstrdup, not save_string.
8361         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
8362         (find_a_file): Call xstrdup, not xmalloc/strcpy.
8363         (process_command): Call xstrdup, not save_string.
8364         (main): Call xcalloc, not xmalloc/bzero.
8365
8366         * gcov.c (xmalloc): Don't define.
8367         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
8368         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
8369         (output_data): Call xcalloc, not xmalloc/bzero.
8370
8371         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
8372
8373         * mips-tdump.c (xmalloc): Don't define.
8374         (print_symbol): Call xmalloc, not malloc.
8375         (read_tfile): Call xcalloc, not calloc.
8376
8377         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
8378         Don't define.  All callers of xfree/my_strsignal changed to use
8379         free/strsignal instead.
8380         (allocate_cluster): Call xcalloc, not calloc.
8381
8382         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
8383         Fix memory leak, free allocated memory.
8384
8385         * prefix.c (translate_name): Call xstrdup, not save_string.
8386         (update_path): Likewise.
8387
8388         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
8389
8390         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
8391         Don't define.  Callers of xfree/savestring2 changed to use
8392         free/concat instead.
8393
8394         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
8395         (init_elim_table): Likewise.
8396
8397         * resource.c (init_resource_info): Likewise.
8398
8399         * stupid.c (stupid_life_analysis): Likewise.
8400
8401         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
8402         (open_dump_file): Call concat, not xmalloc/strcpy/...
8403         (clean_dump_file): Likewise.
8404         (compile_file): Call xstrdup, not xmalloc/strcpy.
8405
8406 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
8407
8408         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
8409         * v850.c (v850_va_arg): New.
8410
8411 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8412
8413         * haifa-sched.c: Tidy comments.
8414
8415 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8416
8417         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
8418         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
8419         $(out_object_file)): Depend on ggc.h.
8420         * c-common.c: Include "ggc.h".
8421         (combine_strings): If doing GC, use ggc_alloc_string.
8422         * c-decl.c: Include "ggc.h".
8423         (ggc_p): Define with value 0.
8424         (mark_binding_level): New function.
8425         (init_decl_processing): Add GC roots.
8426         (mark_c_function_context): New function.
8427         (lang_mark_false_label_stack): New function.
8428         (lang_mark_tree): New function.
8429         (lang_cleanup_tree): New function.
8430         * c-lang.c: Include "ggc.h".
8431         (lang_init): Call c_parse_init.
8432         * c-lex.c: Include "ggc.h".
8433         (check_linenum): If doing GC, don't copy filenames to permanent
8434         obstack.
8435         * c-parse.in: Include "ggc.h".
8436         (c_parse_init): New function.
8437         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
8438         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
8439
8440         * except.c (mark_eh_state): Mark more state.
8441         * function.c (mark_function_state): Likewise.
8442         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
8443         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
8444         * toplev.c (mark_file_stack): New function.
8445         (compile_file): If doing GC, use ggc_alloc_string on input filename.
8446         (main): Add root for input_file_stack.
8447
8448         * i386.c: Include "ggc.h".
8449         (ix86_mark_machine_status): New function.
8450         (override_options): Set mark_machine_status.
8451
8452 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8453
8454         * tree.c (copy_node): Copy node contents also if doing GC.
8455
8456 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
8457
8458         * collect2.c (scan_libraries): Fix double-thinko :-).
8459
8460 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
8461
8462         * collect2.c (scan_libraries): Fix thinko.
8463
8464         * cse.c (delete_trivially_dead_insns): Do not skip the last
8465         insn if it is a real insn.
8466
8467 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
8468
8469         * Makefile.in (ggc-simple.o): Depend on hash.h.
8470         * ggc.h (ggc_add_tree_hash_table_root): Declare.
8471         (ggc_mark_tree_varray): Likewise.
8472         (ggc_mark_tree_hash_table): Likewise.
8473         * ggc-simple.c: Include hash.h.
8474         (ggc_mark_tree_hash_table_ptr): New function.
8475         (ggc_mark_tree_hash_table_entry): Likewise.
8476         (ggc_mark_tree_hash_table): Likewise.
8477         (ggc_add_tree_hash_table_root): Likewise.
8478         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
8479         rtx, when defining fields.
8480
8481 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8482
8483         * profile.c (output_func_start_profiler): Remove apparently
8484         nonsensical call to start_sequence.
8485
8486 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
8487
8488         * clipper/clipper.c (clipper_va_start): Fix typos.
8489
8490         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
8491         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
8492         (spur_va_arg): New stub.
8493
8494         * configure.in: Comment out pyramid.
8495
8496 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
8497
8498         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
8499         don't conflict with the bits that win32, cygwin, and dgux
8500         defines.
8501
8502 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
8503                           Bernd Schmidt <bernds@cygnus.co.uk>
8504
8505         * integrate.c (function_cannot_inline_p): Do not inline
8506         functions with forced labels.
8507
8508 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
8509                           Bernd Schmidt <bernds@cygnus.co.uk>
8510                           Mark Mitchell  <mark@codesourcery.com>
8511
8512         * Makefile.in (ggc-simple.o): Depend on varray.h.
8513         (rtl.o): Depend on ggc.h.
8514         (genattrtab.o): Depend on ggc.h.
8515         (print-tree.o): Likewise.
8516         (fold-const.o): Likewise.
8517         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
8518         (make_insn_raw): Don't cache insns when GC'ing.
8519         (emit_insn_before): Likewise.
8520         (emit_insn_after): Likewise.
8521         (emit_insn): Likewise.
8522         (start_sequence): Use xmalloc to allocate the sequence_stack.
8523         (end_sequence): Add free to free it.
8524         (gen_sequence): Don't cache insns when GC'ing.
8525         (clear_emit_caches): Don't use sequence_element_free_list.
8526         (init_emit): Use xcalloc, not xmalloc+bzero.
8527         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
8528         * function.c (pop_function_context_from): Use free to free the
8529         fixup_var_refs_queue.
8530         (put_reg_into_stack): Allocate it with xmalloc.
8531         * genattrtab.c: Include ggc.h.
8532         (operate_exp): Don't use obstack_free when GC'ing.
8533         (simplify_cond): Likewise.
8534         (simplify_text_exp): Likewise.
8535         (optimize_attrs): Likewise.
8536         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
8537         GC'ing.
8538         (gencode): Generate a #include for ggc.h.
8539         * ggc-callbacks.c (ggc_p): Define it to zero.
8540         * ggc-none.c (ggc_p): Likewise.
8541         * ggc-simple.c: Include varray.h.
8542         (ggc_mark_tree_varray): New function.
8543         (ggc_add_tree_varray_root): Likewise.
8544         (ggc_mark_tree_varray_ptr): Likewise.
8545         * ggc.h (ggc_p): Declare.
8546         (varray_head_tag): Likewise.
8547         (ggc_add_tree_varray_root): Declare.
8548         * print-tree.c (print_node): Don't check for TREE_PERMANENT
8549         inconsistencies when GC'ing.
8550         * rtl.c: Include ggc.h.
8551         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
8552         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
8553         (rtx_free): Don't call obstack_free when GC'ing.
8554         * toplev.c (rest_of_compilation): Call ggc_collect after every
8555         pass, if GC'ing.
8556         * tree.c (push_obstacks): Do nothing, if GC'ing.
8557         (pop_obstacks_nochange): Likewise.
8558         (pop_obstacks): Likewise.
8559         (make_node): Use ggc_alloc_tree when GC'ing.
8560         (copy_node): Likewise.
8561         (get_identifier): Use ggc_alloc_string when GC'ing.
8562         (build_string): Likewise.
8563         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
8564         (tree_cons): Likewise.
8565         (build1): Likewise.
8566         (type_hash_canon): Don't call obstack_free when GC'ing.
8567
8568 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
8569
8570         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
8571         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
8572
8573 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
8574                           Bernd Schmidt <bernds@cygnus.co.uk>
8575                           Mark Mitchell  <mark@codesourcery.com>
8576
8577         * Makefile.in (stor-layout.o): Depend on ggc.h.
8578         (expr.o): Depend on ggc.h.
8579         (profile.o): Depend on ggc.h.
8580         (stor-layout.o): Depend on ggc.h.
8581         * emit-rtl.c (init_emit_once): Add gc roots.
8582         * expr.c: Include ggc.h.
8583         (emit_block_move): Add gc roots.
8584         (clear_storage): Likewise.
8585         * expr.h (init_stor_layout_once): New function.
8586         * profile.c: Include ggc.h.
8587         (init_arc_profiler): profiler_label is a root.
8588         * scan.c (make_sstring_space): Trust xrealloc to function
8589         correctly with first parameter NULL.
8590         * stor-layout.c: Include ggc.h.
8591         (set_sizetype): Add gc root.
8592         (init_stor_layout_once): New function.
8593         * toplev.c (compile_file): Call it.
8594
8595 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
8596                           Bernd Schmidt <bernds@cygnus.co.uk>
8597                           Mark Mitchell  <mark@codesourcery.com>
8598
8599         * Makefile.in (tree.o): Depend on ggc.h.
8600         (varasm.o): Likewise.
8601         (function.o): Likewise.
8602         (stmt.o): Likewise.
8603         (except.o): Likewise.
8604         (optabs.o): Likewise.
8605         (emit-rtl.o): Likewise.
8606         * emit-rtl.c: Include ggc.h.
8607         (sequence_element_free_list): Remove, and all references.
8608         (mark_sequence): New functions.
8609         (mark_emit_state): New function.
8610         * except.c: Include ggc.h.
8611         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
8612         (mark_tree_label_node): New functions.
8613         (mark_eh_state): New function.
8614         * function.c: Include ggc.h.
8615         (mark_temp_slot, mark_function_chain): New functions.
8616         (mark_function_state): New function.
8617         (init_function_once): New function.
8618         * function.h (init_function_once): New function.
8619         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
8620         * ggc.h (label_node): Declare.
8621         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
8622         (lang_mark_false_label_stack): New function.
8623         (mark_temp_slot): Remove declaration.
8624         (mark_function_chain): Likewise.
8625         (mark_eh_state): Adjust prototype.
8626         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
8627         Likewise.
8628         * optabs.c: Include ggc.h.
8629         (mark_optab): New function.
8630         (init_optabs): Add gc roots.
8631         * stmt.c: Include ggc.h.
8632         (mark_cond_nesting, mark_loop_nesting): New functions.
8633         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
8634         (mark_stmt_state): New function.
8635         * toplev.c (compile_file): Call init_function_once.
8636         * tree.c: Include ggc.h.
8637         (type_hash): Move declaration earlier in file.
8638         (TYPE_HASH_SIZE, type_hash_table): Likewise.
8639         (init_obstacks): Add gc roots.
8640         (mark_type_hash): New function.
8641         * varasm.c: Include ggc.h.
8642         (mark_pool_constant): New function.
8643         (mark_varasm_state): New function.
8644
8645 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8646
8647         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
8648
8649 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
8650
8651         * c-decl.c (struct language_function): Renamed from struct c_function.
8652         Delete elt NEXT.
8653         (c_function_chain): Delete.
8654         (push_c_function_context): New arg F.  Don't warn about nested
8655         functions here.  Fill LANGUAGE elt of F.  Delete code to update
8656         c_function_chain.  Don't call push_function_context.
8657         (pop_c_function_context): New arg F.  Restore from there instead of
8658         from c_function_chain.  Don't call pop_function_context.  Clear out
8659         LANGUAGE field of F when done.
8660         * c-lang.c: Include "function.h"
8661         (lang_init): Initialize save_lang_status and restore_lang_status.
8662         * c-parse.in (nested_function, nested_function_notype): Warn about
8663         nested functions.  Call push_function_context/pop_function_context
8664         instead of the _c_ variants.
8665         * c-tree.h (push_c_function_context, pop_c_function_context): Update
8666         prototype.
8667         * Makefile.in (c-lang.o): Update dependencies.
8668
8669         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
8670         regno_pointer_flag, regno_pointer_align.
8671         (gen_reg_rtx): Use xrealloc to enlarge them.
8672         (free_emit_status): New function.
8673         * function.c (mark_machine_status, mark_lang_status): New variables.
8674         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
8675         in some bits from assign_stack_local.  All callers changed to use new
8676         name.
8677         (assign_stack_local): Just call assign_stack_local_1.
8678         (free_after_compilation): New function.
8679         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
8680         (trampoline_address): Likewise.
8681         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
8682         (prepare_function_start): Explicitly clear some more variables.
8683         * function.h (struct function): New elt can_garbage_collect.
8684         (mark_machine_status, mark_lang_status): Declare variables.
8685         (free_after_compilation, free_emit_status, free_varasm_status,
8686         init_varasm_status): Declare functions.
8687         * toplev.c (rest_of_compilation): Call free_after_compilation when
8688         done with the current function.
8689         * varasm.c (free_varasm_status): New function.
8690
8691 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
8692
8693         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
8694         (EXPAND_BUILTIN_VA_ARG): Define.
8695         * sparc.c (sparc_va_start): New.
8696         (sparc_va_arg): New.
8697
8698 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8699
8700         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
8701
8702 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8703
8704         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
8705
8706 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
8707
8708         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
8709         (OBJS): Add $(GGC).
8710         (ggc-callbacks.o): New target.
8711         * ggc-callbacks.c: New file.
8712
8713 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8714
8715         * expr.h: Collapse individual optab and libfunc vars to arrays.
8716         (optab_index, libfunc_index): New enumerations.
8717         (optab_table, libfunc_table): New arrays.
8718         Add accessor macros for both.
8719
8720         * optabs.c (optab_table, libfunc_table): New.
8721         Delete declarations for individual optab and libfunc vars.
8722
8723 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
8724
8725         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
8726
8727 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
8728
8729         * Makefile.in (GGC, GGC_LIB): New.
8730         (HOST_RTL): Include ggc-none.o.
8731         (ggc-simple.o): New target.
8732         (ggc-none.o): Likewise.
8733         * tree.h (tree_common): Add gc_mark.
8734         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
8735         (struct rtvec_def): Add gc_mark.
8736         * emit-rtl.c (global_rtl): Update static initializers to contain
8737         enough initializers.
8738         * ggc.h, ggc-none.c, ggc-simple.c: New files.
8739         * toplev.c (gc_time): New variable.
8740         (all_time): New variable.
8741         (compile_file): Print gc time.
8742         (print_time): Calculate percentage of the whole.
8743
8744 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8745
8746         Change obstack memory management and varasm constant pool handling so
8747         that nested functions are treated like any other functions.
8748         * function.c (init_machine_status): New variable.
8749         (push_function_context_to): Set contains_functions for the outer
8750         function.  Don't call save_varasm_status.
8751         (pop_function_context_from): Don't call restore_varasm_status.  Don't
8752         set current_function_contains_functions.
8753         (prepare_function_start): Call init_varasm_status rather than
8754         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
8755         is non-null.
8756         * function.h (struct function) Add field varasm.  Delete fields
8757         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
8758         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
8759         (init_machine_status): Declare.
8760         (save_varasm_status, restore_varasm_status): Delete declarations.
8761         (save_tree_status, restore_tree_status): Delete last argument.
8762         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
8763         code.  All callers changed.
8764         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
8765         save_constants_in_decl_trees, restore_constants, save_constants,
8766         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
8767         functions.
8768         (inlining): New variable.
8769         (reg_map, label_map, insn_map, orig_asm_operands_vector,
8770         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
8771         variables.
8772         (save_for_inline_nocopy): Don't save constants.
8773         Don't set inl_emit field in current_function.
8774         (expand_inline_function): Use emit field, not inl_emit, of the inlined
8775         function.  Set new variable inlining before
8776         calling copy_rtx_and_substitute.
8777         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
8778         constant pool references if inlining is nonzero.
8779         Delete ADDRESS and (most of the) CONST cases.
8780         (output_inline_function): Save and restore current_function/
8781         current_function_decl.  Delete restore_constants code.  Don't call
8782         init_const_rtx_hash_table.
8783         * output.h (init_const_rtx_hash_table): Don't declare.
8784         * rtl.h (struct function): Declare.
8785         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
8786         * toplev.c (rest_of_compilation): Don't treat nested functions or
8787         functions containing them specially.  Delete all code to deal with
8788         save_for_inline_copying.
8789         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
8790         inline_obstacks): Delete variables.
8791         (save_tree_status): Lose arg CONTEXT.  All callers changed.
8792         Simply allocate a new function_maybepermanent_obstack for the new
8793         function, delete all the special cases.
8794         Don't save inline_obstacks.
8795         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
8796         Delete special handling for function_maybepermanent_obstack; simply
8797         free it if empty.
8798         Don't restore inline_obstacks.
8799         (permanent_allocation):  Delete code that frees inline_obstacks.
8800         (print_inline_obstack_statistics): Delete function.
8801         (dump_tree_statistics): Don't call it.
8802         * varasm.c (struct varasm_status): New.
8803         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
8804         last_pool, pool_offset, const_double_chain): Delete global
8805         variables, replace with accessor macros.
8806         (immed_double_const): Don't walk const_double_chain outside a
8807         function, but don't treat nested functions specially anymore.
8808         (immed_real_const_1): Likewise.
8809         (clear_const_double_mem): Don't treat nested functions specially.
8810         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
8811         (save_varasm_status, restore_varasm_status): Delete functions.
8812         (init_varasm_status): New function.
8813         (force_const_mem): Don't treat nested functions specially.
8814         (find_pool_constant): Accept new arg F, search for constants in
8815         that function's pool rather than the current one.  All callers
8816         changed.
8817         (get_pool_constant_for_function, get_pool_mode_for_function): New
8818         functions.
8819
8820         * i386.c (init_386_machine_status): New function, mostly from
8821         clear_386_stack_locals.
8822         (struct machine_functions): Rename element names to avoid name
8823         clashes.
8824         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
8825         macros, replacing global variables.
8826         (clear_386_stack_locals, save_386_machine_status,
8827         restore_386_machine_status): Delete functions.
8828         (override_options): Initialize init_machine_status.
8829         * i386.h (INIT_EXPANDERS): Delete macro.
8830         (save_386_machine_status, restore_386_machine_status,
8831         clear_386_stack_locals): Delete declarations.
8832
8833 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8834
8835         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
8836         (doloop_begin):  Simplify pattern and use emit_jump_insn.
8837         (doloop_end): Simplify pattern, switch operand order,
8838         and use emit_jump_insn.
8839
8840 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8841
8842         * function.h (struct function): Add new element LANGUAGE.
8843         (save_lang_status): Declare new variable.
8844         (restore_lang_status): Likewise.
8845         * function.c (save_lang_status): Define.
8846         (restore_lang_status): Likewise.
8847         (push_function_context_to): Call language-specific save function.
8848         (pop_function_context_from): Call language-specific restore function.
8849
8850 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
8851
8852         * i386.md (movsf_1): Check REG_P before use of REGNO.
8853         (movdf_1): Likewise.
8854         (movxf_1): Likewise.
8855         (extendsfdf2): Likewise.
8856         (extendsfxf2): Likewise.
8857         (extenddfxf2): Likewise.
8858
8859 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8860
8861         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
8862         constants into memory.
8863         (c4x_shiftable_constant): New function.
8864         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
8865         (c4x_shiftable_constant): Declare.
8866         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
8867         ashlqi3_noclobber): Add new patterns and associated splitters.
8868
8869 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
8870
8871         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
8872         * dwarf2out.c (dwarf2out_frame_init): Likewise.
8873         * final.c (shorten_branches): Likewise.
8874         * global.c (global_alloc): Likewise.
8875         * haifa-sched.c (build_control_flow): Likewise.
8876         * stmt.c (check_for_full_enumeration_handling): Likewise.
8877         (estimate_case_costs): Likewise.
8878
8879 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
8880
8881         * rtl.h (RTL_CHECKC2): Fix typo in last change.
8882
8883 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
8884
8885         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
8886         (recompute_reg_usage): Likewise.
8887         * rtlanal.c (find_regno_fusage): Likewise.
8888
8889         * rtl.c (rtl_check_failed_code1): New function.
8890         (rtl_check_failed_code2): New.
8891         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
8892         (RTL_CHECKC1, RTL_CHECKC2): New.
8893         (XC*): New accessor macros.
8894         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
8895         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
8896         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
8897         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
8898         (TRAP_*, RANGE_INFO_*): Likewise.
8899
8900 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8901
8902         * Makefile.in (tlink.o): Don't depend on toplev.h.
8903
8904         * collect2.c (c_file, o_file, export_file, import_file, ldout,
8905         output_file, nm_file_name, ldd_file_name, strip_file_name,
8906         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
8907         add_prefix, prefix_from_env, prefix_from_string, do_wait,
8908         fork_execute, maybe_unlink, add_to_list,
8909         extract_init_priority, write_list, dump_list,
8910         dump_prefix_list, write_list_with_asm, write_c_file,
8911         write_c_file_stat, write_c_file_glob, scan_prog_file,
8912         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
8913         ignore_library, extract_string, notice, dump_file, target_machine,
8914         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
8915         read_file, print_load_command): Constify a char*.
8916         (fdopen, error, fatal, fatal_perror): Don't prototype.
8917         (my_strerror): Remove.  All callers use xstrerror instead.
8918         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
8919         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
8920         to xcalloc/strcpy/strcat/...  to one call to concat.
8921         (main, scan_prog_file, scan_libraries): Use an intermediate
8922         `const char **' to build an argv array.
8923         (mapfile, libselect, libcompare, locatelib): Add prototypes.
8924
8925         * collect2.h (collect_execute, collect_wait, dump_file,
8926         file_exists): Constify a char*.
8927         (ldout, c_file_name, temporary_obstack, permanent_obstack,
8928         temporary_firstobj, vflag, debug): Add extern declarations.
8929         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
8930
8931         * tlink.c: Don't include toplev.h.
8932         (vflag, debug, ldout, c_file_name, temporary_obstack,
8933         permanent_obstack, temporary_firstobj): Don't declare.
8934         (tlink_execute, frob_extension, symbol_hash_lookup,
8935         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
8936         recompile_files, read_repo_files, demangle_new_symbols,
8937         scan_linker_output): Constify a char*.
8938         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
8939         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
8940
8941 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
8942
8943         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
8944         (relative) rather than jsr (absolute) subroutine call insns.
8945         * config/m68k/m68k-coff.h: Ditto.
8946
8947 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
8948
8949         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
8950         now rework these too.
8951         (arm_reorg): If an insn can't reach the end of the current pool,
8952         ensure that we emit that pool before the insn.
8953
8954 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
8955
8956         * tlink.c (scan_linker_output): Skip the initial underscore in
8957         a mangled name if appropriate.
8958
8959 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8960
8961         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8962         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
8963         error_with_ivar, gen_declarator, create_builtin_decl,
8964         my_build_string, generate_descriptor_table, generate_ivars_list,
8965         generate_dispatch_table, check_protocols, TAG_GETCLASS,
8966         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
8967         dump_base_name, lang_decode_option, build_encode_expr,
8968         start_class, finish_class, encode_pointer, really_start_method,
8969         gen_declaration, dump_interface, handle_class_ref, handle_impent):
8970         Constify.
8971         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
8972         Add static prototypes.
8973         (build_objc_string_decl, build_selector_reference_decl,
8974         encode_bitfield, build_class_reference_decl): Remove unused
8975         parameter, all callers changed.
8976         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
8977         (objc_printable_name): Likewise.  Change second parameter to type int.
8978         (init_objc): Use memcpy, not bcopy, to avoid casts.
8979
8980 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
8981
8982         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
8983         reg notes on a deleted insn.
8984         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
8985
8986 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
8987
8988         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
8989
8990 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8991
8992         * stmt.c (expand_asm_operands): Fix index into inout_mode when
8993         reading it.
8994
8995 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
8996
8997         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
8998         * tm.texi (MD_ASM_CLOBBERS): Document it.
8999
9000 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
9001
9002         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
9003         * except.c (expand_rethrow): Remove unused variable.
9004         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
9005         * flow.c (replace_insns): Likewise.
9006         (create_edge_list, verify_edge_list): Likewise.
9007         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
9008
9009         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
9010         is special code to run.
9011         (main): Don't define operands to emit_operand.
9012         * genrecog.c (main): Don't emit an empty peephole2_insn function.
9013
9014         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
9015
9016         * alpha/alpha.h (normal_memory_operand): Declare.
9017         (reg_no_subreg_operand): Declare.
9018         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
9019
9020 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
9021
9022         * c-parse.in (compstmt_primary_start): New, broken out of first
9023         part of compstmt handling in primary.
9024         (primary): Use it.  Add an error clause.
9025         (compstmt_nostart): Renamed from compstmt; remove all
9026         initial invocations of compstmt_start.
9027         (compstmt): New.
9028
9029 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
9030
9031         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
9032         needed.
9033
9034 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
9035
9036         * combine.c (simplify_shift_const): Remove extra semicolon.
9037         * dwarf2out.c (remove_AT): Likewise.
9038         * expmed.c (expand_mult): Likewise.
9039         * gcov.c (create_program_flow_graph): Likewise.
9040         * reorg.c (mostly_true_jump): Likewise.
9041
9042 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
9043
9044         * fold-const.c (fold_range_test): Do not try to fold the range
9045         test if the rhs or lhs has side effects.
9046
9047         * combine.c (simplify_rtx): Recognize another case of a synthesized
9048         sign extension.
9049
9050         * varasm.c (mark_constant_pool): When marking indirect references,
9051         only look at SYMBOL_REFs.
9052
9053         * except.c (expand_fixup_region_end): Do not peek at
9054         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
9055
9056 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
9057
9058         * flags.h: New variables align_loops, align_loops_log,
9059         align_jumps, align_jumps_log, align_labels, align_labels_log,
9060         align_functions, align_functions_log.
9061         * toplev.c: Define them.
9062         (f_options): Handle -falign-* when they have no argument.
9063         (main): Add logic to set variables for -falign-functions,
9064         -falign-jumps, -falign-labels, -falign-loops.
9065         Make it -fsched-verbose=<n> and -finline-limit=<n>.
9066         (display_help): Change help to match options.
9067         * final.c (LABEL_ALIGN): Default to align_labels_log.
9068         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
9069         (LOOP_ALIGN): Default to align_loops_log.
9070         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
9071         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
9072         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
9073         * varasm.c (assemble_start_function): Handle align_functions.
9074
9075         * config/sparc/sparc.h: Don't declare sparc_align_*.
9076         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
9077         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
9078         sparc.c.
9079         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
9080         it's a promise.
9081         * config/sparc/sparc.c: Delete sparc_align_loops,
9082         sparc_align_jumps, sparc_align_funcs and the corresponding string
9083         variables.
9084         (sparc_override_options): Default align_functions on ultrasparc.
9085         Delete -malign-* handling.
9086
9087         * config/mips/mips.c (override_options):  On 64-bit targets,
9088         try to align code to 64-bit boundaries.
9089         (print_operand): New substitution, %~,
9090         which aligns labels to align_labels_log.
9091         * config/mips/mips.md (div_trap_normal): Use %~.
9092         (div_trap_mips16): Likewise.
9093         (abssi): Likewise.
9094         (absdi2): Likewise.
9095         (ffssi2): Likewise.
9096         (ffsdi2): Likewise.
9097         (ashldi3_internal): Likewise.
9098         (ashrdi3_internal): Likewise.
9099         (lshrdi3_internal): Likewise.
9100         (casesi_internal): Likewise.
9101
9102 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
9103
9104         Merge new ia32 backend from the branch!
9105
9106         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
9107         See ChangeLog.P2 on new_ia32_branch for details.
9108
9109         * rtl.h (stack_regs_mentioned_p): Delete prototype.
9110         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
9111         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
9112         * i386/gas.h (ASM_FILE_START): Define.
9113         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
9114         for name change of ix86_valid_decl_attribute_p.
9115         (i386_pe_valid_type_attribute_p): Similarly.
9116
9117 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
9118
9119         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
9120         to step through CC modes.
9121
9122 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9123
9124         * regmove.c (fixup_match_1): Don't move INSN in front of P if
9125         it would end up in the shadow of a live flags regsiter.
9126
9127 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9128
9129         * reload1.c: Fix many indentation problems.
9130         * reload.c: Likewise.
9131
9132 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
9133
9134         * alias.c (non_local_reference_p): Constify fmt.
9135
9136 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
9137
9138         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
9139
9140 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
9141
9142         * cse.c (delete_trivially_dead_insns): Do not delete stores to
9143         the internal_arg_pointer.
9144
9145 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
9146
9147         Merge peephole2 from new_ia32_branch:
9148         * Makefile.in (STAGESTUFF): Add *.peephole2.
9149         (mostlyclean): Likewise.
9150         (recog.o): Depend on resource.h.
9151
9152         * final.c (peephole): Conditionalize decl on HAVE_peephole.
9153         (final_scan_insn): Likewise for the invocation of peephole.
9154         * genconfig.c (main): Look for peephole and peephole2 patterns.
9155         Emit HAVE_peephole* accordingly.
9156         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
9157         * flags.h (flag_peephole2): Declare.
9158         * toplev.c: New pass peephole2.  New flag -fpeephole2.
9159
9160         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
9161         * gencodes.c (main): Likewise.
9162         * genextract.c (main): Likewise.
9163         * genoutput.c (main): Likewise.
9164         * genemit.c (max_operand_1): Look for the max scratch operand.
9165         (gen_rtx_scratch): New.
9166         (gen_exp): Use it, and pass on new arg subroutine_type.
9167         (gen_expand): Take max scratch into account.
9168         (gen_split): Emit peephole2 functions.
9169         (output_peephole2_scratch): New.
9170         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
9171         * genrecog.c (routine_type): Add PEEPHOLE2.
9172         (IS_SPLIT): New.
9173         (make_insn_sequence): Match outer parallel for peep2.  Discard
9174         top level scratches and dups.
9175         (add_to_sequence): New args insn_type and top.  Update all callers.
9176         Handle toplevel peep2 matching insns.
9177         (write_subroutine): Handle peep2.
9178         (write_tree_1): Likewise.
9179         (write_tree): Likewise.
9180         (main): Likewise.
9181         (change_state): New arg afterward.  Update all callers.
9182         Handle matching separate insns.
9183         * recog.c (recog_next_insn): New.
9184         (peephole2_optimize): New.
9185         * rtl.def (DEFINE_PEEPHOLE2): New.
9186         * resource.c (find_free_register): New argument last_insn.  Use it
9187         to find a register available through the entire span.
9188         * resource.h (find_free_register): Update prototype.
9189
9190 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
9191
9192         * i386.c (output_strlen_unroll): Don't write xops[7]
9193         label if it wasn't set.
9194
9195 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
9196
9197         * cpplib.c (struct directive): Const-ify name pointer and
9198         function pointer prototype.
9199         (validate_else, do_define, do_line, do_include, do_undef,
9200         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
9201         do_elif, do_endif, do_sccs, do_assert, do_unassert,
9202         do_warning): Const-ify second arg.
9203         (directive_table): Mark const.  Reorder entries by frequency
9204         of usage, record statistics.
9205
9206 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
9207
9208         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
9209         bounds- check RTL accesses if --enable-checking.
9210         (RTVEC_ELT): Bounds check if --enable-checking.
9211         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
9212         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
9213         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
9214         GET_NUM_ELEM.
9215         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
9216         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
9217
9218         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
9219         (NOTE_SOURCE_FILE): Use X0STR.
9220         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
9221         MEM_ALIAS_SET): Use X0INT.
9222         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
9223         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
9224         Use X0EXP.
9225         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
9226         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
9227         (rtl_check_failed_bounds, rtl_check_failed_type1,
9228         rtl_check_failed_type2, rtvec_check_failed_bounds): New
9229         functions.
9230         (fancy_abort): Fix comment.
9231
9232         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
9233         (cse_insn): Decrement LABEL_NUSES for jump target before
9234         deleting jump insn.
9235         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
9236         * final.c (alter_subreg): Compute regno before changing x to
9237         REG; set REGNO(x) after changing it.
9238         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
9239         notes containing CONST_INTs.
9240         (delete_eh_regions): Use NOTE_EH_HANDLER.
9241         * function.c (put_reg_into_stack): Make reg a MEM before
9242         initializing it.
9243         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
9244         delete insn.
9245         (gen_mem_addressof): Make reg a MEM before initializing it.
9246         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
9247         X0WINT.
9248         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
9249         deleting an insn, not after.
9250         (block_alloc): Only look at PATTERN(insn) if we have to, and
9251         only if it's format class 'i'.
9252         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
9253         CONST_INT before using its INTVAL.
9254         * print-rtl.c (print_rtx): Use X0STR.
9255         * regmove.c (fixup_match_1): Don't look at PATTERN of
9256         non-class-'i' insn chain elements.
9257         * reload.c (loc_mentioned_in_p): Take address of
9258         in->fld[1].rtx directly.
9259         * reload1.c (reload): Change reg to a MEM before initializing
9260         it.
9261         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
9262         have no names.
9263         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
9264
9265 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
9266
9267         * config/mips/mips.c (machine_dependent_reorg): Force a
9268         barrier to output the local constant pool if a barrier hasn't
9269         been found at a natural point in the instruction stream.
9270
9271 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9272
9273         * c-parse.in (language_string): Constify.
9274
9275         * dwarf2out.c (language_string): Remove declaration.
9276
9277         * dwarfout.c (language_string): Likewise.
9278
9279         * toplev.c (language_string, init_parse, finish_parse): Likewise.
9280
9281         * tree.h (language_string, init_parse, finish_parse): Declare.
9282
9283         * i386/sun386.h (language_string): Remove declaration.
9284
9285         * mips.h (language_string): Likewise.
9286
9287         * nextstep.h (language_string): Likewise.
9288
9289         * nextstep21.h (language_string): Likewise.
9290
9291         * rs6000.c (language_string): Likewise.
9292
9293 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9294
9295         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
9296         (getpwd.o): Remove target.
9297
9298         * getpwd.c: Delete file.  Its in libiberty now.
9299
9300         * dbxout.c (getpwd): Don't prototype.
9301         * dwarf2out.c (getpwd): Likewise
9302         * dwarfout.c (getpwd): Likewise
9303         * final.c (getpwd): Likewise.
9304         * protoize.c (getpwd): Likewise.
9305
9306 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9307
9308         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
9309
9310 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
9311
9312         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
9313         mark_set_resources.
9314
9315 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
9316
9317         * fixinc/Makefile.in (subdir): New.
9318         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
9319         (Makefile): New.
9320
9321 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
9322
9323         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
9324         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
9325         be shared.
9326
9327         * invoke.texi: Fix typo.
9328
9329         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
9330         changed.  Handle autoincrement addressing modes.
9331
9332         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
9333         just like we would the virtual incoming args register when
9334         integrating.
9335
9336 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
9337
9338         * rs6000.h (ASM_FILE_START): Specify complete filename, including
9339         path, in .file directive.
9340
9341 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
9342
9343         * gcc.texi (External Bugs): Remove obsolete note about Perl on
9344         SunOS.
9345
9346 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
9347
9348         * stdbool.h: Make the typedef name _Bool, with bool a #defined
9349         alias.
9350
9351 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9352
9353         * tree.c (tree_code_name): Constify a char*.
9354
9355         * tree.h (tree_code_name, decl_printable_name): Likewise.
9356
9357         * function.h (struct function): Likewise.
9358
9359         * toplev.c (decl_name, decl_printable_name): Likewise.
9360
9361         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
9362
9363         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
9364         (init_objc): Remove function pointer cast.
9365
9366 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
9367
9368         * pa.md (interspace_jump): New pattern.
9369         (builtin_longjmp): New expander.
9370
9371 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
9372
9373         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
9374         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
9375         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
9376
9377 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
9378
9379         * jump.c (delete_prior_computation): Also check calls
9380         to constant functions.  Don't bother checking for a
9381         REG_UNUSED note before adding it.
9382         (delete_computation): Handle multi-word hard registers
9383         when synthesizing missing REG_DEAD notes for a register
9384         which is both set and used by an insn.
9385
9386 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9387
9388         * loop.c (this_loop_info): New variable.
9389         (loop_has_call, loop_has_volatile, loop_has_tablejump,
9390         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
9391         All uses updated.
9392         (prescan_loop, strength_reduce): New argument loop_info.  All callers
9393         updated.
9394         (scan_loop): New variable loop_info, initialise to address of
9395         this_loop_info.
9396         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
9397         Delete variable loop_has_multiple_exit targets and replace with
9398         field in this_loop_info.
9399         (find_and_verify_loops): Rename this_loop to this_loop_num.
9400         (strength_reduce): Delete loop_iteration_info.  Replace variable
9401         loop_info with function argument of same name.
9402         (insert_bct): Rework test for loop being completely unrolled.
9403
9404         * loop.h (struct loop_info): New fields num, loops_enclosed,
9405         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
9406         has_indirect_jump, and cont.  Redefine use of unroll_number.
9407         (loop_unroll_number): Delete.
9408
9409         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
9410         field of loop_info.
9411         (loop_iterations): Delete variable vtop and instead use
9412         loop_info->vtop computed in prescan_loop.
9413
9414 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
9415
9416         * fix-header.c (main): Do not pass a null pointer to strcmp.
9417
9418 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
9419
9420         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
9421         filenames.
9422         * configure: Rebuilt.
9423
9424 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
9425
9426         * jump.c (jump_optimize_1): Do not delete assignments to
9427         internal_arg_pointer.
9428         * cse.c (delete_trivially_dead_insns): Always consider a set of
9429         the internal_arg_pointer live.
9430
9431 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
9432
9433         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
9434         (update_life_info) [REG_WAS_0]: Search the original insns rather
9435         than the new insns for the note.  Fix typos finding note_dest.
9436         If no dest found, discard the note rather than abort.
9437         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
9438         (replace_insns): Remove the old insn list after update_life_info
9439         not before.
9440
9441 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
9442
9443         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
9444         sched_analyze_insn.
9445         (sched_analyze_1): Let add_dependence care for not adding dups.
9446         (sched_analyze_2): Likewise.
9447         (add_branch_dependences): Likewise.
9448
9449 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9450
9451         * i386/winnt.c (export_list): New type.
9452         (exports_head): Rename to
9453         (export_head):  this.
9454         (i386_pe_record_exported_symbol): Add is_data flag.
9455         (i386_pe_asm_file_end): Emit directive for exported variables.
9456         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
9457         prototype.
9458         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
9459         (ASM_DECLARE_OBJECT_NAME): Likewise.
9460         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9461         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9462
9463 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
9464
9465         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
9466
9467         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
9468         operand.
9469
9470 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
9471
9472         * config/openbsd.h: Define SET_ASM_OP.
9473         * tm.texi: cross-reference SET_ASM_OP in the index.
9474
9475 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
9476
9477         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
9478         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
9479         and class_narrowest_mode at compile time.  Kill init_rtl.
9480         Mark rtx_length, mode_class, mode_size, mode_unit_size,
9481         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
9482         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
9483         EXTRA_CC_NAMES.
9484         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
9485         format.
9486         * rtl.h: Declare rtx_length and rtx_format as const.
9487         * machmode.def: Define CC().  Use CC() to define CCmode.  If
9488         EXTRA_CC_MODES is defined, expand it here.
9489         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
9490         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
9491         const.  Kill all references to EXTRA_CC_MODES.
9492
9493         * toplev.c: Don't prototype or call init_rtl.
9494         * optabs.c: Don't call init_mov_optab.
9495         * genemit.c: Don't generate init_mov_optab.  Don't call
9496         init_rtl.
9497         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
9498         here.
9499         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
9500         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
9501         genrecog.c: Don't call init_rtl.
9502
9503         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
9504         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
9505         definition of EXTRA_CC_MODES.
9506
9507         * md.texi: Kill ref to EXTRA_CC_NAMES.
9508         * tm.texi: Document new way to define EXTRA_CC_MODES.
9509
9510         * genrecog.c: Do not look up the name of a define_split.
9511         (Unrelated bugfix.)
9512
9513 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
9514
9515         * config/v850/v850.md: Fix typo introduced by previous delta.
9516
9517 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9518
9519         * gcc.c (fatal): Make definition static to match prototype.
9520
9521 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9522
9523         * combine.c (get_last_value): Don't look for earlier sets if the last
9524         known set is somewhere in between the insns being combined.
9525
9526 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
9527
9528         * configure.in: Don't use shell ! to negate exit codes
9529         * configure: Regenerate
9530
9531 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
9532
9533         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
9534         the fact that ALIGN is measured in bits, not bytes.
9535
9536 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
9537
9538         * errors.c: New file; defines functions error, warning, and
9539         fatal, variables have_error and progname.
9540         * errors.h: New file; prototypes and decls for stuff in errors.c.
9541
9542         * Makefile: Add rules to build errors.o and
9543         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
9544         genopinit, genrecog, genextract, genpeep, genattr, and
9545         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
9546         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
9547         genpeep.o, genattr.o, and genoutput.o.
9548
9549         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
9550         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
9551         define or prototype fatal.  Set progname at beginning of main.
9552         * genoutput.c:  Likewise, and don't define or prototype error
9553         either.
9554
9555         * c-typeck.c (c_expand_start_case): Return immediately if exp
9556         is an ERROR_MARK.
9557         * fold-const.c (operand_equal_p): Return immediately if arg1
9558         or arg0 are ERROR_MARKs.
9559         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
9560         fields of type ERROR_MARK when calculating if the record can
9561         go in a register.
9562
9563 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
9564         with much help from Jeffrey A Law and Richard Henderson
9565
9566         * i386.md: In the 6 insns which call output_fix_trunc,
9567         earlyclobber operands[0].
9568
9569 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
9570
9571         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
9572         creating new registers.
9573
9574 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
9575
9576         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
9577         i386_reg_alloc_order, i386_regparm_string,
9578         i386_align_loops_string, i386_align_jumps_string,
9579         i386_align_funcs_string, i386_preferred_stack_boundary_string,
9580         and i386_branch_cost_string as type "const char *".
9581         * i386.c: Define all above strings as type "const char *".
9582
9583 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
9584
9585         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
9586         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
9587
9588 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
9589
9590         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
9591         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
9592
9593 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
9594
9595         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
9596         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
9597         (dwarf2out_line, dwarf2out_finish): Likewise.
9598         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
9599
9600 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
9601
9602         * tree.c (lang_unsave_expr_now) : Correct return type.
9603         * tree.h (lang_unsave_expr_now) : Same.
9604
9605 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
9606
9607         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
9608         instead of duplicating code.
9609
9610 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9611
9612         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
9613
9614 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
9615
9616         * tree.h: fancy_abort always takes three args.
9617         * resource.c: Move include of system.h before toplev.h.
9618
9619 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
9620
9621         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
9622         as SYMBOL_REFs.
9623
9624 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
9625
9626         * system.h: Don't redefine abort or trim_filename.
9627         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
9628         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
9629         whether or not __FUNCTION__ is available.
9630         * tree.h: Duplicate rtl.h's definition of abort, for files
9631         that don't include rtl.h.  Delete all code to perform type
9632         checking with a compiler other than GCC.
9633         * varray.h: Delete all code to perform type checking with a
9634         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
9635         its arguments exactly once, using a statement expression.
9636         Adjust the VARRAY_<type> accessor macros to match.
9637         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
9638         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
9639         caller's location.  Define fatal_insn and fatal_insn_not_found
9640         as macros that use _fatal_insn and _fatal_insn_not_found.
9641         (fancy_abort, trim_filename): Kill prototypes.
9642
9643         * rtl.c (trim_filename): Move here from toplev.c.
9644         (fancy_abort): New function.
9645         (DIR_SEPARATOR): Provide default definition.
9646         * tree.c (tree_check_failed, tree_class_check_failed): Go
9647         through fancy_abort.
9648         (tree_check, tree_class_check, cst_or_constructor_check,
9649         expr_check): Delete.
9650         * varray.c (varray_check_failed): New function.
9651         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
9652         _fatal_insn and _fatal_insn_not_found.  Go through
9653         fancy_abort.
9654         (trim_filename, fancy_abort): Delete.
9655
9656         * builtins.c (expand_builtin_args_info): Report ICE with abort.
9657         * except.c (start_catch_handler): Report ICE with error/abort
9658         combo.
9659         * final.c (output_operand_lossage): Likewise.
9660         * flow.c (verify_flow_info): Likewise.
9661
9662         * gcc.c: Prototype fatal.
9663         * gengenrtl.c: Undef abort after including rtl.h not system.h.
9664         * genattr.c, genattrtab.c, genemit.c, genextract.c,
9665         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
9666         Don't define fancy_abort.
9667
9668 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
9669
9670         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
9671         canonization.
9672
9673 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
9674
9675         * m88k.h (VERSION_INFO2): Kill.
9676         (VERSION_STRING): Kill.
9677         (TM_RCS_ID): Kill.
9678         (VERSION_INFO1): Tidy.
9679         (TARGET_VERSION): Update.
9680         * m88k/dgux.h (VERSION_INFO2): Kill.
9681         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
9682         * m88k/luna.h (VERSION_INFO1): Tidy.
9683         * m88k/sysv4.h (VERSION_INFO1): Likewise.
9684         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
9685         (output_file_start): Adjust for death of VERSION_STRING.
9686
9687 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
9688
9689         * cpplib.c (detect_if_not_defined): New function.
9690         (do_if): Use it to detect potential once-only headers.
9691
9692 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
9693
9694         * c-common.c (combine_strings): Always set TREE_CONSTANT.
9695
9696 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
9697
9698         * combine.c (nonzero_bits) : Allow single-ly set registers to be
9699         anywere in the function only if they are pseudos and set before
9700         being used (not live at the start of the function).
9701         (num_sign_bit_copies) : Same.
9702         (get_last_value_validate) : Same.
9703         (get_last_value) : Same.
9704
9705 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
9706
9707         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
9708         where N and M are constant and N is an integer multiple of M.
9709
9710 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9711
9712         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
9713         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
9714         sbitmap_union_of_preds): Add prototypes.
9715         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
9716         the intersection of successors with the new flow graph structures.
9717         (sbitmap_intersection_of_preds): New function to compute the
9718         intersection of predecessors with the new flow graph structures.
9719         (sbitmap_union_of_succs): New function to compute the union of
9720         successors with the new flow graph structures.
9721         (sbitmap_union_of_preds): New function to compute the union of
9722         predecessors with the new flow graph structures.
9723         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
9724         (expr_reaches_here_p): Use edge and basic_block structures instead
9725         of s_preds and s_succs.
9726         (compute_cprop_avinout): Use new sbitmap routines.
9727         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
9728         of s_preds and s_succs.
9729         * flow.c (compute_flow_dominators): Compute dominators using
9730         edges and basic blocks instead of s_preds and s_succs.
9731
9732 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9733
9734         * lists.c (unused_insn_list, unused_expr_list): New file for
9735         maintaining various types of lists. New statics for maintaining a
9736         cache of available INSN_LIST and EXPR_LIST nodes.
9737         (free_list): Static function for freeing a list of INSN/EXPR nodes.
9738         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
9739         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
9740         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
9741         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
9742         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
9743         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
9744         (free_INSN_LIST_node): Free an individual INSN_LIST node.
9745         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
9746         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
9747         (remove_dependence, free_pending_lists): Use new global routines.
9748         (flush_pending_lists, sched_analyze_insn): Use new global routines.
9749         (sched_analyze, compute_block_backward_dependences): Use new routines.
9750         (sched_analyze_1, sched_analyze_2): Use new routines.
9751         (schedule_insns): Use new global routines.
9752         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
9753         prototypes.
9754         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
9755         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
9756         prototypes.
9757         * toplev.c (rest_of_compilation): Initialize node cache.
9758         * Makefile.in (OBJS): Add lists.o to list of object files.
9759         (lists.o): Add dependancies.
9760
9761 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
9762
9763         * config/v850/v850.md: Fix compile time warning messages.
9764         * config/v850/v850.c: Fix compile time warning messages.
9765         * config/v850/v850.h: Fix compile time warning messages.
9766
9767 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9768
9769         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
9770         Remove unused prototype for `init_lengths'.
9771
9772 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9773
9774         * calls.c (emit_call_1): Mark parameter `stack_size' with
9775         ATTRIBUTE_UNUSED.
9776         (expand_call): Initialize variable `insn'.
9777         (emit_library_call): Likewise for variable `high_to_save'.
9778         (emit_library_call_value): Likewise.
9779         (store_one_arg): Likewise for variables `lower_bound' and
9780         `upper_bound'.
9781
9782         * combine.c (try_combine): Likewise for variables `i2_code_number'
9783         and `other_code_number'.
9784         (find_split_point): Likewise for variables `pos', `unsignedp' and
9785         `inner'.
9786         (simplify_if_then_else): Likewise for variables `op' and `c1'.
9787         (simplify_and_const_int): Remove unused variable `width'.
9788         (merge_outer_ops): Likewise.
9789
9790         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
9791         HOST_WIDE_INT' when comparing against one.
9792         (simplify_relational_operation): Likewise.
9793         (cse_insn): Initialize variables `src_eqv_volatile',
9794         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
9795
9796         * final.c (init_final): Constify parameter `filename'.
9797         (final_start_function): Mark parameter `optimize' with
9798         ATTRIBUTE_UNUSED.
9799         (profile_function): Likewise for parameters `first' and `optimize'.
9800         (output_source_line): Likewise for parameter `file'.
9801
9802         * integrate.c (subst_constants): Cast a value to `size_t' when
9803         comparing against one.
9804         (mark_stores): Initialize variable `mode'.  Cast a value to
9805         `size_t' when comparing against one.
9806
9807         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
9808
9809         * loop.c (move_movables): Initialize variable `first'.
9810         (strength_reduce): Likewise for variable `increment'.
9811         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
9812         value to `size_t' when comparing against one.
9813         (load_mems): Initialize variable `end_label'.
9814
9815         * output.h (init_final): Constify parameter.
9816
9817         * reload.c (decompose): Initialize variable `base'.
9818
9819         * reload1.c (reload): Likewise for variable `is_scalar'.
9820         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
9821         (choose_reload_regs): Initialize variable `mode'.
9822         (emit_reload_insns): Likewise for variable `store_insn'.
9823         (reload_cse_noop_set_p): Mark parameter `insn' with
9824         ATTRIBUTE_UNUSED.
9825         (reload_combine): Initialize variable `set'.
9826
9827         * unroll.c (unroll_loop): Likewise for variable `local_label'.
9828         (copy_loop_body): Cast a value to `size_t' when comparing against
9829         one.
9830
9831         * varasm.c (assemble_variable): Initialize variable `size_tree'.
9832         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
9833         (remove_from_pending_weak_list): Mark parameter `name' with
9834         ATTRIBUTE_UNUSED.
9835
9836 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9837
9838         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
9839         gcse dump file.
9840
9841 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
9842
9843         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
9844         (ASM_DECLARE_FUNCTION_NAME): Define.
9845         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
9846         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
9847         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
9848         not already defined.
9849
9850 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9851
9852         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
9853         of n_popped when call/call_value are not defined.
9854
9855 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
9856
9857         * tm.texi: GNU CC -> GCC conversion.
9858         (CC1_SPEC): Indicate it is used for all language front ends.
9859
9860 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
9861
9862         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
9863         NOTE_INSN_EH_REGION_END correctly.
9864
9865 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
9866                           Jeff Law <law@cygnus.com>
9867
9868         * loop.c (strength_reduce): Automatically unroll loops if the
9869         unrolled loop size is smaller than the rolled loop size.
9870
9871         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
9872         and delete comment that code should be rewritten.
9873
9874 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
9875
9876         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
9877         as reachable.
9878
9879         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
9880
9881 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9882
9883         * fixinc/mkfixinc.sh: Don't fix uwin headers.
9884         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
9885         (LINK_SPEC): Add -u _main when building executables.
9886         (ASM_DECLARE_FUNCTION): Update from Cygwin.
9887         (ASM_FILE_END): Use the default for ix86-pe.
9888         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
9889
9890 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
9891
9892         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
9893         and ASM_CLOSE_PAREN are empty strings.
9894
9895 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
9896                           Geoffrey Keating <geoffk@cygnus.com>
9897
9898         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
9899         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
9900         (unprotoize.o): Ditto.
9901         (test-protoize-simple): Don't define STD_PROTO_DIR.
9902         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
9903         changes to make 'test-protoize-simple' pass.
9904         (STD_PROTO_DIR): Remove define.
9905         (STANDARD_EXEC_PREFIX): Supply default define.
9906         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
9907         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
9908         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
9909         (GET_ENV_PATH_LIST): New macro.
9910         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
9911         (do_processing): Initialize default_syscalls_dir using new
9912         macros.  Use it to initialize syscalls_absolute_filename.
9913
9914 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
9915
9916         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
9917         B into a register before emit_conditional_move.
9918
9919 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
9920
9921         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
9922         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
9923         multiplicand out of (+ (* a b) (* c d)).
9924
9925 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
9926                           Richard Henderson  <rth@cygnus.com>
9927
9928         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
9929         (new_insn_dead_notes): Likewise.
9930         (update_n_sets): Likewise.
9931         (update_flow_info): Move to flow.c, renamed to update_life_info;
9932         extend to handle multiple source insns.
9933         * flow.c: Include resource.h
9934         (unlink_insn_chain): New.
9935         (split_hard_reg_notes): New.
9936         (maybe_add_dead_note): New.
9937         (maybe_add_dead_note_use): New.
9938         (find_insn_with_note): New.
9939         (new_insn_dead_notes): New.
9940         (update_n_sets): New.
9941         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
9942         (maybe_remove_dead_notes): New.
9943         (update_life_info): New.
9944         (prepend_reg_notes): New.
9945         (replace_insns): New.
9946         * output.h (update_life_info): Declare.
9947         * recog.c (split_block_insns): Use update_life_info.
9948         * resource.c (find_free_register): Use reg_alloc_order, don't use
9949         fixed regs, make sure the mode is supported, don't use new regs.
9950         (reg_dead_p): New.
9951         * rtl.h (replace_insns): Declare.
9952
9953 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
9954
9955         * expr.c (expand_expr): Cope with COND_EXPRs with one
9956         non-returning branch.
9957
9958 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
9959
9960         * expr.c (store_expr): Always pass down the target, even when not
9961         doing CSE.
9962
9963 1999-08-24  Nick Clifton  <nickc@cygnus.com>
9964
9965         * configure.in: Define target_cpu_default for v850 targets.
9966         * configure: Regenerate
9967
9968         * config/v850/v850.h (TARGET_CPU_generic): Define.
9969         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
9970         addresses are 4 byte aligned.
9971
9972         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
9973         addresses.
9974
9975 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9976
9977         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
9978         (main): Add prototypes.
9979
9980         * genattrtab.c (substitute_address, write_const_num_delay_slots,
9981         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
9982         (write_attr_get): Emit prototypes along with function definition.
9983         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
9984         (write_complex_function): Emit static prototype along with
9985         function definition.
9986
9987         * genemit.c (gen_split): Emit prototypes along with function
9988         definition.
9989
9990         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
9991         Likewise for predicates and `insn_operand_predicate'.
9992         (process_template): Emit static prototype along with function
9993         definition.
9994
9995         * genrecog.c (make_insn_sequence): Constify a char*.  Add
9996         prototypes for get_split_*().
9997         (write_subroutine): Emit prototypes along with function
9998         definition.
9999
10000 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10001
10002         * gcse.c (find_avail_set): Follow chains of register-register copies.
10003         Use oprs_not_set_p to guarantee that the returned value can be
10004         substituted.
10005         (cprop_insn): Don't verify the return value of find_avail_set with
10006         oprs_not_set_p.
10007
10008         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
10009         (cprop_cc0_jump): New function.
10010         (cprop_insn): Break out new function cprop_jump and use it.
10011         Also use cprop_cc0_jump for machines with CC0.
10012         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
10013
10014         * tree.h (current_function_calls_setjmp,
10015         current_function_calls_longjmp): Delete declarations.
10016         * dsp16xx.c: Include "function.h".
10017         * elxsi.c: Likewise.
10018         * gmicro.c: Likewise.
10019         * h8300.c: Likewise.
10020         * i370.c: Likewise.
10021         * m32r.c: Likewise.
10022         * mn10200.c: Likewise.
10023         * mn10300.c: Likewise.
10024         * ns32k.c: Likewise.
10025         * spur.c: Likewise.
10026         * v850.c: Likewise.
10027
10028         * rtl.h (rtx_equal_function_value_matters): Declare.
10029         * toplev.c (rtx_equal_function_value_matters): Don't declare.
10030         * cse.c: Likewise.
10031         * function.c: Likewise.
10032         * emit-rtl.c: Likewise.
10033
10034 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
10035
10036         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
10037         call.
10038
10039 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10040
10041         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
10042         exactly.
10043
10044 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
10045
10046         * cpp.texi: Add a node documenting macro varargs (copied
10047         from extend.texi).
10048
10049 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
10050
10051         * cppspec.c: Put a null pointer at the end of the new argv.
10052
10053 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
10054
10055         * configure.in: Remove code to select/de-select the haifa
10056         scheduler.  Every scheduled port gets haifa now.
10057         * configure: Rebuilt.
10058         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
10059         * sched.c Deleted.
10060         * Makefile.in: Corresponding changes.
10061
10062 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10063
10064         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
10065         All callers changed.
10066         (prepare_float_lib_cmp): Likewise.
10067         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
10068         * expr.h (emit_float_lib_cmp): Delete declaration.
10069         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
10070         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
10071         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
10072         specially.
10073         (cmptf): Now conditional on TARGET_HARD_QUAD.
10074
10075 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
10076
10077         * resource.c (mark_target_live_regs): Use
10078         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
10079
10080 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10081
10082         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
10083
10084         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
10085
10086         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
10087
10088 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10089
10090         * rtl.h (rtx_format): Constify a char*.
10091
10092         * rtl.c (rtx_format): Likewise.
10093         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
10094         (init_rtl): Use accessor macro, not `rtx_format'.
10095
10096         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
10097         char*.
10098
10099         * caller-save.c (mark_referenced_regs): Likewise.
10100
10101         * combine.c (subst, make_compound_operation, known_cond,
10102         gen_rtx_combine, update_table_tick, get_last_value_validate,
10103         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
10104
10105         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
10106         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
10107         count_reg_usage): Likewise.
10108
10109         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
10110         Likewise.
10111
10112         * final.c (leaf_renumber_regs_insn): Likewise.
10113
10114         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
10115         dump_edge_info, count_reg_references): Likewise.
10116
10117         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
10118         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
10119         Likewise.
10120
10121         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
10122         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
10123         add_label_notes): Likewise.
10124
10125         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
10126         clear_struct_flag, count_sub_rtxs, count_alternatives,
10127         compares_alternatives_p, contained_in_p, walk_attr_value,
10128         write_expr_attr_cache): Likewise.
10129
10130         * genconfig.c (walk_insn_part): Likewise.
10131
10132         * genemit.c (max_operand_1, gen_exp): Likewise.
10133
10134         * genextract.c (walk_rtx): Likewise.
10135
10136         * genflags.c (num_operands): Likewise.
10137
10138         * genoutput.c (scan_operands): Likewise.
10139
10140         * genpeep.c (match_rtx): Likewise.
10141
10142         * genrecog.c (add_to_sequence): Likewise.
10143
10144         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
10145         Likewise.
10146
10147         * integrate.c (save_constants, copy_for_inline,
10148         copy_rtx_and_substitute, subst_constants, restore_constants):
10149         Likewise.
10150
10151         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
10152         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
10153
10154         * local-alloc.c (contains_replace_regs, memref_referenced_p):
10155         Likewise.
10156
10157         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
10158         add_label_notes, replace_call_address, count_nonfixed_reads,
10159         invariant_p, find_single_use_in_loop, find_mem_givs,
10160         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
10161         Likewise.
10162
10163         * print-rtl.c (reg_names, print_rtx): Likewise.
10164
10165         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
10166
10167         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
10168         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
10169         print_blocks): Likewise.
10170
10171         * regclass.c (fix_register, record_address_regs,
10172         reg_scan_mark_refs): Likewise.
10173
10174         * regmove.c (stable_but_for_p): Likewise.
10175
10176         * reload.c (loc_mentioned_in_p, operands_match_p,
10177         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
10178         copy_replacements, refers_to_regno_for_reload_p,
10179         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
10180         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
10181         Likewise.
10182
10183         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
10184         delete_address_reloads_1, count_occurrences,
10185         reload_cse_mem_conflict_p, reload_combine_note_use,
10186         add_auto_inc_notes): Likewise.
10187
10188         * resource.c (mark_referenced_resources, mark_set_resources):
10189         Likewise.
10190
10191         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
10192         reg_mentioned_p, regs_set_between_p, modified_between_p,
10193         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
10194         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
10195         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
10196         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
10197
10198         * sched.c (sched_analyze_2, attach_deaths): Likewise.
10199
10200         * stupid.c (stupid_mark_refs): Likewise.
10201
10202         * unroll.c (remap_split_bivs): Likewise.
10203
10204         * varasm.c (mark_constants): Likewise.
10205
10206         * a29k/a29k.c (uses_local_reg_p): Likewise.
10207
10208         * alpha/alpha.c (summarize_insn): Likewise.
10209
10210         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
10211         eliminate_lr2ip): Likewise.
10212
10213         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
10214
10215         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
10216         reg_mentioned_in_mem): Likewise.
10217
10218         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
10219         symbolic_reference_mentioned_p): Likewise.
10220
10221         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
10222
10223         * sh/sh.c (regs_used, mark_use): Likewise.
10224
10225         * vax/vax.c (vax_rtx_cost): Likewise.
10226
10227 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10228
10229         * machmode.h (mode_name): Constify a char*.
10230
10231         * rtl.c (mode_name): Likewise.
10232
10233         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
10234
10235         * optabs.c (init_libfuncs): Constify a char*.
10236
10237         * print-tree.c (mode_name): Remove redundant declaration.
10238         (print_node): Use accessor macro, not `mode_name'.
10239
10240         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
10241         not `mode_name'.
10242         (new_spill_reg): Constify a char*.
10243
10244         * tree.c (mode_name): Remove redundant declaration.
10245
10246 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10247
10248         * rtl.c (rtx_name): Constify a char*.
10249
10250         * rtl.h (rtx_name, fix_sched_param): Likewise.
10251
10252         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
10253         (mypr): Use accessor macro, not `rtx_name'.
10254
10255         * genemit.c (print_code): Constify a char*.
10256
10257         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
10258
10259         * genpeep.c (print_code): Constify a char*.
10260
10261         * genrecog.c (print_code): Likewise.
10262
10263         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
10264         end_bb): Add static prototype.
10265         (draw_edge): Constify a char*.
10266         (end_bb): Remove unused parameter.
10267
10268         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
10269         print_block_visualization): Constify a char*.
10270
10271 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
10272
10273         * c-common.c (c_get_alias_set): Update comment.
10274
10275 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
10276
10277         * linux.h (LIB_SPEC): Added.
10278
10279 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10280
10281         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
10282
10283 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
10284
10285         * tree.c (expr_check): Fix typo in last change.
10286
10287 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
10288
10289         * rtl.def (NOTE): Change format to "iuu0n".
10290         (ADDR_DIFF_VEC): Change format to "eEee0".
10291         (ADDRESSOF): Change format to "eit".
10292
10293         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
10294         (RTVEC_ELT): Change to match.
10295         (XVECEXP): Use XVEC and RTVEC_ELT.
10296         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
10297         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
10298         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
10299         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
10300         TRAP_CONDITION, TRAP_CODE): Use XEXP.
10301         (INTVAL): Use XWINT.
10302         (ADDRESSOF_DECL): Use XTREE.
10303         (SET_ADDRESSOF_DECL): Delete.
10304         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
10305         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
10306         ifdefed out since 2.6 at least.
10307         (gen_rtvec_vv): Delete prototype.
10308
10309         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
10310         not rtunion.
10311         (copy_most_rtx): Handle 't' format letter.
10312         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
10313         (gen_rtvec_vv): Delete function.  All callers changed to use
10314         gen_rtvec_v instead.
10315         * print-rtl.c (print_rtx): Move special casing of NOTEs to
10316         the '0' format letter.
10317
10318         * function.c (gen_mem_addressof): Don't use
10319         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
10320         instead.
10321         * integrate.c (copy_rtx_and_substitute): Likewise.
10322         Copy 't' slots with XTREE.
10323         (subst_constants): Treat 't' slots like '[swi]' slots.
10324         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
10325         * jump.c (rtx_equal_for_thread_p): Likewise.
10326         * rtlanal.c (rtx_equal_p): Likewise.
10327         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
10328         only four arguments.
10329         * gengenrtl.c (type_from_format): Provide correct types for
10330         'b' and 't' slots.
10331
10332
10333         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
10334         If a recent gcc is in use (always in stage2 and beyond), use
10335         statement expressions, so we don't make a function call unless
10336         the check fails.  Evaluate arguments exactly once.
10337         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
10338         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
10339         Delete.
10340         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
10341         they evaluate their arguments exactly once, irrespective of
10342         the compiler in use.
10343
10344         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
10345         is used by the currently-enabled check macros.  This is:
10346         (tree_check_failed, tree_class_check_failed): For gcc.
10347         (tree_check, tree_class_check, cst_or_constructor_check,
10348         expr_check): For other compilers.
10349
10350         * gencheck.c: Do not define any *_CHECK1 macros.
10351
10352 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
10353                           Mark Mitchell <mark@codesourcery.com>
10354
10355         * c-common.c (c_get_alias_set): Fix support for poitners and
10356         references.
10357
10358 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
10359
10360         * alias.c: Include tree.h.
10361         (nonlocal_reference_p, mark_constant_function): New functions.
10362         * flow.c (life_analysis): Call mark_constant_function.
10363         * rtl.h (mark_constant_function): Declare it.
10364
10365 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
10366
10367         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
10368         unrecognisable switches.
10369
10370 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10371
10372         * loop.c (recombine_givs): Set ix field after sorting.
10373         (recombine_givs): Remove bogus index / giv lockstep looping.
10374
10375 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10376
10377         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
10378         on CODE.
10379         (emit_store_flag_force): Use do_compare_rtx_and_jump.
10380         (do_cmp_and_jump): Formatting fixes.
10381         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
10382         do_compare_rtx_and_jump instead of compare_from_rtx.
10383         (do_compare_rtx_and_jump): New function; mostly copied from
10384         compare_from_rtx.
10385         (do_jump_for_compare): Delete.
10386         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
10387         MIN_EXPR.
10388         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
10389         of compare/do_jump_for_compare pairs.
10390         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
10391         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
10392         compare_from_rtx/do_jump_for_compare pairs.
10393         (do_jump_by_parts_equality): Likewise.
10394         (do_jump_by_parts_equality_rtx): Likewise.
10395         * expr.h (do_compare_rtx_and_jump): Declare.
10396         * optabs.c (prepare_cmp_insn): New function, contains most of the code
10397         that used to be in emit_cmp_insn.
10398         (cmp_available_p): New function.
10399         (prepare_operand): New function.
10400         (emit_cmp_and_jump_insn_1): New function, contains some code that used
10401         to be in emit_cmp_insn.
10402         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
10403         parameters to be pointers; don't emit final compare but modify some of
10404         the values pointed to by the args so the caller can perform the
10405         correct comparison.
10406         (expand_binop): Call emit_store_flag_force with signed forms of
10407         comparison code.
10408         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
10409         emit_jump_insn pair.
10410         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
10411         emit_cmp_and_jump_insn_1.  Call emit_queue.
10412         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
10413         arg.
10414         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
10415         jump sets cc0 before deleting it.
10416         * integrate.c (expand_inline_function): Likewise.
10417         * unroll.c (unroll_loop): Similar changes in several places.
10418         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
10419         before deleting it.
10420
10421 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10422
10423         * Makefile.in (insn-recog.o): Update dependencies.
10424         * genrecog.c (main): Make generated file include "function.h".
10425
10426 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
10427
10428         * cse.c (cse_insn): Call never_reached_warning when a jump is
10429         changed to be unconditional.
10430         * flags.h: Declare warn_notreached.
10431         * flow.c (delete_block): Call never_reached_warning when
10432         a block is deleted.
10433         * jump.c (delete_barrier_successors): Call never_reached_warning
10434         when we delete everything after a BARRIER.
10435         (never_reached_warning): New function.
10436         * rtl.h: Declare never_reached_warning.
10437         * toplev.c (warn_notreached): New variable.
10438         (lang_independent_options): Set warn_notreached
10439         when -Wunreachable-code.
10440         (compile_file): We need line numbers for -Wunreachable-code.
10441
10442 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
10443
10444         * haifa-sched.c (insn_unit): Fix typo on out of range test.
10445         * sched.c (insn_unit): Likewise.
10446
10447 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
10448
10449         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
10450
10451 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10452
10453         * flow.c (create_edge_list): Use xmalloc, not malloc.
10454
10455 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
10456
10457         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
10458         C-style comments.  Do not lose the character before double slash.
10459
10460 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10461
10462         * basic-block.h (struct edge_list): Stucture to maintain a vector
10463         of edges.
10464         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
10465          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
10466         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
10467         New function prototypes.
10468         * flow.c (create_edge_list): Function to create an edge list.
10469         (free_edge_list): Discards memory used by an edge list.
10470         (print_edge_list): Debug output showing an edge list.
10471         (verify_edge_list): Internal consistency check for an edge list.
10472         (find_edge_index): Function to find an edge index for a pred and succ.
10473
10474 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
10475
10476         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
10477         hashtable.
10478
10479 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
10480
10481         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
10482
10483 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10484
10485         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10486
10487 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
10488
10489         * toplev.c (rest_of_compilation): Allow machine dependent
10490         reorganisation pass to place information into the RTL dump
10491         file if it so wishes.
10492
10493 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
10494
10495         * explow.c (hard_function_value): Use VOIDmode instead of
10496         MAX_MACHINE_MODE.
10497         * stmt.c (expand_return): Likewise.
10498         * stor-layout.c (get_best_mode): Likewise.
10499
10500         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
10501         emit call instead of emit_insn call.
10502
10503 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
10504
10505         * configure.in: Handle --disable/enable-win32-registry.
10506         * install.texi: Document --disable/enable-win32-registry.
10507         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
10508         (WIN32_REGISTRY_KEY): New macro.
10509         * prefix.c: Use to enable/disable win32-specific code.
10510         (lookup_key): Use versioned key.
10511         * configure: Regenerate.
10512         * config.in: Likewise.
10513
10514 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
10515
10516         * cpplib.c (read_line_number): New fn, split out of...
10517         (do_line): Here.
10518
10519 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10520
10521         tree.c (lang_unsave_expr_now) : New.
10522         (unsave_expr_now): Call lang_unsave_expr_now.
10523         tree.h (lang_unsave_expr_now) : New.
10524
10525 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
10526
10527         * toplev.c (flag_new_exceptions): On by default.
10528
10529 1999-08-13  Michael Meissner  <meissner@cygnus.com>
10530
10531         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
10532
10533 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
10534
10535         * dwarfout.c (fundamental_type_code): Return FT_boolean for
10536         INTEGER_TYPE with precision==1, it's __java_boolean.
10537
10538 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10539
10540         * global.c (prune_preferences): Move some invariants out of the
10541         inner loop.
10542
10543 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
10544
10545         * configure.in (alpha*-dec-osf*): Add osf5.
10546
10547 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
10548
10549         * configure.in: Rework handling of ARM GNU/Linux slightly.
10550         (arm*-*-linux-gnuoldld): New target.
10551         * configure: Regenerate.
10552         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
10553         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
10554         * config/arm/linux-oldld.h: New file.
10555         * config/arm/linux-elf26.h: Don't include linux-elf.h.
10556         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
10557         Don't define.
10558         * config/arm/linux-elf.h (ASM_SPEC): Define.
10559         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
10560         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
10561         for 26-bit APCS and old linker.
10562         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
10563         `arm_elf'.
10564         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
10565         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
10566         don't define `arm' or `arm_elf'.
10567         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
10568         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
10569
10570 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
10571
10572         * rtl.texi: Fix typo.
10573
10574 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
10575
10576         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
10577
10578 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
10579
10580         * extend.texi (C++ Signatures): Remove node.
10581         * invoke.texi: Remove discussion of -fhandle-signatures,
10582         signature, sigof, __signature__, and __sigof__.
10583
10584 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
10585
10586         * Makefile.in (JAVAGC): Removed.
10587
10588 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
10589
10590         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
10591
10592 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
10593
10594         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
10595
10596 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
10597
10598         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
10599         a register that is already known to be a pointer.
10600
10601 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
10602
10603         * fixinc/inclhack.tpl: Only install assert.h conditionally.
10604         * fixinc/inclhack.sh: Regenerated.
10605         * fixinc/fixincl.sh: Regenerated.
10606
10607 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
10608
10609         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
10610         Fix documentation of -ansi flag to describe its C++ behavior.
10611         Remove bogus reference to GCC 2.9.
10612
10613 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
10614
10615         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
10616         note if it is non-NULL.
10617
10618 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10619
10620         * except.h (eh_nesting_info): Add new structure defintion.
10621         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
10622         (reachable_handlers, update_rethrow_references): Add function
10623         prototypes.
10624         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
10625         a rethrow symbol instead of an integer exception region number.
10626         * flow.c (Make_edges): Use new exception nesting routines to determine
10627         which handlers are reachable from a CALL or asynchronous insn.
10628         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
10629         goto receivers.
10630         (delete_eh_regions): Update rethrow labels, and don't delete
10631         regions which are the target of a rethrow.
10632         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
10633         avoid overloading the SYMBOL_REF_USED flag.
10634         (rethrow_symbol_map): Use new rethrow_ref field.
10635         (rethrow_used): Use new rethrow_ref field.
10636         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
10637         of an integer.  Fix formatting.
10638         (output_exception_table_entry): Use new rethrow_ref field.
10639         (can_throw): Check for EH_REGION_NOTE before deciding
10640         whether a CALL can throw or not.
10641         (scan_region): Call rethrow_used() instead of accessing data structure.
10642         (update_rethrow_references): New function to make sure only regions
10643         which are still targets of a rethrow are flagged as such.
10644         (process_nestinfo): New static function to initialize a handler
10645         list for a specific region.
10646         (init_eh_nesting_info): New function to allocate and initialize
10647         the list of all EH handlers reachable from all regions.
10648         (reachable_handlers): New function to retrieve the list of handlers
10649         reachable from a specific region and insn.
10650         (free_eh_nesting_info): New function to dispose of a list of
10651         reachable handlers.
10652
10653 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10654
10655         * flow.c (split_edge): Set JUMP_LABEL field.
10656         (commit_one_edge_insertion): Set head correctly for insert_before.
10657         When inserting insns, update insn block numbers if allocated.
10658
10659 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10660
10661         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
10662         retry_incomplete_types): Add static prototype.
10663         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
10664         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
10665         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
10666         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
10667         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
10668         Constify a char*.
10669
10670         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
10671         dwarf2out_start_source_file, dwarf2out_line): Likewise.
10672
10673 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10674
10675         * output.h (assemble_name): Constify a char*.
10676
10677         * varasm.c (UNIQUE_SECTION, assemble_start_function,
10678         assemble_variable, assemble_name): Likewise.
10679
10680         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
10681
10682         * arm/pe.c (arm_pe_unique_section): Likewise.
10683
10684         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
10685
10686         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
10687
10688         * i386/interix.c (i386_pe_unique_section): Likewise.
10689
10690         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
10691
10692         * i386/winnt.c (i386_pe_unique_section): Likewise.
10693
10694         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
10695
10696         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
10697
10698         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
10699
10700         * pa/pa.c (output_call): Likewise.
10701
10702         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
10703
10704         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
10705
10706         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
10707         Likewise.
10708
10709         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
10710         Likewise.
10711
10712         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
10713
10714         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
10715         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
10716
10717         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
10718
10719 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10720
10721         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
10722
10723 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10724
10725         * tree.h (lang_identify): Constify a char*.
10726         (print_error_function): Add extern prototype.  Constify a char*.
10727
10728         * c-lang.c (lang_identify): Constify a char*.
10729
10730         * objc/objc-act.c (lang_identify): Constify a char*.
10731
10732 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10733
10734         * genpeep.c (main): Make generated file include "function.h".
10735         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
10736
10737 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10738
10739         * Makefile.in: Update dependencies.
10740         * alias.c: Include "function.h"
10741         * c-decl.c: Likewise.
10742         * caller-save.c: Likewise.
10743         * calls.c: Likewise.
10744         * combine.c: Likewise.
10745         * cse.c: Likewise.
10746         * explow.c: Likewise.
10747         * final.c: Likewise.
10748         * global.c: Likewise.
10749         * graph.c: Likewise.
10750         * local-alloc.c: Likewise.
10751         * loop.c: Likewise.
10752         * optabs.c: Likewise.
10753         * profile.c: Likewise.
10754         * recog.c: Likewise.
10755         * regclass.c: Likewise.
10756         * regmove.c: Likewise.
10757         * reload.c: Likewise.
10758         * reorg.c: Likewise.
10759         * resource.c: Likewise.
10760         * sched.c: Likewise.
10761         * stupid.c: Likewise.
10762         * config/1750a/1750a.c: Likewise.
10763         * config/a29k/a29k.c: Likewise.
10764         * config/arc/arc.c: Likewise.
10765         * config/arm/arm.c: Likewise.
10766         * config/arm/thumb.c: Likewise.
10767         * config/c4x/c4x.c: Likewise.
10768         * config/clipper/clipper.c: Likewise.
10769         * config/convex/convex.c: Likewise.
10770         * config/fx80/fx80.c: Likewise.
10771         * config/i860/i860.c: Likewise.
10772         * config/m68k/m68k.c: Likewise.
10773         * config/m88k/m88k.c: Likewise.
10774         * config/mips/mips.c: Likewise.
10775         * config/pdp11/pdp11.c: Likewise.
10776         * config/pyr/pyr.c: Likewise.
10777         * config/romp/romp.c: Likewise.
10778         * config/sh/sh.c: Likewise.
10779         * config/tahoe/tahoe.c: Likewise.
10780         * config/vax/vax.c: Likewise.
10781         * config/we32k/we32k.c: Likewise.
10782         * config/sparc/sparc.c: Include "function.h".
10783         (mem_min_alignment): Test current_function rather than
10784         regno_pointer_align.
10785         * config/pa/pa.c: Likewise.
10786         (compute_frame_size): Delete declaration of
10787         current_function_outgoing_args_size.
10788         * config/arc/arc.h (current_function_varargs): Delete declaration.
10789         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
10790         declaration.
10791         * config/i370/i370.h (current_function_outgoing_args_size): Delete
10792         declaration.
10793         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
10794         current_function_uses_pic_offset_table.
10795         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
10796         of current_function_returns_pointer.
10797         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10798         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10799         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10800         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10801         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10802         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
10803         * config/m88k/m88k.c: Include "function.h"
10804         (call_used_regs, current_function_pretend_args_size,
10805         current_function_outgoing_args_size, frame_pointer_needed): Delete
10806         declarations.
10807         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
10808         declaration.
10809         * config/mips/mips.h (current_function_calls_alloca): Delete
10810         declaration.
10811         * config/mn10200/mn10200.h (current_function_needs_context,
10812         rtx_equal_function_value_matters): Delete declarations.
10813         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
10814         flag_pic): Delete declarations.
10815         * config/pa/pa.h (current_function_pretend_args_size,
10816         current_function_decl): Delete declarations.
10817         * config/pa/som.h (current_function_varargs): Delete declaration.
10818         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
10819         declaration.
10820         * config/pyr/pyr.h (current_function_pretend_args_size,
10821         current_function_args_size, current_function_calls_alloca): Delete
10822         declarations.
10823         * config/sh/sh.h (current_function_varargs): Delete declaration.
10824         * config/sparc/sparc.h (current_function_outgoing_args_size,
10825         current_function_calls_alloca, current_function_decl): Delete
10826         declarations.
10827         * config/spur/spur.h (current_function_pretend_args_size,
10828         current_function_calls_alloca): Delete declarations.
10829         * config/v850/v850.c (current_function_outgoing_args_size): Delete
10830         declaration.
10831         * config/vax/vms.h (current_function_name): Delete declaration.
10832         * gcse.c: Include "function.h".
10833         (current_function_name, current_function_calls_setjmp): Delete
10834         declarations.
10835         * haifa-sched.c: Include "function.h".
10836         (forced_labels): Delete declaration.
10837         * jump.c: Likewise.
10838         * reg-stack.c: Likewise.
10839         * reload1.c: Likewise.
10840         * genemit.c (main): Make generated file include function.h.
10841         * genoutput.c (output_prologue): Likewise.
10842
10843         * builtins.c (saveregs_value, apply_args_value): Delete variables.
10844         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
10845         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
10846         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
10847         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
10848         macros for some of them.
10849         (emit_filename, emit_lineno): Delete declarations.
10850         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
10851         regno_pointer_* variables through current_function.
10852         (gen_inline_header_rtx): Delete function.
10853         (save_emit_status): Delete function.
10854         (set_new_last_label_num): New function.
10855         (clear_emit_caches): New function.
10856         (restore_emit_status): Just clear last_labelnum and call
10857         clear_emit_caches.
10858         (get_last_insn_anywhere): Variable sequence_stack is now accessed
10859         through macro seq_stack.
10860         (add_insn_after): Likewise.
10861         (add_insn_before): Likewise.
10862         (remove_insn): Likewise.
10863         (pop_topmost_sequence): Likewise.
10864         (in_sequence_p): Likewise.
10865         (start_sequence_for_rtl_expr): Likewise.
10866         (start_sequence): Likewise, and likewise for
10867         sequence_rtl_expr/seq_rtl_expr.
10868         (push_topmost_sequence): Likewise.
10869         (end_sequence): Likewise.
10870         (init_virtual_regs): Now takes a "struct emit_status *" argument.
10871         All callers changed.  Store into that pointer instead of globals.
10872         (init_emit): Allocate emit elt of current_function.
10873         Changes for sequence_rtl_expr/sequence_stack renaming.
10874         Call clear_emit_caches instead of doing it in-line.
10875         Access regno_pointer_* variables through current_function.
10876         (init_emit_once) Don't clear sequence_stack.
10877
10878         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
10879         Delete variables.
10880         (arg_pointer_save_area): Delete declaration.
10881         (finish_expr_for_function): Renamed from init_queue; no longer static.
10882         (init_expr): Don't call init_queue.
10883         (save_expr_status, restore_expr_status): Delete functions.
10884         (expand_expr): Changes to reflect new layout of struct function.
10885         Don't access current_function_check_memory_usage when current_function
10886         is 0.
10887         * expr.h (forced_labels, save_expr_regs, saveregs_value,
10888         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
10889         current_function_outgoing_args_size, current_function_arg_offset_rtx,
10890         current_function_uses_const_pool, function_call_count,
10891         current_function_uses_pic_offset_table, nonlocal_labels,
10892         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
10893         current_function_check_memory_usage, nonlocal_goto_handler_slots,
10894         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
10895         declarations.
10896         (finish_expr_for_function): Declare.
10897         * flags.h (current_function_has_nonlocal_label,
10898         current_function_has_nonlocal_goto, current_function_is_thunk,
10899         current_function_has_computed_jump): Delete declarations.
10900         * flow.c (forced_labels): Delete declaration.
10901         * function.c (current_function_pops_args,
10902         current_function_returns_struct, current_function_returns_pcc_struct,
10903         current_function_needs_context, current_function_calls_setjmp,
10904         current_function_calls_longjmp, current_function_has_nonlocal_label,
10905         current_function_has_nonlocal_goto, current_function_is_thunk,
10906         current_function_has_computed_jump, current_function_calls_alloca,
10907         current_function_contains_functions, current_function_returns_pointer,
10908         current_function_epilogue_delay_list, current_function_args_size,
10909         current_function_pretend_args_size, current_function_arg_offset_rtx,
10910         current_function_outgoing_args_size, current_function_varargs,
10911         current_function_stdarg, current_function_args_info, cleanup_label,
10912         current_function_name, current_function_uses_const_pool,
10913         current_function_instrument_entry_exit, current_function_return_rtx,
10914         current_function_uses_pic_offset_table, nonlocal_labels,
10915         current_function_internal_arg_pointer, current_function_cannot_inline,
10916         current_function_check_memory_usage, function_call_count,
10917         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
10918         nonlocal_goto_stack_level, return_label, save_expr_regs,
10919         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
10920         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
10921         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
10922         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
10923         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
10924         Delete variables.
10925         (push_function_context_to): Don't save them.  Don't call
10926         save_storage_status, save_emit_status or save_expr_status.
10927         (pop_function_context_from): Don't restore them.  Don't call
10928         restore_storage_status or restore_expr_status.
10929         (get_func_frame_size): New function.
10930         (get_frame_size): Use it.
10931         (assign_outer_stack_local): Reflect some member name changes in struct
10932         function.
10933         (put_reg_into_stack): Likewise.
10934         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
10935         seq_rtl_expr.
10936         (fixup_var_refs): Likewise.
10937         (fix_lexical_addr): Likewise.
10938         (trampoline_address): Likewise.
10939         (prepare_function_start): Clear field inlinable of current_function.
10940         (init_function_for_compilation): New function.
10941         (expand_dummy_function_end): New function.
10942         (expand_function_end): Call finish_expr_for_function.
10943         * function.h (struct emit_status): New; fields moved here from struct
10944         function and from global variables.  Add accessor macros for some of
10945         the fields.
10946         (struct expr_status): Likewise.
10947         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
10948         (struct function): Add fields expr and emit, inlinable, inl_emit,
10949         original_arg_vector, original_decl_initial, inl_last_parm_insn,
10950         inl_max_label_num.  Add many comments.
10951         Add accessor macros for all elts of struct function that no longer
10952         have a global variable.
10953         (cleanup_label, return_label, frame_offset, tail_recursion_label,
10954         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
10955         stack_slot_list): Delete declarations.
10956         (get_func_frame_size): Declare.
10957         (save_expr_status, restore_expr_status, save_emit_status,
10958         save_storage_status, restore_storage_status): Delete declarations.
10959         (init_virtual_regs): Declare.
10960         * output.h (current_function_pops_args,
10961         current_function_returns_struct, current_function_returns_pcc_struct,
10962         current_function_needs_context, current_function_calls_setjmp,
10963         current_function_calls_longjmp, current_function_calls_alloca,
10964         current_function_has_nonlocal_label, current_function_varargs,
10965         current_function_has_computed_jump, current_function_returns_pointer,
10966         current_function_contains_functions, current_function_args_size,
10967         current_function_pretend_args_size, current_function_stdarg,
10968         current_function_outgoing_args_size, current_function_args_info,
10969         current_function_name, current_function_return_rtx,
10970         current_function_epilogue_delay_list,
10971         current_function_uses_const_pool, current_function_cannot_inline):
10972         Delete declarations.
10973         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
10974         regno_reg_rtx): Delete declaration.
10975         (REGNO_POINTER_FLAG): Delete macro.
10976         * stmt.c (expand_goto): Changes to reflect that some fields in struct
10977         function were renamed.
10978         * stor-layout.c (save_storage_status, restore_storage_status): Delete
10979         functions.
10980         * toplev.c: Include "function.h".
10981         (current_function_decl): Delete declaration.
10982         (compile_file): Call init_dummy_function_start and
10983         expand_dummy_function_end around some initializations that need to
10984         emit rtl.
10985         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
10986         Call init_function_for_compilation.
10987         * unroll.c: Include "function.h"
10988         (unroll_loop): Access regno_pointer_* variables through
10989         current_function.
10990
10991         * tree.h (struct tree_decl): Add elt f to saved_insns member.
10992         (DECL_SAVED_INSNS): use it.
10993         (expand_dummy_function_end): Declare.
10994         (init_function_for_compilation): Declare.
10995         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
10996         that it's no longer an INLINE_HEADER.
10997         (expand_call): Likewise.
10998         * integrate.c (finish_inline): Delete function.
10999         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
11000         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
11001         args.  Don't generate an INLINE_HEADER rtx, just return the arg
11002         vector.  All callers changed.
11003         (save_for_inline_copying):  Create a duplicate struct emit_status to
11004         hold the emit state for compiling the current function.  Use this and
11005         the other new fields in struct function that are for integration
11006         instead of an INLINE_HEADER.
11007         Use memcpy instead of bcopy.
11008         Store the current struct function in DECL_SAVED_INSNS of fndecl.
11009         (save_for_inline_nocopy): Similar changes, except no new emit_status
11010         is needed here.
11011         (expand_inline_function): Get information from function structure,
11012         not from an inline header rtx.
11013         (output_inline_function): Lose code to extract the necessary
11014         information from an inline header; simply put back the function
11015         structure into current_function.  Clear its inlinable elt.
11016         * rtl.def (INLINE_HEADER): Delete.
11017         * rtl.h: Delete all accessors for an INLINE_HEADER.
11018         (gen_inline_header_rtx): Delete declaration.
11019         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
11020         Delete declarations.
11021         (REGNO_POINTER_ALIGN): Delete.
11022         (clear_emit_caches): Declare.
11023         (set_new_last_label_num): Declare.
11024
11025 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
11026
11027         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
11028
11029         * except.c (expand_eh_region_start_for_decl): Always start a new block.
11030         * stmt.c (is_eh_region): Make sure current_function is present, too.
11031
11032 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
11033
11034         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
11035         for 64bit PA targets.
11036
11037         * pa.h (SELECT_SECTION): Define.
11038         * som.h (SELECT_SECTION): Delete.
11039
11040 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11041
11042         * alias.c (init_alias_analysis): Wrap call to
11043         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
11044
11045 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
11046
11047         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
11048         <sys/asm.h> contains an asm comment with an apostrophe
11049         * fixinc/inclhack.sh:  regen
11050         * fixinc/fixincl.x:  regen
11051
11052 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
11053
11054         * function.c (init_function_start): Clear prologue & epilogue.
11055         (prologue_epilogue_contains): New function.
11056         * alias.c (init_alias_analysis): Use it.
11057         * rtl.h (prologue_epilogue_contains): Declare it.
11058
11059 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
11060
11061         * jump.c (onlyjump_p): New function.
11062         * rtl.h: Declare it.
11063         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
11064         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
11065
11066 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
11067
11068         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
11069         to invert loops.  Simplify block scanning.
11070
11071 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
11072
11073         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
11074         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
11075
11076 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
11077
11078         * config/sparc/liteelf.h: New file to support sparclite-elf target
11079         * config/sparc/t-sp86x: New file to support sparc86x targets
11080         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
11081         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
11082         * configure.in: Support above target triplets
11083         * configure: Regenerated
11084
11085 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
11086
11087         * fixinc/server.c (server_setup): Do not prefix function used as
11088         parameter with `&'.
11089
11090 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
11091
11092         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
11093         Remove fp reg alternatives.
11094
11095 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
11096
11097         * Makefile.in (TAROUTOPTS): Kill.
11098         (install-headers-tar): Use "xpf" for tar headerfile extraction
11099         * i370/x-oe (TAROUTOPTS): Delete.
11100         * m68k/x-apollo68 (TAROUTOPTS): Delete.
11101         * m68k/x-hp320 (TAROUTOPTS): Delete.
11102         * m68k/x-hp320g (TAROUTOPTS): Delete.
11103         * gcc.texi: Update bug reporting text.
11104
11105 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11106
11107         * reg-stack.c (change_stack) Fixed problem with negative array index.
11108
11109 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
11110
11111         * extend.texi, install.texi: Fix spelling mistakes.
11112
11113         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
11114         (s-attrtab); No longer try to use pre-made insn-attrtab file.
11115         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
11116         PREMADE_ATTRTAB_MD.
11117         * mips/t-ecoff: Likewise.
11118         * mips/t-elf: Likewise.
11119         * mips/t-mips: Likewise.
11120         * mips/t-osfrose: Likewise.
11121         * mips/t-r3900: Likewise.
11122         * mips/t-svr3: Likewise.
11123         * mips/t-svr4: Likewise.
11124         * mips/t-ultrix: Likewise.
11125
11126         * gcc.texi: Document recommend means to provide software floating
11127         point libraries in libgcc.a
11128
11129 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
11130
11131         * c-lex.c (yylex): We can have a number with no digits.
11132
11133 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
11134
11135         * jump.c (delete_prior_computation): New function, broken
11136         out of delete_computation.  Check for side effects with
11137         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
11138         multi-word hard registers.
11139         (delete_computation): Use it.  Check for side effects with
11140         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
11141         missing REG_DEAD note for a register which is both set and
11142         used by an insn.
11143
11144 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
11145
11146         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
11147         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
11148         (ASM_FILE_START): Import _mcount with the right type.
11149         (ASM_DECLARE_FUNCTION_NAME): Define.
11150         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
11151         * pa.c (output_function_prologue): Always emit the function's label
11152         here.
11153         * pa.h (TEXT_SPACE_P): Define.
11154         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
11155         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
11156         * som.h (TEXT_SPACE_P): Delete.
11157         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
11158         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
11159
11160 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
11161
11162         * expr.c (emit_group_load): Allow src to be a CONCAT.
11163
11164 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11165
11166         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
11167         (___mulsi3): Use '!' comment character.
11168
11169 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11170
11171         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
11172
11173 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
11174
11175         * gcc.c: Update URLs and mail addresses.
11176         * gcc.texi: Likewise.
11177
11178 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
11179
11180         * rs6000.c (current_file_function_operand): Return zero for
11181         weak functions.
11182         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
11183         weak symbols.
11184         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
11185         for weak symbols.
11186
11187 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
11188
11189         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
11190         allocate space in the stack frame for the PIC register.
11191
11192 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
11193
11194         * m68k.md (xordi3, anddi3): These patterns are not available on
11195         the coldfire.
11196
11197 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
11198
11199         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
11200         (PUT_REAL): Likewise.
11201
11202 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11203
11204         * final.c (shorten_branches): Don't add an alignment for loops
11205         that have no label inside.
11206
11207 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11208
11209         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
11210         prototypes in macro HAVE_cmpstrsi.
11211
11212         * cpplib.c (cpp_get_token): Remove unused label `op3'.
11213
11214         * emit-rtl.c (operand_subword): Remove unused variable
11215         `bits_per_word'.
11216
11217         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
11218
11219         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
11220
11221 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
11222
11223         * cpphash.c (macroexpand): Delete leading whitespace when arg
11224         is concatenated before.
11225         (unsafe_chars): Correct test for whether + and - can extend a
11226         token.
11227
11228         * cppinit.c (cpp_start_read): Do dependencies for
11229         -include/-imacros files also.
11230
11231         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
11232         tokenizing non-directive lines.
11233         (cpp_expand_to_buffer): Temporarily disable no-output mode.
11234         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
11235         the input file.
11236
11237 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
11238
11239         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
11240
11241         * c-lex.c: Sync with C++ frontend.
11242         (linemode): New variable.
11243         (parse_float): imag, conversion_errno, and type are output only.
11244         (yylex): Adjust.  Move initial '.' case into main switch.
11245         Use linemode.
11246         (handle_generic_pragma): Just deal with tokens.
11247         (readescape): Use ISXDIGIT and ISGRAPH.
11248         * c-parse.in: Add END_OF_LINE token.
11249
11250         * c-lex.c (lang_init): Generalize.
11251         (nextchar): Remove.  Replace uses with UNGETC.
11252         (skip_white_space): Handle linemode here.  Optimize for cpplib.
11253         (skip_white_space_on_line): Remove.
11254         (extend_token_buffer_to): New fn.
11255         (extend_token_buffer): Use it.
11256         (read_line_number, check_newline): Just deal with tokens.
11257         (token_getch, token_put_back): New fns.
11258         (yylex): Use them.  More cpplib optimizations.  Simplify.
11259
11260 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
11261                           Jason Merrill  <jason@yorick.cygnus.com>
11262
11263         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
11264         (consume_string): Make this smart about USE_CPPLIB.
11265         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
11266         (yylex): Rewrite to be intelligent about USE_CPPLIB.
11267         Also, clean up cases where we redundantly set token_buffer[0].
11268         (read_line_number): New fn.
11269         (ignore_escape_flag): New variable.
11270
11271 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
11272
11273         * a29k/t-a29kbare: Fix some comments.
11274         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
11275         (FPBIT, DPBIT): Define.
11276         * a29k/t-vx29k: Likewise.
11277         * arc/t-arc: Likewise.
11278         * arm/t-arm-elf: Likewise.
11279         * arm/t-bare: Likewise.
11280         * arm/t-pe: Likewise.
11281         * arm/t-pe-thumb: Likewise.
11282         * arm/t-semi: Likewise.
11283         * arm/t-thumb: Likewise.
11284         * arm/t-thumb-elf: Likewise.
11285         * arm/t-thumb-linux: Likewise.
11286         * h8300/t-h8300: Likewise.
11287         * i960/t-i960: Likewise.
11288         * i960/t-vxworks960: Likewise.
11289         * m32r/t-m32r: Likewise.
11290         * mips/t-ecoff: Likewise.
11291         * mips/t-elf: Likewise.
11292         * mips/t-r3900: Likewise.
11293         * pa/t-pro: Likewise.
11294         * rs6000/t-aix43: Likewise.
11295         * rs6000/t-beos: Likewise.
11296         * rs6000/t-newas: Likewise.
11297         * rs6000/t-ppccomm: Likewise.
11298         * rs6000/t-rs6000: Likewise.
11299         * rs6000/t-winnt: Likewise.
11300         * rs6000/t-xnewas: Likewise.
11301         * rs6000/t-xrs6000: Likewise.
11302         * sh/t-sh: Likewise.
11303         * sparc/t-elf: Likewise.
11304         * sparc/t-sparcbare: Likewise.
11305         * sparc/t-sparclite: Likewise.
11306         * sparc/t-splet: Likewise.
11307         * v850/t-v850: Likewise.
11308         * mn10200/t-mn10200: Fix comments.
11309         * mn10300/t-mn10300: Likewise.
11310
11311         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
11312         dummy operand.  Allocate a new pseudo for the dummy operand.
11313         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
11314
11315         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
11316
11317 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
11318
11319         * configure: Rebuilt.
11320         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
11321
11322 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
11323
11324         * recog.c (preproces_constraints): Zero recog_op_alt before
11325         processing the constraints.
11326
11327         * arm.c (typedef minipool_node): Renamed from pool_node.
11328         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
11329         (add_minipool_constant): New function.
11330         (dump_minipool): New function.
11331         (find_barrier): Remove special case for getting the insn size of
11332         an insn that references the constant pool.
11333         (minipool_fixup): New structure.
11334         (push_minipool_barrier): New function.
11335         (push_minipool_fix): New function.
11336         (note_invalid_constants): New function.
11337         (add_pool_constant, dump_table, fixit, broken_move): Delete.
11338         (arm_reorg): Rewrite code to fix up the constant pool into a
11339         series of mini-pools embedded in the insn stream.
11340         (arm_output_epilogue): New function, made mainly from the body
11341         of output_func_epilogue.
11342         (output_func_epilogue): Move insn generation part of epilogue code
11343         to arm_output_epilogue.
11344         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
11345         * arm.md (pool_range): New attribute.
11346         (zero_extendqidi2): Add attribute pool_range.
11347         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
11348         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
11349         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
11350         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
11351         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
11352         (epilogue): New expand.
11353         (epilogue_insn): New insn.  Call arm_output_epilogue.
11354
11355         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
11356         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
11357
11358 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
11359
11360         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11361
11362 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
11363
11364         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
11365
11366 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
11367
11368         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
11369
11370 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
11371
11372         * global.c: Fix comment.
11373
11374 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
11375
11376         * gcc.c (access_check): New static function.
11377         (find_a_file): Use it when searching a directory list.
11378         * collect2.c (find_a_file): Don't accept directories found when
11379         searching a directory list.
11380
11381 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
11382
11383         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
11384         function parameters with `&'.
11385         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
11386
11387 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
11388
11389         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
11390         or tidy_fallthru_edge if the last insn in the block is not
11391         an unconditional jump or a simple conditional jump.
11392
11393 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11394
11395         * Makefile.in (c-decl.o): Depends on defaults.h.
11396
11397 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
11398
11399         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
11400         PA1.1 and above.
11401         (CLASS_MAX_NREGS): Likewise.
11402
11403 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
11404
11405         * cse.c (cse_insn): Fix dumb thinko in last change.
11406
11407 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11408
11409         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
11410         "const char *".
11411
11412 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
11413
11414         * dwarf2out.c (add_location_or_const_value_attribute): Correct
11415         test for sizes of passed and declared parameter types.
11416
11417 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11418
11419         * fixincludes: Fix the return type of bsearch, char* -> void*.
11420
11421         * fixinc/inclhack.def: Likewise.
11422
11423 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
11424
11425         * invoke.texi (-fdump-translation-unit): New option.
11426
11427 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
11428
11429         * expr.h (PROMOTE_PROTOTYPES): Move ...
11430         * defaults.h: ... to here.
11431         * c-decl.c: Include defaults.h instead of expr.h.
11432         * c-typeck.c: Include defaults.h.
11433
11434 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
11435
11436         * toplev.h (errorcount): Declare.
11437         (warningcount): Likewise.
11438         (sorrycount): Likewise.
11439         * c-lex.c (errorcount): Don't declare.
11440         * dwarf2out.c (errorcount): Don't declare.
11441
11442 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
11443
11444         * config/libgloss.h: Add a note discouraging use with ELF.
11445         * configure.in: Don't use libgloss.h for ELF targets.
11446         Always use_collect2 on a.out targets.
11447
11448 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
11449
11450         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
11451         (force_to_mode, case ASHIFTRT): Add shiftrt label.
11452
11453 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11454
11455         * loop.c (strength_reduce): When doing biv->giv conversion, update
11456         reg note of NEXT->insn.
11457
11458 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
11459
11460         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
11461
11462 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
11463
11464         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
11465         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
11466         Ensure expr.h is included.
11467         * c-typecheck.c (convert_arguments): Ditto.
11468
11469         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
11470
11471         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
11472         * config/convex/convex.h: Ditto.
11473         * config/dsp16xx/dsp16xx.h: Ditto.
11474         * config/fx80/fx80.h: Ditto.
11475         * config/gmicro/gmicro.h: Ditto.
11476         * config/i370/i370.h: Ditto.
11477         * config/i386/i386.h: Ditto.
11478         * config/m32r/m32r.h: Ditto.
11479         * config/m68k/m68k.h: Ditto.
11480         * config/m88k/m88k.h: Ditto.
11481         * config/mips/mips.h: Ditto.
11482         * config/pa/pa.h: Ditto.
11483         * config/pyr/pyr.h: Ditto.
11484         * config/tahoe/tahoe.h: Ditto.
11485         * config/we32k/we32k.h: Ditto.
11486
11487         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
11488         based on arch size.
11489
11490         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
11491
11492         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
11493         from comment.
11494
11495         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
11496
11497 1999-08-02  Richard Henderson  <rth@cygnus.com>
11498
11499         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
11500         for the register spill block.
11501         (m32r_va_arg): New.
11502         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
11503         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
11504
11505         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
11506         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
11507         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
11508
11509 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
11510
11511         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
11512         MAX_WCHAR_TYPE defined in sparc.h.
11513         * config/sparc/linuxaout.h: Likewise.
11514         * config/sparc/linux64.h: Likewise.
11515         Also default to -mvis if CPU is UltraSPARC.
11516
11517 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
11518
11519         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
11520         (RTX_OK_FOR_OLO10): Likewise.
11521         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
11522         %lo(), allow it in addresses...
11523         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
11524         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
11525         does not make sense.
11526         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
11527         (sparc_output_scratch_registers): New function.
11528         (output_function_prologue, sparc_flat_output_function_prologue): Use
11529         it.
11530         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
11531         defined.
11532         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
11533         * configure.in: Add check for .register pseudo-op support in as and
11534         check for offsetable %lo().
11535         * acconfig.h: Add templates for the above checks.
11536         * configure: Regenerate.
11537
11538 1999-08-02  Richard Henderson  <rth@cygnus.com>
11539
11540         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
11541         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
11542         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
11543
11544 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11545
11546         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
11547         reg_biv_class.
11548
11549 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
11550
11551         * config/float-sparc.h: New file.
11552         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
11553         sparc-*-linux-gnu and sparc64-*-linux*.
11554
11555 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11556
11557         * rs6000.c (rs6000_va_list): Type is an array.
11558         (rs6000_va_start): Don't doubly adjust for varargs.
11559         (rs6000_va_arg): Evaluate long long GPR adjustment.
11560
11561 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
11562
11563         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
11564         -maix64 and -maix32.
11565         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
11566         LINK_SPEC): Change appropriately.
11567         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
11568         (u_short_cint_operand): Likewise.
11569         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
11570         for 64-bit hosts.
11571         * rs6000/t-aix43 (MULTILIB): Change to -m64.
11572
11573         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
11574
11575 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
11576
11577         * rs6000/rs6000.c (num_insns_constant_wide): Correct
11578         for type promotion.
11579         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
11580         (non_add_cint_operand): Likewise.
11581         (logical_operand): Likewise.
11582         (non_logical_cint_operand): Likewise.
11583         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
11584         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
11585         (rs6000_select_rtx_section): Suppress warning.
11586         (small_data_operand): Suppress warning.
11587         (rs6000_got_register): Suppress warning.
11588         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
11589         type, so `J' is generally the wrong constraint for a SImode value;
11590         use `L' instead.
11591         (andsi3_internal2): Likewise.
11592         (andsi3_internal3): Likewise.
11593         (iorsi3_internal1): Likewise.
11594         (xorsi3_internal1): Likewise.
11595         (movsi): Likewise.
11596         (movsf_softfloat): Likewise.
11597         (scc insns): Likewise.
11598         (movsi+2): Preserve sign bits of SImode constant.
11599         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
11600         (movdf+1): Sign-extend properly.
11601         (movdi_32+1): Sign-extend properly.
11602         (scc insns): Sign-extend properly.
11603
11604         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
11605         K, L, and T.
11606
11607 1999-08-02  Richard Henderson  <rth@cygnus.com>
11608
11609         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
11610         -mcpu parsing code.
11611         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
11612         * alpha.md (all fp insns): Likewise.
11613
11614 1999-08-02  Nick Clifton  <nickc@cygnus.com>
11615
11616         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
11617         already defined.
11618
11619 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
11620
11621         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
11622         pic_load_label generator directly.
11623         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
11624         No longer a named pattern.
11625
11626 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
11627
11628         * explow.c (force_reg): Call force_operand if X does not
11629         satisfy general_operand.
11630
11631 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
11632
11633         * fix-header.c (main): When testing for CONTINUED, use string
11634         equality, not pointer equality.
11635
11636 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
11637
11638         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
11639
11640 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
11641
11642         * cse.c (cse_insn): Fix loop which deletes insns after a jump
11643         that has become an unconditional jump.
11644
11645         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
11646         (output_function_epilogue): Similarly.
11647
11648 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11649
11650         * tree.h (init_dummy_function_start): Declare.
11651
11652 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11653
11654         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
11655         last_expr_type, last_expr_value, block_start_count, block_stack,
11656         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
11657         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
11658         dynamically in stmt elt of struct function for each function.
11659         (struct nesting): Rename function_call_count elt to n_function_calls,
11660         target_temp_slot_level to block_target_temp_slot_level.  All users
11661         changed.
11662         (struct stmt_status): New structure definition.
11663         Add many accessor macros for stmt_status elements which previously
11664         were global variables.
11665         (init_stmt_for_function): Allocate stmt elt for current_function.
11666         Reflect that block_start_count was renamed to
11667         current_block_start_count.
11668         (save_stmt_status, restore_stmt_status): Delete functions.
11669         (preserve_subexpressions_p): Don't access loop_stack when outside
11670         a function.
11671         (expand_start_bindings): Reflect that block_start_count was renamed to
11672         current_block_start_count.
11673         (expand_fixup): Likewise.
11674         (expand_decl): Don't access block_stack when outside a function.
11675         (expand_decl_cleanup): Likewise.
11676         (expand_dcc_cleanup): Likewise.
11677         (expand_dhc_cleanup): Likewise.
11678         (expand_anon_union_decl): Likewise.
11679         (set_file_and_line_for_stmt): New function.
11680         (in_control_zone_p): New function.
11681
11682         * function.h (struct function): Add new elt stmt.
11683         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
11684         case_stack, nesting_stack, nesting_depth, block_start_count,
11685         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
11686         emit_lineno, goto_fixup_chain.
11687         (save_eh_status, restore_eh_status, save_stmt_status,
11688         restore_stmt_status): Delete declarations.
11689         * function.c (push_function_context_to): Don't call save_stmt_status.
11690         (pop_function_context_to): Don't call restore_stmt_status.
11691         * tree.h (in_control_zone_p): Declare.
11692         * rtl.h (set_file_and_line_for_stmt): Declare.
11693
11694         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
11695         call set_file_and_line_for_stmt.
11696
11697 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
11698
11699         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
11700         Also update copyright.
11701
11702 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11703
11704         * c-pragma.c: Don't include "except.h".
11705         * emit-rtl.c: Likewise.
11706         * stor-layout.c: Likewise.
11707         * tree.c: Likewise.
11708         * varasm.c: Likewise.
11709
11710         * flow.c: Include "function.h".
11711         * tree.h (init_dummy_function_start): Declare new function.
11712
11713         * except.h (struct eh_status): New structure.
11714         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
11715         been included.
11716         (eh_return_stub_label, ehstack, catchstack, ehqueue,
11717         catch_clauses, false_label_stack, caught_return_label_stack,
11718         protect_list, current_function_ehc): Add accessor macros for the
11719         corresponding fields in current_function->eh; delete declarations
11720         for all items that used to be declared here.
11721         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
11722         catch_clauses, false_label_stack, caught_return_label_stack,
11723         protect_list, current_function_ehc): Delete variables.
11724         (init_eh_for_function): Allocate current_function->eh.
11725         (save_eh_status, restore_eh_status): Delete functions.
11726
11727         * function.h (struct function): Add fields next_global and eh.
11728         Delete all exception handling related fields.
11729         * function.c (current_function): New variable.
11730         (all_functions): New variable.
11731         (push_function_context_to): Don't allocate a struct function,
11732         use current_function instead.  Call init_dummy_function_start when
11733         outside a function.  Clear current_function before returning.
11734         (pop_function_context_from): Restore current_function.
11735         Don't free the restored struct function.
11736         (prepare_function_start): New function.
11737         (init_dummy_function_start): New function.
11738         (init_function_start): Break out some code into prepare_function_start
11739         and call it here.
11740
11741         * stmt.c (save_stmt_status): Don't call save_eh_status.
11742         (restore_stmt_status): Don't call restore_eh_status.
11743
11744         * Makefile.in: Update dependencies.
11745
11746 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
11747
11748         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
11749         of depending on a magic constant value.  Update comments.
11750         (hppa_expand_prologue): Similarly.
11751
11752         * pa.md (reload_indi, reload_outdi): Allow any register for the
11753         original reload register.
11754
11755 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
11756
11757         * cccp.c (print_help): Change marcos to macros.
11758
11759 1999-07-30  Richard Henderson  <rth@cygnus.com>
11760
11761         * c-typeck.c (initializer_constant_valid_p): Move ...
11762         * c-common.c (initializer_constant_valid_p): ... here.  Use
11763         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
11764         of label addresses.
11765         * c-common.h (initializer_constant_valid_p): Declare.
11766         * c-tree.h (initializer_constant_valid_p): Remove.
11767
11768 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
11769
11770         * config/i386/sol2-c1.asm: Align the stack.
11771         * config/i386/sol2-gc1.asm: Likewise.
11772
11773 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
11774
11775         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
11776         -Asparclite for sparc86x.
11777         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
11778         sparc86x.
11779         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
11780
11781 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
11782
11783         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
11784         the user if using the non-default arch size in BI_ARCH configuration.
11785         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
11786
11787         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
11788         Fix patterns so that they actually match.
11789         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
11790         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
11791         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
11792         TARGET_HARD_MUL32.
11793         (mulsidi3): Reflect this in the expand.
11794         (smulsi3_highpart): Only on TARGET_ARCH32.
11795         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
11796         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
11797         (umulsidi3): Reflect this in the expand.
11798         (umulsi3_highpart): Only on TARGET_ARCH32.
11799         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
11800         don't require g0 to be zero.
11801         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
11802         ({,u}divsi3): New expands.
11803         ({,u}divsi3_sp64): New patterns.
11804         (after lshrdi3_v8plus): Four new patterns to help combiner
11805         optimizing nested mixed mode shifts.
11806
11807         * config/sparc/sparc.c (sparc_override_options): Use deprecated
11808         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
11809         speed things up. Don't use them by default on plain v9 in 64bit
11810         mode, according to what SPAMv9 sais.
11811
11812         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
11813         top 32 bits of %[og][0-7] in signal handlers.
11814         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
11815
11816 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
11817
11818         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
11819         (ashlsi3): Corresponding changes.
11820
11821         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
11822
11823 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
11824
11825         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
11826
11827 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11828
11829         * arm.h (Hint): Delete macro.
11830         Substitute HOST_WIDE_INT for Hint in some prototypes.
11831         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
11832
11833 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
11834
11835         * builtins.c (expand_builtin_setjmp): Use force_operand to
11836         make sure that the buffer address is in a suitable form to be
11837         passed to force_reg.
11838
11839 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
11840
11841         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
11842         them here.
11843
11844 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
11845
11846         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
11847         proper mode in the condition string.
11848         (icacheflush, dcacheflush): Remove modes from match_operands.
11849
11850         * pa.c (emit_move_sequence): Always convert scratch_reg to the
11851         proper mode before using it.
11852
11853         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
11854         pair.
11855
11856         * pa.c (store_reg): Do not call add_high_const generator directly.
11857         (load_reg, set_reg_plus_d): Likewise.
11858         * pa.md (add_high_const): No longer a named pattern.
11859
11860         * pa.c (legitimize_address): Consistently use Pmode rather than
11861         SImode.  Do not call gen_pic2_highpart directly anymore.
11862         * pa.md (pic2_highpart): No longer a named pattern.
11863         (pic2_lo_sum): Similarly.  Reformat to make more readable.
11864
11865         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
11866         needed.
11867
11868         * README: Update.
11869
11870 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11871
11872         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
11873
11874 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
11875
11876         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
11877         and tag the spill mems.
11878         (hppa_va_start): New.
11879         (hppa_va_arg): New.
11880         * pa.h (EXPAND_BUILTIN_VA_START): New.
11881         (EXPAND_BUILTIN_VA_ARG): New.
11882
11883 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
11884
11885         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
11886         and tag the spill mems.
11887         (mn10300_va_start): New.
11888         (mn10300_va_arg): New.
11889         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
11890         (EXPAND_BUILTIN_VA_ARG): New.
11891
11892 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
11893
11894         * mn10200.c (mn10200_va_arg): New.
11895         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
11896
11897 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
11898
11899         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
11900         rather than play with TREE_INT_CST_LOW.
11901
11902 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
11903
11904         * config/arm/telf.h: Include dbxelf.h.
11905         (CPP_PREDEFINES): Only define if not already defined.
11906         (ASM_IDENTIFY_GCC): Likewise.
11907         (SUBTARGET_EXTRA_SECTIONS): Likewise.
11908         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
11909         * config/arm/thumb.h (LINK_SPEC): Only define if not already
11910         defined.
11911         (DBX_DEBUGGING_INFO): Don't define.
11912         * config/arm/linux-telf.h: New file.
11913         * config/arm/linux-tgas.h: New file.
11914         * config/arm/t-thumb-linux: New file.
11915         * config/arm/uclinux-elf.h: New file.
11916         * config/arm/uclinux-telf.h: New file.
11917         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
11918         thumb-*-uclinux): New targets.
11919         * configure: Regenerate.
11920
11921 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
11922
11923         * pa.md (post_store, pre_load): New expanders.
11924         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
11925         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
11926         need to directly generate RTL for them.
11927         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
11928         changes.
11929
11930 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
11931
11932         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
11933         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
11934         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
11935         (secndary_reload_class): Make TARGET_ELF conditional compile.
11936         (print_operand_address): Similar.
11937         (output_toc): Print all values as hex.
11938         (get_issue_rate): Rearrange and add RS64A and PPC630.
11939         * rs6000.h (processor_type): Add RS64A and PPC630.
11940         (PROCESSOR_POWERPC64): New.
11941         (PROMOTE_MODE): Use word_mode.
11942         (RTX_COSTS): Add RS64A and PPC630.
11943         * rs6000.md (scheduling information): Add lmul and ldiv
11944         representing 64-bit integer multiply and divide.  Add rs64a and
11945         PPC630 information.
11946         (ashldi3): Add support for "rldic" instruction.
11947         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
11948
11949 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
11950
11951         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
11952         instead of V8 for sparclite86x in cpu_table.
11953
11954 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11955
11956         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
11957         output_file_directive.
11958
11959 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
11960
11961         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
11962         tree for op1, not the rtl.
11963
11964 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
11965
11966         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
11967         to m88k_va_start, leaving only the register spill.
11968         (m88k_build_va_list): New.
11969         (m88k_va_start): New.
11970         (m88k_va_arg): New.
11971         * m88k.h (BUILD_VA_LIST_TYPE): New.
11972         (EXPAND_BUILTIN_VA_START): New.
11973         (EXPAND_BUILTIN_VA_ARG): New.
11974
11975 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
11976
11977         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
11978         Rename from expand_builtin_saveregs.
11979         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
11980
11981 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
11982
11983         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
11984         for the register spill block.
11985         (i960_build_va_list): New.
11986         (i960_va_start): New.
11987         (i960_va_arg): New.
11988         * i960.h (BUILD_VA_LIST_TYPE): New.
11989         (EXPAND_BUILTIN_VA_START): New.
11990         (EXPAND_BUILTIN_VA_ARG): New.
11991         * i960.md (store_multiple): Use change_address on individul mems.
11992
11993 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
11994
11995         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
11996         an ARRAY_TYPE.
11997         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
11998         (expand_builtin_va_end): Evaluate arg for side effects.
11999         * c-common.c (c_common_nodes_and_builtins): Construct a
12000         va_list_arg_type_node to handle array decomposition to pointer.
12001
12002 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
12003
12004         * except.c (start_dynamic_cleanup): Use force_operand on the
12005         buffer's address.
12006
12007 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
12008
12009         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
12010         * c4x.c (c4x_va_arg): New.
12011
12012 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
12013
12014         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
12015         has manual_pop set.
12016
12017 1999-07-26  Nathan Sidwell  <nathan@acm.org>
12018
12019         * eh-common.h (__eh_matcher): Prototype correctly.
12020
12021 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
12022
12023         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
12024         (TARGET_SINGLE_PIC_BASE): Likewise.
12025         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
12026         definitions.
12027         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
12028         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
12029         (TARGET_OPTIONS): Add -mpic-register=N.
12030         (OUTPUT_INT_ADDR_CONST): New macro.
12031         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
12032         LEGITIMATE_PIC_OPERAND_P): Likewise.
12033         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
12034         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
12035         output_addr_const directly.
12036         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
12037         ARM port.
12038         (thumb_pic_register, thumb_pic_register_string): Declare.
12039
12040         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
12041         from arm.c.
12042         (label_mentioned_p): New function: Imported from arm.c.
12043         (legitimize_pic_address): New function: Imported from arm.c.
12044         (is_pic):New function: Imported from arm.c.
12045         (thumb_finalize_pic):New function: Imported from arm.c.
12046         (add_constant): Cope with PIC constants.
12047         (fixit): Cope with PIC constants.
12048         (output_return): Do not treat the PIC register as live if
12049         TARGET_SINGLE_PIC_BASE is true.
12050         (thumb_function_prologue): Do not treat the PIC register as live if
12051         TARGET_SINGLE_PIC_BASE is true.
12052         (thumb_expand_prologue): Do not treat the PIC register as live if
12053         TARGET_SINGLE_PIC_BASE is true.
12054         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
12055         TARGET_SINGLE_PIC_BASE is true.
12056         (thumb_print_operand): Accept '|'.
12057         (thumb_override_options): Process PIC options.
12058
12059         * config/arm/thumb.md (movsi): Support PIC.
12060         (call_insn): Change "i" constraint to "X".
12061         (call_value_insn): Likewise.
12062         (consttable_4, consttable_8, consttable_end): Set and clear
12063         "making_const_table" as appropriate.
12064         (pic_load_addr, pic_add_dot_plus_four): New insns.
12065
12066         * invoke.texi (Thumb Options): Fix spelling.  Document new
12067         options -msingle-pic-base and -mpic-register=.
12068
12069 1999-07-26  Andrew Haley  <aph@cygnus.com>
12070
12071         * config/m32r/initfini.c (__init): Use a full word immediate for
12072         __fini: this allows it to be placed in any memory region.
12073
12074         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
12075         -mmodel=medium.  This is OK for all memory models.
12076
12077 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
12078
12079         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
12080         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
12081
12082 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
12083
12084         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
12085         defined.
12086
12087         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
12088
12089 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
12090
12091         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
12092         (BUILD_VA_LIST_TYPE): New.
12093         (EXPAND_BUILTIN_VA_START): New.
12094         (EXPAND_BUILTIN_VA_ARG): New.
12095         * i860.c (output_delayed_branch): Disable.
12096         (output_delay_insn): Likewise.
12097         (i860_saveregs): New.
12098         (i860_build_va_list): New.
12099         (i860_va_start): New.
12100         (i860_va_arg): New.
12101         * i860.md: Disable all peepholes using output_delayed_branch.
12102         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
12103
12104 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
12105
12106         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
12107         (BUILD_VA_LIST_TYPE): New.
12108         (EXPAND_BUILTIN_VA_START): New.
12109         (EXPAND_BUILTIN_VA_ARG): New.
12110         * clipper.c (clipper_builtin_saveregs): Only dump registers.
12111         Return the address of the save area.
12112         (clipper_build_va_list): New.
12113         (clipper_va_start): New.
12114         (clipper_va_arg): New.
12115
12116 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
12117
12118         * arc.h (EXPAND_BUILTIN_VA_START): New.
12119         (EXPAND_BUILTIN_VA_ARG): New.
12120         * arc.c (arc_setup_incoming_varargs): Set alias set of
12121         varargs save area.
12122         (arc_va_start): New.
12123         (arc_va_arg): New.
12124
12125 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
12126
12127         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
12128         (BUILD_VA_LIST_TYPE): New.
12129         (EXPAND_BUILTIN_VA_START): New.
12130         (EXPAND_BUILTIN_VA_ARG): New.
12131         * alpha.c (alpha_builtin_saveregs): Delete.
12132         (alpha_build_va_list): New.
12133         (alpha_va_start): New.
12134         (alpha_va_arg): New.
12135
12136 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
12137
12138         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
12139         column zero.
12140         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
12141         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
12142
12143         * gcc.texi: More changes related to list conversion.
12144         * invoke.texi: Likewise.
12145
12146 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
12147
12148         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
12149         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
12150         (expand_builtin_next_arg): Accept ARGLIST not EXP.
12151         (stabilize_va_list): New function.
12152         (std_expand_builtin_va_start): New function.
12153         (expand_builtin_va_start): New function.
12154         (get_varargs_alias_set): New function.
12155         (std_expand_builtin_va_arg): New function.
12156         (expand_builtin_va_arg): New function.
12157         (expand_builtin_va_end): New function.
12158         (expand_builtin_va_copy): New function.
12159         (expand_builtin): Call them.
12160         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
12161         __builtin_{varargs_start,stdarg_start,end,copy}.
12162         (build_va_arg): New function.
12163         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
12164         (build_va_arg): Declare.
12165         * c-decl.c (ptr_type_node, va_list_type_node): New.
12166         * c-parse.gperf (__builtin_va_arg): New.
12167         * c-parse.in (VA_ARG): New token.
12168         (unary_expr): Recognize it.
12169         * expr.c (expand_expr): Expand VA_ARG_EXPR.
12170         * expr.h (std_expand_builtin_va_start): Declare.
12171         (std_expand_builtin_va_arg): Declare.
12172         (expand_builtin_va_arg): Declare.
12173         (get_varargs_alias_set): Declare.
12174         * tree.def (VA_ARG_EXPR): New.
12175         * tree.h (BUILT_IN_VARARGS_START): New.
12176         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
12177         (ptr_type_node, va_list_type_node): Declare.
12178         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
12179         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
12180         * m88k.h, m88k.c: Likewise.
12181         * mn10300.h, mn10300.c: Likewise.
12182         * pa.h, pa.c: Likewise.
12183         * rs6000.h, rs6000.c: Likewise.
12184         * sh.h, sh.c: Likewise.
12185         * sparc.h, sparc.c: Likewise.
12186
12187         * emit-rtl.c (operand_subword): Copy alias set.
12188         (change_address): Likewise.
12189
12190 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
12191
12192         * pa.c (compute_frame_size): Scan all the used callee saved registers,
12193         not just the first one.
12194
12195 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
12196
12197         * config/arm/arm.h (TARGET_SWITCHES): Add
12198         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
12199         (TARGET_OPTIONS): Add -mpic-register=.
12200         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
12201         (arm_pic_register_string): Declare.
12202         (NEED_PLT_GOT): Delete, replace with ...
12203         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
12204         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
12205         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
12206         * config/arm/arm.c (arm_override_options): Add new option
12207         -mpic-register=N.
12208         (arm_pic_register_string): New variable.
12209         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
12210         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
12211         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
12212         (output_return_instruction): Likewise.
12213         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
12214         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
12215         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
12216
12217         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
12218         mention of -msched-prolog.  Document new options -msingle-pic-base
12219         and -mpic-register=.
12220
12221 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
12222
12223         * haifa-sched.c (reemit_notes): Tidy.
12224         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
12225         haifa's routine.
12226
12227 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
12228
12229         * explow.c (trunc_int_for_mode): New function.
12230         (plus_constant_wide): Use it.
12231         * combine.c (simplify_and_const_int): Likewise.
12232         (merge_outer_ops): Likewise.
12233         (simplify_shift_const): Likewise.
12234         * cse.c (simplify_unary_operation): Likewise.
12235         (simplify_binary_operation): Likewise.
12236         * emit-rtl.c (operand_subword): Likewise.
12237         * rtl.h: Declare it.
12238
12239 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12240
12241         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
12242         (use NUM_REGS instead of NUM_INTS).
12243
12244 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12245
12246         * builtins.c: New file.
12247         * expr.c (saveregs_value, apply_args_value):  Delete definition,
12248         moved into builtins.c.
12249         (string_constant): No longer static.
12250         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
12251         apply_args_size, apply_result_size, result_vector,
12252         expand_builtin_apply_args, expand_builtin_apply,
12253         expand_builtin_return): Delete functions, moved into builtins.c.
12254         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
12255         * expr.h (saveregs_value, apply_args_value): Declare variables.
12256         (expand_builtin, string_constant): Declare functions.
12257         * Makefile.in: Update to build builtin.o.
12258
12259 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
12260
12261         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
12262         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
12263         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
12264         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
12265         false.
12266         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
12267         Define to zero.
12268
12269 1999-07-21  Michael Meissner  <meissner@cygnus.com>
12270
12271         * print-rtl.c (print_rtx): Print the names of the virtual
12272         registers.
12273
12274 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
12275
12276         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
12277         introduced in previous delta.
12278
12279 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12280
12281         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
12282         to avoid name clash.
12283
12284 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12285
12286         * c-lex.c (yylex) : Correct the test for overflow when lexing
12287         integer literals.
12288
12289 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
12290
12291         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
12292         (adjust_priority): Always call ADJUST_PRIORITY.
12293         (schedule_insn): Only put insns into the ready at cost 0.
12294         (schedule_block): Remove redundant initial sort.  Give clock_var
12295         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
12296         is not 0.
12297         * tm.texi (MD_SCHED_REORDER): Update docs.
12298
12299         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
12300         * sparc.c (ultra_reorder_called_this_block): Delete.
12301         (ultrasparc_sched_init): Don't set it.
12302         (ultrasparc_sched_reorder): Don't check it.
12303
12304 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
12305
12306         * rs6000.h (struct rs6000_args): Add sysv_gregno.
12307         * rs6000.c (init_cumulative_args): Init sysv_gregno.
12308         (function_arg_boundary): Align DFmode.
12309         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
12310         to get fp reg and stack overflow correct.
12311         (function_arg): Likewise.
12312         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
12313         (setup_incoming_varargs): Restructure for ABI_V4; use
12314         function_arg_advance to skip final named argument.
12315         (expand_builtin_saveregs): Properly unskip the last integer arg
12316         when doing varargs.  Adjust overflow location calculation.
12317
12318         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
12319         explicitly unsigned.
12320         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
12321         (__VA_GP_REGSAVE): Similarly.
12322         (__va_longlong_p): Delete.
12323         (__va_arg_type_violation): New declaration.
12324         (va_arg): Restructure.  Flag promotion errors.  Align double.
12325         TFmode passed by reference.
12326
12327         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
12328         in the HOST_BITS_PER_WIDE_INT > 32 case.
12329
12330 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
12331
12332         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
12333
12334 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
12335
12336         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
12337         * toplev.c (documented_lang_options): Add -fpreprocessed.
12338         * cpplib.h (struct cpp_buffer): Add preprocessed.
12339         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
12340         (cpp_start_read): Don't expand macros or emit an initial #line
12341         directive if -fpreprocessed.
12342
12343 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
12344
12345         * cpplib.h (struct cpp_buffer): Added manual_pop for
12346         better C++ tokenization.
12347         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
12348         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
12349         * c-common.c (cpp_token): Make non-static.
12350
12351 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12352
12353         * c-common.h: New file.
12354         * c-common.c (permanent_obstack): Delete unused declaration.
12355         (c_global_trees): New array.
12356         (c_common_nodes_and_builtins): New function; split off common code
12357         from init_decl_processing in both c-decl.c and cp/decl.c.
12358         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
12359         c_global_trees and accessor macros defined in c-common.h.
12360         Include c-common.h.
12361         * c-decl.c: Delete definitions for tree nodes that were replaced by
12362         c_global_trees.
12363         (init_decl_processing): Build void_list_node.
12364         Call c_common_nodes_and_builtins; delete code to generate the common
12365         builtins here.
12366         * objc/objc-act.c (build_module_descriptor): Rename variable
12367         void_list_node to avoid clash with c-common.h.
12368
12369         * Makefile.in: Update dependencies.
12370         * objc/Make-lang.in: Likewise.
12371
12372 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
12373
12374         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
12375         (UNIQUE_SECTION_P): Likewise.
12376         (UNIQUE_SECTION): Likewise.
12377
12378 1999-07-19  Linas Vepstas  <linas@linas.org>
12379
12380         * config/i370/README: New file.
12381         * config/i370/linux.h: New file.
12382         * config/i370/mvs.h: New file.
12383         * config/i370/oe.h: New file.
12384         * config/i370/t-linux: New file.
12385         * config/i370/t-mvs: New file.
12386         * config/i370/t-oe: New file.
12387         * config/i370/x-oe: New file.
12388         * config/i370/xm-linux.h: New file.
12389         * config/i370/xm-mvs.h: New file.
12390         * config/i370/xm-oe.h: New file.
12391
12392         * i370.c (label_node_t): Add first_ref_page, label_addr,
12393         label_first_ref, label_last_ref members.
12394         (mvs_need_base_reload): Renamed from mvs_label_emitted.
12395         (MAX_MVS_LABEL_SIZE): Define.
12396         (MAX_LONG_LABEL_SIZE): Define.
12397         (alias_node_t, alias_anchor, alias_number): New.
12398         (mvs_function_table): Reorder for EBCDIC.
12399         (ascebc, ebcasc): Unconditionally define.
12400         (i370_branch_dest, i370_branch_length): New functions.
12401         (i370_short_branch, i370_label_scan): New functions.
12402         (mvs_get_label): Renamed from mvs_add_label.  Search for
12403         an existing label before creating a new one.
12404         (mvs_add_label): New function.
12405         (mvs_get_label_page): New function.
12406         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
12407         over the entire list.
12408         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
12409         (mvs_check_page) [TARGET_ELF_ABI]: New function.
12410         (mvs_add_alias, mvs_need_alias): New functions.
12411         (mvs_get_alias, mvs_check_alias): New functions.
12412         (handle_pragma): New function.
12413         (mvs_function_check): New function.
12414         (unsigned_jump_follows_p): Search harder.
12415         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
12416         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
12417         * i370.h (TARGET_VERSION): Delete.
12418         (CPP_SPEC, CPP_PREDEFINES): Delete.
12419         (mvs_label_emitted): Delete.
12420         (TARGET_EBCDIC): Delete.
12421         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
12422         (HANDLE_PRAGMA): Define.
12423         (HARD_REGNO_NREGS): Handle complex modes.
12424         (HARD_REGNO_MODE_OK): Likewise.
12425         (CLASS_MAX_NREGS): Likewise.
12426         (RET_REG): Likewise.
12427         (EXTRA_CONSTRAINT): Define.
12428         (RETURN_IN_MEMORY): True for DImode.
12429         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
12430         (FUNCTION_PROFILER): Delete.
12431         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
12432         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
12433         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
12434         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
12435         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
12436         (ASM_FILE_START): Add "RMODE ANY".
12437         (ASM_OUTPUT_EXTERNAL): Check for aliases.
12438         (ASM_GLOBALIZE_LABEL): Likewise.
12439         (ASM_OUTPUT_LABELREF): Likewise.
12440         (ASM_OUTPUT_COMMON): Likewise.
12441         (PRINT_OPERAND): Handle 'K', 'W', default.
12442         (PRINT_OPERAND_ADDRESS): New.
12443         (Lots of defines): Add support for TARGET_ELF_ABI.
12444         * i370.md (attr length): New.  Define for all patterns.
12445         (*): Lots of tweeks to assembly output and constraints.
12446
12447 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
12448
12449         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
12450         Disable patterns performing SImode comparisons with SImode values
12451         if TARGET_POWERPC64 and instruction does not sign-extend or does
12452         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
12453         differ for signed quantities.
12454         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
12455         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
12456         (decrement_and_branch_on_count): Add 64-bit variant.
12457
12458 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12459
12460         * final.c (output_asm_insn): When searching for the matching string
12461         for a given dialect, don't run past the end of the list of
12462         alternatives if there are fewer alternatives in the template than
12463         dialects.
12464
12465 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
12466
12467         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
12468         Removed paragraph about compression of files and size limitation,
12469         duplicated in the FAQ.  Use gcc-patches for posting patches.
12470         * gcc.c (main): Updated URL with bug reporting instructions to
12471         gcc.gnu.org.  Removed e-mail address.
12472         * system.h (abort): Likewise.
12473
12474 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12475
12476         * Makefile.in (stmp-multilib-sub): Make the files extracted
12477         from $(LIBGCC1) writable.
12478
12479 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
12480
12481         * config/arm/aout.h: Reformat for improved readability.
12482
12483         * config/arm/arm.h: Reformat for improved readability.
12484         Replace uses of fprintf with asm_fprintf where appropriate.
12485         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
12486         function declaration assembler actions.
12487         (NUM_INTS): New macro: Convert from bytes to words.
12488         (NUM_REGS): New macro: Compute number of registers required to
12489         hold a quanitity of tyep MODE.
12490         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
12491         types.
12492         (NUM_ARG_REGS): New macro: The number of argument registers
12493         available.
12494         (ARG_REGISTER): New macro: Compute the register number of the Nth
12495         argument register.
12496         (LAST_ARG_REGNUM): New macro: The number of the last argument
12497         register.
12498         (SP_REGNUM): New macro: Register number of the stack pointer.
12499         (FP_REGNUM): New macro: Register number of the frame pointer.
12500         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
12501         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
12502         CUMULATIVE_ARGS so that it counts registers not bytes.
12503
12504         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
12505         TARGET_INTERWORK.
12506         Replace uses of fprintf with asm_fprintf where appropriate.
12507         (output_ascii_pseudo_op): Replace with version from thumb.c
12508
12509         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
12510
12511         * config/arm/elf.h (CPP_PREDEFINES): Replace with
12512         SUBTARGET_CPP_SPEC.
12513         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
12514         (ASM_FILE_START): Emit ASM_APP_OFF.
12515
12516 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
12517
12518         * pa.c (compute_frame_size): Round frame according to
12519         STACK_BOUNDARY rather than a hardwired value.
12520
12521         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
12522
12523         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
12524         of "1".
12525         * configure: Rebuilt.
12526
12527         * configure.in (hppa*-*-linux*): New configuration.
12528         * configure: Rebuilt.
12529         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
12530         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
12531         * pa/pa-linux.h: New file.
12532         * pa/t-linux: New file.
12533         * pa/xm-linux.h: New file.
12534
12535         * pa.c (hppa_legitimize_address): Change references from SImode to
12536         either Pmode or word_mode as appropriate.
12537         (emit_move_sequence, store_reg, load_reg): Likewise.
12538         (set_reg_plus_d, hppa_expand_prologue): Likewise.
12539         (output_mul_insn): Likewise.
12540         * pa.h (PROMOTE_MODE): Likewise.
12541         (INITIALZE_TRAMPOLINE): Likewise.
12542         (Pmode): Define to word_mode.
12543
12544         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
12545         value of 4.  Allocate 8 bytes for each FP register save.
12546         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
12547         value of 4.
12548         (hppa_expand_prologue): Likewise.
12549         * pa.h (PROMOTE_MODE): Likewise.
12550         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
12551         (FUNCTION_ARG_BOUNDARY): Likewise.
12552
12553         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
12554
12555         * pa.c (out_of_line_prologue_epilogue): Delete.
12556         (override_options): Remove -mspace related code.
12557         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12558         (compute_frame_size): Only allocate space for register that
12559         actually need to be saved.
12560         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
12561         (TARGET_SWITCHES): Remove -mspace, -mno-space
12562         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
12563         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
12564         * pa/ee.asm, pa/ee_fp.asm: Delete.
12565
12566         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
12567
12568         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
12569         directive in column zero.
12570
12571 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
12572
12573         * m68k.c (output_function_prologue): Fix computation of save mask
12574         when generating PIC code.
12575
12576 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
12577
12578         * tree.c (build_type_attribute_variant): Move current_obstack restore
12579         after build_qualified_type call.
12580
12581 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
12582
12583         * configure.in: Use t-iris6, even with GNU LD.
12584         * config/mips/iris6gld.h: Fix typo in linker spec.
12585         * config/mips/t-iris6gld: Remove.
12586
12587 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
12588
12589         * rs6000.md (insv, extzv): Remove SImode dependence in named
12590         patterns.  Explicitly generate DImode RTL if PowerPC64 and
12591         operand is DImode.
12592         (insvdi): Reverse start and size in instruction template.
12593
12594 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
12595
12596         * invoke.texi: Typo fixes.
12597
12598 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
12599
12600         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
12601         handle at this time instead of silently generating incorrect code.
12602         (gen_imagpart): Likewise.
12603
12604         * reload.c (find_reloads): Emit a USE for a pseudo register without
12605         a hard register if we could not create an optional reload for the
12606         pseudo.
12607
12608 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12609
12610         * c-typeck.c (output_init_element, process_init_element):
12611         When advancing constructor_unfilled_fields for a RECORD_TYPE,
12612         check for nameless bit fields.
12613
12614 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
12615
12616         * regclass.c (scan_one_insn): Notice subregs that change the
12617         size of their operand.
12618         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
12619
12620 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
12621
12622         * configure.in (alpha*-*-*): Include alpha/t-ieee.
12623         * configure: Rebuilt.
12624         * alpha/t-ieee: New file.
12625
12626 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
12627
12628         * rs6000.c (find_addr_reg): Do not select r0 as an address
12629         register.
12630
12631 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
12632
12633         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
12634
12635 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
12636
12637         * rs6000.md (movsf): Do not force easy FP constants into memory.
12638
12639         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
12640         immed_double_const to ensure they are properly truncated then
12641         sign extended.
12642
12643 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
12644
12645         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
12646         always unless NO_DEBUG is used.  Compile this code
12647         unconditionally.
12648         (replace_symbols_in_block): Compile it unconditionally.
12649
12650 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
12651
12652         * configure.in (i?86-*-elf*): New target.
12653         * configure: Rebuilt.
12654         * i386/i386elf.h, i386/t-i386elf: New files.
12655
12656 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
12657
12658         * toplev.c (main): Don't complain about saying -gdwarf.
12659         (rest_of_compilation): Remove redundant code.
12660
12661 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
12662
12663         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
12664
12665 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
12666
12667         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
12668         "Li960R:", to avoid name clash.
12669
12670 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12671
12672         * loop.c (check_dbra_loop): When reversing a loop, delete all
12673         REG_EQUAL notes referencing the reversed biv except those which are
12674         for a giv based on it.
12675
12676 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
12677
12678         * version.c: Drop "gcc-" prefix from version #.
12679
12680 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
12681
12682         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
12683         the label if we're being verbose.
12684
12685 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
12686
12687         * m68k.c (output_function_prologue): Add pic register to mask
12688         if live and flag_pic.
12689         (output_function_epilogue): Likewise.
12690
12691 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
12692
12693         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
12694         directives in column zero.
12695
12696         * pa/elf.h (ASM_FILE_START): Define.
12697         * pa/som.h (ASM_FILE_START): Include .level directives.
12698         * pa/hpux10.h (ASM_FILE_START): Delete.
12699         * pa/hpux11.h (ASM_FILE_START): Delete.
12700
12701         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
12702
12703 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12704
12705         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
12706         when reload_out equals reload_in.
12707
12708 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
12709
12710         * invoke.texi (Spec Files): New node: Describe the contents of
12711         spec files.
12712
12713 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
12714
12715         * invoke.texi (DEC Alpha Options): Put @end table at
12716         beginning of line, to avoid confusing texi2html.
12717
12718 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
12719
12720         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
12721         introduced in previous delta.
12722
12723 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12724
12725         * reload1.c (gen_reload): When synthesizing a 3 operand add
12726         sequence, improve test for when to reload OP1 into the reload
12727         register instead of OP0.
12728
12729 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
12730
12731         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
12732
12733 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
12734
12735         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
12736         string literal.
12737
12738 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
12739
12740         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
12741         (va_dcl): Use __builtin_va_alist_t.
12742
12743 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
12744
12745         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
12746         on the permanent_obstack.
12747         * dwarfout.c (output_type): Likewise.
12748
12749 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12750
12751         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12752         Merged from c-typeck.c and cp/typeck.c.
12753         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12754         Merged into c-common.
12755
12756 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
12757
12758         * c-lex.c (errorcount): Declare it.
12759         (finish_parse): Update errorcount when using CPPLIB.
12760
12761 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
12762
12763         * fixinc/inclhack.def(end_else_label): Double the backslash so
12764         sed gets a chance to see it.
12765         * fixinc/inclhack.sh: regen
12766         * fixinc/fixincl.x: regen
12767
12768 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
12769
12770         Add framework to support armv5 architecture when it becomes
12771         available:
12772
12773         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
12774         (arm_arch5): New variable.
12775         (all_architectures): Add armv5 line.
12776         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
12777         -march=armv5 is specified on the command line.
12778         (arm_arch5): Export this variable.
12779         * invoke.texi: Document new string accepted by -march= switch for
12780         ARM ports.
12781
12782         * config/arm/arm.h: Replace use of constant 12 as a register
12783         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
12784         * config/arm/arm.c: Replace use of constant 12 as a register
12785         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
12786
12787         * config/arm/elf.h: Tidy up.
12788         * config/arm/coff.h: Tidy up.
12789
12790 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
12791
12792         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
12793         * gcc/config/mips/t-iris6gld: New file.
12794         * gcc/config/mips/iris6gld.h: Likewise.
12795
12796 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12797
12798         * c-decl.c (widest_integer_literal_type_node,
12799         widest_unsigned_literal_type) : New.
12800         (init_decl_processing): Handle/use the two new types.
12801         * c-common.c (type_for_size,type_for_mode) : Same.
12802         * c-lex.c (yylex) : Same.
12803         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
12804         Same.
12805         * c-tree.h (widest_integer_literal_type_node,
12806         widest_unsigned_literal_type) : New.
12807
12808 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
12809
12810         * dwarfout.c (field_byte_offset): Correctly compute the object's
12811         byte offset for the first bit of a field which crosses an alignment
12812         boundary on a !BYTES_BIG_ENDIAN target.
12813
12814 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
12815
12816         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
12817         ntohs.
12818
12819 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
12820                           Jeff Law <law@cygnus.com>
12821
12822         * ginclude/varargs.h (va_dcl): Use word_mode for type of
12823         __builtin_va_list.
12824
12825         * except.c: Include intl.h.
12826         (expand_eh_return): Set current_function_cannot_inline.
12827         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
12828         * function.h (struct function): Add eh_return_stub_label.
12829         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
12830         * Makefile.in (except.o): Depend on intl.h.
12831
12832 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
12833
12834         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
12835         same as offsettable in cases 1 and 2.
12836
12837 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
12838
12839         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
12840         (extlh, extwh): Likewise.
12841
12842 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12843
12844         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
12845
12846 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
12847
12848         * configure.in: Add arm-pe and thumb-pe targets.
12849         * configure: Regenerate.
12850
12851         * thumb.c (arm_naked_function_p): New function: Determines if
12852         a function is naked (has no gcc generated prologue/epilogue).
12853         (is_called_in_ARM_mode): Return true if the func has the
12854         interfacearm attribute.
12855         (output_return): Do not generate a return for naked functions.
12856         (thumb_function_prologue): Do not generate a prologue for
12857         naked functions.
12858         (thumb_expand_prologue): Do not generate a prologue for naked
12859         functions.
12860         (thumb_expand_epilogue): Do not generate an epilogue for naked
12861         functions.
12862         (arm_valid_machine_decl_attribute): New function, copied from
12863         arm.c:  Permit naked and interfacearm attributes.
12864
12865         * config/arm/pe.c: New file: Support code for arm-pe target.
12866         * config/arm/pe.h: New file: Header file for arm-pe target.
12867         * config/arm/tpe.h: New file: Header file for thumb-pe target.
12868         * config/arm/t-thumb-pe: New file: Makefile fragment for
12869         thumb-pe target.
12870
12871 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
12872
12873         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
12874         -fPIC or -fpic is specified.
12875
12876 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
12877
12878         * expr.c (emit_block_move): Use copy_to_mode_reg for
12879         !TARGET_MEM_FUNCTIONS case too.
12880
12881         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
12882         appropriate.
12883         * configure: Rebuilt.
12884         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
12885         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
12886         definitions made redundant by dbxelf.h inclusion.  Delete
12887         lots of definitions related to assembly output that are
12888         specific to the SOM object format.
12889         * pa.c (output_function_prologue): Do not emit the function's
12890         name for OBJ_ELF.
12891         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
12892         * pa-pro.h: Deleted.
12893         * som.h: New file with SOM specific definitions.
12894         * elf.h: New file with ELF specific definitions.
12895
12896         * elfos.h (const_section): Output a tab before assembler directives.
12897         (ctors_section, dtors_section): Likewise.
12898         (ASM_OUTPUT_SECTION_NAME): Likewise.
12899
12900         * pa/pa1.h: Delete unused file.
12901
12902 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
12903
12904         * configure.in (hppa*-hp-hpux11*): New configuration.
12905         * configure: Rebuilt.
12906         * pa/pa-hpux11.h: New file.
12907         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
12908         command line.
12909
12910         * mips.md (leasi, leadi): New patterns.
12911
12912         * expr.c (emit_block_move): Properly handle case where one of the
12913         block move arguments has a queued increment or decrement.
12914         (clear_storage): Similarly.  Fix formatting goof.
12915
12916 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
12917
12918         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
12919         semicolon from the BSD VA_LIST replacement expression.
12920
12921         * fixinc/inclhack.sh: regen
12922         * fixinc/fixincl.x: regen
12923
12924         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
12925         now use the fixincl program.
12926
12927 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
12928
12929         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
12930         case.  Also make the PIC register call_used.
12931
12932         * m68k.h (FINALIZE_PIC): Delete.
12933         * m68k.c (finalize_pic): Delete.
12934
12935 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
12936
12937         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
12938         to memory.
12939
12940 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
12941
12942         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
12943
12944 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
12945
12946         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
12947
12948 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
12949
12950         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
12951
12952 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
12953
12954         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
12955
12956 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
12957
12958         * rs6000.c (output_toc): Always use hex values for floating-point
12959         constants.  Store single-precision values in upper-half of TOC
12960         entry in 64-bit mode.
12961         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
12962         to final constraints.
12963         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
12964         (fctiwz): Improve accuracy of RTL for pattern.
12965
12966 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12967
12968         * expr.c (expand_expr): Allow RTL_EXPR's through the
12969         MAX_INTEGER_COMPUTATION_MODE checks.
12970
12971 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
12972
12973         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
12974         such that MASK_SUPPORT_ARCH is not negative.
12975
12976 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
12977
12978         * loop.c (verify_dominator): Properly handle ADDR_VEC and
12979         ADDR_DIFF_VEC insns that appear inside loops.
12980
12981 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
12982                           Jeff Law <law@cygnus.com>
12983
12984         * rs6000.md (movdf_hardfloat32): Revert previous patch.
12985         Handle LO_SUM the same as offsettable in cases 1 and 2.
12986         * rs6000.c (find_addr_reg): Revert previous patch.
12987
12988 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
12989
12990         * system.h (strstr): New external function declaration.
12991         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
12992         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
12993         * config.in, configure: Rebuilt.
12994
12995 1999-06-24  Tom Tromey  <tromey@cygnus.com>
12996
12997         * gcc.c (main): Read user-specified specs files after computing
12998         additional startfile_prefixes.
12999
13000 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
13001
13002         Revert these two patches:
13003
13004         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13005         * loop.c (strength_reduce): When doing biv->giv conversion, update
13006         reg note of NEXT->insn.
13007
13008         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13009         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
13010         reg_biv_class.
13011         (recombine_givs): Set ix field after sorting.
13012
13013 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13014
13015         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
13016         for the parts of an UNSPEC / UNSPEC_VOLATILE.
13017
13018 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
13019
13020         *fixinc/inclhack.def:  Add fix development commentary
13021         (read_ret_type): reactivate and add selection clause
13022         (zzz_*): tweak output file name to match what is used in hackshell.tpl
13023         *fixinc/{fixincl.x|inclhack.sh}: regen
13024
13025 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
13026
13027         * expr.c (expand_expr): STRIP_NOPS before checking against
13028         MAX_INTEGER_COMPUTATION_MODE
13029         (check_max_integer_computation_mode): Likewise.
13030
13031 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
13032
13033         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
13034
13035 1999-06-22  Jim Wilson  <wilson@cygnus.com>
13036
13037         * expr.c (store_expr): When target is a promoted subreg, return a
13038         promoted subreg as a result.
13039
13040 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
13041
13042         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
13043         coding standards.
13044         (dwarf2out_define): Mark unused parameters appropriately.
13045         (gen_unspecified_parameters_die): Ditto.
13046         (gen_subprogram_die): Fix signed/unsigned warnings.
13047         (gen_variable_die): Ditto.
13048
13049 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
13050
13051         * fixinc/inclhack.def(end_else_label): combined else_label
13052         and endif_label and fixed the sed expression.
13053         *fixinc/{fixincl.x|inclhack.sh}: regen
13054
13055 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
13056
13057         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
13058         'x' when handling non-offsettable addresses
13059
13060 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
13061
13062         * final.c (shorten_branches): Don't try to split an insn that has
13063         been deleted.
13064
13065 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
13066
13067         * config/mips/mips.c (symbolic_expression_p): New function.
13068         (mips_select_rtx_section): Put symbolic expressions in the
13069         data section, not the read-only data section.
13070
13071 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
13072
13073         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
13074
13075 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
13076
13077         * collect2.c (main): Log frame table count.
13078         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
13079         (scan_prog_file) [COFF]: Handle frame tables.
13080
13081         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
13082         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
13083         * alpha/elf.h: Undef them again.
13084         * alpha/vms.h: Remove their definitions.
13085
13086 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13087
13088         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
13089         remove the clobber of r0 and change the REG_UNUSED note to
13090         REG_INC.
13091
13092 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
13093
13094         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
13095         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
13096         fits in HOST_WIDE_INT and one uses union to access a long constant
13097         as double.
13098
13099 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
13100
13101         * sparc.c (sparc_override_options): Don't allow profiling for
13102         code models other than medlow.
13103         (sparc_function_profiler): New function from old FUNCTION_PROFILER
13104         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
13105         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
13106         (sparc_block_profiler): Likewise.
13107         (sparc_function_block_profiler_exit): Likewise.
13108         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
13109         (FUNCTION_BLOCK_PROFILER): Likewise.
13110         (BLOCK_PROFILER): Likewise.
13111         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
13112         (MCOUNT_FUNCTION): New.
13113         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
13114         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
13115         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
13116         (MCOUNT_FUNCTION): New.
13117         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
13118         (BLOCK_PROFILER): Delete.
13119         (MCOUNT_FUNCTION): New.
13120
13121 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
13122
13123         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
13124
13125 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
13126
13127         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13128         Add the macros.
13129
13130         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13131         Ditto.
13132
13133         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13134         Ditto.
13135
13136         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
13137         Ditto.
13138
13139 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
13140
13141         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
13142         types.
13143
13144 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
13145
13146         * i386/djgpp.h (LIB_SPEC): New.
13147         (STARTFILE_SPEC): New.
13148
13149         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
13150
13151 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
13152
13153         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
13154         compiler flags.
13155
13156         * system.h (WSTOPSIG): New macro.
13157
13158 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13159
13160         * c-pragma.c (push_alignment): Don't ignore alignments greater than
13161         4 bytes.
13162         (insert_pack_attributes): Take into account member natural
13163         alignment.
13164
13165         * i386/winnt.c (exports_head): New static variable.
13166         (i386_pe_record_exported_symbol): New function.
13167         (i386_pe_asm_file_end): Use.
13168         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
13169         symbols to be emitted at end of assembly.
13170         (ASM_DECLARE_OBJECT_NAME): Likewise.
13171         (ASM_DECLARE_FUNCTION_NAME): Likewise.
13172
13173         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
13174         -iwithprefix.
13175
13176 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
13177
13178         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
13179         in last change.
13180
13181 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
13182
13183         * haifa-sched.c (sched_analyze_1): Use free_list instead of
13184         zapping reg_last_uses directly.
13185         (sched_analyze_2, sched_analyze_insn): Likewise.
13186         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
13187
13188 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
13189
13190         * rs6000.md (movdf_hardfloat32): Use worst case insn length
13191         attributes for cases 1 and 2.
13192
13193 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
13194
13195         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
13196         instead of set.
13197
13198 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
13199
13200         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
13201
13202 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
13203
13204         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
13205         PIC_OFFSET_TABLE_REGNUM for general alloaction.
13206         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
13207         must be stacked if it is used for PIC accesses.
13208         * arm.c (use_return_insn): Handle PIC register specially.
13209         (output_return_instruction): Likewise.
13210         (output_func_{prologue,epilogue}): Likewise.
13211         (output_expand_prologue): Likewise.
13212
13213         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
13214         (*strsi_predec): Renamed from *strqi_predec.
13215         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
13216         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
13217
13218         * arm.c (arm_override_options): Remove warning about PIC code
13219         not being supported.
13220
13221 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
13222
13223         * rs6000.c (find_addr_reg): New function.
13224         * rs6000.h (find_addr_reg): Declare.
13225         (offsettable_addr_operand): Delete.
13226         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
13227         from and stores to GPRs.
13228
13229 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
13230
13231         * alpha.c (alpha_expand_block_move): Use get_insns rather than
13232         gen_sequence as argument to emit_no_conflict_block.
13233
13234 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13235
13236         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
13237         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
13238         *fixinc/fixincl.x: regen
13239         *fixinc/inclhack.sh: regen
13240
13241 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
13242
13243         * added support for -mpcrel (PC relative addressing for m68k)
13244         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
13245         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
13246         * m68k.c (print_operand_address): Handle 32-bit PIC case.
13247         (comments for general_src_operand): Add some explanation
13248         about EXTRA_CONSTRAINTS.
13249         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
13250         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
13251         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
13252         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
13253         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
13254         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
13255         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
13256         if not already set.
13257         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
13258         * m68k.h (TARGET_PCREL): New target flag.
13259         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
13260         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
13261         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
13262         contains a SYMBOL_REF.  Relax this constraint during reload, since
13263         we want to use the predicates, not reload's built-in concept of a
13264         valid memory address, to control what insns need reloading.
13265         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
13266         operands (essentially 'g', 'm', and 's' under normal circumstances).
13267         * m68k.c (print_operand): Cause printing of pc-relative addresses
13268         to include pc register.
13269         (print_operand_address): Ditto.
13270         (general_src_operand): Accept operands that are not only
13271         general_operands, but are also valid when used as a pc-relative
13272         source.
13273         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
13274         (memory_src_operand): Similar, for memory_operands.
13275         (pcrel_address): New predicate to accept the special case of a
13276         pc-relative address.
13277         * m68k.md (many patterns): Rewrite common SImode, HImode, and
13278         QImode insns to accept *_src_operand instead of *_operand where
13279         pc-relative operands can fit.  For example, a pc-relative operand
13280         can be used as a memory source operand for addsi3, but not as a
13281         memory destination.
13282         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
13283
13284 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
13285
13286         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
13287         .thumb_set pseudo op to mark aliases of thumb functions.
13288
13289 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
13290
13291         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
13292         preference to ASM_OUTPUT_DEF, if it is defined.
13293
13294         * tm.texi: Document new, optional target macro
13295         ASM_OUTPUT_DEF_FROM_DECLS.
13296
13297 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13298
13299         * fixincludes: ISCNTL patch
13300         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
13301         (dgux_int_varargs): new for DG/UX
13302         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
13303
13304 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
13305
13306         * invoke.texi (ia32 options): Fix typo.
13307
13308 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13309
13310         * loop.c (strength_reduce): When doing biv->giv conversion, update
13311         reg note of NEXT->insn.
13312
13313 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
13314
13315         * loop.c (move_movables): Note issues with replacing REGs with
13316         SUBREGs.
13317         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
13318
13319 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
13320
13321         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
13322
13323         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
13324         the reference to `mcount' was not correct for the ELF on FreeBSD.
13325
13326 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13327
13328         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
13329         reg_biv_class.
13330
13331         (recombine_givs): Set ix field after sorting.
13332
13333 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
13334
13335         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
13336         to safe to extract a subword out of a REG.
13337
13338 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13339
13340         * sh.md (mulsi3): Don't add a no-op move at the end.
13341
13342 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13343
13344         * cse.c (cse_insn): Don't put hard register source into tables for
13345         the last insn of a libcall.
13346
13347 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13348
13349         * loop.c (strength_reduce): Insert sets of derived givs at every
13350         biv increment, even if it's the only one.
13351
13352 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
13353
13354         * dwarfout.c (add_incomplete_type): New fn.
13355         (output_type): Call it.
13356         (retry_incomplete_types): New fn.
13357         (dwarfout_finish): Call it.
13358
13359         From Eric Raskin <ehr@listworks.com>:
13360         (output_type): Output types for bases.
13361
13362 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
13363
13364         * mips.c (mips_output_conditional_branch): Add `break'
13365         between `default' label and `close braces'.
13366
13367 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
13368
13369         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
13370         specifications and make it realistic.
13371         (LIB_SPEC): Likewise.
13372
13373 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
13374
13375         * config/mips/mips.c (mips_secondary_reload_class): Check for
13376         (PLUS (SP) (REG)) and return appropriate register class.
13377         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
13378         Handle (PLUS (SP) (REG)).
13379         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
13380         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
13381         of emit_insn for tablejump.
13382
13383 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
13384
13385         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
13386         asm_fprintf format string by itself.
13387         (output_function_profiler): Likewise.
13388
13389 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
13390
13391         * combine.c (simplify_logical, case AND): Only call
13392         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
13393         or the constant is positive.
13394
13395 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
13396
13397         * configure.in: Fix typo in rs6000-ibm-aix4 case.
13398         * configure: Regenerate.
13399
13400 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
13401
13402         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
13403         require a sub-version #.
13404         * configure: Rebuilt.
13405
13406 1999-06-14  Robert Lipe  (robertlipe@usa.net)
13407
13408         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
13409
13410 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
13411
13412         * c-typeck.c (process_init_element): Detect excess elements in
13413         char array initializer.
13414
13415 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
13416
13417         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
13418
13419 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
13420
13421         * invoke.texi (Option Summary): Add -fpermissive flag.
13422
13423 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
13424
13425         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
13426         that require PIC code sequences.
13427
13428 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
13429
13430         * configure.in: Add new target: thumb-elf.
13431         * configure: Regenerate.
13432         * config/arm/t-thumb-elf: New file: Makefile fragment for
13433         thumb-elf build.
13434         * config/arm/telf.h: New file: Header file for thumb-elf
13435         build.
13436
13437 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
13438
13439         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
13440         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
13441         initializers is some circumstances.
13442
13443         * fixinc/inclhack.def (endif_label): Add additional selector for
13444         more bogus stuff after #endif statements.
13445         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
13446
13447 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13448
13449         * i386/cygwin.h (SET_ASM_OP): Define.
13450
13451 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13452
13453         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
13454
13455 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13456
13457         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
13458         latter.
13459
13460         * sh.md (ic_invalidate_line_i): Remove second alternative.
13461
13462 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13463
13464         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
13465         test for the presence of valid prototypes.  Delete bypass expr.
13466         (ioctl_fix_ctrl): Correct the selection expression.
13467         (no_double_slash): Correct quoting rules
13468         *fixinc/fixincl.x: regen
13469         *fixinc/inclhack.sh: regen
13470
13471 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
13472
13473         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
13474
13475 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13476
13477         * rs6000.md (movsi_got_internal_mem): Delete.
13478         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
13479         (GOT_TOC_REGNUM): Delete.
13480         (PIC_OFFSET_TABLE_REGNUM): Define.
13481         (FINALIZE_PIC): Disable.
13482         * rs6000.c (rs6000_got_register): New code for fixed pic register.
13483         (rs6000_replace_regno): Delete.
13484         (rs6000_finalize_pic): Likewise.
13485         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
13486
13487 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13488
13489         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
13490         is a note; use <= for the compare; advance P while it is
13491         a NOTE.
13492
13493 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
13494
13495         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
13496         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
13497
13498         * varasm.c (remove_from_pending_weak_list): Verify t->name
13499         is non-NULL before passing it to strcmp.
13500
13501 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13502
13503         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
13504         the typed arguments are not part of a comment
13505         (ioctl_fix_ctrl): Added a purpose comment
13506         *fixinc/fixincl.x: regenerate
13507         *fixinc/inclhack.sh: regenerate
13508
13509 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13510
13511         * invoke.texi: Add C4x invocation docs.
13512
13513 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13514
13515         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
13516         Define new macros.
13517         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
13518         TARGET_EXPOSE_LDP.
13519         (c4x_legitimize_reload_address): New function.
13520         * config/c4x/c4x.md: Update docs.
13521
13522 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
13523
13524         * fixincludes: Avoid removing '.'.
13525         * fixinc/fixinc.svr4: Likewise.
13526         * fixinc/fixinc.winnt: Likewise.
13527         * fixinc/inclhack.tpl: Likewise.
13528         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
13529
13530 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13531
13532         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
13533         pattern.
13534         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
13535
13536 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13537
13538         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
13539         correctly.
13540
13541 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
13542
13543         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
13544         * configure: Regenerate.
13545
13546 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
13547
13548         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
13549         values.
13550
13551 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
13552
13553         * fixinc/inclhack.def (avoid_bool): Also catch
13554         "typedef [unsigned] int bool".
13555         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
13556
13557         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
13558         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
13559         * configure: Rebuilt.
13560
13561 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
13562
13563         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
13564         such that we can override its definitions if necessary.
13565         (CPP_SPEC): New define.  Support processor specific predefines via
13566         %(cpp_cpu).
13567         (CC1_SPEC): New define.  Support processor specific compiler
13568         options via %(cc1_cpu).
13569         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
13570         -static.
13571
13572 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13573
13574         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
13575         between sed's -e flag, and the open-quote following it.
13576         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
13577
13578 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
13579                           Jeffrey A Law  (law@cygnus.com)
13580
13581         * varasm.c (assemble_start_function): Remove the function
13582         from the pending weak decls list when we define a function.
13583         (assemble_variable): Similarly for variables.
13584         (weak_finish): Ignore items on the list with a NULL name.
13585         (remove_from_ending_weak_list); New function to "remove" an item
13586         from the pending weak declarations list.
13587
13588 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
13589
13590         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
13591
13592 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
13593
13594         * c-lex.c (GETC): Redefine to call getch.
13595         (UNGETC): Redefine to call put_back.
13596         (putback_buffer): New structure type.
13597         (putback): New static structure.
13598         (getch): New function.
13599         (put_back): New function.
13600         (yylex): Replace unused bytes from bad multibyte character.
13601
13602 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
13603
13604         * cpplib.c (do_define): Cast `alloca' return value.
13605         (do_include, do_undef, do_pragma): Likewise.
13606         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
13607         values.
13608         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
13609         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
13610
13611 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
13612
13613         * sparc.md (abstf2): This should be an expand.
13614         (split after abstf2_notv9): Fix mode.
13615         (abstf2_hq_v9): New pattern.
13616         (abstf2_v9): Only use when no hard quad.
13617         (absdf2_v9): Fix if target is not the same as source.
13618         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
13619         Add correct output constraints.
13620
13621 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
13622
13623         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
13624         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
13625
13626 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
13627
13628         * mips.h (mips_output_conditional_branch): New function.
13629         (mips_adjust_insn_length): Likewise.
13630         (ASSEMBLER_SCRATCH_REGNUM): New macro.
13631         (ADJUST_INSN_LENGTH): Likewise.
13632         * mips.c (print_operand): Add `F' and `W' for floating-point
13633         comparison opcodes.
13634         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
13635         are now in bytes.
13636         (mips_adjust_insn_length): New function.
13637         (mips_output_conditional_branch): New function.
13638         * mips.md (length): Adjust attribute definition to handle
13639         conditional branches.   Change lengths to bytes, rather than
13640         instructions throughout.  Remove length attribute from
13641         instructions whose length is four bytes, and rely on the default
13642         instead.
13643         (dslot): Fix typo in comment.
13644         Reword conditional branch patterns to use
13645         mips_output_conditional_branch.
13646
13647 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13648
13649         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
13650         (LIB_SPEC): Likewise.
13651         Link with -lprof1_r for -g/-pg.
13652
13653 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
13654
13655         * loop.c (check_dbra_loop): Fix change of Jan 19.
13656
13657 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
13658
13659         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
13660         (STARTFILE_SPEC):  Define, override the svr4.h version.
13661         (ENDFILE_SPEC):  Likewise.
13662
13663 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
13664
13665         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
13666         * fixinc/fixincl.x: Regenerated.
13667         * fixinc/inclhack.sh: Regenerated.
13668
13669 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13670
13671         * sh.c (barrier_align): Don't return early for normal branch/barrier
13672         when optimizing for SH2.
13673
13674 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
13675
13676         * i386/udk.h (LINK_SPEC): Correct linker search path for
13677         system libraries.
13678
13679 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13680
13681         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
13682         (braf_label_ref_operand): Delete.
13683         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
13684         * sh.md (casesi_jump_2): Operand1 is now the inside of a
13685         label_ref, and has no predicate.
13686         The patten has a predicate to guard against invalid substitutions.
13687         (dummy_jump): Delete.
13688         (casesi): Update use of casesi_jump_2.
13689
13690 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13691
13692         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
13693         *fixinc/fixincl.x: regenerate
13694         *fixinc/inclhack.sh: regenerate
13695
13696 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
13697
13698         * dwarf2out.c (add_incomplete_type): New fn.
13699         (gen_struct_or_union_type_die): Call it.
13700         (retry_incomplete_types): New fn.
13701         (dwarf2out_finish): Call it.
13702
13703 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
13704
13705         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
13706         current block starts with a CODE_LABEL and ends with a CALL and
13707         we can not find all the argument setup instructions for the CALL.
13708
13709 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
13710
13711         Revert this change:
13712         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
13713         something is a candidate for optimize_bit_field_compare.
13714
13715 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13716
13717         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
13718
13719 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
13720
13721         * alpha.c (override_options): Thinko in last patch.
13722
13723         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
13724         (LIB_SPEC): Recognize -pthread.
13725
13726 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
13727
13728         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
13729         definition in config/arm/coff.h
13730         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
13731
13732 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
13733
13734         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
13735         fixes that need "file=xxx\n" prepended before invocation
13736         (start_fixer - new): starting the fixer process is complex enough
13737         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
13738         (process): uses the new routine; omit usage of putenv()
13739         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
13740         * fixinc/fixincl.x: regenerate
13741
13742 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
13743
13744         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
13745         and version #s (1.1 -> 2.96) as needed.
13746         * README.g77: Kill way out of date file in the toplevel directory.
13747
13748 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
13749
13750         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
13751         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
13752         * configure: Rebuilt.
13753         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
13754         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
13755         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
13756         (SWITCH_TAKES_ARG): Likewise.
13757         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
13758         * config/t-freebsd: Moved from config/i386/ so it can used for all
13759         FreeBSD targets.
13760
13761 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
13762
13763         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
13764
13765 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
13766
13767         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
13768         * configure: Rebuilt.
13769
13770 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
13771
13772         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
13773         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
13774         * rs6000/rs6000.c (rs6000_file_start): Use putc.
13775         (rs6000_output_load_toc_table): Same.
13776         (output_prolog, output_mi_thunk): Same.
13777         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
13778         (ASM_GLOBALIZE_LABEL): Use putc.
13779
13780 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
13781
13782         * alpha.md (reload_*_help): New patterns and splitters.
13783         (reload_*): Use them.
13784         (mov[qh]i): Likewise.
13785
13786 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
13787
13788         * cccp.c (handle_directive): Handle backslash-newlines in quoted
13789         strings correctly.
13790
13791 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
13792
13793         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
13794
13795 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
13796
13797         * flow.c (mark_regs_live_at_end, insn_dead_p,
13798         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
13799         and HARD_FRAME_POINTER_REGNUM special treatment if reload
13800         hasn't run or the frame pointer is needed.
13801         * haifa-sched.c (attach_deaths): Likewise.
13802         * sched.c (attach_deaths): Likewise.
13803
13804 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
13805
13806         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
13807         calculate_can_reach_end returns nonzero.
13808
13809         * configure.in (native gas tests): Search for an assembler in the
13810         same manner that the installed compiler will.
13811         * configure: Rebuilt.
13812         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
13813
13814         * alias.c (find_base_term): Improve handling of addresses
13815         constructed from binary operations.
13816
13817 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
13818
13819         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
13820
13821 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
13822
13823         * function.h (cleanup_label, frame_offset): Declare.
13824         (tail_recursion_label, tail_recursion_reentry): Likewise.
13825         (arg_pointer_save_area, rtl_expr_chain): Likewise.
13826         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
13827         (tail_recursion_label, tail_recursion_reentry): Likewise.
13828         (arg_pointer_save_area, rtl_expr_chain): Likewise.
13829
13830 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
13831
13832         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
13833         defined.
13834         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
13835         (MAX_OFILE_ALIGNMENT): Define.
13836
13837 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
13838
13839         * fixincl.c: Replace local include scheme with #includes of
13840         gansidecl.h and system.h.
13841         * procopen.c:  Likewise.
13842         * server.c:  Likewise.
13843
13844 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
13845
13846         * i386/t-dgux (EXTRA_PARTS): Add crti.o
13847         (crti.o): Add build rule and dependencies.
13848         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
13849
13850 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13851
13852         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
13853         (LIB_LINUX_SPEC): Likewise.
13854         (LIB_LINUX_SPEC): Add support for -pthread
13855         (CPP_OS_LINUX_SPEC): Likewise.
13856         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
13857         specified.
13858
13859 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
13860
13861         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
13862         conditional move.
13863         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
13864         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
13865         for IEEE math and CC_FCOMI.
13866         (put_jump_code): No IEEE if CC_FCOMI is set.
13867
13868 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
13869
13870         * fold-const.c (fold_truthop): Make the field reference unsigned
13871         when converting a single bit compare.
13872
13873 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13874
13875         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
13876
13877 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
13878
13879         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
13880         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
13881         version did.
13882
13883         * reload.c (push_reload): Do not call remove_address_replacements
13884         when presented with identical optional reloads.
13885
13886 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
13887
13888         * alpha.h (MASK_FIX, TARGET_FIX): New.
13889         (MASK_*): Reorganize constants.
13890         (CPP_AM_FIX_SPEC): New.
13891         (TARGET_SWITCHES): Add FIX.
13892         (EXTRA_SPECS): Likewise.
13893         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
13894         (SECONDARY_MEMORY_NEEDED): Likewise.
13895         (REGISTER_MOVE_COST): Likewise.
13896         * alpha.c (override_options): Add FIX support.  Always use
13897         ALPHA_TP_PROG for ev6.
13898         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
13899         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
13900         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
13901
13902 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
13903
13904         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
13905         something is a candidate for optimize_bit_field_compare.
13906
13907 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
13908
13909         * gcc.texi (Passes): Document branch-shortening.
13910         * invoke.texi (Debugging Options): Document the fact that `-dp'
13911         outputs length information for instructions.
13912
13913 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
13914
13915         * flow.c: Revert previous delta.
13916
13917 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
13918
13919         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
13920         FRAME_POINTER_REGNUM.
13921         (mark_set_1): Ditto.
13922         (mark_used_regs): Ditto.
13923
13924 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
13925
13926         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
13927         (GOT_PCREL): New macro.  Define to 1 if not already defined.
13928         * arm/elf.h (GOT_PCREL): Define to 0.
13929         * arm.c (arm_finalize_pic): Take into account the setting of
13930         GOT_PCREL.
13931
13932 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
13933
13934         * output.h (STRIP_NAME_ENCODING): Provide default definition.
13935         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
13936
13937         * flow.c (mark_set_1): Do not record BLKmode stores as dead
13938         store elimination candidates.
13939
13940 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13941
13942         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
13943         TARGET_GAS.
13944
13945 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
13946
13947         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
13948         Add use of x-aix41-gld.
13949
13950 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
13951
13952         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
13953         (ASM_OUTPUT_DESTRUCTOR): Define.
13954
13955 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
13956
13957         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
13958         last CODE_LABEL in a loop if we have previously passed a jump
13959         to the top of the loop.
13960
13961 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
13962
13963         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
13964         applying Philip's patch.
13965
13966 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
13967
13968         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
13969         are not VAR_DECLs.
13970
13971 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
13972
13973         * loop.c (strength_reduce): Grow reg_single_usage as needed.
13974
13975 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
13976
13977         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
13978         Also remove a useless comment.
13979
13980 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
13981
13982         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
13983
13984 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
13985
13986         * collect2.c (main): Only generate import or export file and add
13987         to link arguments if non-empty.  Use xmalloc not alloca.
13988         (write_{export,import}_file): Delete.
13989         (write_aix_file): New function.
13990         (locatelib): Use xmalloc not malloc.
13991         (GCC_OK_SYMBOL): Do not check type if aix64.
13992
13993 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
13994
13995         Based on patch by Scott Bambrough and Pat Beirne:
13996         * config/arm/arm.c (making_const_table): New variable.
13997         * config/arm/arm.h (making_const_table): Declare.
13998         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
13999         appropriate.
14000         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
14001         Keep track of when we are building the constant table.
14002
14003 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
14004
14005         * config/arm/arm.c (arm_override_options): Fix erroneous warning
14006         message.
14007
14008 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
14009
14010         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
14011         defined.
14012
14013 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
14014
14015         * tm.texi (FUNCTION_ARG): Correct description of a stack element
14016         in a PARALLEL.
14017
14018 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
14019
14020         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
14021
14022 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14023
14024         * rs6000.c (output_mi_thunk): Enable full support again.
14025
14026 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14027
14028         * sh.h (BRANCH_COST): Define.
14029
14030 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
14031
14032         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
14033
14034 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
14035
14036         * function.c (assign_stack_local): Align stack slot propertly.
14037         (assign_outer_stack_local): Likewise.
14038
14039 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
14040
14041         * expr.h (lang_expand_constant): Declare.
14042         * toplev.c (lang_expand_constant): Define it.
14043         * varasm.c (output_constant): Use it.
14044
14045 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14046
14047         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
14048         Change function definitions to K&R style.
14049
14050 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
14051
14052         * fixinc/fixincl.c: We must not ignore SIGCLD now.
14053
14054 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
14055
14056         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
14057         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
14058         (several places): omit static initialization
14059         (process): use single fd, since only the read fd is used
14060         * fixinc/gnu-regex.c: define 'const' away, if not supported
14061         * fixinc/procopen.c(several places): omit static initialization
14062         * fixinc/server.c: define 'volitile' away, if not supported
14063
14064 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
14065
14066         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
14067         asm_fprintf and %L to generate the label name.
14068         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
14069         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
14070
14071 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
14072
14073         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
14074         insn for a conditional jump can not be found.
14075
14076 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
14077
14078         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
14079         on variables in specific sections other than .sbss and .sdata.
14080
14081 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
14082
14083         * stmt.c (expand_return): Call start_cleanup_deferral and
14084         end_cleanup_deferral around conditional code.
14085
14086 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
14087
14088         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
14089         filename lists.  Utilizes new "krstr" AutoGen function.
14090         * fixinc/fixincl.x: Rebuilt.
14091
14092 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
14093
14094         * i386.c (output_float_compare): Avoid GNU-C extensions.
14095
14096 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
14097
14098         * version.c: Bump to distinguish mainline tree from the
14099         gcc-2.95 branch.
14100
14101 See ChangeLog.1 for earlier changes.