OSDN Git Service

* i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
2
3         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
4         rewrite splitters.
5
6         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
7         (abs?f2_if): Likewise.
8
9 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
10
11         * ggc.h (ggc_test_and_set_mark): New macro.
12         (ggc_mark_rtx): Use ggc_test_and_set_mark.
13         (ggc_mark_tree): Likewise.
14         (ggc_mark_rtvec): Likewise.
15         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. 
16
17 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
18
19         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
20         containing types.
21         (decl_scope_table): Just an array of trees now.
22         (push_decl_scope): Simplify.
23         (dwarf2out_init): Adjust.
24         (local_scope_p): New fn.
25         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
26         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
27         (gen_typedef_die): Likewise.
28         (gen_lexical_block_die): Don't call push/pop_decl_scope.
29         (gen_inlined_subroutine_die): Likewise.
30         (gen_abstract_function): Set current_function_decl temporarily.
31         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
32         Handle block extern declarations.  Don't call push/pop_decl_scope.
33         (gen_decl_die): Fix logic for block externs.
34
35 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36
37         * calls.c (special_function_p): Remove `realloc' and add `strdup'
38         to the list of functions which have attribute malloc by default.
39
40 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41
42         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
43         integer constant does not match the traditional type, limit the
44         warnings to cases where the base of the type is ten.
45
46         * invoke.texi (-Wtraditional): Document it.
47
48 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
49
50         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
51         * rs6000.md: Only access a CONST_INT with INTVAL
52
53 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
54
55         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
56         (compute_nearerout): Likewise.
57         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
58         size_t to unsigned long for formatting.
59
60 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
61
62         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
63         Allow the user to override call-used/fixed state of %g2-5
64         registers from the command line (with the exception of %g4 for
65         embedded model).
66         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
67         there is a higher chance of having a leaf function.
68         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
69         for ARCH64 which has %ccr register.
70         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
71         patterns.
72         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
73         insn accept into delay slot any insn which does not use %[ol]
74         registers.  Accept some LO_SUM and shift left by 1 for the normal
75         restore case.
76         (output_function_epilogue): Likewise.
77         (epilogue_renumber): Added argument which inhibits any renumbering
78         and just tests if the rtx does not use any %[ol] registers.
79         (output_return): Reflect above change.
80
81 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
82
83         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
84         aggregate passing for sizes <= 16 bytes.
85
86 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
87
88         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
89         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
90         * reload.c (find_dummy_reload): Likewise.
91         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
92         * reload1.c (reload_as_needed): Likewise.
93         * stupid.c (stupid_find_reg): Likewise.
94         * tm.texi (Obsolete Register Macros): Delete section.
95         * gmicro.h: Remove all traces of the two macros.
96         * i386.h: Likewise.
97         * m88k.h: Likewise.
98         * mips.h: Likewise.
99
100 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
101
102         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
103         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
104         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
105         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
106         units for the sparclite86x chip.
107         (flush): Revert October 14th change; add SImode specifically.
108         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
109         * invoke.texi: Document it.
110
111 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
112
113         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
114         psimode_truncation_operand.
115
116         * config/mn10200/mn10200.c (psimode_truncation_operand): New
117         function.  Return true if the operand is either a MEM valid
118         for a PSImode address or not a MEM at all.
119
120         * config/mn10200/mn10200.md (truncsipsi2): Use
121         psimode_truncation_operand.
122
123 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
124
125         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
126         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
127         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
128         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
129         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
130         (flow_loop_level_compute, low_loops_level_compute): Likewise.
131         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
132         * basic-block.h: Protect from multiple inclusion.
133         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
134         (struct loops, struct loop): Define structures.
135         * sbitmap.c (sbitmap_a_subset_b_p): New function.
136         * sbitmap.h: Protect from multiple inclusion.
137         (sbitmap_a_subset_b_p): Add prototype.
138         * Makefile.in (LOOP_H): New macro.
139         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
140
141 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
142
143         * cppinit.c (CAT): The argument list of this macro may not contain
144         spaces !
145
146 1999-11-29  David S. Miller  <davem@redhat.com>
147
148         Move quantity tables and register equivalence chains into
149         per-qty and per-register structure arrays respectively.
150         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
151         qty_const_insn, qty_comparison_code, qty_comparison_const,
152         qty_comparison_qty): Delete, replace with...
153         (qty_table): this structure table.
154         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
155         (reg_eqv_table): this structure table.
156         (make_new_qty): Add argument MODE.  Caller updated.
157         Update to use qty_table and reg_eqv_table.
158         (make_regs_eqv, delete_reg_equiv, insert_regs,
159         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
160         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
161         cse_process_notes, cse_main, cse_basic_block): Likewise.
162
163 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
164
165         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
166         operation if C is negative.
167         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
168         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
169         law for some divisions if constant is negative and change other
170         divisions to the opposite rounding.
171
172         * expr.c (store_constructor_field): If bit position is not multiple
173         of alignment of TARGET's mode, use BLKmode.
174
175         * expr.c (expand_expr_unaligned): Add more code from full case
176         that is needed when OP0 is in a register.
177
178 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
179
180         * dwarfout.c (field_byte_offset): Size can be zero if there was
181         an error.
182
183 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
184
185         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
186         (associate_trees): Delete unused var TEM.
187         (extract_muldiv): Delete unused var CANCEL_P.
188                         
189         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
190         (target_isinf, target_isnan, target_negative): Add return types to
191         function definitions.
192
193 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
194
195         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
196         * fixinc/hackshell.tpl: ditto
197         * fixinc/fixtests.c(double_slash_test): more C++ header testing
198         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
199
200 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
201
202         * reload.c (push_reload): When looking for a register to put into
203         reg_rtx, make sure all hard regs in a multi-reg register are in the
204         right class and nonfixed.
205
206         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
207         pending_read_insns, pending_write_insns, pending_read_mems,
208         pending_write_mems, pending_list_length, last_pending_memory_flush,
209         last_function_call, sched_before_next_call): Move static variables
210         into a structure.
211         (bb_ prefixed versions): Replace with single array bb_deps.
212         (struct deps): New structure.
213         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
214         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
215         argument of type "struct deps *"; use that instead of global
216         variables.  All callers changed.
217         (init_rgn_data_dependencies): Delete function.
218         (init_rtx_vector): Delete function.
219         (init_deps): New function.
220
221         (free_pending_lists): Simplify, we always use the bb_deps array even
222         if only one basic block.
223         (compute_block_backward_dependences): Likewise.
224         (schedule_region): Likewise.
225
226         (propagate_deps): New function, broken out of
227         compute_block_backward_dependences.
228         (compute_block_backward_dependences): Use it.
229
230         * alpha.md: Delete useless patterns that tried to work around
231         register elimination problems.
232
233         * unroll.c (loop_iterations): Don't abort if iteration variable
234         was made by loop.
235
236         From Joern Rennecke:
237         * reload1.c (reloads_conflict): Reverse test comparing operand
238         numbers when testing for conflict between output/outaddr reloads.
239
240 1999-11-29  David S. Miller  <davem@redhat.com>
241
242         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
243         arg.
244         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
245
246 1999-11-28  Robert Lipe  <robertl@cygnus.com>
247
248         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
249         table from .fini into .dtor.                                
250
251 1999-11-28  Anthony Green  <green@cygnus.com>
252
253         * tree.h (struct tree_decl): Add malloc_flag.
254         (DECL_IS_MALLOC): Define.
255         * c-common.c (attrs): Add A_MALLOC attribute.
256         (init_attributes): Add this attribute to the table.
257         (decl_attributes): Handle malloc attribute.
258         * calls.c (special_function_p): Check for the malloc attribute.
259         * extend.texi (Function Attributes): Document malloc attribute.
260
261 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
262
263         * pa.md (reload shift-add patterns): Remove.
264
265 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
266
267         * reorg.c (dbr_schedule) Print more statistics. Corrected
268         problem when printing info when 3 delay slots are filled.
269
270 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
271
272         * combine.c (setup_incoming_promotions): Pass an outgoing
273         regno to FUNCTION_ARG_REGNO_P which it expects.
274
275 1999-11-28  Andreas Jaeger  <aj@suse.de>
276
277         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
278
279 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
280
281         * cccp.c (do_include): Avoid initialization of automatic variable.
282
283         * integrate.c (mark_stores): Function definition made void, to match
284         previous declaration.
285         * regclass.c (dump_regclass): Ditto.
286         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
287
288 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
289
290         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
291         known to be multiple of divisor.
292
293         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
294
295         * combine.c (try_combine): Add code to try to merge a set of a
296         two-word pseudo to a constant with a setting of one of those words
297         to a constant.
298
299         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
300         (split_tree): Completely rework to make more general.
301         (make_range, fold): Call negate_expr.
302         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
303         (fold, associate): Call new split_tree and associate_trees.
304         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
305
306 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
307
308         * loop.c (try_copy_prop): Avoid GNU C extension.
309
310 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
311
312         * except.c (init_eh_for_function): Still zero eh_return_context,
313         eh_return_stack_adjust, and eh_return_handler.
314
315         * except.h (eh_status): Adjust documentation for x_protect_list.
316         (begin_protect_partials): New function.
317         * except.c (enqueue_eh_entry): Fix formatting.
318         (get_first_handler): Add consistency check.
319         (add_partial_entry): Adjust usage of protect_list.
320         (emit_cleanup_handler): Save and restore ehqueue.
321         (expand_start_all_catch): Add comment.
322         (begin_protect_partials): New function.
323         (end_protect_partials): Adjust usage of protect_list.
324         (init_eh_for_function): Use xcalloc.
325
326 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
327
328         * c-common.c (check_format_info): Don't call a variadic function
329         with a non-literal format string.
330
331         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
332
333         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
334         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
335         Likewise.
336
337         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
338         Likewise.
339
340         * collect2.c (collect_wait): Likewise.
341
342         * dbxout.c (dbxout_type): Likewise.
343
344         * gcc.c (do_spec_1): Likewise.
345
346         * genemit.c (gen_insn, gen_expand): Likewise.
347
348         * genrecog.c (write_switch, write_subroutine): Likewise.
349
350         * mips-tfile.c (catch_signal, botch): Likewise.
351
352         * print-rtl.c (print_rtx): Likewise.
353
354         * toplev.c (default_print_error_function, report_error_function,
355         _fatal_insn): Likewise.
356
357 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
358
359         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
360
361 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
362
363         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
364         operations when needed.
365         * i386.md (fop_?f_comm): New.
366         (fop_?f_1): Do not accept commutative operands.
367
368 1999-11-25  Andreas Jaeger  <aj@suse.de>
369
370         * config/mips/mips.md (casesi_internal): Add missing brace.
371
372 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
373
374         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
375         (splice_child_die): Handle moving a child DIE from the declaration
376         DIE of a class to its specification.
377         (gen_struct_or_union_type_die): Use 'complete' consistently.
378         (gen_decl_die): Generate the virtual context DIE first.
379         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
380
381 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
382
383         * config/mips/mips.md (call_value_multiple_interanal1): New.
384
385 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
386
387         * dwarf2out.c (free_AT, free_die): New fns.
388         (remove_children): Call them.
389         (output_line_info): Disable removal of duplicate notes.
390
391         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
392         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
393         means pretend the type isn't defined.
394         Don't defer emitting types.
395         (gen_type_die_for_member): New fn.
396         (gen_decl_die): Call it.
397         (splice_child_die): New fn.
398         (gen_member_die): Call it rather than generate duplicate dies.
399
400         Defer emitting information for the abstract instance of an inline
401         until we either inline it or emit an out-of-line copy.
402         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
403         from output_inline_function if DECL_ABSTRACT is also set.
404         (block_ultimate_origin): Likewise.
405         (gen_abstract_function): New fn.
406         (gen_decl_die, gen_inlined_subroutine_die): Call it.
407         (gen_subprogram_die):  An abstract instance is not a declaration
408         just because it doesn't match current_function_decl.  Don't abort
409         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
410         has an abstract origin.
411         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
412         abstract instance here.
413
414 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
415
416         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
417         where we need to reload fpul from a system register.
418
419 1999-11-24  Andreas Jaeger  <aj@suse.de>
420
421         * config/mips/linux.h (CPP_PREDEFINES): Added.
422         (LINK_SPEC): Remove -Y since this is only needed on sparc.
423
424 1999-11-24  Andreas Jaeger  <aj@suse.de>
425
426         * config/mips/linux.h (TARGET_VERSION): Added.
427         (HANDLE_SYSV_PRAGMA): Added.
428         (DEFAULT_VTABLE_THUNKS): Added.
429
430 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
431
432         * local-alloc.c (qty): New structure and static variable.
433         (qty_phys_reg): Remove, all references changed to qty.
434         (qty_n_refs): Likewise.
435         (qty_min_class): Likewise.
436         (qty_birth): Likewise.
437         (qty_death): Likewise.
438         (qty_size): Likewise.
439         (qty_mode): Likewise.
440         (qty_n_calls_crossed): Likewise.
441         (qty_alternate_class): Likewise.
442         (qty_changes_size): Likewise.
443         (qty_first_reg): Likewise.
444         (alloc_qty): Rename variable QTY to QTYNO.
445         (finf_free_reg): Likewise.
446         (local_alloc): Allocate qty, do not allocate the removed variables.
447
448 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
449
450         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
451         when -membedded-pic is passed.
452
453         * config/mips/mips.md (casesi): Handle 64-bit case too.
454         (casesi_internal_di): New insn.
455
456         * config/mips/mips.c (embedded_pic_offset): Always make the
457         embedded-pic subtractions relative to the name of the current
458         function by use of the magic string "..CURRENT_FUNCTION".
459         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
460
461 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
462
463         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
464         of (const_int 0), when what we really care about is
465         whether it's a zero constant anyway.
466         (div_trap_mips16): Likewise.
467
468 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
469
470         * loop.c (loop_optimize): Always find_loop_tree_blocks and
471         unroll_block_trees when generating debuggable code.
472
473         * tree.h (unsave_expr_1): New function.
474         (lang_unsave): New variable.
475         (get_callee_fndecl): New function.
476         * tree.c (unsave_expr_now_r): New function.
477         (lang_unsave): Define.
478         (unsave_expr_1): Likewise.
479         (unsave_expr_now_r): Split out from unsave_expr_now.
480         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
481         call unsave_expr_now_r.
482         (get_callee_fndecl): Define.
483
484         * Makefile.in (gencheck): Don't depend on lang_tree_files.
485         (gencheck.o): Do depend on lang_tree_files.
486
487         * integrate.h (copy_decl_for_inlining): New declaration.
488         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
489         (copy_decl_for_inlining): New function.
490         (integrate_parm_decls): Use it.
491         (integrate_decl_tree): Likewise.
492
493 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
494
495         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split 
496         the second two from the first.
497         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
498         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
499         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than 
500         ISA_HAS_FP4.
501         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
502         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
503         ISA_HAS_FP4.
504
505 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
506
507         * pa.md (call_internal_symref, call_value_internal_symref): No mode
508         needed on the address operand.
509         * pa.c (call_operand_address): Check for the correct mode.
510
511 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
512
513         * loop.c: Include "basic-block.h".
514         (try_copy_prop, replace_loop_reg): New functions.
515         (load_mems): Detect registers that just hold copies of the hoisted
516         mem, and call try_copy_prop to eliminate them.
517         * Makefile.in (loop.o): Update dependencies.
518
519 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
520
521         * Makefile.in (gencheck.o): Depend on gencheck.h.
522         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
523         (insn-peep.o): Depend on except.h and function.h.
524         (insn-attrtab.o): Depend on RECOG_H.
525         (insn-output.o): Depend on toplev.h and flags.h.
526         (gengenrtl.o): Depend on real.h.
527         (gen-protos.o): Depend on cpplib.h and cpphash.h.
528         Unify all dependencies to be on RECOG_H rather than recog.h.
529
530 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
531
532         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
533         * configure.in: Try building a bi-arch 32/64-bit compiler on
534         sparc-*-solaris2.7 and higher.
535         * configure: Rebuild.
536
537 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
538
539         * config/freebsd.h: New, FreeBSD architecture independent file.
540         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
541         independent pieces.
542         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
543         directly by i386/freebsd.h.
544         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
545         independent configuration file.
546         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
547         directly by i386/freebsd.h.
548         * configure: Rebuilt.
549
550         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
551         which is in the user's namespace.
552         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
553         `i386' which is not in our namespace.
554
555 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
556
557         * invoke.texi (ARM Options): Add in -mno-alignment-traps
558
559 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
560
561         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
562         (add_dwarf_attr, add_child_die): Just push onto the front.
563         (reverse_die_lists): New fn.
564         (add_sibling_attributes): Use it.
565         (push_decl_scope): Reorganize.
566         (add_name_and_src_coords_attributes): Don't set file and line for
567         an artificial decl.
568         (gen_subprogram_die): An artificial function doesn't need to match
569         file and line.
570         (gen_compile_unit_die): Return the generated die.  Only add 
571         AT_comp_dir if the filename is relative.
572         (remove_AT): Simplify loop.  Also free string values.
573         (output_die): A DIE ref can't be null.
574         (output_value_format, value_format): Take a dw_attr_ref.
575         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
576         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
577         AT_addr, AT_lbl): New fns.
578         (various): Use them.
579         (various): Constify.
580
581 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
582
583         * combine.c (combine_simplify_rtx): When handling a SUBREG,
584         take SUBREG_WORD into account.
585         (if_then_else_cond): Likewise.
586
587 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
588
589         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising 
590         clause from BSD license, pursuant with
591
592           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
593
594 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
595
596         * loop.c (load_mems): Reformat slightly.
597         * basic-block.h (regset_head): New typedef.
598         (INIT_REG_SET): New macro.
599
600 1999-11-22  Bruce Korb  <autogen@linuxbox.com
601
602         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
603         (mips-dec-bsd*): non-functional code
604         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
605
606         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
607         added three replacement fixes
608         (no_double_slash): removed comments that are not (any longer) pertinent
609         (bad_lval): this fix currently runs against many files.
610         The comment seems to indicate that we should select for files
611         containing 'pragma extern_prefix'.
612
613         * fixinc/fixinc.x86-linux-gnu: deleted
614         * fixinc/inclhack.sh:  regen
615         * fixinc/fixincl.x:  regen
616         * fixinc/fixincl.sh:  regen
617
618 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
619
620         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
621         its code is INSN and it has no notes.
622
623 1999-11-22  Andrew Haley  <aph@cygnus.com>
624
625         * varasm.c (function_defined): Remove.
626         (make_function_rtl): Don't set function_defined.
627         (make_decl_rtl): Remove global register warning.
628         * regclass.c (no_global_reg_vars): New variable.
629         (globalize_reg): Warn if function has already been defined.
630         (regclass_init): Set no_global_reg_vars.
631
632 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
633
634         * regclass.c (reg_pref): New structure and static variable
635         (prefclass): Delete.
636         (altclass): Delete.
637         (all uses of prefclass and altclass): Use reg_pref instead.
638
639 1999-11-21  Nick Clifton  <nickc@cygnus.com>
640
641         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
642         -malignment-traps. 
643         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
644         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
645         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
646
647 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
648
649         * varasm.c (output_constructor): Solve problem with long long
650         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
651
652 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
653
654         * global.c (allocno): New structure and static variable.
655         (allocno_reg): Remove, all references replaced by allocno.
656         (allocno_size): Likewise.
657         (hard_reg_conflicts): Likewise.
658         (hard_reg_preferences): Likewise.
659         (hard_reg_copy_preferences): Likewise.
660         (hard_reg_full_preferences): Likewise.
661         (regs_someone_prefers): Likewise.
662         (allocno_calls_crossed): Likewise.
663         (allocno_n_refs): Likewise.
664         (allocno_live_length): Likewise.
665         (find_reg): Rename ALLOCNO to NUM.
666
667         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
668         references updated.
669         (may_move_out_cost): New variable.
670         (init_reg_sets_1): Initialize may_move_out_cost.
671         (record_reg_classes): Use may_move_out_cost.
672
673         * regclass.c (dump_regclass): New function.
674         (regclass): New parameter DUMP, call DUMP_REGCLASS.
675         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
676         pass rtl_dump_file to regclass.
677         * rtl.h (regclass): Update prototype.
678
679 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
680
681         * i386.md (neg, not and abs patterns): Revmap to use
682         ix86_expand_unary_operator and ix86_unary_operator_ok.
683         (add?f and sub?f expanders): Force operand 1 to register.
684         * i386.c (ix86_expand_unary_operator): Rewrite.
685         (ix86_unary_operator_ok): Ensure that memory operands
686         match real opcode.
687         (ix86_binary_operator_ok): Do not allow operand 1 to
688         come into memory and operand 0 not.
689         (ix86_expand_binary_operator): Ensure that
690         src1 is not non-matching memory.
691
692         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
693         to support integer registers and memory.
694         (abss?2_integer): Likewise.
695
696         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
697         (REG_CLASS_NAMES): Likewise.
698         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
699         and GENERAL_REGS.
700         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
701         (movsf): Likewise; unify 4th and 5th alternative.
702         (pushdf): Likewise.
703         (movdf_1): Likewise; rename to movdf_integer.
704         (pushxf): Likewise; rename to pushxf_integer; fix output template;
705         remove redundant splitter.
706         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
707         (movdf_nointeger): New.
708         (movxf_nointeger): New.
709         (pushxf_nointeger): New.
710
711         * i386.md (extend?f?f): Split to expander and pattern, refuse two
712         memory operands in patterns.
713         (fop*): Refuse two memory operands.
714
715         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
716         on !TARGET_USE_CLTD CPUs.
717
718 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
719
720         * extend.texi: Document C++ restricted pointers and references. 
721
722 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
723
724         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
725         (invalidate_skipped_set): Call it unconditionally.
726         (cse_set_around_loop): Likewise.
727
728 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
729
730         * rtl.texi (mem): Add documentation for alias-set argument 
731         to RTX `mem'.
732
733 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
734
735         * i386.h (struct_processor_costs): New fields int_load, int_store,
736         fp_move, fp_load and fp_store
737         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
738         fp->int moves
739         (MEMORY_MOVE_COST): New macro.
740         * i386.c (386_cost): Define new fields.
741         (i486_cost): Likewise.
742         (pentium_cost): Likewise.
743         (pentiumpro_cost): Likewise.
744         (k6_cost): Likewise.
745
746 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
747                           Geoffrey Keating  <geoffk@cygnus.com>
748
749         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
750
751         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
752         MASK_ALIGN_INT.
753         
754         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
755         (TARGET_STRICT_ALIGNMENT): New macro.
756         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
757         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
758         * invoke.texi (M680x0 Options): Document -mstrict-align.
759
760 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
761                           Richard Henderson  <rth@cygnus.com>
762
763         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
764         (ix86_split_long_move): Declare.
765         * i386.c (split_xf, ix86_split_movdi): Remove.
766         (ix86_split_to_parts, ix86_split_long_move): New.
767         * i386.md (dimode move splitters): Use ix86_split_long_move.
768         (dfmode move splitters): Likewise.
769         (xfmode move splitters): Likewise.
770         (movsf_1): Allow F->r.
771         (movdf_1, movxf_1): Allow F->ro.
772
773 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
774
775         * except.h (struct eh_entry): Add goto_entry_p.
776         (eh_region_from_symbol): Remove prototype.
777         * except.c (find_func_region_from_symbol): New function.
778         (emit_cleanup_handler): Likewise.
779         (eh_region_from_symbol): Make it static.
780         (add_new_handler): Verify the argument.
781         (find_func_region): Update comment.
782         (expand_eh_region_end): Expand handlers here, rater than waiting
783         until expand_leftover_cleanups or start_all_catch.
784         (expand_leftover_cleanups): Don't expand here.
785         (expand_start_all_catch): Or here.
786         (expand_rethrow): Check the return value from find_func_region.
787         * function.c (expand_function_end): Emit the catch_clauses.
788         
789 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
790
791         * integrate.c (expand_inline_function): Add necessary check for NULL.
792
793 1999-11-18  Nick Clifton  <nickc@cygnus.com>
794
795         * toplev.c (main): Correctly detect an unrecognised option.
796
797         * cppinit.c (cpp_handle_option): Do not claim to have consumed
798         a -f option if it has not been recognised.
799
800 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
801
802         * basic-block.h (update_life_extent): Remove trailing comma on
803         enumeration type list.
804
805 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
806
807         * varasm.c (output_constructor) Solved problem with long long
808         bitfields. Corrected calculating this_time and shift. Also
809         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
810
811 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
812
813         * flow.c (split_edge): Take looping structure into account when
814         determining where to put the new block note.
815
816 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
817
818         * Makefile.in (ggc-none.o): Provide host specific version if
819         needed.
820
821 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
822
823         * cse.c (delete_trivially_dead_insns): Identify no-op insns
824         containing subregs too.
825
826 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
827
828         * invoke.texi: Add documentation for -muninit-const-in-rodata.
829         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
830         (TARGET_UNINIT_CONST_IN_RODATA): Define.
831         (text_section): Add switches -munint-const-in-rodata and
832         -mno-uninit-const-in-rodata.
833         (ASM_OUTPUT_COMMON): Remove.
834         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
835         const objects should be placed in read-only data. Otherwise declare
836         them in common.
837
838 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
839
840         * jump.c (jump_optimize_1): Revert last change.
841
842 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
843
844         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
845         test if optimizing for size.
846
847 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
848
849         * Makefile.in (toplev.o): Depend on except.h.
850         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
851
852 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
853
854         * i386.md (divmodsi4): Rewrite to expander.
855         (*divmodsi4_nocltd): New.
856         (*divmodsi4_cltd): New.
857         (divmodsi4 splitter): Handle the case when input comes in edx.
858         (udivmodhi4): Do not use constraints in exander.
859         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
860
861 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
862
863         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
864         for the common case.
865
866 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
867
868         * explow.c (hard_function_value): Add outgoing argument.
869         * expr.h (hard_function_value): Declare it.
870         * calls.c (expand_call, emit_library_call_value): Update callers.
871         * function.c (aggregate_value_p): Ditto.
872         (diddle_return_value): Must look at the outgoing registers
873         on archs with register windows.
874
875 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
876
877         * alpha.c (alpha_build_va_list): Use make_lang_type and
878         initialize TYPE_NAME for the va_list record.
879
880         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
881
882         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
883         for printing.
884         * ggc.h (struct ggc_statistics): Rearrange elements for better
885         packing on 64-bit hosts.
886         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
887         (compute_nearerout): Likewise.
888
889 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
890
891         * config/rs6000/rs6000.c (first_reg_to_save): Save
892         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
893
894 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
895
896         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
897         notion of nesting to find the DIE for a type or function.
898         DIEs can go in limbo even if we got a context_die.
899         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
900         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
901         for local type.
902         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
903         (gen_type_die): Writing out the context doesn't cause member class
904         template instantiations to be written out as well.
905
906 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
907
908         * rs6000.h (ASM_OUTPUT_DEF): New.
909         Based on proposed addition from David Edelsohn.
910
911 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
912             Bruce Korb  <autogen@linuxbox.com>
913
914         * fixinc/inclhack.def
915         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
916         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
917                 in net/inet.h.
918         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
919         (svr4_endian): enabled with SVR5
920         (svr4_mkdev): simplified syntax and enabled with SVR5
921
922 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
923
924         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
925         * configure: Rebuilt.
926         * config/t-freebsd-thread: New file.
927
928 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
929
930         * i386.c (ix86_decompose_address): Verify the base is a REG
931         before trying to examine its register number.
932
933         * basic-block.h: Remove all #defines and prototypes related to
934         integer lists.
935         (free_bb_mem, compute_preds_succs): Remove prototype.
936         * rtl.h (free_bb_mem): Remove prototype.
937         * flow.c (alloc_int_list_node); Remove function.
938         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
939         (compute_preds_succs, free_bb_mem): Likewise.
940         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
941         * toplev.c (rest_of_compilation): Likewise.
942         * haifa-sched.c (build_control_flow): Use flow generated edge
943         list to build the haifa specific edge list.
944         (find_rgns): Use new CFG data structures instead of pred/succ lists.
945         (schedule_insns): Do not build pred/succ lists anymore.  Instead
946         build the edge table.
947
948         * basic-block.h (dump_bb_data): Remove declaration.
949         * flow.c (dump_bb_data): Remove function.
950         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
951         (sbitmap_union_of_predsucc): Likewise.
952
953         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
954         argument.  All callers changed.
955         (delete_null_pointer_checks_1): No longer need to compute the
956         pred/succ lists.
957
958         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
959         All callers changed.
960         (pre_expr_reaches_here_p_work): Likewise.
961         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
962         * lcm.c (compute_laterin): Fix initialization of LATER.
963         (compute_nearerout): Similarly for NEARER.
964
965 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
966
967         * cse.c (set_nonvarying_address_components): Delete unused function.
968         (refers_to_p): Likewise.
969
970 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
971
972         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
973         needed.
974
975 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
976
977         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
978         definition in do while (0).
979
980 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
981
982         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
983
984 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
985
986         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
987
988 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
989
990         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
991         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
992         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
993         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
994
995         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
996         saved on the stack.  Output more accurate stack frame statistics
997         into assembler file.
998
999 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
1000
1001         * genextract.c (record_insn_name): New function.
1002         (get_insn_name): No longer a stub.
1003         (main): Call record_insn_name for each insn.  After each label
1004         written, print the insn name in a comment.
1005
1006 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1007
1008         * output.h (const_section, init_section, fini_section): Add
1009         prototypes.
1010
1011         * alpha/elf.h (const_section): Delete declaration.
1012
1013         * svr4.h (const_section): Likewise.
1014
1015 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
1016
1017         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
1018         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
1019         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
1020         expressions.
1021         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
1022         variable-sized array bounds.
1023         
1024 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
1025
1026         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
1027         ASM_OUTPUT_LABEL.
1028
1029 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1030
1031         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
1032         addresses the same way GO_IF_LEGITIMATE_INDEX does. 
1033
1034 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1035
1036         * cse.c (hash_arg_in_struct): Delete.
1037         (struct table_elt): Delete elt in_struct.
1038         (struct set): Delete elt src_in_struct.
1039         (merge_equiv_classes): Don't set either hash_arg_in_struct or
1040         the corresponding in_struct elts.
1041         (canon_hash): Likewise.
1042         (safe_hash): Likewise.
1043         (find_best_addr): Likewise.
1044         (record_jump_cond): Likewise.
1045         (cse_insn): Likewise.
1046
1047 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
1048
1049         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
1050
1051         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
1052         unsigned types.
1053
1054 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
1055
1056         * function.c (diddle_return_value): Put back check that the DECL_RTL
1057         for the function is a register.
1058
1059         * function.c (diddle_return_value): Use hard_function_value to
1060         get an rtx suitable for use in the USE/CLOBBER insn.
1061
1062         * global.c (global_conflicts): Update comments.
1063         (record_conflicts): No need to record conflicts between pseudos here.
1064
1065 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
1066
1067         * fixinc/fixincl.c: Added verbose levels for status messages
1068
1069 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1070
1071         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
1072         operand as argument to expand_and or expand_binop.
1073
1074 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
1075
1076         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
1077         gcc_add_string_root.
1078
1079 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
1080
1081         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
1082
1083 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
1084
1085         * flow.c (compute_flow_dominators): Initially put all blocks on
1086         the worklist.
1087         * lcm.c (compute_antinout_edge, compute_available): Similarly.
1088         * gcse.c (compute_cprop_avinout): Remove.
1089         (compute_cprop_data): Use compute_available.
1090         (delete_null_pointer_checks_1): Use compute_available.
1091
1092         * basic-block.h (compute_available): Returns a void now.
1093         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
1094         to return a value anymore.
1095         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
1096         worklists.  Fix boundary cases. Compute maximal solutions.
1097         (compute_laterin, compute_nearerout): Similarly.
1098
1099         * dwarf2out.c (add_AT_location_description): Allow
1100         (mem (plus (pseudo) (...)) too.
1101
1102 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
1103
1104         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
1105
1106 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
1107                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1108
1109         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
1110
1111         * gansidecl.h: Likewise.
1112
1113         * rtl.c: Likewise.
1114
1115         * rtl.h: Likewise.
1116
1117         * toplev.h: Likewise.
1118
1119         * tree.c: Likewise.
1120
1121         * tree.h: Likewise.
1122
1123         * varray.c: Likewise.
1124
1125         * varray.h: Likewise.
1126
1127 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
1128
1129         * gcov.c (struct arcdata): Add hits and total, remove prob.
1130         (output_branch_counts): New.
1131         (process_args): Set output_branch_counts if -c.
1132         (calculate_branch_probs): Store hits and total instead of
1133         percentage.
1134         (output_data): Emit counts if output_branch_counts is true.
1135         * gcov.texi (Invoking Gcov): Document -c switch..
1136
1137 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
1138
1139         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
1140         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
1141
1142 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
1143
1144         * invoke.texi (C Dialect Options): Add missing builtins from
1145         c-common.c to list.
1146         * extend.texi (Other Builtins): Copy to this list.
1147
1148 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1149
1150         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
1151         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
1152         redundant bitmap.h.
1153
1154 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
1155
1156         * flow.c (compute_flow_dominators): No longer treat basic block 0
1157         or (n_basic_blocks - 1) specially.  Clear the AUX field before
1158         starting computation of doms/pdoms.  Fix initial state for pdoms.
1159
1160 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1161
1162         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
1163         match rtl.o's: added ggc.h and toplev.h
1164         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
1165         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
1166         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
1167
1168 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
1169
1170         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
1171         from HAVE_DOS_BASED_FILESYSTEM.
1172         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
1173         HAVE_DOS_BASED_FILESYSTEM.
1174         (main): Likewise.
1175         (split_directories): Only special-case DOS file names if
1176         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
1177         instead of explicit tests.  Conditionalize on !VMS.
1178         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
1179         tests.  Conditionalize on !VMS.
1180         (process_command): Only use make_relative_prefix if !VMS.
1181         (free_split_directories): Conditionalize on !VMS.
1182         (DIR_UP): Conditionalize on !VMS.
1183
1184 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1185
1186         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
1187
1188 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1189
1190         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
1191         case.
1192
1193 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
1194
1195         * invoke.texi (Environment Variables): Document relative path
1196         lookup.
1197         * gcc.c (DIR_UP): If not defined, define as "..".
1198         (standard_bindir_prefix): New static, holds target location to
1199         install binaries.
1200         (split_directories): New function to split a filename into
1201         component directories.
1202         (free_split_directories): New function, release memory allocated
1203         by split_directories.
1204         (make_relative_prefix): New function, make a relative pathname if
1205         the compiler is not in the expected location.
1206         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
1207         can figure out an appropriate prefix from argv[0].
1208         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
1209         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
1210         STANDARD_BINDIR_PREFIX.
1211
1212 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1213
1214         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
1215         in c4x.c.
1216         * config/c4x/c4x.h: Moved prototypes to c4x.h.
1217         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
1218         c4x_secondary_memory_needed) Delete.
1219         (fp_zero_operand): Add mode argument.
1220
1221 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
1222
1223         * reload1.c (reload_reg_free_for_value_p): Don't use a register
1224         that is in reload_reg_used.
1225
1226 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
1227
1228         * config/arm/arm-protos.h: New file: Prototypes for functions
1229         defined in arm.c and pe.c.
1230         * config/arm/arm.h: Fix compile time warnings.
1231         * config/arm/arm.c: Fix compile time warnings.
1232         * config/arm/pe.h: Fix compile time warnings.
1233         * config/arm/aout.h: Fix compile time warnings.
1234
1235 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
1236
1237         * config/m32r/m32r-protos.h: New file: Prototypes for functions
1238         defined in m32r.c
1239         
1240         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
1241         Add support for subtargets.
1242         Add prototypes for new predicates.
1243         Add scheduling macros.
1244         
1245         * config/m32r/m32r.c: Fix compile time warnings.
1246         (int8_operand): New predicate function.
1247         (reg_or_cmp_int16_operand): New predicate function.
1248         (extend_operand): New predicate function.
1249         (m32r_adjust_code): New scheduling function.
1250         (m32r_adjust_priorty): New scheduling function.
1251         (m32r_sched_init): New scheduling function.
1252         (m32r_sched_reorder): New scheduling function.
1253         (m32r_sched_variable_issue): New scheduling function.
1254         (direct_return): New codegen function.
1255         (m32r_not_same_reg): New rtl testsing function.
1256         
1257         * config/m32r/m32r.md: Fix compile time warnings.
1258         Add support for pre decrement and post increment memory
1259         references.
1260         Add S<cc> patterns.
1261         Add fabs patterns.
1262         
1263 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1264
1265         * global.c (EXECUTE_IF_CONFLICT): Don't define.
1266         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
1267         (find_reg): Likewise.
1268
1269 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
1270
1271         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
1272         to avoid assembler errors.
1273
1274 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
1275
1276         * config/v850/v850-protos.h: New file: Prototypes for functions
1277         defined in v850.c
1278         * config/v850/v850.h: Move prototypes to v850-protos.h
1279         * config/v850/v850.c: Move prototypes to v850-protos.h
1280         * config/v850/v850.md: Fix compile time warnings.
1281
1282         * config/fr30/fr30-protos.h: New file: Prototypes for functions
1283         defined in fr30.c
1284         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
1285         * config/fr30/fr30.c: Fix compile time warnings.
1286         * config/fr30/fr30.md: Fix compile time warnings.
1287
1288 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
1289
1290         * tree.h (get_containing_scope): Declare it.
1291         * tree.c (get_containing_scope): New fucntion.
1292         (decl_function_context): Use it.
1293         * toplev.c (rest_of_compilation): Use get_containing_scope.
1294
1295 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1296
1297         * Makefile.in (rtl.o): Depend on toplev.h.
1298
1299 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
1300
1301         * cse.c (delete_trivially_dead_insns): Replace alloca with
1302         xmalloc/xcalloc.
1303         * except.c (update_rethrow_references): Likewise.
1304         (init_eh_nesting_info): Likewise.
1305         * function.c (identify_blocks): Likewise.
1306         * gcse.c (dump_hash_table): Likewise.
1307         * graph.c (print_rtl_graph_with_bb): Likewise.
1308         * loop.c (combine_movables): Likewise.
1309         (move_movables): Likewise.
1310         (count_loop_regs_set): Likewise.
1311         (strength_reduce): Likewise.
1312         * profile.c (compute_branch_probabilities): New function, split
1313         out from ...
1314         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
1315         * regclass.c (regclass): Likewise.
1316         * regmove.c (regmove_optimize): Likewise.
1317         * toplev.c (compile_file): Likewise.
1318         (main): Don't mess with the stack rlimit.
1319         
1320 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
1321
1322         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
1323         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
1324
1325 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
1326
1327         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
1328
1329 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
1330
1331         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
1332         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
1333         macro expansion.
1334
1335 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
1336
1337         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
1338
1339 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
1340
1341         * gcse.c (post_dominators): Kill.
1342         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
1343         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
1344         pass in a pdom array since we do not need pdoms.
1345         * haifa-sched.c (schedule_insns): Similarly.
1346         * flow.c (compute_dominators): Remove dead function.
1347         (compute_flow_dominators): Do not compute doms or pdoms if the
1348         caller does not request them.  Split up loop to build doms and
1349         pdoms.  Use a worklist to compute doms and pdoms.
1350         * basic-block.h (compute_dominators): Remove prototype.
1351
1352 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
1353
1354         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
1355         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
1356         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
1357         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
1358         (cant_move, fed_by_spec_load, is_load_insn): Remove.
1359         (schedule_region): Remove unused variable.
1360         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
1361
1362 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
1363
1364         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
1365         (update_equiv_regs): Likewise.
1366         (block_alloc): Likewise.
1367         * reg-stack.c (reg_to_stack): Likewise.
1368         (convert_regs_2): Likewise.
1369         * reload1.c (reload_as_needed): Likewise.
1370         
1371 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
1372
1373         * Makefile.in (dbxout.o): Depend on ggc.h.
1374         (dwarf2out.o): Likewise.
1375         (xcoffout.o): Likewise.
1376         * dbxout.c: Include ggc.h.
1377         (dbxout_init): Register lastfile as a root.
1378         * dwarf2out.c: Include ggc.h.
1379         (dwarf2out_line): Register lastfile as a root.
1380         * xcoffout.c: Include ggc.h.
1381         (xcoffout_source_line): Register xcoff_lastfile as a root.
1382
1383 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
1384
1385         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
1386
1387 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
1388
1389         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
1390         defined.
1391         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
1392
1393 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1394
1395         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
1396         (EXECUTE_IF_CONFLICT): Likewise.
1397         (ALLOCNO_LIVE_P): Avoid signed division.
1398         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
1399         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
1400         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
1401
1402 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
1403
1404         * haifa-sched.c (schedule_block): Don't crash if there's no
1405         next insn for an interblock movement.
1406         (add_branch_dependences): Don't allow clobber insns to move either.
1407
1408 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
1409
1410         * i386.c (split_xf): New.
1411         * i386-protos.h: Declare it.
1412         * i386.md (movxf_1): Add general regs alternatives.
1413         (movxf_1+1): New splitter for same.
1414
1415 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
1416
1417         * function.c (purge_addressof_1): Add missing return values.
1418
1419 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
1420
1421         * function.c (is_addressof): New function.  Returns true if
1422         the given piece of RTL is an ADDRESSOF.
1423         (purge_addressof_1): Make boolean.  Return false if the
1424         ADDRESSOFs could not be purged.
1425         (purge_addressof): If ADDRESSOFs could not be purged from the
1426         notes attached to an insn, remove the offending note(s),
1427         unless they are attached to a libcall.
1428
1429 1999-11-05  Andreas Jaeger  <aj@suse.de>
1430
1431         * genoutput.c (null_operand =): Initialize all fields.
1432
1433         * errors.h: Add extern to prototypes.
1434
1435 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
1436
1437         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
1438         * configure: Rebuilt.
1439
1440 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1441
1442         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
1443         (mirror_conflicts): New function.
1444         (global_alloc): Call it.
1445         (expand_preferences): Remove redundant CONFLICTP test.
1446         (find_reg, dump_conflicts): Likewise.
1447         (prune_preferences): Process conflicts one word at a time.
1448
1449 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
1450
1451         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
1452         instead of an explicit loop.
1453
1454 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
1455
1456         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
1457         if REG_RETVAL check succeeds, then put classp in src_elt.
1458
1459 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
1460
1461         * function.c (pad_to_arg_alignment): Only update argument_pad
1462         if the argument's alignment is greater than STACK_BOUNDARY.
1463
1464 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
1465
1466         * bitmap.h (BITMAP_XFREE): New.
1467         * flow.c (life_analysis): Use it.
1468         (life_analysis_1): Free blocks.
1469
1470         * combine.c (undo_commit): New.
1471         (try_combine): Use it.  Don't zap undobuf.undos.
1472         (combine_instructions): Don't zap undobuf.undos; free the
1473         undobuf.frees list.
1474
1475         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
1476
1477         * stmt.c (cost_table_): New.
1478         (estimate_case_costs): Use it instead of xmalloc.
1479
1480         * toplev.c (compile_file): Reuse dumpname memory instead
1481         of strdup'ing it.
1482
1483 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
1484
1485         * reg-stack.c (convert_regs_1): Initialize target_stack->top
1486         after verifying an EH edge.
1487
1488         * haifa-sched.c (init_rgn_data_dependences): Correctly
1489         size bb_pending_lists_length when zeroing.
1490
1491 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
1492
1493         * function.c (diddle_return_value): New.
1494         (expand_function_end): Use it.
1495         * stmt.c (expand_null_return): Likewise.
1496         (expand_value_return): Likewise.
1497
1498         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
1499
1500         * reload1.c (reload): Don't remove return value clobbers.
1501
1502 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
1503
1504         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
1505
1506 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
1507
1508         * cse.c (cse_main): Use xmalloc, not alloca.
1509         (cse_basic_block): Likewise.
1510         * local-alloc.c (local_alloc): Likewise.
1511
1512 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
1513                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1514
1515         * rtl.c: Include toplev.h.
1516         (fatal): Remove declaration.
1517
1518 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
1519
1520         * haifa-sched.c (schedule_block): Fix thinko.
1521
1522 1999-11-03  James McKelvey <mckelvey@fafnir.com>
1523
1524         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
1525         S_IR* defined values
1526
1527 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
1528
1529         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
1530         call `malloc' instead.
1531
1532 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
1533
1534         * flags.h (flag_renumber_insns): Declare.
1535         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
1536         renumbering table.
1537         * rtl.h (renumber_insns): Change prototype.
1538         * toplev.c (flag_renumber_insns): Define.
1539         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
1540         
1541 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
1542
1543         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
1544         and fpsqrtd.  Use them and create fdiv function unit to more
1545         accurately represent fpu sqrt pipeline semantics on UltraSparc.
1546         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
1547
1548 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
1549
1550         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
1551         3 on UltraSparc.
1552         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
1553         insn into ready list, do not use just a raw swap.
1554
1555 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
1556
1557         * rtl.h (renumber_insns): New function.
1558         (remove_unnecessary_notes): Likewise.
1559         * emit-rtl.c (renumber_insns): Define.
1560         (remove_unncessary_notes): Likewise.
1561         * toplev.c (rest_of_compilation): Remove dead code.
1562         Use renumber_insns and remove_unncessary_notes.
1563
1564         * gcse.c (struct null_pointer_info): New type.
1565         (get_bitmap_width): New function.
1566         (current_block): Remove.
1567         (nonnull_local): Likewise.
1568         (nonnull_killed): Likewise.
1569         (invalidate_nonnull_info): Take a null_pointer_info as input.
1570         (delete_null_pointer_checks_1): New function.
1571         (delete_null_pointer_checks): Use it.
1572
1573         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
1574         (split_edges): Likewise.
1575         (schedule_block): Likewise.
1576         (compute_block_backward_dependencies): Likewise.
1577         (schedule_region): Likewise.
1578         (schedule_insns): Likewise.
1579         
1580 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
1581
1582         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
1583         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
1584         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
1585         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
1586         * jump.c (delete_unreferenced_labels): Don't delete if
1587         LABEL_ALTERNATE_NAME is set.
1588         * print-rtl.c (print_rtx): Dump alternate name.
1589         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
1590         * rtl.h (LABEL_ALTERNATE_NAME): Define.
1591         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
1592         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
1593
1594 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1595
1596         * fix-header.c (recognized_extern, recognized_function): Constify
1597         a char*.
1598
1599         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
1600         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
1601         (compute_available): Remove unused variable `last'.
1602         (compute_nearerout): Remove unused variable `temp_bitmap'.
1603         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
1604         Remove unused variable `x'.
1605
1606         * scan.h (recognized_function, recognized_extern): Constify a
1607         char*.
1608
1609         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
1610
1611 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1612
1613          * varasm.c (decode_rtx_const): Use XSTR to access the string
1614          of a SYMBOL_REF.
1615
1616 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
1617
1618         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
1619
1620 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1621
1622         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
1623
1624 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
1625
1626         * pa.c (ireg_operand): New function.
1627         * pa.h (PREDICATE_CODES): Handle ireg_operand.
1628         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
1629         Fix out of date comment.
1630
1631         * pa.md (negdi2): Turn into expander + anonymous pattern.
1632
1633         * reload.c (find_reloads): Fix typos in recent change.
1634
1635         * dwarf2out.c: Do not include ctype.h.
1636
1637 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1638
1639         * regclass.c (record_reg_classes): Always use may_move_cost when
1640         seeing how operand fits with various register classes.
1641
1642 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
1643
1644         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
1645         * toplev.c: Revert Nov 1 13:22 change.
1646
1647 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
1648
1649         * config/pa/pa.md (height reduction patterns): Add checks for
1650         overlapping operands to avoid semantic-destroying splits for 
1651         height reduction patterns.
1652
1653 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1654
1655         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
1656         have been an hyphen, fixed.
1657         * configure: Rebuilt.
1658
1659 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
1660
1661         * config/arm/tpe.h: Add prototypes for exported functions.
1662         * config/arm/pe.c: Fix compile time warnings.
1663         * config/arm/semi.h: Fix compile time warnings.
1664         * config/arm/arm.c: Fix compile time warnings.
1665         * config/arm/arm.h: Fix compile time warnings.
1666         * config/arm/arm.md: Fix compile time warnings.
1667         * config/arm/thumb.c: Fix compile time warnings.
1668         * config/arm/thumb.h: Fix compile time warnings.
1669         * config/arm/thumb.md: Fix compile time warnings.
1670
1671 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
1672
1673         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
1674         detection code
1675
1676         * unroll.c (unroll_loop): Remove LOOP notes when loop is
1677         completely unrolled.
1678
1679 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1680
1681         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
1682
1683 Tue Nov  2 09:43:00 1999   Catherine Moore  <clm@cygnus.com>
1684
1685         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
1686         * rtl.h (rtx_equal_p): Move prototype.
1687         * rtl.c (rtx_equal_function_value_matters): Move from 
1688         rtlanal.c
1689         (rtx_equal_p): Likewise.
1690         * rtlanal.c (rtx_equal_function_value_matters): Delete.
1691         (rtx_equal_p): Likewise.
1692
1693 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
1694
1695         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
1696         ! HAS_INIT_SECTION.
1697
1698 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
1699
1700         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
1701
1702         * pa.h (ADDR_VEC_ALIGN): Define.
1703
1704         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
1705         notes when presented with "if (foo) break; end_of_loop" and
1706         the break sequence gets moved out of the loop.
1707
1708         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
1709         Remove explicit zero initializations of entries within MAP.
1710
1711 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
1712
1713         * reg-stack.c (convert_regs_1): Handle EH edges specially.
1714
1715 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
1716
1717         * bitmap.h (BITMAP_XMALLOC): New macro.
1718         * flow.c (CLEAN_ALLOCA): Remove.
1719         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
1720         (life_analysis): Likewise.
1721         (update_life_info): Don't use CLEAN_ALLOCA.
1722         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
1723         (calculate_global_regs_live): Likewise.
1724         (print_rtl_with_bb): Likewise.
1725         (verify_flow_info): Likewise.
1726         * global.c (global_alloc): Likewise.
1727         (global_conflicts): Likewise.
1728         * integrate.c (save_for_inline_nocopy): Likewise.
1729         (expand_inline_function): Likewise.
1730         * jump.c (jump_optimize_1): Likewise.
1731         (duplicate_loop_exit_test): Likewise.
1732         (thread_jumps): Likewise.
1733         * loop.c (loop_optimize): Likewise.
1734         (combine_givs): Likewise.
1735         (recombine_givs): Likewise.
1736         * reorg.c (dbr_schedule): Likewise.
1737         * unroll.c (unroll_loop): Likewise.
1738         
1739         * combine.c (combine_instructions): Use xmalloc instead of alloca.
1740
1741 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
1742
1743         * toplev.c (rest_of_compilation): Don't optimize the CFG
1744         when rebuilding, just before dbr.
1745
1746 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1747
1748         * output.h (assemble_end_function, assemble_destructor,
1749         assemble_constructor, assemble_gc_entry, assemble_global,
1750         assemble_label, output_constant_pool) Constify a char*.
1751
1752         * varasm.c (assemble_destructor, assemble_constructor,
1753         assemble_gc_entry, assemble_end_function, assemble_global,
1754         assemble_label, output_constant_pool): Likewise.
1755
1756 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
1757
1758         * config/arm/thumb.c (thumb_expand_prologue): Add comments
1759         explaining what is goin on in this function.
1760
1761 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1762
1763         * regclass.c (record_reg_classes): In matching case, recompute
1764         costs since the direction of movement is different.
1765
1766 Sun Oct 31 21:59:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
1767
1768         * resource.c (mark_target_live_regs): For unconditional branches,
1769         the resources found at the branch target should be added to the
1770         resources found so far, not intersected.
1771
1772 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
1773
1774         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
1775         old cpp's.
1776         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
1777         (sys/mman.h): Include this file only if #HAVE_MMAP.
1778         (run_compiles): Initialize `esac_fmt' with one old KR string, not
1779         with automatically concatenated ANSI strings.
1780
1781 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
1782
1783         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
1784         (DIV_ROUND_UP): Robustify.
1785         (ggc_recalculate_in_use_p): New function.
1786         (release_pages): Don't inline it.
1787         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
1788         outer contexts.
1789         (ggc_pop_context): Use ggc_recalculate_in_use_p.
1790         (clear_marks): Always save in_use_p.
1791         (sweep_pages): Use ggc_recalculate_in_use_p.
1792         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
1793         Release pages before counting statistics.
1794         
1795 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
1796
1797         * toplev.c (rest_of_compilation): Fix thinko in this change:
1798         
1799         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
1800
1801         (rest_of_compilation): If inside an inlined external function,
1802         pretend we are just being declared.
1803
1804 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
1805
1806         * flow.c (calculate_global_regs_live): Fix thinko.
1807
1808         * integrate.c (expand_inline_function): Fix bugs in previous
1809         change from Oct 28, 1999.
1810
1811 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
1812
1813         * stmt.c (expand_value_return): Fix typo in this change:
1814
1815         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1816         (expand_value_return): Correctly convert VAL when promoting function
1817         return; support RETURN_REG being a PARALLEL.
1818         
1819 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
1820
1821         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
1822
1823 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1824
1825         * hard-reg-set.h (reg_names): Constify a char*.
1826
1827         * regclass.c  (reg_names): Likewise.
1828
1829         * regs.h (reg_names): Likewise
1830
1831         * a29k/a29k.c (reg_names): Delete declaration.
1832
1833         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
1834
1835         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
1836         arc_output_function_epilogue): Likewise.
1837
1838         * elxsi/elxsi.c (reg_names): Likewise.
1839
1840         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
1841         
1842         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
1843         Likewise.
1844
1845         * m88k/m88k.c (output_function_profiler): Likewise.
1846
1847         * sparc/sparc.c (sparc_flat_output_function_prologue,
1848         sparc_flat_output_function_epilogue): Likewise.
1849
1850 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
1851
1852         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
1853         warning from -Wuninitialized and put it under -W.
1854         * function.c (uninitialized_vars_warning): Warn only when the
1855         corresponding flag is set.
1856
1857 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
1858
1859         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
1860         is nonzero and the single set does not have an elt, then assign
1861         it an elt.
1862
1863         * simplify-rtx.c: New file.
1864         * Makefile.in (OBJS): Add simplify-rtx.o
1865         (simplify-rtx.o): Add dependencies.
1866         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
1867         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
1868         (cse_gen_binary, simplify_unary_operation): Delete.
1869         (simplify_binary_operation, simplify_plus_minus): Likewise.
1870         (check_fold_consts, simplify_relation_operation): Likewise.
1871         (simplify_ternary_operation): Likewise.
1872         (delete_trivially_dead_insns): Simplify the contents of the
1873         REG_EQUAL note before trying to substitute it into the source
1874         of the reg-reg copy at the end of a libcall sequence.
1875
1876         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
1877         references/callers changed.
1878
1879         * mn10200.c (mn10200_va_arg): Force the return value into a
1880         register.
1881
1882         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
1883
1884         * cccp.c (macroexpand): Avoid out of range accesses for omitted
1885         arguments.
1886
1887 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
1888
1889         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
1890
1891 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
1892
1893         * fold-const.c (fold): Fix thinko when optimizing comparisons
1894         against -0.0.
1895
1896 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
1897
1898         * gcc.texi (Passes): Update front-end files to their current 
1899         location.
1900
1901 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
1902
1903         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
1904         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1905         (PREDICATE_CODES): Add addition_operation.
1906         * alpha-protos.h (addition_operation): Declare.
1907         (secondary_reload_class): Likewise.
1908         * alpha.c (addition_operation): New.
1909         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
1910         * alpha.md (adddi3): Turn into expander.
1911         (*lda, *adddi_2): New.
1912         (movsf, movdf patterns): Don't preference integer regs.
1913         (movsi, movdi patterns): Don't preference fp regs.
1914
1915 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
1916
1917         * genrecog.c (write_switch): Check for duplicate CODE cases.
1918
1919 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
1920
1921         * ggc-common.c: Update pre-function commentary.
1922         * ggc-page.c: Likewise.
1923         (poison): Remove.
1924         (poison_pages): Use memset directly.
1925         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
1926         (ggc_collect): Poison before sweeping.
1927         * ggc-simple.c: Update pre-function commentary.
1928         (ggc_alloc_obj): Poison non-zeroed memory.
1929
1930 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
1931
1932         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
1933         match format string, even on 64-bit hosts.
1934         * gcc-page.c (ggc_page_print_statistics): Likewise.
1935
1936 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
1937
1938         * config/i386/i386.c (ix86_cpu): Revert last patch.
1939         * config/i386/i386.h (ix86_cpu): Ditto.
1940
1941 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
1942
1943         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
1944         TYPE_SIZE, convert type of result to sizetype.
1945
1946 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
1947
1948         * flow.c (count_or_remove_death_notes): Equate NULL with the
1949         universal set.
1950
1951         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
1952         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
1953         dbr_schedule.
1954
1955         * i386.c (pic_label_no): Delete.
1956         (ix86_attr_length_default): Don't use single_set to peek
1957         inside a parallel.
1958
1959         * recog.c (peephole2_optimize): Allow recog_next_insn to index
1960         the first insn after bb->end.
1961         * i386.md (push mem peeps): Scratch is live after evaluation
1962         of the memory.
1963         (cmp mem peep): Similarly.
1964
1965 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
1966
1967         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
1968         * function.c (pad_to_arg_alignment): Add missing braces.
1969
1970 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1971
1972         * alpha/alpha-protos.h (literal_section): Add prototype.
1973         (alpha_need_linkage, alpha_start_function,alpha_end_function):
1974         Constify a char*.
1975
1976         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
1977         prototype.
1978         (alpha_start_function, alpha_end_function, float_strings,
1979         alpha_need_linkage): Constify a char*
1980
1981         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
1982
1983         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
1984
1985         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
1986
1987         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
1988
1989 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1990
1991         * flow.c (debug_flow_info): Add prototype.
1992
1993         * gcc.c (main): Likewise.
1994
1995         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
1996         Likewise.
1997
1998         * reload1.c (failed_reload, set_reload_reg): Likewise.
1999         
2000         * mips-tfile.c (main): Likewise.
2001         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
2002         with ATTRIBUTE_NORETURN.
2003
2004 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
2005
2006        * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
2007        DECL is not a memory ref.
2008  
2009 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
2010
2011         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
2012         * config/i386/i386.c (ix86_cpu): Add extern attribute.
2013
2014 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
2015
2016         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
2017         * config/mips/elf64.h: ditto.
2018
2019 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
2020
2021         * expr.c (emit_push_insn): New argument alignment_pad.
2022         Update all callers.  Adjust stack pointer based on alignment pad.
2023         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
2024         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
2025         (locate_and_pad_parm): New argument alignment_pad.  Update all
2026         callers.
2027         * expr.h (emit_push_insn): Update prototype.
2028         (locate_and_pad_parm): Update prototype.
2029         * calls.c (arg_data):  Add new field alignment_pad.
2030         (initialize_argument_information): Initialize alignment_pad.
2031
2032 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
2033
2034         * except.c (free_eh_nesting_info): Free the info itself.
2035         * function.c (free_after_compilation): Don't free NULL.
2036         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
2037         (pre_edge_insert): Free inserted.
2038         * stmt.c (free_stmt_status): Don't free NULL.
2039
2040 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
2041
2042         * gcov.c (DIR_SEPARATOR): Provide default.
2043         (output_data): Add test for MS-DOS format absolute filename.
2044         (fancy_abort): Correct program name.
2045         (open_files): Open all files in binary mode.
2046         * libgcc2.c (__bb_exit_func): Likewise.
2047
2048         * profile.c (init_branch_prob): Specify binary when opening files.
2049
2050         * flags.h (flag_unwind_tables): New decl.
2051         * toplev.c (flag_unwind_table): New definition.
2052         (f_options): Add -funwind-tables.
2053         (decode_g_option): Clarify warning when unknown -g option is given.
2054         (rest_of_compilation): If inside an inlined external function,
2055         pretend we are just being declared.
2056
2057         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
2058         (dwarf2out_frame_finish): Likewise.
2059
2060 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
2061
2062         * fold-const.c (merge_ranges): In not in0, but in1, handle
2063         upper bounds equal like subset case.
2064
2065 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
2066
2067         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
2068         passed in a register but moved to the stack.
2069
2070 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
2071
2072         * gcc.c (pass_exit_codes, greatest_status): New variables.
2073         (struct option_map): Add entry for "--pass-exit-codes".
2074         (execute): Update greatest_status if error.
2075         (display_help): Add documentation for -pass-exit-codes.
2076         (process_command): Handle -pass-exit-codes.
2077         (main): Look at pass_exit_codes and greatest_status on call to exit.
2078
2079 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2080
2081         * reload.c (find_reloads): Refine test for no input reload
2082         case to not includes reloads emitted after insn.
2083
2084         * function.c (find_temp_slots_from_address): Handle sum involving
2085         a register that points to a temp slot.
2086         (update_temp_slot_address): Make recursive call if both old and
2087         new are PLUS with a common operand.
2088         * calls.c (expand_call): Mark temp slot for result as having
2089         address taken.
2090         
2091         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
2092
2093         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
2094         component as well as "BINUTILS".
2095
2096         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
2097         * integrate.c (copy_rtx_and_substitute): Likewise.
2098         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
2099         All callers changed.
2100         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
2101         
2102         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
2103         gdb extensions, write size of type; also be more consistent
2104         in using references when this is a subtype.
2105
2106         * pa.md (extv, extzv, insv): Use define_expand to reject constant
2107         that is out of range.
2108
2109         * loop.c (unknown_constant_address_altered): New variable.
2110         (prescan_loop): Initialize it.
2111         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
2112         (invariant_p, case MEM): Remove handling for volatile and readony;
2113         check new variable if readonly.
2114         (check_dbra_loop): Chdeck unknown_constant_address_altered.
2115
2116         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
2117         (addr_affects_sp_p): Removed from note_mem_written and only
2118         define #ifdef AUTO_INC_DEC.
2119
2120         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
2121
2122         * regclass.c (record_reg_classes): Properly handle register move
2123         directions.
2124
2125         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
2126         Don't think valid if both operands are invalid.
2127         (struct constant_descriptor): New field RTL.
2128         (mark_const_hash_entry): Mark it.
2129         (record_constant{,_rtx}): Initialize it.
2130         (output_constant_def): Allocate RTL in permanent obstack and
2131         save in table.
2132         ({record,compare}_constant_1): Modes must match for
2133         CONSTRUCTOR of ARRAY_TYPE.
2134
2135         * c-common.h (initializer_constant_valid_p): Delete decl from here.
2136         * output.h (initializer_constant_valid_p): Move decl to here.
2137         * c-common.c (initializer_constant_valid_p): Delete function from here.
2138         * varasm.c (initializer_constant_valid_p): Move function to here.
2139
2140         * tree.h (STRIP_SIGN_NOPS): New macro.
2141         * fold-const.c (optimize_minmax_comparison): New function.
2142         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
2143         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
2144         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
2145         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
2146         widening conversions.
2147         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
2148         to look at size of mode, not precision of type; also add missing cases.
2149         (optimize_bit_field_compare, decode_field_reference): Don't try to
2150         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
2151
2152         * dwarf2out.c (ctype.h): Include.
2153         (dwarf2out_set_demangle_name_func): New function.
2154         (size_of_line_info): Deleted.
2155         (output_line_info): Compute size of line info table from difference
2156         of labels.
2157         (base_type_die, add_name_attribute): Call demangle function, if any.
2158         (field_byte_offset): Use bits per word for variable length fields.
2159         (gen_array_type_die): Add array name.
2160         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
2161         (dwarf2out_add_library_unit_info): New function.
2162
2163         * explow.c (set_stack_check_libfunc): New function.
2164         (stack_check_libfunc): New static variable.
2165         (probe_stack_range): Allow front-end to set up a libfunc to call.
2166
2167         * combine.c (simplify_comparison): When making comparison in wider
2168         mode, check for having commuted an AND and a SUBREG.
2169         (contains_muldiv): New function.
2170         (try_combine): Call it when dividing a PARALLEL.
2171         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
2172         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
2173         a PLUS.
2174         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
2175         use one of the CLOBBERs instead.
2176         (if_then_else_cond): If comparing against zero, just return thing
2177         being compared.
2178
2179         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
2180         Don't generate shifts and subtract if have conditional arithmetic.
2181
2182         * rtl.h (delete_barrier): New declaration.
2183         * jump.c (jump_optimize): Set up to handle conditional call.
2184         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
2185         (delete_barrier): New function.
2186
2187         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
2188
2189         * recog.c (nonmemory_operand): Accept ADDRESSOF.
2190
2191         * tree.c (build_type_attribute_variant): Push to obstack of
2192         ttype around type_hash_canon call.
2193
2194         * expr.c (placeholder_list): Move decl to file scope.
2195         (expand_expr): Don't force access to volatile just because its
2196         address is taken.
2197         If ignoring reference operations, just expand the operands.
2198         (expand_expr, case COMPONENT_REF): Propagate
2199         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
2200         Refine test for using bitfield operations vs pointer punning.
2201         (expand_expr, case CONVERT_EXPR): If converting to
2202         BLKmode UNION_TYPE from BLKmode, just return inner object.
2203         Use proper mode in store_field call.
2204         Properly set sizes of object to store and total size in store_field
2205         call for convert to union.
2206         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
2207         memory (like for ADDR_EXPR).  Also, don't put constant in register if
2208         we'll want it in memory.
2209         (readonly_fields_p): New function.
2210         (expand_expr, case INDIRECT_REF): Call it if LHS.
2211         (expand_assignment): Handle a RESULT_DECL where
2212         DECL_RTL is a PARALLEL.
2213         (do_jump, case WITH_RECORD_EXPR): New case.
2214         (get_inner_reference): Always go inside a CONVERT_EXPR
2215         and NOP_EXPR if both modes are the same.
2216         (store_field): Use bitfield operations if size of bitsize is not same
2217         as size of RHS's type.
2218         Check for bitpos not a multiple of alignment in BLKmode case.
2219         Do block move in largest possible alignment.
2220         (store_constructor): Set BITSIZE to -1 for variable size and properly
2221         in case of array of BLKmode.
2222         (expand_expr_unaligned): New function.
2223         (do_compare_and_jump): Call it.
2224
2225         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
2226         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
2227         does not include 'o'.
2228
2229         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
2230         both SET_DEST and SET_SRC reference a virtual register.
2231         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
2232
2233         * integrate.c (expand_inline_function): Handle case of setting
2234         virtual stack vars register (from built in setjmp); when parameter
2235         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
2236         (subst_constant): Add new parm, MEMONLY.
2237         (expand_inline_function, integrate_parm_decls): Pass new parm.
2238         (integrate_decl_tree): Likewise.
2239         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
2240         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
2241         (copy_rtx_and_substitute, case SET): Add explicit calls to
2242         copy_rtx_and_substitute for both sides.
2243
2244         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
2245         constraints.
2246         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
2247         within INDEX_TYPE, instead of before.
2248         (fixup_gotos): Use f->target_rtl, not the next insn,
2249         since latter may be from a later fixup.
2250         (expand_value_return): Correctly convert VAL when promoting function
2251         return; support RETURN_REG being a PARALLEL.
2252         (expand_return): When checking for result in regs and having
2253         cleanup, consider PARALLEL in DECL_RTL as being in regs.
2254
2255 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
2256
2257         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
2258         last_nominal_fname): Mark const.
2259         (struct include_hash: name, nshort, control_macro): Mark
2260         const.
2261         (struct macrodef: symnam): Mark const.
2262         (struct if_stack: fname): Mark const.
2263         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
2264         (IStable): New character-syntax array which encompasses all
2265         the old is_foo arrays.
2266         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
2267         is_space): New macros for interrogating IStable.
2268         (check_macro_name): Kill last argument.  All callers changed.
2269
2270         * cppinit.c (initialize_char_syntax): Delete.
2271         (is_idchar, is_idstart, is_hor_space, is_space,
2272         trigraph_table): Delete.
2273         (IStable): New.  Initialize with clever macros to avoid
2274         information duplication.
2275         (builtin_array): Table of builtins to get rid of explicit list
2276         in initialize_builtins.
2277         (initialize_builtins): Use builtins_array.
2278         (cpp_start_read): Call init_IStable, and set IStable['$'] if
2279         opts->dollars_in_ident.
2280
2281         * cppexp.c: Change all refs to is_xyz[] arrays to use new
2282         is_xyz() macros.
2283         (cpp_parse_expr): Avoid 'format string is not constant'
2284         warning. Use ISGRAPH to identify printable chars.
2285         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
2286         is_xyz() macros.
2287         (read_and_prescan): Map trigraphs to chars with open-coded
2288         if-else-if-... sequence, not a lookup table.
2289         * cpphash.c: Change all refs to is_xyz[] arrays to use new
2290         is_xyz() macros.
2291         * cpplib.c: Change all refs to is_xyz[] arrays to use new
2292         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
2293         (check_macro_name): Remove ability to report an invalid
2294         assertion name, which is never used.
2295         (do_line): Constify a couple of char *'s.
2296         * cppmain.c (main): Call cpp_cleanup before returning.
2297
2298 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
2299
2300         * ggc.h (struct ggc_statistics): New type.
2301         (ggc_get_size): New function.
2302         (ggc_print_statistics): Likewise.
2303         * ggc-common.c (ggc_stats): New variable.
2304         (ggc_mark_rtx_children): Keep statistics.
2305         (ggc_mark_tree_children): Likewise.
2306         (ggc_print_statistics): New function.
2307         * ggc-page.c (struct globals): Add bytes_mapped field.
2308         (alloc_anon): Update it.
2309         (release_pages): Likewise.
2310         (ggc_get_size): New function.
2311         (ggc_page_print_statistics): New function.
2312         * ggc-simple.c (ggc_get_size): New function.
2313         
2314 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
2315
2316         * flow.c (propagate_block): When the last reference to a label
2317         before an ADDR_VEC is deleted because the reference is a dead
2318         store, delete the ADDR_VEC.
2319
2320 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
2321
2322         * resource.c (find_free_register): Don't use the frame pointer
2323         if frame_pointer_needed.
2324
2325 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
2326
2327         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
2328         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
2329
2330         * config/i960/i960.c (i960_va_start): New locals base, num.
2331         Use INDIRECT_REF instead of ARRAY_REF on valist.
2332         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
2333
2334 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
2335
2336         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
2337
2338 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
2339
2340         * tree.def (PLACEHOLDER_EXPR): Update comments.
2341
2342 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2343
2344         * c-common.c (check_format_info): Avoid non-literal format string
2345         warnings when `first_arg_num' is zero.
2346
2347 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2348
2349         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
2350
2351 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2352
2353         * arm.md (casesi_insn): Add a clobber of the condition code
2354         register.
2355
2356 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
2357
2358         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
2359         used by both cc1 and cc1plus.
2360         
2361 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
2362
2363         * config/arm/arm.c: Initialise arm_structure_size_boundary to
2364         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
2365         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
2366         to the value 32 if it has not already been defined.
2367         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
2368         Override definition in arm.h with a value of 8.
2369
2370 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
2371
2372         * c-pragma.c (push_alignment): Don't check the return value
2373         of xmalloc.
2374
2375 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
2376
2377         * sparc.h (ADJUST_COST): Fix thinko.
2378
2379 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
2380
2381         * cccp.c (rescan): Fixed obp pointer handling around call to
2382         check_expand subroutine.
2383
2384 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
2385
2386         * gcse.c (delete_null_pointer_checks): Only record non-null info
2387         for pseudos when examining stores.
2388
2389         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
2390         splitters for these patterns.  Use "#" for output templates.
2391         (addsi3_carryin_shift): New pattern.
2392
2393 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
2394
2395         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
2396         of the function return register into a plain REG until
2397         after function inlining is done.
2398
2399 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
2400
2401         * jump.c (jump_optimize_1): If we did cross-jumping, and
2402         the data will matter, rebuild the CFG.
2403         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
2404         not optimizing.  Don't run shorten_branches.
2405         * toplev.c (rest_of_compilation): Run shorten_branches after
2406         reg_to_stack.
2407
2408 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
2409
2410         * rtl.h (note_stores): Add additional paramter.
2411         * rtlanal.c (reg_set_p_1): Take additional paramter.
2412         (reg_set_last_1): Likewise.
2413         (reg_set_p): Adjust call to note_stores.
2414         (reg_set_last): Likewise.
2415         (note_stores): Pass data parameter to worker function.
2416         * alias.c (record_set): Take additional parameter.
2417         (init_alias_analysis): Pass it.
2418         * caller-save.c (mark_set_regs): Take additional parameter.
2419         (save_call_clobbered_regs): Pass NULL to note_stores.
2420         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
2421         parameter.
2422         (record_dead_and_set_regs_1): Likewise.
2423         (reg_dead_at_p_1): Likewise.
2424         (combine_instructions): Adjust calls to note_stores.
2425         (try_combine): Likewise.
2426         (record_dead_insn): Remove.
2427         (record_dead_and_set_regs): Adjust calls to note_stores.
2428         (reg_dead_at_p): Likewise.
2429         * cse.c (invalidate_skipped_set): Take additional parameter.
2430         (cse_check_loop_start): Likewise.
2431         (cse_check_loop_start_value): Remove.
2432         (cse_set_around_loop): Adjust calls to note_stores.
2433         * flow.c (notice_stack_pointer_modification): Take additional
2434         parameter.  Remove duplicate declaration.
2435         (record_volatile_insns): Adjust calls to note_stores.
2436         * gcse.c (record_set_info): Take additional parameter.
2437         (record_last_set_info): Likewise.
2438         (invalidate_nonnull_info): Likewise.
2439         (record_set_insn): Remove.
2440         (compute_sets): Adjust calls to note_stores.
2441         (last_set_insn): Remove.
2442         (compute_hash_table): Adjust calls to note_stores.
2443         (insert_insn_end_bb): Likewise.
2444         (delete_null_pointer_checks): Likewise.
2445         * global.c (mark_reg_store): Take additional parameter.
2446         (mark_reg_clobber): Likewise.
2447         (reg_becomes_live): Likewise.
2448         (global_conflicts): Adjust calls to note_stores.
2449         (build_insn_chain): Likewise.
2450         * integrate.c (note_modified_parmregs): Take additional parameter.
2451         (mark_stores): Likewise.  Make it static.
2452         (save_for_inline_nocopy): Adjust calls to note_stores.
2453         (try_constants): Likewise.
2454         * integrate.h (mark_stores): Remove declaration.
2455         * jump.c (mark_modified_reg): Take additional parameter.
2456         (thread_jumps): Adjust calls to note_stores.
2457         * local-alloc.c (validate_equiv_mem_from_store): Take additional
2458         parameter.
2459         (no_equiv): Likewise.
2460         (reg_is_set): Likewise.
2461         (validate_equiv_mem): Adjust calls to note_stores.
2462         (update_equiv_regs): Likewise.
2463         (block_alloc): Likewise.
2464         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
2465         (note_addr_stored): Take additional parameter.
2466         (note_set_pseudo_multiple_uses): Likewise.
2467         (record_initial): Likewise.
2468         (prescan_loop): Adjust calls to note_stores.
2469         (strength_reduce): Likewise.
2470         (check_dbra_loop): Likewise.
2471         * regmove.c (flags_set_1): Take additional paramter.
2472         (mark_flags_life_zones): Adjust calls to note_stores.
2473         * reload1.c (mark_not_eliminable): Take additional parameter.
2474         (forget_old_reloads_1): Likewise.
2475         (reload_cse_invalidate_rtx): Likewise.
2476         (reload_cse_check_clobber): Likewise.
2477         (reload_combine_note_store): Likewise.
2478         (move2add_note_store): Likewise.
2479         (reload): Adjust calls to note_stores.
2480         (reload_as_needed): Likewise.
2481         (emit_reload_insns): Likewise.
2482         (reload_cse_regs_1): Likewise.
2483         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
2484         (reload_combine): Adjust calls to note_stores.
2485         * resource.c (update_live_status): Take additional paramter.
2486         (mark_target_live_regs): Adjust calls to note_stores.
2487         * stupid.c (find_clobbered_regs): Take additional parameter.
2488         (stupid_life_analysis): Adjust calls to note_stores.
2489         
2490 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
2491
2492         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
2493         definition. 
2494
2495         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
2496         definition.
2497
2498         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
2499         of the variable arm_structure_size_boundary.
2500
2501 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
2502
2503         * alias.c (init_alias_analysis): Allocate reg_known_value and
2504         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
2505         and reg_seen.
2506         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
2507         * cse.c (cse_main): Call end_alias_analysis.
2508         * haifa-sched.c (schedule_insns): Likewise.
2509         * local-alloc. (update_equiv_regs): Likewise.
2510         * reload1.c (reload_cse_regs): Likewise.
2511         
2512 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2513
2514         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
2515         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
2516         mapping from MASK_FPU.
2517
2518 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
2519
2520         * sparc.md (call): Don't bound structure return size to 0xfff.
2521
2522 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
2523
2524         * resource.c (mark_target_live_regs): Check that the target
2525         insn wasn't created after compute_bb_for_insn.
2526
2527 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
2528
2529         * ggc-page.c (poison_pages): Don't be overzealous.
2530
2531 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
2532
2533         * alias.c: Update comments for ADDRESS.
2534         (nonlocal_reference_p): Look inside the ADDRESS to determine if
2535         it is a local memory reference.
2536
2537         * c-typeck.c (build_function_call): Check that the built-in
2538         function is of class BUILT_IN_NORMAL before trying to recongize
2539         it as BUILT_IN_ABS.
2540         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
2541         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
2542
2543 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
2544
2545         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
2546         of alloca.
2547         (pre_gcse): Likewise.
2548         (hoist_expr_reaches_here_p): Likewise.
2549         (hoist_code): Likewise.
2550         (pre_expr_reaches_here_p): Replace alloca with xcalloc.   Move core
2551         code to ...
2552         (pre_expr_reaches_here_p_work): ... here.
2553         (expr_reaches_here_p): Replace alloca with xcalloc.   Move core 
2554         code to ...
2555         (expr_reaches_here_p_work): ... here.
2556
2557 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
2558
2559         * resource.c (find_basic_block): Delete.
2560         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
2561         (init_resource_info): Call compute_bb_for_insn.
2562
2563 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
2564
2565         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
2566         with already adjacent blocks, but no fallthru.
2567         (merge_blocks_move_successor_nojumps): Simplify.
2568         (debug_flow_info): New.
2569
2570         * toplev.c (rest_of_compilation): Open jump1 dump file before
2571         jump and close after, as opposed to just using dump_rtl.
2572
2573 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2574
2575         * reload.h (earlyclobber_operand_p): Declare.
2576         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
2577         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
2578         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
2579         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
2580
2581 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
2582                           Richard Henderson  <rth@cygnus.com>
2583
2584         * emit-rtl.c (emit_block_insn_before): New.
2585         (emit_block_insn_after): New.
2586         * basic-block.h: Declare them.
2587
2588         * bitmap.h: Protect from multiple inclusion.
2589
2590         * recog.c (scratch_operand): Handle VOIDmode correctly.
2591
2592         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
2593
2594         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
2595         * function.c (assign_parms): Likewise.
2596         * global.c (global_conflicts): Clarify STACK_REGS commentary.
2597
2598         * reg-stack.c (max_uid): Remove.
2599         (blocks, block_begin, block_end, block_drops_in): Remove.
2600         (block_stack_in, block_out_reg_set, block_number): Remove.
2601         (struct block_info_def, BLOCK_INFO): New.
2602         (enum emit_where): New.
2603         (current_block): New.
2604         (BLOCK_NUM): Remove.
2605         (mark_regs_pat, record_label_references): Remove.
2606         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
2607         (nan): New.
2608         (goto_block_pat, print_blocks, dump_stack_info): Remove.
2609         (reg_to_stack): Simplified test for existance of fp code.  Use
2610         flow.c code.  Call shorten_branches after cross-jump opt.
2611         (check_asm_stack_operands): Renamed from record_asm_reg_life.
2612         Return false if the asm doesn't use stack regs.  Don't do life
2613         analysis on the asm.
2614         (emit_pop_insn): Replace function pointer arg `when' with
2615         enum `where'.  Update all callers.
2616         (change_stack): Likewise.  Update basic block end.
2617         (emit_swap_insn): Use current_block->head to limit reverse search
2618         for start of block.  Use emit_block_insn_after.
2619         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
2620         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
2621         structure assignment instead of bcopy.
2622         (print_stack): New.
2623         (convert_regs_entry, convert_regs_exit): New.
2624         (convert_regs_1, convert_regs_2): Split out from convert_regs.
2625         Work on basic blocks and the CFG.
2626         (convert_regs): Use them.
2627
2628         * i386.c (output_fix_trunc): Remove code for DImode input operand
2629         not at top-of-stack.
2630         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
2631         appropriate mode.
2632         (fix_truncdi_1): Allow any mode scratch.
2633
2634 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
2635
2636         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
2637         * linux.h, netbsd.h, vms.h: Not here.
2638
2639 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
2640
2641         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
2642         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
2643         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
2644         CONDITIONAL_REGISTER_USEAGE): Use them. 
2645         * config/mips/mips.c (mips_move_1word,mips_move_2words,
2646         gen_conditional_branch,override_options) : Use them.
2647         * config/mips/mips.md : Use them.
2648
2649 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
2650
2651         * i386.md (zero_extendqihi2): Use SImode register name with andl.
2652
2653 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
2654
2655         * integrate.c (function_cannot_inline_p): Don't allow inlining
2656         if setjmp is used.
2657
2658 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2659
2660         * c-parse.in (cast_expr): Constify.
2661
2662         * cccp.c (special_symbol): Likewise.
2663
2664         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
2665
2666         * dwarf2out.c (base_type_die): Likewise.
2667
2668         * global.c (allocno_compare): Likewise.
2669
2670         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
2671
2672         * regclass.c (fix_register): Likewise.
2673
2674         * rtl.h (fix_register): Likewise.
2675
2676         * stupid.c (stupid_reg_compare): Likewise.
2677
2678         * toplev.c (decode_f_option): Likewise.
2679
2680         * tree.c (build_complex_type): Likewise.
2681
2682 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
2683
2684         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
2685
2686 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2687
2688         * reload.c (find_reloads): Compute mode and nregs fields of all
2689         reloads.
2690         * reload1.c (calculate_needs_all_insns): Simplify a bit.
2691         (calculate_needs): Use precomputed mode/nregs values.
2692         (allocate_reload_reg): Likewise.
2693         Break out two...
2694         (failed_reload, set_reload_reg): ... new functions.
2695         (choose_reload_regs_init): New function, mostly broken out from...
2696         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
2697         Also lose one #if 0 block.
2698
2699 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
2700
2701         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name 
2702         substitution.
2703
2704 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
2705
2706         * tree.h (BLOCK_TYPE_TAGS): Remove.
2707         (BLOCK_END_NOTE): Likewise.
2708         (BLOCK_LIVE_RANGE_FLAG): Likewise.
2709         (BLOCK_LIVE_RANGE_START): Likewise.
2710         (BLOCK_LIVE_RANGE_END): Likewise.
2711         (tree_block): Remove live_range_flag, live_range_var_flag, and
2712         type_tags.  Remove end_note, live_range_start, and live_range_end.
2713         (remember_end_note): Remove prototype.
2714         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
2715         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
2716         remember_end_note.
2717         * ggc-common.c (ggc_mark_tree_children): Don't mark
2718         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
2719         * integrate.c (adjust_copied_decl_tree): Remove.
2720         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
2721         * stmt.c (last_block_end_note): Remove.
2722         (init_stmt): Don't add a GC root for it.
2723         (expand_fixup): Don't set it.
2724         (remember_end_note): Remove.
2725         (expand_end_bindings): Don't set last_block_end_note.
2726
2727 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2728
2729         * reload1.c (reload_reg_free_for_value_p): Show
2730         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
2731         reloads.
2732
2733 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
2734
2735         * expmed.c (extract_bit_field): Allow for the case of non-integer
2736         objects that are smaller than a word (like SFmode on a 64-bit
2737         machine).
2738
2739         * loop.c (basic_induction_var): A non-integer variable which is
2740         being set by a paradoxical subreg is probably not a biv.
2741
2742 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2743
2744         * prefix.c (translate_name) Check for empty prefix string.
2745
2746 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
2747
2748         * Makefile.in (CPP_CROSS_NAME): New variable.
2749         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
2750         xcpp.
2751         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
2752         names of the files to be uninstalled.
2753
2754 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
2755
2756         * collect2.c (IS_DIR_SEPARATOR): Define.
2757         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
2758
2759         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
2760         functions too.
2761
2762         * haifa-sched.c (add_dependence): Update the true dependency
2763         cache the first time we add a true dependence to the LOG_LINKS chain.
2764
2765 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
2766
2767         * fold-const.c (fold): Fix comment.
2768
2769 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2770
2771         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
2772         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
2773         dbxout_start_new_source_file, dbxout_source_file,
2774         dbxout_source_line, dbxout_finish, dbxout_type_fields,
2775         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
2776         Constify a char*.
2777         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
2778         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
2779         (dbxout_block): Initialize variable `blocknum'. 
2780
2781         * dbxout.h (dbxout_init, dbxout_finish,
2782         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
2783         dbxout_args, dbxout_source_line): Constify a char*.
2784
2785         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
2786         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
2787         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
2788         low_pc_attribute, high_pc_attribute, body_begin_attribute,
2789         body_end_attribute, comp_dir_attribute, sf_names_attribute,
2790         src_info_attribute, mac_info_attribute, producer_attribute,
2791         lookup_filename, generate_macinfo_entry, fundamental_type_code,
2792         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
2793         dwarfout_undef): Constify a char*.
2794         (add_incomplete_type, retry_incomplete_types): Add prototypes.
2795
2796         * dwarfout.h (dwarfout_define, dwarfout_undef,
2797         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
2798
2799 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
2800
2801         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
2802         (MULTILIB_ISA_DEFAULT): New.
2803         (MULTILIB_DEFAULTS): Use it.
2804         * config/mips/mips.c (): Remove the now unnecessary definition
2805         of MIPS_ISA_DEFAULT.
2806         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
2807         unnecessary definition.
2808
2809 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
2810
2811         * arm.md (pic_load_addr): Add constraints to operand 1.
2812
2813 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
2814
2815         * fixinc/genfixes:  Provide a means for specifying -D options to
2816         AutoGen
2817
2818 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
2819
2820         * arm.c (arm_override_options): Correct initialization of
2821         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
2822         arm_is_strong, and arm_is_6_or_7.
2823
2824         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
2825         (note_set_pseudo_multiple_uses): New function.
2826         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
2827         if a pseudo set in the loop exit is used elsewhere.
2828
2829 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
2830
2831         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
2832
2833 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
2834
2835         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
2836         a single load-address pattern.
2837
2838 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
2839
2840         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
2841         depending on whether or not line-number notes are present.
2842
2843 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2844
2845         * cccp.c (progname, file_buf, default_include, include_file,
2846         macrodef, definition, hashval, wchar_type, user_label_prefix,
2847         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
2848         expand_to_temp_buffer, is_system_include, base_name,
2849         absolute_filename, read_name_map, open_include_file,
2850         record_control_macro, check_precompiled, check_preconditions,
2851         pcfinclude, pass_thru_directive, create_definition,
2852         check_macro_name, comp_def_part, collect_expansion,
2853         check_assertion, read_token_list, assertion_install,
2854         assertion_lookup, eval_if_expression, conditional_skip,
2855         validate_else, skip_quoted_string, quote_string, macarg1,
2856         error_from_errno, install, lookup, hashf, dump_defn_1,
2857         perror_with_name, pfatal_with_name, main, trigraph_pcp,
2858         check_white_space, rescan, handle_directive, monthnames,
2859         special_symbol, do_include, remap_include_file, write_output,
2860         arglist, do_assert, do_unassert, do_line, do_error, do_once,
2861         do_ident, do_sccs, do_xifdef, skip_if_group,
2862         output_line_directive, macroexpand, macarg, change_newlines,
2863         initialize_builtins, make_definition): Constify a char*.
2864
2865         * pcp.h (stringdef): Likewise.
2866
2867 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
2868
2869         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
2870         not of pattern.
2871
2872 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
2873                           Richard Henderson  <rth@cygnus.com>
2874
2875         * alias.c: Include ggc.h.
2876         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
2877         (record_set): Verify enough room in reg_base_value.
2878         (init_alias_analysis): Allocate reg_base_value with xcalloc.
2879         Register it as a GC root.
2880         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
2881         * Makefile.in (alias.o): Depend on ggc.h.
2882
2883         * unroll.c (unroll_loop): Verify the insn before a barrier
2884         is a JUMP_INSN before checking JUMP_LABEL.
2885
2886 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2887
2888         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
2889         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
2890         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
2891         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
2892         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
2893         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
2894
2895 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2896
2897         * output.h (ctors_section, dtors_section, bss_section): Prototype.
2898
2899         * alpha/alpha-interix.h (text_section): Delete prototype.
2900         * alpha/elf.h (text_section): Likewise.
2901         * arm/linux-elf.h (text_section): Likewise.
2902         * arm/linux-telf.h (text_section): Likewise.
2903         * c4x/c4x.h (text_section): Likewise.
2904         * dsp16xx/dsp16xx.h (bss_section): Likewise.
2905         * elfos.h (text_section): Likewise.
2906         * i386/aix386ng.h (text_section): Likewise.
2907         * i386/i386-interix.h (text_section): Likewise.
2908         * i386/sco5.h (text_section): Likewise.
2909         * i386/svr3gas.h (text_section): Likewise.
2910         * nextstep.h (text_section): Likewise.
2911         * psos.h (text_section): Likewise.
2912         * ptx4.h (text_section): Likewise.
2913         * svr3.h (text_section): Likewise.
2914         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
2915
2916 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2917
2918         * final.c (peephole): Delete prototype.
2919
2920         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
2921         (pre_insert_copies): Remove unused variable `bb'.
2922
2923         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
2924         prototypes.
2925
2926         * output.h (peephole): Add prototype.
2927
2928 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
2929
2930         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
2931         -O0.
2932
2933 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
2934
2935         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
2936         for inlined declarations.
2937
2938 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
2939
2940         * arm.c (logical_binary_operator): New fucntion.
2941         * arm.h (logical_binary_operator): Declare it.
2942         (PREDICATE_CODES): Handle logical_binary_operator.
2943         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
2944         output constraints.  Add appropriate splitters.
2945         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
2946         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
2947         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
2948
2949 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2950
2951         * genoutput.c (struct operand_data): New elt eliminable.
2952         (output_operand_data): Write it.
2953         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
2954         (compare_operands): Take it into account.
2955         * recog.h (struct insn_operand_data): New elt eliminable.
2956         * reload1.c (check_eliminable_occurrences, elimination_effects): New
2957         functions.
2958         (old_asm_operands_vec, new_asm_operands_vec): Delete.
2959         (eliminate_regs): Move code that detects changes to elimination
2960         target regs into new function elimination_effects.
2961         Delete one #if 0 block.
2962         Abort for USE, CLOBBER, ASM_OPERANDS and SET. 
2963         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
2964         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
2965         Only call eliminate_regs for real operands of the insn, not for parts
2966         of its structure or parts matched by things like match_operator.
2967         Use elimination_effects and check_eliminable_occurrences.  Use
2968         copy_insn to duplicate the pattern when not in the final pass.
2969
2970 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
2971
2972         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
2973         and fld.
2974
2975 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
2976
2977         * fixinc/README: document the "mach" machine matching test
2978         * fixinc/fixfixes.c: Implement the #else/#endif label fix
2979         * fixinc/fixtests.c: Implement the #else/#endif label test
2980         * fixinc/inclhack.def: utilize these tests and fixes
2981         * fixinc/inclhack.sh:  regen
2982         * fixinc/fixincl.x:  regen
2983         * fixinc/fixincl.sh:  regen
2984
2985 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
2986
2987         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
2988         depend on ggc.h.
2989
2990 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
2991
2992         * gcc.1: Document exit codes.
2993
2994 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2995
2996         * calls.c: Include tm_p.h later, so everything we need is defined.
2997         * expr.c: Likewise.
2998         * function.c: Likewise.
2999
3000         * except.c: Include tm_p.h.
3001
3002         * sparc.c: Likewise.
3003         (dwarf2out_cfi_label): Don't prototype.
3004         (check_return_regs, epilogue_renumber,
3005         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
3006         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
3007         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
3008         ultra_schedule_insn): Add static prototype.
3009         (data_segment_operand, text_segment_operand): Call itself with the
3010         proper number of arguments.
3011         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
3012
3013         * sparc.h: Move all declarations to sparc-protos.h.
3014         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
3015         symbolic_operand.
3016
3017         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
3018
3019         * config/svr4.h (text_section, ctors_section, dtors_section): Add
3020         Prototypes.
3021         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
3022         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
3023         ASM_OUTPUT_ASCII): Constify a char*.
3024         
3025         * sparc-protos.h: New file for sparc prototypes.
3026         
3027 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3028
3029         * function.c (record_insns, contains): Always declare and define.
3030         (record_insns): Mark with ATTRIBUTE_UNUSED.
3031
3032 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3033
3034         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
3035         to .section when outputting a .bss section to deal with multiple
3036         .bss input sections (as happens with -fdata-sections)
3037         Also output %progbits, not @progbits so the assembler doesn't treat as
3038         a comment.
3039         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
3040
3041         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
3042         thumb parts even when building with non-thumb CPUs, by forcing
3043         thumb mode.     
3044
3045 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
3046
3047         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
3048         (movdf_const_intreg_sp64): Similarly.
3049
3050         * local-alloc.c (update_equiv_regs): Check the correct insn
3051         for pre-existing REG_EQUIV notes.
3052
3053 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
3054
3055         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
3056         block reached by a branch if we're not going to actually process
3057         this block.
3058
3059 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
3060
3061         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
3062         a local extern function declaration.
3063
3064 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
3065
3066         * i386.c (ix86_expand_prologue): Properly wrap USE around
3067         reg for CALL_INSN_FUNCTION_USAGE.
3068
3069 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
3070
3071         * config/mips/mips.md (movdf_internal1a): Allow floating-point
3072         move between GP_REGs.
3073
3074 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
3075
3076         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
3077         the mode size when finding out if an offset is legal.
3078
3079 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
3080
3081         * basic-block.h (PROP_*): Move constants from ...
3082         * flow.c: ... here.
3083         (compute_bb_for_insn): Free the array before reallocating.
3084         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
3085         (allocate_reg_life_data): Reset all reg variables collected by
3086         propagate_block.
3087         (get_block_head_tail): Don't convert from bb to block.
3088         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
3089         (find_insn_reg_weight): Take block not bb.
3090         (schedule_block): Don't set block num for moved insns.
3091         (schedule_region): Don't update_life_info or find_insn_reg_weight.
3092         (schedule_insns): Do it here instead.
3093         * combine.c (combine_instructions): Invoke compute_bb_for_insn
3094         before update_life_info.
3095         * recog.c (split_all_insns, peephole2_optimize): Update for
3096         new arg to update_life_info.
3097         * rtlanal.c (remove_note): Cope with NULL note.
3098         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
3099         if we did sched1.
3100
3101 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
3102
3103         * jump.c (jump_optimize_1): More accurately detect casesi insns.
3104
3105         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
3106         block records so that merge_blocks_nomove will clean up correctly.
3107         (split_edge): Handle casesi insns.
3108
3109         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
3110
3111 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
3112
3113         * pa.md (call, call_value): Do not emit a blockage after restoring
3114         the PIC register.
3115
3116 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
3117
3118         * c-typeck.c (c_expand_asm_operands): Fix typo.
3119
3120 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3121
3122         * arm.c (fpu_rhs_operand): Verify modes.
3123         (fpu_add_operand): Likewise.
3124         (di_operand): Likewise.
3125         (soft_df_operand): Likewise.
3126
3127 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
3128
3129         * arm.c (arm_return_in_memory): APCS rules state that the elements
3130         of a structure returned in a register must be 'integer-like'.
3131
3132 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
3133
3134         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
3135         in the source tree when the generated targets are out of date
3136         * fixinc/genfixes: Alter it to run individual fixes for make.
3137         * fixinc/README: rewrite
3138         * fixinc/inclhack.def: moved initial comments to README
3139
3140 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
3141
3142         * toplev.c (main): Do not generate an error message if an
3143         unrecognised command line switch is recognisable by another
3144         language.  If extra_warnings are enabled, then generate a
3145         warning message instead.
3146
3147 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3148
3149         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
3150         (insert_pack_attributes): Delete prototype.
3151
3152         * c-pragma.c (default_alignment): New static variable.
3153         (push_alignment): Initialize to current effective alignment.
3154         (pop_alignment): Use to set new alignment.
3155         (insert_pack_attributes): Delete function.
3156         (handle_pragma_token): Set default_alignment as well each time 
3157         a #pragma pack(<n>) is encountered.
3158
3159 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
3160
3161         * reg-stack.c (stack_result): Aggregates are not returned in
3162         stack registers.
3163
3164 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
3165
3166         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
3167
3168 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
3169
3170         * basic-block.h (set_block_num): Declare.
3171         * flow.c (update_life_info): Don't call compute_bb_for_insn
3172         or free_basic_block_vars.
3173         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
3174         (insn_orig_block): Remove.
3175         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
3176         (schedule_block): Keep BLOCK_NUM up-to-date.
3177         (schedule_insns): Use compute_bb_for_insn.
3178         * recog.c (split_all_insns): Likewise.
3179         (peephole2_optimize): Likewise.
3180
3181 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
3182
3183         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
3184         if the pic register is used.
3185
3186 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3187
3188         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
3189         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
3190         if that tests TREE_PERMANENT.
3191
3192 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
3193
3194         * cse.c (invalidate_for_call): Do not remove memory references from
3195         the table here.  It's handled elsewhere.
3196
3197         * haifa-sched.c (add_dependence): Protect references to the
3198         true dependency cache with #ifdef INSN_SCHEDULING.
3199         (remove_dependence): Similarly.
3200
3201         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
3202         to the cfg code that this is a return instruction.
3203         * mn10300.md (return_internal): Similarly.
3204
3205         * combine.c (get_last_value): If the last set of a register
3206         is after subst_low_cuid, then we can not use it to determine
3207         the register's last value.
3208
3209 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
3210
3211         * Makefile.in: Back out previous change.
3212         
3213 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
3214
3215         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
3216
3217         * haifa-sched.c (add_dependence): Only check/update the cache
3218         if it exists.
3219         (remove_dependence): Likewise.
3220         (schedule_insns): Only create the true_dependency_cache if the
3221         average number of instructions in a basic block is very large.
3222
3223 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
3224
3225         * Makefile.in (ggc-common.o): Depend on genrtl.h.
3226         (ggc-simple.o): Likewise.
3227         (ggc-page.o): Likewise.
3228
3229 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
3230
3231         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
3232         Prototype for exported functions.
3233         (pre_lcm, pre_rev_lcm): Remove prototypes.
3234         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
3235         (compute_available): Move to lcm.c, and change parameter order.
3236         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
3237         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
3238         (gcse_main): No longer call compute_preds_succs.  Rebuild the
3239         set table after reach pre pass.
3240         (pre_insert_map, pre_delete_map, edge_list): New.
3241         (alloc_pre_mem): Allocate edge vectors.
3242         (free_pre_mem): Delete edge vectors.
3243         (compute_pre_data): Call new edge based lcm routines.
3244         (process_insert_insn): New function.
3245         (insert_insn_end_bb): Use it.
3246         (pre_edge_insert): New function.
3247         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
3248         needed.
3249         (pre_insert_copies): Revamp using new edge based lcm outputs.
3250         (pre_delete): Likewise.
3251         (one_pre_gcse_pass): Insert & remove fake edges to the exit
3252         block.
3253         (compute_code_hoist_vbeinout): New new edge based routines.
3254         * lcm.c: Remove all the old LCM functions.  Replace with new ones
3255         that work with the new cfg datastructures and work with edges
3256         instead of blocks.
3257
3258 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3259
3260         * reload.h (struct reload): Add new fields "mode" and "nregs".
3261         * reload1.c: Change all occurrences of reload_mode and reload_nregs
3262         to reference the "mode" and "nregs" field within struct reload.
3263
3264 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
3265
3266         * haifa-sched.c (true_dependency_cache): New.
3267         (add_dependence): Use the true dependency cache to avoid expensive
3268         walks down the LOG_LINKS dependency list.  Add entries to the
3269         cache as necessary.
3270         (remove_dependence): Remove entries from the true dependency cache
3271         as needed.
3272         (schedule_insns): Allocate and initialize and free the true
3273         dependency cache.
3274
3275         * haifa-sched.c (schedule_insns): Do not remove inter-block
3276         dependencies anymore.
3277
3278 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
3279
3280         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
3281         * i386/t-winnt: Likewise.
3282
3283 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
3284
3285         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
3286
3287 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
3288
3289         * Makefile.in (LANGUAGES): Omit "proto".
3290         (clean): Remove stale comment about removing unprotoize.c.
3291
3292 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3293
3294         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
3295         using arithmetic on void pointers.
3296
3297 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
3298
3299         * haifa-sched.c (compute_block_forward_dependencies): Only check
3300         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
3301
3302 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
3303
3304         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
3305         (expr_equiv_p): Reject memories with different alias sets.
3306
3307 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
3308
3309         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
3310         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
3311         (f_options): Add "bounded-pointers" and "bounds-check" entries.
3312         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
3313         (lang_init): Set default for flag_bounds_check if still "unspecified".
3314
3315 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3316
3317         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
3318
3319 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3320
3321         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
3322         instructions.
3323
3324 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3325
3326         * config/c4x/c4x.md (*db_noclobber, 
3327         *decrement_and_branch_until_zero_noclobber): New patterns and 
3328         associated splitters.
3329
3330 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3331
3332         * config/c4x/c4x.md (parallel instruction patterns): Rework
3333         constraints to keep reload happy.
3334
3335 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3336
3337         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
3338         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
3339         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
3340         Add new patterns and associated post-reload splitters.
3341
3342 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3343
3344         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
3345
3346 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3347
3348         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
3349         if appropriate.
3350         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
3351
3352 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3353
3354         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
3355         memory mode.
3356
3357 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
3358
3359         * pa.c (move_operand): Rely on memory_address_p to determine the
3360         validity of non-indexed memory addresses.
3361         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
3362         operand in DFmode and SFmode when generating PA2.0 code.
3363
3364 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
3365
3366         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
3367
3368 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
3369
3370         * mips.c (function_prologue): Fix argument types.
3371         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
3372         (casesi_internal): Write to the scratch register.
3373
3374 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
3375
3376         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
3377         to U_CHAR **.
3378         (parse_charconst): Delete unnecessary cast when calling
3379         cpp_parse_escape.
3380         (cpplib.h): Kill prototype of cpp_parse_escape.
3381
3382 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
3383
3384         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
3385         * unroll.c (unroll_loop): Cast return value of alloca.
3386         * i370/i370.c: Include function.h and toplev.h.
3387         (i370_label_scan): Remove c++ commented abort.
3388         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
3389         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
3390         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
3391         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
3392
3393 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
3394
3395         * config/t-freebsd: Do not override USER_H.
3396         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
3397
3398 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
3399                           Mumit Khan  <khan@xraylith.wisc.edu>
3400
3401         * c-parse.in (component_decl): Support anonymous struct/union.
3402         (%expect): Update.
3403         * c-parse.y: Regenerate.
3404         * c-parse.c: Likewise.
3405         * objc/objc-parse.y: Likewise.
3406         * objc/objc-parse.c: Likewise.
3407         * c-decl.c (finish_struct): Don't sort the fields.
3408         (field_decl_cmp): Delete unused function.
3409
3410 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
3411
3412         * sparc.md (movsf_const_intreg): Revert last constraint change.
3413         (movdf_const_intreg_sp32): Likewise.
3414
3415 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
3416
3417         * cse.c: Include hashtab.h instead of splay-tree.h
3418         (struct cse_reg_info): No longer use variant union.  Add new
3419         field "regno".  All references changed to avoid union.
3420         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
3421         (free_cse_reg_info): Remove.
3422         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
3423         (get_cse_reg_info): Revamp to use expandable hash tables instead
3424         of splay trees.  Initialize new fields in cse_reg_info structure.
3425         (new_basic_block): Similarly.
3426
3427 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
3428
3429         * genrecog.c (message_with_line): Prototype.
3430         (validate_pattern): Pass along the set for the dest, not a flag.
3431         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
3432         Check for PC/CC0 as sources.
3433         (nodes_identical): Check for children position match before 
3434         allowing the combination.
3435
3436         * rtl.c (read_rtx): Track line number across \\\n.
3437
3438 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
3439
3440         * mips.h (SPECIAL_MODE_PREDICATES): New.
3441         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
3442         (movdi+1, movsi+1): Add output reload constraint.
3443         (casesi_internal): Likewise.  Fix commentary.
3444         (return_internal): Use pmode_register_operand.
3445
3446 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
3447
3448         * 1750a.md (movstrqi): Add missing output reload constraint.
3449         (call_value): Likewise.
3450         * a29k.md (cpxxx patterns): Add missing match_operator mode.
3451         (jmpfdec): Add missing inout reload constraint.
3452         * elxsi.md (addsi patterns): Add missing output reload constraint.
3453         (move from sp): Use @ alternates.
3454         (call_value): No constraint on output.
3455         * fr30.md (movsi_pop): Add missing output reload constraint.
3456         (movsf_constant_store): Likewise.
3457         (splits): Remove constraints.
3458         (subsi3): Add missing mode.
3459         * i370.md (cmpstrsi+1): Add missing output reload constraint.
3460         (call_value): Likewise.
3461         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
3462         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
3463         * m32r.md (movsicc_internal): Add output reload constraint.
3464         (movstrsi_internal): Add inout reload constraints.
3465         * m88k.h (reg_names): Don't declare.
3466         (SPECIAL_MODE_PREDICATES): New.
3467         * m88k.md (*): Use register_operand not reg_or_0_operand
3468         on destinations.
3469         * mn10200.h (PREDICATE_CODES): New.
3470         * ns32k.md (ffs pattern): Add output reload constraint.
3471         * pdp11.md (sob pattern): Add inout reload constraint.
3472         * sh.md (splits): Remove constraints.
3473         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
3474         * v850.md (pattern_is_ok_for_epilogue): Likewise.
3475         * vax.md (jgequ pattern): Add inout reload constraint.
3476
3477 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
3478
3479         * configure.in (djgpp): Revert previous patch.
3480         * configure: Rebuit.
3481         * config/i386/djgpp.h: Revert previous patch.
3482
3483 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
3484
3485         * fixinc/inclhack.def: Restore patch lost during last merge of
3486         "no_bogosity" branch.
3487         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
3488
3489 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3490
3491         * fixincludes: Add a HPUX 11 fix for inttypes.h.
3492         * fixinc/inclhack.def: Same.
3493         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
3494
3495 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
3496
3497         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
3498         as the base of a PLUS.
3499
3500 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3501
3502         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
3503         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
3504         
3505 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
3506
3507         * pa.md (post_stw+1): Use pmode_register_operand.
3508         (dcacheflush, icacheflush): Likewise.
3509
3510         * i386.md (movstricthi_1): Allow r/r.
3511
3512 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
3513
3514         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
3515         to (not (and (arg0) (arg1))). Similary for and.
3516
3517         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
3518         falltrought to assocate code.
3519         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
3520         bits in common.
3521
3522         * combine.c (simplify_logical): Convert XOR to IOR if operands have
3523         no bits in common; remove XOR to ROTATE conversion.
3524
3525 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3526
3527         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
3528
3529 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3530
3531         * config/c4x/c4x.c (dst_operand): New.
3532         (PREDICATE_CODES): Update.
3533         * config/c4x/c4x.h (dst_operand): Declare it.
3534         * config/c4x/c4x.md:  Define mode for each unspec usage.
3535         (move patterns):  Use dst_operand predicate instead of src_operand.
3536         (movqi_update, movqf_update): Delete.
3537
3538 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
3539
3540         * recog.c (pmode_register_operand): New.
3541         * recog.h: Declare it.
3542         * genrecog.c (pred_codes): Likewise.
3543         (special_mode_pred_table): Likewise.
3544         (validate_pattern): Don't warn no mode for address_operand.
3545
3546         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
3547         if the operand is not insn-like.
3548
3549 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
3550                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
3551
3552         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
3553
3554 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
3555
3556         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
3557         instead of general_operand in a SET_DEST.  Use const_double_operand
3558         instead of an explicit test against CONST_DOUBLE.
3559         (movsf_const_lo): Add missing register mode.
3560         (goto_handler_and_restore): Add auxiliary test for Pmode.
3561         (flush): Adjust to use address_operand.
3562         (return_sf_no_fpu): Add missing output constraint.
3563
3564 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
3565
3566         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
3567         for call return value.
3568         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
3569
3570 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
3571
3572         * toplev.c (main): Only warn about options for other languages.
3573         * collect2.c (main): Pass -w to sub-gcc.
3574
3575 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
3576
3577         * flow.c (propagate_block): Add call-clobbered registers to
3578         significant too.
3579
3580         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
3581         zapping mem_set_list.
3582         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
3583         (mark_set_1, mark_used_regs): Likewise.
3584
3585 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
3586
3587         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
3588
3589 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3590
3591         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
3592         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
3593         options. Also add a new item "C-only Warning Options" to the
3594         option summary.
3595
3596 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
3597
3598         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
3599         from multiple calls.
3600
3601 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
3602
3603         * i386.md (call value patterns): Move to the end of the file.
3604         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
3605
3606 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
3607
3608         * configure.in (djgpp configuration): Define extra_objects..
3609         * configure: Rebuilt.
3610         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
3611         (DTORS_SECTION_ASM_OP): Define.
3612         (INIT_SECTION_ASM_OP): Define.
3613         (FINI_SECTION_ASM_OP): Define.
3614         (DATA_SECTION_ASM_OP): Define.
3615         (TEXT_SECTION_ASM_OP): Define.
3616         (EH_FRAME_SECTION_ASM_OP): Define.
3617         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
3618         (STARTFILE_SPEC): Add crtbegin.o.
3619         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
3620         to here from LINK_COMMAND_SPEC.
3621         (DO_GLOBAL_CTORS_BODY): Define.
3622         (CRTSTUFF_USE_FINI_SECTION): Define
3623         (HAS_INIT_SECTION): Delete.
3624
3625 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
3626
3627         * Makefile.in (all.cross): Depend on xcpp$(exeext).
3628
3629 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
3630
3631         * pa.h (PREDICATE_CODES): New.
3632
3633         * genrecog.c (validate_pattern): Condense the destination
3634         non-lvalue message.
3635
3636 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
3637
3638         * alpha.md (call-1): Supply missing mode for operator.
3639         (*): Add missing output reload constraints.  Remove constraints
3640         from define_splits.
3641
3642         * i386.h (SPECIAL_MODE_PREDICATES): New.
3643         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
3644         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
3645         (addsi_lea_3): Add missing mode for op 3.
3646         (prologue_set_got, prologue_get_pc): Add missing modes.
3647         (*) Add missing output reload constraints.
3648
3649 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
3650
3651         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
3652         check for member bit-size overflow and use var_size if it occurs.
3653         (layout_record): Use bitsize_int() to define the type size in bits.
3654         Likewise for computation and assignment to DECL_FIELD_BITPOS.
3655         (layout_decl): Likewise when assigning to DECL_SIZE.
3656
3657 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
3658
3659         * genrecog.c (validate_pattern): Typo last change.  Verify
3660         that output operands have output reloads.
3661
3662 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
3663
3664         * genrecog.c (special_mode_pred_table): New.
3665         (NUM_SPECIAL_MODE_PREDS): New.
3666         (find_operand): New.
3667         (validate_pattern): New argument `insn'.  Warn for assignment to
3668         any predicate accepting non-lvalues.  Conditionaly warn for
3669         match_operand without a mode.  Try much harder to match source
3670         and destination modes on a set.
3671         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
3672
3673 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
3674
3675         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
3676
3677 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
3678
3679         * combine.c (simplify_logical): Recognize xor pattern that encodes
3680         rotation.
3681
3682 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3683
3684         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
3685         alignment.
3686
3687 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
3688
3689         * ggc-page.c (MAP_FAILED): Provide default.
3690
3691 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
3692
3693         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
3694         * sparc.h (PREDICATE_CODES): Update.
3695
3696 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
3697
3698         * alpha.c (some_ni_operand): New.
3699         * alpha-protos.h: Declare it.
3700         * alpha.h (PREDICATE_CODES): Update.
3701         * alpha.md (sXaddq reload insns): Use some_ni_operand 
3702         for SET_DEST instead of some_operand.
3703
3704 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
3705                           Jim Wilson  <wilson@cygnus.com>
3706
3707         * genrecog.c (maybe_both_true_2): Don't compare modes of
3708         two DT_pred tests.
3709         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
3710         after find_afterward.
3711         (debug_decision_1): Dump next and afterward codes.
3712
3713 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
3714
3715         * rtl.c (dump_and_abort): Remove.
3716         (fatal_with_file_and_line): New.
3717         (fatal_expected_char): New.
3718         (read_rtx_lineno, read_rtx_filename): New.
3719         (read_skip_spaces): Track line number.
3720         (read_name): Use fatal_with_file_and_line.
3721         (read_rtx): Use fatal_expected_char.  Track line number.
3722         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
3723
3724         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
3725         if it isn't a CODE_LABEL.
3726
3727         * genattr.c (main): Set read_rtx_filename.
3728         * genattrtab.c (main): Likewise.
3729         * gencodes.c (main): Likewise.
3730         * genconfig.c (main): Likewise.
3731         * genemit.c (main): Likewise.
3732         * genextract.c (main): Likewise.
3733         * genflags.c (main): Likewise.
3734         * genopinit.c (main): Likewise.
3735         * genoutput.c (main): Likewise.
3736         * genpeep.c (main): Likewise.
3737
3738         * genrecog.c (decision_test.u.insn): Add `lineno'.
3739         (pattern_lineno, error_count): New variables.
3740         (message_with_line): New.
3741         (add_to_sequence): Break out checking code to ...
3742         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
3743         (merge_insn): Use message_with_line.
3744         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
3745         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
3746
3747 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3748
3749         * expr.c (store_constructor): Clear union if constructor is empty.
3750
3751 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
3752
3753         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
3754         Add !endian checks.  Change %{...} to %(...).
3755
3756 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
3757
3758         * i386.md (*addsi3_cc): Renamed from addcsi3.
3759         (*addsi3_carry): Renamed from addxsi3.
3760         (*subsi3_cc): Renamed from subcsi3.
3761         (*subsi3_carry): Renamed from subxsi3.
3762         (*xorqi_cc_1): Renamed from xorcqi_1.
3763         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
3764         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
3765
3766 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
3767
3768         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
3769         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
3770
3771 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
3772
3773         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
3774         climb up the chain of insns.
3775
3776 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
3777
3778         * genrecog.c (write_subroutine): Careful for null trees.
3779         (process_tree): Don't elide empty functions.
3780
3781 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
3782
3783         * Makefile.in (genrtl.o): Depend on ggc.h.
3784         * configure.in (valloc): Probe for it.
3785         (with-gc): Use ggc-page if valloc present.
3786         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
3787         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
3788         (ggc_alloc_string): Moved from ggc-page.c.
3789         * ggc-none.c (ggc_alloc_obj): New.
3790         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
3791         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
3792         (struct globals): Likewise for dev_zero_fd.
3793         (init_ggc): Likewise for it's initialization.
3794         (ggc_allocated_p): Move careful dereference from ...
3795         (ggc_lookup_page_table): ... here.  Delete.
3796         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
3797         (alloc_anon): Use valloc if no mmap.
3798         (release_pages): Use free if using valloc.
3799         (ggc_alloc_obj): Renamed from alloc_obj.
3800         (ggc_set_mark): Renamed from mark_obj.
3801         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
3802         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
3803         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
3804         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. 
3805         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
3806         (ggc_collect): Use fp printing instead of our own rounding.
3807         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
3808         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
3809         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
3810         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
3811         (struct ggc_string, struct ggc_any): Delete.
3812         (offsetof): Provide default definition.
3813         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
3814         (PTR_KEY): New.
3815         (struct ggc_mem): New, from corpse of ggc_any.
3816         (struct ggc_status): Delete.
3817         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
3818         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
3819         (n_strings_collected, n_anys_collected): Delete.
3820         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
3821         (ggc_alloc_string, ggc_alloc): Delete.
3822         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
3823         (ggc_free_string, ggc_free_any): Delete.
3824         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
3825         (ggc_compare_addresses, ggc_mark_string): Delete.
3826         (ggc_mark_string_if_gcable, ggc_mark): Delete.
3827         (search_data): Delete.
3828         (struct globals): New.
3829         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.   
3830         (tree_insert, tree_lookup): New.
3831         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
3832         (clear_marks, sweep_objs): New.
3833         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
3834         (init_ggc): Set allocated_last_gc.
3835         (ggc_push_context): Gut.  Use G.context.
3836         (ggc_pop_context): Likewise.
3837         (ggc_pop_context_1): New.
3838         (debug_ggc_tree): New.
3839         (debug_ggc_balance, tally_leaves): New.
3840         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
3841         (ggc_mark_string_if_gcable): Remove decl.
3842         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
3843         (ggc_mark_rtvec_children): New.
3844         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
3845         (ggc_mark_if_gcable): New decl.
3846         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
3847         (ggc_alloc_tree, ggc_alloc): Likewise.
3848         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
3849         (ggc_alloc_obj): New decl.
3850         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
3851         (ggc_alloc_tree, ggc_alloc): Likewise.
3852         (ggc_set_mark): New decl.
3853         * rtl.h (struct rtx_def): Remove gc_mark.
3854         (struct rtvec_def): Likewise.
3855         * tree.h (struct tree_common): Likewise.
3856
3857 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
3858
3859         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
3860         float_format and thread_file definitions.
3861         * configure: Rebuilt.
3862
3863 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
3864
3865         * extend.texi (Function Names): Document types of function names.
3866
3867 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3868
3869         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
3870         an earlyclobbered output conflict with RELOAD_INPUT reloads.
3871
3872 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3873
3874         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
3875
3876 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3877
3878         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
3879
3880 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
3881
3882         * collect2.c (main): Do prelimnary link on AIX if rflag.
3883
3884 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3885
3886         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
3887         __CTOR_LIST__ in opposite order, which is the correct order for sorted
3888         constructors.
3889         (__do_global_dtors): similarly for __DTOR_LIST__.
3890
3891 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3892                                 Diego Novillo <dnovillo@cygnus.com>
3893
3894         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
3895         FPUL_REGS.
3896
3897 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
3898
3899         * fixincl/*: Merged "no_bogosity" branch
3900         * fixincl/fixlib.h: protect against doubly defining t_bool
3901         * fixincl/server.h: protect against doubly defining t_bool
3902
3903 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
3904
3905         * genoutput.c: Include toplev.h.
3906
3907 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
3908
3909         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3910         Undef.
3911         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
3912         * configure: Regenerate.
3913
3914 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
3915
3916         * gcse.c (delete_null_pointer_checks): Returns void.
3917
3918 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3919
3920         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
3921         * emit-rtl.c (copy_insn_1): Likewise.
3922
3923 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
3924
3925         * config/mips/mips.c (mips_build_va_list): Correct
3926         TREE_CHAIN setting when hard-float.
3927         (mips_va_start): Use corrected setting.
3928         (mips_va_arg): Likewise.  Also pass a tree to build of
3929         POSTINCREMENT_EXPR rather than a naked 'int'.
3930
3931 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
3932
3933         * ggc.h (ggc_push_context): Fix comment.
3934         (ggc_pop_context): Likewise.
3935         (mark_string_if_gcable): Likewise.
3936         * ggc-common.c (ggc_mark_rtx_children): Use
3937         ggc_mark_string_if_gcable.
3938         * ggc-page.c (ggc_lookup_page_table): New function.
3939         (ggc_allocated_p): Likewise.
3940         (mark_obj): Fix formatting.
3941         (ggc_mark_string_if_gcable): New function.
3942         * ggc-simple.c (ggc_allocated_strings): New variable.
3943         (ggc_strings_used): Likewise.
3944         (ggc_compare_addresses): New function.
3945         (ggc_pop_context): Pop the `any' memory too.
3946         (ggc_mark_string_if_gcable): New function.
3947         (ggc_collect): Initialize and tear down ggc_allocated_strings.
3948         
3949 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
3950
3951         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
3952         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
3953         * rs6000.c (expand_block_move): Match movstrsi_?reg register
3954         changes.
3955
3956 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
3957
3958         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
3959         (sched_reg_live_length, sched_reg_basic_block): Delete.
3960         (current_block_num, bb_live_regs, old_live_regs): Delete.
3961         (dead_notes, struct sometimes): Delete.
3962         (sched_note_set, birthing_insn_p): Delete.
3963         (adjust_priority): Gut useless reg lifetime code.
3964         (create_reg_dead_note, attach_deaths): Delete.
3965         (attach_deaths_insn, new_sometimes_live): Delete.
3966         (finish_sometimes_live): Delete.
3967         (find_pre_sched_live, find_post_sched_live): Delete.
3968         (update_reg_usage): Delete.
3969         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
3970         (schedule_insns): Delete reg lifetime code.
3971         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
3972         (unlink_other_notes): Adjust REG_NOTE commentary.
3973         (reemit_notes): Use REG_SAVE_NOTE.
3974         (schedule_block): Likewise.
3975         (schedule_region): Allocate bitmap of blocks in region.  Use
3976         count_or_remove_death_notes.  Use update_life_info.
3977
3978         * rtl.h (REG_SAVE_NOTE): New.
3979         * rtl.c (reg_note_name): Update.
3980         
3981 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
3982
3983         * combine.c (refresh_blocks, need_refresh): New.
3984         (combine_instructions): Allocate refresh_blocks.  Invoke
3985         update_life_info if needed.
3986         (distribute_notes): Mark refresh_blocks instead of installing
3987         USE insns.
3988         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
3989         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
3990
3991         * Makefile.in (recog.o): Depend on basic-block.h.
3992
3993 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
3994
3995         * genrecog.c (add_to_sequence): Thinko last change: delete
3996         shadowing allow_const_int variable.
3997
3998 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3999
4000         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
4001         __GNUC__ and __GNUC_MINOR__.
4002
4003         * gansidecl.h: Likewise.
4004
4005         * rtl.c: Likewise.
4006         
4007         * rtl.h: Likewise.
4008
4009         * toplev.h: Likewise.
4010
4011         * tree.c: Likewise.
4012
4013         * tree.h: Likewise.
4014
4015         * varray.c: Likewise.
4016
4017         * varray.h: Likewise.
4018
4019 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4020
4021         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
4022         use one before a jump table.
4023
4024         * rtl.def (ADDRESS): Change documentation to match reality.
4025         * md.texi: Don't document it.
4026         * gmicro.md (load address pattern): Use 'p' constraint, delete use
4027         of ADDRESS rtx.
4028
4029         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
4030
4031 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
4032
4033         * genrecog.c (add_to_sequence): Move allow_const_int test outside
4034         known predicate block; default allow_const_int true.
4035         (debug_decision_list): New.
4036
4037 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
4038
4039         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
4040
4041 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
4042
4043         * gcse.c (gcse_main): Avoid global optimizations if we have a
4044         large number of basic blocks and the ratio of edges to blocks
4045         is high.
4046         (delete_null_pointer_checks): Likewise.
4047
4048 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
4049
4050         * c-common.c (check_format_info): Warn if format string isn't a
4051         string literal.
4052
4053 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4054
4055         * configure.in (arm*-*-*): Don't let autoconf remove brackets
4056         * configure: regenerate
4057
4058 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
4059
4060         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
4061         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
4062         (peepholes): Re-enable.
4063
4064 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
4065
4066         * Makefile.in (flow.o): Depend on TREE_H.
4067         * basic-block.h (REG_SET_EQUAL_P): New.
4068         (XOR_REG_SET): New.
4069         (n_edges): Declare.
4070         (free_regset_vector): Remove declaration.
4071         (flow_delete_insn_chain): Declare.
4072         (enum update_life_extent): New.
4073         (update_life_info, count_or_remove_death_notes): Declare.
4074         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
4075         Verify register live at bb->global_live_at_start before adding USE.
4076         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
4077         (CLEAN_ALLOCA): New.
4078         (n_edges): New. 
4079         (PROP_*): New flags.
4080         (find_basic_blocks_1): Use alloc_EXPR_LIST.
4081         (clear_edges): Zero n_edges.
4082         (make_edge): Increment n_edges.
4083         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
4084         (flow_delete_insn_chain): Export.
4085         (delete_block): Decrement n_edges.
4086         (merge_blocks_nomove): Likewise.
4087         (life_analysis): Give life_analysis_1 PROP flags.
4088         (verify_wide_reg_1, verify_wide_reg): New.
4089         (verify_local_live_at_start): New.
4090         (update_life_info): Rewrite to call into propogate_block.
4091         (mark_reg): New.
4092         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
4093         always mark stack pointer.  Conditionally mark PIC register.
4094         After reload, mark call-saved registers, return regsiters.
4095         (life_analysis_1): Accept PROP flags not remove_dead_code.
4096         Call mark_regs_live_at_end before zeroing regs_ever_live.
4097         Use calculate_global_regs_live.  Copy global_live_at_end before
4098         calling final propagate_block.  Zero reg_next_use on exit.
4099         (calculate_global_regs_live): New.
4100         (allocate_bb_life_data): Don't allocate bb->local_set.
4101         (init_regset_vector, free_regset_vector): Remove.
4102         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
4103         Test flags before every operation.  Warn if prologue/epilogue insn
4104         would have been deleted.
4105         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
4106         Use alloc_EXPR_LIST.
4107         (mark_used_regs): Accept and use FLAGS, not FINAL.
4108         Remove special handling for RETURN.
4109         (try_pre_increment): Use alloc_EXPR_LIST.
4110         (dump_flow_info): Dump n_edges.
4111         (unlink_insn_chain, split_hard_reg_notes): Remove.
4112         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
4113         (find_insn_with_note, new_insn_dead_notes): Remove.
4114         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
4115         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
4116         (replace_insns): Remove.
4117         (count_or_remove_death_notes): New.
4118         (verify_flow_info): Abort on error after all checks.
4119         (remove_edge): Decrement n_edges.
4120         (remove_fake_edges): Tweek format.
4121         * haifa-sched.c (schedule_insns): Use split_all_insns.
4122         * output.h (update_life_info): Remove declaration.
4123         * recog.c (split_all_insns): From the corpse of split_block_insns,
4124         do the whole function block by block.  Use update_life_info.
4125         (recog_last_allowed_insn): New.
4126         (recog_next_insn): Mind it.
4127         (peephole2_optimize): Set it.  Walk backwards through blocks.
4128         Use update_life_info.
4129         * rtl.h (update_flow_info, replace_insns): Remove declarations.
4130         (split_all_insns): Declare.
4131         * toplev.c (rest_of_compilation): Thread prologue before flow2.
4132         Use split_all_insns.
4133
4134         * i386.md (or -1 peep2s): Disable.
4135
4136 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
4137
4138         * config/mips/mips.md (movstrsi+[123]) : Combine these into
4139         a single pattern.  Scrap the 'd' versions as unnecessary. 
4140
4141         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
4142         tablejump_mips162,tablejump_internal4): The operands to a
4143         label_ref must be VOIDmode.
4144
4145 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4146
4147         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
4148
4149 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
4150
4151         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
4152
4153 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
4154
4155         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
4156         cache every function if ggc_p.
4157
4158 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4159
4160         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
4161         instead of copy_rtx.  Accept sequences that contain asm statements.
4162         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
4163         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
4164         orig_asm_operands_vector, copy_asm_operands_vector,
4165         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
4166         variables.
4167         * rtl.h (copy_insn, copy_insn_1): Declare.
4168
4169 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4170
4171         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
4172
4173         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
4174         arguments to `current_file_function_operand'.
4175
4176         * genrecog.c: Include hard-reg-set.h and resource.h in the
4177         generated output file.
4178
4179         * real.c: Include tm_p.h.
4180
4181 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4182
4183         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
4184         output operand.
4185
4186 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
4187
4188         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
4189         before the fctiwz insn.
4190
4191 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4192                           Mark Mitchell  <mark@codesourcery.com>
4193
4194         * tree.c (make_lang_type_fn): New funtion pointer.
4195         (make_lang_type): Call it.
4196         * tree.h (make_lang_type): Declare.
4197         (make_lang_type_fn): Likewise.
4198         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
4199
4200 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
4201
4202         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
4203         make sure that HIGH instructions are copied into BASE_REGS.
4204
4205 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
4206
4207         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
4208
4209 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
4210
4211         * c-decl.c (finish_struct): Use simpler method of
4212         removing elements of a singly-linked list.
4213
4214 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
4215
4216         * alpha.md (peephole2's): Comment out peephole2's that generate
4217         buggy code.
4218
4219 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
4220
4221         * genrecog.c (add_to_sequence): Disable mode check for
4222         wildcard matches.
4223
4224 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4225
4226         * ggc-simple.c (init_ggc): Set empty_string.
4227
4228 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
4229
4230         * configure.in: Detect mmap.  Add --with-gc=foo to select
4231         garbage collector; default to page if mmap available.
4232         * Makefile.in (GGC): Substitute.
4233
4234 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
4235
4236         * c-decl.c (ggc_p): Enable.
4237
4238 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4239
4240         * flow.c (verify_flow_info): Make it extern & unconditionally define.
4241
4242 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
4243
4244         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
4245         string for little-endian-data.
4246
4247 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
4248
4249         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
4250         case somebody tries to compile --enable-checking code with gcc
4251         1.34 or such.
4252
4253 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
4254
4255         * genrecog.c (add_to_sequence): Verify operand to label_ref is
4256         VOIDmode.
4257
4258 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
4259
4260         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
4261         * jump.c (jump_optimize_1): Document why.
4262
4263 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4264
4265         * collect2.c (scan_prog_file, scan_libraries): Prototype function
4266         pointers and casts for `int_handler' and `quit_handler'.
4267
4268         * flow.c (verify_flow_info, split_hard_reg_notes,
4269         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
4270         remove_edge, remove_fake_successors): Add static prototypes.
4271         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
4272         (mark_set_1): Initialize variable `regno'.
4273         (unlink_insn_chain): Likewise for variable `curr'.
4274         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
4275
4276         * loop.c (strength_reduce): Initialize variable
4277         `unrolled_insn_copies'.
4278         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
4279         prototypes.  Change these functions to take const PTR parameters
4280         to avoid prototype conflict when used as the comparson argument
4281         for qsort.
4282         (check_dbra_loop): Initialize variable `comparison_val'.
4283
4284         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
4285         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
4286         (find_valid_class): Initialize variable `best_class'.
4287         (find_reloads): Call memcpy, not bcopy.
4288
4289         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
4290         (hard_reg_use_compare): Don't needlessly cast away const.
4291         (reload_reg_class_lower): Likewise.
4292         (choose_reload_regs): Initialize variable `regno'.
4293
4294 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
4295
4296         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
4297
4298 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
4299
4300         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
4301         ({,d}discard): Add forward declarations.  Declare parameter as
4302         unused.
4303         (main_without_main): Explicitly declare return type to be int.
4304         (memcpy): Properly declare.
4305
4306         * libgcc2.c (toplevel): If inhibit_libc is defined and not
4307         building the trampoline support, declare malloc, free, and
4308         atexit.
4309         (__clear_cache): Mark arguments as potentially unused.
4310         
4311         * frame.c (toplevel): If inhibit_libc is defined, declare
4312         malloc and free.
4313
4314 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
4315
4316         * flow.c (make_edge): Accept an optional 2D bitmap in which
4317         to cache edge existence.  Update all callers.
4318         (make_label_edge, make_eh_edge): Pass through the edge cache.
4319         (make_edges): Provide the cache.
4320
4321 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4322
4323         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
4324         a char*.
4325         (local_mbtowc): Change the type of variable `i' from int to size_t.
4326
4327         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
4328         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
4329
4330 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
4331
4332         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
4333         after other includes that define the appropriate types.  Include
4334         tm_p.h for getting user prototypes.
4335         * ggc-callbacks.c (toplevel): Ditto.
4336         * ggc-none.c (toplevel): Ditto.
4337         * gcc-page.c (toplevel): Ditto.
4338         * ggc-simple.c (toplevel): Ditto.
4339
4340 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
4341                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
4342
4343         * config/mips/mips.c (mips_move_2words): Split doubles if
4344         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
4345
4346 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
4347
4348         * genrecog.c (struct decision_test): New.
4349         (struct decision): Remove test-related members, sort the rest by size.
4350         (IS_SPLIT): Simplify.
4351         (new_decision, new_decision_test): New.
4352         (add_to_sequence): Use them.  No special handling for args of
4353         non-MATCH codes.
4354         (maybe_both_true): Renamed from not_both_true; return sense changed.
4355         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
4356         of maybe_both_true and adjusted for decision_test.
4357         (position_merit): Remove.
4358         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
4359         (merge_accept_insn): New, broken out of merge_trees.
4360         (merge_trees): Use them.  No special case for c_test; no node
4361         splitting; use test type instead of position_merit.
4362         (factor_tests): New.
4363         (simplify_tests): New.
4364         (break_out_subroutines): Don't write code now.
4365         (find_afterward): New.
4366         (write_afterward, write_switch, write_cond): New.
4367         (write_action, is_unconditional): New.
4368         (write_node): New.  Use them.
4369         (write_tree_1): Rewrite.  Use the new functions above.
4370         (write_tree): Remove afterward processing.
4371         (write_subroutine): Simplify function variant emission.
4372         (write_subroutines): New.
4373         (same_codes, clear_codes): Remove.
4374         (same_modes, clear_modes): Remove.
4375         (write_header): New, broken out of main.
4376         (make_insn_sequence): Use new_decision and new_decision_test.
4377         (process_tree): New, broken out of main.
4378         (main): Adjust for merge_trees interface change. 
4379         Don't #define operands in the output file.
4380         (record_insn_name): New, broken out of make_insn_sequence.
4381         (debug_decision_2, debug_decision_1, debug_decision_0): New.
4382         (debug_decision): New.
4383
4384 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
4385
4386         * resource.c (find_free_register): Mark class_str argument const.
4387         * resource.h: Update prototype to match.
4388
4389         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
4390         * i386.md: Give all anonymous insns names.
4391
4392 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
4393
4394         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
4395         blocks.
4396
4397 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
4398
4399         * toplev.c (dbr_sched_time): Unconditional.
4400         (peephole2_time): New.
4401         (compile_file): Add pass numbers to all of the dump file suffixes.
4402         Dump peephole2_time.  Don't dump times for non-applicable passes.
4403         (rest_of_compilation): Add pass numbers to dump file suffixes.
4404         Conditionalize calls to the scheduler.
4405         * invoke.texi: Update.
4406
4407 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
4408
4409         * flow.c (make_edges): Fix insn iteration.
4410         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
4411         (find_basic_blocks_1): Fix spelling mistake.
4412
4413 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
4414
4415         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
4416         always have side-effects.  Use memset not bzero.
4417         (make_node): Likewise.
4418
4419 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
4420
4421         * stmt.c (expand_anon_union_decl): When any of the elements of the
4422         union is addressable, so is the entire union.
4423
4424 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
4425
4426         * sbitmap.c (sbitmap_ones): Don't set too many bits.
4427
4428         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
4429         * bitmap.c (bitmap_operation): Return true iff TO changed.
4430         (bitmap_equal_p): New.
4431         (bitmap_bit_p): Tidy arithmetic.
4432         (debug_bitmap_file): Likewise.
4433
4434 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
4435
4436         * toplev.c (rest_of_compilation): Turn on cse_not_expected
4437         before cse2 instead of after.
4438
4439 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
4440
4441         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
4442         register offsets. 
4443
4444 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4445
4446         * cppinit.c (is_idchar initializer): Loosen tests to accept
4447         gcc 2.>6 and >2.
4448
4449 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
4450
4451         * mips.md: Define conditional move patterns for floating point
4452         operands and DI mode conditions.
4453
4454 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
4455
4456         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
4457         always have side-effects.
4458
4459 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
4460
4461         * mn10200.c (asm_file_start): Fix typo.
4462
4463         * cppinit.c (is_idchar initializer): Tighten tests for when
4464         to put the table into initialized memory.
4465
4466         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
4467         not an array of rtunion.
4468         * gcc-page.c (ggc_alloc_rtvec): Similarly.
4469         * gcc-simple (ggc_free_rtvec): Similarly.
4470
4471         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
4472         of rtunions.
4473
4474         * mbchar.h: Add missing #endif.
4475
4476         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
4477         (FPBIT, DPBIT): Define.
4478
4479 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4480
4481         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
4482
4483         * profile.c (instrument_arcs, output_gcov_string,
4484         tablejump_entry_p): Add static prototypes.
4485         (output_gcov_string): Constify a char*.
4486         
4487         * regmove.c (replacement_quality, fixup_match_2): Add static
4488         prototypes.
4489
4490         * resource.h (reg_dead_p): Add extern prototype.
4491
4492         * rtl.c (trim_filename): Add static prototype.
4493
4494         * scan-decls.c (skip_to_closing_brace): Likewise.
4495
4496         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
4497         (expand_end_case): Initialize variable `range'.
4498         (emit_case_nodes): Remove unused prototype `rtx_fn'.
4499
4500         * varasm.c (asm_emit_uninitialised): Add static prototype.
4501         (asm_emit_uninitialised, assemble_variable): Mark parameter with
4502         ATTRIBUTE_UNUSED.
4503
4504 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4505
4506         * cpplib.c (if_directive_nameo): Add static prototype.
4507
4508         * cse.c (cse_insn): Remove unused variable `p'.
4509
4510         * except.c (create_rethrow_ref, push_entry,
4511         receive_exception_label, new_eh_region_entry, find_func_region,
4512         clear_function_eh_region, process_nestinfo): Add static prototypes.
4513         (get_reg_for_handler): Hide definition.
4514         (process_nestinfo): Initialize variable `extra_handlers'.
4515
4516         * expr.h (expand_builtin_longjmp): Add extern prototype.
4517
4518         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
4519
4520         * function.c (prepare_function_start): Likewise.
4521         (pop_function_context_from): Mark parameter `context' with
4522         ATTRIBUTE_UNUSED.
4523         (push_temp_slots_for_block, flush_addressof): Hide definition.
4524         
4525         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
4526         solve_program_flow_graph, calculate_branch_probs,
4527         function_summary, main, fancy_abort): Add prototypes.
4528
4529         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
4530         (add_hash): Constify a char*.
4531
4532         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
4533         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
4534         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
4535
4536         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
4537
4538         * lists.c (free_list, zap_lists): Likewise.
4539
4540 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4541
4542         * alias.c (nonlocal_reference_p): Add static prototype.
4543
4544         * bitmap.c (bitmap_element_allocate): Prototype args in function
4545         pointer cast.
4546
4547         * builtins.c (stabilize_va_list): Add static prototype.
4548         (expand_builtin_va_arg): Constify a char*.
4549         
4550         * c-lex.c (getch, put_back, extend_token_buffer_to,
4551         read_line_number, token_getch, token_put_back): Add static
4552         prototypes.
4553
4554         * c-parse.gperf (hash, is_reserved_word): Likewise.
4555
4556         * cccp.c (is_dir_separator): Likewise.
4557
4558 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4559
4560         * graph.h: New file to prototype functions exported by graph.c.
4561
4562         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
4563
4564         * graph.c: Include graph.h.
4565
4566         * toplev.c: Likewise.  Remove redundant prototypes.
4567
4568 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
4569
4570         * invoke.texi: Removed duplicated description for -Q.
4571
4572 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
4573
4574         * extend.texi: Grammar fix in __extension__ text.
4575
4576 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
4577
4578         * md.texi (define_peephole2): New section.
4579
4580 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
4581
4582         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
4583         (mov $-1 to or peepholer): Enable for pentium when optimizing for
4584         speed.
4585
4586 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
4587
4588         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
4589
4590 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
4591
4592         * i386.md (ffs expander): Emit Pentium friendly code for
4593         TARGET_PENTIUM.
4594
4595 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
4596
4597         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
4598         for non-trees.
4599         (build1): Likewise.
4600         
4601 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4602
4603         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
4604
4605 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
4606
4607         * config/m68k/m68k.c (use_return_insn): Return false if the pic
4608         register is in use.
4609
4610 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4611
4612         * md.texi (No Constraints): Delete section.
4613         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
4614         * final.c (final_scan_insn): We always have register constraints.
4615         * genattrtab.c: Don't include "insn-config.h".
4616         (write_attr_case): We always have register constraints.
4617         * genconfig.c (register_constraint_flag): Delete.
4618         (walk_insn_part): Don't check whether we have register constraints.
4619         (main): Don't write out "#define REGISTER_CONSTRAINTS".
4620         * genoutput.c (have_constraints): Delete.
4621         (main): Don't set it.
4622         (output_operand_data): We always have constraints.
4623         (scan_operands): Likewise.
4624         (compare_operands): Likewise.
4625         * local-alloc.c (block_alloc): We always have constraints.
4626         (requires_inout): Always compile this function.
4627         * recog.c (extract_insn): We always have constraints.
4628         (constrain_operands, reg_fits_class_p): Always compile these
4629         functions.
4630         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
4631         fields.
4632         (struct insn_operand_data): Likewise.
4633         * regclass.c (regclass): We always have constraints.
4634         (record_reg_classes, copy_cost, record_address_regs,
4635         auto_inc_dec_reg_p): Always compile these functions.
4636         * regmove.c (regmove_optimize): We always have constraints.
4637         * reload.c (find_reloads): Likewise.
4638         * reload1.c (reload): Likewise.
4639         (reload_cse_simplify_operands): Likewise.
4640         * i860.c (output_delay_insn): Likewise.
4641
4642 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
4643
4644         * iris6.h (BUILD_VA_LIST_TYPE): Define.
4645
4646 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4647
4648         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
4649         for the va_list record.
4650
4651 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
4652
4653         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
4654         prologues.
4655
4656 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
4657
4658         * alias.c: Include insn-flags.h.
4659         * Makefile.in (alias.o): Update.
4660
4661 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
4662
4663         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
4664         to LTU and GEU.  Handle more cases using sbb.
4665
4666 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
4667
4668         * i386.md (truncatexfdf splitters): Do not use subreg.
4669         (fop XFmode patterns): Fix mode in operand testing.
4670
4671 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
4672
4673         * jump.c (jump_optimize_1): Amend last change to test only the
4674         form of the operand, not the insn.
4675
4676         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
4677         not register_operand to determine when B may need preloading.
4678
4679 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
4680
4681         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
4682         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
4683         (call-value patterns): Move to end of file.
4684         (*): Remove mode from label_ref in (pc) context.
4685         (movstrqi): Use memory not general_operand for BLKmode operands.
4686         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
4687         to register_operand operands.
4688         (peep2 patterns): Convert from commented-out peephole patterns.
4689
4690 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4691
4692         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
4693         to BUILT_IN_INIT_DWARF_REG_SIZES.
4694         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
4695         Renamed from BUILT_IN_DWARF_REG_SIZE; call
4696         expand_builtin_init_dwarf_reg_sizes.
4697         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
4698         with __builtin_init_dwarf_reg_size_table.
4699         * dwarf2out.c (struct reg_size_range): Delete.
4700         (expand_builtin_init_dwarf_reg_sizes): New function.
4701         (expand_builtin_dwarf_reg_size): Delete.
4702         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
4703         (expand_builtin_dwarf_reg_size): Don't declare.
4704         * libgcc2.c (dwarf_reg_size_table_initialized): New.
4705         (dwarf_reg_size_table): New.
4706         (init_reg_size_table): New function.
4707         (copy_reg): Use dwarf_reg_size_table.
4708         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
4709         before use.
4710
4711 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
4712
4713         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
4714         Correctly build argument list to constructor and destructor functions.
4715
4716 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
4717
4718         * c-tree.h (warn_float_equal): Declare.
4719         * c-decl.c (warn_float_equal): Define.
4720         (c_decode_option): Recognize -W[no-]float-equal.
4721         * c-typeck.c (build_binary_op): Conditionally warn
4722         about equality tests of floating point types.
4723         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
4724         * invoke.texi: Add docs for -Wfloat-equal warning.
4725
4726 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
4727
4728         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
4729         generating RTL directly.
4730         * mips.h (INIT_TARGET_OPTABS): Likewise.
4731         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
4732
4733         * expr.h (init_mov_optab): Delete declaration
4734
4735         * h8300.c (WORD_REG_USED): Update to avoid useless register
4736         saves in interrupt functions and functions which never return.
4737
4738         * cse.c (struct set): Delete inner_dest_loc field. 
4739         (cse_insn): Remove assignments to inner_dest_loc field.
4740
4741 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
4742
4743         * ggc-page.c: Don't include <unistd.h> etc taken care of
4744         by "system.h".  Include <sys/mman.h> afterward.
4745
4746 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
4747
4748         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
4749         ggc_alloc_string.
4750
4751 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
4752
4753         * xcoffout.c (xcoffout_declare_function): Add documentation.
4754         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
4755         TARGET_64BIT.  Compare constant to -1, not bit pattern.
4756         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
4757         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
4758         gen_movsi typos.
4759
4760 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
4761
4762         * dwarf2out.c (add_abstract_origin_attribute): Abort if
4763         origin_die is NULL.
4764         (gen_inlined_enumeration_type_die): Do not abort if the type has
4765         not been writeen out.
4766         (gen_inlined_structure_type_die): Do not abort if the type has
4767         not been writeen out.
4768         (gen_inlined_union_type_die): Do not abort if the type has
4769         not been writeen out.
4770         (gen_tagged_type_instantiation_die): Do not abort if the type
4771         has not been written out.
4772
4773 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4774
4775         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
4776         call it.
4777         * reg-stack.c (straighten_stack): Copy hard reg set with
4778         COPY_HARD_REG_SET.
4779
4780 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
4781
4782         * builtins.c (stabilize_va_list): Stabilize array type va_list
4783         to a pointer type, not the base record type.
4784         (expand_builtin_va_copy): Dereference the pointers explicitly;
4785         use the correct size for the copy.
4786
4787         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
4788         (rs6000_va_arg): Likewise.
4789
4790 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
4791
4792         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
4793
4794 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
4795
4796         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
4797         field.
4798         (DECL_BUILT_IN_CLASS): Adjust accordingly.
4799
4800 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
4801
4802         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
4803         (init_ggc): Use it instead of a constant.
4804         (ggc_collect): Bound allocated_last_gc by it.
4805
4806 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
4807
4808         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
4809         with va_list.
4810
4811 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
4812
4813         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
4814         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
4815         * configure:  Regen.
4816         * config/mips/openbsd.h:  New, OpenBSD little endian target.
4817         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
4818         * config/mips/xm-openbsd.h:  New, OpenBSD host.
4819
4820 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
4821
4822         * config/m68k/m68k.c (output_function_prologue,
4823         output_function_epilogue): Use
4824         current_function_uses_pic_offset_table instead of regs_ever_live
4825         to decide whether to save/restore pic register.
4826         (legitimize_pic_address): Don't modify regs_ever_live any more.
4827
4828 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
4829
4830         * function.h (struct function): Add x_dont_save_pending_sizes_p.
4831         * stor-layout.c (variable_size): Don't add sizes to the pending
4832         sizes list if x_dont_save_pending_sizes_p is set.
4833         
4834 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
4835
4836         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
4837         for symbolic_operand().
4838         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
4839
4840 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4841
4842         * combine.c (gen_rtx_combine): Add missing call to va_end().
4843
4844         * final.c (asm_fprintf): Likewise.
4845
4846         * genattrtab.c (attr_rtx): Likewise.
4847
4848 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
4849
4850         * cse.c: Update comments.
4851         (cse_insn): When converting a conditional/computed jump into
4852         an unconditional jump, always make sure a BARRIER immediately
4853         follows the converted jump.  Do not delete unreachable code.
4854         (cse_basic_block): Do not delete unreachable code.
4855         * toplev.c (rest_of_compilation): Move call to 
4856         delete_trivially_dead_insns after the conditional call to
4857         jump_optimize.
4858
4859 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4860
4861         * collect2.c (make_temp_file): Don't prototype.
4862
4863         * gcc.c (make_temp_file): Likewise.
4864
4865         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
4866
4867 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
4868
4869         * varasm.c (asm_emit_uninitialised): New function: Generate
4870         the assembler statements necessary to declare an uninitialised 
4871         variable.
4872         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
4873         variable.
4874         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
4875         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
4876         section.
4877         (assemble_variable): Use asm_emit_uninitialised to emit an
4878         uninitialised variable.
4879
4880 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
4881
4882         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
4883         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
4884         <geoffk@cygnus.com>.
4885
4886 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4887
4888         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
4889         * c-common.h (builtin_function): Don't declare.
4890
4891         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
4892         DECL_BUILT_IN.
4893         (pushdecl): Likewise.
4894         (finish_decl): Likewise.
4895         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
4896         int.  All callers changed.
4897         Set the builtin's DECL_BUILT_IN_CLASS.
4898         * tree.h (enum built_in_class): New.
4899         (enum built_in_function): Delete NOT_BUILT_IN.
4900         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
4901         in a union.
4902         (DECL_SET_FUNCTION_CODE): Likewise.
4903         (DECL_BUILT_IN_CLASS): New macro.
4904         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
4905         (struct tree_decl): Split builtin function code field into a
4906         struct.
4907         (builtin_function): Declare.
4908
4909 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
4910
4911         * optabs.c (init_traps): Fix typo in last change.
4912
4913 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
4914
4915         * toplev.c (rest_of_decl_compilation): Update comment.
4916
4917 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
4918
4919         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
4920         in .sbss if appropriate.
4921         (EXTRA_SECTION_FUNCTIONS): Add sbss.
4922         (SBSS_SECTION_ASM_OP): New macro.
4923         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
4924         (EXTRA_SECTIONS): Add in_sbss.
4925         * config/mips/mips.h: Prototype sbss_section.
4926
4927 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
4928
4929         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
4930         to disappear.
4931
4932 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
4933
4934         * optabs.c (init_traps): Register trap_rtx as a GC root.
4935
4936 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4937
4938         * config/mips/mips.c (function_arg_pass_by_reference): Define
4939         unconditionally, since it's called unconditionally.
4940
4941 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
4942
4943         * toplev.c (documented_lang_options): Add -fshort-wchar.
4944         * c-decl.c (c_decode_option): Likewise.
4945         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
4946         for wchar_t.
4947         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
4948         * gcc.c (default_compilers): If -fshort-wchar, 
4949         override __WCHAR_TYPE__.
4950         * tm.texi (C Dialect Options): Add -fshort-wchar.
4951
4952         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
4953         symbol for a variable.
4954
4955         * cpplib.h (CPP_PREPROCESSED): New macro.
4956         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
4957         we're seeing this input for a second time.
4958
4959 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
4960
4961         * emit-rtl.c (init_emit_once): Initialize modes first.
4962
4963 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
4964
4965         * config/i386/i386.c (pic_label_name): Change to char pointer.
4966         (global_offset_table): New variable.
4967         (load_pic_register): Fill global_offset_table if it hasn't
4968         already been done.  Allocate pic_label_name dynamically.
4969         * ggc.h (empty_string): New variable.
4970         * ggc-simple.c (empty_string): Likewise.
4971         (init_ggc): Allocate empty_string and add as root.
4972         * stmt.c (digit_strings): New variable.
4973         (init_stmt): Add last_block_end_note as root.  Allocate and
4974         initialize digit_strings. 
4975         (expand_asm_operands): Use empty_string instead of string
4976         constant.  Use digit_strings instead of string constants.
4977         * profile.c (init_arc_profiler): Allocate string with
4978         ggc_alloc_string instead of xmalloc.
4979         (output_func_start_profiler): Likewise.
4980         * c-typeck.c (digest_init): Check if init is error_mark_node.
4981
4982 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
4983                           Richard Henderson  <rth@cygnus.com>
4984
4985         * ggc-page.c: New file.
4986         * Makefile.in (ggc-page.o): New.
4987
4988 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
4989
4990         * invoke.texi: Document -fdelete-null-pointer-checks
4991         * toplev.c (flag_delete_null_pointer_checks): New.
4992         (f_options): Add entry for -fdelete-null-pointer-checks.
4993         (rest_of_compilation): Conditionalize null pointer check
4994         elimination on flag_delete_null_pointer_checks.
4995         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
4996
4997 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
4998
4999         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
5000         copyright notice and special exception to GPL.
5001
5002 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5003
5004         * abi64.h (mips_function_value): Add prototype arguments.
5005
5006         * mips-protos.h: New file with mips prototypes.
5007
5008         * mips.c: Include "tm_p.h".
5009         (mktemp, lookup_name): Add prototype arguments.
5010         (extern_list, string_constant, mips_fill_delay_slot,
5011         mips_output_external, mips_output_external_libcall,
5012         mips_output_filename, mips_declare_object, function_prologue,
5013         mips_expand_prologue, function_epilogue, mips16_constant,
5014         build_mips16_function_stub, mips_output_conditional_branch):
5015         Constify a char*.
5016         (mips_va_start): Remove unused variable `u'.
5017         (mips_va_arg): Cast value to unsigned when comparing against one.
5018         (trace): Delete.
5019         (save_restore_insns, mips_expand_prologue): Add missing arg in
5020         call to `large_int'.
5021
5022         * mips.h: Move prototypes to mips-protos.h.
5023         (data_section, memory_address_p, rdata_section,
5024         readonly_data_section, simple_epilogue_p, text_section): Delete
5025         prototypes delcared elsewhere.
5026         (mips_epilogue_delay_slots, print_options): Delete unused decls.
5027         (trace): Delete.
5028         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
5029
5030         * mips.md: Delete extra args in call to `mips_move_2words'.
5031
5032         * xm-iris6.h (alloca): Add prototype argument.
5033
5034         * genpeep.c: Include "tm_p.h" in generated output file.
5035
5036 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5037
5038         * basic-block.h (find_edge_index): Change parameters.
5039         * flow.c (verify_edge_list): Pass basic_block parameters to
5040         find_edge_index instead of integers.
5041
5042 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
5043
5044         * combine.c (simplify_comparison): Use an unsigned shift to adjust
5045         the constant.
5046
5047 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
5048
5049         * gcc.1: Fix a formatting error.
5050
5051 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5052
5053         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
5054         i786, mn10200, mn10300, pdp11, v850.
5055
5056 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
5057
5058         * libgcc2.c (num_digits): Add prototype with 
5059         __attribute__((const)).
5060         (__terminate): Add prototype.
5061
5062 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
5063
5064         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
5065
5066         * alpha/alpha.c (print_operand): Fix type of `code'.
5067         (alpha_output_filename): Constify.
5068         * alpha/alpha.h: Move all function declarations ...
5069         * alpha/alpha-protos.h: ... here.  New file.
5070         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
5071         (SECTION_FUNCTION_TEMPLATE): Likewise.
5072
5073 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5074
5075         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
5076         * expr.c (expand_expr): Likewise.
5077         (do_jump): Likewise.
5078         (do_store_flag): Pass ccp_store_flag to can_compare_p.
5079         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
5080         accessor macros.
5081         (enum can_compare_purpose): New.
5082         (can_compare_p): Adjust prototype.
5083         (prepare_cmp_insn, prepare_operand): Declare.
5084         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
5085         * optabs.c (cmp_available_p): Deleted.
5086         (expand_abs): Pass ccp_jump to can_compare_p.
5087         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
5088         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
5089         Call can_compare_p rather than cmp_available_p.
5090         (prepare_operand): No longer static.
5091         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
5092         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
5093         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
5094         sequence to use emit_cmp_and_jump_insns.
5095         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
5096
5097 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
5098
5099         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
5100         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
5101         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
5102         (plus (reg) (const_int 0))
5103         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
5104         
5105 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
5106
5107         * rs6000.c (expand_block_move): DImode loads and stores require
5108         word-aligned displacements.  Increment address registers with
5109         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
5110
5111 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
5112
5113         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
5114         is no name for the base type, rather than segfault.  If we are
5115         writing out a complex integer type, use DW_ATE_lo_user.
5116
5117         * expr.c (emit_move_insn_1): If we are copying a complex that fits
5118         in one word or less (complex char, complex short, or on 64 bit
5119         systems complex float) to/from a hard register, copy it through
5120         memory instead of dying in gen_{real,imag}part.  If we have a
5121         short complex type, prevent inlining since it allocates stack
5122         memory.
5123
5124         * tree.c (build_complex_type): If we are writing dwarf2 output,
5125         generate a name for complex integer types.
5126
5127 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5128
5129         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
5130         * flow.c (remove_edge): Remove extra whitespace.
5131         (remove_fake_edges): Fix comment.
5132         (add_noreturn_fake_exit_edges): Use the correct name.
5133
5134 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
5135
5136         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
5137         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
5138         (clean): Depend on INTL_CLEAN.
5139         (maintainer-clean): Adjust.
5140
5141 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5142
5143         * configure.in (AC_PREREQ): Bump to 2.13.
5144         (AC_C_STRINGIZE): Call this instead of using a custom macro.
5145
5146         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
5147
5148         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
5149
5150         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
5151
5152         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
5153         (HAVE_STRINGIZE): Define.
5154
5155 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
5156
5157         * c-parse.in: save and restore warn_pointer_arith on __extension__
5158         along with pedantic.
5159         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
5160         Set the type of extension to itype rather than $<itype>1 kludge.
5161         * extend.texi (Alternate Keywords): Adjust documentation.
5162         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
5163
5164 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
5165
5166         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
5167         most assembler templates.
5168
5169         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
5170         FP loads and stores.
5171         (following_call): Always return zero for the PA8000.
5172         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
5173         FP loads and stores.
5174         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
5175
5176         * pa.h (BRANCH_COST): Define.
5177
5178         * pa.md (return, return_internal): Use bve for PA2.0.
5179
5180         * pa.md (fused multiply): Add variants which reduce height for the
5181         fused multiply, but which still generate 2 insns.
5182         (fnegabs): Similarly.
5183
5184         * pa.md (subsi3): Turn into an expander.  Create two anonymous
5185         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
5186         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
5187
5188         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
5189         for TARGET_PA_20.
5190         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
5191         code generation.
5192         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
5193         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
5194
5195         * regclass.c (init_regs): Add "top_of_stack" as a garbage
5196         collection root.
5197
5198         * flow.c (record_active_eh_regions): Terminate loop after finding
5199         the last insn in the last basic block.
5200
5201 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5202
5203         * config/c4x/c4x.md: Delete parallel instruction peepholes.
5204
5205 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5206
5207         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
5208
5209 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5210
5211         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
5212         splitting to not use output template.
5213
5214 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5215
5216         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
5217         * config/c4x/c4x.c (c4x_va_start): New function.
5218
5219 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
5220
5221         * genrecog.c (not_both_true): Handle correctly cases when called for
5222         tests with different positions in the insn.
5223
5224 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5225
5226         * machmode.h (HOST_PTR_PRINTF): Move from here ...
5227
5228         * system.h (HOST_PTR_PRINTF): ... to here.
5229
5230         * mips-tfile.c: Don't include machmode.h.
5231
5232         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
5233         (mips-tfile.o): Don't depend on machmode.h.
5234
5235 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5236
5237         * haifa-sched.c (sched_analyze): Rename local variable `region' to
5238         avoid conflicts with typedef struct `region' at the top level scope.
5239
5240 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
5241
5242         * basic-block.h (basic_block): Add eh_beg, eh_end.
5243         * flow.c (entry_exit_blocks): Update.
5244         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
5245         Call new functions.
5246         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
5247         lists.c functions to allocate insn lists.
5248         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
5249         edge creation ...
5250         (make_eh_edge): ... here.  New.
5251         (move_stray_eh_region_notes): New.
5252         (record_active_eh_regions): New.
5253         (delete_unreachable_blocks): Split out block merging ...
5254         (try_merge_blocks): ... here.  New.
5255         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
5256         Dump debugging data.
5257         (merge_blocks_move_successor_nojumps): Likewise.
5258         (merge_blocks): Use eh_beg+eh_end to validate block movement.
5259
5260 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5261
5262         * extend.texi (Bound member functions): Document unbound pmf
5263         conversion.
5264
5265 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5266
5267         * flow.c (split_edge): Handle insertion on a fallthrough edge which
5268         has the EXIT_BLOCK as a dest.
5269
5270 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5271
5272         * flow.c (remove_edge): New function to remove an edge from the 
5273         flow graph.
5274         (remove_fake_successors): New function to remove fake successor edges.
5275         (remove_fake_edges): New function to remove all fake edges from the
5276         flow graph.
5277         (add_fake_exit_edges): New function to add fake edges from all blocks
5278         with no successors to the exit block.
5279         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
5280         prototypes for new functions.
5281
5282 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5283
5284         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
5285         Use Pmode to determine whether to output .dword or .word.
5286
5287 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
5288
5289         * tree.c (built_in_filename): New variable.
5290         (BUILT_IN_FILENAME): New macro.
5291         (init_tree_codes): Allocate built_in_filename.
5292         (make_node): Use built_in_filename instead of string constant.
5293
5294 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
5295
5296         * configure.in: Add fr30 target.
5297         * configure: Regenerate.
5298         * config/fr30: New directory.
5299         * config/fr30/crti.asm: New file.
5300         * config/fr30/fr30.c: New file.
5301         * config/fr30/crtn.asm: New file.
5302         * config/fr30/fr30.h: New file.
5303         * config/fr30/fr30.md: New file.
5304         * config/fr30/lib1funcs.asm: New file.
5305         * config/fr30/t-fr30: New file.
5306         * config/fr30/xm-fr30.h: New file.
5307
5308 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
5309
5310         * flow.c (merge_blocks_move_successor_nojumps): Delete the
5311         BARRIER at the end of the successor, not the BARRIER before
5312         the successor.
5313
5314         * pa.c (pa_add_gc_roots): Fix thinko in last change.
5315
5316 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
5317
5318         * stmt.c (any_pending_cleanups): Don't crash when 
5319         current_function->stmt is unset.
5320
5321 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5322
5323         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
5324         other initializations that may use it for relative offsets.
5325
5326 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5327
5328         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
5329         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
5330         * config/i386/sol2dbg.h: Removed.
5331         * config/i386/sol2gas.h: New file, to enable gas work-around.
5332         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
5333         Don't use sol2dbg.h.
5334         * configure: Rebuilt.
5335
5336 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
5337
5338         * invoke.texi (-fthis-is-variable): Remove documentation.
5339
5340 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
5341
5342         * basic-block.h (compute_bb_for_insn): Declare.
5343         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
5344         to use; set size of basic_block_for_insn directly.
5345         (find_basic_blocks): Update.
5346
5347 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5348
5349         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
5350
5351 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5352
5353         * crtstuff.c (ON_EXIT): Delete empty macro definition.
5354         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
5355
5356 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
5357
5358         * c-decl.c (c_decode_option): Extend comment.
5359
5360 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
5361
5362         * toplev.c (progname): Make 'const char *'
5363         (flag_print_mem): Move out of main.
5364         (version_flag): Move out of main.
5365         (filename): Move out of main.
5366         (debug_args): Remove g prefix from options.
5367         (documented_lang_options): Remove cpplib specific options.
5368         (display_help): Add g prefix to debug options.
5369         (check_lang_option): Delete this function.
5370         (decode_d_option): New function: Decode -d... option.
5371         (decode_f_option): New function: Decode -f... option.
5372         (decode_W_option): New function: Decode -W... option.
5373         (decode_g_option): New function: Decode -g... option.
5374         (independent_decode_option): New function: Decode a language
5375         independent command line option.
5376         (main): Invoke lang_decode_option and then
5377         independent_decode_option on each command line option in
5378         turn. 
5379
5380 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
5381
5382         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
5383          * fold-const.c (fold_range_test): Do not try to fold the range
5384          test if the rhs or lhs has side effects.
5385
5386         * basic-block.h (compute_flow_dominators): Declare.
5387
5388         * gcse.c (alloc_code_hoist_mem): New function.
5389         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
5390         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
5391         (hoist_code, one_code_hoisting_pass): Likewise.
5392         (gcse_main): If optimizing for size, then hoist expressions
5393         computed in multiple dominated basic blocks.
5394
5395         * gcse.c (invalid_nonnull_info): New function.
5396         (delete_null_pointer_checks): Likewise.
5397         * rtl.h (delete_null_pointer_checks): Declare.
5398         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
5399
5400         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
5401         (merge-blocks_move_successor_nojumps): Likewise.
5402         (merge_blocks): Allow merging of some blocks, even if it requires
5403         physical movement of the blocks, but not if it requires new jumps.
5404
5405         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
5406         Callers and prototype changed.
5407         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
5408
5409 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5410
5411         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
5412         -YP when both -p and -pg are present.  From i386/sol2.h.
5413
5414 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5415
5416         * Makefile.in (distclean): Delete tm_p.h.
5417         * configure.in: Create a new file, "tm_p.h", from a list in
5418         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
5419         "i386/i386-protos.h".
5420
5421         * alias.c: Include "tm_p.h".
5422         * c-typeck.c: Likewise.
5423         * calls.c: Likewise.
5424         * cse.c: Likewise.
5425         * emit-rtl.c: Likewise.
5426         * explow.c: Likewise.
5427         * expmed.c: Likewise.
5428         * expr.c: Likewise.
5429         * final.c: Likewise.
5430         * flow.c: Likewise.
5431         * fold-const.c: Likewise.
5432         * function.c: Likewise.
5433         * gcse.c: Likewise.
5434         * global.c: Likewise.
5435         * haifa-sched.c: Likewise.
5436         * integrate.c: Likewise.
5437         * jump.c: Likewise.
5438         * local-alloc.c: Likewise.
5439         * loop.c: Likewise.
5440         * optabs.c: Likewise.
5441         * recog.c: Likewise.
5442         * reg-stack.c: Likewise.
5443         * regclass.c: Likewise.
5444         * regmove.c: Likewise.
5445         * reload.c: Likewise.
5446         * reload1.c: Likewise.
5447         * reorg.c: Likewise.
5448         * resource.c: Likewise.
5449         * stmt.c: Likewise.
5450         * stor-layout.c: Likewise.
5451         * toplev.c: Likewise.
5452         * tree.c: Likewise.
5453         * unroll.c: Likewise.
5454         * genattrtab.c (main): Make generated file include "tm_p.h".
5455         * genemit.c (main): Likewise.
5456         * genoutput.c (main): Likewise.
5457         * genrecog.c (main): Likewise.
5458
5459         * i386.h: Delete all prototypes.
5460         * i386.c: Include "tm_p.h".
5461         (ix86_attr_length_default): Call constant_call_address_operand
5462         with correct number of arguments.
5463         * i386-protos.h: New file.
5464         * i386.md (unnamed patterns): Call constant_call_address_operand
5465         with correct number of arguments.
5466         (exception_receiver): Call load_pic_register with correct number
5467         of arguments.
5468
5469 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
5470
5471         * c-pragma.c (mark_align_stack): Dereference the void* properly.
5472
5473 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
5474
5475         * rtl.h (insns_safe_to_move_p): New function.
5476         * loop.c (find_and_verify_loops): Use it.
5477         * rtlanal.c (insns_safe_to_move_p): Define it.
5478
5479 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
5480
5481         * c-pragma.c: Include ggc.h.
5482         * Makefile.in (c-pragma.o): Update.
5483
5484 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5485
5486         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
5487         (LIB_SPEC): Likewise.
5488         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
5489         Reindent -YP/-p/-pg.
5490         Copied from config/sparc/sol2.h.
5491
5492 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
5493
5494         * c-pragma.c (mark_align_stack): New.
5495         (init_pragma): New.
5496         * c-pragma.h (init_pragma): Declare it.
5497         * c-lex.c (init_parse): Call it.
5498
5499 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5500
5501         * configure.in: Pick up thread library on Solaris/x86 just
5502         like on Solaris/sparc.
5503         * configure: Rebuilt.
5504
5505 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
5506
5507         * rtl.h (global_rtx_index): New enum.
5508         (global_rtl): Change to array of rtx.
5509         (pc_rtx, cc0_rtx): Redefine accordingly.
5510         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
5511         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
5512         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
5513         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
5514         (const_int_rtx): Change to array of rtx.
5515         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
5516         accordingly. 
5517         * emit-rtl.c (global_rtl): Change to array of rtx.
5518         (const_int_rtx): Change to aray of rtx.
5519         (gen_rtx_CONST_INT): Redefine accordingly.
5520         (init_emit_once): Allocate and initialize global_rtl.  Likewise
5521         for const_int_rtx.  Add both as GC roots.
5522         * genattrtab.c (global_rtl): Update declaration.
5523
5524 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
5525
5526         * Makefile (USER_H): Add iso646.h back.
5527
5528 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
5529
5530         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
5531         zapping the LOG_LINKS of sched_before_next_call.
5532
5533         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
5534         * pa.c (insn_refs_are_delayed): Renamed from
5535         insn_sets_and_refs_are_delayed.
5536
5537 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
5538
5539         * functiion.h (struct function): Add x_whole_function_mode_p.
5540         (retrofit_block): Declare.
5541         * function.c (retrofit_block): New function.
5542         (identify_blocks): Add assertions.  Allow an incomplete set of
5543         block notes if we're still generating code for the function.
5544         * integrate.c: Include loop.h.
5545         (expand_inline_function): Call find_loop_tree_blocks to map block
5546         notes to blocks when in whole-function mode.  Use retrofit_block
5547         to insert new BLOCKs for the inlined function, rather than
5548         insert_block.
5549         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
5550         * Makefile.in (integrate.o): Depend on loop.h.
5551
5552 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
5553
5554         * tree.h (warn_about_unused_variables): Declare.
5555         * stmt.c (warn_about_unused_variables): New function, split out
5556         from ...
5557         (expand_end_bindings): Here.
5558
5559 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
5560
5561         * stmt.c (preserve_subexpressions_p): Don't crash when
5562         current_function->stmt is unset.
5563
5564 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
5565
5566         * stmt.c (expand_start_bindings): Allow callers to pass a flag
5567         indicating that no NOTE_INSN_BLOCK_BEG note is required.
5568         (expand_start_target_temps): Use it.
5569         * except.c (expand_eh_region_start_for_decl): Likewise.
5570         * expr.c (expand_expr): Likewise.
5571
5572 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5573
5574         * fold-const.c (operand_equal_p): Pay attention to side effects.
5575
5576 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
5577
5578         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
5579         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
5580
5581         * tlink.c (scan_linker_output): Look for keywords before accepting
5582         a mangled name in quotes.
5583
5584 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
5585
5586         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
5587         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
5588
5589 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
5590
5591         * alpha.md: Revert Thu Nov 26 change that came in through the
5592         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
5593         Avoid earlyclobber when possible.
5594
5595 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5596
5597         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
5598
5599         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
5600         Define HAVE_ON_EXIT.
5601
5602 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5603
5604         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
5605         CTYPE_CONV in all ctype macros.
5606
5607         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
5608         from system.h.
5609
5610         * cexp.y (initialize_random_junk): Likewise.
5611
5612         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
5613
5614         * i370.c (handle_pragma): Likewise.
5615
5616         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
5617
5618         * v850.c (override_options): Likewise.
5619
5620         * doprint.c (_doprnt): Likewise.
5621
5622         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
5623         Likewise.
5624
5625         * fixinc/server.c (load_data): Likewise.
5626
5627         * fold-const.c (real_hex_to_f): Likewise.
5628
5629         * genattr.c (write_upcase, gen_attr): Likewise.
5630
5631         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
5632         write_upcase): Likewise.
5633
5634         * genemit.c (print_code): Likewise.
5635
5636         * genopinit.c (gen_insn): Likewise.
5637
5638         * genpeep.c (print_code): Likewise.
5639
5640         * genrecog.c (print_code): Likewise.
5641
5642         * optabs.c (init_libfuncs): Likewise.
5643
5644 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
5645
5646         * haifa-sched.c (sched_analyze): Keep the list of notes organized
5647         in pairs.
5648         (reemit_notes): Likewise.
5649
5650 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
5651
5652         * ggc.h (ggc_root): Move to ggc-common.c.
5653         (roots): Remove.
5654         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
5655         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
5656         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
5657         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
5658         * ggc-common.c (ggc_root): Move from ggc.h.
5659         (roots): Declare, static.
5660         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
5661         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
5662         null or check/set mark bit.
5663         (ggc_mark_roots): New.
5664         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
5665
5666 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
5667
5668         * m32r.c: Include toplev.h.
5669         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
5670         (gen_compare): Rename swap_p to must_swap to match uses.
5671         Add default abort case.
5672         (m32r_output_function_epilogue): Remove unused variables.
5673         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
5674         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
5675         define to empty parameter list.  Update all uses.
5676         (predicate decls): Use enum machine_mode not int.
5677         * m32r.md (movsi): Call abort, not fatal_insn.
5678         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
5679
5680 1999-09-14  Andrew Haley  <aph@cygnus.com>
5681
5682         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
5683         use $0 instead of 0.
5684
5685 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5686
5687         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
5688         computation out of loop over hard regs.
5689
5690 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
5691
5692         * function.c (identify_blocks): Don't shadow a variable in an 
5693         outer scope.
5694         * integrate.c (integrate_decl_tree): Don't use pushlevel,
5695         pushdecl, or poplevel to build up the new BLOCK tree.
5696         (expand_inline_function): Likewise.
5697         (integrate_parm_decls): Likewise.
5698
5699 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
5700
5701         * c-typeck.c (qualify_type): Merge qualifiers from both types.
5702
5703 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
5704
5705         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
5706         * invoke.texi: Document this change.
5707
5708 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
5709
5710         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
5711         Free the struct.
5712         (mark_emit_status): Renamed from mark_emit_state.
5713         * except.c (mark_eh_status): Renamed from mark_eh_state.
5714         Check not null before marking.
5715         (free_eh_status): New.
5716         * expr.c (mark_expr_status, free_expr_status): New.
5717         * function.c (free_machine_status): New.
5718         (free_after_parsing): New.
5719         (free_after_compilation): Move bits to free_after_parsing; call
5720         free_eh_status, free_expr_status; zero the marked members of the
5721         function state.
5722         (prepare_function_start): No can_garbage_collect. 
5723         Call init_eh_for_function.
5724         (expand_dummy_function_end): Free up current_function state.
5725         (mark_function_status): Renamed from mark_function_state.
5726         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
5727         * function.h (struct function): No can_garbage_collect.
5728         (free_machine_status, free_after_parsing): Declare.
5729         (free_eh_status, free_expr_status): Declare.
5730         * ggc.h (mark_expr_status): Declare.
5731         * stmt.c (free_stmt_status): Free the struct.
5732         (mark_stmt_status): Renamed from mark_stmt_state.
5733         (init_stmt): Don't call init_eh.
5734         (init_stmt_for_function): Don't call init_eh_for_function.
5735         * toplev.c (compile_file): Call init_eh.
5736         (rest_of_compilation): Free basic block info before ggc_collect.
5737         Call free_after_parsing; conditionally call free_after_compilation.
5738         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
5739         Check not null before marking.
5740         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
5741
5742 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
5743
5744         * c-lex.c (yylex): Initialize warn.
5745
5746 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
5747
5748         * pa.c (emit_move_sequence): Properly set the mode of the scratch
5749         register when performing secondary reloads for the SAR register.
5750
5751 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
5752
5753         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
5754         (NOTE_BLOCK): New macro.
5755         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
5756         * function.h (identify_blocks): Change prototype.
5757         * function.c (identify_blocks): Simplify.
5758         (reorder_blocks): Likewise.
5759         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
5760         NOTE_INSN_BLOCK_{BEG,END}.
5761         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
5762         the list of saved notes if the note isn't a
5763         NOTE_INSN_BLOCK_{BEG,END}.
5764         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
5765         NOTE_BLOCK_NUMBER.
5766         (reemit_notes): Adjust recreation of notes to reflect new saved
5767         note structure.
5768         * print-rtl.c (print_rtx): Print the address of the BLOCK when
5769         printing a block note.
5770         * stmt.c (block_vector): Remove.
5771         (find_loop_tree_blocks): Simplify.
5772         (unroll_block_trees): Likewise.
5773         * tree.h (reorder_block): Change prototype.
5774         
5775 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
5776
5777         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
5778         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
5779         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
5780         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
5781         (atexit, exit): Simplify.
5782         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
5783         * config/lots: Remove defns of HAVE_ATEXIT.
5784
5785 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
5786
5787         * calls.c (precompute_arguments): Fix typo in comment.
5788         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
5789         TARGET_EXPR.
5790
5791 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
5792
5793         * dsp16xx.c (override_options): Fix typos in GC root registration.
5794
5795 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
5796
5797         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
5798         from config/svr4.h.
5799         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
5800         (FUNCTION_PROFILER): Redefine appropriately for Linux.
5801         (CC1_SPEC): Likewise.
5802
5803 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5804
5805         * genattr.c (main): Add extern prototype.  Call return, not exit.
5806         * genattrtab.c (main): Likewise.
5807         * gencheck.c (main): Likewise.
5808         * gencodes.c (main): Likewise.
5809         * genconfig.c (main): Likewise.
5810         * genemit.c (main): Likewise.
5811         * genextract.c (main): Likewise.
5812         * genflags.c (main): Likewise.
5813         * gengenrtl.c (main): Likewise.
5814         * genopinit.c (main): Likewise.
5815         * genoutput.c (main): Likewise.
5816         * genpeep.c (main): Likewise.
5817         * genrecog.c (main): Likewise.
5818         
5819         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
5820         * genattrtab.c (get_insn_name): Likewise.
5821         * gencodes.c (get_insn_name): Likewise.
5822         * genconfig.c (get_insn_name): Likewise.
5823         * genemit.c (get_insn_name): Likewise.
5824         * genextract.c (get_insn_name): Likewise.
5825         * genflags.c (get_insn_name): Likewise.
5826         * genopinit.c (get_insn_name): Likewise.
5827         * genpeep.c (get_insn_name): Likewise.
5828         
5829         * gencheck.c (usage): Add static prototype.
5830         * genextract.c (print_path): Constify a char*.
5831         * genopinit.c (optabs): Likewise.
5832         * genoutput.c (operand_data, data, output_predicate_decls,
5833         compare_operands): Likewise.
5834         * genrecog.c (write_tree): Add default case in switch.
5835
5836 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5837
5838         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
5839
5840         * print-rtl.c (get_insn_name): Remove prototype.
5841
5842         * toplev.h (progname): Declare const.
5843
5844         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
5845         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
5846         dump_sched_info, dump_local_alloc, regset_release_memory,
5847         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
5848         error_with_file_and_line, error_with_decl, error_for_asm, error,
5849         fatal, warning_with_file_and_line, warning_with_decl, warning,
5850         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
5851         Remove redundant prototypes.
5852
5853         (notice, check_lang_option, report_file_and_line, vnotice,
5854         mark_file_stack): Add static prototype.
5855         (set_fatal_function): Add prototype.
5856         (vnotice, report_file_and_line, set_fatal_function,
5857         check_lang_option): Constify a char*.
5858         (main): Prototype.  Call return, not exit.
5859
5860 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5861
5862         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
5863
5864         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
5865
5866         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
5867
5868         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
5869
5870 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5871
5872         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
5873         behave as if it's zero in all cases.
5874         (expand_function_start): Adjust call to assign_parms.
5875         * tree.h (assign_parms): Adjust prototype.
5876         * objc/objc-act.c (hack_method_prototype): Adjust call to
5877         assign_parms.
5878
5879 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
5880
5881         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
5882         arg_pointer_rtx fixed if the argument pointer register is
5883         not fixed.
5884         (NONZERO_BASE_PLUS_P): Likewise.
5885
5886 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
5887
5888         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
5889         match_insn2 to match_insn.
5890         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
5891
5892 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
5893
5894         * Makefile.in (USER_H): Remove va-foo.h.
5895
5896         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
5897         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
5898         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
5899         va-spur.h,va-v850.h}: Remove.
5900
5901 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
5902
5903         * sparc/sparc.md (eligible_for_return_delay): New attribute.
5904         (in_return_delay): Use it instead of match_insn.
5905
5906 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5907
5908         * config/alpha/va_list.h (va-alpha.h): Do not include.
5909         (__gnuc_va_list): Typedef as in varargs.h.
5910
5911 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
5912
5913         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
5914         DECL_LIVE_RANGE_RTL.
5915
5916 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
5917
5918         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
5919         not NOTE_BLOCK_NUMBER.
5920         (expand_eh_region_end): Likewise.
5921         (find_exception_handler_labels): Likewise.
5922         (scan_region): Likewise.
5923         (exception_optimize): Likewise.
5924         (update_rethrow_references): Likewise.
5925         (set_insn_eh_region): Likewise.
5926         * final.c (final_scan_insn): Likewise.
5927         * flow.c (make_edges): Likewise.
5928         * integrate.c (expand_inline_function): Likewise.
5929         * print-rtl.c (print_rtx): Likewise.
5930
5931 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
5932
5933         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
5934         terms of builtin functions and types.
5935
5936         * mips.c (mips_build_va_list): New.
5937         (mips_va_start, mips_va_arg): New.
5938         * mips.h (BUILD_VA_LIST_TYPE): New.
5939         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
5940
5941         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
5942         (sh_build_va_list, sh_va_start, sh_va_arg): New.
5943         * sh.h (BUILD_VA_LIST_TYPE): New.
5944         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
5945
5946 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
5947
5948         * recog.h (struct recog_data): Make dup_num, operand_address_p,
5949         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
5950         (struct insn_data): Likewise with n_operands, n_dups, 
5951         n_alternatives, output_format.
5952         * regclass.c (scan_one_insn): Cast n_operands to int before
5953         arithmetic inside comparison.
5954
5955 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
5956
5957         * toplev.c (compile_function): Unconditionally emit nop.
5958
5959 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5960
5961         * haifa-sched.c (actual_hazard): Move declaration of variable
5962         `this_cost' into the scope where it is used.
5963
5964 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5965
5966         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
5967         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
5968         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
5969
5970         * genrecog.c (make_insn_sequence): Call memset, not bzero.
5971
5972         * jump.c (find_insert_position): Don't declare or define unless
5973         !HAVE_conditional_arithmetic.
5974         (returnjump_p_1, delete_prior_computation): Add static prototypes.
5975
5976         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
5977         
5978         * recog.c (offsettable_address_p): Prototype function pointer.
5979         (preprocess_constraints): Call memset, not bzero.
5980         
5981         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
5982         (gcc_obstack_init): Don't declare.
5983         (fix_sizetype): Add static prototype.
5984         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
5985         (tree_cons): Call memset, not bzero.
5986
5987         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
5988         definition in macro ASM_WEAKEN_LABEL.
5989         (mark_const_hash_entry): Add static prototype.
5990
5991 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5992
5993         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
5994
5995         * unroll.c (find_common_reg_term, subtract_reg_term,
5996         loop_find_equiv_value): Add static prototypes.
5997         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
5998         (copy_loop_body): Remove unreachable break statement.
5999         
6000         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
6001
6002         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
6003         
6004 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6005
6006         Undo some changes from the gcc2 merge:
6007         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
6008         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
6009         pointers.
6010
6011         Undo this change:
6012         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
6013         * emit-rtl.c (gen_lowpart_common): Disable optimization of
6014         initialized float-int union if the value is a NaN.
6015
6016 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6017
6018         * gthr-win32.h: New file.
6019
6020         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
6021         shared as a valid attribute.
6022         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
6023         * extend.texi: Document `shared' variable attribute.
6024
6025 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
6026
6027         * configure.in: Handle --enable-threads on FreeBSD.
6028         * configure: Rebuit.
6029
6030 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
6031
6032         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
6033         thread support.
6034         * configure: Rebuilt.
6035
6036 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
6037                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
6038                           Rosimildo DaSilva <rdasilva@connecttel.com>
6039
6040         * configure.in (m68k-*-rtemscoff*): Added.
6041         * configure.in (mips64orion-*-rtems*): Converted to ELF.
6042         * configure.in (sparc-*-rtemsaout*): Added as alias for old
6043         sparc-rtems configuration.
6044         * configure.in (sparc-*-rtemself*): Added.
6045         * configure.in (sparc-*-rtems*): Now ELF not a.out.
6046         * config/i386/rtems.h: Added comment.
6047         * config/sparc/rtemself.h: New file.
6048
6049         * configure.in (m68k-rtemself): Added.
6050         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
6051         and DWARF_DEBUGGING_INFO.
6052         * config/m68k/crti.s: New file.
6053         * config/m68k/crtn.s: New file.
6054         * config/m68k/t-crtstuff: New file.
6055         * config/m68k/rtemself.h: New file.
6056
6057         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
6058         global ctor/dtor and C++ exception handling.
6059         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
6060         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
6061         ENDFILE_SPEC.
6062         * config/i386/t-rtems-i386: New File.
6063
6064 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
6065
6066         * stmt.c (expand_end_case): Return right away if the case stack is
6067         empty.
6068
6069 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
6070
6071         * Makefile.in (version.c): Remove rule incorrectly brought in from
6072         the gcc2 merge.
6073
6074 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
6075
6076         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
6077         * msdos/top.sed:  Take into account a prepended $(SHELL) to
6078         move-if-change.
6079         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
6080
6081         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
6082
6083 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6084
6085         * regmove.c (fixup_match_1): Don't change an unchanging register.
6086         (stable_but_for_p): Renamed to:
6087         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
6088         Changed all callers.
6089
6090 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
6091
6092         * loop.c (strength_reduce): Don't call reg_used_between_p if the
6093         insn from BL2 is after the insn from BL.
6094
6095 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
6096
6097         * recog.h (INSN_OUTPUT_FORMAT_*): New.
6098         (struct insn_data): Merge `template' and `outfun' into `output'.
6099         Add `output_format'.
6100         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
6101         (struct data): Remove `outfun'; add `output_format'.
6102         (name_for_index): Remove declaration.
6103         (output_insn_data): Handle output formats.
6104         (process_template): Emit the bare array for @.
6105         (gen_expand, gen_split): Set output_format to NONE.
6106         * output.h (get_insn_template): Declare.
6107         * final.c (get_insn_template): New.
6108         (final_scan_insn): Use it.
6109         * toplev.c (compile_file): Likewise.
6110
6111         * c4x/c4x.c (c4x_process_after_reload): Likewise.
6112         * i860/i860.c (output_delayed_branch): Likewise.
6113         (output_delay_insn): Likewise.
6114
6115 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6116
6117         * rtl.c (obstack_alloc_rtx): Removed.
6118
6119 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
6120
6121         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
6122
6123 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
6124
6125         * i386.c (call_insn_operand): Reject const_int.
6126         (expander_call_insn_operand): Use call_insn_operand.
6127
6128 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6129
6130         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
6131
6132 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
6133
6134         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
6135         Use DImode operation.
6136
6137 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
6138
6139         * gcc.c: Include sys/resource.h.
6140         (report_times): New flag.
6141         (execute):  If report_times is set, calculate and report the
6142         CPU time consumed by each subprocess.
6143
6144         (rus, prus): New globals.
6145         (option_map): Add --time.
6146         (display_help): Document -time.
6147         (process_command): Set report_times if -time is given.
6148         Turn off -pipe if -time is given.
6149
6150         * invoke.texi: Document new option -time.
6151
6152         * configure.in: Check for getrusage.  Check if we have to
6153         prototype getrusage.
6154         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
6155         * configure: Regenerate.
6156         * config.in: Regenerate.
6157
6158 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
6159
6160         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
6161         fields.
6162
6163 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
6164
6165         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
6166         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
6167         (nan): Return _thenan_sf or _thenan_df as appropriate.
6168         (L_thenan_sf): Define _thenan_sf.
6169         (L_thenan_df): Define _thenan_df.
6170
6171         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
6172         (DPBIT_FUNCS): Add _thenan_df.
6173
6174 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
6175
6176         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
6177         TYPE_SIZE_UNIT.
6178
6179 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6180
6181         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
6182
6183         * gcc.h: New file.
6184         (lang_specific_driver): Don't take a function pointer parameter.
6185         All callers changed.
6186
6187         * gcc.c: Include gcc.h.
6188         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
6189         lang_specific_extra_outfiles, fatal): Don't declare.
6190         (multilib_defaults_raw): Constify.
6191         (read_specs): Call memset, rather than bzero.
6192         (main): Call return, not exit.
6193         (lookup_compiler): Call memcpy, not bcopy.
6194         (fatal): Make extern.
6195
6196         * cppspec.c: Include gcc.h.
6197         (lang_specific_driver): Initialize variable `quote'.  Constify a
6198         char*.  All calls to the function pointer parameter now
6199         explicitly call `fatal'.
6200
6201         * gccspec.c (lang_specific_driver): Include gcc.h.
6202
6203 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
6204
6205         * arm.c (note_invalid_constants): Use recog_data.operand_type
6206         for recog_op_type.
6207
6208 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6209
6210         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
6211         Declare.
6212
6213         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
6214         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
6215         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
6216         reload_secondary_in_reload, reload_secondary_out_reload,
6217         reload_secondary_in_icode, reload_secondary_out_icode,
6218         reload_reg_rtx, reload_when_needed): Delete declarations.
6219         (struct reload): New structure.
6220         (rld): Declare new array.
6221         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
6222         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
6223         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
6224         reload_secondary_in_reload, reload_secondary_out_reload,
6225         reload_secondary_in_icode, reload_secondary_out_icode,
6226         reload_reg_rtx, reload_when_needed): Delete definitions.
6227         (rld): New array.
6228         (whole file): Replace uses of the deleted arrays with uses of rld.
6229         * reload1.c (whole file): Replace uses of the deleted arrays with
6230         uses of rld.
6231         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
6232         explicit loops, not with bcopy.
6233
6234 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
6235
6236         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
6237         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
6238         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
6239         insn_name): Delete and consolidate into new structures.
6240         (insn_operand_predicate_fn): New.
6241         (insn_output_fn): New.
6242         (insn_gen_fn): New.
6243         (struct insn_operand_data): New.
6244         (struct insn_data): New.
6245         (insn_data): New.
6246         (OUT_FCN): Update for insn_data change.
6247         * builtins.c (expand_builtin_strlen): Likewise.
6248         (expand_builtin_memcmp): Likewise.
6249         * combine.c (make_extraction, simplify_comparison): Likewise.
6250         * cse.c (canon_reg, cse_insn): Likewise.
6251         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
6252         * expmed.c (store_bit_field, extract_bit_field): Likewise.
6253         (emit_store_flag): Likewise.
6254         * expr.c (convert_move, emit_block_move): Likewise.
6255         (clear_storage, emit_push_insn, expand_increment): Likewise.
6256         (do_store_flag): Likewise.
6257         * expr.h (GEN_FCN): Likewise.
6258         (insn_gen_function): Die.
6259         * final.c (final_scan_insn): Update for insn_data change.
6260         (output_asm_name): Likewise.
6261         * function.c (fixup_var_refs_1): Likewise.
6262         * loop.c (check_dbra_loop): Likewise.
6263         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
6264         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
6265         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
6266         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
6267         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
6268         * regmove.c (gen_add3_insn): Likewise.
6269         * reload.c (push_secondary_reload, combine_reloads): Likewise.
6270         (find_reloads, find_reloads_address_1): Likewise.
6271         (debug_reload_to_stream): Likewise.
6272         * reload1.c (emit_reload_insns, gen_reload): Likewise.
6273         * stmt.c (expand_end_case): Likewise.
6274         * toplev.c (compile_file): Likewise.
6275
6276         * c4x/c4x.c (c4x_process_after_reload): Likewise.
6277         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
6278
6279         * print-rtl.c (insn_name_ptr): Remove declaration.
6280         (get_insn_name): Declare.
6281         (print_rtx): Use it.
6282         * genoutput.c (insn_name_ptr): Remove.
6283         (next_operand_number): New.
6284         (struct operand_data): New.
6285         (null_operand, odata, odata_end): New.
6286         (struct data): Use struct operand_data.
6287         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
6288         (get_insn_name): Renamed from name_for_index.
6289         (output_prologue): Define NO_MD_PROTOTYPES.
6290         (output_predicate_decls): Break out from output_epilogue.
6291         Iterate over the operands list.
6292         (output_operand_data): Break out from output_epilogue.  Emit
6293         just the operands list.
6294         (output_insn_data): Break out from output_epilogue.  Emit just
6295         the insn data.
6296         (output_epilogue): Remove.
6297         (output_get_insn_name): New.
6298         (constraints, op_n_alternatives, predicates, address_p): Die.
6299         (modes, strict_low, seen): Die.
6300         (scan_operands): Take new param `d' instead of writing to 
6301         seven global variables.
6302         (compare_operands): New.
6303         (place_operands): New.
6304         (validate_insn_alternatives): Update for struct data change.
6305         (gen_insn): Don't zero or copy 7 global arrays.  Update for
6306         scan_operands; call place_operands.
6307         (gen_peephole, gen_expand, gen_split): Likewise.
6308         (main): Update for new output routines.
6309
6310         * genattr.c (insn_name_ptr): Remove.
6311         (get_insn_name): New function.
6312         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
6313         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
6314         * genrecog.c: Likewise.
6315
6316         * alpha.md (adddi3): Make `pattern' array static.
6317
6318 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6319
6320         * config/c4x/c4x.h (c4x_rpts_cycles_string,
6321         c4x_cpu_version_string): Constify char *.
6322         * config/c4x/c4x.c (c4x_rpts_cycles_string,
6323         c4x_cpu_version_string): Likewise.
6324
6325 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
6326
6327         * tree.c (save_tree_status): Revert 10 Sep change.
6328         (restore_tree_status): Likewise.  Call obstack_free with NULL 
6329         before freeing the obstack proper.
6330
6331 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
6332
6333         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
6334
6335         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
6336         surrounding context.
6337
6338 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
6339
6340         * tree.c (type_hash_canon): Put all types in the hash-table, when
6341         GC'ing.
6342
6343 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
6344
6345         * recog.h (struct recog_data, recog_data): New.
6346         (recog_foo variables): Kill.
6347         * recog.c (recog_operand, recog_operand_loc): Kill.
6348         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
6349         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
6350         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
6351         (recog_data): Define.
6352         (extract_insn): Update all recog_foo references to use recog_data.
6353         (preprocess_constraints, constrain_operands): Likewise.
6354         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
6355         * genattrtab.c (main): Likewise.
6356         * genextract.c (main): Likewise.
6357         * genoutput.c: Likewise.
6358         * genrecog.c (write_subroutine, main): Likewise.
6359         * local-alloc.c (block_alloc): Likewise.
6360         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
6361         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
6362         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
6363         * reload.c (find_reloads, find_reloads_toplev): Likewise.
6364         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
6365         (reload_cse_simplify_operands): Likewise.
6366
6367         * arc/arc.c (arc_final_prescan_insn): Likewise.
6368         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
6369         * h8300/h8300.c (notice_update_cc): Likewise.
6370         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
6371         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
6372         * mn10200/mn10200.c (notice_update_cc): Likewise.
6373         * mn10300/mn10300.c (notice_update_cc): Likewise.
6374         * romp/romp.c (update_cc): Likewise.
6375         * sparc/sparc.c (check_pic): Likewise.
6376         * v850/v850.c (notice_update_cc): Likewise.
6377
6378         * genemit.c (main): Don't declare recog_operand.
6379
6380 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
6381
6382         * ggc.h (rtvec_def): Forward declare.
6383         (tree_node): Likewise.
6384         (ggc_root): Define.
6385         (roots): Declare.
6386         (ggc_set_mark_rtx): Add prototype.
6387         (ggc_set_mark_rtvec): Likewise.
6388         (ggc_set_mark_tree): Likewise.
6389         * ggc-simple.c (ggc_root): Don't define.
6390         (roots): Don't declare.
6391         (ggc_mark_rtx): Remove.
6392         (ggc_mark_rtvec): Likewise.
6393         (ggc_mark_tree): Likewise.
6394         (ggc_mark_varray): Likewise.
6395         (ggc_mark_tree_hash_table_entry): Likewise.
6396         (ggc_mark_tree_hash_table): Likewise.
6397         (ggc_set_mart_rtx): New function.
6398         (ggc_set_mark_rtvec): Likewise.
6399         (ggc_set_mark_tree): Likewise.
6400         (ggc_add_root): Remove.
6401         (ggc_add_rtx_root): Likewise.
6402         (ggc_remove_tree_root): Likewise.
6403         (ggc_add_string_root): Likewise.
6404         (ggc_add_tree_varray_root): Likewise.
6405         (ggc_add_tree_hash_table_root): Likewise.
6406         (ggc_del_root): Likewise.
6407         (ggc_mark_rtx_ptr): Likewise.
6408         (ggc_mark_tree_ptr): Likewise.
6409         (ggc_mark_string_ptr): Likewise.
6410         (ggc_mark_tree_varray_ptr): Likewise.
6411         (ggc_mark_tree_hash_table_ptr): Likewise.
6412         * ggc-common.c: New file.
6413         * Makefile.in (OBJS): Add ggc-common.o.
6414         (ggc-common.o): List dependencies.
6415
6416 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
6417
6418         * cppalloc.c (xstrdup): Use memcpy.
6419         * cpperror.c (cpp_print_containing_files): Don't use
6420         cpp_notice.
6421         * cpplib.c (conditional_skip): Set temp->lineno.
6422         (do_endif): Make error message less obscure.
6423         (if_directive_name): New function.
6424         (cpp_get_token [case EOF]): Unwind the if stack and generate
6425         error messages for each unterminated conditional in this file.
6426         (parse_string):  Do not behave differently if -traditional.
6427
6428 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
6429
6430         * builtins.c (expand_builtin_va_arg): Cope with an array-type
6431         va_list decomposing to pointer-type.
6432         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
6433         (rs6000_va_arg): Likewise.
6434
6435 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
6436
6437         * except.c (start_dynamic_handler): Compute size using
6438         STACK_SAVEAREA_MODE.
6439
6440 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6441
6442         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
6443         include directory headers.  Don't define strrchr.  Don't provide
6444         my_* replacement functions.  Prefer PTR over `pointer_type'.
6445         Don't prototype system functions.  Don't redefine getopt.
6446
6447         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
6448         safe_read, safe_write, save_pointers, restore_pointers,
6449         is_id_char, in_system_include_dir, directory_specified_p,
6450         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
6451         find_corresponding_lparen, referenced_file_is_newer,
6452         save_def_or_dec, munge_compile_params, gen_aux_info_file,
6453         process_aux_info_file, identify_lineno, check_source,
6454         seek_to_line, forward_to_next_token_char, output_bytes,
6455         output_string, output_up_to, other_variable_style_function,
6456         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
6457         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
6458         find_static_definition, connect_defs_and_decs, add_local_decl,
6459         add_global_decls, needs_to_be_converted, visit_each_hash_node,
6460         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
6461         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
6462         scan_for_missed_items, edit_file, string_list_cons): Add static
6463         prototypes.
6464         (standard_exec_prefix, target_machine, target_version,
6465         default_syscalls_dir, string_list, string_list_cons, find_file,
6466         do_cleaning): Constify a char*.
6467         (safe_read, safe_write): Use PTR, not a char*.
6468         (is_id_char): Take an int, not a char.
6469         (main): Add prototype.  Call return, not exit.
6470
6471 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
6472
6473         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
6474         when comparing types.
6475
6476 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
6477
6478         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
6479         (strength_reduce): Release the varrays from the no-bivs early exit.
6480
6481         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
6482         the loop over the registers.
6483
6484         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
6485         for a new obstack.
6486         (restore_tree_status): Check that instead when freeing the obstack.
6487
6488 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
6489
6490         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
6491         as pointers.
6492
6493 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6494
6495         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
6496         operand size modifiers.
6497
6498 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6499
6500         * c-common.c (c_common_nodes_and_builtins): Don't build
6501         va_list_type_node.
6502         * c-common.h (enum c_tree_index and related accesor macros): Remove
6503         everything now declared in tree.h.
6504         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
6505         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
6506         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
6507         (error_mark_node, void_type_node, char_type_node, integer_type_node,
6508         unsigned_type_node, ptr_type_node, va_list_type_node,
6509         integer_zero_node, null_pointer_node, integer_one_node): Delete.
6510         (init_decl_processing): Call build_common_tree_nodes and
6511         build_common_tree_nodes_2 instead of building their nodes here.
6512         Don't add roots for these nodes.
6513         * stor-layout.c (size_zero_node, size_one_node): Delete.
6514         (set_sizetype): Make a new node for bitsizetype each time.
6515         * tree.c (global_trees): New variable.
6516         (init_obstacks): Add a gc root for it.
6517         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
6518         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
6519         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
6520         (build_common_tree_nodes): New function.
6521         (fix_sizetype): New function.
6522         (build_common_tree_nodes_2): New function.
6523         * tree.h (enum tree_index): New.
6524         (global_trees): Declare.
6525         Add accessor macros for all nodes now moved to global_trees.
6526         Delete their declarations.
6527
6528 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
6529
6530         * c-decl.c (finish_function): When processing a nested function,
6531         push and pop GC context around rest_of_compilation.
6532
6533 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
6534
6535         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
6536         Default ix86_arch to PROCESSOR_I386.
6537         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
6538         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
6539         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
6540         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
6541         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
6542         (EXTRA_SPECS): Remove deleted specs.
6543
6544 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
6545
6546         * function.c (assign_stack_local_1): Allocate from
6547         function->x_frame_offset, not frame_offset.
6548
6549 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
6550
6551         * ggc.h (lang_cleanup_tree): Remove.
6552         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
6553         * ggc-callbacks.c (lang_cleanup_tree): Remove.
6554
6555         * c-decl.c (finish_struct): Use ggc_alloc to allocate
6556         TYPE_LANG_SPECIFIC when garbage collecting.
6557         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
6558         (lang_cleanup_tree): Remove.
6559
6560 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
6561
6562         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
6563         * crtstuff.c: Not here.
6564         * dwarf2out.c: Or here.
6565         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
6566         info.
6567
6568 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
6569
6570         * function.h (free_after_compilation): Remove decl parameter.
6571         (free_varasm_status0: Likewise.
6572         (free_emit_status): Likewise.
6573         (free_stmt_status): Likewise.
6574         (free_after_compilation): Likewise.
6575         (init_lang_status): New variable.
6576         (free_lang_status): Likewise.
6577         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
6578         * function.c (init_lang_status): New variable.
6579         (free_lang_status): Likewise.
6580         (push_function_context_to): Don't set function::decl here.
6581         (free_after_copmilation): Make decl parameter implicit.  Call
6582         free_lang_status if defined.
6583         (prepare_function_start): Call init_lang_status if defined.
6584         (init_function_start): Set function::decl here.
6585         * profile.c (output_func_start_profiler): Don't call pushdecl
6586         until we've actually started the function.
6587         * stmt.c (free_stmt_status): Make decl parameter implicit.
6588         * toplev.c (rest_of_compilation): Don't pass decl to
6589         free_after_compilation.
6590         * varasm.c (free_varasm_status): Likewise.
6591
6592 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6593
6594         * except.c (call_get_eh_context): Add root when allocating static
6595         tree variable.
6596
6597 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
6598
6599         * arm.c: Include "ggc.h".
6600         (arm_add_gc_roots): New function.
6601         (arm_override_options): Call it.
6602         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
6603
6604         * arm.md (define_asm_attributes): Add a pool_range attribute.
6605
6606 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
6607
6608         * extend.texi (Volatiles): New node.
6609
6610 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
6611
6612         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
6613         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
6614         (struct ggc_any): Replace `mark' with `magic_mark'.
6615         (ggc_alloc_string): Use memcpy, not bcopy.
6616         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
6617         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
6618         (ggc_free_any): New.
6619         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
6620         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
6621         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
6622         Use IS_MARKED. Use ggc_free_any.
6623
6624 1999-09-09  Scott Bambrough <scottb@netwinder.org>
6625
6626         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
6627
6628 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
6629
6630         * toplev.c (main): Always init_ggc.
6631
6632 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
6633
6634         * except.c (find_all_handler_type_matches): Free the list if
6635         we found no matches.
6636
6637         * combine.c (SUBST): Break out to a real function do_SUBST.
6638         (SUBST_INT): Likewise.
6639         * gcse.c (free_pre_mem): Free `temp_bitmap'.
6640         (pre_insert): Free `inserted'.
6641         * loop.c (basic_induction_var): Always set `location'.
6642
6643         * function.c (expand_function_end): Add initial_trampoline as a root.
6644         * rtl.h (init_varasm_once): Declare.
6645         * toplev.c (compile_file): Call it.
6646         * ggc-simple.c (ggc_mark_string_ptr): New.
6647         (ggc_add_string_root): New.
6648         (ggc_collect): Disable collection avoidance temporarily.
6649         * ggc.h (ggc_add_string_root): Declare.
6650         * except.c (create_rethrow_ref): Use ggc_alloc_string.
6651         * optabs.c (init_libfuncs): Likewise.
6652         * varasm.c (named_section): Use ggc_alloc_string.
6653         (make_function_rtl): Likewise.
6654         (make_decl_rtl): Likewise.
6655         (assemble_static_space): Likewise.
6656         (assemble_trampoline_template): Likewise.
6657         (output_constant_def): Likewise.
6658         (force_const_mem): Likewise.
6659         (mark_const_hash_entry): New.
6660         (mark_pool_sym_hash_table): New.
6661         (mark_varasm_state): Use it.
6662         (init_varasm_once): New.
6663
6664         * expr.h (init_one_libfunc): Declare.
6665         * optabs.c (init_one_libfunc): New.
6666         (init_optabs): Use it.
6667         * config/gofast.h: Likewise.
6668         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
6669         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
6670
6671 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
6672
6673         * Makefile.in (cppexp.o): Depend on cpphash.h.
6674         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
6675         Include cpphash.h.
6676         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
6677         * cpplib.c (do_define): Generalise to handle poisoned definitions,
6678         redefining poisoned identifiers, etc.
6679         (do_undef): Don't allow poisoned identifiers to be undefined.
6680         (do_pragma): Add #pragma poison.
6681         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
6682
6683         * cccp.c: Add T_POISON node type.
6684         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
6685         poisoned xxx.
6686         (do_define): Generalise to handle poisoned definitions,
6687         redefining poisoned identifiers, etc.
6688         (do_undef): Don't allow poisoned identifiers to be undefined.
6689         (do_pragma): Add #pragma poison.
6690         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
6691
6692         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
6693         * c-pragma.h: Add ps_poison state.  We now always have generic
6694         pragmas.
6695
6696 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
6697
6698         * ggc.h (ggc_alloc): New function.
6699         (ggc_mark): Likewise.
6700         * ggc-simple.c (ggc_any): New structure.
6701         (ggc_status): Add anys.
6702         (n_anys_collected): New variable.
6703         (ggc_alloc): Define.
6704         (ggc_mark): Likewise.
6705         (ggc_collect): Collect the anys.
6706
6707 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6708
6709         * c-decl.c (mark_binding_level): Make static to match prototype.
6710
6711 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
6712
6713         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
6714
6715 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
6716
6717         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
6718         will use into account.  Expand the max width to 5.
6719         * rtl.c: Likewise.
6720
6721 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
6722
6723         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
6724         for the rtx length.
6725
6726 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
6727
6728         * alpha.md (call value patterns): Remove the result predicates.
6729
6730 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
6731
6732         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
6733         last change.
6734
6735 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6736
6737         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
6738         changed from extern char *, to extern PTR.  Also fix typo in
6739         NEED_DECLARATION_REALLOC test.
6740
6741         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
6742
6743 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6744
6745         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
6746         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
6747         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
6748         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
6749
6750         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
6751
6752         * cccp.c (pcfinclude): Likewise.
6753
6754         * global.c (allocno_compare): Likewise.
6755
6756         * haifa-sched.c (rank_for_schedule): Likewise.
6757
6758         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
6759
6760         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
6761
6762         * stupid.c (stupid_reg_compare): Likewise.
6763
6764         * tree.c (_obstack_allocated_p): Likewise.
6765
6766         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
6767
6768 1999-09-08  Bruce Korb  autogen@linuxbox.com
6769
6770         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
6771         why "gperf -F" fails.
6772         * gcc/cp/Makefile.in: ditto
6773         * gcc/Makefile.in: ditto
6774         * gcc/java/Makefile.in: ditto
6775
6776 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
6777
6778         * lists.c: Include ggc.h.
6779         (zap_lists): New.
6780         (init_EXPR_INSN_LIST_cache): Install it.
6781
6782         * ggc-simple.c (init_ggc): Absorb the old init.
6783         (ggc_push_context): Use xcalloc.
6784         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
6785         (ggc_collect): Add [rvts] tags to the collection stats.
6786
6787 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
6788
6789         * cccp.c (main): Fix handling of -include and -imacros options.
6790
6791 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
6792
6793         * cpplib.c (cpp_push_buffer): Fix order of arguments.
6794
6795 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
6796
6797         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
6798         genrtl.c.
6799
6800 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
6801
6802         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
6803         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
6804         and SET_DEST. Update comment.
6805
6806 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6807
6808         * config/c4x/c4x.c: Include ggc.h.
6809         (c4x_add_gc_roots): New function.
6810         (c4x_override_options): Call c4x_add_gc_roots.
6811
6812 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
6813
6814         * defaults.h (TARGET_ESC): Move ...
6815         * system.h: ... here, where Linas had it in the first place.  Silly me.
6816
6817 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
6818
6819         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
6820         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
6821         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
6822         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
6823         * defaults.h (TARGET_ESC): Add default.
6824
6825 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
6826
6827         * configure.in: add i370-*-openedition, i370-*-mvs and
6828         i370-*-linux targets
6829
6830 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
6831
6832         * dsp16xxx.c: Include ggc.h
6833         (override_options): Mark GC roots.
6834         * mn10200.c: Include ggc.h.
6835         (asm_file_start): Mark GC roots.
6836         * tahoe.c: Include ggc.h.
6837         (extensible_operand): Mark GC roots.
6838
6839 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
6840
6841         * README: Add section discussing status of ELF ABI.
6842         * i370.c: Fix misc spelling mistakes.
6843         (i370_label_scan): Updated notes, exception handling.
6844         (i370_function_prolog): Simplify ELF stack handling.
6845         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
6846         (STACK_GROWS_DOWNWARD): ELF stack grows down.
6847         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
6848         * i370.md: (movdi): Add notes.
6849         (floatsidf2): Use stack not rtca for scratch float area.
6850         (iorsi3): Correct operand constraints.
6851         * x-oe: Restore TAROUTOPTS which are used by pax.
6852
6853 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
6854
6855         * rs6000.c: Include ggc.h.
6856         (rs6000_add_gc_roots): New function.
6857         (override_options): Call it.
6858
6859 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
6860
6861         * alpha.h (alpha_compare): New.
6862         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
6863         * alpha.c: Likewise for the definitions.
6864         (alpha_emit_conditional_branch): Update for alpha_compare.
6865         (alpha_emit_conditional_move): Likewise.
6866         * alpha.md (cmpdf, cmpdi): Likewise.
6867         (setcc patterns): Likewise.  Zero alpha_compare after use.
6868         (sne): Optimize (x != 0) into (0U < x).
6869
6870 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
6871
6872         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
6873         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
6874         (INIT_EXPANDERS): Remove.
6875         * alpha.c: Include ggc.h.
6876         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
6877         (alpha_init_machine_status, alpha_mark_machine_status): New.
6878         (override_options): Install them.
6879         (struct machine_function): Moved to alpha.h.
6880         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
6881         (alpha_init_expanders): Remove.
6882         (alpha_return_addr): Adjust to use current_function->machine.
6883         (alpha_ra_ever_killed): Likewise.
6884         (alpha_expand_epilogue): Likewise.
6885         * alpha.md (eh_epilogue): Likewise.
6886
6887 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
6888                           Melissa O'Neill  <oneill@cs.sfu.ca>
6889                           Geoffrey Keating  <geoffk@cygnus.com>
6890
6891         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
6892         call-used registers (call-saved registers must still be contiguous
6893         and end with r31, of course).
6894
6895 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
6896
6897         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
6898         (self_promoting_type_p): Delete.
6899         (self_promoting_args_p): Move ...
6900         * c-common.c: ... here.
6901         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
6902         (simple_type_promotes_to): New.
6903         * builtins.c (lang_type_promotes_to): New.
6904         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
6905         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
6906         * c-common.h: ... here.
6907         (self_promoting_args_p, simple_type_promotes_to): Declare.
6908         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
6909         (grokdeclarator): Likewise.
6910         * tree.h (lang_type_promotes_to): Declare.
6911
6912 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
6913
6914         Add some machine-dependent GC roots.
6915         * sparc.c: Include ggc.h.
6916         (sparc_add_gc_roots): New function.
6917         (mark_ultrasparc_pipeline_state): Likewise.
6918         (override_options): Call sparc_add_gc_roots.
6919         * pa.c: Include ggc.h.
6920         (pa_add_gc_roots): New function.
6921         (mark_deferred_plabels): Likewise.
6922         (override_options): Call pa_add_gc_roots.
6923         * mips.c: Include ggc.h.
6924         (mips_add_gc_roots): New function.
6925         (override_options): Use it.
6926
6927 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6928
6929         * cpperror.c (cpp_file_line_for_message): Constify a char*.
6930
6931         * cppexp.c (parse_number, parse_charconst, cpp_lex,
6932         cpp_parse_expr): Add static prototypes.
6933         (parse_charconst): Don't cast away const-ness.
6934         (token): Constify a char*.
6935
6936         * cppfiles.c (file_name_list, include_hash, find_include_file,
6937         finclude, initialize_input_buffer): Constify a char*.
6938         (file_cleanup, find_position): Add static prototypes.
6939
6940         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
6941         collect_expansion): Add static prototypes.
6942         (cpp_install, create_definition, monthnames): Constify a char*.
6943
6944         * cpphash.h (cpp_install): Likewise.
6945
6946         * cppinit.c (known_suffixes, default_include,
6947         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
6948         (base_name, dump_special_to_buffer, initialize_dependency_output):
6949         Add static prototypes.
6950
6951         * cpplib.c (my_strerror): Constify a char*.
6952         (null_underflow, null_cleanup, skip_comment, copy_comment,
6953         copy_rest_of_line, handle_directive, pass_thru_directive,
6954         get_directive_token, read_line_number, cpp_print_file_and_line,
6955         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
6956         v_cpp_warning_with_line, detect_if_not_defined,
6957         consider_directive_while_skipping): Add static prototypes.
6958         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
6959         cpp_pedwarn_with_file_and_line): Constify a char*.
6960
6961         * cpplib.h (cpp_options, include_hash, progname, definition,
6962         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
6963         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
6964         find_include_file, deps_output, include_hash): Constify a char*.
6965
6966         * cppmain.c (progname): Constify.
6967         (main): Add prototype.  Use return, not exit.
6968
6969         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
6970         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
6971         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
6972         check_protection): Add static prototype.
6973         (xfree): Remove.
6974         (progname, recognized_macrom, recognized_extern): Constify a char*.
6975         (main): Add prototype.
6976
6977         * gen-protos.c (progname): Constify a char*.
6978
6979 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
6980
6981         * emit-rtl.c (free_emit_status): Take decl as a parameter.
6982         (init_emit_once): Add more GC roots.
6983         * except.c (mark_func_eh_entry): New function.
6984         (mark_eh_node): Mark false_label and rethrow_label.
6985         (init_eh): Add more GC roots.
6986         * function.c (free_after_compilation): Take decl as a paramter.
6987         Call free_stmt_status.
6988         (mark_function_state): Don't assume x_parm_reg_stack_loc is
6989         non-NULL.
6990         * function.h (free_after_compilation): Change prototype.
6991         (free_varasm_status): Likewise.
6992         (free_emit_status): Likewise.
6993         (free_stmt_status): New function.
6994         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
6995         Remove, replacing with ...
6996         (ggc_status): New structure.
6997         (ggc_chain): New variable.
6998         (init_gcc): Define.
6999         (ggc_push_context): New function.
7000         (ggc_pop_context): Likewise.
7001         (ggc_alloc_rtx): Adjust for use of ggc_chain.
7002         (ggc_alloc_rtvec): Likewise.
7003         (ggc_alloc_tree): Likewise.
7004         (ggc_alloc_string): Likewise.
7005         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
7006         (ggc_mark_tree): Give language-dependent code a chance to mark
7007         `x' nodes.
7008         (ggc_mark_tree_varray): Handle empty arrays.
7009         (ggc_collect): Adjust for use of ggc_chain.  Clear
7010         bytes_alloced_since_last_gc.
7011         * ggc.h (ggc_pop_context): New function.
7012         (ggc_push_context): Likewise.
7013         * print-tree.c (print_node): Don't print obstacks when GC'ing.
7014         * stmt.c (free_stmt_status): New function.
7015         (init_stmt_for_function): Clear last_expr_value.
7016         * toplev.c (rest_of_compilation): Always call free_after_compilation.
7017         Conditionalize call to ggc_collect.
7018         (main): Call init_ggc.
7019         * tree.c (push_obstacks): Do the push, even when GC'ing.
7020         (push_obstacks_nochange): Likewise.
7021         (pop_obstacks): Liekwise.
7022         * varasm.c (free_varasm_status): Take decl as a parameter.
7023
7024 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7025
7026         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
7027         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
7028         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
7029         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
7030
7031 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
7032
7033         * pa/x-pa-mpeix: New file for the MPE port.
7034
7035         * pa/quadlib.asm: New file for long double support.
7036
7037         * configure.in: Add hppa1.0-*-mpeix for MPE port.
7038         * configure: Rebuilt.
7039
7040 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
7041
7042         * final.c (shorten_branches): Fix last change.
7043
7044 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
7045
7046         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
7047
7048 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
7049
7050         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
7051         details.
7052
7053 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7054
7055         * c-aux-info.c (concat): Don't define.
7056
7057         * cccp.c (my_strerror): Likewise.  All callers changed to use
7058         xstrerror instead.
7059         (do_include): Call xstrdup, not xmalloc/strcpy.
7060         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
7061         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
7062
7063         * collect2.c (my_strsignal): Likewise.  All callers changed to use
7064         strsignal instead.
7065         (locatelib): Call xstrdup, not xmalloc/strcpy.
7066
7067         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
7068
7069         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
7070
7071         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
7072
7073         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
7074
7075         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
7076
7077         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
7078
7079         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
7080         malloc/realloc.
7081         (find_all_handler_type_matches): Likewise.  Don't check return
7082         value.
7083         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
7084         xmalloc, not malloc.
7085         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
7086
7087         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
7088         (init_spec): Call xcalloc, not xmalloc/bzero.
7089         (set_spec): Call xstrdup, not save_string.
7090         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
7091         (find_a_file): Call xstrdup, not xmalloc/strcpy.
7092         (process_command): Call xstrdup, not save_string.
7093         (main): Call xcalloc, not xmalloc/bzero.
7094
7095         * gcov.c (xmalloc): Don't define.
7096         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
7097         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
7098         (output_data): Call xcalloc, not xmalloc/bzero.
7099
7100         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
7101
7102         * mips-tdump.c (xmalloc): Don't define.
7103         (print_symbol): Call xmalloc, not malloc.
7104         (read_tfile): Call xcalloc, not calloc.
7105
7106         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
7107         Don't define.  All callers of xfree/my_strsignal changed to use
7108         free/strsignal instead.
7109         (allocate_cluster): Call xcalloc, not calloc.
7110
7111         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
7112         Fix memory leak, free allocated memory.
7113
7114         * prefix.c (translate_name): Call xstrdup, not save_string.
7115         (update_path): Likewise.
7116
7117         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
7118
7119         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
7120         Don't define.  Callers of xfree/savestring2 changed to use
7121         free/concat instead.
7122
7123         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
7124         (init_elim_table): Likewise.
7125
7126         * resource.c (init_resource_info): Likewise.
7127
7128         * stupid.c (stupid_life_analysis): Likewise.
7129
7130         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
7131         (open_dump_file): Call concat, not xmalloc/strcpy/...
7132         (clean_dump_file): Likewise.
7133         (compile_file): Call xstrdup, not xmalloc/strcpy.
7134
7135 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
7136
7137         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
7138         * v850.c (v850_va_arg): New.
7139
7140 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7141
7142         * haifa-sched.c: Tidy comments.
7143
7144 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7145
7146         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
7147         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
7148         $(out_object_file)): Depend on ggc.h.
7149         * c-common.c: Include "ggc.h".
7150         (combine_strings): If doing GC, use ggc_alloc_string.
7151         * c-decl.c: Include "ggc.h".
7152         (ggc_p): Define with value 0.
7153         (mark_binding_level): New function.
7154         (init_decl_processing): Add GC roots.
7155         (mark_c_function_context): New function.
7156         (lang_mark_false_label_stack): New function.
7157         (lang_mark_tree): New function.
7158         (lang_cleanup_tree): New function.
7159         * c-lang.c: Include "ggc.h".
7160         (lang_init): Call c_parse_init.
7161         * c-lex.c: Include "ggc.h".
7162         (check_linenum): If doing GC, don't copy filenames to permanent
7163         obstack.
7164         * c-parse.in: Include "ggc.h".
7165         (c_parse_init): New function.
7166         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
7167         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
7168
7169         * except.c (mark_eh_state): Mark more state.
7170         * function.c (mark_function_state): Likewise.
7171         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
7172         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
7173         * toplev.c (mark_file_stack): New function.
7174         (compile_file): If doing GC, use ggc_alloc_string on input filename.
7175         (main): Add root for input_file_stack.
7176
7177         * i386.c: Include "ggc.h".
7178         (ix86_mark_machine_status): New function.
7179         (override_options): Set mark_machine_status.
7180
7181 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7182
7183         * tree.c (copy_node): Copy node contents also if doing GC.
7184
7185 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
7186
7187         * collect2.c (scan_libraries): Fix double-thinko :-).
7188
7189 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
7190
7191         * collect2.c (scan_libraries): Fix thinko.
7192
7193         * cse.c (delete_trivially_dead_insns): Do not skip the last
7194         insn if it is a real insn.
7195
7196 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
7197
7198         * Makefile.in (ggc-simple.o): Depend on hash.h.
7199         * ggc.h (ggc_add_tree_hash_table_root): Declare.
7200         (ggc_mark_tree_varray): Likewise.
7201         (ggc_mark_tree_hash_table): Likewise.
7202         * ggc-simple.c: Include hash.h.
7203         (ggc_mark_tree_hash_table_ptr): New function.
7204         (ggc_mark_tree_hash_table_entry): Likewise.
7205         (ggc_mark_tree_hash_table): Likewise.
7206         (ggc_add_tree_hash_table_root): Likewise.
7207         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
7208         rtx, when defining fields.
7209
7210 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7211
7212         * profile.c (output_func_start_profiler): Remove apparently
7213         nonsensical call to start_sequence.
7214
7215 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
7216
7217         * clipper/clipper.c (clipper_va_start): Fix typos.
7218
7219         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
7220         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
7221         (spur_va_arg): New stub.
7222
7223         * configure.in: Comment out pyramid.
7224
7225 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
7226
7227         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
7228         don't conflict with the bits that win32, cygwin, and dgux
7229         defines.
7230
7231 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
7232                           Bernd Schmidt <bernds@cygnus.co.uk>
7233
7234         * integrate.c (function_cannot_inline_p): Do not inline
7235         functions with forced labels.
7236
7237 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
7238                           Bernd Schmidt <bernds@cygnus.co.uk>
7239                           Mark Mitchell  <mark@codesourcery.com>
7240
7241         * Makefile.in (ggc-simple.o): Depend on varray.h.
7242         (rtl.o): Depend on ggc.h.
7243         (genattrtab.o): Depend on ggc.h.
7244         (print-tree.o): Likewise.
7245         (fold-const.o): Likewise.
7246         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
7247         (make_insn_raw): Don't cache insns when GC'ing.
7248         (emit_insn_before): Likewise.
7249         (emit_insn_after): Likewise.
7250         (emit_insn): Likewise.
7251         (start_sequence): Use xmalloc to allocate the sequence_stack.
7252         (end_sequence): Add free to free it.
7253         (gen_sequence): Don't cache insns when GC'ing.
7254         (clear_emit_caches): Don't use sequence_element_free_list.
7255         (init_emit): Use xcalloc, not xmalloc+bzero.
7256         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
7257         * function.c (pop_function_context_from): Use free to free the
7258         fixup_var_refs_queue.
7259         (put_reg_into_stack): Allocate it with xmalloc.
7260         * genattrtab.c: Include ggc.h.
7261         (operate_exp): Don't use obstack_free when GC'ing.
7262         (simplify_cond): Likewise.
7263         (simplify_text_exp): Likewise.
7264         (optimize_attrs): Likewise.
7265         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
7266         GC'ing.
7267         (gencode): Generate a #include for ggc.h.
7268         * ggc-callbacks.c (ggc_p): Define it to zero.
7269         * ggc-none.c (ggc_p): Likewise.
7270         * ggc-simple.c: Include varray.h.
7271         (ggc_mark_tree_varray): New function.
7272         (ggc_add_tree_varray_root): Likewise.
7273         (ggc_mark_tree_varray_ptr): Likewise.
7274         * ggc.h (ggc_p): Declare.
7275         (varray_head_tag): Likewise.
7276         (ggc_add_tree_varray_root): Declare.
7277         * print-tree.c (print_node): Don't check for TREE_PERMANENT
7278         inconsistencies when GC'ing.
7279         * rtl.c: Include ggc.h.
7280         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
7281         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
7282         (rtx_free): Don't call obstack_free when GC'ing.
7283         * toplev.c (rest_of_compilation): Call ggc_collect after every
7284         pass, if GC'ing.
7285         * tree.c (push_obstacks): Do nothing, if GC'ing.
7286         (pop_obstacks_nochange): Likewise.
7287         (pop_obstacks): Likewise.
7288         (make_node): Use ggc_alloc_tree when GC'ing.
7289         (copy_node): Likewise.
7290         (get_identifier): Use ggc_alloc_string when GC'ing.
7291         (build_string): Likewise.
7292         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
7293         (tree_cons): Likewise.
7294         (build1): Likewise.
7295         (type_hash_canon): Don't call obstack_free when GC'ing.
7296
7297 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
7298
7299         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
7300         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
7301
7302 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
7303                           Bernd Schmidt <bernds@cygnus.co.uk>
7304                           Mark Mitchell  <mark@codesourcery.com>
7305
7306         * Makefile.in (stor-layout.o): Depend on ggc.h.
7307         (expr.o): Depend on ggc.h.
7308         (profile.o): Depend on ggc.h.
7309         (stor-layout.o): Depend on ggc.h.
7310         * emit-rtl.c (init_emit_once): Add gc roots.
7311         * expr.c: Include ggc.h.
7312         (emit_block_move): Add gc roots.
7313         (clear_storage): Likewise.
7314         * expr.h (init_stor_layout_once): New function.
7315         * profile.c: Include ggc.h.
7316         (init_arc_profiler): profiler_label is a root.
7317         * scan.c (make_sstring_space): Trust xrealloc to function
7318         correctly with first parameter NULL.
7319         * stor-layout.c: Include ggc.h.
7320         (set_sizetype): Add gc root.
7321         (init_stor_layout_once): New function.
7322         * toplev.c (compile_file): Call it.
7323
7324 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
7325                           Bernd Schmidt <bernds@cygnus.co.uk>
7326                           Mark Mitchell  <mark@codesourcery.com>
7327
7328         * Makefile.in (tree.o): Depend on ggc.h.
7329         (varasm.o): Likewise.
7330         (function.o): Likewise.
7331         (stmt.o): Likewise.
7332         (except.o): Likewise.
7333         (optabs.o): Likewise.
7334         (emit-rtl.o): Likewise.
7335         * emit-rtl.c: Include ggc.h.
7336         (sequence_element_free_list): Remove, and all references.
7337         (mark_sequence): New functions.
7338         (mark_emit_state): New function.
7339         * except.c: Include ggc.h.
7340         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
7341         (mark_tree_label_node): New functions.
7342         (mark_eh_state): New function.
7343         * function.c: Include ggc.h.
7344         (mark_temp_slot, mark_function_chain): New functions.
7345         (mark_function_state): New function.
7346         (init_function_once): New function.
7347         * function.h (init_function_once): New function.
7348         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
7349         * ggc.h (label_node): Declare.
7350         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
7351         (lang_mark_false_label_stack): New function.
7352         (mark_temp_slot): Remove declaration.
7353         (mark_function_chain): Likewise.
7354         (mark_eh_state): Adjust prototype.
7355         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
7356         Likewise.
7357         * optabs.c: Include ggc.h.
7358         (mark_optab): New function.
7359         (init_optabs): Add gc roots.
7360         * stmt.c: Include ggc.h.
7361         (mark_cond_nesting, mark_loop_nesting): New functions.
7362         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
7363         (mark_stmt_state): New function.
7364         * toplev.c (compile_file): Call init_function_once.
7365         * tree.c: Include ggc.h.
7366         (type_hash): Move declaration earlier in file.
7367         (TYPE_HASH_SIZE, type_hash_table): Likewise.
7368         (init_obstacks): Add gc roots.
7369         (mark_type_hash): New function.
7370         * varasm.c: Include ggc.h.
7371         (mark_pool_constant): New function.
7372         (mark_varasm_state): New function.
7373
7374 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7375
7376         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
7377
7378 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
7379
7380         * c-decl.c (struct language_function): Renamed from struct c_function.
7381         Delete elt NEXT.
7382         (c_function_chain): Delete.
7383         (push_c_function_context): New arg F.  Don't warn about nested
7384         functions here.  Fill LANGUAGE elt of F.  Delete code to update
7385         c_function_chain.  Don't call push_function_context.
7386         (pop_c_function_context): New arg F.  Restore from there instead of
7387         from c_function_chain.  Don't call pop_function_context.  Clear out
7388         LANGUAGE field of F when done.
7389         * c-lang.c: Include "function.h"
7390         (lang_init): Initialize save_lang_status and restore_lang_status.
7391         * c-parse.in (nested_function, nested_function_notype): Warn about
7392         nested functions.  Call push_function_context/pop_function_context
7393         instead of the _c_ variants.
7394         * c-tree.h (push_c_function_context, pop_c_function_context): Update
7395         prototype.
7396         * Makefile.in (c-lang.o): Update dependencies.
7397
7398         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
7399         regno_pointer_flag, regno_pointer_align.
7400         (gen_reg_rtx): Use xrealloc to enlarge them.
7401         (free_emit_status): New function.
7402         * function.c (mark_machine_status, mark_lang_status): New variables.
7403         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
7404         in some bits from assign_stack_local.  All callers changed to use new
7405         name.
7406         (assign_stack_local): Just call assign_stack_local_1.
7407         (free_after_compilation): New function.
7408         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
7409         (trampoline_address): Likewise.
7410         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
7411         (prepare_function_start): Explicitly clear some more variables.
7412         * function.h (struct function): New elt can_garbage_collect.
7413         (mark_machine_status, mark_lang_status): Declare variables.
7414         (free_after_compilation, free_emit_status, free_varasm_status,
7415         init_varasm_status): Declare functions.
7416         * toplev.c (rest_of_compilation): Call free_after_compilation when
7417         done with the current function.
7418         * varasm.c (free_varasm_status): New function.
7419
7420 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
7421
7422         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
7423         (EXPAND_BUILTIN_VA_ARG): Define.
7424         * sparc.c (sparc_va_start): New.
7425         (sparc_va_arg): New.
7426
7427 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7428
7429         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
7430
7431 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7432
7433         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
7434
7435 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
7436
7437         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
7438         (OBJS): Add $(GGC).
7439         (ggc-callbacks.o): New target.
7440         * ggc-callbacks.c: New file.
7441
7442 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7443
7444         * expr.h: Collapse individual optab and libfunc vars to arrays.
7445         (optab_index, libfunc_index): New enumerations.
7446         (optab_table, libfunc_table): New arrays.
7447         Add accessor macros for both.
7448
7449         * optabs.c (optab_table, libfunc_table): New.
7450         Delete declarations for individual optab and libfunc vars.
7451
7452 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
7453
7454         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
7455
7456 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
7457
7458         * Makefile.in (GGC, GGC_LIB): New.
7459         (HOST_RTL): Include ggc-none.o.
7460         (ggc-simple.o): New target.
7461         (ggc-none.o): Likewise.
7462         * tree.h (tree_common): Add gc_mark.
7463         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
7464         (struct rtvec_def): Add gc_mark.
7465         * emit-rtl.c (global_rtl): Update static initializers to contain
7466         enough initializers.
7467         * ggc.h, ggc-none.c, ggc-simple.c: New files.
7468         * toplev.c (gc_time): New variable.
7469         (all_time): New variable.
7470         (compile_file): Print gc time.
7471         (print_time): Calculate percentage of the whole.
7472
7473 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7474
7475         Change obstack memory management and varasm constant pool handling so
7476         that nested functions are treated like any other functions.
7477         * function.c (init_machine_status): New variable.
7478         (push_function_context_to): Set contains_functions for the outer
7479         function.  Don't call save_varasm_status.
7480         (pop_function_context_from): Don't call restore_varasm_status.  Don't
7481         set current_function_contains_functions.
7482         (prepare_function_start): Call init_varasm_status rather than
7483         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
7484         is non-null.
7485         * function.h (struct function) Add field varasm.  Delete fields
7486         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
7487         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
7488         (init_machine_status): Declare.
7489         (save_varasm_status, restore_varasm_status): Delete declarations.
7490         (save_tree_status, restore_tree_status): Delete last argument.
7491         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
7492         code.  All callers changed.
7493         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
7494         save_constants_in_decl_trees, restore_constants, save_constants,
7495         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
7496         functions.
7497         (inlining): New variable.
7498         (reg_map, label_map, insn_map, orig_asm_operands_vector,
7499         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
7500         variables.
7501         (save_for_inline_nocopy): Don't save constants.
7502         Don't set inl_emit field in current_function.
7503         (expand_inline_function): Use emit field, not inl_emit, of the inlined
7504         function.  Set new variable inlining before
7505         calling copy_rtx_and_substitute.
7506         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
7507         constant pool references if inlining is nonzero.
7508         Delete ADDRESS and (most of the) CONST cases.
7509         (output_inline_function): Save and restore current_function/
7510         current_function_decl.  Delete restore_constants code.  Don't call
7511         init_const_rtx_hash_table.
7512         * output.h (init_const_rtx_hash_table): Don't declare.
7513         * rtl.h (struct function): Declare.
7514         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
7515         * toplev.c (rest_of_compilation): Don't treat nested functions or
7516         functions containing them specially.  Delete all code to deal with
7517         save_for_inline_copying.
7518         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
7519         inline_obstacks): Delete variables.
7520         (save_tree_status): Lose arg CONTEXT.  All callers changed.
7521         Simply allocate a new function_maybepermanent_obstack for the new
7522         function, delete all the special cases.
7523         Don't save inline_obstacks.
7524         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
7525         Delete special handling for function_maybepermanent_obstack; simply
7526         free it if empty.
7527         Don't restore inline_obstacks.
7528         (permanent_allocation):  Delete code that frees inline_obstacks.
7529         (print_inline_obstack_statistics): Delete function.
7530         (dump_tree_statistics): Don't call it.
7531         * varasm.c (struct varasm_status): New.
7532         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
7533         last_pool, pool_offset, const_double_chain): Delete global
7534         variables, replace with accessor macros.
7535         (immed_double_const): Don't walk const_double_chain outside a
7536         function, but don't treat nested functions specially anymore.
7537         (immed_real_const_1): Likewise.
7538         (clear_const_double_mem): Don't treat nested functions specially.
7539         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
7540         (save_varasm_status, restore_varasm_status): Delete functions.
7541         (init_varasm_status): New function.
7542         (force_const_mem): Don't treat nested functions specially.
7543         (find_pool_constant): Accept new arg F, search for constants in
7544         that function's pool rather than the current one.  All callers
7545         changed.
7546         (get_pool_constant_for_function, get_pool_mode_for_function): New
7547         functions.
7548
7549         * i386.c (init_386_machine_status): New function, mostly from
7550         clear_386_stack_locals.
7551         (struct machine_functions): Rename element names to avoid name
7552         clashes.
7553         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
7554         macros, replacing global variables.
7555         (clear_386_stack_locals, save_386_machine_status,
7556         restore_386_machine_status): Delete functions.
7557         (override_options): Initialize init_machine_status.
7558         * i386.h (INIT_EXPANDERS): Delete macro.
7559         (save_386_machine_status, restore_386_machine_status,
7560         clear_386_stack_locals): Delete declarations.
7561
7562 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7563
7564         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
7565         (doloop_begin):  Simplify pattern and use emit_jump_insn.
7566         (doloop_end): Simplify pattern, switch operand order,
7567         and use emit_jump_insn.
7568
7569 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7570
7571         * function.h (struct function): Add new element LANGUAGE.
7572         (save_lang_status): Declare new variable.
7573         (restore_lang_status): Likewise.
7574         * function.c (save_lang_status): Define.
7575         (restore_lang_status): Likewise.
7576         (push_function_context_to): Call language-specific save function.
7577         (pop_function_context_from): Call language-specific restore function.
7578
7579 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
7580
7581         * i386.md (movsf_1): Check REG_P before use of REGNO.
7582         (movdf_1): Likewise.
7583         (movxf_1): Likewise.
7584         (extendsfdf2): Likewise.
7585         (extendsfxf2): Likewise.
7586         (extenddfxf2): Likewise.
7587
7588 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7589
7590         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
7591         constants into memory.
7592         (c4x_shiftable_constant): New function.
7593         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
7594         (c4x_shiftable_constant): Declare.
7595         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
7596         ashlqi3_noclobber): Add new patterns and associated splitters.
7597
7598 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
7599
7600         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
7601         * dwarf2out.c (dwarf2out_frame_init): Likewise.
7602         * final.c (shorten_branches): Likewise.
7603         * global.c (global_alloc): Likewise.
7604         * haifa-sched.c (build_control_flow): Likewise.
7605         * stmt.c (check_for_full_enumeration_handling): Likewise.
7606         (estimate_case_costs): Likewise.
7607
7608 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
7609
7610         * rtl.h (RTL_CHECKC2): Fix typo in last change.
7611
7612 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
7613
7614         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
7615         (recompute_reg_usage): Likewise.
7616         * rtlanal.c (find_regno_fusage): Likewise.
7617
7618         * rtl.c (rtl_check_failed_code1): New function.
7619         (rtl_check_failed_code2): New.
7620         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
7621         (RTL_CHECKC1, RTL_CHECKC2): New.
7622         (XC*): New accessor macros.
7623         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
7624         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
7625         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
7626         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
7627         (TRAP_*, RANGE_INFO_*): Likewise.
7628
7629 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7630
7631         * Makefile.in (tlink.o): Don't depend on toplev.h.
7632
7633         * collect2.c (c_file, o_file, export_file, import_file, ldout,
7634         output_file, nm_file_name, ldd_file_name, strip_file_name,
7635         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
7636         add_prefix, prefix_from_env, prefix_from_string, do_wait,
7637         fork_execute, maybe_unlink, add_to_list,
7638         extract_init_priority, write_list, dump_list,
7639         dump_prefix_list, write_list_with_asm, write_c_file,
7640         write_c_file_stat, write_c_file_glob, scan_prog_file,
7641         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
7642         ignore_library, extract_string, notice, dump_file, target_machine,
7643         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
7644         read_file, print_load_command): Constify a char*.
7645         (fdopen, error, fatal, fatal_perror): Don't prototype.
7646         (my_strerror): Remove.  All callers use xstrerror instead.
7647         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
7648         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
7649         to xcalloc/strcpy/strcat/...  to one call to concat.
7650         (main, scan_prog_file, scan_libraries): Use an intermediate
7651         `const char **' to build an argv array.
7652         (mapfile, libselect, libcompare, locatelib): Add prototypes.
7653
7654         * collect2.h (collect_execute, collect_wait, dump_file,
7655         file_exists): Constify a char*.
7656         (ldout, c_file_name, temporary_obstack, permanent_obstack,
7657         temporary_firstobj, vflag, debug): Add extern declarations.
7658         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
7659
7660         * tlink.c: Don't include toplev.h.
7661         (vflag, debug, ldout, c_file_name, temporary_obstack,
7662         permanent_obstack, temporary_firstobj): Don't declare.
7663         (tlink_execute, frob_extension, symbol_hash_lookup,
7664         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
7665         recompile_files, read_repo_files, demangle_new_symbols,
7666         scan_linker_output): Constify a char*.
7667         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
7668         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
7669
7670 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
7671
7672         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
7673         (relative) rather than jsr (absolute) subroutine call insns.
7674         * config/m68k/m68k-coff.h: Ditto.
7675
7676 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
7677
7678         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
7679         now rework these too.
7680         (arm_reorg): If an insn can't reach the end of the current pool,
7681         ensure that we emit that pool before the insn.
7682
7683 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
7684
7685         * tlink.c (scan_linker_output): Skip the initial underscore in
7686         a mangled name if appropriate.
7687
7688 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7689
7690         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
7691         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
7692         error_with_ivar, gen_declarator, create_builtin_decl,
7693         my_build_string, generate_descriptor_table, generate_ivars_list,
7694         generate_dispatch_table, check_protocols, TAG_GETCLASS,
7695         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
7696         dump_base_name, lang_decode_option, build_encode_expr,
7697         start_class, finish_class, encode_pointer, really_start_method,
7698         gen_declaration, dump_interface, handle_class_ref, handle_impent):
7699         Constify.
7700         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
7701         Add static prototypes.
7702         (build_objc_string_decl, build_selector_reference_decl,
7703         encode_bitfield, build_class_reference_decl): Remove unused
7704         parameter, all callers changed.
7705         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
7706         (objc_printable_name): Likewise.  Change second parameter to type int.
7707         (init_objc): Use memcpy, not bcopy, to avoid casts.
7708
7709 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
7710
7711         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
7712         reg notes on a deleted insn.
7713         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
7714
7715 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
7716
7717         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
7718
7719 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7720
7721         * stmt.c (expand_asm_operands): Fix index into inout_mode when
7722         reading it.
7723
7724 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
7725
7726         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
7727         * tm.texi (MD_ASM_CLOBBERS): Document it.
7728
7729 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
7730
7731         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
7732         * except.c (expand_rethrow): Remove unused variable.
7733         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
7734         * flow.c (replace_insns): Likewise.
7735         (create_edge_list, verify_edge_list): Likewise.
7736         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
7737
7738         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
7739         is special code to run.
7740         (main): Don't define operands to emit_operand.
7741         * genrecog.c (main): Don't emit an empty peephole2_insn function.
7742
7743         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
7744
7745         * alpha/alpha.h (normal_memory_operand): Declare.
7746         (reg_no_subreg_operand): Declare.
7747         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
7748
7749 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
7750
7751         * c-parse.in (compstmt_primary_start): New, broken out of first
7752         part of compstmt handling in primary.
7753         (primary): Use it.  Add an error clause.
7754         (compstmt_nostart): Renamed from compstmt; remove all
7755         initial invocations of compstmt_start.
7756         (compstmt): New.
7757
7758 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
7759
7760         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
7761         needed.
7762
7763 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
7764
7765         * combine.c (simplify_shift_const): Remove extra semicolon.
7766         * dwarf2out.c (remove_AT): Likewise.
7767         * expmed.c (expand_mult): Likewise.
7768         * gcov.c (create_program_flow_graph): Likewise.
7769         * reorg.c (mostly_true_jump): Likewise.
7770
7771 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
7772
7773         * fold-const.c (fold_range_test): Do not try to fold the range
7774         test if the rhs or lhs has side effects.
7775
7776         * combine.c (simplify_rtx): Recognize another case of a synthesized
7777         sign extension.
7778
7779         * varasm.c (mark_constant_pool): When marking indirect references,
7780         only look at SYMBOL_REFs.
7781
7782         * except.c (expand_fixup_region_end): Do not peek at
7783         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
7784
7785 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
7786
7787         * flags.h: New variables align_loops, align_loops_log,
7788         align_jumps, align_jumps_log, align_labels, align_labels_log,
7789         align_functions, align_functions_log.
7790         * toplev.c: Define them.
7791         (f_options): Handle -falign-* when they have no argument.
7792         (main): Add logic to set variables for -falign-functions,
7793         -falign-jumps, -falign-labels, -falign-loops.
7794         Make it -fsched-verbose=<n> and -finline-limit=<n>.
7795         (display_help): Change help to match options.
7796         * final.c (LABEL_ALIGN): Default to align_labels_log.
7797         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
7798         (LOOP_ALIGN): Default to align_loops_log.
7799         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
7800         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
7801         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
7802         * varasm.c (assemble_start_function): Handle align_functions.
7803
7804         * config/sparc/sparc.h: Don't declare sparc_align_*.
7805         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
7806         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
7807         sparc.c.
7808         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
7809         it's a promise.
7810         * config/sparc/sparc.c: Delete sparc_align_loops,
7811         sparc_align_jumps, sparc_align_funcs and the corresponding string
7812         variables.
7813         (sparc_override_options): Default align_functions on ultrasparc.
7814         Delete -malign-* handling.
7815
7816         * config/mips/mips.c (override_options):  On 64-bit targets,
7817         try to align code to 64-bit boundaries.
7818         (print_operand): New substitution, %~,
7819         which aligns labels to align_labels_log.
7820         * config/mips/mips.md (div_trap_normal): Use %~.
7821         (div_trap_mips16): Likewise.
7822         (abssi): Likewise.
7823         (absdi2): Likewise.
7824         (ffssi2): Likewise.
7825         (ffsdi2): Likewise.
7826         (ashldi3_internal): Likewise.
7827         (ashrdi3_internal): Likewise.
7828         (lshrdi3_internal): Likewise.
7829         (casesi_internal): Likewise.
7830
7831 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
7832
7833         Merge new ia32 backend from the branch!
7834
7835         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
7836         See ChangeLog.P2 on new_ia32_branch for details.
7837
7838         * rtl.h (stack_regs_mentioned_p): Delete prototype.
7839         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
7840         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
7841         * i386/gas.h (ASM_FILE_START): Define.
7842         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
7843         for name change of ix86_valid_decl_attribute_p.
7844         (i386_pe_valid_type_attribute_p): Similarly.
7845
7846 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
7847
7848         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
7849         to step through CC modes.
7850
7851 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7852
7853         * regmove.c (fixup_match_1): Don't move INSN in front of P if
7854         it would end up in the shadow of a live flags regsiter.
7855
7856 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7857
7858         * reload1.c: Fix many indentation problems.
7859         * reload.c: Likewise.
7860
7861 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
7862
7863         * alias.c (non_local_reference_p): Constify fmt.
7864
7865 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
7866
7867         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
7868
7869 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
7870
7871         * cse.c (delete_trivially_dead_insns): Do not delete stores to
7872         the internal_arg_pointer.
7873
7874 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
7875
7876         Merge peephole2 from new_ia32_branch:
7877         * Makefile.in (STAGESTUFF): Add *.peephole2.
7878         (mostlyclean): Likewise.
7879         (recog.o): Depend on resource.h.
7880
7881         * final.c (peephole): Conditionalize decl on HAVE_peephole.
7882         (final_scan_insn): Likewise for the invocation of peephole.
7883         * genconfig.c (main): Look for peephole and peephole2 patterns.
7884         Emit HAVE_peephole* accordingly.
7885         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
7886         * flags.h (flag_peephole2): Declare.
7887         * toplev.c: New pass peephole2.  New flag -fpeephole2.
7888
7889         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
7890         * gencodes.c (main): Likewise.
7891         * genextract.c (main): Likewise.
7892         * genoutput.c (main): Likewise.
7893         * genemit.c (max_operand_1): Look for the max scratch operand.
7894         (gen_rtx_scratch): New.
7895         (gen_exp): Use it, and pass on new arg subroutine_type.
7896         (gen_expand): Take max scratch into account.
7897         (gen_split): Emit peephole2 functions.
7898         (output_peephole2_scratch): New.
7899         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
7900         * genrecog.c (routine_type): Add PEEPHOLE2.
7901         (IS_SPLIT): New.
7902         (make_insn_sequence): Match outer parallel for peep2.  Discard
7903         top level scratches and dups.
7904         (add_to_sequence): New args insn_type and top.  Update all callers.
7905         Handle toplevel peep2 matching insns.
7906         (write_subroutine): Handle peep2.
7907         (write_tree_1): Likewise.
7908         (write_tree): Likewise.
7909         (main): Likewise.
7910         (change_state): New arg afterward.  Update all callers.
7911         Handle matching separate insns.
7912         * recog.c (recog_next_insn): New.
7913         (peephole2_optimize): New.
7914         * rtl.def (DEFINE_PEEPHOLE2): New.
7915         * resource.c (find_free_register): New argument last_insn.  Use it
7916         to find a register available through the entire span.
7917         * resource.h (find_free_register): Update prototype.
7918
7919 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
7920
7921         * i386.c (output_strlen_unroll): Don't write xops[7]
7922         label if it wasn't set.
7923
7924 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
7925
7926         * cpplib.c (struct directive): Const-ify name pointer and
7927         function pointer prototype.
7928         (validate_else, do_define, do_line, do_include, do_undef,
7929         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
7930         do_elif, do_endif, do_sccs, do_assert, do_unassert,
7931         do_warning): Const-ify second arg.
7932         (directive_table): Mark const.  Reorder entries by frequency
7933         of usage, record statistics.
7934
7935 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
7936
7937         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
7938         bounds- check RTL accesses if --enable-checking.
7939         (RTVEC_ELT): Bounds check if --enable-checking.
7940         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
7941         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
7942         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
7943         GET_NUM_ELEM.
7944         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
7945         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
7946
7947         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
7948         (NOTE_SOURCE_FILE): Use X0STR.
7949         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
7950         MEM_ALIAS_SET): Use X0INT.
7951         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
7952         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
7953         Use X0EXP.
7954         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
7955         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
7956         (rtl_check_failed_bounds, rtl_check_failed_type1,
7957         rtl_check_failed_type2, rtvec_check_failed_bounds): New
7958         functions.
7959         (fancy_abort): Fix comment.
7960
7961         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
7962         (cse_insn): Decrement LABEL_NUSES for jump target before
7963         deleting jump insn.
7964         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
7965         * final.c (alter_subreg): Compute regno before changing x to
7966         REG; set REGNO(x) after changing it.
7967         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
7968         notes containing CONST_INTs.
7969         (delete_eh_regions): Use NOTE_EH_HANDLER.
7970         * function.c (put_reg_into_stack): Make reg a MEM before
7971         initializing it.
7972         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
7973         delete insn.
7974         (gen_mem_addressof): Make reg a MEM before initializing it.
7975         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
7976         X0WINT.
7977         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
7978         deleting an insn, not after.
7979         (block_alloc): Only look at PATTERN(insn) if we have to, and
7980         only if it's format class 'i'.
7981         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
7982         CONST_INT before using its INTVAL.
7983         * print-rtl.c (print_rtx): Use X0STR.
7984         * regmove.c (fixup_match_1): Don't look at PATTERN of
7985         non-class-'i' insn chain elements.
7986         * reload.c (loc_mentioned_in_p): Take address of
7987         in->fld[1].rtx directly.
7988         * reload1.c (reload): Change reg to a MEM before initializing
7989         it.
7990         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
7991         have no names.
7992         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
7993
7994 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
7995
7996         * config/mips/mips.c (machine_dependent_reorg): Force a
7997         barrier to output the local constant pool if a barrier hasn't
7998         been found at a natural point in the instruction stream.
7999
8000 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8001
8002         * c-parse.in (language_string): Constify.
8003
8004         * dwarf2out.c (language_string): Remove declaration.
8005
8006         * dwarfout.c (language_string): Likewise.
8007
8008         * toplev.c (language_string, init_parse, finish_parse): Likewise.
8009
8010         * tree.h (language_string, init_parse, finish_parse): Declare.
8011
8012         * i386/sun386.h (language_string): Remove declaration.
8013
8014         * mips.h (language_string): Likewise.
8015
8016         * nextstep.h (language_string): Likewise.
8017
8018         * nextstep21.h (language_string): Likewise.
8019
8020         * rs6000.c (language_string): Likewise.
8021
8022 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8023
8024         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
8025         (getpwd.o): Remove target.
8026
8027         * getpwd.c: Delete file.  Its in libiberty now.
8028
8029         * dbxout.c (getpwd): Don't prototype.
8030         * dwarf2out.c (getpwd): Likewise
8031         * dwarfout.c (getpwd): Likewise
8032         * final.c (getpwd): Likewise.
8033         * protoize.c (getpwd): Likewise.
8034
8035 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8036
8037         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
8038
8039 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
8040
8041         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
8042         mark_set_resources.
8043
8044 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
8045
8046         * fixinc/Makefile.in (subdir): New.
8047         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
8048         (Makefile): New.
8049
8050 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
8051
8052         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
8053         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
8054         be shared.
8055
8056         * invoke.texi: Fix typo.
8057
8058         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
8059         changed.  Handle autoincrement addressing modes.
8060
8061         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
8062         just like we would the virtual incoming args register when
8063         integrating.
8064
8065 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
8066
8067         * rs6000.h (ASM_FILE_START): Specify complete filename, including
8068         path, in .file directive.
8069
8070 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
8071
8072         * gcc.texi (External Bugs): Remove obsolete note about Perl on
8073         SunOS.
8074
8075 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
8076
8077         * stdbool.h: Make the typedef name _Bool, with bool a #defined
8078         alias.
8079
8080 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8081
8082         * tree.c (tree_code_name): Constify a char*.
8083
8084         * tree.h (tree_code_name, decl_printable_name): Likewise.
8085
8086         * function.h (struct function): Likewise.
8087
8088         * toplev.c (decl_name, decl_printable_name): Likewise.
8089
8090         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
8091
8092         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
8093         (init_objc): Remove function pointer cast.
8094
8095 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
8096
8097         * pa.md (interspace_jump): New pattern.
8098         (builtin_longjmp): New expander.
8099
8100 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
8101
8102         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
8103         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
8104         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
8105
8106 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
8107
8108         * jump.c (delete_prior_computation): Also check calls
8109         to constant functions.  Don't bother checking for a
8110         REG_UNUSED note before adding it.
8111         (delete_computation): Handle multi-word hard registers
8112         when synthesizing missing REG_DEAD notes for a register
8113         which is both set and used by an insn.
8114
8115 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8116
8117         * loop.c (this_loop_info): New variable.
8118         (loop_has_call, loop_has_volatile, loop_has_tablejump,
8119         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
8120         All uses updated.
8121         (prescan_loop, strength_reduce): New argument loop_info.  All callers
8122         updated.
8123         (scan_loop): New variable loop_info, initialise to address of
8124         this_loop_info.
8125         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
8126         Delete variable loop_has_multiple_exit targets and replace with
8127         field in this_loop_info.
8128         (find_and_verify_loops): Rename this_loop to this_loop_num.
8129         (strength_reduce): Delete loop_iteration_info.  Replace variable
8130         loop_info with function argument of same name.
8131         (insert_bct): Rework test for loop being completely unrolled.
8132
8133         * loop.h (struct loop_info): New fields num, loops_enclosed,
8134         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
8135         has_indirect_jump, and cont.  Redefine use of unroll_number.
8136         (loop_unroll_number): Delete.
8137
8138         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
8139         field of loop_info.
8140         (loop_iterations): Delete variable vtop and instead use
8141         loop_info->vtop computed in prescan_loop.
8142
8143 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
8144
8145         * fix-header.c (main): Do not pass a null pointer to strcmp.
8146
8147 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
8148
8149         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
8150         filenames.
8151         * configure: Rebuilt.
8152
8153 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
8154
8155         * jump.c (jump_optimize_1): Do not delete assignments to
8156         internal_arg_pointer.
8157         * cse.c (delete_trivially_dead_insns): Always consider a set of
8158         the internal_arg_pointer live.
8159
8160 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
8161
8162         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
8163         (update_life_info) [REG_WAS_0]: Search the original insns rather
8164         than the new insns for the note.  Fix typos finding note_dest.
8165         If no dest found, discard the note rather than abort.
8166         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
8167         (replace_insns): Remove the old insn list after update_life_info
8168         not before.
8169
8170 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
8171
8172         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
8173         sched_analyze_insn.
8174         (sched_analyze_1): Let add_dependence care for not adding dups.
8175         (sched_analyze_2): Likewise.
8176         (add_branch_dependences): Likewise.
8177
8178 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8179
8180         * i386/winnt.c (export_list): New type.
8181         (exports_head): Rename to
8182         (export_head):  this.
8183         (i386_pe_record_exported_symbol): Add is_data flag.
8184         (i386_pe_asm_file_end): Emit directive for exported variables.
8185         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
8186         prototype.
8187         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
8188         (ASM_DECLARE_OBJECT_NAME): Likewise.
8189         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8190         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8191
8192 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
8193
8194         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
8195
8196         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
8197         operand.
8198
8199 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
8200
8201         * config/openbsd.h: Define SET_ASM_OP.
8202         * tm.texi: cross-reference SET_ASM_OP in the index.
8203
8204 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
8205
8206         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
8207         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
8208         and class_narrowest_mode at compile time.  Kill init_rtl.
8209         Mark rtx_length, mode_class, mode_size, mode_unit_size,
8210         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
8211         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
8212         EXTRA_CC_NAMES.
8213         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
8214         format.
8215         * rtl.h: Declare rtx_length and rtx_format as const.
8216         * machmode.def: Define CC().  Use CC() to define CCmode.  If
8217         EXTRA_CC_MODES is defined, expand it here.
8218         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
8219         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
8220         const.  Kill all references to EXTRA_CC_MODES.
8221
8222         * toplev.c: Don't prototype or call init_rtl.
8223         * optabs.c: Don't call init_mov_optab.
8224         * genemit.c: Don't generate init_mov_optab.  Don't call
8225         init_rtl.
8226         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
8227         here.
8228         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
8229         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
8230         genrecog.c: Don't call init_rtl.
8231
8232         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
8233         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
8234         definition of EXTRA_CC_MODES.
8235
8236         * md.texi: Kill ref to EXTRA_CC_NAMES.
8237         * tm.texi: Document new way to define EXTRA_CC_MODES.
8238
8239         * genrecog.c: Do not look up the name of a define_split.
8240         (Unrelated bugfix.)
8241
8242 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
8243
8244         * config/v850/v850.md: Fix typo introduced by previous delta.
8245
8246 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8247
8248         * gcc.c (fatal): Make definition static to match prototype.
8249
8250 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8251
8252         * combine.c (get_last_value): Don't look for earlier sets if the last
8253         known set is somewhere in between the insns being combined.
8254
8255 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
8256
8257         * configure.in: Don't use shell ! to negate exit codes
8258         * configure: Regenerate
8259
8260 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
8261
8262         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
8263         the fact that ALIGN is measured in bits, not bytes.
8264
8265 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
8266
8267         * errors.c: New file; defines functions error, warning, and
8268         fatal, variables have_error and progname.
8269         * errors.h: New file; prototypes and decls for stuff in errors.c.
8270
8271         * Makefile: Add rules to build errors.o and
8272         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
8273         genopinit, genrecog, genextract, genpeep, genattr, and
8274         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
8275         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
8276         genpeep.o, genattr.o, and genoutput.o.
8277
8278         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
8279         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
8280         define or prototype fatal.  Set progname at beginning of main.
8281         * genoutput.c:  Likewise, and don't define or prototype error
8282         either.
8283
8284         * c-typeck.c (c_expand_start_case): Return immediately if exp
8285         is an ERROR_MARK.
8286         * fold-const.c (operand_equal_p): Return immediately if arg1
8287         or arg0 are ERROR_MARKs.
8288         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
8289         fields of type ERROR_MARK when calculating if the record can
8290         go in a register.
8291
8292 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
8293         with much help from Jeffrey A Law and Richard Henderson
8294
8295         * i386.md: In the 6 insns which call output_fix_trunc,
8296         earlyclobber operands[0].
8297
8298 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
8299
8300         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
8301         creating new registers.
8302
8303 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
8304
8305         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
8306         i386_reg_alloc_order, i386_regparm_string,
8307         i386_align_loops_string, i386_align_jumps_string,
8308         i386_align_funcs_string, i386_preferred_stack_boundary_string,
8309         and i386_branch_cost_string as type "const char *".
8310         * i386.c: Define all above strings as type "const char *".
8311
8312 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
8313
8314         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
8315         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
8316
8317 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
8318
8319         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
8320         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
8321
8322 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
8323
8324         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
8325         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
8326         (dwarf2out_line, dwarf2out_finish): Likewise.
8327         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
8328
8329 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8330
8331         * tree.c (lang_unsave_expr_now) : Correct return type.
8332         * tree.h (lang_unsave_expr_now) : Same.
8333
8334 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
8335
8336         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
8337         instead of duplicating code.
8338
8339 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8340
8341         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
8342
8343 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
8344
8345         * tree.h: fancy_abort always takes three args.
8346         * resource.c: Move include of system.h before toplev.h.
8347
8348 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
8349
8350         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
8351         as SYMBOL_REFs.
8352
8353 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
8354
8355         * system.h: Don't redefine abort or trim_filename.
8356         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
8357         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
8358         whether or not __FUNCTION__ is available.
8359         * tree.h: Duplicate rtl.h's definition of abort, for files
8360         that don't include rtl.h.  Delete all code to perform type
8361         checking with a compiler other than GCC.
8362         * varray.h: Delete all code to perform type checking with a
8363         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
8364         its arguments exactly once, using a statement expression.
8365         Adjust the VARRAY_<type> accessor macros to match.
8366         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
8367         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
8368         caller's location.  Define fatal_insn and fatal_insn_not_found
8369         as macros that use _fatal_insn and _fatal_insn_not_found.
8370         (fancy_abort, trim_filename): Kill prototypes.
8371
8372         * rtl.c (trim_filename): Move here from toplev.c.
8373         (fancy_abort): New function.
8374         (DIR_SEPARATOR): Provide default definition.
8375         * tree.c (tree_check_failed, tree_class_check_failed): Go
8376         through fancy_abort.
8377         (tree_check, tree_class_check, cst_or_constructor_check,
8378         expr_check): Delete.
8379         * varray.c (varray_check_failed): New function.
8380         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
8381         _fatal_insn and _fatal_insn_not_found.  Go through
8382         fancy_abort.
8383         (trim_filename, fancy_abort): Delete.
8384
8385         * builtins.c (expand_builtin_args_info): Report ICE with abort.
8386         * except.c (start_catch_handler): Report ICE with error/abort
8387         combo.
8388         * final.c (output_operand_lossage): Likewise.
8389         * flow.c (verify_flow_info): Likewise.
8390
8391         * gcc.c: Prototype fatal.
8392         * gengenrtl.c: Undef abort after including rtl.h not system.h.
8393         * genattr.c, genattrtab.c, genemit.c, genextract.c,
8394         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
8395         Don't define fancy_abort.
8396
8397 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
8398
8399         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
8400         canonization.
8401
8402 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
8403
8404         * m88k.h (VERSION_INFO2): Kill.
8405         (VERSION_STRING): Kill.
8406         (TM_RCS_ID): Kill.
8407         (VERSION_INFO1): Tidy.
8408         (TARGET_VERSION): Update.
8409         * m88k/dgux.h (VERSION_INFO2): Kill.
8410         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
8411         * m88k/luna.h (VERSION_INFO1): Tidy.
8412         * m88k/sysv4.h (VERSION_INFO1): Likewise.
8413         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
8414         (output_file_start): Adjust for death of VERSION_STRING.
8415
8416 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
8417
8418         * cpplib.c (detect_if_not_defined): New function.
8419         (do_if): Use it to detect potential once-only headers.
8420
8421 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
8422
8423         * c-common.c (combine_strings): Always set TREE_CONSTANT.
8424
8425 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8426
8427         * combine.c (nonzero_bits) : Allow single-ly set registers to be
8428         anywere in the function only if they are pseudos and set before
8429         being used (not live at the start of the function).
8430         (num_sign_bit_copies) : Same.
8431         (get_last_value_validate) : Same.
8432         (get_last_value) : Same.
8433
8434 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
8435
8436         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
8437         where N and M are constant and N is an integer multiple of M.
8438
8439 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8440
8441         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
8442         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
8443         sbitmap_union_of_preds): Add prototypes.
8444         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
8445         the intersection of successors with the new flow graph structures.
8446         (sbitmap_intersection_of_preds): New function to compute the
8447         intersection of predecessors with the new flow graph structures.
8448         (sbitmap_union_of_succs): New function to compute the union of
8449         successors with the new flow graph structures.
8450         (sbitmap_union_of_preds): New function to compute the union of
8451         predecessors with the new flow graph structures.
8452         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
8453         (expr_reaches_here_p): Use edge and basic_block structures instead
8454         of s_preds and s_succs.
8455         (compute_cprop_avinout): Use new sbitmap routines.
8456         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
8457         of s_preds and s_succs.
8458         * flow.c (compute_flow_dominators): Compute dominators using
8459         edges and basic blocks instead of s_preds and s_succs.
8460
8461 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8462
8463         * lists.c (unused_insn_list, unused_expr_list): New file for
8464         maintaining various types of lists. New statics for maintaining a
8465         cache of available INSN_LIST and EXPR_LIST nodes.
8466         (free_list): Static function for freeing a list of INSN/EXPR nodes.
8467         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
8468         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
8469         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
8470         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
8471         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
8472         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
8473         (free_INSN_LIST_node): Free an individual INSN_LIST node.
8474         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
8475         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
8476         (remove_dependence, free_pending_lists): Use new global routines.
8477         (flush_pending_lists, sched_analyze_insn): Use new global routines.
8478         (sched_analyze, compute_block_backward_dependences): Use new routines.
8479         (sched_analyze_1, sched_analyze_2): Use new routines.
8480         (schedule_insns): Use new global routines.
8481         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
8482         prototypes.
8483         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
8484         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
8485         prototypes.
8486         * toplev.c (rest_of_compilation): Initialize node cache.
8487         * Makefile.in (OBJS): Add lists.o to list of object files.
8488         (lists.o): Add dependancies.
8489
8490 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
8491
8492         * config/v850/v850.md: Fix compile time warning messages.
8493         * config/v850/v850.c: Fix compile time warning messages.
8494         * config/v850/v850.h: Fix compile time warning messages.
8495
8496 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8497
8498         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
8499         Remove unused prototype for `init_lengths'.
8500
8501 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8502
8503         * calls.c (emit_call_1): Mark parameter `stack_size' with
8504         ATTRIBUTE_UNUSED.
8505         (expand_call): Initialize variable `insn'.
8506         (emit_library_call): Likewise for variable `high_to_save'.
8507         (emit_library_call_value): Likewise.
8508         (store_one_arg): Likewise for variables `lower_bound' and
8509         `upper_bound'.
8510
8511         * combine.c (try_combine): Likewise for variables `i2_code_number'
8512         and `other_code_number'.
8513         (find_split_point): Likewise for variables `pos', `unsignedp' and
8514         `inner'.
8515         (simplify_if_then_else): Likewise for variables `op' and `c1'.
8516         (simplify_and_const_int): Remove unused variable `width'.
8517         (merge_outer_ops): Likewise.
8518
8519         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
8520         HOST_WIDE_INT' when comparing against one.
8521         (simplify_relational_operation): Likewise.
8522         (cse_insn): Initialize variables `src_eqv_volatile',
8523         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
8524
8525         * final.c (init_final): Constify parameter `filename'.
8526         (final_start_function): Mark parameter `optimize' with
8527         ATTRIBUTE_UNUSED.
8528         (profile_function): Likewise for parameters `first' and `optimize'.
8529         (output_source_line): Likewise for parameter `file'.
8530
8531         * integrate.c (subst_constants): Cast a value to `size_t' when
8532         comparing against one.
8533         (mark_stores): Initialize variable `mode'.  Cast a value to
8534         `size_t' when comparing against one.
8535
8536         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
8537
8538         * loop.c (move_movables): Initialize variable `first'.
8539         (strength_reduce): Likewise for variable `increment'.
8540         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
8541         value to `size_t' when comparing against one.
8542         (load_mems): Initialize variable `end_label'.
8543
8544         * output.h (init_final): Constify parameter.
8545
8546         * reload.c (decompose): Initialize variable `base'.
8547
8548         * reload1.c (reload): Likewise for variable `is_scalar'.
8549         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
8550         (choose_reload_regs): Initialize variable `mode'.
8551         (emit_reload_insns): Likewise for variable `store_insn'.
8552         (reload_cse_noop_set_p): Mark parameter `insn' with
8553         ATTRIBUTE_UNUSED.
8554         (reload_combine): Initialize variable `set'.
8555
8556         * unroll.c (unroll_loop): Likewise for variable `local_label'.
8557         (copy_loop_body): Cast a value to `size_t' when comparing against
8558         one.
8559
8560         * varasm.c (assemble_variable): Initialize variable `size_tree'.
8561         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
8562         (remove_from_pending_weak_list): Mark parameter `name' with
8563         ATTRIBUTE_UNUSED.
8564
8565 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8566
8567         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
8568         gcse dump file.
8569
8570 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
8571
8572         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
8573         (ASM_DECLARE_FUNCTION_NAME): Define.
8574         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
8575         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
8576         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
8577         not already defined.
8578
8579 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8580
8581         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
8582         of n_popped when call/call_value are not defined.
8583
8584 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
8585
8586         * tm.texi: GNU CC -> GCC conversion.
8587         (CC1_SPEC): Indicate it is used for all language front ends.
8588
8589 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
8590
8591         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
8592         NOTE_INSN_EH_REGION_END correctly.
8593
8594 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
8595                           Jeff Law <law@cygnus.com>
8596
8597         * loop.c (strength_reduce): Automatically unroll loops if the
8598         unrolled loop size is smaller than the rolled loop size.
8599
8600         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
8601         and delete comment that code should be rewritten.
8602
8603 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
8604
8605         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
8606         as reachable.
8607
8608         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
8609
8610 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8611
8612         * fixinc/mkfixinc.sh: Don't fix uwin headers.
8613         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
8614         (LINK_SPEC): Add -u _main when building executables.
8615         (ASM_DECLARE_FUNCTION): Update from Cygwin.
8616         (ASM_FILE_END): Use the default for ix86-pe.
8617         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
8618
8619 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
8620
8621         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
8622         and ASM_CLOSE_PAREN are empty strings.
8623
8624 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
8625                           Geoffrey Keating <geoffk@cygnus.com>
8626
8627         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
8628         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
8629         (unprotoize.o): Ditto.
8630         (test-protoize-simple): Don't define STD_PROTO_DIR.
8631         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
8632         changes to make 'test-protoize-simple' pass.
8633         (STD_PROTO_DIR): Remove define.
8634         (STANDARD_EXEC_PREFIX): Supply default define.
8635         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
8636         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
8637         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
8638         (GET_ENV_PATH_LIST): New macro.
8639         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
8640         (do_processing): Initialize default_syscalls_dir using new
8641         macros.  Use it to initialize syscalls_absolute_filename.
8642
8643 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
8644
8645         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
8646         B into a register before emit_conditional_move.
8647
8648 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
8649
8650         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
8651         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
8652         multiplicand out of (+ (* a b) (* c d)).
8653
8654 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
8655                           Richard Henderson  <rth@cygnus.com>
8656
8657         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
8658         (new_insn_dead_notes): Likewise.
8659         (update_n_sets): Likewise.
8660         (update_flow_info): Move to flow.c, renamed to update_life_info;
8661         extend to handle multiple source insns.
8662         * flow.c: Include resource.h
8663         (unlink_insn_chain): New.
8664         (split_hard_reg_notes): New.
8665         (maybe_add_dead_note): New.
8666         (maybe_add_dead_note_use): New.
8667         (find_insn_with_note): New.
8668         (new_insn_dead_notes): New.
8669         (update_n_sets): New.
8670         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
8671         (maybe_remove_dead_notes): New.
8672         (update_life_info): New.
8673         (prepend_reg_notes): New.
8674         (replace_insns): New.
8675         * output.h (update_life_info): Declare.
8676         * recog.c (split_block_insns): Use update_life_info.
8677         * resource.c (find_free_register): Use reg_alloc_order, don't use
8678         fixed regs, make sure the mode is supported, don't use new regs.
8679         (reg_dead_p): New.
8680         * rtl.h (replace_insns): Declare.
8681
8682 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
8683
8684         * expr.c (expand_expr): Cope with COND_EXPRs with one
8685         non-returning branch.
8686
8687 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
8688
8689         * expr.c (store_expr): Always pass down the target, even when not
8690         doing CSE.
8691
8692 1999-08-24  Nick Clifton  <nickc@cygnus.com>
8693
8694         * configure.in: Define target_cpu_default for v850 targets.
8695         * configure: Regenerate
8696
8697         * config/v850/v850.h (TARGET_CPU_generic): Define.
8698         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
8699         addresses are 4 byte aligned.
8700
8701         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
8702         addresses.
8703
8704 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8705
8706         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
8707         (main): Add prototypes.
8708
8709         * genattrtab.c (substitute_address, write_const_num_delay_slots,
8710         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
8711         (write_attr_get): Emit prototypes along with function definition.
8712         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
8713         (write_complex_function): Emit static prototype along with
8714         function definition.
8715
8716         * genemit.c (gen_split): Emit prototypes along with function
8717         definition.
8718
8719         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
8720         Likewise for predicates and `insn_operand_predicate'.
8721         (process_template): Emit static prototype along with function
8722         definition.
8723
8724         * genrecog.c (make_insn_sequence): Constify a char*.  Add
8725         prototypes for get_split_*().
8726         (write_subroutine): Emit prototypes along with function
8727         definition.
8728
8729 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8730
8731         * gcse.c (find_avail_set): Follow chains of register-register copies.
8732         Use oprs_not_set_p to guarantee that the returned value can be
8733         substituted.
8734         (cprop_insn): Don't verify the return value of find_avail_set with
8735         oprs_not_set_p.
8736
8737         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
8738         (cprop_cc0_jump): New function.
8739         (cprop_insn): Break out new function cprop_jump and use it.
8740         Also use cprop_cc0_jump for machines with CC0.
8741         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
8742
8743         * tree.h (current_function_calls_setjmp,
8744         current_function_calls_longjmp): Delete declarations.
8745         * dsp16xx.c: Include "function.h".
8746         * elxsi.c: Likewise.
8747         * gmicro.c: Likewise.
8748         * h8300.c: Likewise.
8749         * i370.c: Likewise.
8750         * m32r.c: Likewise.
8751         * mn10200.c: Likewise.
8752         * mn10300.c: Likewise.
8753         * ns32k.c: Likewise.
8754         * spur.c: Likewise.
8755         * v850.c: Likewise.
8756
8757         * rtl.h (rtx_equal_function_value_matters): Declare.
8758         * toplev.c (rtx_equal_function_value_matters): Don't declare.
8759         * cse.c: Likewise.
8760         * function.c: Likewise.
8761         * emit-rtl.c: Likewise.
8762
8763 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
8764
8765         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
8766         call.
8767
8768 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8769
8770         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
8771         exactly.
8772
8773 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
8774
8775         * cpp.texi: Add a node documenting macro varargs (copied
8776         from extend.texi).
8777
8778 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
8779
8780         * cppspec.c: Put a null pointer at the end of the new argv.
8781
8782 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
8783
8784         * configure.in: Remove code to select/de-select the haifa
8785         scheduler.  Every scheduled port gets haifa now.
8786         * configure: Rebuilt.
8787         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
8788         * sched.c Deleted.
8789         * Makefile.in: Corresponding changes.
8790
8791 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8792
8793         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
8794         All callers changed.
8795         (prepare_float_lib_cmp): Likewise.
8796         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
8797         * expr.h (emit_float_lib_cmp): Delete declaration.
8798         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
8799         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
8800         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
8801         specially.
8802         (cmptf): Now conditional on TARGET_HARD_QUAD.
8803
8804 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
8805
8806         * resource.c (mark_target_live_regs): Use
8807         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
8808
8809 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8810
8811         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
8812
8813         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
8814
8815         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
8816
8817 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8818
8819         * rtl.h (rtx_format): Constify a char*.
8820
8821         * rtl.c (rtx_format): Likewise.
8822         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
8823         (init_rtl): Use accessor macro, not `rtx_format'.
8824
8825         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
8826         char*.
8827
8828         * caller-save.c (mark_referenced_regs): Likewise.
8829
8830         * combine.c (subst, make_compound_operation, known_cond,
8831         gen_rtx_combine, update_table_tick, get_last_value_validate,
8832         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
8833
8834         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
8835         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
8836         count_reg_usage): Likewise.
8837
8838         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
8839         Likewise.
8840
8841         * final.c (leaf_renumber_regs_insn): Likewise.
8842
8843         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
8844         dump_edge_info, count_reg_references): Likewise.
8845
8846         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
8847         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
8848         Likewise.
8849
8850         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
8851         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
8852         add_label_notes): Likewise.
8853
8854         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
8855         clear_struct_flag, count_sub_rtxs, count_alternatives,
8856         compares_alternatives_p, contained_in_p, walk_attr_value,
8857         write_expr_attr_cache): Likewise.
8858
8859         * genconfig.c (walk_insn_part): Likewise.
8860
8861         * genemit.c (max_operand_1, gen_exp): Likewise.
8862
8863         * genextract.c (walk_rtx): Likewise.
8864
8865         * genflags.c (num_operands): Likewise.
8866
8867         * genoutput.c (scan_operands): Likewise.
8868
8869         * genpeep.c (match_rtx): Likewise.
8870
8871         * genrecog.c (add_to_sequence): Likewise.
8872
8873         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
8874         Likewise.
8875
8876         * integrate.c (save_constants, copy_for_inline,
8877         copy_rtx_and_substitute, subst_constants, restore_constants):
8878         Likewise.
8879
8880         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
8881         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
8882
8883         * local-alloc.c (contains_replace_regs, memref_referenced_p):
8884         Likewise.
8885
8886         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
8887         add_label_notes, replace_call_address, count_nonfixed_reads,
8888         invariant_p, find_single_use_in_loop, find_mem_givs,
8889         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
8890         Likewise.
8891
8892         * print-rtl.c (reg_names, print_rtx): Likewise.
8893
8894         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
8895
8896         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
8897         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
8898         print_blocks): Likewise.
8899
8900         * regclass.c (fix_register, record_address_regs,
8901         reg_scan_mark_refs): Likewise.
8902
8903         * regmove.c (stable_but_for_p): Likewise.
8904
8905         * reload.c (loc_mentioned_in_p, operands_match_p,
8906         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
8907         copy_replacements, refers_to_regno_for_reload_p,
8908         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
8909         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
8910         Likewise.
8911
8912         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
8913         delete_address_reloads_1, count_occurrences,
8914         reload_cse_mem_conflict_p, reload_combine_note_use,
8915         add_auto_inc_notes): Likewise.
8916
8917         * resource.c (mark_referenced_resources, mark_set_resources):
8918         Likewise.
8919
8920         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
8921         reg_mentioned_p, regs_set_between_p, modified_between_p,
8922         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
8923         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
8924         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
8925         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
8926
8927         * sched.c (sched_analyze_2, attach_deaths): Likewise.
8928
8929         * stupid.c (stupid_mark_refs): Likewise.
8930
8931         * unroll.c (remap_split_bivs): Likewise.
8932
8933         * varasm.c (mark_constants): Likewise.
8934
8935         * a29k/a29k.c (uses_local_reg_p): Likewise.
8936
8937         * alpha/alpha.c (summarize_insn): Likewise.
8938
8939         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
8940         eliminate_lr2ip): Likewise.
8941
8942         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
8943
8944         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
8945         reg_mentioned_in_mem): Likewise.
8946
8947         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
8948         symbolic_reference_mentioned_p): Likewise.
8949
8950         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
8951
8952         * sh/sh.c (regs_used, mark_use): Likewise.
8953
8954         * vax/vax.c (vax_rtx_cost): Likewise.
8955
8956 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8957
8958         * machmode.h (mode_name): Constify a char*.
8959
8960         * rtl.c (mode_name): Likewise.
8961
8962         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
8963
8964         * optabs.c (init_libfuncs): Constify a char*.
8965
8966         * print-tree.c (mode_name): Remove redundant declaration.
8967         (print_node): Use accessor macro, not `mode_name'.
8968
8969         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
8970         not `mode_name'.
8971         (new_spill_reg): Constify a char*.
8972
8973         * tree.c (mode_name): Remove redundant declaration.
8974
8975 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8976
8977         * rtl.c (rtx_name): Constify a char*.
8978
8979         * rtl.h (rtx_name, fix_sched_param): Likewise.
8980
8981         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
8982         (mypr): Use accessor macro, not `rtx_name'.
8983
8984         * genemit.c (print_code): Constify a char*.
8985
8986         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
8987
8988         * genpeep.c (print_code): Constify a char*.
8989
8990         * genrecog.c (print_code): Likewise.
8991
8992         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
8993         end_bb): Add static prototype.
8994         (draw_edge): Constify a char*.
8995         (end_bb): Remove unused parameter.
8996
8997         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
8998         print_block_visualization): Constify a char*.
8999
9000 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
9001
9002         * c-common.c (c_get_alias_set): Update comment.
9003
9004 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
9005
9006         * linux.h (LIB_SPEC): Added.
9007
9008 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9009
9010         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
9011
9012 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
9013
9014         * tree.c (expr_check): Fix typo in last change.
9015
9016 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
9017
9018         * rtl.def (NOTE): Change format to "iuu0n".
9019         (ADDR_DIFF_VEC): Change format to "eEee0".
9020         (ADDRESSOF): Change format to "eit".
9021
9022         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
9023         (RTVEC_ELT): Change to match.
9024         (XVECEXP): Use XVEC and RTVEC_ELT.
9025         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
9026         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
9027         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
9028         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
9029         TRAP_CONDITION, TRAP_CODE): Use XEXP.
9030         (INTVAL): Use XWINT.
9031         (ADDRESSOF_DECL): Use XTREE.
9032         (SET_ADDRESSOF_DECL): Delete.
9033         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
9034         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
9035         ifdefed out since 2.6 at least.
9036         (gen_rtvec_vv): Delete prototype.
9037
9038         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
9039         not rtunion.
9040         (copy_most_rtx): Handle 't' format letter.
9041         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
9042         (gen_rtvec_vv): Delete function.  All callers changed to use
9043         gen_rtvec_v instead.
9044         * print-rtl.c (print_rtx): Move special casing of NOTEs to
9045         the '0' format letter.
9046
9047         * function.c (gen_mem_addressof): Don't use
9048         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
9049         instead.
9050         * integrate.c (copy_rtx_and_substitute): Likewise.
9051         Copy 't' slots with XTREE.
9052         (subst_constants): Treat 't' slots like '[swi]' slots.
9053         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
9054         * jump.c (rtx_equal_for_thread_p): Likewise.
9055         * rtlanal.c (rtx_equal_p): Likewise.
9056         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
9057         only four arguments.
9058         * gengenrtl.c (type_from_format): Provide correct types for
9059         'b' and 't' slots.
9060
9061
9062         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
9063         If a recent gcc is in use (always in stage2 and beyond), use
9064         statement expressions, so we don't make a function call unless
9065         the check fails.  Evaluate arguments exactly once.
9066         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
9067         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
9068         Delete.
9069         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
9070         they evaluate their arguments exactly once, irrespective of
9071         the compiler in use.
9072
9073         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
9074         is used by the currently-enabled check macros.  This is:
9075         (tree_check_failed, tree_class_check_failed): For gcc.
9076         (tree_check, tree_class_check, cst_or_constructor_check,
9077         expr_check): For other compilers.
9078
9079         * gencheck.c: Do not define any *_CHECK1 macros.
9080
9081 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
9082                           Mark Mitchell <mark@codesourcery.com>
9083
9084         * c-common.c (c_get_alias_set): Fix support for poitners and
9085         references.
9086
9087 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
9088
9089         * alias.c: Include tree.h.
9090         (nonlocal_reference_p, mark_constant_function): New functions.
9091         * flow.c (life_analysis): Call mark_constant_function.
9092         * rtl.h (mark_constant_function): Declare it.
9093
9094 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
9095
9096         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
9097         unrecognisable switches.
9098
9099 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9100
9101         * loop.c (recombine_givs): Set ix field after sorting.
9102         (recombine_givs): Remove bogus index / giv lockstep looping.
9103
9104 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9105
9106         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
9107         on CODE.
9108         (emit_store_flag_force): Use do_compare_rtx_and_jump.
9109         (do_cmp_and_jump): Formatting fixes.
9110         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
9111         do_compare_rtx_and_jump instead of compare_from_rtx.
9112         (do_compare_rtx_and_jump): New function; mostly copied from
9113         compare_from_rtx.
9114         (do_jump_for_compare): Delete.
9115         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
9116         MIN_EXPR.
9117         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
9118         of compare/do_jump_for_compare pairs.
9119         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
9120         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
9121         compare_from_rtx/do_jump_for_compare pairs.
9122         (do_jump_by_parts_equality): Likewise.
9123         (do_jump_by_parts_equality_rtx): Likewise.
9124         * expr.h (do_compare_rtx_and_jump): Declare.
9125         * optabs.c (prepare_cmp_insn): New function, contains most of the code
9126         that used to be in emit_cmp_insn.
9127         (cmp_available_p): New function.
9128         (prepare_operand): New function.
9129         (emit_cmp_and_jump_insn_1): New function, contains some code that used
9130         to be in emit_cmp_insn.
9131         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
9132         parameters to be pointers; don't emit final compare but modify some of
9133         the values pointed to by the args so the caller can perform the
9134         correct comparison.
9135         (expand_binop): Call emit_store_flag_force with signed forms of
9136         comparison code.
9137         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
9138         emit_jump_insn pair.
9139         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
9140         emit_cmp_and_jump_insn_1.  Call emit_queue.
9141         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
9142         arg.
9143         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
9144         jump sets cc0 before deleting it.
9145         * integrate.c (expand_inline_function): Likewise.
9146         * unroll.c (unroll_loop): Similar changes in several places.
9147         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
9148         before deleting it.
9149
9150 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9151
9152         * Makefile.in (insn-recog.o): Update dependencies.
9153         * genrecog.c (main): Make generated file include "function.h".
9154
9155 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
9156
9157         * cse.c (cse_insn): Call never_reached_warning when a jump is
9158         changed to be unconditional.
9159         * flags.h: Declare warn_notreached.
9160         * flow.c (delete_block): Call never_reached_warning when
9161         a block is deleted.
9162         * jump.c (delete_barrier_successors): Call never_reached_warning
9163         when we delete everything after a BARRIER.
9164         (never_reached_warning): New function.
9165         * rtl.h: Declare never_reached_warning.
9166         * toplev.c (warn_notreached): New variable.
9167         (lang_independent_options): Set warn_notreached
9168         when -Wunreachable-code.
9169         (compile_file): We need line numbers for -Wunreachable-code.
9170
9171 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
9172
9173         * haifa-sched.c (insn_unit): Fix typo on out of range test.
9174         * sched.c (insn_unit): Likewise.
9175
9176 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
9177
9178         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
9179
9180 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9181
9182         * flow.c (create_edge_list): Use xmalloc, not malloc.
9183
9184 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
9185
9186         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
9187         C-style comments.  Do not lose the character before double slash.
9188
9189 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9190
9191         * basic-block.h (struct edge_list): Stucture to maintain a vector
9192         of edges.
9193         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
9194          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
9195         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
9196         New function prototypes.
9197         * flow.c (create_edge_list): Function to create an edge list.
9198         (free_edge_list): Discards memory used by an edge list.
9199         (print_edge_list): Debug output showing an edge list.
9200         (verify_edge_list): Internal consistency check for an edge list.
9201         (find_edge_index): Function to find an edge index for a pred and succ.
9202
9203 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
9204
9205         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
9206         hashtable.
9207
9208 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
9209
9210         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
9211
9212 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9213
9214         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9215
9216 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
9217
9218         * toplev.c (rest_of_compilation): Allow machine dependent
9219         reorganisation pass to place information into the RTL dump
9220         file if it so wishes.
9221
9222 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
9223
9224         * explow.c (hard_function_value): Use VOIDmode instead of
9225         MAX_MACHINE_MODE.
9226         * stmt.c (expand_return): Likewise.
9227         * stor-layout.c (get_best_mode): Likewise.
9228
9229         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
9230         emit call instead of emit_insn call.
9231
9232 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9233
9234         * configure.in: Handle --disable/enable-win32-registry.
9235         * install.texi: Document --disable/enable-win32-registry.
9236         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
9237         (WIN32_REGISTRY_KEY): New macro.
9238         * prefix.c: Use to enable/disable win32-specific code.
9239         (lookup_key): Use versioned key.
9240         * configure: Regenerate.
9241         * config.in: Likewise.
9242
9243 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
9244
9245         * cpplib.c (read_line_number): New fn, split out of...
9246         (do_line): Here.
9247
9248 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
9249
9250         tree.c (lang_unsave_expr_now) : New.
9251         (unsave_expr_now): Call lang_unsave_expr_now.
9252         tree.h (lang_unsave_expr_now) : New.
9253
9254 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
9255
9256         * toplev.c (flag_new_exceptions): On by default.
9257
9258 1999-08-13  Michael Meissner  <meissner@cygnus.com>
9259
9260         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
9261
9262 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
9263
9264         * dwarfout.c (fundamental_type_code): Return FT_boolean for
9265         INTEGER_TYPE with precision==1, it's __java_boolean.
9266
9267 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9268
9269         * global.c (prune_preferences): Move some invariants out of the
9270         inner loop.
9271
9272 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
9273
9274         * configure.in (alpha*-dec-osf*): Add osf5.
9275
9276 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
9277
9278         * configure.in: Rework handling of ARM GNU/Linux slightly.
9279         (arm*-*-linux-gnuoldld): New target.
9280         * configure: Regenerate.
9281         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
9282         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
9283         * config/arm/linux-oldld.h: New file.
9284         * config/arm/linux-elf26.h: Don't include linux-elf.h.
9285         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
9286         Don't define.
9287         * config/arm/linux-elf.h (ASM_SPEC): Define.
9288         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
9289         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
9290         for 26-bit APCS and old linker.
9291         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
9292         `arm_elf'.
9293         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
9294         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
9295         don't define `arm' or `arm_elf'.
9296         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
9297         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
9298
9299 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
9300
9301         * rtl.texi: Fix typo.
9302
9303 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
9304
9305         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
9306
9307 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
9308
9309         * extend.texi (C++ Signatures): Remove node.
9310         * invoke.texi: Remove discussion of -fhandle-signatures,
9311         signature, sigof, __signature__, and __sigof__.
9312
9313 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
9314
9315         * Makefile.in (JAVAGC): Removed.
9316
9317 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9318
9319         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
9320
9321 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
9322
9323         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
9324
9325 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
9326
9327         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
9328         a register that is already known to be a pointer.
9329
9330 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
9331
9332         * fixinc/inclhack.tpl: Only install assert.h conditionally.
9333         * fixinc/inclhack.sh: Regenerated.
9334         * fixinc/fixincl.sh: Regenerated.
9335
9336 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
9337
9338         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
9339         Fix documentation of -ansi flag to describe its C++ behavior.
9340         Remove bogus reference to GCC 2.9.
9341
9342 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
9343
9344         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
9345         note if it is non-NULL.
9346
9347 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9348
9349         * except.h (eh_nesting_info): Add new structure defintion.
9350         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
9351         (reachable_handlers, update_rethrow_references): Add function
9352         prototypes.
9353         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
9354         a rethrow symbol instead of an integer exception region number.
9355         * flow.c (Make_edges): Use new exception nesting routines to determine
9356         which handlers are reachable from a CALL or asynchronous insn.
9357         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
9358         goto receivers.
9359         (delete_eh_regions): Update rethrow labels, and don't delete
9360         regions which are the target of a rethrow.
9361         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
9362         avoid overloading the SYMBOL_REF_USED flag.
9363         (rethrow_symbol_map): Use new rethrow_ref field.
9364         (rethrow_used): Use new rethrow_ref field.
9365         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
9366         of an integer.  Fix formatting.
9367         (output_exception_table_entry): Use new rethrow_ref field.
9368         (can_throw): Check for EH_REGION_NOTE before deciding
9369         whether a CALL can throw or not.
9370         (scan_region): Call rethrow_used() instead of accessing data structure.
9371         (update_rethrow_references): New function to make sure only regions
9372         which are still targets of a rethrow are flagged as such.
9373         (process_nestinfo): New static function to initialize a handler
9374         list for a specific region.
9375         (init_eh_nesting_info): New function to allocate and initialize
9376         the list of all EH handlers reachable from all regions.
9377         (reachable_handlers): New function to retrieve the list of handlers
9378         reachable from a specific region and insn.
9379         (free_eh_nesting_info): New function to dispose of a list of
9380         reachable handlers.
9381
9382 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9383
9384         * flow.c (split_edge): Set JUMP_LABEL field.
9385         (commit_one_edge_insertion): Set head correctly for insert_before.
9386         When inserting insns, update insn block numbers if allocated.
9387
9388 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9389
9390         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
9391         retry_incomplete_types): Add static prototype.
9392         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
9393         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
9394         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
9395         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
9396         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
9397         Constify a char*.
9398
9399         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
9400         dwarf2out_start_source_file, dwarf2out_line): Likewise.
9401
9402 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9403
9404         * output.h (assemble_name): Constify a char*.
9405
9406         * varasm.c (UNIQUE_SECTION, assemble_start_function,
9407         assemble_variable, assemble_name): Likewise.
9408
9409         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
9410
9411         * arm/pe.c (arm_pe_unique_section): Likewise.
9412
9413         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
9414
9415         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
9416
9417         * i386/interix.c (i386_pe_unique_section): Likewise.
9418
9419         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
9420
9421         * i386/winnt.c (i386_pe_unique_section): Likewise.
9422
9423         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
9424
9425         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
9426
9427         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
9428
9429         * pa/pa.c (output_call): Likewise.
9430
9431         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
9432
9433         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
9434
9435         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
9436         Likewise.
9437
9438         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
9439         Likewise.
9440
9441         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
9442
9443         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
9444         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
9445
9446         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
9447
9448 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9449
9450         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
9451
9452 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9453
9454         * tree.h (lang_identify): Constify a char*.
9455         (print_error_function): Add extern prototype.  Constify a char*.
9456
9457         * c-lang.c (lang_identify): Constify a char*.
9458
9459         * objc/objc-act.c (lang_identify): Constify a char*.
9460
9461 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9462
9463         * genpeep.c (main): Make generated file include "function.h".
9464         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
9465
9466 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9467
9468         * Makefile.in: Update dependencies.
9469         * alias.c: Include "function.h"
9470         * c-decl.c: Likewise.
9471         * caller-save.c: Likewise.
9472         * calls.c: Likewise.
9473         * combine.c: Likewise.
9474         * cse.c: Likewise.
9475         * explow.c: Likewise.
9476         * final.c: Likewise.
9477         * global.c: Likewise.
9478         * graph.c: Likewise.
9479         * local-alloc.c: Likewise.
9480         * loop.c: Likewise.
9481         * optabs.c: Likewise.
9482         * profile.c: Likewise.
9483         * recog.c: Likewise.
9484         * regclass.c: Likewise.
9485         * regmove.c: Likewise.
9486         * reload.c: Likewise.
9487         * reorg.c: Likewise.
9488         * resource.c: Likewise.
9489         * sched.c: Likewise.
9490         * stupid.c: Likewise.
9491         * config/1750a/1750a.c: Likewise.
9492         * config/a29k/a29k.c: Likewise.
9493         * config/arc/arc.c: Likewise.
9494         * config/arm/arm.c: Likewise.
9495         * config/arm/thumb.c: Likewise.
9496         * config/c4x/c4x.c: Likewise.
9497         * config/clipper/clipper.c: Likewise.
9498         * config/convex/convex.c: Likewise.
9499         * config/fx80/fx80.c: Likewise.
9500         * config/i860/i860.c: Likewise.
9501         * config/m68k/m68k.c: Likewise.
9502         * config/m88k/m88k.c: Likewise.
9503         * config/mips/mips.c: Likewise.
9504         * config/pdp11/pdp11.c: Likewise.
9505         * config/pyr/pyr.c: Likewise.
9506         * config/romp/romp.c: Likewise.
9507         * config/sh/sh.c: Likewise.
9508         * config/tahoe/tahoe.c: Likewise.
9509         * config/vax/vax.c: Likewise.
9510         * config/we32k/we32k.c: Likewise.
9511         * config/sparc/sparc.c: Include "function.h".
9512         (mem_min_alignment): Test current_function rather than
9513         regno_pointer_align.
9514         * config/pa/pa.c: Likewise.
9515         (compute_frame_size): Delete declaration of
9516         current_function_outgoing_args_size.
9517         * config/arc/arc.h (current_function_varargs): Delete declaration.
9518         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
9519         declaration.
9520         * config/i370/i370.h (current_function_outgoing_args_size): Delete
9521         declaration.
9522         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
9523         current_function_uses_pic_offset_table.
9524         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
9525         of current_function_returns_pointer.
9526         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9527         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9528         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9529         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9530         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9531         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9532         * config/m88k/m88k.c: Include "function.h"
9533         (call_used_regs, current_function_pretend_args_size,
9534         current_function_outgoing_args_size, frame_pointer_needed): Delete
9535         declarations.
9536         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
9537         declaration.
9538         * config/mips/mips.h (current_function_calls_alloca): Delete
9539         declaration.
9540         * config/mn10200/mn10200.h (current_function_needs_context,
9541         rtx_equal_function_value_matters): Delete declarations.
9542         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
9543         flag_pic): Delete declarations.
9544         * config/pa/pa.h (current_function_pretend_args_size,
9545         current_function_decl): Delete declarations.
9546         * config/pa/som.h (current_function_varargs): Delete declaration.
9547         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
9548         declaration.
9549         * config/pyr/pyr.h (current_function_pretend_args_size,
9550         current_function_args_size, current_function_calls_alloca): Delete
9551         declarations.
9552         * config/sh/sh.h (current_function_varargs): Delete declaration.
9553         * config/sparc/sparc.h (current_function_outgoing_args_size,
9554         current_function_calls_alloca, current_function_decl): Delete
9555         declarations.
9556         * config/spur/spur.h (current_function_pretend_args_size,
9557         current_function_calls_alloca): Delete declarations.
9558         * config/v850/v850.c (current_function_outgoing_args_size): Delete
9559         declaration.
9560         * config/vax/vms.h (current_function_name): Delete declaration.
9561         * gcse.c: Include "function.h".
9562         (current_function_name, current_function_calls_setjmp): Delete
9563         declarations.
9564         * haifa-sched.c: Include "function.h".
9565         (forced_labels): Delete declaration.
9566         * jump.c: Likewise.
9567         * reg-stack.c: Likewise.
9568         * reload1.c: Likewise.
9569         * genemit.c (main): Make generated file include function.h.
9570         * genoutput.c (output_prologue): Likewise.
9571
9572         * builtins.c (saveregs_value, apply_args_value): Delete variables.
9573         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
9574         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
9575         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
9576         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
9577         macros for some of them.
9578         (emit_filename, emit_lineno): Delete declarations.
9579         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
9580         regno_pointer_* variables through current_function.
9581         (gen_inline_header_rtx): Delete function.
9582         (save_emit_status): Delete function.
9583         (set_new_last_label_num): New function.
9584         (clear_emit_caches): New function.
9585         (restore_emit_status): Just clear last_labelnum and call
9586         clear_emit_caches.
9587         (get_last_insn_anywhere): Variable sequence_stack is now accessed
9588         through macro seq_stack.
9589         (add_insn_after): Likewise.
9590         (add_insn_before): Likewise.
9591         (remove_insn): Likewise.
9592         (pop_topmost_sequence): Likewise.
9593         (in_sequence_p): Likewise.
9594         (start_sequence_for_rtl_expr): Likewise.
9595         (start_sequence): Likewise, and likewise for
9596         sequence_rtl_expr/seq_rtl_expr.
9597         (push_topmost_sequence): Likewise.
9598         (end_sequence): Likewise.
9599         (init_virtual_regs): Now takes a "struct emit_status *" argument.
9600         All callers changed.  Store into that pointer instead of globals.
9601         (init_emit): Allocate emit elt of current_function.
9602         Changes for sequence_rtl_expr/sequence_stack renaming.
9603         Call clear_emit_caches instead of doing it in-line.
9604         Access regno_pointer_* variables through current_function.
9605         (init_emit_once) Don't clear sequence_stack.
9606
9607         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
9608         Delete variables.
9609         (arg_pointer_save_area): Delete declaration.
9610         (finish_expr_for_function): Renamed from init_queue; no longer static.
9611         (init_expr): Don't call init_queue.
9612         (save_expr_status, restore_expr_status): Delete functions.
9613         (expand_expr): Changes to reflect new layout of struct function.
9614         Don't access current_function_check_memory_usage when current_function
9615         is 0.
9616         * expr.h (forced_labels, save_expr_regs, saveregs_value,
9617         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
9618         current_function_outgoing_args_size, current_function_arg_offset_rtx,
9619         current_function_uses_const_pool, function_call_count,
9620         current_function_uses_pic_offset_table, nonlocal_labels,
9621         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
9622         current_function_check_memory_usage, nonlocal_goto_handler_slots,
9623         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
9624         declarations.
9625         (finish_expr_for_function): Declare.
9626         * flags.h (current_function_has_nonlocal_label,
9627         current_function_has_nonlocal_goto, current_function_is_thunk,
9628         current_function_has_computed_jump): Delete declarations.
9629         * flow.c (forced_labels): Delete declaration.
9630         * function.c (current_function_pops_args,
9631         current_function_returns_struct, current_function_returns_pcc_struct,
9632         current_function_needs_context, current_function_calls_setjmp,
9633         current_function_calls_longjmp, current_function_has_nonlocal_label,
9634         current_function_has_nonlocal_goto, current_function_is_thunk,
9635         current_function_has_computed_jump, current_function_calls_alloca,
9636         current_function_contains_functions, current_function_returns_pointer,
9637         current_function_epilogue_delay_list, current_function_args_size,
9638         current_function_pretend_args_size, current_function_arg_offset_rtx,
9639         current_function_outgoing_args_size, current_function_varargs,
9640         current_function_stdarg, current_function_args_info, cleanup_label,
9641         current_function_name, current_function_uses_const_pool,
9642         current_function_instrument_entry_exit, current_function_return_rtx,
9643         current_function_uses_pic_offset_table, nonlocal_labels,
9644         current_function_internal_arg_pointer, current_function_cannot_inline,
9645         current_function_check_memory_usage, function_call_count,
9646         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
9647         nonlocal_goto_stack_level, return_label, save_expr_regs,
9648         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
9649         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
9650         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
9651         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
9652         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
9653         Delete variables.
9654         (push_function_context_to): Don't save them.  Don't call
9655         save_storage_status, save_emit_status or save_expr_status.
9656         (pop_function_context_from): Don't restore them.  Don't call
9657         restore_storage_status or restore_expr_status.
9658         (get_func_frame_size): New function.
9659         (get_frame_size): Use it.
9660         (assign_outer_stack_local): Reflect some member name changes in struct
9661         function.
9662         (put_reg_into_stack): Likewise.
9663         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
9664         seq_rtl_expr.
9665         (fixup_var_refs): Likewise.
9666         (fix_lexical_addr): Likewise.
9667         (trampoline_address): Likewise.
9668         (prepare_function_start): Clear field inlinable of current_function.
9669         (init_function_for_compilation): New function.
9670         (expand_dummy_function_end): New function.
9671         (expand_function_end): Call finish_expr_for_function.
9672         * function.h (struct emit_status): New; fields moved here from struct
9673         function and from global variables.  Add accessor macros for some of
9674         the fields.
9675         (struct expr_status): Likewise.
9676         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
9677         (struct function): Add fields expr and emit, inlinable, inl_emit,
9678         original_arg_vector, original_decl_initial, inl_last_parm_insn,
9679         inl_max_label_num.  Add many comments.
9680         Add accessor macros for all elts of struct function that no longer
9681         have a global variable.
9682         (cleanup_label, return_label, frame_offset, tail_recursion_label,
9683         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
9684         stack_slot_list): Delete declarations.
9685         (get_func_frame_size): Declare.
9686         (save_expr_status, restore_expr_status, save_emit_status,
9687         save_storage_status, restore_storage_status): Delete declarations.
9688         (init_virtual_regs): Declare.
9689         * output.h (current_function_pops_args,
9690         current_function_returns_struct, current_function_returns_pcc_struct,
9691         current_function_needs_context, current_function_calls_setjmp,
9692         current_function_calls_longjmp, current_function_calls_alloca,
9693         current_function_has_nonlocal_label, current_function_varargs,
9694         current_function_has_computed_jump, current_function_returns_pointer,
9695         current_function_contains_functions, current_function_args_size,
9696         current_function_pretend_args_size, current_function_stdarg,
9697         current_function_outgoing_args_size, current_function_args_info,
9698         current_function_name, current_function_return_rtx,
9699         current_function_epilogue_delay_list,
9700         current_function_uses_const_pool, current_function_cannot_inline):
9701         Delete declarations.
9702         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
9703         regno_reg_rtx): Delete declaration.
9704         (REGNO_POINTER_FLAG): Delete macro.
9705         * stmt.c (expand_goto): Changes to reflect that some fields in struct
9706         function were renamed.
9707         * stor-layout.c (save_storage_status, restore_storage_status): Delete
9708         functions.
9709         * toplev.c: Include "function.h".
9710         (current_function_decl): Delete declaration.
9711         (compile_file): Call init_dummy_function_start and
9712         expand_dummy_function_end around some initializations that need to
9713         emit rtl.
9714         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
9715         Call init_function_for_compilation.
9716         * unroll.c: Include "function.h"
9717         (unroll_loop): Access regno_pointer_* variables through
9718         current_function.
9719
9720         * tree.h (struct tree_decl): Add elt f to saved_insns member.
9721         (DECL_SAVED_INSNS): use it.
9722         (expand_dummy_function_end): Declare.
9723         (init_function_for_compilation): Declare.
9724         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
9725         that it's no longer an INLINE_HEADER.
9726         (expand_call): Likewise.
9727         * integrate.c (finish_inline): Delete function.
9728         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
9729         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
9730         args.  Don't generate an INLINE_HEADER rtx, just return the arg
9731         vector.  All callers changed.
9732         (save_for_inline_copying):  Create a duplicate struct emit_status to
9733         hold the emit state for compiling the current function.  Use this and
9734         the other new fields in struct function that are for integration
9735         instead of an INLINE_HEADER.
9736         Use memcpy instead of bcopy.
9737         Store the current struct function in DECL_SAVED_INSNS of fndecl.
9738         (save_for_inline_nocopy): Similar changes, except no new emit_status
9739         is needed here.
9740         (expand_inline_function): Get information from function structure,
9741         not from an inline header rtx.
9742         (output_inline_function): Lose code to extract the necessary
9743         information from an inline header; simply put back the function
9744         structure into current_function.  Clear its inlinable elt.
9745         * rtl.def (INLINE_HEADER): Delete.
9746         * rtl.h: Delete all accessors for an INLINE_HEADER.
9747         (gen_inline_header_rtx): Delete declaration.
9748         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
9749         Delete declarations.
9750         (REGNO_POINTER_ALIGN): Delete.
9751         (clear_emit_caches): Declare.
9752         (set_new_last_label_num): Declare.
9753
9754 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
9755
9756         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
9757
9758         * except.c (expand_eh_region_start_for_decl): Always start a new block.
9759         * stmt.c (is_eh_region): Make sure current_function is present, too.
9760
9761 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
9762
9763         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
9764         for 64bit PA targets.
9765
9766         * pa.h (SELECT_SECTION): Define.
9767         * som.h (SELECT_SECTION): Delete.
9768
9769 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9770
9771         * alias.c (init_alias_analysis): Wrap call to
9772         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
9773
9774 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
9775
9776         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
9777         <sys/asm.h> contains an asm comment with an apostrophe
9778         * fixinc/inclhack.sh:  regen
9779         * fixinc/fixincl.x:  regen
9780
9781 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
9782
9783         * function.c (init_function_start): Clear prologue & epilogue.
9784         (prologue_epilogue_contains): New function.
9785         * alias.c (init_alias_analysis): Use it.
9786         * rtl.h (prologue_epilogue_contains): Declare it.
9787
9788 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
9789
9790         * jump.c (onlyjump_p): New function.
9791         * rtl.h: Declare it.
9792         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
9793         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
9794
9795 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
9796
9797         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
9798         to invert loops.  Simplify block scanning.
9799
9800 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
9801
9802         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
9803         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
9804
9805 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
9806
9807         * config/sparc/liteelf.h: New file to support sparclite-elf target
9808         * config/sparc/t-sp86x: New file to support sparc86x targets
9809         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
9810         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
9811         * configure.in: Support above target triplets
9812         * configure: Regenerated
9813
9814 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
9815
9816         * fixinc/server.c (server_setup): Do not prefix function used as
9817         parameter with `&'.
9818
9819 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
9820
9821         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
9822         Remove fp reg alternatives.
9823
9824 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
9825
9826         * Makefile.in (TAROUTOPTS): Kill.
9827         (install-headers-tar): Use "xpf" for tar headerfile extraction
9828         * i370/x-oe (TAROUTOPTS): Delete.
9829         * m68k/x-apollo68 (TAROUTOPTS): Delete.
9830         * m68k/x-hp320 (TAROUTOPTS): Delete.
9831         * m68k/x-hp320g (TAROUTOPTS): Delete.
9832         * gcc.texi: Update bug reporting text.
9833
9834 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9835
9836         * reg-stack.c (change_stack) Fixed problem with negative array index.
9837
9838 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
9839
9840         * extend.texi, install.texi: Fix spelling mistakes.
9841
9842         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
9843         (s-attrtab); No longer try to use pre-made insn-attrtab file.
9844         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
9845         PREMADE_ATTRTAB_MD.
9846         * mips/t-ecoff: Likewise.
9847         * mips/t-elf: Likewise.
9848         * mips/t-mips: Likewise.
9849         * mips/t-osfrose: Likewise.
9850         * mips/t-r3900: Likewise.
9851         * mips/t-svr3: Likewise.
9852         * mips/t-svr4: Likewise.
9853         * mips/t-ultrix: Likewise.
9854
9855         * gcc.texi: Document recommend means to provide software floating
9856         point libraries in libgcc.a
9857
9858 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
9859
9860         * c-lex.c (yylex): We can have a number with no digits.
9861
9862 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
9863
9864         * jump.c (delete_prior_computation): New function, broken
9865         out of delete_computation.  Check for side effects with
9866         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
9867         multi-word hard registers.
9868         (delete_computation): Use it.  Check for side effects with
9869         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
9870         missing REG_DEAD note for a register which is both set and
9871         used by an insn.
9872
9873 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
9874
9875         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
9876         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
9877         (ASM_FILE_START): Import _mcount with the right type.
9878         (ASM_DECLARE_FUNCTION_NAME): Define.
9879         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
9880         * pa.c (output_function_prologue): Always emit the function's label
9881         here.
9882         * pa.h (TEXT_SPACE_P): Define.
9883         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
9884         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
9885         * som.h (TEXT_SPACE_P): Delete.
9886         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
9887         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
9888
9889 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
9890
9891         * expr.c (emit_group_load): Allow src to be a CONCAT.
9892
9893 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9894
9895         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
9896         (___mulsi3): Use '!' comment character.
9897
9898 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9899
9900         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
9901
9902 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
9903
9904         * gcc.c: Update URLs and mail addresses.
9905         * gcc.texi: Likewise.
9906
9907 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
9908
9909         * rs6000.c (current_file_function_operand): Return zero for
9910         weak functions.
9911         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
9912         weak symbols.
9913         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
9914         for weak symbols.
9915
9916 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
9917
9918         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
9919         allocate space in the stack frame for the PIC register.
9920
9921 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
9922
9923         * m68k.md (xordi3, anddi3): These patterns are not available on
9924         the coldfire.
9925
9926 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
9927
9928         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
9929         (PUT_REAL): Likewise.
9930
9931 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9932
9933         * final.c (shorten_branches): Don't add an alignment for loops
9934         that have no label inside.
9935
9936 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9937
9938         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
9939         prototypes in macro HAVE_cmpstrsi.
9940
9941         * cpplib.c (cpp_get_token): Remove unused label `op3'.
9942
9943         * emit-rtl.c (operand_subword): Remove unused variable
9944         `bits_per_word'.
9945
9946         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
9947
9948         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
9949
9950 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
9951
9952         * cpphash.c (macroexpand): Delete leading whitespace when arg
9953         is concatenated before.
9954         (unsafe_chars): Correct test for whether + and - can extend a
9955         token.
9956
9957         * cppinit.c (cpp_start_read): Do dependencies for
9958         -include/-imacros files also.
9959
9960         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
9961         tokenizing non-directive lines.
9962         (cpp_expand_to_buffer): Temporarily disable no-output mode.
9963         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
9964         the input file.
9965
9966 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
9967
9968         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
9969
9970         * c-lex.c: Sync with C++ frontend.
9971         (linemode): New variable.
9972         (parse_float): imag, conversion_errno, and type are output only.
9973         (yylex): Adjust.  Move initial '.' case into main switch.
9974         Use linemode.
9975         (handle_generic_pragma): Just deal with tokens.
9976         (readescape): Use ISXDIGIT and ISGRAPH.
9977         * c-parse.in: Add END_OF_LINE token.
9978
9979         * c-lex.c (lang_init): Generalize.
9980         (nextchar): Remove.  Replace uses with UNGETC.
9981         (skip_white_space): Handle linemode here.  Optimize for cpplib.
9982         (skip_white_space_on_line): Remove.
9983         (extend_token_buffer_to): New fn.
9984         (extend_token_buffer): Use it.
9985         (read_line_number, check_newline): Just deal with tokens.
9986         (token_getch, token_put_back): New fns.
9987         (yylex): Use them.  More cpplib optimizations.  Simplify.
9988
9989 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
9990                           Jason Merrill  <jason@yorick.cygnus.com>
9991
9992         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
9993         (consume_string): Make this smart about USE_CPPLIB.
9994         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
9995         (yylex): Rewrite to be intelligent about USE_CPPLIB.
9996         Also, clean up cases where we redundantly set token_buffer[0].
9997         (read_line_number): New fn.
9998         (ignore_escape_flag): New variable.
9999
10000 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
10001
10002         * a29k/t-a29kbare: Fix some comments.
10003         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
10004         (FPBIT, DPBIT): Define.
10005         * a29k/t-vx29k: Likewise.
10006         * arc/t-arc: Likewise.
10007         * arm/t-arm-elf: Likewise.
10008         * arm/t-bare: Likewise.
10009         * arm/t-pe: Likewise.
10010         * arm/t-pe-thumb: Likewise.
10011         * arm/t-semi: Likewise.
10012         * arm/t-thumb: Likewise.
10013         * arm/t-thumb-elf: Likewise.
10014         * arm/t-thumb-linux: Likewise.
10015         * h8300/t-h8300: Likewise.
10016         * i960/t-i960: Likewise.
10017         * i960/t-vxworks960: Likewise.
10018         * m32r/t-m32r: Likewise.
10019         * mips/t-ecoff: Likewise.
10020         * mips/t-elf: Likewise.
10021         * mips/t-r3900: Likewise.
10022         * pa/t-pro: Likewise.
10023         * rs6000/t-aix43: Likewise.
10024         * rs6000/t-beos: Likewise.
10025         * rs6000/t-newas: Likewise.
10026         * rs6000/t-ppccomm: Likewise.
10027         * rs6000/t-rs6000: Likewise.
10028         * rs6000/t-winnt: Likewise.
10029         * rs6000/t-xnewas: Likewise.
10030         * rs6000/t-xrs6000: Likewise.
10031         * sh/t-sh: Likewise.
10032         * sparc/t-elf: Likewise.
10033         * sparc/t-sparcbare: Likewise.
10034         * sparc/t-sparclite: Likewise.
10035         * sparc/t-splet: Likewise.
10036         * v850/t-v850: Likewise.
10037         * mn10200/t-mn10200: Fix comments.
10038         * mn10300/t-mn10300: Likewise.
10039
10040         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
10041         dummy operand.  Allocate a new pseudo for the dummy operand.
10042         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
10043
10044         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
10045
10046 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
10047
10048         * configure: Rebuilt.
10049         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
10050
10051 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
10052
10053         * recog.c (preproces_constraints): Zero recog_op_alt before
10054         processing the constraints.
10055
10056         * arm.c (typedef minipool_node): Renamed from pool_node.
10057         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
10058         (add_minipool_constant): New function.
10059         (dump_minipool): New function.
10060         (find_barrier): Remove special case for getting the insn size of
10061         an insn that references the constant pool.
10062         (minipool_fixup): New structure.
10063         (push_minipool_barrier): New function.
10064         (push_minipool_fix): New function.
10065         (note_invalid_constants): New function.
10066         (add_pool_constant, dump_table, fixit, broken_move): Delete.
10067         (arm_reorg): Rewrite code to fix up the constant pool into a
10068         series of mini-pools embedded in the insn stream.
10069         (arm_output_epilogue): New function, made mainly from the body
10070         of output_func_epilogue.
10071         (output_func_epilogue): Move insn generation part of epilogue code
10072         to arm_output_epilogue.
10073         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
10074         * arm.md (pool_range): New attribute.
10075         (zero_extendqidi2): Add attribute pool_range.
10076         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
10077         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
10078         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
10079         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
10080         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
10081         (epilogue): New expand.
10082         (epilogue_insn): New insn.  Call arm_output_epilogue.
10083
10084         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
10085         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
10086
10087 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
10088
10089         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10090
10091 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
10092
10093         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
10094
10095 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
10096
10097         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
10098
10099 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
10100
10101         * global.c: Fix comment.
10102
10103 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
10104
10105         * gcc.c (access_check): New static function.
10106         (find_a_file): Use it when searching a directory list.
10107         * collect2.c (find_a_file): Don't accept directories found when
10108         searching a directory list.
10109
10110 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
10111
10112         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
10113         function parameters with `&'.
10114         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
10115
10116 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
10117
10118         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
10119         or tidy_fallthru_edge if the last insn in the block is not
10120         an unconditional jump or a simple conditional jump.
10121
10122 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10123
10124         * Makefile.in (c-decl.o): Depends on defaults.h.
10125
10126 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
10127
10128         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
10129         PA1.1 and above.
10130         (CLASS_MAX_NREGS): Likewise.
10131
10132 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
10133
10134         * cse.c (cse_insn): Fix dumb thinko in last change.
10135
10136 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10137
10138         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
10139         "const char *".
10140
10141 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10142
10143         * dwarf2out.c (add_location_or_const_value_attribute): Correct
10144         test for sizes of passed and declared parameter types.
10145
10146 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10147
10148         * fixincludes: Fix the return type of bsearch, char* -> void*.
10149
10150         * fixinc/inclhack.def: Likewise.
10151
10152 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
10153
10154         * invoke.texi (-fdump-translation-unit): New option.
10155
10156 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
10157
10158         * expr.h (PROMOTE_PROTOTYPES): Move ...
10159         * defaults.h: ... to here.
10160         * c-decl.c: Include defaults.h instead of expr.h.
10161         * c-typeck.c: Include defaults.h.
10162
10163 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
10164
10165         * toplev.h (errorcount): Declare.
10166         (warningcount): Likewise.
10167         (sorrycount): Likewise.
10168         * c-lex.c (errorcount): Don't declare.
10169         * dwarf2out.c (errorcount): Don't declare.
10170
10171 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
10172
10173         * config/libgloss.h: Add a note discouraging use with ELF.
10174         * configure.in: Don't use libgloss.h for ELF targets.
10175         Always use_collect2 on a.out targets.
10176
10177 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
10178
10179         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
10180         (force_to_mode, case ASHIFTRT): Add shiftrt label.
10181
10182 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10183
10184         * loop.c (strength_reduce): When doing biv->giv conversion, update
10185         reg note of NEXT->insn.
10186
10187 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10188
10189         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
10190
10191 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10192
10193         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
10194         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
10195         Ensure expr.h is included.
10196         * c-typecheck.c (convert_arguments): Ditto.
10197
10198         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
10199
10200         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
10201         * config/convex/convex.h: Ditto.
10202         * config/dsp16xx/dsp16xx.h: Ditto.
10203         * config/fx80/fx80.h: Ditto.
10204         * config/gmicro/gmicro.h: Ditto.
10205         * config/i370/i370.h: Ditto.
10206         * config/i386/i386.h: Ditto.
10207         * config/m32r/m32r.h: Ditto.
10208         * config/m68k/m68k.h: Ditto.
10209         * config/m88k/m88k.h: Ditto.
10210         * config/mips/mips.h: Ditto.
10211         * config/pa/pa.h: Ditto.
10212         * config/pyr/pyr.h: Ditto.
10213         * config/tahoe/tahoe.h: Ditto.
10214         * config/we32k/we32k.h: Ditto.
10215
10216         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
10217         based on arch size.
10218
10219         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
10220
10221         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
10222         from comment.
10223
10224         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
10225
10226 1999-08-02  Richard Henderson  <rth@cygnus.com>
10227
10228         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
10229         for the register spill block.
10230         (m32r_va_arg): New.
10231         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
10232         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
10233
10234         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
10235         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
10236         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
10237
10238 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10239
10240         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
10241         MAX_WCHAR_TYPE defined in sparc.h.
10242         * config/sparc/linuxaout.h: Likewise.
10243         * config/sparc/linux64.h: Likewise.
10244         Also default to -mvis if CPU is UltraSPARC.
10245
10246 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10247
10248         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
10249         (RTX_OK_FOR_OLO10): Likewise.
10250         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
10251         %lo(), allow it in addresses...
10252         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
10253         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
10254         does not make sense.
10255         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
10256         (sparc_output_scratch_registers): New function.
10257         (output_function_prologue, sparc_flat_output_function_prologue): Use
10258         it.
10259         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
10260         defined.
10261         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
10262         * configure.in: Add check for .register pseudo-op support in as and
10263         check for offsetable %lo().
10264         * acconfig.h: Add templates for the above checks.
10265         * configure: Regenerate.
10266
10267 1999-08-02  Richard Henderson  <rth@cygnus.com>
10268
10269         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
10270         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
10271         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
10272
10273 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10274
10275         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
10276         reg_biv_class.
10277
10278 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10279
10280         * config/float-sparc.h: New file.
10281         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
10282         sparc-*-linux-gnu and sparc64-*-linux*.
10283
10284 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10285
10286         * rs6000.c (rs6000_va_list): Type is an array.
10287         (rs6000_va_start): Don't doubly adjust for varargs.
10288         (rs6000_va_arg): Evaluate long long GPR adjustment.
10289
10290 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
10291
10292         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
10293         -maix64 and -maix32.
10294         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
10295         LINK_SPEC): Change appropriately.
10296         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
10297         (u_short_cint_operand): Likewise.
10298         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
10299         for 64-bit hosts.
10300         * rs6000/t-aix43 (MULTILIB): Change to -m64.
10301
10302         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
10303
10304 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
10305
10306         * rs6000/rs6000.c (num_insns_constant_wide): Correct
10307         for type promotion.
10308         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
10309         (non_add_cint_operand): Likewise.
10310         (logical_operand): Likewise.
10311         (non_logical_cint_operand): Likewise.
10312         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
10313         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
10314         (rs6000_select_rtx_section): Suppress warning.
10315         (small_data_operand): Suppress warning.
10316         (rs6000_got_register): Suppress warning.
10317         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
10318         type, so `J' is generally the wrong constraint for a SImode value;
10319         use `L' instead.
10320         (andsi3_internal2): Likewise.
10321         (andsi3_internal3): Likewise.
10322         (iorsi3_internal1): Likewise.
10323         (xorsi3_internal1): Likewise.
10324         (movsi): Likewise.
10325         (movsf_softfloat): Likewise.
10326         (scc insns): Likewise.
10327         (movsi+2): Preserve sign bits of SImode constant.
10328         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
10329         (movdf+1): Sign-extend properly.
10330         (movdi_32+1): Sign-extend properly.
10331         (scc insns): Sign-extend properly.
10332
10333         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
10334         K, L, and T.
10335
10336 1999-08-02  Richard Henderson  <rth@cygnus.com>
10337
10338         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
10339         -mcpu parsing code.
10340         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
10341         * alpha.md (all fp insns): Likewise.
10342
10343 1999-08-02  Nick Clifton  <nickc@cygnus.com>
10344
10345         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
10346         already defined.
10347
10348 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
10349
10350         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
10351         pic_load_label generator directly.
10352         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
10353         No longer a named pattern.
10354
10355 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
10356
10357         * explow.c (force_reg): Call force_operand if X does not
10358         satisfy general_operand.
10359
10360 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
10361
10362         * fix-header.c (main): When testing for CONTINUED, use string
10363         equality, not pointer equality.
10364
10365 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
10366
10367         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
10368
10369 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
10370
10371         * cse.c (cse_insn): Fix loop which deletes insns after a jump
10372         that has become an unconditional jump.
10373
10374         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
10375         (output_function_epilogue): Similarly.
10376
10377 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10378
10379         * tree.h (init_dummy_function_start): Declare.
10380
10381 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10382
10383         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
10384         last_expr_type, last_expr_value, block_start_count, block_stack,
10385         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
10386         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
10387         dynamically in stmt elt of struct function for each function.
10388         (struct nesting): Rename function_call_count elt to n_function_calls,
10389         target_temp_slot_level to block_target_temp_slot_level.  All users
10390         changed.
10391         (struct stmt_status): New structure definition.
10392         Add many accessor macros for stmt_status elements which previously
10393         were global variables.
10394         (init_stmt_for_function): Allocate stmt elt for current_function.
10395         Reflect that block_start_count was renamed to
10396         current_block_start_count.
10397         (save_stmt_status, restore_stmt_status): Delete functions.
10398         (preserve_subexpressions_p): Don't access loop_stack when outside
10399         a function.
10400         (expand_start_bindings): Reflect that block_start_count was renamed to
10401         current_block_start_count.
10402         (expand_fixup): Likewise.
10403         (expand_decl): Don't access block_stack when outside a function.
10404         (expand_decl_cleanup): Likewise.
10405         (expand_dcc_cleanup): Likewise.
10406         (expand_dhc_cleanup): Likewise.
10407         (expand_anon_union_decl): Likewise.
10408         (set_file_and_line_for_stmt): New function.
10409         (in_control_zone_p): New function.
10410
10411         * function.h (struct function): Add new elt stmt.
10412         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
10413         case_stack, nesting_stack, nesting_depth, block_start_count,
10414         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
10415         emit_lineno, goto_fixup_chain.
10416         (save_eh_status, restore_eh_status, save_stmt_status,
10417         restore_stmt_status): Delete declarations.
10418         * function.c (push_function_context_to): Don't call save_stmt_status.
10419         (pop_function_context_to): Don't call restore_stmt_status.
10420         * tree.h (in_control_zone_p): Declare.
10421         * rtl.h (set_file_and_line_for_stmt): Declare.
10422
10423         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
10424         call set_file_and_line_for_stmt.
10425
10426 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
10427
10428         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
10429         Also update copyright.
10430
10431 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10432
10433         * c-pragma.c: Don't include "except.h".
10434         * emit-rtl.c: Likewise.
10435         * stor-layout.c: Likewise.
10436         * tree.c: Likewise.
10437         * varasm.c: Likewise.
10438
10439         * flow.c: Include "function.h".
10440         * tree.h (init_dummy_function_start): Declare new function.
10441
10442         * except.h (struct eh_status): New structure.
10443         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
10444         been included.
10445         (eh_return_stub_label, ehstack, catchstack, ehqueue,
10446         catch_clauses, false_label_stack, caught_return_label_stack,
10447         protect_list, current_function_ehc): Add accessor macros for the
10448         corresponding fields in current_function->eh; delete declarations
10449         for all items that used to be declared here.
10450         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
10451         catch_clauses, false_label_stack, caught_return_label_stack,
10452         protect_list, current_function_ehc): Delete variables.
10453         (init_eh_for_function): Allocate current_function->eh.
10454         (save_eh_status, restore_eh_status): Delete functions.
10455
10456         * function.h (struct function): Add fields next_global and eh.
10457         Delete all exception handling related fields.
10458         * function.c (current_function): New variable.
10459         (all_functions): New variable.
10460         (push_function_context_to): Don't allocate a struct function,
10461         use current_function instead.  Call init_dummy_function_start when
10462         outside a function.  Clear current_function before returning.
10463         (pop_function_context_from): Restore current_function.
10464         Don't free the restored struct function.
10465         (prepare_function_start): New function.
10466         (init_dummy_function_start): New function.
10467         (init_function_start): Break out some code into prepare_function_start
10468         and call it here.
10469
10470         * stmt.c (save_stmt_status): Don't call save_eh_status.
10471         (restore_stmt_status): Don't call restore_eh_status.
10472
10473         * Makefile.in: Update dependencies.
10474
10475 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
10476
10477         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
10478         of depending on a magic constant value.  Update comments.
10479         (hppa_expand_prologue): Similarly.
10480
10481         * pa.md (reload_indi, reload_outdi): Allow any register for the
10482         original reload register.
10483
10484 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
10485
10486         * cccp.c (print_help): Change marcos to macros.
10487
10488 1999-07-30  Richard Henderson  <rth@cygnus.com>
10489
10490         * c-typeck.c (initializer_constant_valid_p): Move ...
10491         * c-common.c (initializer_constant_valid_p): ... here.  Use
10492         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
10493         of label addresses.
10494         * c-common.h (initializer_constant_valid_p): Declare.
10495         * c-tree.h (initializer_constant_valid_p): Remove.
10496
10497 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
10498
10499         * config/i386/sol2-c1.asm: Align the stack.
10500         * config/i386/sol2-gc1.asm: Likewise.
10501
10502 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
10503
10504         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
10505         -Asparclite for sparc86x.
10506         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
10507         sparc86x.
10508         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
10509
10510 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
10511
10512         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
10513         the user if using the non-default arch size in BI_ARCH configuration.
10514         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
10515
10516         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
10517         Fix patterns so that they actually match.
10518         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
10519         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
10520         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
10521         TARGET_HARD_MUL32.
10522         (mulsidi3): Reflect this in the expand.
10523         (smulsi3_highpart): Only on TARGET_ARCH32.
10524         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
10525         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
10526         (umulsidi3): Reflect this in the expand.
10527         (umulsi3_highpart): Only on TARGET_ARCH32.
10528         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
10529         don't require g0 to be zero.
10530         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
10531         ({,u}divsi3): New expands.
10532         ({,u}divsi3_sp64): New patterns.
10533         (after lshrdi3_v8plus): Four new patterns to help combiner
10534         optimizing nested mixed mode shifts.
10535
10536         * config/sparc/sparc.c (sparc_override_options): Use deprecated
10537         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
10538         speed things up. Don't use them by default on plain v9 in 64bit
10539         mode, according to what SPAMv9 sais.
10540
10541         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
10542         top 32 bits of %[og][0-7] in signal handlers.
10543         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
10544
10545 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
10546
10547         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
10548         (ashlsi3): Corresponding changes.
10549
10550         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
10551
10552 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
10553
10554         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
10555
10556 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10557
10558         * arm.h (Hint): Delete macro.
10559         Substitute HOST_WIDE_INT for Hint in some prototypes.
10560         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
10561
10562 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
10563
10564         * builtins.c (expand_builtin_setjmp): Use force_operand to
10565         make sure that the buffer address is in a suitable form to be
10566         passed to force_reg.
10567
10568 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
10569
10570         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
10571         them here.
10572
10573 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
10574
10575         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
10576         proper mode in the condition string.
10577         (icacheflush, dcacheflush): Remove modes from match_operands.
10578
10579         * pa.c (emit_move_sequence): Always convert scratch_reg to the
10580         proper mode before using it.
10581
10582         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
10583         pair.
10584
10585         * pa.c (store_reg): Do not call add_high_const generator directly.
10586         (load_reg, set_reg_plus_d): Likewise.
10587         * pa.md (add_high_const): No longer a named pattern.
10588
10589         * pa.c (legitimize_address): Consistently use Pmode rather than
10590         SImode.  Do not call gen_pic2_highpart directly anymore.
10591         * pa.md (pic2_highpart): No longer a named pattern.
10592         (pic2_lo_sum): Similarly.  Reformat to make more readable.
10593
10594         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
10595         needed.
10596
10597         * README: Update.
10598
10599 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10600
10601         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
10602
10603 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
10604
10605         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
10606         and tag the spill mems.
10607         (hppa_va_start): New.
10608         (hppa_va_arg): New.
10609         * pa.h (EXPAND_BUILTIN_VA_START): New.
10610         (EXPAND_BUILTIN_VA_ARG): New.
10611
10612 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
10613
10614         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
10615         and tag the spill mems.
10616         (mn10300_va_start): New.
10617         (mn10300_va_arg): New.
10618         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
10619         (EXPAND_BUILTIN_VA_ARG): New.
10620
10621 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
10622
10623         * mn10200.c (mn10200_va_arg): New.
10624         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
10625
10626 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
10627
10628         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
10629         rather than play with TREE_INT_CST_LOW.
10630
10631 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
10632
10633         * config/arm/telf.h: Include dbxelf.h.
10634         (CPP_PREDEFINES): Only define if not already defined.
10635         (ASM_IDENTIFY_GCC): Likewise.
10636         (SUBTARGET_EXTRA_SECTIONS): Likewise.
10637         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
10638         * config/arm/thumb.h (LINK_SPEC): Only define if not already
10639         defined.
10640         (DBX_DEBUGGING_INFO): Don't define.
10641         * config/arm/linux-telf.h: New file.
10642         * config/arm/linux-tgas.h: New file.
10643         * config/arm/t-thumb-linux: New file.
10644         * config/arm/uclinux-elf.h: New file.
10645         * config/arm/uclinux-telf.h: New file.
10646         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
10647         thumb-*-uclinux): New targets.
10648         * configure: Regenerate.
10649
10650 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
10651
10652         * pa.md (post_store, pre_load): New expanders.
10653         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
10654         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
10655         need to directly generate RTL for them.
10656         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
10657         changes.
10658
10659 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
10660
10661         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
10662         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
10663         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
10664         (secndary_reload_class): Make TARGET_ELF conditional compile.
10665         (print_operand_address): Similar.
10666         (output_toc): Print all values as hex.
10667         (get_issue_rate): Rearrange and add RS64A and PPC630.
10668         * rs6000.h (processor_type): Add RS64A and PPC630.
10669         (PROCESSOR_POWERPC64): New.
10670         (PROMOTE_MODE): Use word_mode.
10671         (RTX_COSTS): Add RS64A and PPC630.
10672         * rs6000.md (scheduling information): Add lmul and ldiv
10673         representing 64-bit integer multiply and divide.  Add rs64a and
10674         PPC630 information.
10675         (ashldi3): Add support for "rldic" instruction.
10676         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
10677
10678 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
10679
10680         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
10681         instead of V8 for sparclite86x in cpu_table.
10682
10683 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10684
10685         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
10686         output_file_directive.
10687
10688 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
10689
10690         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
10691         tree for op1, not the rtl.
10692
10693 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
10694
10695         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
10696         to m88k_va_start, leaving only the register spill.
10697         (m88k_build_va_list): New.
10698         (m88k_va_start): New.
10699         (m88k_va_arg): New.
10700         * m88k.h (BUILD_VA_LIST_TYPE): New.
10701         (EXPAND_BUILTIN_VA_START): New.
10702         (EXPAND_BUILTIN_VA_ARG): New.
10703
10704 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
10705
10706         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
10707         Rename from expand_builtin_saveregs.
10708         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
10709
10710 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
10711
10712         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
10713         for the register spill block.
10714         (i960_build_va_list): New.
10715         (i960_va_start): New.
10716         (i960_va_arg): New.
10717         * i960.h (BUILD_VA_LIST_TYPE): New.
10718         (EXPAND_BUILTIN_VA_START): New.
10719         (EXPAND_BUILTIN_VA_ARG): New.
10720         * i960.md (store_multiple): Use change_address on individul mems.
10721
10722 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
10723
10724         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
10725         an ARRAY_TYPE.
10726         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
10727         (expand_builtin_va_end): Evaluate arg for side effects.
10728         * c-common.c (c_common_nodes_and_builtins): Construct a
10729         va_list_arg_type_node to handle array decomposition to pointer.
10730
10731 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
10732
10733         * except.c (start_dynamic_cleanup): Use force_operand on the
10734         buffer's address.
10735
10736 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
10737
10738         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
10739         * c4x.c (c4x_va_arg): New.
10740
10741 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
10742
10743         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
10744         has manual_pop set.
10745
10746 1999-07-26  Nathan Sidwell  <nathan@acm.org>
10747
10748         * eh-common.h (__eh_matcher): Prototype correctly.
10749
10750 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
10751
10752         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
10753         (TARGET_SINGLE_PIC_BASE): Likewise.
10754         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
10755         definitions.
10756         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
10757         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
10758         (TARGET_OPTIONS): Add -mpic-register=N.
10759         (OUTPUT_INT_ADDR_CONST): New macro.
10760         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
10761         LEGITIMATE_PIC_OPERAND_P): Likewise.
10762         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
10763         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
10764         output_addr_const directly.
10765         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
10766         ARM port.
10767         (thumb_pic_register, thumb_pic_register_string): Declare.
10768
10769         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
10770         from arm.c.
10771         (label_mentioned_p): New function: Imported from arm.c.
10772         (legitimize_pic_address): New function: Imported from arm.c.
10773         (is_pic):New function: Imported from arm.c.
10774         (thumb_finalize_pic):New function: Imported from arm.c.
10775         (add_constant): Cope with PIC constants.
10776         (fixit): Cope with PIC constants.
10777         (output_return): Do not treat the PIC register as live if
10778         TARGET_SINGLE_PIC_BASE is true.
10779         (thumb_function_prologue): Do not treat the PIC register as live if
10780         TARGET_SINGLE_PIC_BASE is true.
10781         (thumb_expand_prologue): Do not treat the PIC register as live if
10782         TARGET_SINGLE_PIC_BASE is true.
10783         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
10784         TARGET_SINGLE_PIC_BASE is true.
10785         (thumb_print_operand): Accept '|'.
10786         (thumb_override_options): Process PIC options.
10787
10788         * config/arm/thumb.md (movsi): Support PIC.
10789         (call_insn): Change "i" constraint to "X".
10790         (call_value_insn): Likewise.
10791         (consttable_4, consttable_8, consttable_end): Set and clear
10792         "making_const_table" as appropriate.
10793         (pic_load_addr, pic_add_dot_plus_four): New insns.
10794
10795         * invoke.texi (Thumb Options): Fix spelling.  Document new
10796         options -msingle-pic-base and -mpic-register=.
10797
10798 1999-07-26  Andrew Haley  <aph@cygnus.com>
10799
10800         * config/m32r/initfini.c (__init): Use a full word immediate for
10801         __fini: this allows it to be placed in any memory region.
10802
10803         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
10804         -mmodel=medium.  This is OK for all memory models.
10805
10806 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
10807
10808         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
10809         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
10810
10811 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
10812
10813         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
10814         defined.
10815
10816         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
10817
10818 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
10819
10820         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
10821         (BUILD_VA_LIST_TYPE): New.
10822         (EXPAND_BUILTIN_VA_START): New.
10823         (EXPAND_BUILTIN_VA_ARG): New.
10824         * i860.c (output_delayed_branch): Disable.
10825         (output_delay_insn): Likewise.
10826         (i860_saveregs): New.
10827         (i860_build_va_list): New.
10828         (i860_va_start): New.
10829         (i860_va_arg): New.
10830         * i860.md: Disable all peepholes using output_delayed_branch.
10831         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
10832
10833 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
10834
10835         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
10836         (BUILD_VA_LIST_TYPE): New.
10837         (EXPAND_BUILTIN_VA_START): New.
10838         (EXPAND_BUILTIN_VA_ARG): New.
10839         * clipper.c (clipper_builtin_saveregs): Only dump registers.
10840         Return the address of the save area.
10841         (clipper_build_va_list): New.
10842         (clipper_va_start): New.
10843         (clipper_va_arg): New.
10844
10845 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
10846
10847         * arc.h (EXPAND_BUILTIN_VA_START): New.
10848         (EXPAND_BUILTIN_VA_ARG): New.
10849         * arc.c (arc_setup_incoming_varargs): Set alias set of
10850         varargs save area.
10851         (arc_va_start): New.
10852         (arc_va_arg): New.
10853
10854 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
10855
10856         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
10857         (BUILD_VA_LIST_TYPE): New.
10858         (EXPAND_BUILTIN_VA_START): New.
10859         (EXPAND_BUILTIN_VA_ARG): New.
10860         * alpha.c (alpha_builtin_saveregs): Delete.
10861         (alpha_build_va_list): New.
10862         (alpha_va_start): New.
10863         (alpha_va_arg): New.
10864
10865 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
10866
10867         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
10868         column zero.
10869         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
10870         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
10871
10872         * gcc.texi: More changes related to list conversion.
10873         * invoke.texi: Likewise.
10874
10875 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
10876
10877         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
10878         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
10879         (expand_builtin_next_arg): Accept ARGLIST not EXP.
10880         (stabilize_va_list): New function.
10881         (std_expand_builtin_va_start): New function.
10882         (expand_builtin_va_start): New function.
10883         (get_varargs_alias_set): New function.
10884         (std_expand_builtin_va_arg): New function.
10885         (expand_builtin_va_arg): New function.
10886         (expand_builtin_va_end): New function.
10887         (expand_builtin_va_copy): New function.
10888         (expand_builtin): Call them.
10889         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
10890         __builtin_{varargs_start,stdarg_start,end,copy}.
10891         (build_va_arg): New function.
10892         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
10893         (build_va_arg): Declare.
10894         * c-decl.c (ptr_type_node, va_list_type_node): New.
10895         * c-parse.gperf (__builtin_va_arg): New.
10896         * c-parse.in (VA_ARG): New token.
10897         (unary_expr): Recognize it.
10898         * expr.c (expand_expr): Expand VA_ARG_EXPR.
10899         * expr.h (std_expand_builtin_va_start): Declare.
10900         (std_expand_builtin_va_arg): Declare.
10901         (expand_builtin_va_arg): Declare.
10902         (get_varargs_alias_set): Declare.
10903         * tree.def (VA_ARG_EXPR): New.
10904         * tree.h (BUILT_IN_VARARGS_START): New.
10905         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
10906         (ptr_type_node, va_list_type_node): Declare.
10907         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
10908         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
10909         * m88k.h, m88k.c: Likewise.
10910         * mn10300.h, mn10300.c: Likewise.
10911         * pa.h, pa.c: Likewise.
10912         * rs6000.h, rs6000.c: Likewise.
10913         * sh.h, sh.c: Likewise.
10914         * sparc.h, sparc.c: Likewise.
10915
10916         * emit-rtl.c (operand_subword): Copy alias set.
10917         (change_address): Likewise.
10918
10919 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
10920
10921         * pa.c (compute_frame_size): Scan all the used callee saved registers,
10922         not just the first one.
10923
10924 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
10925
10926         * config/arm/arm.h (TARGET_SWITCHES): Add
10927         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
10928         (TARGET_OPTIONS): Add -mpic-register=.
10929         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
10930         (arm_pic_register_string): Declare.
10931         (NEED_PLT_GOT): Delete, replace with ...
10932         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
10933         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
10934         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
10935         * config/arm/arm.c (arm_override_options): Add new option
10936         -mpic-register=N.
10937         (arm_pic_register_string): New variable.
10938         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
10939         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
10940         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
10941         (output_return_instruction): Likewise.
10942         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
10943         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
10944         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
10945
10946         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
10947         mention of -msched-prolog.  Document new options -msingle-pic-base
10948         and -mpic-register=.
10949
10950 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
10951
10952         * haifa-sched.c (reemit_notes): Tidy.
10953         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
10954         haifa's routine.
10955
10956 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
10957
10958         * explow.c (trunc_int_for_mode): New function.
10959         (plus_constant_wide): Use it.
10960         * combine.c (simplify_and_const_int): Likewise.
10961         (merge_outer_ops): Likewise.
10962         (simplify_shift_const): Likewise.
10963         * cse.c (simplify_unary_operation): Likewise.
10964         (simplify_binary_operation): Likewise.
10965         * emit-rtl.c (operand_subword): Likewise.
10966         * rtl.h: Declare it.
10967
10968 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10969
10970         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
10971         (use NUM_REGS instead of NUM_INTS).
10972
10973 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10974
10975         * builtins.c: New file.
10976         * expr.c (saveregs_value, apply_args_value):  Delete definition,
10977         moved into builtins.c.
10978         (string_constant): No longer static.
10979         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
10980         apply_args_size, apply_result_size, result_vector,
10981         expand_builtin_apply_args, expand_builtin_apply,
10982         expand_builtin_return): Delete functions, moved into builtins.c.
10983         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
10984         * expr.h (saveregs_value, apply_args_value): Declare variables.
10985         (expand_builtin, string_constant): Declare functions.
10986         * Makefile.in: Update to build builtin.o.
10987
10988 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
10989
10990         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
10991         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
10992         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
10993         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
10994         false.
10995         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
10996         Define to zero.
10997
10998 1999-07-21  Michael Meissner  <meissner@cygnus.com>
10999
11000         * print-rtl.c (print_rtx): Print the names of the virtual
11001         registers.
11002
11003 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
11004
11005         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
11006         introduced in previous delta.
11007
11008 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11009
11010         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
11011         to avoid name clash.
11012
11013 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11014
11015         * c-lex.c (yylex) : Correct the test for overflow when lexing
11016         integer literals.
11017
11018 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
11019
11020         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
11021         (adjust_priority): Always call ADJUST_PRIORITY.
11022         (schedule_insn): Only put insns into the ready at cost 0.
11023         (schedule_block): Remove redundant initial sort.  Give clock_var
11024         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
11025         is not 0.
11026         * tm.texi (MD_SCHED_REORDER): Update docs.
11027
11028         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
11029         * sparc.c (ultra_reorder_called_this_block): Delete.
11030         (ultrasparc_sched_init): Don't set it.
11031         (ultrasparc_sched_reorder): Don't check it.
11032
11033 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
11034
11035         * rs6000.h (struct rs6000_args): Add sysv_gregno.
11036         * rs6000.c (init_cumulative_args): Init sysv_gregno.
11037         (function_arg_boundary): Align DFmode.
11038         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
11039         to get fp reg and stack overflow correct.
11040         (function_arg): Likewise.
11041         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
11042         (setup_incoming_varargs): Restructure for ABI_V4; use
11043         function_arg_advance to skip final named argument.
11044         (expand_builtin_saveregs): Properly unskip the last integer arg
11045         when doing varargs.  Adjust overflow location calculation.
11046
11047         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
11048         explicitly unsigned.
11049         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
11050         (__VA_GP_REGSAVE): Similarly.
11051         (__va_longlong_p): Delete.
11052         (__va_arg_type_violation): New declaration.
11053         (va_arg): Restructure.  Flag promotion errors.  Align double.
11054         TFmode passed by reference.
11055
11056         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
11057         in the HOST_BITS_PER_WIDE_INT > 32 case.
11058
11059 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
11060
11061         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
11062
11063 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
11064
11065         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
11066         * toplev.c (documented_lang_options): Add -fpreprocessed.
11067         * cpplib.h (struct cpp_buffer): Add preprocessed.
11068         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
11069         (cpp_start_read): Don't expand macros or emit an initial #line
11070         directive if -fpreprocessed.
11071
11072 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
11073
11074         * cpplib.h (struct cpp_buffer): Added manual_pop for
11075         better C++ tokenization.
11076         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
11077         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
11078         * c-common.c (cpp_token): Make non-static.
11079
11080 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11081
11082         * c-common.h: New file.
11083         * c-common.c (permanent_obstack): Delete unused declaration.
11084         (c_global_trees): New array.
11085         (c_common_nodes_and_builtins): New function; split off common code
11086         from init_decl_processing in both c-decl.c and cp/decl.c.
11087         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
11088         c_global_trees and accessor macros defined in c-common.h.
11089         Include c-common.h.
11090         * c-decl.c: Delete definitions for tree nodes that were replaced by
11091         c_global_trees.
11092         (init_decl_processing): Build void_list_node.
11093         Call c_common_nodes_and_builtins; delete code to generate the common
11094         builtins here.
11095         * objc/objc-act.c (build_module_descriptor): Rename variable
11096         void_list_node to avoid clash with c-common.h.
11097
11098         * Makefile.in: Update dependencies.
11099         * objc/Make-lang.in: Likewise.
11100
11101 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
11102
11103         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
11104         (UNIQUE_SECTION_P): Likewise.
11105         (UNIQUE_SECTION): Likewise.
11106
11107 1999-07-19  Linas Vepstas  <linas@linas.org>
11108
11109         * config/i370/README: New file.
11110         * config/i370/linux.h: New file.
11111         * config/i370/mvs.h: New file.
11112         * config/i370/oe.h: New file.
11113         * config/i370/t-linux: New file.
11114         * config/i370/t-mvs: New file.
11115         * config/i370/t-oe: New file.
11116         * config/i370/x-oe: New file.
11117         * config/i370/xm-linux.h: New file.
11118         * config/i370/xm-mvs.h: New file.
11119         * config/i370/xm-oe.h: New file.
11120
11121         * i370.c (label_node_t): Add first_ref_page, label_addr,
11122         label_first_ref, label_last_ref members.
11123         (mvs_need_base_reload): Renamed from mvs_label_emitted.
11124         (MAX_MVS_LABEL_SIZE): Define.
11125         (MAX_LONG_LABEL_SIZE): Define.
11126         (alias_node_t, alias_anchor, alias_number): New.
11127         (mvs_function_table): Reorder for EBCDIC.
11128         (ascebc, ebcasc): Unconditionally define.
11129         (i370_branch_dest, i370_branch_length): New functions.
11130         (i370_short_branch, i370_label_scan): New functions.
11131         (mvs_get_label): Renamed from mvs_add_label.  Search for
11132         an existing label before creating a new one.
11133         (mvs_add_label): New function.
11134         (mvs_get_label_page): New function.
11135         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
11136         over the entire list.
11137         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
11138         (mvs_check_page) [TARGET_ELF_ABI]: New function.
11139         (mvs_add_alias, mvs_need_alias): New functions.
11140         (mvs_get_alias, mvs_check_alias): New functions.
11141         (handle_pragma): New function.
11142         (mvs_function_check): New function.
11143         (unsigned_jump_follows_p): Search harder.
11144         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
11145         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
11146         * i370.h (TARGET_VERSION): Delete.
11147         (CPP_SPEC, CPP_PREDEFINES): Delete.
11148         (mvs_label_emitted): Delete.
11149         (TARGET_EBCDIC): Delete.
11150         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
11151         (HANDLE_PRAGMA): Define.
11152         (HARD_REGNO_NREGS): Handle complex modes.
11153         (HARD_REGNO_MODE_OK): Likewise.
11154         (CLASS_MAX_NREGS): Likewise.
11155         (RET_REG): Likewise.
11156         (EXTRA_CONSTRAINT): Define.
11157         (RETURN_IN_MEMORY): True for DImode.
11158         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
11159         (FUNCTION_PROFILER): Delete.
11160         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
11161         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
11162         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
11163         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
11164         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
11165         (ASM_FILE_START): Add "RMODE ANY".
11166         (ASM_OUTPUT_EXTERNAL): Check for aliases.
11167         (ASM_GLOBALIZE_LABEL): Likewise.
11168         (ASM_OUTPUT_LABELREF): Likewise.
11169         (ASM_OUTPUT_COMMON): Likewise.
11170         (PRINT_OPERAND): Handle 'K', 'W', default.
11171         (PRINT_OPERAND_ADDRESS): New.
11172         (Lots of defines): Add support for TARGET_ELF_ABI.
11173         * i370.md (attr length): New.  Define for all patterns.
11174         (*): Lots of tweeks to assembly output and constraints.
11175
11176 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
11177
11178         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
11179         Disable patterns performing SImode comparisons with SImode values
11180         if TARGET_POWERPC64 and instruction does not sign-extend or does
11181         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
11182         differ for signed quantities.
11183         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
11184         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
11185         (decrement_and_branch_on_count): Add 64-bit variant.
11186
11187 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11188
11189         * final.c (output_asm_insn): When searching for the matching string
11190         for a given dialect, don't run past the end of the list of
11191         alternatives if there are fewer alternatives in the template than
11192         dialects.
11193
11194 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
11195
11196         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
11197         Removed paragraph about compression of files and size limitation,
11198         duplicated in the FAQ.  Use gcc-patches for posting patches.
11199         * gcc.c (main): Updated URL with bug reporting instructions to
11200         gcc.gnu.org.  Removed e-mail address.
11201         * system.h (abort): Likewise.
11202
11203 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11204
11205         * Makefile.in (stmp-multilib-sub): Make the files extracted
11206         from $(LIBGCC1) writable.
11207
11208 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
11209
11210         * config/arm/aout.h: Reformat for improved readability.
11211
11212         * config/arm/arm.h: Reformat for improved readability.
11213         Replace uses of fprintf with asm_fprintf where appropriate.
11214         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
11215         function declaration assembler actions.
11216         (NUM_INTS): New macro: Convert from bytes to words.
11217         (NUM_REGS): New macro: Compute number of registers required to
11218         hold a quanitity of tyep MODE.
11219         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
11220         types.
11221         (NUM_ARG_REGS): New macro: The number of argument registers
11222         available.
11223         (ARG_REGISTER): New macro: Compute the register number of the Nth
11224         argument register.
11225         (LAST_ARG_REGNUM): New macro: The number of the last argument
11226         register.
11227         (SP_REGNUM): New macro: Register number of the stack pointer.
11228         (FP_REGNUM): New macro: Register number of the frame pointer.
11229         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
11230         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
11231         CUMULATIVE_ARGS so that it counts registers not bytes.
11232
11233         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
11234         TARGET_INTERWORK.
11235         Replace uses of fprintf with asm_fprintf where appropriate.
11236         (output_ascii_pseudo_op): Replace with version from thumb.c
11237
11238         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
11239
11240         * config/arm/elf.h (CPP_PREDEFINES): Replace with
11241         SUBTARGET_CPP_SPEC.
11242         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
11243         (ASM_FILE_START): Emit ASM_APP_OFF.
11244
11245 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
11246
11247         * pa.c (compute_frame_size): Round frame according to
11248         STACK_BOUNDARY rather than a hardwired value.
11249
11250         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
11251
11252         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
11253         of "1".
11254         * configure: Rebuilt.
11255
11256         * configure.in (hppa*-*-linux*): New configuration.
11257         * configure: Rebuilt.
11258         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
11259         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
11260         * pa/pa-linux.h: New file.
11261         * pa/t-linux: New file.
11262         * pa/xm-linux.h: New file.
11263
11264         * pa.c (hppa_legitimize_address): Change references from SImode to
11265         either Pmode or word_mode as appropriate.
11266         (emit_move_sequence, store_reg, load_reg): Likewise.
11267         (set_reg_plus_d, hppa_expand_prologue): Likewise.
11268         (output_mul_insn): Likewise.
11269         * pa.h (PROMOTE_MODE): Likewise.
11270         (INITIALZE_TRAMPOLINE): Likewise.
11271         (Pmode): Define to word_mode.
11272
11273         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
11274         value of 4.  Allocate 8 bytes for each FP register save.
11275         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
11276         value of 4.
11277         (hppa_expand_prologue): Likewise.
11278         * pa.h (PROMOTE_MODE): Likewise.
11279         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
11280         (FUNCTION_ARG_BOUNDARY): Likewise.
11281
11282         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
11283
11284         * pa.c (out_of_line_prologue_epilogue): Delete.
11285         (override_options): Remove -mspace related code.
11286         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
11287         (compute_frame_size): Only allocate space for register that
11288         actually need to be saved.
11289         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
11290         (TARGET_SWITCHES): Remove -mspace, -mno-space
11291         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
11292         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
11293         * pa/ee.asm, pa/ee_fp.asm: Delete.
11294
11295         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
11296
11297         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
11298         directive in column zero.
11299
11300 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
11301
11302         * m68k.c (output_function_prologue): Fix computation of save mask
11303         when generating PIC code.
11304
11305 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
11306
11307         * tree.c (build_type_attribute_variant): Move current_obstack restore
11308         after build_qualified_type call.
11309
11310 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
11311
11312         * configure.in: Use t-iris6, even with GNU LD.
11313         * config/mips/iris6gld.h: Fix typo in linker spec.
11314         * config/mips/t-iris6gld: Remove.
11315
11316 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
11317
11318         * rs6000.md (insv, extzv): Remove SImode dependence in named
11319         patterns.  Explicitly generate DImode RTL if PowerPC64 and
11320         operand is DImode.
11321         (insvdi): Reverse start and size in instruction template.
11322
11323 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
11324
11325         * invoke.texi: Typo fixes.
11326
11327 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
11328
11329         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
11330         handle at this time instead of silently generating incorrect code.
11331         (gen_imagpart): Likewise.
11332
11333         * reload.c (find_reloads): Emit a USE for a pseudo register without
11334         a hard register if we could not create an optional reload for the
11335         pseudo.
11336
11337 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11338
11339         * c-typeck.c (output_init_element, process_init_element):
11340         When advancing constructor_unfilled_fields for a RECORD_TYPE,
11341         check for nameless bit fields.
11342
11343 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
11344
11345         * regclass.c (scan_one_insn): Notice subregs that change the
11346         size of their operand.
11347         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
11348
11349 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
11350
11351         * configure.in (alpha*-*-*): Include alpha/t-ieee.
11352         * configure: Rebuilt.
11353         * alpha/t-ieee: New file.
11354
11355 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
11356
11357         * rs6000.c (find_addr_reg): Do not select r0 as an address
11358         register.
11359
11360 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
11361
11362         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
11363
11364 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
11365
11366         * rs6000.md (movsf): Do not force easy FP constants into memory.
11367
11368         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
11369         immed_double_const to ensure they are properly truncated then
11370         sign extended.
11371
11372 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
11373
11374         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
11375         always unless NO_DEBUG is used.  Compile this code
11376         unconditionally.
11377         (replace_symbols_in_block): Compile it unconditionally.
11378
11379 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
11380
11381         * configure.in (i?86-*-elf*): New target.
11382         * configure: Rebuilt.
11383         * i386/i386elf.h, i386/t-i386elf: New files.
11384
11385 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
11386
11387         * toplev.c (main): Don't complain about saying -gdwarf.
11388         (rest_of_compilation): Remove redundant code.
11389
11390 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
11391
11392         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
11393
11394 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
11395
11396         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
11397         "Li960R:", to avoid name clash.
11398
11399 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11400
11401         * loop.c (check_dbra_loop): When reversing a loop, delete all
11402         REG_EQUAL notes referencing the reversed biv except those which are
11403         for a giv based on it.
11404
11405 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
11406
11407         * version.c: Drop "gcc-" prefix from version #.
11408
11409 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
11410
11411         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
11412         the label if we're being verbose.
11413
11414 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
11415
11416         * m68k.c (output_function_prologue): Add pic register to mask
11417         if live and flag_pic.
11418         (output_function_epilogue): Likewise.
11419
11420 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
11421
11422         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
11423         directives in column zero.
11424
11425         * pa/elf.h (ASM_FILE_START): Define.
11426         * pa/som.h (ASM_FILE_START): Include .level directives.
11427         * pa/hpux10.h (ASM_FILE_START): Delete.
11428         * pa/hpux11.h (ASM_FILE_START): Delete.
11429
11430         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
11431
11432 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11433
11434         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
11435         when reload_out equals reload_in.
11436
11437 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
11438
11439         * invoke.texi (Spec Files): New node: Describe the contents of
11440         spec files.
11441
11442 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
11443
11444         * invoke.texi (DEC Alpha Options): Put @end table at
11445         beginning of line, to avoid confusing texi2html.
11446
11447 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
11448
11449         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
11450         introduced in previous delta.
11451
11452 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11453
11454         * reload1.c (gen_reload): When synthesizing a 3 operand add
11455         sequence, improve test for when to reload OP1 into the reload
11456         register instead of OP0.
11457
11458 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
11459
11460         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
11461
11462 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
11463
11464         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
11465         string literal.
11466
11467 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
11468
11469         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
11470         (va_dcl): Use __builtin_va_alist_t.
11471
11472 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
11473
11474         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
11475         on the permanent_obstack.
11476         * dwarfout.c (output_type): Likewise.
11477
11478 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11479
11480         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11481         Merged from c-typeck.c and cp/typeck.c.
11482         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11483         Merged into c-common.
11484
11485 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
11486
11487         * c-lex.c (errorcount): Declare it.
11488         (finish_parse): Update errorcount when using CPPLIB.
11489
11490 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
11491
11492         * fixinc/inclhack.def(end_else_label): Double the backslash so
11493         sed gets a chance to see it.
11494         * fixinc/inclhack.sh: regen
11495         * fixinc/fixincl.x: regen
11496
11497 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
11498
11499         Add framework to support armv5 architecture when it becomes
11500         available:
11501
11502         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
11503         (arm_arch5): New variable.
11504         (all_architectures): Add armv5 line.
11505         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
11506         -march=armv5 is specified on the command line.
11507         (arm_arch5): Export this variable.
11508         * invoke.texi: Document new string accepted by -march= switch for
11509         ARM ports.
11510
11511         * config/arm/arm.h: Replace use of constant 12 as a register
11512         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
11513         * config/arm/arm.c: Replace use of constant 12 as a register
11514         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
11515
11516         * config/arm/elf.h: Tidy up.
11517         * config/arm/coff.h: Tidy up.
11518
11519 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
11520
11521         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
11522         * gcc/config/mips/t-iris6gld: New file.
11523         * gcc/config/mips/iris6gld.h: Likewise.
11524
11525 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11526
11527         * c-decl.c (widest_integer_literal_type_node,
11528         widest_unsigned_literal_type) : New.
11529         (init_decl_processing): Handle/use the two new types.
11530         * c-common.c (type_for_size,type_for_mode) : Same.
11531         * c-lex.c (yylex) : Same.
11532         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11533         Same.
11534         * c-tree.h (widest_integer_literal_type_node,
11535         widest_unsigned_literal_type) : New.
11536
11537 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
11538
11539         * dwarfout.c (field_byte_offset): Correctly compute the object's
11540         byte offset for the first bit of a field which crosses an alignment
11541         boundary on a !BYTES_BIG_ENDIAN target.
11542
11543 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
11544
11545         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
11546         ntohs.
11547
11548 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
11549                           Jeff Law <law@cygnus.com>
11550
11551         * ginclude/varargs.h (va_dcl): Use word_mode for type of
11552         __builtin_va_list.
11553
11554         * except.c: Include intl.h.
11555         (expand_eh_return): Set current_function_cannot_inline.
11556         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
11557         * function.h (struct function): Add eh_return_stub_label.
11558         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
11559         * Makefile.in (except.o): Depend on intl.h.
11560
11561 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
11562
11563         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
11564         same as offsettable in cases 1 and 2.
11565
11566 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
11567
11568         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
11569         (extlh, extwh): Likewise.
11570
11571 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11572
11573         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
11574
11575 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
11576
11577         * configure.in: Add arm-pe and thumb-pe targets.
11578         * configure: Regenerate.
11579
11580         * thumb.c (arm_naked_function_p): New function: Determines if
11581         a function is naked (has no gcc generated prologue/epilogue).
11582         (is_called_in_ARM_mode): Return true if the func has the
11583         interfacearm attribute.
11584         (output_return): Do not generate a return for naked functions.
11585         (thumb_function_prologue): Do not generate a prologue for
11586         naked functions.
11587         (thumb_expand_prologue): Do not generate a prologue for naked
11588         functions.
11589         (thumb_expand_epilogue): Do not generate an epilogue for naked
11590         functions.
11591         (arm_valid_machine_decl_attribute): New function, copied from
11592         arm.c:  Permit naked and interfacearm attributes.
11593
11594         * config/arm/pe.c: New file: Support code for arm-pe target.
11595         * config/arm/pe.h: New file: Header file for arm-pe target.
11596         * config/arm/tpe.h: New file: Header file for thumb-pe target.
11597         * config/arm/t-thumb-pe: New file: Makefile fragment for
11598         thumb-pe target.
11599
11600 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
11601
11602         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
11603         -fPIC or -fpic is specified.
11604
11605 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
11606
11607         * expr.c (emit_block_move): Use copy_to_mode_reg for
11608         !TARGET_MEM_FUNCTIONS case too.
11609
11610         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
11611         appropriate.
11612         * configure: Rebuilt.
11613         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
11614         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
11615         definitions made redundant by dbxelf.h inclusion.  Delete
11616         lots of definitions related to assembly output that are
11617         specific to the SOM object format.
11618         * pa.c (output_function_prologue): Do not emit the function's
11619         name for OBJ_ELF.
11620         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
11621         * pa-pro.h: Deleted.
11622         * som.h: New file with SOM specific definitions.
11623         * elf.h: New file with ELF specific definitions.
11624
11625         * elfos.h (const_section): Output a tab before assembler directives.
11626         (ctors_section, dtors_section): Likewise.
11627         (ASM_OUTPUT_SECTION_NAME): Likewise.
11628
11629         * pa/pa1.h: Delete unused file.
11630
11631 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
11632
11633         * configure.in (hppa*-hp-hpux11*): New configuration.
11634         * configure: Rebuilt.
11635         * pa/pa-hpux11.h: New file.
11636         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
11637         command line.
11638
11639         * mips.md (leasi, leadi): New patterns.
11640
11641         * expr.c (emit_block_move): Properly handle case where one of the
11642         block move arguments has a queued increment or decrement.
11643         (clear_storage): Similarly.  Fix formatting goof.
11644
11645 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
11646
11647         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
11648         semicolon from the BSD VA_LIST replacement expression.
11649
11650         * fixinc/inclhack.sh: regen
11651         * fixinc/fixincl.x: regen
11652
11653         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
11654         now use the fixincl program.
11655
11656 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
11657
11658         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
11659         case.  Also make the PIC register call_used.
11660
11661         * m68k.h (FINALIZE_PIC): Delete.
11662         * m68k.c (finalize_pic): Delete.
11663
11664 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
11665
11666         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
11667         to memory.
11668
11669 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
11670
11671         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
11672
11673 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
11674
11675         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
11676
11677 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
11678
11679         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
11680
11681 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
11682
11683         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
11684
11685 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
11686
11687         * rs6000.c (output_toc): Always use hex values for floating-point
11688         constants.  Store single-precision values in upper-half of TOC
11689         entry in 64-bit mode.
11690         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
11691         to final constraints.
11692         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
11693         (fctiwz): Improve accuracy of RTL for pattern.
11694
11695 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11696
11697         * expr.c (expand_expr): Allow RTL_EXPR's through the
11698         MAX_INTEGER_COMPUTATION_MODE checks.
11699
11700 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
11701
11702         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
11703         such that MASK_SUPPORT_ARCH is not negative.
11704
11705 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
11706
11707         * loop.c (verify_dominator): Properly handle ADDR_VEC and
11708         ADDR_DIFF_VEC insns that appear inside loops.
11709
11710 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
11711                           Jeff Law <law@cygnus.com>
11712
11713         * rs6000.md (movdf_hardfloat32): Revert previous patch.
11714         Handle LO_SUM the same as offsettable in cases 1 and 2.
11715         * rs6000.c (find_addr_reg): Revert previous patch.
11716
11717 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
11718
11719         * system.h (strstr): New external function declaration.
11720         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
11721         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
11722         * config.in, configure: Rebuilt.
11723
11724 1999-06-24  Tom Tromey  <tromey@cygnus.com>
11725
11726         * gcc.c (main): Read user-specified specs files after computing
11727         additional startfile_prefixes.
11728
11729 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
11730
11731         Revert these two patches:
11732
11733         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11734         * loop.c (strength_reduce): When doing biv->giv conversion, update
11735         reg note of NEXT->insn.
11736
11737         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11738         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
11739         reg_biv_class.
11740         (recombine_givs): Set ix field after sorting.
11741
11742 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11743
11744         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
11745         for the parts of an UNSPEC / UNSPEC_VOLATILE.
11746
11747 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
11748
11749         *fixinc/inclhack.def:  Add fix development commentary
11750         (read_ret_type): reactivate and add selection clause
11751         (zzz_*): tweak output file name to match what is used in hackshell.tpl
11752         *fixinc/{fixincl.x|inclhack.sh}: regen
11753
11754 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
11755
11756         * expr.c (expand_expr): STRIP_NOPS before checking against
11757         MAX_INTEGER_COMPUTATION_MODE
11758         (check_max_integer_computation_mode): Likewise.
11759
11760 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
11761
11762         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
11763
11764 1999-06-22  Jim Wilson  <wilson@cygnus.com>
11765
11766         * expr.c (store_expr): When target is a promoted subreg, return a
11767         promoted subreg as a result.
11768
11769 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
11770
11771         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
11772         coding standards.
11773         (dwarf2out_define): Mark unused parameters appropriately.
11774         (gen_unspecified_parameters_die): Ditto.
11775         (gen_subprogram_die): Fix signed/unsigned warnings.
11776         (gen_variable_die): Ditto.
11777
11778 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
11779
11780         * fixinc/inclhack.def(end_else_label): combined else_label
11781         and endif_label and fixed the sed expression.
11782         *fixinc/{fixincl.x|inclhack.sh}: regen
11783
11784 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
11785
11786         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
11787         'x' when handling non-offsettable addresses
11788
11789 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
11790
11791         * final.c (shorten_branches): Don't try to split an insn that has
11792         been deleted.
11793
11794 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
11795
11796         * config/mips/mips.c (symbolic_expression_p): New function.
11797         (mips_select_rtx_section): Put symbolic expressions in the
11798         data section, not the read-only data section.
11799
11800 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
11801
11802         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
11803
11804 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
11805
11806         * collect2.c (main): Log frame table count.
11807         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
11808         (scan_prog_file) [COFF]: Handle frame tables.
11809
11810         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
11811         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
11812         * alpha/elf.h: Undef them again.
11813         * alpha/vms.h: Remove their definitions.
11814
11815 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11816
11817         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
11818         remove the clobber of r0 and change the REG_UNUSED note to
11819         REG_INC.
11820
11821 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
11822
11823         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
11824         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
11825         fits in HOST_WIDE_INT and one uses union to access a long constant
11826         as double.
11827
11828 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
11829
11830         * sparc.c (sparc_override_options): Don't allow profiling for
11831         code models other than medlow.
11832         (sparc_function_profiler): New function from old FUNCTION_PROFILER
11833         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
11834         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
11835         (sparc_block_profiler): Likewise.
11836         (sparc_function_block_profiler_exit): Likewise.
11837         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
11838         (FUNCTION_BLOCK_PROFILER): Likewise.
11839         (BLOCK_PROFILER): Likewise.
11840         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
11841         (MCOUNT_FUNCTION): New.
11842         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
11843         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
11844         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
11845         (MCOUNT_FUNCTION): New.
11846         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
11847         (BLOCK_PROFILER): Delete.
11848         (MCOUNT_FUNCTION): New.
11849
11850 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
11851
11852         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
11853
11854 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
11855
11856         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11857         Add the macros.
11858
11859         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11860         Ditto.
11861
11862         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11863         Ditto.
11864
11865         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11866         Ditto.
11867
11868 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
11869
11870         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
11871         types.
11872
11873 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
11874
11875         * i386/djgpp.h (LIB_SPEC): New.
11876         (STARTFILE_SPEC): New.
11877
11878         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
11879
11880 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
11881
11882         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
11883         compiler flags.
11884
11885         * system.h (WSTOPSIG): New macro.
11886
11887 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11888
11889         * c-pragma.c (push_alignment): Don't ignore alignments greater than
11890         4 bytes.
11891         (insert_pack_attributes): Take into account member natural
11892         alignment.
11893
11894         * i386/winnt.c (exports_head): New static variable.
11895         (i386_pe_record_exported_symbol): New function.
11896         (i386_pe_asm_file_end): Use.
11897         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
11898         symbols to be emitted at end of assembly.
11899         (ASM_DECLARE_OBJECT_NAME): Likewise.
11900         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11901
11902         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
11903         -iwithprefix.
11904
11905 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
11906
11907         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
11908         in last change.
11909
11910 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
11911
11912         * haifa-sched.c (sched_analyze_1): Use free_list instead of
11913         zapping reg_last_uses directly.
11914         (sched_analyze_2, sched_analyze_insn): Likewise.
11915         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
11916
11917 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
11918
11919         * rs6000.md (movdf_hardfloat32): Use worst case insn length
11920         attributes for cases 1 and 2.
11921
11922 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
11923
11924         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
11925         instead of set.
11926
11927 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
11928
11929         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
11930
11931 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
11932
11933         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
11934         PIC_OFFSET_TABLE_REGNUM for general alloaction.
11935         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
11936         must be stacked if it is used for PIC accesses.
11937         * arm.c (use_return_insn): Handle PIC register specially.
11938         (output_return_instruction): Likewise.
11939         (output_func_{prologue,epilogue}): Likewise.
11940         (output_expand_prologue): Likewise.
11941
11942         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
11943         (*strsi_predec): Renamed from *strqi_predec.
11944         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
11945         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
11946
11947         * arm.c (arm_override_options): Remove warning about PIC code
11948         not being supported.
11949
11950 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
11951
11952         * rs6000.c (find_addr_reg): New function.
11953         * rs6000.h (find_addr_reg): Declare.
11954         (offsettable_addr_operand): Delete.
11955         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
11956         from and stores to GPRs.
11957
11958 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
11959
11960         * alpha.c (alpha_expand_block_move): Use get_insns rather than
11961         gen_sequence as argument to emit_no_conflict_block.
11962
11963 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11964
11965         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
11966         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
11967         *fixinc/fixincl.x: regen
11968         *fixinc/inclhack.sh: regen
11969
11970 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
11971
11972         * added support for -mpcrel (PC relative addressing for m68k)
11973         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
11974         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
11975         * m68k.c (print_operand_address): Handle 32-bit PIC case.
11976         (comments for general_src_operand): Add some explanation
11977         about EXTRA_CONSTRAINTS.
11978         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
11979         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
11980         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
11981         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
11982         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
11983         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
11984         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
11985         if not already set.
11986         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
11987         * m68k.h (TARGET_PCREL): New target flag.
11988         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
11989         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
11990         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
11991         contains a SYMBOL_REF.  Relax this constraint during reload, since
11992         we want to use the predicates, not reload's built-in concept of a
11993         valid memory address, to control what insns need reloading.
11994         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
11995         operands (essentially 'g', 'm', and 's' under normal circumstances).
11996         * m68k.c (print_operand): Cause printing of pc-relative addresses
11997         to include pc register.
11998         (print_operand_address): Ditto.
11999         (general_src_operand): Accept operands that are not only
12000         general_operands, but are also valid when used as a pc-relative
12001         source.
12002         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
12003         (memory_src_operand): Similar, for memory_operands.
12004         (pcrel_address): New predicate to accept the special case of a
12005         pc-relative address.
12006         * m68k.md (many patterns): Rewrite common SImode, HImode, and
12007         QImode insns to accept *_src_operand instead of *_operand where
12008         pc-relative operands can fit.  For example, a pc-relative operand
12009         can be used as a memory source operand for addsi3, but not as a
12010         memory destination.
12011         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
12012
12013 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
12014
12015         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
12016         .thumb_set pseudo op to mark aliases of thumb functions.
12017
12018 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
12019
12020         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
12021         preference to ASM_OUTPUT_DEF, if it is defined.
12022
12023         * tm.texi: Document new, optional target macro
12024         ASM_OUTPUT_DEF_FROM_DECLS.
12025
12026 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12027
12028         * fixincludes: ISCNTL patch
12029         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
12030         (dgux_int_varargs): new for DG/UX
12031         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
12032
12033 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
12034
12035         * invoke.texi (ia32 options): Fix typo.
12036
12037 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12038
12039         * loop.c (strength_reduce): When doing biv->giv conversion, update
12040         reg note of NEXT->insn.
12041
12042 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
12043
12044         * loop.c (move_movables): Note issues with replacing REGs with
12045         SUBREGs.
12046         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
12047
12048 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
12049
12050         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
12051
12052         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
12053         the reference to `mcount' was not correct for the ELF on FreeBSD.
12054
12055 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12056
12057         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
12058         reg_biv_class.
12059
12060         (recombine_givs): Set ix field after sorting.
12061
12062 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
12063
12064         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
12065         to safe to extract a subword out of a REG.
12066
12067 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12068
12069         * sh.md (mulsi3): Don't add a no-op move at the end.
12070
12071 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12072
12073         * cse.c (cse_insn): Don't put hard register source into tables for
12074         the last insn of a libcall.
12075
12076 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12077
12078         * loop.c (strength_reduce): Insert sets of derived givs at every
12079         biv increment, even if it's the only one.
12080
12081 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
12082
12083         * dwarfout.c (add_incomplete_type): New fn.
12084         (output_type): Call it.
12085         (retry_incomplete_types): New fn.
12086         (dwarfout_finish): Call it.
12087
12088         From Eric Raskin <ehr@listworks.com>:
12089         (output_type): Output types for bases.
12090
12091 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
12092
12093         * mips.c (mips_output_conditional_branch): Add `break'
12094         between `default' label and `close braces'.
12095
12096 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
12097
12098         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
12099         specifications and make it realistic.
12100         (LIB_SPEC): Likewise.
12101
12102 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
12103
12104         * config/mips/mips.c (mips_secondary_reload_class): Check for
12105         (PLUS (SP) (REG)) and return appropriate register class.
12106         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
12107         Handle (PLUS (SP) (REG)).
12108         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
12109         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
12110         of emit_insn for tablejump.
12111
12112 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
12113
12114         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
12115         asm_fprintf format string by itself.
12116         (output_function_profiler): Likewise.
12117
12118 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
12119
12120         * combine.c (simplify_logical, case AND): Only call
12121         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
12122         or the constant is positive.
12123
12124 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
12125
12126         * configure.in: Fix typo in rs6000-ibm-aix4 case.
12127         * configure: Regenerate.
12128
12129 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
12130
12131         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
12132         require a sub-version #.
12133         * configure: Rebuilt.
12134
12135 1999-06-14  Robert Lipe  (robertlipe@usa.net)
12136
12137         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
12138
12139 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
12140
12141         * c-typeck.c (process_init_element): Detect excess elements in
12142         char array initializer.
12143
12144 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
12145
12146         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
12147
12148 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12149
12150         * invoke.texi (Option Summary): Add -fpermissive flag.
12151
12152 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
12153
12154         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
12155         that require PIC code sequences.
12156
12157 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
12158
12159         * configure.in: Add new target: thumb-elf.
12160         * configure: Regenerate.
12161         * config/arm/t-thumb-elf: New file: Makefile fragment for
12162         thumb-elf build.
12163         * config/arm/telf.h: New file: Header file for thumb-elf
12164         build.
12165
12166 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
12167
12168         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
12169         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
12170         initializers is some circumstances.
12171
12172         * fixinc/inclhack.def (endif_label): Add additional selector for
12173         more bogus stuff after #endif statements.
12174         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
12175
12176 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12177
12178         * i386/cygwin.h (SET_ASM_OP): Define.
12179
12180 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12181
12182         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
12183
12184 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12185
12186         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
12187         latter.
12188
12189         * sh.md (ic_invalidate_line_i): Remove second alternative.
12190
12191 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12192
12193         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
12194         test for the presence of valid prototypes.  Delete bypass expr.
12195         (ioctl_fix_ctrl): Correct the selection expression.
12196         (no_double_slash): Correct quoting rules
12197         *fixinc/fixincl.x: regen
12198         *fixinc/inclhack.sh: regen
12199
12200 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
12201
12202         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
12203
12204 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12205
12206         * rs6000.md (movsi_got_internal_mem): Delete.
12207         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
12208         (GOT_TOC_REGNUM): Delete.
12209         (PIC_OFFSET_TABLE_REGNUM): Define.
12210         (FINALIZE_PIC): Disable.
12211         * rs6000.c (rs6000_got_register): New code for fixed pic register.
12212         (rs6000_replace_regno): Delete.
12213         (rs6000_finalize_pic): Likewise.
12214         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
12215
12216 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12217
12218         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
12219         is a note; use <= for the compare; advance P while it is
12220         a NOTE.
12221
12222 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
12223
12224         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
12225         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
12226
12227         * varasm.c (remove_from_pending_weak_list): Verify t->name
12228         is non-NULL before passing it to strcmp.
12229
12230 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12231
12232         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
12233         the typed arguments are not part of a comment
12234         (ioctl_fix_ctrl): Added a purpose comment
12235         *fixinc/fixincl.x: regenerate
12236         *fixinc/inclhack.sh: regenerate
12237
12238 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12239
12240         * invoke.texi: Add C4x invocation docs.
12241
12242 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12243
12244         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
12245         Define new macros.
12246         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
12247         TARGET_EXPOSE_LDP.
12248         (c4x_legitimize_reload_address): New function.
12249         * config/c4x/c4x.md: Update docs.
12250
12251 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
12252
12253         * fixincludes: Avoid removing '.'.
12254         * fixinc/fixinc.svr4: Likewise.
12255         * fixinc/fixinc.winnt: Likewise.
12256         * fixinc/inclhack.tpl: Likewise.
12257         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
12258
12259 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12260
12261         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
12262         pattern.
12263         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
12264
12265 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12266
12267         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
12268         correctly.
12269
12270 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
12271
12272         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
12273         * configure: Regenerate.
12274
12275 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
12276
12277         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
12278         values.
12279
12280 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
12281
12282         * fixinc/inclhack.def (avoid_bool): Also catch
12283         "typedef [unsigned] int bool".
12284         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
12285
12286         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
12287         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
12288         * configure: Rebuilt.
12289
12290 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
12291
12292         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
12293         such that we can override its definitions if necessary.
12294         (CPP_SPEC): New define.  Support processor specific predefines via
12295         %(cpp_cpu).
12296         (CC1_SPEC): New define.  Support processor specific compiler
12297         options via %(cc1_cpu).
12298         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
12299         -static.
12300
12301 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12302
12303         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
12304         between sed's -e flag, and the open-quote following it.
12305         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
12306
12307 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
12308                           Jeffrey A Law  (law@cygnus.com)
12309
12310         * varasm.c (assemble_start_function): Remove the function
12311         from the pending weak decls list when we define a function.
12312         (assemble_variable): Similarly for variables.
12313         (weak_finish): Ignore items on the list with a NULL name.
12314         (remove_from_ending_weak_list); New function to "remove" an item
12315         from the pending weak declarations list.
12316
12317 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12318
12319         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
12320
12321 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
12322
12323         * c-lex.c (GETC): Redefine to call getch.
12324         (UNGETC): Redefine to call put_back.
12325         (putback_buffer): New structure type.
12326         (putback): New static structure.
12327         (getch): New function.
12328         (put_back): New function.
12329         (yylex): Replace unused bytes from bad multibyte character.
12330
12331 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
12332
12333         * cpplib.c (do_define): Cast `alloca' return value.
12334         (do_include, do_undef, do_pragma): Likewise.
12335         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
12336         values.
12337         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
12338         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
12339
12340 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
12341
12342         * sparc.md (abstf2): This should be an expand.
12343         (split after abstf2_notv9): Fix mode.
12344         (abstf2_hq_v9): New pattern.
12345         (abstf2_v9): Only use when no hard quad.
12346         (absdf2_v9): Fix if target is not the same as source.
12347         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
12348         Add correct output constraints.
12349
12350 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
12351
12352         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
12353         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
12354
12355 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
12356
12357         * mips.h (mips_output_conditional_branch): New function.
12358         (mips_adjust_insn_length): Likewise.
12359         (ASSEMBLER_SCRATCH_REGNUM): New macro.
12360         (ADJUST_INSN_LENGTH): Likewise.
12361         * mips.c (print_operand): Add `F' and `W' for floating-point
12362         comparison opcodes.
12363         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
12364         are now in bytes.
12365         (mips_adjust_insn_length): New function.
12366         (mips_output_conditional_branch): New function.
12367         * mips.md (length): Adjust attribute definition to handle
12368         conditional branches.   Change lengths to bytes, rather than
12369         instructions throughout.  Remove length attribute from
12370         instructions whose length is four bytes, and rely on the default
12371         instead.
12372         (dslot): Fix typo in comment.
12373         Reword conditional branch patterns to use
12374         mips_output_conditional_branch.
12375
12376 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12377
12378         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
12379         (LIB_SPEC): Likewise.
12380         Link with -lprof1_r for -g/-pg.
12381
12382 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12383
12384         * loop.c (check_dbra_loop): Fix change of Jan 19.
12385
12386 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
12387
12388         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
12389         (STARTFILE_SPEC):  Define, override the svr4.h version.
12390         (ENDFILE_SPEC):  Likewise.
12391
12392 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
12393
12394         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
12395         * fixinc/fixincl.x: Regenerated.
12396         * fixinc/inclhack.sh: Regenerated.
12397
12398 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12399
12400         * sh.c (barrier_align): Don't return early for normal branch/barrier
12401         when optimizing for SH2.
12402
12403 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
12404
12405         * i386/udk.h (LINK_SPEC): Correct linker search path for
12406         system libraries.
12407
12408 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12409
12410         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
12411         (braf_label_ref_operand): Delete.
12412         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
12413         * sh.md (casesi_jump_2): Operand1 is now the inside of a
12414         label_ref, and has no predicate.
12415         The patten has a predicate to guard against invalid substitutions.
12416         (dummy_jump): Delete.
12417         (casesi): Update use of casesi_jump_2.
12418
12419 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12420
12421         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
12422         *fixinc/fixincl.x: regenerate
12423         *fixinc/inclhack.sh: regenerate
12424
12425 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
12426
12427         * dwarf2out.c (add_incomplete_type): New fn.
12428         (gen_struct_or_union_type_die): Call it.
12429         (retry_incomplete_types): New fn.
12430         (dwarf2out_finish): Call it.
12431
12432 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
12433
12434         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
12435         current block starts with a CODE_LABEL and ends with a CALL and
12436         we can not find all the argument setup instructions for the CALL.
12437
12438 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
12439
12440         Revert this change:
12441         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
12442         something is a candidate for optimize_bit_field_compare.
12443
12444 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12445
12446         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
12447
12448 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
12449
12450         * alpha.c (override_options): Thinko in last patch.
12451
12452         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
12453         (LIB_SPEC): Recognize -pthread.
12454
12455 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
12456
12457         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
12458         definition in config/arm/coff.h
12459         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
12460
12461 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
12462
12463         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
12464         fixes that need "file=xxx\n" prepended before invocation
12465         (start_fixer - new): starting the fixer process is complex enough
12466         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
12467         (process): uses the new routine; omit usage of putenv()
12468         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
12469         * fixinc/fixincl.x: regenerate
12470
12471 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
12472
12473         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
12474         and version #s (1.1 -> 2.96) as needed.
12475         * README.g77: Kill way out of date file in the toplevel directory.
12476
12477 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
12478
12479         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
12480         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
12481         * configure: Rebuilt.
12482         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
12483         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
12484         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
12485         (SWITCH_TAKES_ARG): Likewise.
12486         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
12487         * config/t-freebsd: Moved from config/i386/ so it can used for all
12488         FreeBSD targets.
12489
12490 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
12491
12492         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
12493
12494 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
12495
12496         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
12497         * configure: Rebuilt.
12498
12499 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
12500
12501         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
12502         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
12503         * rs6000/rs6000.c (rs6000_file_start): Use putc.
12504         (rs6000_output_load_toc_table): Same.
12505         (output_prolog, output_mi_thunk): Same.
12506         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
12507         (ASM_GLOBALIZE_LABEL): Use putc.
12508
12509 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
12510
12511         * alpha.md (reload_*_help): New patterns and splitters.
12512         (reload_*): Use them.
12513         (mov[qh]i): Likewise.
12514
12515 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
12516
12517         * cccp.c (handle_directive): Handle backslash-newlines in quoted
12518         strings correctly.
12519
12520 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
12521
12522         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
12523
12524 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
12525
12526         * flow.c (mark_regs_live_at_end, insn_dead_p,
12527         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
12528         and HARD_FRAME_POINTER_REGNUM special treatment if reload
12529         hasn't run or the frame pointer is needed.
12530         * haifa-sched.c (attach_deaths): Likewise.
12531         * sched.c (attach_deaths): Likewise.
12532
12533 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
12534
12535         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
12536         calculate_can_reach_end returns nonzero.
12537
12538         * configure.in (native gas tests): Search for an assembler in the
12539         same manner that the installed compiler will.
12540         * configure: Rebuilt.
12541         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
12542
12543         * alias.c (find_base_term): Improve handling of addresses
12544         constructed from binary operations.
12545
12546 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
12547
12548         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
12549
12550 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
12551
12552         * function.h (cleanup_label, frame_offset): Declare.
12553         (tail_recursion_label, tail_recursion_reentry): Likewise.
12554         (arg_pointer_save_area, rtl_expr_chain): Likewise.
12555         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
12556         (tail_recursion_label, tail_recursion_reentry): Likewise.
12557         (arg_pointer_save_area, rtl_expr_chain): Likewise.
12558
12559 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
12560
12561         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
12562         defined.
12563         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
12564         (MAX_OFILE_ALIGNMENT): Define.
12565
12566 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
12567
12568         * fixincl.c: Replace local include scheme with #includes of
12569         gansidecl.h and system.h.
12570         * procopen.c:  Likewise.
12571         * server.c:  Likewise.
12572
12573 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
12574
12575         * i386/t-dgux (EXTRA_PARTS): Add crti.o
12576         (crti.o): Add build rule and dependencies.
12577         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
12578
12579 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12580
12581         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
12582         (LIB_LINUX_SPEC): Likewise.
12583         (LIB_LINUX_SPEC): Add support for -pthread
12584         (CPP_OS_LINUX_SPEC): Likewise.
12585         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
12586         specified.
12587
12588 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
12589
12590         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
12591         conditional move.
12592         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
12593         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
12594         for IEEE math and CC_FCOMI.
12595         (put_jump_code): No IEEE if CC_FCOMI is set.
12596
12597 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12598
12599         * fold-const.c (fold_truthop): Make the field reference unsigned
12600         when converting a single bit compare.
12601
12602 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12603
12604         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
12605
12606 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
12607
12608         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
12609         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
12610         version did.
12611
12612         * reload.c (push_reload): Do not call remove_address_replacements
12613         when presented with identical optional reloads.
12614
12615 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
12616
12617         * alpha.h (MASK_FIX, TARGET_FIX): New.
12618         (MASK_*): Reorganize constants.
12619         (CPP_AM_FIX_SPEC): New.
12620         (TARGET_SWITCHES): Add FIX.
12621         (EXTRA_SPECS): Likewise.
12622         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
12623         (SECONDARY_MEMORY_NEEDED): Likewise.
12624         (REGISTER_MOVE_COST): Likewise.
12625         * alpha.c (override_options): Add FIX support.  Always use
12626         ALPHA_TP_PROG for ev6.
12627         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
12628         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
12629         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
12630
12631 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
12632
12633         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
12634         something is a candidate for optimize_bit_field_compare.
12635
12636 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
12637
12638         * gcc.texi (Passes): Document branch-shortening.
12639         * invoke.texi (Debugging Options): Document the fact that `-dp'
12640         outputs length information for instructions.
12641
12642 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
12643
12644         * flow.c: Revert previous delta.
12645
12646 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
12647
12648         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
12649         FRAME_POINTER_REGNUM.
12650         (mark_set_1): Ditto.
12651         (mark_used_regs): Ditto.
12652
12653 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
12654
12655         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
12656         (GOT_PCREL): New macro.  Define to 1 if not already defined.
12657         * arm/elf.h (GOT_PCREL): Define to 0.
12658         * arm.c (arm_finalize_pic): Take into account the setting of
12659         GOT_PCREL.
12660
12661 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
12662
12663         * output.h (STRIP_NAME_ENCODING): Provide default definition.
12664         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
12665
12666         * flow.c (mark_set_1): Do not record BLKmode stores as dead
12667         store elimination candidates.
12668
12669 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12670
12671         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
12672         TARGET_GAS.
12673
12674 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
12675
12676         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
12677         Add use of x-aix41-gld.
12678
12679 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
12680
12681         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
12682         (ASM_OUTPUT_DESTRUCTOR): Define.
12683
12684 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
12685
12686         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
12687         last CODE_LABEL in a loop if we have previously passed a jump
12688         to the top of the loop.
12689
12690 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
12691
12692         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
12693         applying Philip's patch.
12694
12695 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
12696
12697         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
12698         are not VAR_DECLs.
12699
12700 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
12701
12702         * loop.c (strength_reduce): Grow reg_single_usage as needed.
12703
12704 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
12705
12706         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
12707         Also remove a useless comment.
12708
12709 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12710
12711         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
12712
12713 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
12714
12715         * collect2.c (main): Only generate import or export file and add
12716         to link arguments if non-empty.  Use xmalloc not alloca.
12717         (write_{export,import}_file): Delete.
12718         (write_aix_file): New function.
12719         (locatelib): Use xmalloc not malloc.
12720         (GCC_OK_SYMBOL): Do not check type if aix64.
12721
12722 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
12723
12724         Based on patch by Scott Bambrough and Pat Beirne:
12725         * config/arm/arm.c (making_const_table): New variable.
12726         * config/arm/arm.h (making_const_table): Declare.
12727         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
12728         appropriate.
12729         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
12730         Keep track of when we are building the constant table.
12731
12732 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
12733
12734         * config/arm/arm.c (arm_override_options): Fix erroneous warning
12735         message.
12736
12737 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
12738
12739         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
12740         defined.
12741
12742 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
12743
12744         * tm.texi (FUNCTION_ARG): Correct description of a stack element
12745         in a PARALLEL.
12746
12747 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
12748
12749         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
12750
12751 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12752
12753         * rs6000.c (output_mi_thunk): Enable full support again.
12754
12755 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12756
12757         * sh.h (BRANCH_COST): Define.
12758
12759 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
12760
12761         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
12762
12763 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
12764
12765         * function.c (assign_stack_local): Align stack slot propertly.
12766         (assign_outer_stack_local): Likewise.
12767
12768 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
12769
12770         * expr.h (lang_expand_constant): Declare.
12771         * toplev.c (lang_expand_constant): Define it.
12772         * varasm.c (output_constant): Use it.
12773
12774 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12775
12776         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
12777         Change function definitions to K&R style.
12778
12779 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12780
12781         * fixinc/fixincl.c: We must not ignore SIGCLD now.
12782
12783 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
12784
12785         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
12786         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
12787         (several places): omit static initialization
12788         (process): use single fd, since only the read fd is used
12789         * fixinc/gnu-regex.c: define 'const' away, if not supported
12790         * fixinc/procopen.c(several places): omit static initialization
12791         * fixinc/server.c: define 'volitile' away, if not supported
12792
12793 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12794
12795         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
12796         asm_fprintf and %L to generate the label name.
12797         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
12798         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
12799
12800 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
12801
12802         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
12803         insn for a conditional jump can not be found.
12804
12805 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
12806
12807         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
12808         on variables in specific sections other than .sbss and .sdata.
12809
12810 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
12811
12812         * stmt.c (expand_return): Call start_cleanup_deferral and
12813         end_cleanup_deferral around conditional code.
12814
12815 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12816
12817         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
12818         filename lists.  Utilizes new "krstr" AutoGen function.
12819         * fixinc/fixincl.x: Rebuilt.
12820
12821 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
12822
12823         * i386.c (output_float_compare): Avoid GNU-C extensions.
12824
12825 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
12826
12827         * version.c: Bump to distinguish mainline tree from the
12828         gcc-2.95 branch.
12829
12830 See ChangeLog.1 for earlier changes.