OSDN Git Service

* flow.c (flow_loops_dump): Add missing argument when calling
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2
3         * flow.c (flow_loops_dump): Add missing argument when calling
4         flow_loop_nested_p.
5
6 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
7             Greg McGary  <gkm@gnu.org>
8
9         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
10         (init_attributes): Add A_NO_LIMIT_STACK.
11         (decl_attributes): Handle A_NO_LIMIT_STACK.
12         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
13         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
14         Handle stack bounds checking.
15         * flags.h (flag_stack_check): Use the word 'probe' rather than
16         'check', because the flag doesn't actually cause any checking to
17         be done.
18         * function.c (expand_function_start): Set
19         current_function_limit_stack.
20         * function.h (struct function): Add limit_stack.
21         (current_function_limit_stack): Define.
22         * invoke.texi (Code Gen Options): Document new options.
23         * rtl.h: Declare stack_limit_rtx.
24         * toplev.c (stack_limit_rtx): New variable.
25         (decode_f_option): Handle new options -fstack-limit-register=REG,
26         -fstack-limit-symbol=IDENT, -fno-stack-limit.
27         (main): Add stack_limit_rtx as GC root.
28         * tree.h (DECL_NO_LIMIT_STACK): New macro.
29         (struct tree_decl): New member no_limit_stack.
30
31         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
32         stack_limit_rtx.
33         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
34         (conditional_trap+1): Get new mnemonic correct.
35         (conditional_trap+2): New pattern for DImode traps.
36
37         * config/m68k/m68k.c (output_function_prologue): Handle
38         stack_limit_rtx.
39         * config/m68k/m68k.md (trap): New insn.
40         (conditional_trap): New insn.
41         * md.texi (Standard Names): Document `trap' and
42         `conditional_trap'.
43         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
44         so a cc0 setter doesn't get emitted at some random place in the
45         function.
46
47         * config/i960/i960.md (trap): New insn.
48         (conditional_trap): New expander.
49         (conditional_trap+1, conditional_trap+2): New insns for signed
50         and unsigned cases.
51         * config/i960/i960.c (i960_function_prologue): Use 
52         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
53
54 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
55                           Geoffrey Keating  <geoffk@cygnus.com>
56
57         * flags.h (warn_padded, warn_packed): Add global var decls.
58         * toplev.c (warn_padded, warn_packed): Add global var defns.
59         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
60         * stor-layout.c (layout_record): Add local variable `type'
61         to hold often-used TREE_TYPE (field).  Add local variable
62         `unpacked_align' to hold alignment that would be in force
63         if no `packed' attribute were present.  Warn if `packed' attribute
64         is unnecessary, or even harmful.  Warn when gcc inserts padding
65         to satisfy alignment requirements of members.  Use NULL_TREE
66         when checking whether var_size is set.
67         * invoke.texi: Document new flags.
68
69 1999-12-03  Nathan Sidwell  <nathan@acm.org>
70
71         * frame.c (fde_split): Reimplement to avoid variable sized array.
72
73 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
74
75         * combine.c (try_combine): Before fixing up LOG_LINKS for the
76         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
77
78 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
79
80         * invoke.texi: Document the mips option -mno-crt0
81
82 1999-12-02  Mike Karr  <mkarr@mathworks.com>
83
84         * cccp.c (argdata): Added free_ptr member.
85         (macroexpand): Initialize free_ptr of each argument. When an
86         argument's buffers are freed, if the argument's free_ptr corresponds
87         to a buffer on the input stack, then return the free_ptr to that stack
88         frame, otherwise, free it.
89         (macarg): If an argument begins and ends on the same input stack level,
90         then transfer the free_ptr of that buffer to the argument in case
91         the stack is popped during the processing of a subsequent argument.
92
93 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
94
95         * loop.c (note_reg_stored): New function.
96         (struct note_reg_stored_arg): New structure.
97         (try_copy_prop): Change to be more conservative; only replace within
98         one extended basic block and stop replacing if a store to the
99         replacement reg is seen.
100
101 1999-12-02  Nick Clifton  <nickc@cygnus.com>
102
103         * config/fp-bit.c: Initialise all fields of the NAN
104         constants. 
105
106         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
107         to HANDLE_PRAGMA.
108
109 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
110
111         * i386.md (extend?f?f2): Force the input into a register, not
112         the output.
113
114 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
115
116         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
117         regclass' sake.
118         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
119         alternative because setting up 64bit constant is usually costly,
120         especially when reload is in progress or completed.
121         (movdf_const_intreg_sp64): Likewise.
122         (movdf_const_intreg split): Fix building up constants when
123         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
124
125 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
126
127         * combine.c (if_then_else_cond): Use const_true_rtx instead of
128         const1_rtx for return values in EQ/NE comparison against (const_int 0)
129         case.
130
131         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
132         (asm_file_start): Emit .am33 into assembly file when compiling for
133         the AM33.
134         (print_operand_address): Handle POST_INC addresses.
135         (can_use_return_insn, initial_offset): Check AM33 registers too.
136         (expand_prologue): Check & save AM33 registers too.
137         (expand_epilogue): Similarly.
138         (secondary_reload_class): Handle AM33 specific secondary reloads.
139         (output_tst): Emit efficient code for the AM33 too.
140         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
141         (TARGET_SWITCHES): Add -mam33 switch.
142         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
143         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
144         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
145         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
146         (enum reg_class, REG_CLASS_NAMES): Likewise.
147         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
148         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
149         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
150         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
151         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
152         (HAVE_POST_INCREMENT): Define.
153         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
154         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
155         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
156         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
157         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
158         (zero_extend to SI from QI/HI): Likewise.
159         (sign_extend to SI from QI/HI): Likewise.
160         (mulsidi3, umulsidi3): New patterns for the AM33.
161         (tstsi with zero extension from QI/HI): Add AM33 variants.
162         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
163         (return_internal_regs, store_movm): Handle new AM33 registers.
164         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
165         (LIBGCC, INSTALL_LIBGCC): Likewise.
166         * invoke.texi: Document new flags.
167
168 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
169
170         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
171         (addsi3_carry): Likewise.
172         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
173         (sbbsi3_carry): Likewise.
174         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
175         (mulhi3): Likewise.
176         (test?i_1): Ensure that only one operand is memory.
177         (conditional move patterns): likewise.
178         (shift and rotate patterns): Rewrite to expander, add
179         "binary_operator_ok" to the condition.
180
181         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
182         * i386.h (procesor_costs): Add movzbl_load field.
183         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
184         non-Q registers, accept DImode registers anywhere.
185         (Q_CLASS_P): New.
186         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
187         * i386.c (*_cost): Set value for movxbl_load field.
188
189         * (addsi): New add to lea splitter.
190         (ashlsi): Likewise.
191         (lea to add/shift peep2): New.
192
193 1999-12-01  Mark Salter <msalter@cygnus.com>
194
195         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
196         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
197         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
198
199 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
200
201         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
202         * i386.md (movsi_xor): New.
203         (movsi_or): New.
204         (movsi_1, movhi_1, movqi_1): Remove.
205         (movsi_2): Rename to movsi_1.
206         (movhi_2): Rename to movhi_1.
207         (movqi_2): Rename to movqi_1.
208         (movdi_1): Remove; remove splitter.
209         (movdi_2): Rename to movdi_1.
210         (divmodsi4 splitter): Do not emit clobbers for move patterns.
211         (long move peep2): Do not create QI or HI mode mov0s
212         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
213
214         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
215         rewrite splitters.
216
217         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
218         (abs?f2_if): Likewise.
219
220 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
221
222         * ggc.h (ggc_test_and_set_mark): New macro.
223         (ggc_mark_rtx): Use ggc_test_and_set_mark.
224         (ggc_mark_tree): Likewise.
225         (ggc_mark_rtvec): Likewise.
226         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. 
227
228 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
229
230         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
231         containing types.
232         (decl_scope_table): Just an array of trees now.
233         (push_decl_scope): Simplify.
234         (dwarf2out_init): Adjust.
235         (local_scope_p): New fn.
236         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
237         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
238         (gen_typedef_die): Likewise.
239         (gen_lexical_block_die): Don't call push/pop_decl_scope.
240         (gen_inlined_subroutine_die): Likewise.
241         (gen_abstract_function): Set current_function_decl temporarily.
242         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
243         Handle block extern declarations.  Don't call push/pop_decl_scope.
244         (gen_decl_die): Fix logic for block externs.
245
246 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
247
248         * calls.c (special_function_p): Remove `realloc' and add `strdup'
249         to the list of functions which have attribute malloc by default.
250
251 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
252
253         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
254         integer constant does not match the traditional type, limit the
255         warnings to cases where the base of the type is ten.
256
257         * invoke.texi (-Wtraditional): Document it.
258
259 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
260
261         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
262         * rs6000.md: Only access a CONST_INT with INTVAL
263
264 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
265
266         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
267         (compute_nearerout): Likewise.
268         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
269         size_t to unsigned long for formatting.
270
271 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
272
273         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
274         Allow the user to override call-used/fixed state of %g2-5
275         registers from the command line (with the exception of %g4 for
276         embedded model).
277         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
278         there is a higher chance of having a leaf function.
279         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
280         for ARCH64 which has %ccr register.
281         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
282         patterns.
283         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
284         insn accept into delay slot any insn which does not use %[ol]
285         registers.  Accept some LO_SUM and shift left by 1 for the normal
286         restore case.
287         (output_function_epilogue): Likewise.
288         (epilogue_renumber): Added argument which inhibits any renumbering
289         and just tests if the rtx does not use any %[ol] registers.
290         (output_return): Reflect above change.
291
292 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
293
294         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
295         aggregate passing for sizes <= 16 bytes.
296
297 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
298
299         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
300         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
301         * reload.c (find_dummy_reload): Likewise.
302         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
303         * reload1.c (reload_as_needed): Likewise.
304         * stupid.c (stupid_find_reg): Likewise.
305         * tm.texi (Obsolete Register Macros): Delete section.
306         * gmicro.h: Remove all traces of the two macros.
307         * i386.h: Likewise.
308         * m88k.h: Likewise.
309         * mips.h: Likewise.
310
311 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
312
313         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
314         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
315         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
316         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
317         units for the sparclite86x chip.
318         (flush): Revert October 14th change; add SImode specifically.
319         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
320         * invoke.texi: Document it.
321
322 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
323
324         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
325         psimode_truncation_operand.
326
327         * config/mn10200/mn10200.c (psimode_truncation_operand): New
328         function.  Return true if the operand is either a MEM valid
329         for a PSImode address or not a MEM at all.
330
331         * config/mn10200/mn10200.md (truncsipsi2): Use
332         psimode_truncation_operand.
333
334 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
335
336         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
337         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
338         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
339         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
340         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
341         (flow_loop_level_compute, low_loops_level_compute): Likewise.
342         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
343         * basic-block.h: Protect from multiple inclusion.
344         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
345         (struct loops, struct loop): Define structures.
346         * sbitmap.c (sbitmap_a_subset_b_p): New function.
347         * sbitmap.h: Protect from multiple inclusion.
348         (sbitmap_a_subset_b_p): Add prototype.
349         * Makefile.in (LOOP_H): New macro.
350         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
351
352 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
353
354         * cppinit.c (CAT): The argument list of this macro may not contain
355         spaces !
356
357 1999-11-29  David S. Miller  <davem@redhat.com>
358
359         Move quantity tables and register equivalence chains into
360         per-qty and per-register structure arrays respectively.
361         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
362         qty_const_insn, qty_comparison_code, qty_comparison_const,
363         qty_comparison_qty): Delete, replace with...
364         (qty_table): this structure table.
365         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
366         (reg_eqv_table): this structure table.
367         (make_new_qty): Add argument MODE.  Caller updated.
368         Update to use qty_table and reg_eqv_table.
369         (make_regs_eqv, delete_reg_equiv, insert_regs,
370         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
371         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
372         cse_process_notes, cse_main, cse_basic_block): Likewise.
373
374 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
375
376         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
377         operation if C is negative.
378         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
379         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
380         law for some divisions if constant is negative and change other
381         divisions to the opposite rounding.
382
383         * expr.c (store_constructor_field): If bit position is not multiple
384         of alignment of TARGET's mode, use BLKmode.
385
386         * expr.c (expand_expr_unaligned): Add more code from full case
387         that is needed when OP0 is in a register.
388
389 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
390
391         * dwarfout.c (field_byte_offset): Size can be zero if there was
392         an error.
393
394 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
395
396         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
397         (associate_trees): Delete unused var TEM.
398         (extract_muldiv): Delete unused var CANCEL_P.
399                         
400         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
401         (target_isinf, target_isnan, target_negative): Add return types to
402         function definitions.
403
404 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
405
406         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
407         * fixinc/hackshell.tpl: ditto
408         * fixinc/fixtests.c(double_slash_test): more C++ header testing
409         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
410
411 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
412
413         * reload.c (push_reload): When looking for a register to put into
414         reg_rtx, make sure all hard regs in a multi-reg register are in the
415         right class and nonfixed.
416
417         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
418         pending_read_insns, pending_write_insns, pending_read_mems,
419         pending_write_mems, pending_list_length, last_pending_memory_flush,
420         last_function_call, sched_before_next_call): Move static variables
421         into a structure.
422         (bb_ prefixed versions): Replace with single array bb_deps.
423         (struct deps): New structure.
424         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
425         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
426         argument of type "struct deps *"; use that instead of global
427         variables.  All callers changed.
428         (init_rgn_data_dependencies): Delete function.
429         (init_rtx_vector): Delete function.
430         (init_deps): New function.
431
432         (free_pending_lists): Simplify, we always use the bb_deps array even
433         if only one basic block.
434         (compute_block_backward_dependences): Likewise.
435         (schedule_region): Likewise.
436
437         (propagate_deps): New function, broken out of
438         compute_block_backward_dependences.
439         (compute_block_backward_dependences): Use it.
440
441         * alpha.md: Delete useless patterns that tried to work around
442         register elimination problems.
443
444         * unroll.c (loop_iterations): Don't abort if iteration variable
445         was made by loop.
446
447         From Joern Rennecke:
448         * reload1.c (reloads_conflict): Reverse test comparing operand
449         numbers when testing for conflict between output/outaddr reloads.
450
451 1999-11-29  David S. Miller  <davem@redhat.com>
452
453         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
454         arg.
455         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
456
457 1999-11-28  Robert Lipe  <robertl@cygnus.com>
458
459         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
460         table from .fini into .dtor.                                
461
462 1999-11-28  Anthony Green  <green@cygnus.com>
463
464         * tree.h (struct tree_decl): Add malloc_flag.
465         (DECL_IS_MALLOC): Define.
466         * c-common.c (attrs): Add A_MALLOC attribute.
467         (init_attributes): Add this attribute to the table.
468         (decl_attributes): Handle malloc attribute.
469         * calls.c (special_function_p): Check for the malloc attribute.
470         * extend.texi (Function Attributes): Document malloc attribute.
471
472 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
473
474         * pa.md (reload shift-add patterns): Remove.
475
476 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
477
478         * reorg.c (dbr_schedule) Print more statistics. Corrected
479         problem when printing info when 3 delay slots are filled.
480
481 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
482
483         * combine.c (setup_incoming_promotions): Pass an outgoing
484         regno to FUNCTION_ARG_REGNO_P which it expects.
485
486 1999-11-28  Andreas Jaeger  <aj@suse.de>
487
488         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
489
490 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
491
492         * cccp.c (do_include): Avoid initialization of automatic variable.
493
494         * integrate.c (mark_stores): Function definition made void, to match
495         previous declaration.
496         * regclass.c (dump_regclass): Ditto.
497         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
498
499 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
500
501         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
502         known to be multiple of divisor.
503
504         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
505
506         * combine.c (try_combine): Add code to try to merge a set of a
507         two-word pseudo to a constant with a setting of one of those words
508         to a constant.
509
510         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
511         (split_tree): Completely rework to make more general.
512         (make_range, fold): Call negate_expr.
513         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
514         (fold, associate): Call new split_tree and associate_trees.
515         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
516
517 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
518
519         * loop.c (try_copy_prop): Avoid GNU C extension.
520
521 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
522
523         * except.c (init_eh_for_function): Still zero eh_return_context,
524         eh_return_stack_adjust, and eh_return_handler.
525
526         * except.h (eh_status): Adjust documentation for x_protect_list.
527         (begin_protect_partials): New function.
528         * except.c (enqueue_eh_entry): Fix formatting.
529         (get_first_handler): Add consistency check.
530         (add_partial_entry): Adjust usage of protect_list.
531         (emit_cleanup_handler): Save and restore ehqueue.
532         (expand_start_all_catch): Add comment.
533         (begin_protect_partials): New function.
534         (end_protect_partials): Adjust usage of protect_list.
535         (init_eh_for_function): Use xcalloc.
536
537 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
538
539         * c-common.c (check_format_info): Don't call a variadic function
540         with a non-literal format string.
541
542         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
543
544         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
545         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
546         Likewise.
547
548         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
549         Likewise.
550
551         * collect2.c (collect_wait): Likewise.
552
553         * dbxout.c (dbxout_type): Likewise.
554
555         * gcc.c (do_spec_1): Likewise.
556
557         * genemit.c (gen_insn, gen_expand): Likewise.
558
559         * genrecog.c (write_switch, write_subroutine): Likewise.
560
561         * mips-tfile.c (catch_signal, botch): Likewise.
562
563         * print-rtl.c (print_rtx): Likewise.
564
565         * toplev.c (default_print_error_function, report_error_function,
566         _fatal_insn): Likewise.
567
568 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
569
570         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
571
572 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
573
574         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
575         operations when needed.
576         * i386.md (fop_?f_comm): New.
577         (fop_?f_1): Do not accept commutative operands.
578
579 1999-11-25  Andreas Jaeger  <aj@suse.de>
580
581         * config/mips/mips.md (casesi_internal): Add missing brace.
582
583 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
584
585         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
586         (splice_child_die): Handle moving a child DIE from the declaration
587         DIE of a class to its specification.
588         (gen_struct_or_union_type_die): Use 'complete' consistently.
589         (gen_decl_die): Generate the virtual context DIE first.
590         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
591
592 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
593
594         * config/mips/mips.md (call_value_multiple_interanal1): New.
595
596 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
597
598         * dwarf2out.c (free_AT, free_die): New fns.
599         (remove_children): Call them.
600         (output_line_info): Disable removal of duplicate notes.
601
602         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
603         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
604         means pretend the type isn't defined.
605         Don't defer emitting types.
606         (gen_type_die_for_member): New fn.
607         (gen_decl_die): Call it.
608         (splice_child_die): New fn.
609         (gen_member_die): Call it rather than generate duplicate dies.
610
611         Defer emitting information for the abstract instance of an inline
612         until we either inline it or emit an out-of-line copy.
613         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
614         from output_inline_function if DECL_ABSTRACT is also set.
615         (block_ultimate_origin): Likewise.
616         (gen_abstract_function): New fn.
617         (gen_decl_die, gen_inlined_subroutine_die): Call it.
618         (gen_subprogram_die):  An abstract instance is not a declaration
619         just because it doesn't match current_function_decl.  Don't abort
620         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
621         has an abstract origin.
622         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
623         abstract instance here.
624
625 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
626
627         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
628         where we need to reload fpul from a system register.
629
630 1999-11-24  Andreas Jaeger  <aj@suse.de>
631
632         * config/mips/linux.h (CPP_PREDEFINES): Added.
633         (LINK_SPEC): Remove -Y since this is only needed on sparc.
634
635 1999-11-24  Andreas Jaeger  <aj@suse.de>
636
637         * config/mips/linux.h (TARGET_VERSION): Added.
638         (HANDLE_SYSV_PRAGMA): Added.
639         (DEFAULT_VTABLE_THUNKS): Added.
640
641 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
642
643         * local-alloc.c (qty): New structure and static variable.
644         (qty_phys_reg): Remove, all references changed to qty.
645         (qty_n_refs): Likewise.
646         (qty_min_class): Likewise.
647         (qty_birth): Likewise.
648         (qty_death): Likewise.
649         (qty_size): Likewise.
650         (qty_mode): Likewise.
651         (qty_n_calls_crossed): Likewise.
652         (qty_alternate_class): Likewise.
653         (qty_changes_size): Likewise.
654         (qty_first_reg): Likewise.
655         (alloc_qty): Rename variable QTY to QTYNO.
656         (finf_free_reg): Likewise.
657         (local_alloc): Allocate qty, do not allocate the removed variables.
658
659 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
660
661         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
662         when -membedded-pic is passed.
663
664         * config/mips/mips.md (casesi): Handle 64-bit case too.
665         (casesi_internal_di): New insn.
666
667         * config/mips/mips.c (embedded_pic_offset): Always make the
668         embedded-pic subtractions relative to the name of the current
669         function by use of the magic string "..CURRENT_FUNCTION".
670         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
671
672 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
673
674         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
675         of (const_int 0), when what we really care about is
676         whether it's a zero constant anyway.
677         (div_trap_mips16): Likewise.
678
679 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
680
681         * loop.c (loop_optimize): Always find_loop_tree_blocks and
682         unroll_block_trees when generating debuggable code.
683
684         * tree.h (unsave_expr_1): New function.
685         (lang_unsave): New variable.
686         (get_callee_fndecl): New function.
687         * tree.c (unsave_expr_now_r): New function.
688         (lang_unsave): Define.
689         (unsave_expr_1): Likewise.
690         (unsave_expr_now_r): Split out from unsave_expr_now.
691         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
692         call unsave_expr_now_r.
693         (get_callee_fndecl): Define.
694
695         * Makefile.in (gencheck): Don't depend on lang_tree_files.
696         (gencheck.o): Do depend on lang_tree_files.
697
698         * integrate.h (copy_decl_for_inlining): New declaration.
699         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
700         (copy_decl_for_inlining): New function.
701         (integrate_parm_decls): Use it.
702         (integrate_decl_tree): Likewise.
703
704 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
705
706         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split 
707         the second two from the first.
708         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
709         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
710         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than 
711         ISA_HAS_FP4.
712         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
713         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
714         ISA_HAS_FP4.
715
716 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
717
718         * pa.md (call_internal_symref, call_value_internal_symref): No mode
719         needed on the address operand.
720         * pa.c (call_operand_address): Check for the correct mode.
721
722 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
723
724         * loop.c: Include "basic-block.h".
725         (try_copy_prop, replace_loop_reg): New functions.
726         (load_mems): Detect registers that just hold copies of the hoisted
727         mem, and call try_copy_prop to eliminate them.
728         * Makefile.in (loop.o): Update dependencies.
729
730 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
731
732         * Makefile.in (gencheck.o): Depend on gencheck.h.
733         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
734         (insn-peep.o): Depend on except.h and function.h.
735         (insn-attrtab.o): Depend on RECOG_H.
736         (insn-output.o): Depend on toplev.h and flags.h.
737         (gengenrtl.o): Depend on real.h.
738         (gen-protos.o): Depend on cpplib.h and cpphash.h.
739         Unify all dependencies to be on RECOG_H rather than recog.h.
740
741 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
742
743         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
744         * configure.in: Try building a bi-arch 32/64-bit compiler on
745         sparc-*-solaris2.7 and higher.
746         * configure: Rebuild.
747
748 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
749
750         * config/freebsd.h: New, FreeBSD architecture independent file.
751         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
752         independent pieces.
753         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
754         directly by i386/freebsd.h.
755         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
756         independent configuration file.
757         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
758         directly by i386/freebsd.h.
759         * configure: Rebuilt.
760
761         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
762         which is in the user's namespace.
763         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
764         `i386' which is not in our namespace.
765
766 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
767
768         * invoke.texi (ARM Options): Add in -mno-alignment-traps
769
770 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
771
772         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
773         (add_dwarf_attr, add_child_die): Just push onto the front.
774         (reverse_die_lists): New fn.
775         (add_sibling_attributes): Use it.
776         (push_decl_scope): Reorganize.
777         (add_name_and_src_coords_attributes): Don't set file and line for
778         an artificial decl.
779         (gen_subprogram_die): An artificial function doesn't need to match
780         file and line.
781         (gen_compile_unit_die): Return the generated die.  Only add 
782         AT_comp_dir if the filename is relative.
783         (remove_AT): Simplify loop.  Also free string values.
784         (output_die): A DIE ref can't be null.
785         (output_value_format, value_format): Take a dw_attr_ref.
786         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
787         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
788         AT_addr, AT_lbl): New fns.
789         (various): Use them.
790         (various): Constify.
791
792 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
793
794         * combine.c (combine_simplify_rtx): When handling a SUBREG,
795         take SUBREG_WORD into account.
796         (if_then_else_cond): Likewise.
797
798 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
799
800         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising 
801         clause from BSD license, pursuant with
802
803           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
804
805 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
806
807         * loop.c (load_mems): Reformat slightly.
808         * basic-block.h (regset_head): New typedef.
809         (INIT_REG_SET): New macro.
810
811 1999-11-22  Bruce Korb  <autogen@linuxbox.com
812
813         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
814         (mips-dec-bsd*): non-functional code
815         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
816
817         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
818         added three replacement fixes
819         (no_double_slash): removed comments that are not (any longer) pertinent
820         (bad_lval): this fix currently runs against many files.
821         The comment seems to indicate that we should select for files
822         containing 'pragma extern_prefix'.
823
824         * fixinc/fixinc.x86-linux-gnu: deleted
825         * fixinc/inclhack.sh:  regen
826         * fixinc/fixincl.x:  regen
827         * fixinc/fixincl.sh:  regen
828
829 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
830
831         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
832         its code is INSN and it has no notes.
833
834 1999-11-22  Andrew Haley  <aph@cygnus.com>
835
836         * varasm.c (function_defined): Remove.
837         (make_function_rtl): Don't set function_defined.
838         (make_decl_rtl): Remove global register warning.
839         * regclass.c (no_global_reg_vars): New variable.
840         (globalize_reg): Warn if function has already been defined.
841         (regclass_init): Set no_global_reg_vars.
842
843 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
844
845         * regclass.c (reg_pref): New structure and static variable
846         (prefclass): Delete.
847         (altclass): Delete.
848         (all uses of prefclass and altclass): Use reg_pref instead.
849
850 1999-11-21  Nick Clifton  <nickc@cygnus.com>
851
852         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
853         -malignment-traps. 
854         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
855         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
856         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
857
858 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
859
860         * varasm.c (output_constructor): Solve problem with long long
861         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
862
863 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
864
865         * global.c (allocno): New structure and static variable.
866         (allocno_reg): Remove, all references replaced by allocno.
867         (allocno_size): Likewise.
868         (hard_reg_conflicts): Likewise.
869         (hard_reg_preferences): Likewise.
870         (hard_reg_copy_preferences): Likewise.
871         (hard_reg_full_preferences): Likewise.
872         (regs_someone_prefers): Likewise.
873         (allocno_calls_crossed): Likewise.
874         (allocno_n_refs): Likewise.
875         (allocno_live_length): Likewise.
876         (find_reg): Rename ALLOCNO to NUM.
877
878         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
879         references updated.
880         (may_move_out_cost): New variable.
881         (init_reg_sets_1): Initialize may_move_out_cost.
882         (record_reg_classes): Use may_move_out_cost.
883
884         * regclass.c (dump_regclass): New function.
885         (regclass): New parameter DUMP, call DUMP_REGCLASS.
886         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
887         pass rtl_dump_file to regclass.
888         * rtl.h (regclass): Update prototype.
889
890 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
891
892         * i386.md (neg, not and abs patterns): Revmap to use
893         ix86_expand_unary_operator and ix86_unary_operator_ok.
894         (add?f and sub?f expanders): Force operand 1 to register.
895         * i386.c (ix86_expand_unary_operator): Rewrite.
896         (ix86_unary_operator_ok): Ensure that memory operands
897         match real opcode.
898         (ix86_binary_operator_ok): Do not allow operand 1 to
899         come into memory and operand 0 not.
900         (ix86_expand_binary_operator): Ensure that
901         src1 is not non-matching memory.
902
903         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
904         to support integer registers and memory.
905         (abss?2_integer): Likewise.
906
907         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
908         (REG_CLASS_NAMES): Likewise.
909         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
910         and GENERAL_REGS.
911         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
912         (movsf): Likewise; unify 4th and 5th alternative.
913         (pushdf): Likewise.
914         (movdf_1): Likewise; rename to movdf_integer.
915         (pushxf): Likewise; rename to pushxf_integer; fix output template;
916         remove redundant splitter.
917         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
918         (movdf_nointeger): New.
919         (movxf_nointeger): New.
920         (pushxf_nointeger): New.
921
922         * i386.md (extend?f?f): Split to expander and pattern, refuse two
923         memory operands in patterns.
924         (fop*): Refuse two memory operands.
925
926         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
927         on !TARGET_USE_CLTD CPUs.
928
929 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
930
931         * extend.texi: Document C++ restricted pointers and references. 
932
933 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
934
935         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
936         (invalidate_skipped_set): Call it unconditionally.
937         (cse_set_around_loop): Likewise.
938
939 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
940
941         * rtl.texi (mem): Add documentation for alias-set argument 
942         to RTX `mem'.
943
944 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
945
946         * i386.h (struct_processor_costs): New fields int_load, int_store,
947         fp_move, fp_load and fp_store
948         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
949         fp->int moves
950         (MEMORY_MOVE_COST): New macro.
951         * i386.c (386_cost): Define new fields.
952         (i486_cost): Likewise.
953         (pentium_cost): Likewise.
954         (pentiumpro_cost): Likewise.
955         (k6_cost): Likewise.
956
957 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
958                           Geoffrey Keating  <geoffk@cygnus.com>
959
960         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
961
962         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
963         MASK_ALIGN_INT.
964         
965         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
966         (TARGET_STRICT_ALIGNMENT): New macro.
967         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
968         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
969         * invoke.texi (M680x0 Options): Document -mstrict-align.
970
971 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
972                           Richard Henderson  <rth@cygnus.com>
973
974         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
975         (ix86_split_long_move): Declare.
976         * i386.c (split_xf, ix86_split_movdi): Remove.
977         (ix86_split_to_parts, ix86_split_long_move): New.
978         * i386.md (dimode move splitters): Use ix86_split_long_move.
979         (dfmode move splitters): Likewise.
980         (xfmode move splitters): Likewise.
981         (movsf_1): Allow F->r.
982         (movdf_1, movxf_1): Allow F->ro.
983
984 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
985
986         * except.h (struct eh_entry): Add goto_entry_p.
987         (eh_region_from_symbol): Remove prototype.
988         * except.c (find_func_region_from_symbol): New function.
989         (emit_cleanup_handler): Likewise.
990         (eh_region_from_symbol): Make it static.
991         (add_new_handler): Verify the argument.
992         (find_func_region): Update comment.
993         (expand_eh_region_end): Expand handlers here, rater than waiting
994         until expand_leftover_cleanups or start_all_catch.
995         (expand_leftover_cleanups): Don't expand here.
996         (expand_start_all_catch): Or here.
997         (expand_rethrow): Check the return value from find_func_region.
998         * function.c (expand_function_end): Emit the catch_clauses.
999         
1000 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
1001
1002         * integrate.c (expand_inline_function): Add necessary check for NULL.
1003
1004 1999-11-18  Nick Clifton  <nickc@cygnus.com>
1005
1006         * toplev.c (main): Correctly detect an unrecognised option.
1007
1008         * cppinit.c (cpp_handle_option): Do not claim to have consumed
1009         a -f option if it has not been recognised.
1010
1011 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
1012
1013         * basic-block.h (update_life_extent): Remove trailing comma on
1014         enumeration type list.
1015
1016 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1017
1018         * varasm.c (output_constructor) Solved problem with long long
1019         bitfields. Corrected calculating this_time and shift. Also
1020         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
1021
1022 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
1023
1024         * flow.c (split_edge): Take looping structure into account when
1025         determining where to put the new block note.
1026
1027 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
1028
1029         * Makefile.in (ggc-none.o): Provide host specific version if
1030         needed.
1031
1032 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
1033
1034         * cse.c (delete_trivially_dead_insns): Identify no-op insns
1035         containing subregs too.
1036
1037 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
1038
1039         * invoke.texi: Add documentation for -muninit-const-in-rodata.
1040         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
1041         (TARGET_UNINIT_CONST_IN_RODATA): Define.
1042         (text_section): Add switches -munint-const-in-rodata and
1043         -mno-uninit-const-in-rodata.
1044         (ASM_OUTPUT_COMMON): Remove.
1045         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
1046         const objects should be placed in read-only data. Otherwise declare
1047         them in common.
1048
1049 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
1050
1051         * jump.c (jump_optimize_1): Revert last change.
1052
1053 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
1054
1055         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
1056         test if optimizing for size.
1057
1058 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
1059
1060         * Makefile.in (toplev.o): Depend on except.h.
1061         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
1062
1063 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
1064
1065         * i386.md (divmodsi4): Rewrite to expander.
1066         (*divmodsi4_nocltd): New.
1067         (*divmodsi4_cltd): New.
1068         (divmodsi4 splitter): Handle the case when input comes in edx.
1069         (udivmodhi4): Do not use constraints in exander.
1070         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
1071
1072 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
1073
1074         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
1075         for the common case.
1076
1077 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
1078
1079         * explow.c (hard_function_value): Add outgoing argument.
1080         * expr.h (hard_function_value): Declare it.
1081         * calls.c (expand_call, emit_library_call_value): Update callers.
1082         * function.c (aggregate_value_p): Ditto.
1083         (diddle_return_value): Must look at the outgoing registers
1084         on archs with register windows.
1085
1086 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
1087
1088         * alpha.c (alpha_build_va_list): Use make_lang_type and
1089         initialize TYPE_NAME for the va_list record.
1090
1091         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
1092
1093         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
1094         for printing.
1095         * ggc.h (struct ggc_statistics): Rearrange elements for better
1096         packing on 64-bit hosts.
1097         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
1098         (compute_nearerout): Likewise.
1099
1100 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
1101
1102         * config/rs6000/rs6000.c (first_reg_to_save): Save
1103         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
1104
1105 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
1106
1107         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
1108         notion of nesting to find the DIE for a type or function.
1109         DIEs can go in limbo even if we got a context_die.
1110         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
1111         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
1112         for local type.
1113         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
1114         (gen_type_die): Writing out the context doesn't cause member class
1115         template instantiations to be written out as well.
1116
1117 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
1118
1119         * rs6000.h (ASM_OUTPUT_DEF): New.
1120         Based on proposed addition from David Edelsohn.
1121
1122 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
1123             Bruce Korb  <autogen@linuxbox.com>
1124
1125         * fixinc/inclhack.def
1126         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
1127         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
1128                 in net/inet.h.
1129         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
1130         (svr4_endian): enabled with SVR5
1131         (svr4_mkdev): simplified syntax and enabled with SVR5
1132
1133 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
1134
1135         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
1136         * configure: Rebuilt.
1137         * config/t-freebsd-thread: New file.
1138
1139 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
1140
1141         * i386.c (ix86_decompose_address): Verify the base is a REG
1142         before trying to examine its register number.
1143
1144         * basic-block.h: Remove all #defines and prototypes related to
1145         integer lists.
1146         (free_bb_mem, compute_preds_succs): Remove prototype.
1147         * rtl.h (free_bb_mem): Remove prototype.
1148         * flow.c (alloc_int_list_node); Remove function.
1149         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
1150         (compute_preds_succs, free_bb_mem): Likewise.
1151         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
1152         * toplev.c (rest_of_compilation): Likewise.
1153         * haifa-sched.c (build_control_flow): Use flow generated edge
1154         list to build the haifa specific edge list.
1155         (find_rgns): Use new CFG data structures instead of pred/succ lists.
1156         (schedule_insns): Do not build pred/succ lists anymore.  Instead
1157         build the edge table.
1158
1159         * basic-block.h (dump_bb_data): Remove declaration.
1160         * flow.c (dump_bb_data): Remove function.
1161         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
1162         (sbitmap_union_of_predsucc): Likewise.
1163
1164         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
1165         argument.  All callers changed.
1166         (delete_null_pointer_checks_1): No longer need to compute the
1167         pred/succ lists.
1168
1169         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
1170         All callers changed.
1171         (pre_expr_reaches_here_p_work): Likewise.
1172         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
1173         * lcm.c (compute_laterin): Fix initialization of LATER.
1174         (compute_nearerout): Similarly for NEARER.
1175
1176 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1177
1178         * cse.c (set_nonvarying_address_components): Delete unused function.
1179         (refers_to_p): Likewise.
1180
1181 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
1182
1183         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
1184         needed.
1185
1186 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1187
1188         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
1189         definition in do while (0).
1190
1191 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
1192
1193         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
1194
1195 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
1196
1197         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
1198
1199 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
1200
1201         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
1202         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
1203         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
1204         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
1205
1206         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
1207         saved on the stack.  Output more accurate stack frame statistics
1208         into assembler file.
1209
1210 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
1211
1212         * genextract.c (record_insn_name): New function.
1213         (get_insn_name): No longer a stub.
1214         (main): Call record_insn_name for each insn.  After each label
1215         written, print the insn name in a comment.
1216
1217 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1218
1219         * output.h (const_section, init_section, fini_section): Add
1220         prototypes.
1221
1222         * alpha/elf.h (const_section): Delete declaration.
1223
1224         * svr4.h (const_section): Likewise.
1225
1226 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
1227
1228         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
1229         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
1230         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
1231         expressions.
1232         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
1233         variable-sized array bounds.
1234         
1235 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
1236
1237         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
1238         ASM_OUTPUT_LABEL.
1239
1240 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1241
1242         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
1243         addresses the same way GO_IF_LEGITIMATE_INDEX does. 
1244
1245 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1246
1247         * cse.c (hash_arg_in_struct): Delete.
1248         (struct table_elt): Delete elt in_struct.
1249         (struct set): Delete elt src_in_struct.
1250         (merge_equiv_classes): Don't set either hash_arg_in_struct or
1251         the corresponding in_struct elts.
1252         (canon_hash): Likewise.
1253         (safe_hash): Likewise.
1254         (find_best_addr): Likewise.
1255         (record_jump_cond): Likewise.
1256         (cse_insn): Likewise.
1257
1258 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
1259
1260         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
1261
1262         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
1263         unsigned types.
1264
1265 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
1266
1267         * function.c (diddle_return_value): Put back check that the DECL_RTL
1268         for the function is a register.
1269
1270         * function.c (diddle_return_value): Use hard_function_value to
1271         get an rtx suitable for use in the USE/CLOBBER insn.
1272
1273         * global.c (global_conflicts): Update comments.
1274         (record_conflicts): No need to record conflicts between pseudos here.
1275
1276 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
1277
1278         * fixinc/fixincl.c: Added verbose levels for status messages
1279
1280 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1281
1282         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
1283         operand as argument to expand_and or expand_binop.
1284
1285 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
1286
1287         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
1288         gcc_add_string_root.
1289
1290 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
1291
1292         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
1293
1294 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
1295
1296         * flow.c (compute_flow_dominators): Initially put all blocks on
1297         the worklist.
1298         * lcm.c (compute_antinout_edge, compute_available): Similarly.
1299         * gcse.c (compute_cprop_avinout): Remove.
1300         (compute_cprop_data): Use compute_available.
1301         (delete_null_pointer_checks_1): Use compute_available.
1302
1303         * basic-block.h (compute_available): Returns a void now.
1304         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
1305         to return a value anymore.
1306         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
1307         worklists.  Fix boundary cases. Compute maximal solutions.
1308         (compute_laterin, compute_nearerout): Similarly.
1309
1310         * dwarf2out.c (add_AT_location_description): Allow
1311         (mem (plus (pseudo) (...)) too.
1312
1313 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
1314
1315         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
1316
1317 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
1318                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1319
1320         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
1321
1322         * gansidecl.h: Likewise.
1323
1324         * rtl.c: Likewise.
1325
1326         * rtl.h: Likewise.
1327
1328         * toplev.h: Likewise.
1329
1330         * tree.c: Likewise.
1331
1332         * tree.h: Likewise.
1333
1334         * varray.c: Likewise.
1335
1336         * varray.h: Likewise.
1337
1338 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
1339
1340         * gcov.c (struct arcdata): Add hits and total, remove prob.
1341         (output_branch_counts): New.
1342         (process_args): Set output_branch_counts if -c.
1343         (calculate_branch_probs): Store hits and total instead of
1344         percentage.
1345         (output_data): Emit counts if output_branch_counts is true.
1346         * gcov.texi (Invoking Gcov): Document -c switch..
1347
1348 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
1349
1350         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
1351         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
1352
1353 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
1354
1355         * invoke.texi (C Dialect Options): Add missing builtins from
1356         c-common.c to list.
1357         * extend.texi (Other Builtins): Copy to this list.
1358
1359 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1360
1361         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
1362         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
1363         redundant bitmap.h.
1364
1365 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
1366
1367         * flow.c (compute_flow_dominators): No longer treat basic block 0
1368         or (n_basic_blocks - 1) specially.  Clear the AUX field before
1369         starting computation of doms/pdoms.  Fix initial state for pdoms.
1370
1371 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1372
1373         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
1374         match rtl.o's: added ggc.h and toplev.h
1375         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
1376         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
1377         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
1378
1379 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
1380
1381         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
1382         from HAVE_DOS_BASED_FILESYSTEM.
1383         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
1384         HAVE_DOS_BASED_FILESYSTEM.
1385         (main): Likewise.
1386         (split_directories): Only special-case DOS file names if
1387         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
1388         instead of explicit tests.  Conditionalize on !VMS.
1389         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
1390         tests.  Conditionalize on !VMS.
1391         (process_command): Only use make_relative_prefix if !VMS.
1392         (free_split_directories): Conditionalize on !VMS.
1393         (DIR_UP): Conditionalize on !VMS.
1394
1395 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1396
1397         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
1398
1399 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1400
1401         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
1402         case.
1403
1404 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
1405
1406         * invoke.texi (Environment Variables): Document relative path
1407         lookup.
1408         * gcc.c (DIR_UP): If not defined, define as "..".
1409         (standard_bindir_prefix): New static, holds target location to
1410         install binaries.
1411         (split_directories): New function to split a filename into
1412         component directories.
1413         (free_split_directories): New function, release memory allocated
1414         by split_directories.
1415         (make_relative_prefix): New function, make a relative pathname if
1416         the compiler is not in the expected location.
1417         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
1418         can figure out an appropriate prefix from argv[0].
1419         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
1420         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
1421         STANDARD_BINDIR_PREFIX.
1422
1423 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1424
1425         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
1426         in c4x.c.
1427         * config/c4x/c4x.h: Moved prototypes to c4x.h.
1428         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
1429         c4x_secondary_memory_needed) Delete.
1430         (fp_zero_operand): Add mode argument.
1431
1432 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
1433
1434         * reload1.c (reload_reg_free_for_value_p): Don't use a register
1435         that is in reload_reg_used.
1436
1437 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
1438
1439         * config/arm/arm-protos.h: New file: Prototypes for functions
1440         defined in arm.c and pe.c.
1441         * config/arm/arm.h: Fix compile time warnings.
1442         * config/arm/arm.c: Fix compile time warnings.
1443         * config/arm/pe.h: Fix compile time warnings.
1444         * config/arm/aout.h: Fix compile time warnings.
1445
1446 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
1447
1448         * config/m32r/m32r-protos.h: New file: Prototypes for functions
1449         defined in m32r.c
1450         
1451         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
1452         Add support for subtargets.
1453         Add prototypes for new predicates.
1454         Add scheduling macros.
1455         
1456         * config/m32r/m32r.c: Fix compile time warnings.
1457         (int8_operand): New predicate function.
1458         (reg_or_cmp_int16_operand): New predicate function.
1459         (extend_operand): New predicate function.
1460         (m32r_adjust_code): New scheduling function.
1461         (m32r_adjust_priorty): New scheduling function.
1462         (m32r_sched_init): New scheduling function.
1463         (m32r_sched_reorder): New scheduling function.
1464         (m32r_sched_variable_issue): New scheduling function.
1465         (direct_return): New codegen function.
1466         (m32r_not_same_reg): New rtl testsing function.
1467         
1468         * config/m32r/m32r.md: Fix compile time warnings.
1469         Add support for pre decrement and post increment memory
1470         references.
1471         Add S<cc> patterns.
1472         Add fabs patterns.
1473         
1474 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1475
1476         * global.c (EXECUTE_IF_CONFLICT): Don't define.
1477         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
1478         (find_reg): Likewise.
1479
1480 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
1481
1482         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
1483         to avoid assembler errors.
1484
1485 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
1486
1487         * config/v850/v850-protos.h: New file: Prototypes for functions
1488         defined in v850.c
1489         * config/v850/v850.h: Move prototypes to v850-protos.h
1490         * config/v850/v850.c: Move prototypes to v850-protos.h
1491         * config/v850/v850.md: Fix compile time warnings.
1492
1493         * config/fr30/fr30-protos.h: New file: Prototypes for functions
1494         defined in fr30.c
1495         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
1496         * config/fr30/fr30.c: Fix compile time warnings.
1497         * config/fr30/fr30.md: Fix compile time warnings.
1498
1499 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
1500
1501         * tree.h (get_containing_scope): Declare it.
1502         * tree.c (get_containing_scope): New fucntion.
1503         (decl_function_context): Use it.
1504         * toplev.c (rest_of_compilation): Use get_containing_scope.
1505
1506 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1507
1508         * Makefile.in (rtl.o): Depend on toplev.h.
1509
1510 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
1511
1512         * cse.c (delete_trivially_dead_insns): Replace alloca with
1513         xmalloc/xcalloc.
1514         * except.c (update_rethrow_references): Likewise.
1515         (init_eh_nesting_info): Likewise.
1516         * function.c (identify_blocks): Likewise.
1517         * gcse.c (dump_hash_table): Likewise.
1518         * graph.c (print_rtl_graph_with_bb): Likewise.
1519         * loop.c (combine_movables): Likewise.
1520         (move_movables): Likewise.
1521         (count_loop_regs_set): Likewise.
1522         (strength_reduce): Likewise.
1523         * profile.c (compute_branch_probabilities): New function, split
1524         out from ...
1525         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
1526         * regclass.c (regclass): Likewise.
1527         * regmove.c (regmove_optimize): Likewise.
1528         * toplev.c (compile_file): Likewise.
1529         (main): Don't mess with the stack rlimit.
1530         
1531 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
1532
1533         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
1534         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
1535
1536 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
1537
1538         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
1539
1540 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
1541
1542         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
1543         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
1544         macro expansion.
1545
1546 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
1547
1548         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
1549
1550 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
1551
1552         * gcse.c (post_dominators): Kill.
1553         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
1554         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
1555         pass in a pdom array since we do not need pdoms.
1556         * haifa-sched.c (schedule_insns): Similarly.
1557         * flow.c (compute_dominators): Remove dead function.
1558         (compute_flow_dominators): Do not compute doms or pdoms if the
1559         caller does not request them.  Split up loop to build doms and
1560         pdoms.  Use a worklist to compute doms and pdoms.
1561         * basic-block.h (compute_dominators): Remove prototype.
1562
1563 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
1564
1565         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
1566         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
1567         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
1568         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
1569         (cant_move, fed_by_spec_load, is_load_insn): Remove.
1570         (schedule_region): Remove unused variable.
1571         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
1572
1573 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
1574
1575         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
1576         (update_equiv_regs): Likewise.
1577         (block_alloc): Likewise.
1578         * reg-stack.c (reg_to_stack): Likewise.
1579         (convert_regs_2): Likewise.
1580         * reload1.c (reload_as_needed): Likewise.
1581         
1582 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
1583
1584         * Makefile.in (dbxout.o): Depend on ggc.h.
1585         (dwarf2out.o): Likewise.
1586         (xcoffout.o): Likewise.
1587         * dbxout.c: Include ggc.h.
1588         (dbxout_init): Register lastfile as a root.
1589         * dwarf2out.c: Include ggc.h.
1590         (dwarf2out_line): Register lastfile as a root.
1591         * xcoffout.c: Include ggc.h.
1592         (xcoffout_source_line): Register xcoff_lastfile as a root.
1593
1594 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
1595
1596         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
1597
1598 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
1599
1600         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
1601         defined.
1602         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
1603
1604 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1605
1606         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
1607         (EXECUTE_IF_CONFLICT): Likewise.
1608         (ALLOCNO_LIVE_P): Avoid signed division.
1609         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
1610         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
1611         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
1612
1613 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
1614
1615         * haifa-sched.c (schedule_block): Don't crash if there's no
1616         next insn for an interblock movement.
1617         (add_branch_dependences): Don't allow clobber insns to move either.
1618
1619 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
1620
1621         * i386.c (split_xf): New.
1622         * i386-protos.h: Declare it.
1623         * i386.md (movxf_1): Add general regs alternatives.
1624         (movxf_1+1): New splitter for same.
1625
1626 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
1627
1628         * function.c (purge_addressof_1): Add missing return values.
1629
1630 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
1631
1632         * function.c (is_addressof): New function.  Returns true if
1633         the given piece of RTL is an ADDRESSOF.
1634         (purge_addressof_1): Make boolean.  Return false if the
1635         ADDRESSOFs could not be purged.
1636         (purge_addressof): If ADDRESSOFs could not be purged from the
1637         notes attached to an insn, remove the offending note(s),
1638         unless they are attached to a libcall.
1639
1640 1999-11-05  Andreas Jaeger  <aj@suse.de>
1641
1642         * genoutput.c (null_operand =): Initialize all fields.
1643
1644         * errors.h: Add extern to prototypes.
1645
1646 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
1647
1648         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
1649         * configure: Rebuilt.
1650
1651 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1652
1653         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
1654         (mirror_conflicts): New function.
1655         (global_alloc): Call it.
1656         (expand_preferences): Remove redundant CONFLICTP test.
1657         (find_reg, dump_conflicts): Likewise.
1658         (prune_preferences): Process conflicts one word at a time.
1659
1660 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
1661
1662         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
1663         instead of an explicit loop.
1664
1665 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
1666
1667         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
1668         if REG_RETVAL check succeeds, then put classp in src_elt.
1669
1670 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
1671
1672         * function.c (pad_to_arg_alignment): Only update argument_pad
1673         if the argument's alignment is greater than STACK_BOUNDARY.
1674
1675 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
1676
1677         * bitmap.h (BITMAP_XFREE): New.
1678         * flow.c (life_analysis): Use it.
1679         (life_analysis_1): Free blocks.
1680
1681         * combine.c (undo_commit): New.
1682         (try_combine): Use it.  Don't zap undobuf.undos.
1683         (combine_instructions): Don't zap undobuf.undos; free the
1684         undobuf.frees list.
1685
1686         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
1687
1688         * stmt.c (cost_table_): New.
1689         (estimate_case_costs): Use it instead of xmalloc.
1690
1691         * toplev.c (compile_file): Reuse dumpname memory instead
1692         of strdup'ing it.
1693
1694 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
1695
1696         * reg-stack.c (convert_regs_1): Initialize target_stack->top
1697         after verifying an EH edge.
1698
1699         * haifa-sched.c (init_rgn_data_dependences): Correctly
1700         size bb_pending_lists_length when zeroing.
1701
1702 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
1703
1704         * function.c (diddle_return_value): New.
1705         (expand_function_end): Use it.
1706         * stmt.c (expand_null_return): Likewise.
1707         (expand_value_return): Likewise.
1708
1709         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
1710
1711         * reload1.c (reload): Don't remove return value clobbers.
1712
1713 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
1714
1715         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
1716
1717 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
1718
1719         * cse.c (cse_main): Use xmalloc, not alloca.
1720         (cse_basic_block): Likewise.
1721         * local-alloc.c (local_alloc): Likewise.
1722
1723 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
1724                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1725
1726         * rtl.c: Include toplev.h.
1727         (fatal): Remove declaration.
1728
1729 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
1730
1731         * haifa-sched.c (schedule_block): Fix thinko.
1732
1733 1999-11-03  James McKelvey <mckelvey@fafnir.com>
1734
1735         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
1736         S_IR* defined values
1737
1738 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
1739
1740         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
1741         call `malloc' instead.
1742
1743 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
1744
1745         * flags.h (flag_renumber_insns): Declare.
1746         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
1747         renumbering table.
1748         * rtl.h (renumber_insns): Change prototype.
1749         * toplev.c (flag_renumber_insns): Define.
1750         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
1751         
1752 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
1753
1754         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
1755         and fpsqrtd.  Use them and create fdiv function unit to more
1756         accurately represent fpu sqrt pipeline semantics on UltraSparc.
1757         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
1758
1759 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
1760
1761         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
1762         3 on UltraSparc.
1763         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
1764         insn into ready list, do not use just a raw swap.
1765
1766 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
1767
1768         * rtl.h (renumber_insns): New function.
1769         (remove_unnecessary_notes): Likewise.
1770         * emit-rtl.c (renumber_insns): Define.
1771         (remove_unncessary_notes): Likewise.
1772         * toplev.c (rest_of_compilation): Remove dead code.
1773         Use renumber_insns and remove_unncessary_notes.
1774
1775         * gcse.c (struct null_pointer_info): New type.
1776         (get_bitmap_width): New function.
1777         (current_block): Remove.
1778         (nonnull_local): Likewise.
1779         (nonnull_killed): Likewise.
1780         (invalidate_nonnull_info): Take a null_pointer_info as input.
1781         (delete_null_pointer_checks_1): New function.
1782         (delete_null_pointer_checks): Use it.
1783
1784         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
1785         (split_edges): Likewise.
1786         (schedule_block): Likewise.
1787         (compute_block_backward_dependencies): Likewise.
1788         (schedule_region): Likewise.
1789         (schedule_insns): Likewise.
1790         
1791 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
1792
1793         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
1794         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
1795         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
1796         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
1797         * jump.c (delete_unreferenced_labels): Don't delete if
1798         LABEL_ALTERNATE_NAME is set.
1799         * print-rtl.c (print_rtx): Dump alternate name.
1800         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
1801         * rtl.h (LABEL_ALTERNATE_NAME): Define.
1802         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
1803         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
1804
1805 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1806
1807         * fix-header.c (recognized_extern, recognized_function): Constify
1808         a char*.
1809
1810         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
1811         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
1812         (compute_available): Remove unused variable `last'.
1813         (compute_nearerout): Remove unused variable `temp_bitmap'.
1814         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
1815         Remove unused variable `x'.
1816
1817         * scan.h (recognized_function, recognized_extern): Constify a
1818         char*.
1819
1820         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
1821
1822 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1823
1824          * varasm.c (decode_rtx_const): Use XSTR to access the string
1825          of a SYMBOL_REF.
1826
1827 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
1828
1829         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
1830
1831 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1832
1833         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
1834
1835 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
1836
1837         * pa.c (ireg_operand): New function.
1838         * pa.h (PREDICATE_CODES): Handle ireg_operand.
1839         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
1840         Fix out of date comment.
1841
1842         * pa.md (negdi2): Turn into expander + anonymous pattern.
1843
1844         * reload.c (find_reloads): Fix typos in recent change.
1845
1846         * dwarf2out.c: Do not include ctype.h.
1847
1848 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1849
1850         * regclass.c (record_reg_classes): Always use may_move_cost when
1851         seeing how operand fits with various register classes.
1852
1853 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
1854
1855         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
1856         * toplev.c: Revert Nov 1 13:22 change.
1857
1858 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
1859
1860         * config/pa/pa.md (height reduction patterns): Add checks for
1861         overlapping operands to avoid semantic-destroying splits for 
1862         height reduction patterns.
1863
1864 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1865
1866         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
1867         have been an hyphen, fixed.
1868         * configure: Rebuilt.
1869
1870 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
1871
1872         * config/arm/tpe.h: Add prototypes for exported functions.
1873         * config/arm/pe.c: Fix compile time warnings.
1874         * config/arm/semi.h: Fix compile time warnings.
1875         * config/arm/arm.c: Fix compile time warnings.
1876         * config/arm/arm.h: Fix compile time warnings.
1877         * config/arm/arm.md: Fix compile time warnings.
1878         * config/arm/thumb.c: Fix compile time warnings.
1879         * config/arm/thumb.h: Fix compile time warnings.
1880         * config/arm/thumb.md: Fix compile time warnings.
1881
1882 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
1883
1884         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
1885         detection code
1886
1887         * unroll.c (unroll_loop): Remove LOOP notes when loop is
1888         completely unrolled.
1889
1890 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1891
1892         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
1893
1894 Tue Nov  2 09:43:00 1999   Catherine Moore  <clm@cygnus.com>
1895
1896         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
1897         * rtl.h (rtx_equal_p): Move prototype.
1898         * rtl.c (rtx_equal_function_value_matters): Move from 
1899         rtlanal.c
1900         (rtx_equal_p): Likewise.
1901         * rtlanal.c (rtx_equal_function_value_matters): Delete.
1902         (rtx_equal_p): Likewise.
1903
1904 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
1905
1906         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
1907         ! HAS_INIT_SECTION.
1908
1909 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
1910
1911         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
1912
1913         * pa.h (ADDR_VEC_ALIGN): Define.
1914
1915         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
1916         notes when presented with "if (foo) break; end_of_loop" and
1917         the break sequence gets moved out of the loop.
1918
1919         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
1920         Remove explicit zero initializations of entries within MAP.
1921
1922 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
1923
1924         * reg-stack.c (convert_regs_1): Handle EH edges specially.
1925
1926 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
1927
1928         * bitmap.h (BITMAP_XMALLOC): New macro.
1929         * flow.c (CLEAN_ALLOCA): Remove.
1930         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
1931         (life_analysis): Likewise.
1932         (update_life_info): Don't use CLEAN_ALLOCA.
1933         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
1934         (calculate_global_regs_live): Likewise.
1935         (print_rtl_with_bb): Likewise.
1936         (verify_flow_info): Likewise.
1937         * global.c (global_alloc): Likewise.
1938         (global_conflicts): Likewise.
1939         * integrate.c (save_for_inline_nocopy): Likewise.
1940         (expand_inline_function): Likewise.
1941         * jump.c (jump_optimize_1): Likewise.
1942         (duplicate_loop_exit_test): Likewise.
1943         (thread_jumps): Likewise.
1944         * loop.c (loop_optimize): Likewise.
1945         (combine_givs): Likewise.
1946         (recombine_givs): Likewise.
1947         * reorg.c (dbr_schedule): Likewise.
1948         * unroll.c (unroll_loop): Likewise.
1949         
1950         * combine.c (combine_instructions): Use xmalloc instead of alloca.
1951
1952 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
1953
1954         * toplev.c (rest_of_compilation): Don't optimize the CFG
1955         when rebuilding, just before dbr.
1956
1957 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1958
1959         * output.h (assemble_end_function, assemble_destructor,
1960         assemble_constructor, assemble_gc_entry, assemble_global,
1961         assemble_label, output_constant_pool) Constify a char*.
1962
1963         * varasm.c (assemble_destructor, assemble_constructor,
1964         assemble_gc_entry, assemble_end_function, assemble_global,
1965         assemble_label, output_constant_pool): Likewise.
1966
1967 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
1968
1969         * config/arm/thumb.c (thumb_expand_prologue): Add comments
1970         explaining what is goin on in this function.
1971
1972 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1973
1974         * regclass.c (record_reg_classes): In matching case, recompute
1975         costs since the direction of movement is different.
1976
1977 Sun Oct 31 21:59:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
1978
1979         * resource.c (mark_target_live_regs): For unconditional branches,
1980         the resources found at the branch target should be added to the
1981         resources found so far, not intersected.
1982
1983 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
1984
1985         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
1986         old cpp's.
1987         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
1988         (sys/mman.h): Include this file only if #HAVE_MMAP.
1989         (run_compiles): Initialize `esac_fmt' with one old KR string, not
1990         with automatically concatenated ANSI strings.
1991
1992 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
1993
1994         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
1995         (DIV_ROUND_UP): Robustify.
1996         (ggc_recalculate_in_use_p): New function.
1997         (release_pages): Don't inline it.
1998         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
1999         outer contexts.
2000         (ggc_pop_context): Use ggc_recalculate_in_use_p.
2001         (clear_marks): Always save in_use_p.
2002         (sweep_pages): Use ggc_recalculate_in_use_p.
2003         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
2004         Release pages before counting statistics.
2005         
2006 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
2007
2008         * toplev.c (rest_of_compilation): Fix thinko in this change:
2009         
2010         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
2011
2012         (rest_of_compilation): If inside an inlined external function,
2013         pretend we are just being declared.
2014
2015 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
2016
2017         * flow.c (calculate_global_regs_live): Fix thinko.
2018
2019         * integrate.c (expand_inline_function): Fix bugs in previous
2020         change from Oct 28, 1999.
2021
2022 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
2023
2024         * stmt.c (expand_value_return): Fix typo in this change:
2025
2026         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2027         (expand_value_return): Correctly convert VAL when promoting function
2028         return; support RETURN_REG being a PARALLEL.
2029         
2030 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
2031
2032         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
2033
2034 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2035
2036         * hard-reg-set.h (reg_names): Constify a char*.
2037
2038         * regclass.c  (reg_names): Likewise.
2039
2040         * regs.h (reg_names): Likewise
2041
2042         * a29k/a29k.c (reg_names): Delete declaration.
2043
2044         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
2045
2046         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
2047         arc_output_function_epilogue): Likewise.
2048
2049         * elxsi/elxsi.c (reg_names): Likewise.
2050
2051         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
2052         
2053         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
2054         Likewise.
2055
2056         * m88k/m88k.c (output_function_profiler): Likewise.
2057
2058         * sparc/sparc.c (sparc_flat_output_function_prologue,
2059         sparc_flat_output_function_epilogue): Likewise.
2060
2061 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
2062
2063         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
2064         warning from -Wuninitialized and put it under -W.
2065         * function.c (uninitialized_vars_warning): Warn only when the
2066         corresponding flag is set.
2067
2068 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
2069
2070         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
2071         is nonzero and the single set does not have an elt, then assign
2072         it an elt.
2073
2074         * simplify-rtx.c: New file.
2075         * Makefile.in (OBJS): Add simplify-rtx.o
2076         (simplify-rtx.o): Add dependencies.
2077         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
2078         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
2079         (cse_gen_binary, simplify_unary_operation): Delete.
2080         (simplify_binary_operation, simplify_plus_minus): Likewise.
2081         (check_fold_consts, simplify_relation_operation): Likewise.
2082         (simplify_ternary_operation): Likewise.
2083         (delete_trivially_dead_insns): Simplify the contents of the
2084         REG_EQUAL note before trying to substitute it into the source
2085         of the reg-reg copy at the end of a libcall sequence.
2086
2087         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
2088         references/callers changed.
2089
2090         * mn10200.c (mn10200_va_arg): Force the return value into a
2091         register.
2092
2093         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
2094
2095         * cccp.c (macroexpand): Avoid out of range accesses for omitted
2096         arguments.
2097
2098 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
2099
2100         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
2101
2102 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
2103
2104         * fold-const.c (fold): Fix thinko when optimizing comparisons
2105         against -0.0.
2106
2107 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
2108
2109         * gcc.texi (Passes): Update front-end files to their current 
2110         location.
2111
2112 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
2113
2114         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
2115         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2116         (PREDICATE_CODES): Add addition_operation.
2117         * alpha-protos.h (addition_operation): Declare.
2118         (secondary_reload_class): Likewise.
2119         * alpha.c (addition_operation): New.
2120         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
2121         * alpha.md (adddi3): Turn into expander.
2122         (*lda, *adddi_2): New.
2123         (movsf, movdf patterns): Don't preference integer regs.
2124         (movsi, movdi patterns): Don't preference fp regs.
2125
2126 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
2127
2128         * genrecog.c (write_switch): Check for duplicate CODE cases.
2129
2130 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
2131
2132         * ggc-common.c: Update pre-function commentary.
2133         * ggc-page.c: Likewise.
2134         (poison): Remove.
2135         (poison_pages): Use memset directly.
2136         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
2137         (ggc_collect): Poison before sweeping.
2138         * ggc-simple.c: Update pre-function commentary.
2139         (ggc_alloc_obj): Poison non-zeroed memory.
2140
2141 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
2142
2143         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
2144         match format string, even on 64-bit hosts.
2145         * gcc-page.c (ggc_page_print_statistics): Likewise.
2146
2147 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
2148
2149         * config/i386/i386.c (ix86_cpu): Revert last patch.
2150         * config/i386/i386.h (ix86_cpu): Ditto.
2151
2152 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
2153
2154         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
2155         TYPE_SIZE, convert type of result to sizetype.
2156
2157 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
2158
2159         * flow.c (count_or_remove_death_notes): Equate NULL with the
2160         universal set.
2161
2162         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
2163         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
2164         dbr_schedule.
2165
2166         * i386.c (pic_label_no): Delete.
2167         (ix86_attr_length_default): Don't use single_set to peek
2168         inside a parallel.
2169
2170         * recog.c (peephole2_optimize): Allow recog_next_insn to index
2171         the first insn after bb->end.
2172         * i386.md (push mem peeps): Scratch is live after evaluation
2173         of the memory.
2174         (cmp mem peep): Similarly.
2175
2176 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
2177
2178         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
2179         * function.c (pad_to_arg_alignment): Add missing braces.
2180
2181 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2182
2183         * alpha/alpha-protos.h (literal_section): Add prototype.
2184         (alpha_need_linkage, alpha_start_function,alpha_end_function):
2185         Constify a char*.
2186
2187         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
2188         prototype.
2189         (alpha_start_function, alpha_end_function, float_strings,
2190         alpha_need_linkage): Constify a char*
2191
2192         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
2193
2194         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
2195
2196         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
2197
2198         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
2199
2200 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2201
2202         * flow.c (debug_flow_info): Add prototype.
2203
2204         * gcc.c (main): Likewise.
2205
2206         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
2207         Likewise.
2208
2209         * reload1.c (failed_reload, set_reload_reg): Likewise.
2210         
2211         * mips-tfile.c (main): Likewise.
2212         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
2213         with ATTRIBUTE_NORETURN.
2214
2215 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
2216
2217        * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
2218        DECL is not a memory ref.
2219  
2220 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
2221
2222         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
2223         * config/i386/i386.c (ix86_cpu): Add extern attribute.
2224
2225 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
2226
2227         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
2228         * config/mips/elf64.h: ditto.
2229
2230 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
2231
2232         * expr.c (emit_push_insn): New argument alignment_pad.
2233         Update all callers.  Adjust stack pointer based on alignment pad.
2234         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
2235         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
2236         (locate_and_pad_parm): New argument alignment_pad.  Update all
2237         callers.
2238         * expr.h (emit_push_insn): Update prototype.
2239         (locate_and_pad_parm): Update prototype.
2240         * calls.c (arg_data):  Add new field alignment_pad.
2241         (initialize_argument_information): Initialize alignment_pad.
2242
2243 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
2244
2245         * except.c (free_eh_nesting_info): Free the info itself.
2246         * function.c (free_after_compilation): Don't free NULL.
2247         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
2248         (pre_edge_insert): Free inserted.
2249         * stmt.c (free_stmt_status): Don't free NULL.
2250
2251 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
2252
2253         * gcov.c (DIR_SEPARATOR): Provide default.
2254         (output_data): Add test for MS-DOS format absolute filename.
2255         (fancy_abort): Correct program name.
2256         (open_files): Open all files in binary mode.
2257         * libgcc2.c (__bb_exit_func): Likewise.
2258
2259         * profile.c (init_branch_prob): Specify binary when opening files.
2260
2261         * flags.h (flag_unwind_tables): New decl.
2262         * toplev.c (flag_unwind_table): New definition.
2263         (f_options): Add -funwind-tables.
2264         (decode_g_option): Clarify warning when unknown -g option is given.
2265         (rest_of_compilation): If inside an inlined external function,
2266         pretend we are just being declared.
2267
2268         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
2269         (dwarf2out_frame_finish): Likewise.
2270
2271 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
2272
2273         * fold-const.c (merge_ranges): In not in0, but in1, handle
2274         upper bounds equal like subset case.
2275
2276 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
2277
2278         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
2279         passed in a register but moved to the stack.
2280
2281 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
2282
2283         * gcc.c (pass_exit_codes, greatest_status): New variables.
2284         (struct option_map): Add entry for "--pass-exit-codes".
2285         (execute): Update greatest_status if error.
2286         (display_help): Add documentation for -pass-exit-codes.
2287         (process_command): Handle -pass-exit-codes.
2288         (main): Look at pass_exit_codes and greatest_status on call to exit.
2289
2290 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2291
2292         * reload.c (find_reloads): Refine test for no input reload
2293         case to not includes reloads emitted after insn.
2294
2295         * function.c (find_temp_slots_from_address): Handle sum involving
2296         a register that points to a temp slot.
2297         (update_temp_slot_address): Make recursive call if both old and
2298         new are PLUS with a common operand.
2299         * calls.c (expand_call): Mark temp slot for result as having
2300         address taken.
2301         
2302         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
2303
2304         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
2305         component as well as "BINUTILS".
2306
2307         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
2308         * integrate.c (copy_rtx_and_substitute): Likewise.
2309         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
2310         All callers changed.
2311         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
2312         
2313         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
2314         gdb extensions, write size of type; also be more consistent
2315         in using references when this is a subtype.
2316
2317         * pa.md (extv, extzv, insv): Use define_expand to reject constant
2318         that is out of range.
2319
2320         * loop.c (unknown_constant_address_altered): New variable.
2321         (prescan_loop): Initialize it.
2322         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
2323         (invariant_p, case MEM): Remove handling for volatile and readony;
2324         check new variable if readonly.
2325         (check_dbra_loop): Chdeck unknown_constant_address_altered.
2326
2327         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
2328         (addr_affects_sp_p): Removed from note_mem_written and only
2329         define #ifdef AUTO_INC_DEC.
2330
2331         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
2332
2333         * regclass.c (record_reg_classes): Properly handle register move
2334         directions.
2335
2336         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
2337         Don't think valid if both operands are invalid.
2338         (struct constant_descriptor): New field RTL.
2339         (mark_const_hash_entry): Mark it.
2340         (record_constant{,_rtx}): Initialize it.
2341         (output_constant_def): Allocate RTL in permanent obstack and
2342         save in table.
2343         ({record,compare}_constant_1): Modes must match for
2344         CONSTRUCTOR of ARRAY_TYPE.
2345
2346         * c-common.h (initializer_constant_valid_p): Delete decl from here.
2347         * output.h (initializer_constant_valid_p): Move decl to here.
2348         * c-common.c (initializer_constant_valid_p): Delete function from here.
2349         * varasm.c (initializer_constant_valid_p): Move function to here.
2350
2351         * tree.h (STRIP_SIGN_NOPS): New macro.
2352         * fold-const.c (optimize_minmax_comparison): New function.
2353         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
2354         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
2355         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
2356         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
2357         widening conversions.
2358         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
2359         to look at size of mode, not precision of type; also add missing cases.
2360         (optimize_bit_field_compare, decode_field_reference): Don't try to
2361         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
2362
2363         * dwarf2out.c (ctype.h): Include.
2364         (dwarf2out_set_demangle_name_func): New function.
2365         (size_of_line_info): Deleted.
2366         (output_line_info): Compute size of line info table from difference
2367         of labels.
2368         (base_type_die, add_name_attribute): Call demangle function, if any.
2369         (field_byte_offset): Use bits per word for variable length fields.
2370         (gen_array_type_die): Add array name.
2371         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
2372         (dwarf2out_add_library_unit_info): New function.
2373
2374         * explow.c (set_stack_check_libfunc): New function.
2375         (stack_check_libfunc): New static variable.
2376         (probe_stack_range): Allow front-end to set up a libfunc to call.
2377
2378         * combine.c (simplify_comparison): When making comparison in wider
2379         mode, check for having commuted an AND and a SUBREG.
2380         (contains_muldiv): New function.
2381         (try_combine): Call it when dividing a PARALLEL.
2382         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
2383         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
2384         a PLUS.
2385         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
2386         use one of the CLOBBERs instead.
2387         (if_then_else_cond): If comparing against zero, just return thing
2388         being compared.
2389
2390         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
2391         Don't generate shifts and subtract if have conditional arithmetic.
2392
2393         * rtl.h (delete_barrier): New declaration.
2394         * jump.c (jump_optimize): Set up to handle conditional call.
2395         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
2396         (delete_barrier): New function.
2397
2398         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
2399
2400         * recog.c (nonmemory_operand): Accept ADDRESSOF.
2401
2402         * tree.c (build_type_attribute_variant): Push to obstack of
2403         ttype around type_hash_canon call.
2404
2405         * expr.c (placeholder_list): Move decl to file scope.
2406         (expand_expr): Don't force access to volatile just because its
2407         address is taken.
2408         If ignoring reference operations, just expand the operands.
2409         (expand_expr, case COMPONENT_REF): Propagate
2410         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
2411         Refine test for using bitfield operations vs pointer punning.
2412         (expand_expr, case CONVERT_EXPR): If converting to
2413         BLKmode UNION_TYPE from BLKmode, just return inner object.
2414         Use proper mode in store_field call.
2415         Properly set sizes of object to store and total size in store_field
2416         call for convert to union.
2417         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
2418         memory (like for ADDR_EXPR).  Also, don't put constant in register if
2419         we'll want it in memory.
2420         (readonly_fields_p): New function.
2421         (expand_expr, case INDIRECT_REF): Call it if LHS.
2422         (expand_assignment): Handle a RESULT_DECL where
2423         DECL_RTL is a PARALLEL.
2424         (do_jump, case WITH_RECORD_EXPR): New case.
2425         (get_inner_reference): Always go inside a CONVERT_EXPR
2426         and NOP_EXPR if both modes are the same.
2427         (store_field): Use bitfield operations if size of bitsize is not same
2428         as size of RHS's type.
2429         Check for bitpos not a multiple of alignment in BLKmode case.
2430         Do block move in largest possible alignment.
2431         (store_constructor): Set BITSIZE to -1 for variable size and properly
2432         in case of array of BLKmode.
2433         (expand_expr_unaligned): New function.
2434         (do_compare_and_jump): Call it.
2435
2436         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
2437         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
2438         does not include 'o'.
2439
2440         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
2441         both SET_DEST and SET_SRC reference a virtual register.
2442         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
2443
2444         * integrate.c (expand_inline_function): Handle case of setting
2445         virtual stack vars register (from built in setjmp); when parameter
2446         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
2447         (subst_constant): Add new parm, MEMONLY.
2448         (expand_inline_function, integrate_parm_decls): Pass new parm.
2449         (integrate_decl_tree): Likewise.
2450         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
2451         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
2452         (copy_rtx_and_substitute, case SET): Add explicit calls to
2453         copy_rtx_and_substitute for both sides.
2454
2455         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
2456         constraints.
2457         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
2458         within INDEX_TYPE, instead of before.
2459         (fixup_gotos): Use f->target_rtl, not the next insn,
2460         since latter may be from a later fixup.
2461         (expand_value_return): Correctly convert VAL when promoting function
2462         return; support RETURN_REG being a PARALLEL.
2463         (expand_return): When checking for result in regs and having
2464         cleanup, consider PARALLEL in DECL_RTL as being in regs.
2465
2466 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
2467
2468         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
2469         last_nominal_fname): Mark const.
2470         (struct include_hash: name, nshort, control_macro): Mark
2471         const.
2472         (struct macrodef: symnam): Mark const.
2473         (struct if_stack: fname): Mark const.
2474         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
2475         (IStable): New character-syntax array which encompasses all
2476         the old is_foo arrays.
2477         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
2478         is_space): New macros for interrogating IStable.
2479         (check_macro_name): Kill last argument.  All callers changed.
2480
2481         * cppinit.c (initialize_char_syntax): Delete.
2482         (is_idchar, is_idstart, is_hor_space, is_space,
2483         trigraph_table): Delete.
2484         (IStable): New.  Initialize with clever macros to avoid
2485         information duplication.
2486         (builtin_array): Table of builtins to get rid of explicit list
2487         in initialize_builtins.
2488         (initialize_builtins): Use builtins_array.
2489         (cpp_start_read): Call init_IStable, and set IStable['$'] if
2490         opts->dollars_in_ident.
2491
2492         * cppexp.c: Change all refs to is_xyz[] arrays to use new
2493         is_xyz() macros.
2494         (cpp_parse_expr): Avoid 'format string is not constant'
2495         warning. Use ISGRAPH to identify printable chars.
2496         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
2497         is_xyz() macros.
2498         (read_and_prescan): Map trigraphs to chars with open-coded
2499         if-else-if-... sequence, not a lookup table.
2500         * cpphash.c: Change all refs to is_xyz[] arrays to use new
2501         is_xyz() macros.
2502         * cpplib.c: Change all refs to is_xyz[] arrays to use new
2503         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
2504         (check_macro_name): Remove ability to report an invalid
2505         assertion name, which is never used.
2506         (do_line): Constify a couple of char *'s.
2507         * cppmain.c (main): Call cpp_cleanup before returning.
2508
2509 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
2510
2511         * ggc.h (struct ggc_statistics): New type.
2512         (ggc_get_size): New function.
2513         (ggc_print_statistics): Likewise.
2514         * ggc-common.c (ggc_stats): New variable.
2515         (ggc_mark_rtx_children): Keep statistics.
2516         (ggc_mark_tree_children): Likewise.
2517         (ggc_print_statistics): New function.
2518         * ggc-page.c (struct globals): Add bytes_mapped field.
2519         (alloc_anon): Update it.
2520         (release_pages): Likewise.
2521         (ggc_get_size): New function.
2522         (ggc_page_print_statistics): New function.
2523         * ggc-simple.c (ggc_get_size): New function.
2524         
2525 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
2526
2527         * flow.c (propagate_block): When the last reference to a label
2528         before an ADDR_VEC is deleted because the reference is a dead
2529         store, delete the ADDR_VEC.
2530
2531 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
2532
2533         * resource.c (find_free_register): Don't use the frame pointer
2534         if frame_pointer_needed.
2535
2536 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
2537
2538         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
2539         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
2540
2541         * config/i960/i960.c (i960_va_start): New locals base, num.
2542         Use INDIRECT_REF instead of ARRAY_REF on valist.
2543         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
2544
2545 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
2546
2547         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
2548
2549 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
2550
2551         * tree.def (PLACEHOLDER_EXPR): Update comments.
2552
2553 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2554
2555         * c-common.c (check_format_info): Avoid non-literal format string
2556         warnings when `first_arg_num' is zero.
2557
2558 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2559
2560         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
2561
2562 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2563
2564         * arm.md (casesi_insn): Add a clobber of the condition code
2565         register.
2566
2567 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
2568
2569         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
2570         used by both cc1 and cc1plus.
2571         
2572 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
2573
2574         * config/arm/arm.c: Initialise arm_structure_size_boundary to
2575         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
2576         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
2577         to the value 32 if it has not already been defined.
2578         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
2579         Override definition in arm.h with a value of 8.
2580
2581 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
2582
2583         * c-pragma.c (push_alignment): Don't check the return value
2584         of xmalloc.
2585
2586 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
2587
2588         * sparc.h (ADJUST_COST): Fix thinko.
2589
2590 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
2591
2592         * cccp.c (rescan): Fixed obp pointer handling around call to
2593         check_expand subroutine.
2594
2595 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
2596
2597         * gcse.c (delete_null_pointer_checks): Only record non-null info
2598         for pseudos when examining stores.
2599
2600         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
2601         splitters for these patterns.  Use "#" for output templates.
2602         (addsi3_carryin_shift): New pattern.
2603
2604 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
2605
2606         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
2607         of the function return register into a plain REG until
2608         after function inlining is done.
2609
2610 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
2611
2612         * jump.c (jump_optimize_1): If we did cross-jumping, and
2613         the data will matter, rebuild the CFG.
2614         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
2615         not optimizing.  Don't run shorten_branches.
2616         * toplev.c (rest_of_compilation): Run shorten_branches after
2617         reg_to_stack.
2618
2619 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
2620
2621         * rtl.h (note_stores): Add additional paramter.
2622         * rtlanal.c (reg_set_p_1): Take additional paramter.
2623         (reg_set_last_1): Likewise.
2624         (reg_set_p): Adjust call to note_stores.
2625         (reg_set_last): Likewise.
2626         (note_stores): Pass data parameter to worker function.
2627         * alias.c (record_set): Take additional parameter.
2628         (init_alias_analysis): Pass it.
2629         * caller-save.c (mark_set_regs): Take additional parameter.
2630         (save_call_clobbered_regs): Pass NULL to note_stores.
2631         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
2632         parameter.
2633         (record_dead_and_set_regs_1): Likewise.
2634         (reg_dead_at_p_1): Likewise.
2635         (combine_instructions): Adjust calls to note_stores.
2636         (try_combine): Likewise.
2637         (record_dead_insn): Remove.
2638         (record_dead_and_set_regs): Adjust calls to note_stores.
2639         (reg_dead_at_p): Likewise.
2640         * cse.c (invalidate_skipped_set): Take additional parameter.
2641         (cse_check_loop_start): Likewise.
2642         (cse_check_loop_start_value): Remove.
2643         (cse_set_around_loop): Adjust calls to note_stores.
2644         * flow.c (notice_stack_pointer_modification): Take additional
2645         parameter.  Remove duplicate declaration.
2646         (record_volatile_insns): Adjust calls to note_stores.
2647         * gcse.c (record_set_info): Take additional parameter.
2648         (record_last_set_info): Likewise.
2649         (invalidate_nonnull_info): Likewise.
2650         (record_set_insn): Remove.
2651         (compute_sets): Adjust calls to note_stores.
2652         (last_set_insn): Remove.
2653         (compute_hash_table): Adjust calls to note_stores.
2654         (insert_insn_end_bb): Likewise.
2655         (delete_null_pointer_checks): Likewise.
2656         * global.c (mark_reg_store): Take additional parameter.
2657         (mark_reg_clobber): Likewise.
2658         (reg_becomes_live): Likewise.
2659         (global_conflicts): Adjust calls to note_stores.
2660         (build_insn_chain): Likewise.
2661         * integrate.c (note_modified_parmregs): Take additional parameter.
2662         (mark_stores): Likewise.  Make it static.
2663         (save_for_inline_nocopy): Adjust calls to note_stores.
2664         (try_constants): Likewise.
2665         * integrate.h (mark_stores): Remove declaration.
2666         * jump.c (mark_modified_reg): Take additional parameter.
2667         (thread_jumps): Adjust calls to note_stores.
2668         * local-alloc.c (validate_equiv_mem_from_store): Take additional
2669         parameter.
2670         (no_equiv): Likewise.
2671         (reg_is_set): Likewise.
2672         (validate_equiv_mem): Adjust calls to note_stores.
2673         (update_equiv_regs): Likewise.
2674         (block_alloc): Likewise.
2675         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
2676         (note_addr_stored): Take additional parameter.
2677         (note_set_pseudo_multiple_uses): Likewise.
2678         (record_initial): Likewise.
2679         (prescan_loop): Adjust calls to note_stores.
2680         (strength_reduce): Likewise.
2681         (check_dbra_loop): Likewise.
2682         * regmove.c (flags_set_1): Take additional paramter.
2683         (mark_flags_life_zones): Adjust calls to note_stores.
2684         * reload1.c (mark_not_eliminable): Take additional parameter.
2685         (forget_old_reloads_1): Likewise.
2686         (reload_cse_invalidate_rtx): Likewise.
2687         (reload_cse_check_clobber): Likewise.
2688         (reload_combine_note_store): Likewise.
2689         (move2add_note_store): Likewise.
2690         (reload): Adjust calls to note_stores.
2691         (reload_as_needed): Likewise.
2692         (emit_reload_insns): Likewise.
2693         (reload_cse_regs_1): Likewise.
2694         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
2695         (reload_combine): Adjust calls to note_stores.
2696         * resource.c (update_live_status): Take additional paramter.
2697         (mark_target_live_regs): Adjust calls to note_stores.
2698         * stupid.c (find_clobbered_regs): Take additional parameter.
2699         (stupid_life_analysis): Adjust calls to note_stores.
2700         
2701 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
2702
2703         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
2704         definition. 
2705
2706         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
2707         definition.
2708
2709         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
2710         of the variable arm_structure_size_boundary.
2711
2712 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
2713
2714         * alias.c (init_alias_analysis): Allocate reg_known_value and
2715         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
2716         and reg_seen.
2717         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
2718         * cse.c (cse_main): Call end_alias_analysis.
2719         * haifa-sched.c (schedule_insns): Likewise.
2720         * local-alloc. (update_equiv_regs): Likewise.
2721         * reload1.c (reload_cse_regs): Likewise.
2722         
2723 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2724
2725         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
2726         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
2727         mapping from MASK_FPU.
2728
2729 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
2730
2731         * sparc.md (call): Don't bound structure return size to 0xfff.
2732
2733 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
2734
2735         * resource.c (mark_target_live_regs): Check that the target
2736         insn wasn't created after compute_bb_for_insn.
2737
2738 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
2739
2740         * ggc-page.c (poison_pages): Don't be overzealous.
2741
2742 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
2743
2744         * alias.c: Update comments for ADDRESS.
2745         (nonlocal_reference_p): Look inside the ADDRESS to determine if
2746         it is a local memory reference.
2747
2748         * c-typeck.c (build_function_call): Check that the built-in
2749         function is of class BUILT_IN_NORMAL before trying to recongize
2750         it as BUILT_IN_ABS.
2751         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
2752         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
2753
2754 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
2755
2756         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
2757         of alloca.
2758         (pre_gcse): Likewise.
2759         (hoist_expr_reaches_here_p): Likewise.
2760         (hoist_code): Likewise.
2761         (pre_expr_reaches_here_p): Replace alloca with xcalloc.   Move core
2762         code to ...
2763         (pre_expr_reaches_here_p_work): ... here.
2764         (expr_reaches_here_p): Replace alloca with xcalloc.   Move core 
2765         code to ...
2766         (expr_reaches_here_p_work): ... here.
2767
2768 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
2769
2770         * resource.c (find_basic_block): Delete.
2771         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
2772         (init_resource_info): Call compute_bb_for_insn.
2773
2774 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
2775
2776         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
2777         with already adjacent blocks, but no fallthru.
2778         (merge_blocks_move_successor_nojumps): Simplify.
2779         (debug_flow_info): New.
2780
2781         * toplev.c (rest_of_compilation): Open jump1 dump file before
2782         jump and close after, as opposed to just using dump_rtl.
2783
2784 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2785
2786         * reload.h (earlyclobber_operand_p): Declare.
2787         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
2788         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
2789         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
2790         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
2791
2792 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
2793                           Richard Henderson  <rth@cygnus.com>
2794
2795         * emit-rtl.c (emit_block_insn_before): New.
2796         (emit_block_insn_after): New.
2797         * basic-block.h: Declare them.
2798
2799         * bitmap.h: Protect from multiple inclusion.
2800
2801         * recog.c (scratch_operand): Handle VOIDmode correctly.
2802
2803         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
2804
2805         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
2806         * function.c (assign_parms): Likewise.
2807         * global.c (global_conflicts): Clarify STACK_REGS commentary.
2808
2809         * reg-stack.c (max_uid): Remove.
2810         (blocks, block_begin, block_end, block_drops_in): Remove.
2811         (block_stack_in, block_out_reg_set, block_number): Remove.
2812         (struct block_info_def, BLOCK_INFO): New.
2813         (enum emit_where): New.
2814         (current_block): New.
2815         (BLOCK_NUM): Remove.
2816         (mark_regs_pat, record_label_references): Remove.
2817         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
2818         (nan): New.
2819         (goto_block_pat, print_blocks, dump_stack_info): Remove.
2820         (reg_to_stack): Simplified test for existance of fp code.  Use
2821         flow.c code.  Call shorten_branches after cross-jump opt.
2822         (check_asm_stack_operands): Renamed from record_asm_reg_life.
2823         Return false if the asm doesn't use stack regs.  Don't do life
2824         analysis on the asm.
2825         (emit_pop_insn): Replace function pointer arg `when' with
2826         enum `where'.  Update all callers.
2827         (change_stack): Likewise.  Update basic block end.
2828         (emit_swap_insn): Use current_block->head to limit reverse search
2829         for start of block.  Use emit_block_insn_after.
2830         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
2831         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
2832         structure assignment instead of bcopy.
2833         (print_stack): New.
2834         (convert_regs_entry, convert_regs_exit): New.
2835         (convert_regs_1, convert_regs_2): Split out from convert_regs.
2836         Work on basic blocks and the CFG.
2837         (convert_regs): Use them.
2838
2839         * i386.c (output_fix_trunc): Remove code for DImode input operand
2840         not at top-of-stack.
2841         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
2842         appropriate mode.
2843         (fix_truncdi_1): Allow any mode scratch.
2844
2845 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
2846
2847         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
2848         * linux.h, netbsd.h, vms.h: Not here.
2849
2850 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
2851
2852         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
2853         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
2854         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
2855         CONDITIONAL_REGISTER_USEAGE): Use them. 
2856         * config/mips/mips.c (mips_move_1word,mips_move_2words,
2857         gen_conditional_branch,override_options) : Use them.
2858         * config/mips/mips.md : Use them.
2859
2860 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
2861
2862         * i386.md (zero_extendqihi2): Use SImode register name with andl.
2863
2864 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
2865
2866         * integrate.c (function_cannot_inline_p): Don't allow inlining
2867         if setjmp is used.
2868
2869 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2870
2871         * c-parse.in (cast_expr): Constify.
2872
2873         * cccp.c (special_symbol): Likewise.
2874
2875         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
2876
2877         * dwarf2out.c (base_type_die): Likewise.
2878
2879         * global.c (allocno_compare): Likewise.
2880
2881         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
2882
2883         * regclass.c (fix_register): Likewise.
2884
2885         * rtl.h (fix_register): Likewise.
2886
2887         * stupid.c (stupid_reg_compare): Likewise.
2888
2889         * toplev.c (decode_f_option): Likewise.
2890
2891         * tree.c (build_complex_type): Likewise.
2892
2893 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
2894
2895         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
2896
2897 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2898
2899         * reload.c (find_reloads): Compute mode and nregs fields of all
2900         reloads.
2901         * reload1.c (calculate_needs_all_insns): Simplify a bit.
2902         (calculate_needs): Use precomputed mode/nregs values.
2903         (allocate_reload_reg): Likewise.
2904         Break out two...
2905         (failed_reload, set_reload_reg): ... new functions.
2906         (choose_reload_regs_init): New function, mostly broken out from...
2907         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
2908         Also lose one #if 0 block.
2909
2910 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
2911
2912         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name 
2913         substitution.
2914
2915 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
2916
2917         * tree.h (BLOCK_TYPE_TAGS): Remove.
2918         (BLOCK_END_NOTE): Likewise.
2919         (BLOCK_LIVE_RANGE_FLAG): Likewise.
2920         (BLOCK_LIVE_RANGE_START): Likewise.
2921         (BLOCK_LIVE_RANGE_END): Likewise.
2922         (tree_block): Remove live_range_flag, live_range_var_flag, and
2923         type_tags.  Remove end_note, live_range_start, and live_range_end.
2924         (remember_end_note): Remove prototype.
2925         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
2926         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
2927         remember_end_note.
2928         * ggc-common.c (ggc_mark_tree_children): Don't mark
2929         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
2930         * integrate.c (adjust_copied_decl_tree): Remove.
2931         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
2932         * stmt.c (last_block_end_note): Remove.
2933         (init_stmt): Don't add a GC root for it.
2934         (expand_fixup): Don't set it.
2935         (remember_end_note): Remove.
2936         (expand_end_bindings): Don't set last_block_end_note.
2937
2938 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2939
2940         * reload1.c (reload_reg_free_for_value_p): Show
2941         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
2942         reloads.
2943
2944 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
2945
2946         * expmed.c (extract_bit_field): Allow for the case of non-integer
2947         objects that are smaller than a word (like SFmode on a 64-bit
2948         machine).
2949
2950         * loop.c (basic_induction_var): A non-integer variable which is
2951         being set by a paradoxical subreg is probably not a biv.
2952
2953 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2954
2955         * prefix.c (translate_name) Check for empty prefix string.
2956
2957 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
2958
2959         * Makefile.in (CPP_CROSS_NAME): New variable.
2960         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
2961         xcpp.
2962         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
2963         names of the files to be uninstalled.
2964
2965 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
2966
2967         * collect2.c (IS_DIR_SEPARATOR): Define.
2968         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
2969
2970         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
2971         functions too.
2972
2973         * haifa-sched.c (add_dependence): Update the true dependency
2974         cache the first time we add a true dependence to the LOG_LINKS chain.
2975
2976 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
2977
2978         * fold-const.c (fold): Fix comment.
2979
2980 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2981
2982         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
2983         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
2984         dbxout_start_new_source_file, dbxout_source_file,
2985         dbxout_source_line, dbxout_finish, dbxout_type_fields,
2986         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
2987         Constify a char*.
2988         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
2989         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
2990         (dbxout_block): Initialize variable `blocknum'. 
2991
2992         * dbxout.h (dbxout_init, dbxout_finish,
2993         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
2994         dbxout_args, dbxout_source_line): Constify a char*.
2995
2996         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
2997         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
2998         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
2999         low_pc_attribute, high_pc_attribute, body_begin_attribute,
3000         body_end_attribute, comp_dir_attribute, sf_names_attribute,
3001         src_info_attribute, mac_info_attribute, producer_attribute,
3002         lookup_filename, generate_macinfo_entry, fundamental_type_code,
3003         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
3004         dwarfout_undef): Constify a char*.
3005         (add_incomplete_type, retry_incomplete_types): Add prototypes.
3006
3007         * dwarfout.h (dwarfout_define, dwarfout_undef,
3008         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
3009
3010 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
3011
3012         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
3013         (MULTILIB_ISA_DEFAULT): New.
3014         (MULTILIB_DEFAULTS): Use it.
3015         * config/mips/mips.c (): Remove the now unnecessary definition
3016         of MIPS_ISA_DEFAULT.
3017         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
3018         unnecessary definition.
3019
3020 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
3021
3022         * arm.md (pic_load_addr): Add constraints to operand 1.
3023
3024 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
3025
3026         * fixinc/genfixes:  Provide a means for specifying -D options to
3027         AutoGen
3028
3029 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
3030
3031         * arm.c (arm_override_options): Correct initialization of
3032         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
3033         arm_is_strong, and arm_is_6_or_7.
3034
3035         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
3036         (note_set_pseudo_multiple_uses): New function.
3037         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
3038         if a pseudo set in the loop exit is used elsewhere.
3039
3040 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
3041
3042         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
3043
3044 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
3045
3046         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
3047         a single load-address pattern.
3048
3049 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
3050
3051         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
3052         depending on whether or not line-number notes are present.
3053
3054 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3055
3056         * cccp.c (progname, file_buf, default_include, include_file,
3057         macrodef, definition, hashval, wchar_type, user_label_prefix,
3058         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
3059         expand_to_temp_buffer, is_system_include, base_name,
3060         absolute_filename, read_name_map, open_include_file,
3061         record_control_macro, check_precompiled, check_preconditions,
3062         pcfinclude, pass_thru_directive, create_definition,
3063         check_macro_name, comp_def_part, collect_expansion,
3064         check_assertion, read_token_list, assertion_install,
3065         assertion_lookup, eval_if_expression, conditional_skip,
3066         validate_else, skip_quoted_string, quote_string, macarg1,
3067         error_from_errno, install, lookup, hashf, dump_defn_1,
3068         perror_with_name, pfatal_with_name, main, trigraph_pcp,
3069         check_white_space, rescan, handle_directive, monthnames,
3070         special_symbol, do_include, remap_include_file, write_output,
3071         arglist, do_assert, do_unassert, do_line, do_error, do_once,
3072         do_ident, do_sccs, do_xifdef, skip_if_group,
3073         output_line_directive, macroexpand, macarg, change_newlines,
3074         initialize_builtins, make_definition): Constify a char*.
3075
3076         * pcp.h (stringdef): Likewise.
3077
3078 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
3079
3080         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
3081         not of pattern.
3082
3083 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
3084                           Richard Henderson  <rth@cygnus.com>
3085
3086         * alias.c: Include ggc.h.
3087         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
3088         (record_set): Verify enough room in reg_base_value.
3089         (init_alias_analysis): Allocate reg_base_value with xcalloc.
3090         Register it as a GC root.
3091         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
3092         * Makefile.in (alias.o): Depend on ggc.h.
3093
3094         * unroll.c (unroll_loop): Verify the insn before a barrier
3095         is a JUMP_INSN before checking JUMP_LABEL.
3096
3097 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3098
3099         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
3100         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
3101         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
3102         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
3103         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
3104         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
3105
3106 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3107
3108         * output.h (ctors_section, dtors_section, bss_section): Prototype.
3109
3110         * alpha/alpha-interix.h (text_section): Delete prototype.
3111         * alpha/elf.h (text_section): Likewise.
3112         * arm/linux-elf.h (text_section): Likewise.
3113         * arm/linux-telf.h (text_section): Likewise.
3114         * c4x/c4x.h (text_section): Likewise.
3115         * dsp16xx/dsp16xx.h (bss_section): Likewise.
3116         * elfos.h (text_section): Likewise.
3117         * i386/aix386ng.h (text_section): Likewise.
3118         * i386/i386-interix.h (text_section): Likewise.
3119         * i386/sco5.h (text_section): Likewise.
3120         * i386/svr3gas.h (text_section): Likewise.
3121         * nextstep.h (text_section): Likewise.
3122         * psos.h (text_section): Likewise.
3123         * ptx4.h (text_section): Likewise.
3124         * svr3.h (text_section): Likewise.
3125         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
3126
3127 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3128
3129         * final.c (peephole): Delete prototype.
3130
3131         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
3132         (pre_insert_copies): Remove unused variable `bb'.
3133
3134         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
3135         prototypes.
3136
3137         * output.h (peephole): Add prototype.
3138
3139 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
3140
3141         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
3142         -O0.
3143
3144 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
3145
3146         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
3147         for inlined declarations.
3148
3149 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
3150
3151         * arm.c (logical_binary_operator): New fucntion.
3152         * arm.h (logical_binary_operator): Declare it.
3153         (PREDICATE_CODES): Handle logical_binary_operator.
3154         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
3155         output constraints.  Add appropriate splitters.
3156         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
3157         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
3158         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
3159
3160 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3161
3162         * genoutput.c (struct operand_data): New elt eliminable.
3163         (output_operand_data): Write it.
3164         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
3165         (compare_operands): Take it into account.
3166         * recog.h (struct insn_operand_data): New elt eliminable.
3167         * reload1.c (check_eliminable_occurrences, elimination_effects): New
3168         functions.
3169         (old_asm_operands_vec, new_asm_operands_vec): Delete.
3170         (eliminate_regs): Move code that detects changes to elimination
3171         target regs into new function elimination_effects.
3172         Delete one #if 0 block.
3173         Abort for USE, CLOBBER, ASM_OPERANDS and SET. 
3174         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
3175         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
3176         Only call eliminate_regs for real operands of the insn, not for parts
3177         of its structure or parts matched by things like match_operator.
3178         Use elimination_effects and check_eliminable_occurrences.  Use
3179         copy_insn to duplicate the pattern when not in the final pass.
3180
3181 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
3182
3183         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
3184         and fld.
3185
3186 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
3187
3188         * fixinc/README: document the "mach" machine matching test
3189         * fixinc/fixfixes.c: Implement the #else/#endif label fix
3190         * fixinc/fixtests.c: Implement the #else/#endif label test
3191         * fixinc/inclhack.def: utilize these tests and fixes
3192         * fixinc/inclhack.sh:  regen
3193         * fixinc/fixincl.x:  regen
3194         * fixinc/fixincl.sh:  regen
3195
3196 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
3197
3198         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
3199         depend on ggc.h.
3200
3201 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
3202
3203         * gcc.1: Document exit codes.
3204
3205 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3206
3207         * calls.c: Include tm_p.h later, so everything we need is defined.
3208         * expr.c: Likewise.
3209         * function.c: Likewise.
3210
3211         * except.c: Include tm_p.h.
3212
3213         * sparc.c: Likewise.
3214         (dwarf2out_cfi_label): Don't prototype.
3215         (check_return_regs, epilogue_renumber,
3216         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
3217         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
3218         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
3219         ultra_schedule_insn): Add static prototype.
3220         (data_segment_operand, text_segment_operand): Call itself with the
3221         proper number of arguments.
3222         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
3223
3224         * sparc.h: Move all declarations to sparc-protos.h.
3225         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
3226         symbolic_operand.
3227
3228         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
3229
3230         * config/svr4.h (text_section, ctors_section, dtors_section): Add
3231         Prototypes.
3232         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
3233         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
3234         ASM_OUTPUT_ASCII): Constify a char*.
3235         
3236         * sparc-protos.h: New file for sparc prototypes.
3237         
3238 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3239
3240         * function.c (record_insns, contains): Always declare and define.
3241         (record_insns): Mark with ATTRIBUTE_UNUSED.
3242
3243 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3244
3245         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
3246         to .section when outputting a .bss section to deal with multiple
3247         .bss input sections (as happens with -fdata-sections)
3248         Also output %progbits, not @progbits so the assembler doesn't treat as
3249         a comment.
3250         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
3251
3252         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
3253         thumb parts even when building with non-thumb CPUs, by forcing
3254         thumb mode.     
3255
3256 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
3257
3258         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
3259         (movdf_const_intreg_sp64): Similarly.
3260
3261         * local-alloc.c (update_equiv_regs): Check the correct insn
3262         for pre-existing REG_EQUIV notes.
3263
3264 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
3265
3266         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
3267         block reached by a branch if we're not going to actually process
3268         this block.
3269
3270 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
3271
3272         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
3273         a local extern function declaration.
3274
3275 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
3276
3277         * i386.c (ix86_expand_prologue): Properly wrap USE around
3278         reg for CALL_INSN_FUNCTION_USAGE.
3279
3280 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
3281
3282         * config/mips/mips.md (movdf_internal1a): Allow floating-point
3283         move between GP_REGs.
3284
3285 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
3286
3287         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
3288         the mode size when finding out if an offset is legal.
3289
3290 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
3291
3292         * basic-block.h (PROP_*): Move constants from ...
3293         * flow.c: ... here.
3294         (compute_bb_for_insn): Free the array before reallocating.
3295         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
3296         (allocate_reg_life_data): Reset all reg variables collected by
3297         propagate_block.
3298         (get_block_head_tail): Don't convert from bb to block.
3299         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
3300         (find_insn_reg_weight): Take block not bb.
3301         (schedule_block): Don't set block num for moved insns.
3302         (schedule_region): Don't update_life_info or find_insn_reg_weight.
3303         (schedule_insns): Do it here instead.
3304         * combine.c (combine_instructions): Invoke compute_bb_for_insn
3305         before update_life_info.
3306         * recog.c (split_all_insns, peephole2_optimize): Update for
3307         new arg to update_life_info.
3308         * rtlanal.c (remove_note): Cope with NULL note.
3309         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
3310         if we did sched1.
3311
3312 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
3313
3314         * jump.c (jump_optimize_1): More accurately detect casesi insns.
3315
3316         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
3317         block records so that merge_blocks_nomove will clean up correctly.
3318         (split_edge): Handle casesi insns.
3319
3320         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
3321
3322 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
3323
3324         * pa.md (call, call_value): Do not emit a blockage after restoring
3325         the PIC register.
3326
3327 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
3328
3329         * c-typeck.c (c_expand_asm_operands): Fix typo.
3330
3331 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3332
3333         * arm.c (fpu_rhs_operand): Verify modes.
3334         (fpu_add_operand): Likewise.
3335         (di_operand): Likewise.
3336         (soft_df_operand): Likewise.
3337
3338 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
3339
3340         * arm.c (arm_return_in_memory): APCS rules state that the elements
3341         of a structure returned in a register must be 'integer-like'.
3342
3343 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
3344
3345         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
3346         in the source tree when the generated targets are out of date
3347         * fixinc/genfixes: Alter it to run individual fixes for make.
3348         * fixinc/README: rewrite
3349         * fixinc/inclhack.def: moved initial comments to README
3350
3351 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
3352
3353         * toplev.c (main): Do not generate an error message if an
3354         unrecognised command line switch is recognisable by another
3355         language.  If extra_warnings are enabled, then generate a
3356         warning message instead.
3357
3358 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3359
3360         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
3361         (insert_pack_attributes): Delete prototype.
3362
3363         * c-pragma.c (default_alignment): New static variable.
3364         (push_alignment): Initialize to current effective alignment.
3365         (pop_alignment): Use to set new alignment.
3366         (insert_pack_attributes): Delete function.
3367         (handle_pragma_token): Set default_alignment as well each time 
3368         a #pragma pack(<n>) is encountered.
3369
3370 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
3371
3372         * reg-stack.c (stack_result): Aggregates are not returned in
3373         stack registers.
3374
3375 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
3376
3377         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
3378
3379 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
3380
3381         * basic-block.h (set_block_num): Declare.
3382         * flow.c (update_life_info): Don't call compute_bb_for_insn
3383         or free_basic_block_vars.
3384         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
3385         (insn_orig_block): Remove.
3386         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
3387         (schedule_block): Keep BLOCK_NUM up-to-date.
3388         (schedule_insns): Use compute_bb_for_insn.
3389         * recog.c (split_all_insns): Likewise.
3390         (peephole2_optimize): Likewise.
3391
3392 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
3393
3394         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
3395         if the pic register is used.
3396
3397 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3398
3399         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
3400         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
3401         if that tests TREE_PERMANENT.
3402
3403 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
3404
3405         * cse.c (invalidate_for_call): Do not remove memory references from
3406         the table here.  It's handled elsewhere.
3407
3408         * haifa-sched.c (add_dependence): Protect references to the
3409         true dependency cache with #ifdef INSN_SCHEDULING.
3410         (remove_dependence): Similarly.
3411
3412         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
3413         to the cfg code that this is a return instruction.
3414         * mn10300.md (return_internal): Similarly.
3415
3416         * combine.c (get_last_value): If the last set of a register
3417         is after subst_low_cuid, then we can not use it to determine
3418         the register's last value.
3419
3420 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
3421
3422         * Makefile.in: Back out previous change.
3423         
3424 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
3425
3426         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
3427
3428         * haifa-sched.c (add_dependence): Only check/update the cache
3429         if it exists.
3430         (remove_dependence): Likewise.
3431         (schedule_insns): Only create the true_dependency_cache if the
3432         average number of instructions in a basic block is very large.
3433
3434 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
3435
3436         * Makefile.in (ggc-common.o): Depend on genrtl.h.
3437         (ggc-simple.o): Likewise.
3438         (ggc-page.o): Likewise.
3439
3440 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
3441
3442         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
3443         Prototype for exported functions.
3444         (pre_lcm, pre_rev_lcm): Remove prototypes.
3445         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
3446         (compute_available): Move to lcm.c, and change parameter order.
3447         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
3448         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
3449         (gcse_main): No longer call compute_preds_succs.  Rebuild the
3450         set table after reach pre pass.
3451         (pre_insert_map, pre_delete_map, edge_list): New.
3452         (alloc_pre_mem): Allocate edge vectors.
3453         (free_pre_mem): Delete edge vectors.
3454         (compute_pre_data): Call new edge based lcm routines.
3455         (process_insert_insn): New function.
3456         (insert_insn_end_bb): Use it.
3457         (pre_edge_insert): New function.
3458         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
3459         needed.
3460         (pre_insert_copies): Revamp using new edge based lcm outputs.
3461         (pre_delete): Likewise.
3462         (one_pre_gcse_pass): Insert & remove fake edges to the exit
3463         block.
3464         (compute_code_hoist_vbeinout): New new edge based routines.
3465         * lcm.c: Remove all the old LCM functions.  Replace with new ones
3466         that work with the new cfg datastructures and work with edges
3467         instead of blocks.
3468
3469 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3470
3471         * reload.h (struct reload): Add new fields "mode" and "nregs".
3472         * reload1.c: Change all occurrences of reload_mode and reload_nregs
3473         to reference the "mode" and "nregs" field within struct reload.
3474
3475 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
3476
3477         * haifa-sched.c (true_dependency_cache): New.
3478         (add_dependence): Use the true dependency cache to avoid expensive
3479         walks down the LOG_LINKS dependency list.  Add entries to the
3480         cache as necessary.
3481         (remove_dependence): Remove entries from the true dependency cache
3482         as needed.
3483         (schedule_insns): Allocate and initialize and free the true
3484         dependency cache.
3485
3486         * haifa-sched.c (schedule_insns): Do not remove inter-block
3487         dependencies anymore.
3488
3489 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
3490
3491         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
3492         * i386/t-winnt: Likewise.
3493
3494 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
3495
3496         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
3497
3498 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
3499
3500         * Makefile.in (LANGUAGES): Omit "proto".
3501         (clean): Remove stale comment about removing unprotoize.c.
3502
3503 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3504
3505         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
3506         using arithmetic on void pointers.
3507
3508 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
3509
3510         * haifa-sched.c (compute_block_forward_dependencies): Only check
3511         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
3512
3513 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
3514
3515         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
3516         (expr_equiv_p): Reject memories with different alias sets.
3517
3518 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
3519
3520         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
3521         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
3522         (f_options): Add "bounded-pointers" and "bounds-check" entries.
3523         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
3524         (lang_init): Set default for flag_bounds_check if still "unspecified".
3525
3526 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3527
3528         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
3529
3530 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3531
3532         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
3533         instructions.
3534
3535 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3536
3537         * config/c4x/c4x.md (*db_noclobber, 
3538         *decrement_and_branch_until_zero_noclobber): New patterns and 
3539         associated splitters.
3540
3541 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3542
3543         * config/c4x/c4x.md (parallel instruction patterns): Rework
3544         constraints to keep reload happy.
3545
3546 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3547
3548         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
3549         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
3550         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
3551         Add new patterns and associated post-reload splitters.
3552
3553 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3554
3555         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
3556
3557 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3558
3559         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
3560         if appropriate.
3561         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
3562
3563 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3564
3565         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
3566         memory mode.
3567
3568 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
3569
3570         * pa.c (move_operand): Rely on memory_address_p to determine the
3571         validity of non-indexed memory addresses.
3572         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
3573         operand in DFmode and SFmode when generating PA2.0 code.
3574
3575 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
3576
3577         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
3578
3579 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
3580
3581         * mips.c (function_prologue): Fix argument types.
3582         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
3583         (casesi_internal): Write to the scratch register.
3584
3585 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
3586
3587         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
3588         to U_CHAR **.
3589         (parse_charconst): Delete unnecessary cast when calling
3590         cpp_parse_escape.
3591         (cpplib.h): Kill prototype of cpp_parse_escape.
3592
3593 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
3594
3595         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
3596         * unroll.c (unroll_loop): Cast return value of alloca.
3597         * i370/i370.c: Include function.h and toplev.h.
3598         (i370_label_scan): Remove c++ commented abort.
3599         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
3600         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
3601         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
3602         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
3603
3604 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
3605
3606         * config/t-freebsd: Do not override USER_H.
3607         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
3608
3609 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
3610                           Mumit Khan  <khan@xraylith.wisc.edu>
3611
3612         * c-parse.in (component_decl): Support anonymous struct/union.
3613         (%expect): Update.
3614         * c-parse.y: Regenerate.
3615         * c-parse.c: Likewise.
3616         * objc/objc-parse.y: Likewise.
3617         * objc/objc-parse.c: Likewise.
3618         * c-decl.c (finish_struct): Don't sort the fields.
3619         (field_decl_cmp): Delete unused function.
3620
3621 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
3622
3623         * sparc.md (movsf_const_intreg): Revert last constraint change.
3624         (movdf_const_intreg_sp32): Likewise.
3625
3626 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
3627
3628         * cse.c: Include hashtab.h instead of splay-tree.h
3629         (struct cse_reg_info): No longer use variant union.  Add new
3630         field "regno".  All references changed to avoid union.
3631         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
3632         (free_cse_reg_info): Remove.
3633         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
3634         (get_cse_reg_info): Revamp to use expandable hash tables instead
3635         of splay trees.  Initialize new fields in cse_reg_info structure.
3636         (new_basic_block): Similarly.
3637
3638 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
3639
3640         * genrecog.c (message_with_line): Prototype.
3641         (validate_pattern): Pass along the set for the dest, not a flag.
3642         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
3643         Check for PC/CC0 as sources.
3644         (nodes_identical): Check for children position match before 
3645         allowing the combination.
3646
3647         * rtl.c (read_rtx): Track line number across \\\n.
3648
3649 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
3650
3651         * mips.h (SPECIAL_MODE_PREDICATES): New.
3652         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
3653         (movdi+1, movsi+1): Add output reload constraint.
3654         (casesi_internal): Likewise.  Fix commentary.
3655         (return_internal): Use pmode_register_operand.
3656
3657 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
3658
3659         * 1750a.md (movstrqi): Add missing output reload constraint.
3660         (call_value): Likewise.
3661         * a29k.md (cpxxx patterns): Add missing match_operator mode.
3662         (jmpfdec): Add missing inout reload constraint.
3663         * elxsi.md (addsi patterns): Add missing output reload constraint.
3664         (move from sp): Use @ alternates.
3665         (call_value): No constraint on output.
3666         * fr30.md (movsi_pop): Add missing output reload constraint.
3667         (movsf_constant_store): Likewise.
3668         (splits): Remove constraints.
3669         (subsi3): Add missing mode.
3670         * i370.md (cmpstrsi+1): Add missing output reload constraint.
3671         (call_value): Likewise.
3672         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
3673         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
3674         * m32r.md (movsicc_internal): Add output reload constraint.
3675         (movstrsi_internal): Add inout reload constraints.
3676         * m88k.h (reg_names): Don't declare.
3677         (SPECIAL_MODE_PREDICATES): New.
3678         * m88k.md (*): Use register_operand not reg_or_0_operand
3679         on destinations.
3680         * mn10200.h (PREDICATE_CODES): New.
3681         * ns32k.md (ffs pattern): Add output reload constraint.
3682         * pdp11.md (sob pattern): Add inout reload constraint.
3683         * sh.md (splits): Remove constraints.
3684         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
3685         * v850.md (pattern_is_ok_for_epilogue): Likewise.
3686         * vax.md (jgequ pattern): Add inout reload constraint.
3687
3688 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
3689
3690         * configure.in (djgpp): Revert previous patch.
3691         * configure: Rebuit.
3692         * config/i386/djgpp.h: Revert previous patch.
3693
3694 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
3695
3696         * fixinc/inclhack.def: Restore patch lost during last merge of
3697         "no_bogosity" branch.
3698         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
3699
3700 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3701
3702         * fixincludes: Add a HPUX 11 fix for inttypes.h.
3703         * fixinc/inclhack.def: Same.
3704         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
3705
3706 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
3707
3708         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
3709         as the base of a PLUS.
3710
3711 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3712
3713         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
3714         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
3715         
3716 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
3717
3718         * pa.md (post_stw+1): Use pmode_register_operand.
3719         (dcacheflush, icacheflush): Likewise.
3720
3721         * i386.md (movstricthi_1): Allow r/r.
3722
3723 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
3724
3725         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
3726         to (not (and (arg0) (arg1))). Similary for and.
3727
3728         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
3729         falltrought to assocate code.
3730         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
3731         bits in common.
3732
3733         * combine.c (simplify_logical): Convert XOR to IOR if operands have
3734         no bits in common; remove XOR to ROTATE conversion.
3735
3736 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3737
3738         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
3739
3740 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3741
3742         * config/c4x/c4x.c (dst_operand): New.
3743         (PREDICATE_CODES): Update.
3744         * config/c4x/c4x.h (dst_operand): Declare it.
3745         * config/c4x/c4x.md:  Define mode for each unspec usage.
3746         (move patterns):  Use dst_operand predicate instead of src_operand.
3747         (movqi_update, movqf_update): Delete.
3748
3749 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
3750
3751         * recog.c (pmode_register_operand): New.
3752         * recog.h: Declare it.
3753         * genrecog.c (pred_codes): Likewise.
3754         (special_mode_pred_table): Likewise.
3755         (validate_pattern): Don't warn no mode for address_operand.
3756
3757         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
3758         if the operand is not insn-like.
3759
3760 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
3761                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
3762
3763         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
3764
3765 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
3766
3767         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
3768         instead of general_operand in a SET_DEST.  Use const_double_operand
3769         instead of an explicit test against CONST_DOUBLE.
3770         (movsf_const_lo): Add missing register mode.
3771         (goto_handler_and_restore): Add auxiliary test for Pmode.
3772         (flush): Adjust to use address_operand.
3773         (return_sf_no_fpu): Add missing output constraint.
3774
3775 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
3776
3777         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
3778         for call return value.
3779         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
3780
3781 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
3782
3783         * toplev.c (main): Only warn about options for other languages.
3784         * collect2.c (main): Pass -w to sub-gcc.
3785
3786 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
3787
3788         * flow.c (propagate_block): Add call-clobbered registers to
3789         significant too.
3790
3791         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
3792         zapping mem_set_list.
3793         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
3794         (mark_set_1, mark_used_regs): Likewise.
3795
3796 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
3797
3798         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
3799
3800 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3801
3802         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
3803         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
3804         options. Also add a new item "C-only Warning Options" to the
3805         option summary.
3806
3807 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
3808
3809         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
3810         from multiple calls.
3811
3812 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
3813
3814         * i386.md (call value patterns): Move to the end of the file.
3815         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
3816
3817 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
3818
3819         * configure.in (djgpp configuration): Define extra_objects..
3820         * configure: Rebuilt.
3821         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
3822         (DTORS_SECTION_ASM_OP): Define.
3823         (INIT_SECTION_ASM_OP): Define.
3824         (FINI_SECTION_ASM_OP): Define.
3825         (DATA_SECTION_ASM_OP): Define.
3826         (TEXT_SECTION_ASM_OP): Define.
3827         (EH_FRAME_SECTION_ASM_OP): Define.
3828         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
3829         (STARTFILE_SPEC): Add crtbegin.o.
3830         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
3831         to here from LINK_COMMAND_SPEC.
3832         (DO_GLOBAL_CTORS_BODY): Define.
3833         (CRTSTUFF_USE_FINI_SECTION): Define
3834         (HAS_INIT_SECTION): Delete.
3835
3836 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
3837
3838         * Makefile.in (all.cross): Depend on xcpp$(exeext).
3839
3840 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
3841
3842         * pa.h (PREDICATE_CODES): New.
3843
3844         * genrecog.c (validate_pattern): Condense the destination
3845         non-lvalue message.
3846
3847 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
3848
3849         * alpha.md (call-1): Supply missing mode for operator.
3850         (*): Add missing output reload constraints.  Remove constraints
3851         from define_splits.
3852
3853         * i386.h (SPECIAL_MODE_PREDICATES): New.
3854         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
3855         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
3856         (addsi_lea_3): Add missing mode for op 3.
3857         (prologue_set_got, prologue_get_pc): Add missing modes.
3858         (*) Add missing output reload constraints.
3859
3860 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
3861
3862         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
3863         check for member bit-size overflow and use var_size if it occurs.
3864         (layout_record): Use bitsize_int() to define the type size in bits.
3865         Likewise for computation and assignment to DECL_FIELD_BITPOS.
3866         (layout_decl): Likewise when assigning to DECL_SIZE.
3867
3868 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
3869
3870         * genrecog.c (validate_pattern): Typo last change.  Verify
3871         that output operands have output reloads.
3872
3873 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
3874
3875         * genrecog.c (special_mode_pred_table): New.
3876         (NUM_SPECIAL_MODE_PREDS): New.
3877         (find_operand): New.
3878         (validate_pattern): New argument `insn'.  Warn for assignment to
3879         any predicate accepting non-lvalues.  Conditionaly warn for
3880         match_operand without a mode.  Try much harder to match source
3881         and destination modes on a set.
3882         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
3883
3884 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
3885
3886         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
3887
3888 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
3889
3890         * combine.c (simplify_logical): Recognize xor pattern that encodes
3891         rotation.
3892
3893 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3894
3895         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
3896         alignment.
3897
3898 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
3899
3900         * ggc-page.c (MAP_FAILED): Provide default.
3901
3902 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
3903
3904         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
3905         * sparc.h (PREDICATE_CODES): Update.
3906
3907 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
3908
3909         * alpha.c (some_ni_operand): New.
3910         * alpha-protos.h: Declare it.
3911         * alpha.h (PREDICATE_CODES): Update.
3912         * alpha.md (sXaddq reload insns): Use some_ni_operand 
3913         for SET_DEST instead of some_operand.
3914
3915 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
3916                           Jim Wilson  <wilson@cygnus.com>
3917
3918         * genrecog.c (maybe_both_true_2): Don't compare modes of
3919         two DT_pred tests.
3920         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
3921         after find_afterward.
3922         (debug_decision_1): Dump next and afterward codes.
3923
3924 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
3925
3926         * rtl.c (dump_and_abort): Remove.
3927         (fatal_with_file_and_line): New.
3928         (fatal_expected_char): New.
3929         (read_rtx_lineno, read_rtx_filename): New.
3930         (read_skip_spaces): Track line number.
3931         (read_name): Use fatal_with_file_and_line.
3932         (read_rtx): Use fatal_expected_char.  Track line number.
3933         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
3934
3935         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
3936         if it isn't a CODE_LABEL.
3937
3938         * genattr.c (main): Set read_rtx_filename.
3939         * genattrtab.c (main): Likewise.
3940         * gencodes.c (main): Likewise.
3941         * genconfig.c (main): Likewise.
3942         * genemit.c (main): Likewise.
3943         * genextract.c (main): Likewise.
3944         * genflags.c (main): Likewise.
3945         * genopinit.c (main): Likewise.
3946         * genoutput.c (main): Likewise.
3947         * genpeep.c (main): Likewise.
3948
3949         * genrecog.c (decision_test.u.insn): Add `lineno'.
3950         (pattern_lineno, error_count): New variables.
3951         (message_with_line): New.
3952         (add_to_sequence): Break out checking code to ...
3953         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
3954         (merge_insn): Use message_with_line.
3955         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
3956         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
3957
3958 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3959
3960         * expr.c (store_constructor): Clear union if constructor is empty.
3961
3962 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
3963
3964         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
3965         Add !endian checks.  Change %{...} to %(...).
3966
3967 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
3968
3969         * i386.md (*addsi3_cc): Renamed from addcsi3.
3970         (*addsi3_carry): Renamed from addxsi3.
3971         (*subsi3_cc): Renamed from subcsi3.
3972         (*subsi3_carry): Renamed from subxsi3.
3973         (*xorqi_cc_1): Renamed from xorcqi_1.
3974         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
3975         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
3976
3977 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
3978
3979         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
3980         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
3981
3982 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
3983
3984         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
3985         climb up the chain of insns.
3986
3987 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
3988
3989         * genrecog.c (write_subroutine): Careful for null trees.
3990         (process_tree): Don't elide empty functions.
3991
3992 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
3993
3994         * Makefile.in (genrtl.o): Depend on ggc.h.
3995         * configure.in (valloc): Probe for it.
3996         (with-gc): Use ggc-page if valloc present.
3997         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
3998         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
3999         (ggc_alloc_string): Moved from ggc-page.c.
4000         * ggc-none.c (ggc_alloc_obj): New.
4001         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
4002         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
4003         (struct globals): Likewise for dev_zero_fd.
4004         (init_ggc): Likewise for it's initialization.
4005         (ggc_allocated_p): Move careful dereference from ...
4006         (ggc_lookup_page_table): ... here.  Delete.
4007         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
4008         (alloc_anon): Use valloc if no mmap.
4009         (release_pages): Use free if using valloc.
4010         (ggc_alloc_obj): Renamed from alloc_obj.
4011         (ggc_set_mark): Renamed from mark_obj.
4012         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
4013         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
4014         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
4015         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. 
4016         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
4017         (ggc_collect): Use fp printing instead of our own rounding.
4018         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
4019         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
4020         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
4021         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
4022         (struct ggc_string, struct ggc_any): Delete.
4023         (offsetof): Provide default definition.
4024         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
4025         (PTR_KEY): New.
4026         (struct ggc_mem): New, from corpse of ggc_any.
4027         (struct ggc_status): Delete.
4028         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
4029         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
4030         (n_strings_collected, n_anys_collected): Delete.
4031         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
4032         (ggc_alloc_string, ggc_alloc): Delete.
4033         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
4034         (ggc_free_string, ggc_free_any): Delete.
4035         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
4036         (ggc_compare_addresses, ggc_mark_string): Delete.
4037         (ggc_mark_string_if_gcable, ggc_mark): Delete.
4038         (search_data): Delete.
4039         (struct globals): New.
4040         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.   
4041         (tree_insert, tree_lookup): New.
4042         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
4043         (clear_marks, sweep_objs): New.
4044         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
4045         (init_ggc): Set allocated_last_gc.
4046         (ggc_push_context): Gut.  Use G.context.
4047         (ggc_pop_context): Likewise.
4048         (ggc_pop_context_1): New.
4049         (debug_ggc_tree): New.
4050         (debug_ggc_balance, tally_leaves): New.
4051         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
4052         (ggc_mark_string_if_gcable): Remove decl.
4053         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
4054         (ggc_mark_rtvec_children): New.
4055         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
4056         (ggc_mark_if_gcable): New decl.
4057         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
4058         (ggc_alloc_tree, ggc_alloc): Likewise.
4059         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
4060         (ggc_alloc_obj): New decl.
4061         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
4062         (ggc_alloc_tree, ggc_alloc): Likewise.
4063         (ggc_set_mark): New decl.
4064         * rtl.h (struct rtx_def): Remove gc_mark.
4065         (struct rtvec_def): Likewise.
4066         * tree.h (struct tree_common): Likewise.
4067
4068 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
4069
4070         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
4071         float_format and thread_file definitions.
4072         * configure: Rebuilt.
4073
4074 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
4075
4076         * extend.texi (Function Names): Document types of function names.
4077
4078 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4079
4080         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
4081         an earlyclobbered output conflict with RELOAD_INPUT reloads.
4082
4083 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4084
4085         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
4086
4087 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4088
4089         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
4090
4091 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
4092
4093         * collect2.c (main): Do prelimnary link on AIX if rflag.
4094
4095 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4096
4097         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
4098         __CTOR_LIST__ in opposite order, which is the correct order for sorted
4099         constructors.
4100         (__do_global_dtors): similarly for __DTOR_LIST__.
4101
4102 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4103                                 Diego Novillo <dnovillo@cygnus.com>
4104
4105         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
4106         FPUL_REGS.
4107
4108 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
4109
4110         * fixincl/*: Merged "no_bogosity" branch
4111         * fixincl/fixlib.h: protect against doubly defining t_bool
4112         * fixincl/server.h: protect against doubly defining t_bool
4113
4114 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
4115
4116         * genoutput.c: Include toplev.h.
4117
4118 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
4119
4120         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
4121         Undef.
4122         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
4123         * configure: Regenerate.
4124
4125 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
4126
4127         * gcse.c (delete_null_pointer_checks): Returns void.
4128
4129 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4130
4131         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
4132         * emit-rtl.c (copy_insn_1): Likewise.
4133
4134 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
4135
4136         * config/mips/mips.c (mips_build_va_list): Correct
4137         TREE_CHAIN setting when hard-float.
4138         (mips_va_start): Use corrected setting.
4139         (mips_va_arg): Likewise.  Also pass a tree to build of
4140         POSTINCREMENT_EXPR rather than a naked 'int'.
4141
4142 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
4143
4144         * ggc.h (ggc_push_context): Fix comment.
4145         (ggc_pop_context): Likewise.
4146         (mark_string_if_gcable): Likewise.
4147         * ggc-common.c (ggc_mark_rtx_children): Use
4148         ggc_mark_string_if_gcable.
4149         * ggc-page.c (ggc_lookup_page_table): New function.
4150         (ggc_allocated_p): Likewise.
4151         (mark_obj): Fix formatting.
4152         (ggc_mark_string_if_gcable): New function.
4153         * ggc-simple.c (ggc_allocated_strings): New variable.
4154         (ggc_strings_used): Likewise.
4155         (ggc_compare_addresses): New function.
4156         (ggc_pop_context): Pop the `any' memory too.
4157         (ggc_mark_string_if_gcable): New function.
4158         (ggc_collect): Initialize and tear down ggc_allocated_strings.
4159         
4160 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
4161
4162         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
4163         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
4164         * rs6000.c (expand_block_move): Match movstrsi_?reg register
4165         changes.
4166
4167 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
4168
4169         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
4170         (sched_reg_live_length, sched_reg_basic_block): Delete.
4171         (current_block_num, bb_live_regs, old_live_regs): Delete.
4172         (dead_notes, struct sometimes): Delete.
4173         (sched_note_set, birthing_insn_p): Delete.
4174         (adjust_priority): Gut useless reg lifetime code.
4175         (create_reg_dead_note, attach_deaths): Delete.
4176         (attach_deaths_insn, new_sometimes_live): Delete.
4177         (finish_sometimes_live): Delete.
4178         (find_pre_sched_live, find_post_sched_live): Delete.
4179         (update_reg_usage): Delete.
4180         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
4181         (schedule_insns): Delete reg lifetime code.
4182         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
4183         (unlink_other_notes): Adjust REG_NOTE commentary.
4184         (reemit_notes): Use REG_SAVE_NOTE.
4185         (schedule_block): Likewise.
4186         (schedule_region): Allocate bitmap of blocks in region.  Use
4187         count_or_remove_death_notes.  Use update_life_info.
4188
4189         * rtl.h (REG_SAVE_NOTE): New.
4190         * rtl.c (reg_note_name): Update.
4191         
4192 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
4193
4194         * combine.c (refresh_blocks, need_refresh): New.
4195         (combine_instructions): Allocate refresh_blocks.  Invoke
4196         update_life_info if needed.
4197         (distribute_notes): Mark refresh_blocks instead of installing
4198         USE insns.
4199         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
4200         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
4201
4202         * Makefile.in (recog.o): Depend on basic-block.h.
4203
4204 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
4205
4206         * genrecog.c (add_to_sequence): Thinko last change: delete
4207         shadowing allow_const_int variable.
4208
4209 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4210
4211         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
4212         __GNUC__ and __GNUC_MINOR__.
4213
4214         * gansidecl.h: Likewise.
4215
4216         * rtl.c: Likewise.
4217         
4218         * rtl.h: Likewise.
4219
4220         * toplev.h: Likewise.
4221
4222         * tree.c: Likewise.
4223
4224         * tree.h: Likewise.
4225
4226         * varray.c: Likewise.
4227
4228         * varray.h: Likewise.
4229
4230 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4231
4232         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
4233         use one before a jump table.
4234
4235         * rtl.def (ADDRESS): Change documentation to match reality.
4236         * md.texi: Don't document it.
4237         * gmicro.md (load address pattern): Use 'p' constraint, delete use
4238         of ADDRESS rtx.
4239
4240         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
4241
4242 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
4243
4244         * genrecog.c (add_to_sequence): Move allow_const_int test outside
4245         known predicate block; default allow_const_int true.
4246         (debug_decision_list): New.
4247
4248 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
4249
4250         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
4251
4252 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
4253
4254         * gcse.c (gcse_main): Avoid global optimizations if we have a
4255         large number of basic blocks and the ratio of edges to blocks
4256         is high.
4257         (delete_null_pointer_checks): Likewise.
4258
4259 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
4260
4261         * c-common.c (check_format_info): Warn if format string isn't a
4262         string literal.
4263
4264 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4265
4266         * configure.in (arm*-*-*): Don't let autoconf remove brackets
4267         * configure: regenerate
4268
4269 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
4270
4271         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
4272         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
4273         (peepholes): Re-enable.
4274
4275 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
4276
4277         * Makefile.in (flow.o): Depend on TREE_H.
4278         * basic-block.h (REG_SET_EQUAL_P): New.
4279         (XOR_REG_SET): New.
4280         (n_edges): Declare.
4281         (free_regset_vector): Remove declaration.
4282         (flow_delete_insn_chain): Declare.
4283         (enum update_life_extent): New.
4284         (update_life_info, count_or_remove_death_notes): Declare.
4285         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
4286         Verify register live at bb->global_live_at_start before adding USE.
4287         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
4288         (CLEAN_ALLOCA): New.
4289         (n_edges): New. 
4290         (PROP_*): New flags.
4291         (find_basic_blocks_1): Use alloc_EXPR_LIST.
4292         (clear_edges): Zero n_edges.
4293         (make_edge): Increment n_edges.
4294         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
4295         (flow_delete_insn_chain): Export.
4296         (delete_block): Decrement n_edges.
4297         (merge_blocks_nomove): Likewise.
4298         (life_analysis): Give life_analysis_1 PROP flags.
4299         (verify_wide_reg_1, verify_wide_reg): New.
4300         (verify_local_live_at_start): New.
4301         (update_life_info): Rewrite to call into propogate_block.
4302         (mark_reg): New.
4303         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
4304         always mark stack pointer.  Conditionally mark PIC register.
4305         After reload, mark call-saved registers, return regsiters.
4306         (life_analysis_1): Accept PROP flags not remove_dead_code.
4307         Call mark_regs_live_at_end before zeroing regs_ever_live.
4308         Use calculate_global_regs_live.  Copy global_live_at_end before
4309         calling final propagate_block.  Zero reg_next_use on exit.
4310         (calculate_global_regs_live): New.
4311         (allocate_bb_life_data): Don't allocate bb->local_set.
4312         (init_regset_vector, free_regset_vector): Remove.
4313         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
4314         Test flags before every operation.  Warn if prologue/epilogue insn
4315         would have been deleted.
4316         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
4317         Use alloc_EXPR_LIST.
4318         (mark_used_regs): Accept and use FLAGS, not FINAL.
4319         Remove special handling for RETURN.
4320         (try_pre_increment): Use alloc_EXPR_LIST.
4321         (dump_flow_info): Dump n_edges.
4322         (unlink_insn_chain, split_hard_reg_notes): Remove.
4323         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
4324         (find_insn_with_note, new_insn_dead_notes): Remove.
4325         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
4326         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
4327         (replace_insns): Remove.
4328         (count_or_remove_death_notes): New.
4329         (verify_flow_info): Abort on error after all checks.
4330         (remove_edge): Decrement n_edges.
4331         (remove_fake_edges): Tweek format.
4332         * haifa-sched.c (schedule_insns): Use split_all_insns.
4333         * output.h (update_life_info): Remove declaration.
4334         * recog.c (split_all_insns): From the corpse of split_block_insns,
4335         do the whole function block by block.  Use update_life_info.
4336         (recog_last_allowed_insn): New.
4337         (recog_next_insn): Mind it.
4338         (peephole2_optimize): Set it.  Walk backwards through blocks.
4339         Use update_life_info.
4340         * rtl.h (update_flow_info, replace_insns): Remove declarations.
4341         (split_all_insns): Declare.
4342         * toplev.c (rest_of_compilation): Thread prologue before flow2.
4343         Use split_all_insns.
4344
4345         * i386.md (or -1 peep2s): Disable.
4346
4347 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
4348
4349         * config/mips/mips.md (movstrsi+[123]) : Combine these into
4350         a single pattern.  Scrap the 'd' versions as unnecessary. 
4351
4352         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
4353         tablejump_mips162,tablejump_internal4): The operands to a
4354         label_ref must be VOIDmode.
4355
4356 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4357
4358         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
4359
4360 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
4361
4362         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
4363
4364 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
4365
4366         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
4367         cache every function if ggc_p.
4368
4369 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4370
4371         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
4372         instead of copy_rtx.  Accept sequences that contain asm statements.
4373         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
4374         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
4375         orig_asm_operands_vector, copy_asm_operands_vector,
4376         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
4377         variables.
4378         * rtl.h (copy_insn, copy_insn_1): Declare.
4379
4380 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4381
4382         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
4383
4384         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
4385         arguments to `current_file_function_operand'.
4386
4387         * genrecog.c: Include hard-reg-set.h and resource.h in the
4388         generated output file.
4389
4390         * real.c: Include tm_p.h.
4391
4392 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4393
4394         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
4395         output operand.
4396
4397 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
4398
4399         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
4400         before the fctiwz insn.
4401
4402 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4403                           Mark Mitchell  <mark@codesourcery.com>
4404
4405         * tree.c (make_lang_type_fn): New funtion pointer.
4406         (make_lang_type): Call it.
4407         * tree.h (make_lang_type): Declare.
4408         (make_lang_type_fn): Likewise.
4409         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
4410
4411 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
4412
4413         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
4414         make sure that HIGH instructions are copied into BASE_REGS.
4415
4416 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
4417
4418         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
4419
4420 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
4421
4422         * c-decl.c (finish_struct): Use simpler method of
4423         removing elements of a singly-linked list.
4424
4425 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
4426
4427         * alpha.md (peephole2's): Comment out peephole2's that generate
4428         buggy code.
4429
4430 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
4431
4432         * genrecog.c (add_to_sequence): Disable mode check for
4433         wildcard matches.
4434
4435 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4436
4437         * ggc-simple.c (init_ggc): Set empty_string.
4438
4439 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
4440
4441         * configure.in: Detect mmap.  Add --with-gc=foo to select
4442         garbage collector; default to page if mmap available.
4443         * Makefile.in (GGC): Substitute.
4444
4445 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
4446
4447         * c-decl.c (ggc_p): Enable.
4448
4449 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4450
4451         * flow.c (verify_flow_info): Make it extern & unconditionally define.
4452
4453 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
4454
4455         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
4456         string for little-endian-data.
4457
4458 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
4459
4460         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
4461         case somebody tries to compile --enable-checking code with gcc
4462         1.34 or such.
4463
4464 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
4465
4466         * genrecog.c (add_to_sequence): Verify operand to label_ref is
4467         VOIDmode.
4468
4469 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
4470
4471         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
4472         * jump.c (jump_optimize_1): Document why.
4473
4474 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4475
4476         * collect2.c (scan_prog_file, scan_libraries): Prototype function
4477         pointers and casts for `int_handler' and `quit_handler'.
4478
4479         * flow.c (verify_flow_info, split_hard_reg_notes,
4480         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
4481         remove_edge, remove_fake_successors): Add static prototypes.
4482         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
4483         (mark_set_1): Initialize variable `regno'.
4484         (unlink_insn_chain): Likewise for variable `curr'.
4485         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
4486
4487         * loop.c (strength_reduce): Initialize variable
4488         `unrolled_insn_copies'.
4489         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
4490         prototypes.  Change these functions to take const PTR parameters
4491         to avoid prototype conflict when used as the comparson argument
4492         for qsort.
4493         (check_dbra_loop): Initialize variable `comparison_val'.
4494
4495         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
4496         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
4497         (find_valid_class): Initialize variable `best_class'.
4498         (find_reloads): Call memcpy, not bcopy.
4499
4500         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
4501         (hard_reg_use_compare): Don't needlessly cast away const.
4502         (reload_reg_class_lower): Likewise.
4503         (choose_reload_regs): Initialize variable `regno'.
4504
4505 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
4506
4507         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
4508
4509 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
4510
4511         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
4512         ({,d}discard): Add forward declarations.  Declare parameter as
4513         unused.
4514         (main_without_main): Explicitly declare return type to be int.
4515         (memcpy): Properly declare.
4516
4517         * libgcc2.c (toplevel): If inhibit_libc is defined and not
4518         building the trampoline support, declare malloc, free, and
4519         atexit.
4520         (__clear_cache): Mark arguments as potentially unused.
4521         
4522         * frame.c (toplevel): If inhibit_libc is defined, declare
4523         malloc and free.
4524
4525 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
4526
4527         * flow.c (make_edge): Accept an optional 2D bitmap in which
4528         to cache edge existence.  Update all callers.
4529         (make_label_edge, make_eh_edge): Pass through the edge cache.
4530         (make_edges): Provide the cache.
4531
4532 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4533
4534         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
4535         a char*.
4536         (local_mbtowc): Change the type of variable `i' from int to size_t.
4537
4538         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
4539         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
4540
4541 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
4542
4543         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
4544         after other includes that define the appropriate types.  Include
4545         tm_p.h for getting user prototypes.
4546         * ggc-callbacks.c (toplevel): Ditto.
4547         * ggc-none.c (toplevel): Ditto.
4548         * gcc-page.c (toplevel): Ditto.
4549         * ggc-simple.c (toplevel): Ditto.
4550
4551 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
4552                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
4553
4554         * config/mips/mips.c (mips_move_2words): Split doubles if
4555         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
4556
4557 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
4558
4559         * genrecog.c (struct decision_test): New.
4560         (struct decision): Remove test-related members, sort the rest by size.
4561         (IS_SPLIT): Simplify.
4562         (new_decision, new_decision_test): New.
4563         (add_to_sequence): Use them.  No special handling for args of
4564         non-MATCH codes.
4565         (maybe_both_true): Renamed from not_both_true; return sense changed.
4566         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
4567         of maybe_both_true and adjusted for decision_test.
4568         (position_merit): Remove.
4569         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
4570         (merge_accept_insn): New, broken out of merge_trees.
4571         (merge_trees): Use them.  No special case for c_test; no node
4572         splitting; use test type instead of position_merit.
4573         (factor_tests): New.
4574         (simplify_tests): New.
4575         (break_out_subroutines): Don't write code now.
4576         (find_afterward): New.
4577         (write_afterward, write_switch, write_cond): New.
4578         (write_action, is_unconditional): New.
4579         (write_node): New.  Use them.
4580         (write_tree_1): Rewrite.  Use the new functions above.
4581         (write_tree): Remove afterward processing.
4582         (write_subroutine): Simplify function variant emission.
4583         (write_subroutines): New.
4584         (same_codes, clear_codes): Remove.
4585         (same_modes, clear_modes): Remove.
4586         (write_header): New, broken out of main.
4587         (make_insn_sequence): Use new_decision and new_decision_test.
4588         (process_tree): New, broken out of main.
4589         (main): Adjust for merge_trees interface change. 
4590         Don't #define operands in the output file.
4591         (record_insn_name): New, broken out of make_insn_sequence.
4592         (debug_decision_2, debug_decision_1, debug_decision_0): New.
4593         (debug_decision): New.
4594
4595 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
4596
4597         * resource.c (find_free_register): Mark class_str argument const.
4598         * resource.h: Update prototype to match.
4599
4600         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
4601         * i386.md: Give all anonymous insns names.
4602
4603 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
4604
4605         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
4606         blocks.
4607
4608 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
4609
4610         * toplev.c (dbr_sched_time): Unconditional.
4611         (peephole2_time): New.
4612         (compile_file): Add pass numbers to all of the dump file suffixes.
4613         Dump peephole2_time.  Don't dump times for non-applicable passes.
4614         (rest_of_compilation): Add pass numbers to dump file suffixes.
4615         Conditionalize calls to the scheduler.
4616         * invoke.texi: Update.
4617
4618 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
4619
4620         * flow.c (make_edges): Fix insn iteration.
4621         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
4622         (find_basic_blocks_1): Fix spelling mistake.
4623
4624 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
4625
4626         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
4627         always have side-effects.  Use memset not bzero.
4628         (make_node): Likewise.
4629
4630 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
4631
4632         * stmt.c (expand_anon_union_decl): When any of the elements of the
4633         union is addressable, so is the entire union.
4634
4635 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
4636
4637         * sbitmap.c (sbitmap_ones): Don't set too many bits.
4638
4639         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
4640         * bitmap.c (bitmap_operation): Return true iff TO changed.
4641         (bitmap_equal_p): New.
4642         (bitmap_bit_p): Tidy arithmetic.
4643         (debug_bitmap_file): Likewise.
4644
4645 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
4646
4647         * toplev.c (rest_of_compilation): Turn on cse_not_expected
4648         before cse2 instead of after.
4649
4650 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
4651
4652         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
4653         register offsets. 
4654
4655 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4656
4657         * cppinit.c (is_idchar initializer): Loosen tests to accept
4658         gcc 2.>6 and >2.
4659
4660 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
4661
4662         * mips.md: Define conditional move patterns for floating point
4663         operands and DI mode conditions.
4664
4665 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
4666
4667         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
4668         always have side-effects.
4669
4670 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
4671
4672         * mn10200.c (asm_file_start): Fix typo.
4673
4674         * cppinit.c (is_idchar initializer): Tighten tests for when
4675         to put the table into initialized memory.
4676
4677         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
4678         not an array of rtunion.
4679         * gcc-page.c (ggc_alloc_rtvec): Similarly.
4680         * gcc-simple (ggc_free_rtvec): Similarly.
4681
4682         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
4683         of rtunions.
4684
4685         * mbchar.h: Add missing #endif.
4686
4687         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
4688         (FPBIT, DPBIT): Define.
4689
4690 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4691
4692         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
4693
4694         * profile.c (instrument_arcs, output_gcov_string,
4695         tablejump_entry_p): Add static prototypes.
4696         (output_gcov_string): Constify a char*.
4697         
4698         * regmove.c (replacement_quality, fixup_match_2): Add static
4699         prototypes.
4700
4701         * resource.h (reg_dead_p): Add extern prototype.
4702
4703         * rtl.c (trim_filename): Add static prototype.
4704
4705         * scan-decls.c (skip_to_closing_brace): Likewise.
4706
4707         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
4708         (expand_end_case): Initialize variable `range'.
4709         (emit_case_nodes): Remove unused prototype `rtx_fn'.
4710
4711         * varasm.c (asm_emit_uninitialised): Add static prototype.
4712         (asm_emit_uninitialised, assemble_variable): Mark parameter with
4713         ATTRIBUTE_UNUSED.
4714
4715 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4716
4717         * cpplib.c (if_directive_nameo): Add static prototype.
4718
4719         * cse.c (cse_insn): Remove unused variable `p'.
4720
4721         * except.c (create_rethrow_ref, push_entry,
4722         receive_exception_label, new_eh_region_entry, find_func_region,
4723         clear_function_eh_region, process_nestinfo): Add static prototypes.
4724         (get_reg_for_handler): Hide definition.
4725         (process_nestinfo): Initialize variable `extra_handlers'.
4726
4727         * expr.h (expand_builtin_longjmp): Add extern prototype.
4728
4729         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
4730
4731         * function.c (prepare_function_start): Likewise.
4732         (pop_function_context_from): Mark parameter `context' with
4733         ATTRIBUTE_UNUSED.
4734         (push_temp_slots_for_block, flush_addressof): Hide definition.
4735         
4736         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
4737         solve_program_flow_graph, calculate_branch_probs,
4738         function_summary, main, fancy_abort): Add prototypes.
4739
4740         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
4741         (add_hash): Constify a char*.
4742
4743         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
4744         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
4745         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
4746
4747         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
4748
4749         * lists.c (free_list, zap_lists): Likewise.
4750
4751 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4752
4753         * alias.c (nonlocal_reference_p): Add static prototype.
4754
4755         * bitmap.c (bitmap_element_allocate): Prototype args in function
4756         pointer cast.
4757
4758         * builtins.c (stabilize_va_list): Add static prototype.
4759         (expand_builtin_va_arg): Constify a char*.
4760         
4761         * c-lex.c (getch, put_back, extend_token_buffer_to,
4762         read_line_number, token_getch, token_put_back): Add static
4763         prototypes.
4764
4765         * c-parse.gperf (hash, is_reserved_word): Likewise.
4766
4767         * cccp.c (is_dir_separator): Likewise.
4768
4769 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4770
4771         * graph.h: New file to prototype functions exported by graph.c.
4772
4773         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
4774
4775         * graph.c: Include graph.h.
4776
4777         * toplev.c: Likewise.  Remove redundant prototypes.
4778
4779 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
4780
4781         * invoke.texi: Removed duplicated description for -Q.
4782
4783 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
4784
4785         * extend.texi: Grammar fix in __extension__ text.
4786
4787 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
4788
4789         * md.texi (define_peephole2): New section.
4790
4791 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
4792
4793         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
4794         (mov $-1 to or peepholer): Enable for pentium when optimizing for
4795         speed.
4796
4797 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
4798
4799         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
4800
4801 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
4802
4803         * i386.md (ffs expander): Emit Pentium friendly code for
4804         TARGET_PENTIUM.
4805
4806 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
4807
4808         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
4809         for non-trees.
4810         (build1): Likewise.
4811         
4812 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4813
4814         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
4815
4816 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
4817
4818         * config/m68k/m68k.c (use_return_insn): Return false if the pic
4819         register is in use.
4820
4821 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4822
4823         * md.texi (No Constraints): Delete section.
4824         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
4825         * final.c (final_scan_insn): We always have register constraints.
4826         * genattrtab.c: Don't include "insn-config.h".
4827         (write_attr_case): We always have register constraints.
4828         * genconfig.c (register_constraint_flag): Delete.
4829         (walk_insn_part): Don't check whether we have register constraints.
4830         (main): Don't write out "#define REGISTER_CONSTRAINTS".
4831         * genoutput.c (have_constraints): Delete.
4832         (main): Don't set it.
4833         (output_operand_data): We always have constraints.
4834         (scan_operands): Likewise.
4835         (compare_operands): Likewise.
4836         * local-alloc.c (block_alloc): We always have constraints.
4837         (requires_inout): Always compile this function.
4838         * recog.c (extract_insn): We always have constraints.
4839         (constrain_operands, reg_fits_class_p): Always compile these
4840         functions.
4841         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
4842         fields.
4843         (struct insn_operand_data): Likewise.
4844         * regclass.c (regclass): We always have constraints.
4845         (record_reg_classes, copy_cost, record_address_regs,
4846         auto_inc_dec_reg_p): Always compile these functions.
4847         * regmove.c (regmove_optimize): We always have constraints.
4848         * reload.c (find_reloads): Likewise.
4849         * reload1.c (reload): Likewise.
4850         (reload_cse_simplify_operands): Likewise.
4851         * i860.c (output_delay_insn): Likewise.
4852
4853 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
4854
4855         * iris6.h (BUILD_VA_LIST_TYPE): Define.
4856
4857 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4858
4859         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
4860         for the va_list record.
4861
4862 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
4863
4864         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
4865         prologues.
4866
4867 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
4868
4869         * alias.c: Include insn-flags.h.
4870         * Makefile.in (alias.o): Update.
4871
4872 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
4873
4874         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
4875         to LTU and GEU.  Handle more cases using sbb.
4876
4877 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
4878
4879         * i386.md (truncatexfdf splitters): Do not use subreg.
4880         (fop XFmode patterns): Fix mode in operand testing.
4881
4882 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
4883
4884         * jump.c (jump_optimize_1): Amend last change to test only the
4885         form of the operand, not the insn.
4886
4887         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
4888         not register_operand to determine when B may need preloading.
4889
4890 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
4891
4892         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
4893         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
4894         (call-value patterns): Move to end of file.
4895         (*): Remove mode from label_ref in (pc) context.
4896         (movstrqi): Use memory not general_operand for BLKmode operands.
4897         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
4898         to register_operand operands.
4899         (peep2 patterns): Convert from commented-out peephole patterns.
4900
4901 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4902
4903         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
4904         to BUILT_IN_INIT_DWARF_REG_SIZES.
4905         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
4906         Renamed from BUILT_IN_DWARF_REG_SIZE; call
4907         expand_builtin_init_dwarf_reg_sizes.
4908         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
4909         with __builtin_init_dwarf_reg_size_table.
4910         * dwarf2out.c (struct reg_size_range): Delete.
4911         (expand_builtin_init_dwarf_reg_sizes): New function.
4912         (expand_builtin_dwarf_reg_size): Delete.
4913         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
4914         (expand_builtin_dwarf_reg_size): Don't declare.
4915         * libgcc2.c (dwarf_reg_size_table_initialized): New.
4916         (dwarf_reg_size_table): New.
4917         (init_reg_size_table): New function.
4918         (copy_reg): Use dwarf_reg_size_table.
4919         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
4920         before use.
4921
4922 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
4923
4924         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
4925         Correctly build argument list to constructor and destructor functions.
4926
4927 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
4928
4929         * c-tree.h (warn_float_equal): Declare.
4930         * c-decl.c (warn_float_equal): Define.
4931         (c_decode_option): Recognize -W[no-]float-equal.
4932         * c-typeck.c (build_binary_op): Conditionally warn
4933         about equality tests of floating point types.
4934         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
4935         * invoke.texi: Add docs for -Wfloat-equal warning.
4936
4937 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
4938
4939         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
4940         generating RTL directly.
4941         * mips.h (INIT_TARGET_OPTABS): Likewise.
4942         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
4943
4944         * expr.h (init_mov_optab): Delete declaration
4945
4946         * h8300.c (WORD_REG_USED): Update to avoid useless register
4947         saves in interrupt functions and functions which never return.
4948
4949         * cse.c (struct set): Delete inner_dest_loc field. 
4950         (cse_insn): Remove assignments to inner_dest_loc field.
4951
4952 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
4953
4954         * ggc-page.c: Don't include <unistd.h> etc taken care of
4955         by "system.h".  Include <sys/mman.h> afterward.
4956
4957 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
4958
4959         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
4960         ggc_alloc_string.
4961
4962 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
4963
4964         * xcoffout.c (xcoffout_declare_function): Add documentation.
4965         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
4966         TARGET_64BIT.  Compare constant to -1, not bit pattern.
4967         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
4968         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
4969         gen_movsi typos.
4970
4971 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
4972
4973         * dwarf2out.c (add_abstract_origin_attribute): Abort if
4974         origin_die is NULL.
4975         (gen_inlined_enumeration_type_die): Do not abort if the type has
4976         not been writeen out.
4977         (gen_inlined_structure_type_die): Do not abort if the type has
4978         not been writeen out.
4979         (gen_inlined_union_type_die): Do not abort if the type has
4980         not been writeen out.
4981         (gen_tagged_type_instantiation_die): Do not abort if the type
4982         has not been written out.
4983
4984 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4985
4986         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
4987         call it.
4988         * reg-stack.c (straighten_stack): Copy hard reg set with
4989         COPY_HARD_REG_SET.
4990
4991 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
4992
4993         * builtins.c (stabilize_va_list): Stabilize array type va_list
4994         to a pointer type, not the base record type.
4995         (expand_builtin_va_copy): Dereference the pointers explicitly;
4996         use the correct size for the copy.
4997
4998         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
4999         (rs6000_va_arg): Likewise.
5000
5001 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
5002
5003         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
5004
5005 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
5006
5007         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
5008         field.
5009         (DECL_BUILT_IN_CLASS): Adjust accordingly.
5010
5011 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
5012
5013         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
5014         (init_ggc): Use it instead of a constant.
5015         (ggc_collect): Bound allocated_last_gc by it.
5016
5017 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
5018
5019         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
5020         with va_list.
5021
5022 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
5023
5024         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
5025         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
5026         * configure:  Regen.
5027         * config/mips/openbsd.h:  New, OpenBSD little endian target.
5028         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
5029         * config/mips/xm-openbsd.h:  New, OpenBSD host.
5030
5031 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
5032
5033         * config/m68k/m68k.c (output_function_prologue,
5034         output_function_epilogue): Use
5035         current_function_uses_pic_offset_table instead of regs_ever_live
5036         to decide whether to save/restore pic register.
5037         (legitimize_pic_address): Don't modify regs_ever_live any more.
5038
5039 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
5040
5041         * function.h (struct function): Add x_dont_save_pending_sizes_p.
5042         * stor-layout.c (variable_size): Don't add sizes to the pending
5043         sizes list if x_dont_save_pending_sizes_p is set.
5044         
5045 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
5046
5047         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
5048         for symbolic_operand().
5049         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
5050
5051 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5052
5053         * combine.c (gen_rtx_combine): Add missing call to va_end().
5054
5055         * final.c (asm_fprintf): Likewise.
5056
5057         * genattrtab.c (attr_rtx): Likewise.
5058
5059 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
5060
5061         * cse.c: Update comments.
5062         (cse_insn): When converting a conditional/computed jump into
5063         an unconditional jump, always make sure a BARRIER immediately
5064         follows the converted jump.  Do not delete unreachable code.
5065         (cse_basic_block): Do not delete unreachable code.
5066         * toplev.c (rest_of_compilation): Move call to 
5067         delete_trivially_dead_insns after the conditional call to
5068         jump_optimize.
5069
5070 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5071
5072         * collect2.c (make_temp_file): Don't prototype.
5073
5074         * gcc.c (make_temp_file): Likewise.
5075
5076         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
5077
5078 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
5079
5080         * varasm.c (asm_emit_uninitialised): New function: Generate
5081         the assembler statements necessary to declare an uninitialised 
5082         variable.
5083         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
5084         variable.
5085         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
5086         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
5087         section.
5088         (assemble_variable): Use asm_emit_uninitialised to emit an
5089         uninitialised variable.
5090
5091 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
5092
5093         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
5094         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
5095         <geoffk@cygnus.com>.
5096
5097 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5098
5099         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
5100         * c-common.h (builtin_function): Don't declare.
5101
5102         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
5103         DECL_BUILT_IN.
5104         (pushdecl): Likewise.
5105         (finish_decl): Likewise.
5106         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
5107         int.  All callers changed.
5108         Set the builtin's DECL_BUILT_IN_CLASS.
5109         * tree.h (enum built_in_class): New.
5110         (enum built_in_function): Delete NOT_BUILT_IN.
5111         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
5112         in a union.
5113         (DECL_SET_FUNCTION_CODE): Likewise.
5114         (DECL_BUILT_IN_CLASS): New macro.
5115         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
5116         (struct tree_decl): Split builtin function code field into a
5117         struct.
5118         (builtin_function): Declare.
5119
5120 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
5121
5122         * optabs.c (init_traps): Fix typo in last change.
5123
5124 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
5125
5126         * toplev.c (rest_of_decl_compilation): Update comment.
5127
5128 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
5129
5130         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
5131         in .sbss if appropriate.
5132         (EXTRA_SECTION_FUNCTIONS): Add sbss.
5133         (SBSS_SECTION_ASM_OP): New macro.
5134         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
5135         (EXTRA_SECTIONS): Add in_sbss.
5136         * config/mips/mips.h: Prototype sbss_section.
5137
5138 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
5139
5140         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
5141         to disappear.
5142
5143 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
5144
5145         * optabs.c (init_traps): Register trap_rtx as a GC root.
5146
5147 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5148
5149         * config/mips/mips.c (function_arg_pass_by_reference): Define
5150         unconditionally, since it's called unconditionally.
5151
5152 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
5153
5154         * toplev.c (documented_lang_options): Add -fshort-wchar.
5155         * c-decl.c (c_decode_option): Likewise.
5156         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
5157         for wchar_t.
5158         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
5159         * gcc.c (default_compilers): If -fshort-wchar, 
5160         override __WCHAR_TYPE__.
5161         * tm.texi (C Dialect Options): Add -fshort-wchar.
5162
5163         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
5164         symbol for a variable.
5165
5166         * cpplib.h (CPP_PREPROCESSED): New macro.
5167         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
5168         we're seeing this input for a second time.
5169
5170 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
5171
5172         * emit-rtl.c (init_emit_once): Initialize modes first.
5173
5174 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
5175
5176         * config/i386/i386.c (pic_label_name): Change to char pointer.
5177         (global_offset_table): New variable.
5178         (load_pic_register): Fill global_offset_table if it hasn't
5179         already been done.  Allocate pic_label_name dynamically.
5180         * ggc.h (empty_string): New variable.
5181         * ggc-simple.c (empty_string): Likewise.
5182         (init_ggc): Allocate empty_string and add as root.
5183         * stmt.c (digit_strings): New variable.
5184         (init_stmt): Add last_block_end_note as root.  Allocate and
5185         initialize digit_strings. 
5186         (expand_asm_operands): Use empty_string instead of string
5187         constant.  Use digit_strings instead of string constants.
5188         * profile.c (init_arc_profiler): Allocate string with
5189         ggc_alloc_string instead of xmalloc.
5190         (output_func_start_profiler): Likewise.
5191         * c-typeck.c (digest_init): Check if init is error_mark_node.
5192
5193 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
5194                           Richard Henderson  <rth@cygnus.com>
5195
5196         * ggc-page.c: New file.
5197         * Makefile.in (ggc-page.o): New.
5198
5199 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
5200
5201         * invoke.texi: Document -fdelete-null-pointer-checks
5202         * toplev.c (flag_delete_null_pointer_checks): New.
5203         (f_options): Add entry for -fdelete-null-pointer-checks.
5204         (rest_of_compilation): Conditionalize null pointer check
5205         elimination on flag_delete_null_pointer_checks.
5206         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
5207
5208 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
5209
5210         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
5211         copyright notice and special exception to GPL.
5212
5213 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5214
5215         * abi64.h (mips_function_value): Add prototype arguments.
5216
5217         * mips-protos.h: New file with mips prototypes.
5218
5219         * mips.c: Include "tm_p.h".
5220         (mktemp, lookup_name): Add prototype arguments.
5221         (extern_list, string_constant, mips_fill_delay_slot,
5222         mips_output_external, mips_output_external_libcall,
5223         mips_output_filename, mips_declare_object, function_prologue,
5224         mips_expand_prologue, function_epilogue, mips16_constant,
5225         build_mips16_function_stub, mips_output_conditional_branch):
5226         Constify a char*.
5227         (mips_va_start): Remove unused variable `u'.
5228         (mips_va_arg): Cast value to unsigned when comparing against one.
5229         (trace): Delete.
5230         (save_restore_insns, mips_expand_prologue): Add missing arg in
5231         call to `large_int'.
5232
5233         * mips.h: Move prototypes to mips-protos.h.
5234         (data_section, memory_address_p, rdata_section,
5235         readonly_data_section, simple_epilogue_p, text_section): Delete
5236         prototypes delcared elsewhere.
5237         (mips_epilogue_delay_slots, print_options): Delete unused decls.
5238         (trace): Delete.
5239         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
5240
5241         * mips.md: Delete extra args in call to `mips_move_2words'.
5242
5243         * xm-iris6.h (alloca): Add prototype argument.
5244
5245         * genpeep.c: Include "tm_p.h" in generated output file.
5246
5247 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5248
5249         * basic-block.h (find_edge_index): Change parameters.
5250         * flow.c (verify_edge_list): Pass basic_block parameters to
5251         find_edge_index instead of integers.
5252
5253 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
5254
5255         * combine.c (simplify_comparison): Use an unsigned shift to adjust
5256         the constant.
5257
5258 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
5259
5260         * gcc.1: Fix a formatting error.
5261
5262 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5263
5264         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
5265         i786, mn10200, mn10300, pdp11, v850.
5266
5267 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
5268
5269         * libgcc2.c (num_digits): Add prototype with 
5270         __attribute__((const)).
5271         (__terminate): Add prototype.
5272
5273 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
5274
5275         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
5276
5277         * alpha/alpha.c (print_operand): Fix type of `code'.
5278         (alpha_output_filename): Constify.
5279         * alpha/alpha.h: Move all function declarations ...
5280         * alpha/alpha-protos.h: ... here.  New file.
5281         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
5282         (SECTION_FUNCTION_TEMPLATE): Likewise.
5283
5284 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5285
5286         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
5287         * expr.c (expand_expr): Likewise.
5288         (do_jump): Likewise.
5289         (do_store_flag): Pass ccp_store_flag to can_compare_p.
5290         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
5291         accessor macros.
5292         (enum can_compare_purpose): New.
5293         (can_compare_p): Adjust prototype.
5294         (prepare_cmp_insn, prepare_operand): Declare.
5295         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
5296         * optabs.c (cmp_available_p): Deleted.
5297         (expand_abs): Pass ccp_jump to can_compare_p.
5298         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
5299         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
5300         Call can_compare_p rather than cmp_available_p.
5301         (prepare_operand): No longer static.
5302         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
5303         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
5304         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
5305         sequence to use emit_cmp_and_jump_insns.
5306         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
5307
5308 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
5309
5310         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
5311         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
5312         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
5313         (plus (reg) (const_int 0))
5314         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
5315         
5316 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
5317
5318         * rs6000.c (expand_block_move): DImode loads and stores require
5319         word-aligned displacements.  Increment address registers with
5320         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
5321
5322 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
5323
5324         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
5325         is no name for the base type, rather than segfault.  If we are
5326         writing out a complex integer type, use DW_ATE_lo_user.
5327
5328         * expr.c (emit_move_insn_1): If we are copying a complex that fits
5329         in one word or less (complex char, complex short, or on 64 bit
5330         systems complex float) to/from a hard register, copy it through
5331         memory instead of dying in gen_{real,imag}part.  If we have a
5332         short complex type, prevent inlining since it allocates stack
5333         memory.
5334
5335         * tree.c (build_complex_type): If we are writing dwarf2 output,
5336         generate a name for complex integer types.
5337
5338 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5339
5340         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
5341         * flow.c (remove_edge): Remove extra whitespace.
5342         (remove_fake_edges): Fix comment.
5343         (add_noreturn_fake_exit_edges): Use the correct name.
5344
5345 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
5346
5347         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
5348         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
5349         (clean): Depend on INTL_CLEAN.
5350         (maintainer-clean): Adjust.
5351
5352 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5353
5354         * configure.in (AC_PREREQ): Bump to 2.13.
5355         (AC_C_STRINGIZE): Call this instead of using a custom macro.
5356
5357         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
5358
5359         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
5360
5361         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
5362
5363         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
5364         (HAVE_STRINGIZE): Define.
5365
5366 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
5367
5368         * c-parse.in: save and restore warn_pointer_arith on __extension__
5369         along with pedantic.
5370         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
5371         Set the type of extension to itype rather than $<itype>1 kludge.
5372         * extend.texi (Alternate Keywords): Adjust documentation.
5373         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
5374
5375 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
5376
5377         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
5378         most assembler templates.
5379
5380         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
5381         FP loads and stores.
5382         (following_call): Always return zero for the PA8000.
5383         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
5384         FP loads and stores.
5385         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
5386
5387         * pa.h (BRANCH_COST): Define.
5388
5389         * pa.md (return, return_internal): Use bve for PA2.0.
5390
5391         * pa.md (fused multiply): Add variants which reduce height for the
5392         fused multiply, but which still generate 2 insns.
5393         (fnegabs): Similarly.
5394
5395         * pa.md (subsi3): Turn into an expander.  Create two anonymous
5396         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
5397         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
5398
5399         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
5400         for TARGET_PA_20.
5401         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
5402         code generation.
5403         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
5404         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
5405
5406         * regclass.c (init_regs): Add "top_of_stack" as a garbage
5407         collection root.
5408
5409         * flow.c (record_active_eh_regions): Terminate loop after finding
5410         the last insn in the last basic block.
5411
5412 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5413
5414         * config/c4x/c4x.md: Delete parallel instruction peepholes.
5415
5416 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5417
5418         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
5419
5420 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5421
5422         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
5423         splitting to not use output template.
5424
5425 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5426
5427         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
5428         * config/c4x/c4x.c (c4x_va_start): New function.
5429
5430 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
5431
5432         * genrecog.c (not_both_true): Handle correctly cases when called for
5433         tests with different positions in the insn.
5434
5435 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5436
5437         * machmode.h (HOST_PTR_PRINTF): Move from here ...
5438
5439         * system.h (HOST_PTR_PRINTF): ... to here.
5440
5441         * mips-tfile.c: Don't include machmode.h.
5442
5443         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
5444         (mips-tfile.o): Don't depend on machmode.h.
5445
5446 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5447
5448         * haifa-sched.c (sched_analyze): Rename local variable `region' to
5449         avoid conflicts with typedef struct `region' at the top level scope.
5450
5451 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
5452
5453         * basic-block.h (basic_block): Add eh_beg, eh_end.
5454         * flow.c (entry_exit_blocks): Update.
5455         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
5456         Call new functions.
5457         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
5458         lists.c functions to allocate insn lists.
5459         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
5460         edge creation ...
5461         (make_eh_edge): ... here.  New.
5462         (move_stray_eh_region_notes): New.
5463         (record_active_eh_regions): New.
5464         (delete_unreachable_blocks): Split out block merging ...
5465         (try_merge_blocks): ... here.  New.
5466         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
5467         Dump debugging data.
5468         (merge_blocks_move_successor_nojumps): Likewise.
5469         (merge_blocks): Use eh_beg+eh_end to validate block movement.
5470
5471 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5472
5473         * extend.texi (Bound member functions): Document unbound pmf
5474         conversion.
5475
5476 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5477
5478         * flow.c (split_edge): Handle insertion on a fallthrough edge which
5479         has the EXIT_BLOCK as a dest.
5480
5481 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5482
5483         * flow.c (remove_edge): New function to remove an edge from the 
5484         flow graph.
5485         (remove_fake_successors): New function to remove fake successor edges.
5486         (remove_fake_edges): New function to remove all fake edges from the
5487         flow graph.
5488         (add_fake_exit_edges): New function to add fake edges from all blocks
5489         with no successors to the exit block.
5490         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
5491         prototypes for new functions.
5492
5493 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5494
5495         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
5496         Use Pmode to determine whether to output .dword or .word.
5497
5498 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
5499
5500         * tree.c (built_in_filename): New variable.
5501         (BUILT_IN_FILENAME): New macro.
5502         (init_tree_codes): Allocate built_in_filename.
5503         (make_node): Use built_in_filename instead of string constant.
5504
5505 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
5506
5507         * configure.in: Add fr30 target.
5508         * configure: Regenerate.
5509         * config/fr30: New directory.
5510         * config/fr30/crti.asm: New file.
5511         * config/fr30/fr30.c: New file.
5512         * config/fr30/crtn.asm: New file.
5513         * config/fr30/fr30.h: New file.
5514         * config/fr30/fr30.md: New file.
5515         * config/fr30/lib1funcs.asm: New file.
5516         * config/fr30/t-fr30: New file.
5517         * config/fr30/xm-fr30.h: New file.
5518
5519 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
5520
5521         * flow.c (merge_blocks_move_successor_nojumps): Delete the
5522         BARRIER at the end of the successor, not the BARRIER before
5523         the successor.
5524
5525         * pa.c (pa_add_gc_roots): Fix thinko in last change.
5526
5527 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
5528
5529         * stmt.c (any_pending_cleanups): Don't crash when 
5530         current_function->stmt is unset.
5531
5532 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5533
5534         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
5535         other initializations that may use it for relative offsets.
5536
5537 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5538
5539         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
5540         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
5541         * config/i386/sol2dbg.h: Removed.
5542         * config/i386/sol2gas.h: New file, to enable gas work-around.
5543         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
5544         Don't use sol2dbg.h.
5545         * configure: Rebuilt.
5546
5547 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
5548
5549         * invoke.texi (-fthis-is-variable): Remove documentation.
5550
5551 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
5552
5553         * basic-block.h (compute_bb_for_insn): Declare.
5554         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
5555         to use; set size of basic_block_for_insn directly.
5556         (find_basic_blocks): Update.
5557
5558 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5559
5560         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
5561
5562 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5563
5564         * crtstuff.c (ON_EXIT): Delete empty macro definition.
5565         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
5566
5567 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
5568
5569         * c-decl.c (c_decode_option): Extend comment.
5570
5571 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
5572
5573         * toplev.c (progname): Make 'const char *'
5574         (flag_print_mem): Move out of main.
5575         (version_flag): Move out of main.
5576         (filename): Move out of main.
5577         (debug_args): Remove g prefix from options.
5578         (documented_lang_options): Remove cpplib specific options.
5579         (display_help): Add g prefix to debug options.
5580         (check_lang_option): Delete this function.
5581         (decode_d_option): New function: Decode -d... option.
5582         (decode_f_option): New function: Decode -f... option.
5583         (decode_W_option): New function: Decode -W... option.
5584         (decode_g_option): New function: Decode -g... option.
5585         (independent_decode_option): New function: Decode a language
5586         independent command line option.
5587         (main): Invoke lang_decode_option and then
5588         independent_decode_option on each command line option in
5589         turn. 
5590
5591 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
5592
5593         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
5594          * fold-const.c (fold_range_test): Do not try to fold the range
5595          test if the rhs or lhs has side effects.
5596
5597         * basic-block.h (compute_flow_dominators): Declare.
5598
5599         * gcse.c (alloc_code_hoist_mem): New function.
5600         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
5601         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
5602         (hoist_code, one_code_hoisting_pass): Likewise.
5603         (gcse_main): If optimizing for size, then hoist expressions
5604         computed in multiple dominated basic blocks.
5605
5606         * gcse.c (invalid_nonnull_info): New function.
5607         (delete_null_pointer_checks): Likewise.
5608         * rtl.h (delete_null_pointer_checks): Declare.
5609         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
5610
5611         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
5612         (merge-blocks_move_successor_nojumps): Likewise.
5613         (merge_blocks): Allow merging of some blocks, even if it requires
5614         physical movement of the blocks, but not if it requires new jumps.
5615
5616         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
5617         Callers and prototype changed.
5618         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
5619
5620 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5621
5622         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
5623         -YP when both -p and -pg are present.  From i386/sol2.h.
5624
5625 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5626
5627         * Makefile.in (distclean): Delete tm_p.h.
5628         * configure.in: Create a new file, "tm_p.h", from a list in
5629         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
5630         "i386/i386-protos.h".
5631
5632         * alias.c: Include "tm_p.h".
5633         * c-typeck.c: Likewise.
5634         * calls.c: Likewise.
5635         * cse.c: Likewise.
5636         * emit-rtl.c: Likewise.
5637         * explow.c: Likewise.
5638         * expmed.c: Likewise.
5639         * expr.c: Likewise.
5640         * final.c: Likewise.
5641         * flow.c: Likewise.
5642         * fold-const.c: Likewise.
5643         * function.c: Likewise.
5644         * gcse.c: Likewise.
5645         * global.c: Likewise.
5646         * haifa-sched.c: Likewise.
5647         * integrate.c: Likewise.
5648         * jump.c: Likewise.
5649         * local-alloc.c: Likewise.
5650         * loop.c: Likewise.
5651         * optabs.c: Likewise.
5652         * recog.c: Likewise.
5653         * reg-stack.c: Likewise.
5654         * regclass.c: Likewise.
5655         * regmove.c: Likewise.
5656         * reload.c: Likewise.
5657         * reload1.c: Likewise.
5658         * reorg.c: Likewise.
5659         * resource.c: Likewise.
5660         * stmt.c: Likewise.
5661         * stor-layout.c: Likewise.
5662         * toplev.c: Likewise.
5663         * tree.c: Likewise.
5664         * unroll.c: Likewise.
5665         * genattrtab.c (main): Make generated file include "tm_p.h".
5666         * genemit.c (main): Likewise.
5667         * genoutput.c (main): Likewise.
5668         * genrecog.c (main): Likewise.
5669
5670         * i386.h: Delete all prototypes.
5671         * i386.c: Include "tm_p.h".
5672         (ix86_attr_length_default): Call constant_call_address_operand
5673         with correct number of arguments.
5674         * i386-protos.h: New file.
5675         * i386.md (unnamed patterns): Call constant_call_address_operand
5676         with correct number of arguments.
5677         (exception_receiver): Call load_pic_register with correct number
5678         of arguments.
5679
5680 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
5681
5682         * c-pragma.c (mark_align_stack): Dereference the void* properly.
5683
5684 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
5685
5686         * rtl.h (insns_safe_to_move_p): New function.
5687         * loop.c (find_and_verify_loops): Use it.
5688         * rtlanal.c (insns_safe_to_move_p): Define it.
5689
5690 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
5691
5692         * c-pragma.c: Include ggc.h.
5693         * Makefile.in (c-pragma.o): Update.
5694
5695 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5696
5697         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
5698         (LIB_SPEC): Likewise.
5699         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
5700         Reindent -YP/-p/-pg.
5701         Copied from config/sparc/sol2.h.
5702
5703 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
5704
5705         * c-pragma.c (mark_align_stack): New.
5706         (init_pragma): New.
5707         * c-pragma.h (init_pragma): Declare it.
5708         * c-lex.c (init_parse): Call it.
5709
5710 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5711
5712         * configure.in: Pick up thread library on Solaris/x86 just
5713         like on Solaris/sparc.
5714         * configure: Rebuilt.
5715
5716 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
5717
5718         * rtl.h (global_rtx_index): New enum.
5719         (global_rtl): Change to array of rtx.
5720         (pc_rtx, cc0_rtx): Redefine accordingly.
5721         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
5722         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
5723         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
5724         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
5725         (const_int_rtx): Change to array of rtx.
5726         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
5727         accordingly. 
5728         * emit-rtl.c (global_rtl): Change to array of rtx.
5729         (const_int_rtx): Change to aray of rtx.
5730         (gen_rtx_CONST_INT): Redefine accordingly.
5731         (init_emit_once): Allocate and initialize global_rtl.  Likewise
5732         for const_int_rtx.  Add both as GC roots.
5733         * genattrtab.c (global_rtl): Update declaration.
5734
5735 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
5736
5737         * Makefile (USER_H): Add iso646.h back.
5738
5739 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
5740
5741         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
5742         zapping the LOG_LINKS of sched_before_next_call.
5743
5744         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
5745         * pa.c (insn_refs_are_delayed): Renamed from
5746         insn_sets_and_refs_are_delayed.
5747
5748 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
5749
5750         * functiion.h (struct function): Add x_whole_function_mode_p.
5751         (retrofit_block): Declare.
5752         * function.c (retrofit_block): New function.
5753         (identify_blocks): Add assertions.  Allow an incomplete set of
5754         block notes if we're still generating code for the function.
5755         * integrate.c: Include loop.h.
5756         (expand_inline_function): Call find_loop_tree_blocks to map block
5757         notes to blocks when in whole-function mode.  Use retrofit_block
5758         to insert new BLOCKs for the inlined function, rather than
5759         insert_block.
5760         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
5761         * Makefile.in (integrate.o): Depend on loop.h.
5762
5763 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
5764
5765         * tree.h (warn_about_unused_variables): Declare.
5766         * stmt.c (warn_about_unused_variables): New function, split out
5767         from ...
5768         (expand_end_bindings): Here.
5769
5770 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
5771
5772         * stmt.c (preserve_subexpressions_p): Don't crash when
5773         current_function->stmt is unset.
5774
5775 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
5776
5777         * stmt.c (expand_start_bindings): Allow callers to pass a flag
5778         indicating that no NOTE_INSN_BLOCK_BEG note is required.
5779         (expand_start_target_temps): Use it.
5780         * except.c (expand_eh_region_start_for_decl): Likewise.
5781         * expr.c (expand_expr): Likewise.
5782
5783 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5784
5785         * fold-const.c (operand_equal_p): Pay attention to side effects.
5786
5787 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
5788
5789         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
5790         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
5791
5792         * tlink.c (scan_linker_output): Look for keywords before accepting
5793         a mangled name in quotes.
5794
5795 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
5796
5797         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
5798         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
5799
5800 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
5801
5802         * alpha.md: Revert Thu Nov 26 change that came in through the
5803         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
5804         Avoid earlyclobber when possible.
5805
5806 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5807
5808         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
5809
5810         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
5811         Define HAVE_ON_EXIT.
5812
5813 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5814
5815         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
5816         CTYPE_CONV in all ctype macros.
5817
5818         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
5819         from system.h.
5820
5821         * cexp.y (initialize_random_junk): Likewise.
5822
5823         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
5824
5825         * i370.c (handle_pragma): Likewise.
5826
5827         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
5828
5829         * v850.c (override_options): Likewise.
5830
5831         * doprint.c (_doprnt): Likewise.
5832
5833         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
5834         Likewise.
5835
5836         * fixinc/server.c (load_data): Likewise.
5837
5838         * fold-const.c (real_hex_to_f): Likewise.
5839
5840         * genattr.c (write_upcase, gen_attr): Likewise.
5841
5842         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
5843         write_upcase): Likewise.
5844
5845         * genemit.c (print_code): Likewise.
5846
5847         * genopinit.c (gen_insn): Likewise.
5848
5849         * genpeep.c (print_code): Likewise.
5850
5851         * genrecog.c (print_code): Likewise.
5852
5853         * optabs.c (init_libfuncs): Likewise.
5854
5855 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
5856
5857         * haifa-sched.c (sched_analyze): Keep the list of notes organized
5858         in pairs.
5859         (reemit_notes): Likewise.
5860
5861 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
5862
5863         * ggc.h (ggc_root): Move to ggc-common.c.
5864         (roots): Remove.
5865         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
5866         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
5867         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
5868         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
5869         * ggc-common.c (ggc_root): Move from ggc.h.
5870         (roots): Declare, static.
5871         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
5872         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
5873         null or check/set mark bit.
5874         (ggc_mark_roots): New.
5875         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
5876
5877 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
5878
5879         * m32r.c: Include toplev.h.
5880         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
5881         (gen_compare): Rename swap_p to must_swap to match uses.
5882         Add default abort case.
5883         (m32r_output_function_epilogue): Remove unused variables.
5884         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
5885         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
5886         define to empty parameter list.  Update all uses.
5887         (predicate decls): Use enum machine_mode not int.
5888         * m32r.md (movsi): Call abort, not fatal_insn.
5889         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
5890
5891 1999-09-14  Andrew Haley  <aph@cygnus.com>
5892
5893         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
5894         use $0 instead of 0.
5895
5896 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5897
5898         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
5899         computation out of loop over hard regs.
5900
5901 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
5902
5903         * function.c (identify_blocks): Don't shadow a variable in an 
5904         outer scope.
5905         * integrate.c (integrate_decl_tree): Don't use pushlevel,
5906         pushdecl, or poplevel to build up the new BLOCK tree.
5907         (expand_inline_function): Likewise.
5908         (integrate_parm_decls): Likewise.
5909
5910 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
5911
5912         * c-typeck.c (qualify_type): Merge qualifiers from both types.
5913
5914 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
5915
5916         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
5917         * invoke.texi: Document this change.
5918
5919 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
5920
5921         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
5922         Free the struct.
5923         (mark_emit_status): Renamed from mark_emit_state.
5924         * except.c (mark_eh_status): Renamed from mark_eh_state.
5925         Check not null before marking.
5926         (free_eh_status): New.
5927         * expr.c (mark_expr_status, free_expr_status): New.
5928         * function.c (free_machine_status): New.
5929         (free_after_parsing): New.
5930         (free_after_compilation): Move bits to free_after_parsing; call
5931         free_eh_status, free_expr_status; zero the marked members of the
5932         function state.
5933         (prepare_function_start): No can_garbage_collect. 
5934         Call init_eh_for_function.
5935         (expand_dummy_function_end): Free up current_function state.
5936         (mark_function_status): Renamed from mark_function_state.
5937         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
5938         * function.h (struct function): No can_garbage_collect.
5939         (free_machine_status, free_after_parsing): Declare.
5940         (free_eh_status, free_expr_status): Declare.
5941         * ggc.h (mark_expr_status): Declare.
5942         * stmt.c (free_stmt_status): Free the struct.
5943         (mark_stmt_status): Renamed from mark_stmt_state.
5944         (init_stmt): Don't call init_eh.
5945         (init_stmt_for_function): Don't call init_eh_for_function.
5946         * toplev.c (compile_file): Call init_eh.
5947         (rest_of_compilation): Free basic block info before ggc_collect.
5948         Call free_after_parsing; conditionally call free_after_compilation.
5949         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
5950         Check not null before marking.
5951         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
5952
5953 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
5954
5955         * c-lex.c (yylex): Initialize warn.
5956
5957 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
5958
5959         * pa.c (emit_move_sequence): Properly set the mode of the scratch
5960         register when performing secondary reloads for the SAR register.
5961
5962 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
5963
5964         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
5965         (NOTE_BLOCK): New macro.
5966         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
5967         * function.h (identify_blocks): Change prototype.
5968         * function.c (identify_blocks): Simplify.
5969         (reorder_blocks): Likewise.
5970         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
5971         NOTE_INSN_BLOCK_{BEG,END}.
5972         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
5973         the list of saved notes if the note isn't a
5974         NOTE_INSN_BLOCK_{BEG,END}.
5975         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
5976         NOTE_BLOCK_NUMBER.
5977         (reemit_notes): Adjust recreation of notes to reflect new saved
5978         note structure.
5979         * print-rtl.c (print_rtx): Print the address of the BLOCK when
5980         printing a block note.
5981         * stmt.c (block_vector): Remove.
5982         (find_loop_tree_blocks): Simplify.
5983         (unroll_block_trees): Likewise.
5984         * tree.h (reorder_block): Change prototype.
5985         
5986 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
5987
5988         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
5989         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
5990         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
5991         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
5992         (atexit, exit): Simplify.
5993         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
5994         * config/lots: Remove defns of HAVE_ATEXIT.
5995
5996 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
5997
5998         * calls.c (precompute_arguments): Fix typo in comment.
5999         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
6000         TARGET_EXPR.
6001
6002 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
6003
6004         * dsp16xx.c (override_options): Fix typos in GC root registration.
6005
6006 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
6007
6008         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
6009         from config/svr4.h.
6010         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
6011         (FUNCTION_PROFILER): Redefine appropriately for Linux.
6012         (CC1_SPEC): Likewise.
6013
6014 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6015
6016         * genattr.c (main): Add extern prototype.  Call return, not exit.
6017         * genattrtab.c (main): Likewise.
6018         * gencheck.c (main): Likewise.
6019         * gencodes.c (main): Likewise.
6020         * genconfig.c (main): Likewise.
6021         * genemit.c (main): Likewise.
6022         * genextract.c (main): Likewise.
6023         * genflags.c (main): Likewise.
6024         * gengenrtl.c (main): Likewise.
6025         * genopinit.c (main): Likewise.
6026         * genoutput.c (main): Likewise.
6027         * genpeep.c (main): Likewise.
6028         * genrecog.c (main): Likewise.
6029         
6030         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
6031         * genattrtab.c (get_insn_name): Likewise.
6032         * gencodes.c (get_insn_name): Likewise.
6033         * genconfig.c (get_insn_name): Likewise.
6034         * genemit.c (get_insn_name): Likewise.
6035         * genextract.c (get_insn_name): Likewise.
6036         * genflags.c (get_insn_name): Likewise.
6037         * genopinit.c (get_insn_name): Likewise.
6038         * genpeep.c (get_insn_name): Likewise.
6039         
6040         * gencheck.c (usage): Add static prototype.
6041         * genextract.c (print_path): Constify a char*.
6042         * genopinit.c (optabs): Likewise.
6043         * genoutput.c (operand_data, data, output_predicate_decls,
6044         compare_operands): Likewise.
6045         * genrecog.c (write_tree): Add default case in switch.
6046
6047 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6048
6049         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
6050
6051         * print-rtl.c (get_insn_name): Remove prototype.
6052
6053         * toplev.h (progname): Declare const.
6054
6055         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
6056         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
6057         dump_sched_info, dump_local_alloc, regset_release_memory,
6058         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
6059         error_with_file_and_line, error_with_decl, error_for_asm, error,
6060         fatal, warning_with_file_and_line, warning_with_decl, warning,
6061         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
6062         Remove redundant prototypes.
6063
6064         (notice, check_lang_option, report_file_and_line, vnotice,
6065         mark_file_stack): Add static prototype.
6066         (set_fatal_function): Add prototype.
6067         (vnotice, report_file_and_line, set_fatal_function,
6068         check_lang_option): Constify a char*.
6069         (main): Prototype.  Call return, not exit.
6070
6071 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6072
6073         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
6074
6075         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
6076
6077         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
6078
6079         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
6080
6081 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6082
6083         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
6084         behave as if it's zero in all cases.
6085         (expand_function_start): Adjust call to assign_parms.
6086         * tree.h (assign_parms): Adjust prototype.
6087         * objc/objc-act.c (hack_method_prototype): Adjust call to
6088         assign_parms.
6089
6090 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
6091
6092         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
6093         arg_pointer_rtx fixed if the argument pointer register is
6094         not fixed.
6095         (NONZERO_BASE_PLUS_P): Likewise.
6096
6097 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
6098
6099         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
6100         match_insn2 to match_insn.
6101         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
6102
6103 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
6104
6105         * Makefile.in (USER_H): Remove va-foo.h.
6106
6107         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
6108         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
6109         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
6110         va-spur.h,va-v850.h}: Remove.
6111
6112 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
6113
6114         * sparc/sparc.md (eligible_for_return_delay): New attribute.
6115         (in_return_delay): Use it instead of match_insn.
6116
6117 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6118
6119         * config/alpha/va_list.h (va-alpha.h): Do not include.
6120         (__gnuc_va_list): Typedef as in varargs.h.
6121
6122 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
6123
6124         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
6125         DECL_LIVE_RANGE_RTL.
6126
6127 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
6128
6129         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
6130         not NOTE_BLOCK_NUMBER.
6131         (expand_eh_region_end): Likewise.
6132         (find_exception_handler_labels): Likewise.
6133         (scan_region): Likewise.
6134         (exception_optimize): Likewise.
6135         (update_rethrow_references): Likewise.
6136         (set_insn_eh_region): Likewise.
6137         * final.c (final_scan_insn): Likewise.
6138         * flow.c (make_edges): Likewise.
6139         * integrate.c (expand_inline_function): Likewise.
6140         * print-rtl.c (print_rtx): Likewise.
6141
6142 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
6143
6144         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
6145         terms of builtin functions and types.
6146
6147         * mips.c (mips_build_va_list): New.
6148         (mips_va_start, mips_va_arg): New.
6149         * mips.h (BUILD_VA_LIST_TYPE): New.
6150         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
6151
6152         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
6153         (sh_build_va_list, sh_va_start, sh_va_arg): New.
6154         * sh.h (BUILD_VA_LIST_TYPE): New.
6155         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
6156
6157 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
6158
6159         * recog.h (struct recog_data): Make dup_num, operand_address_p,
6160         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
6161         (struct insn_data): Likewise with n_operands, n_dups, 
6162         n_alternatives, output_format.
6163         * regclass.c (scan_one_insn): Cast n_operands to int before
6164         arithmetic inside comparison.
6165
6166 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
6167
6168         * toplev.c (compile_function): Unconditionally emit nop.
6169
6170 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6171
6172         * haifa-sched.c (actual_hazard): Move declaration of variable
6173         `this_cost' into the scope where it is used.
6174
6175 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6176
6177         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
6178         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
6179         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
6180
6181         * genrecog.c (make_insn_sequence): Call memset, not bzero.
6182
6183         * jump.c (find_insert_position): Don't declare or define unless
6184         !HAVE_conditional_arithmetic.
6185         (returnjump_p_1, delete_prior_computation): Add static prototypes.
6186
6187         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
6188         
6189         * recog.c (offsettable_address_p): Prototype function pointer.
6190         (preprocess_constraints): Call memset, not bzero.
6191         
6192         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
6193         (gcc_obstack_init): Don't declare.
6194         (fix_sizetype): Add static prototype.
6195         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
6196         (tree_cons): Call memset, not bzero.
6197
6198         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
6199         definition in macro ASM_WEAKEN_LABEL.
6200         (mark_const_hash_entry): Add static prototype.
6201
6202 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6203
6204         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
6205
6206         * unroll.c (find_common_reg_term, subtract_reg_term,
6207         loop_find_equiv_value): Add static prototypes.
6208         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
6209         (copy_loop_body): Remove unreachable break statement.
6210         
6211         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
6212
6213         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
6214         
6215 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6216
6217         Undo some changes from the gcc2 merge:
6218         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
6219         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
6220         pointers.
6221
6222         Undo this change:
6223         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
6224         * emit-rtl.c (gen_lowpart_common): Disable optimization of
6225         initialized float-int union if the value is a NaN.
6226
6227 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6228
6229         * gthr-win32.h: New file.
6230
6231         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
6232         shared as a valid attribute.
6233         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
6234         * extend.texi: Document `shared' variable attribute.
6235
6236 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
6237
6238         * configure.in: Handle --enable-threads on FreeBSD.
6239         * configure: Rebuit.
6240
6241 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
6242
6243         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
6244         thread support.
6245         * configure: Rebuilt.
6246
6247 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
6248                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
6249                           Rosimildo DaSilva <rdasilva@connecttel.com>
6250
6251         * configure.in (m68k-*-rtemscoff*): Added.
6252         * configure.in (mips64orion-*-rtems*): Converted to ELF.
6253         * configure.in (sparc-*-rtemsaout*): Added as alias for old
6254         sparc-rtems configuration.
6255         * configure.in (sparc-*-rtemself*): Added.
6256         * configure.in (sparc-*-rtems*): Now ELF not a.out.
6257         * config/i386/rtems.h: Added comment.
6258         * config/sparc/rtemself.h: New file.
6259
6260         * configure.in (m68k-rtemself): Added.
6261         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
6262         and DWARF_DEBUGGING_INFO.
6263         * config/m68k/crti.s: New file.
6264         * config/m68k/crtn.s: New file.
6265         * config/m68k/t-crtstuff: New file.
6266         * config/m68k/rtemself.h: New file.
6267
6268         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
6269         global ctor/dtor and C++ exception handling.
6270         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
6271         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
6272         ENDFILE_SPEC.
6273         * config/i386/t-rtems-i386: New File.
6274
6275 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
6276
6277         * stmt.c (expand_end_case): Return right away if the case stack is
6278         empty.
6279
6280 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
6281
6282         * Makefile.in (version.c): Remove rule incorrectly brought in from
6283         the gcc2 merge.
6284
6285 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
6286
6287         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
6288         * msdos/top.sed:  Take into account a prepended $(SHELL) to
6289         move-if-change.
6290         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
6291
6292         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
6293
6294 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6295
6296         * regmove.c (fixup_match_1): Don't change an unchanging register.
6297         (stable_but_for_p): Renamed to:
6298         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
6299         Changed all callers.
6300
6301 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
6302
6303         * loop.c (strength_reduce): Don't call reg_used_between_p if the
6304         insn from BL2 is after the insn from BL.
6305
6306 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
6307
6308         * recog.h (INSN_OUTPUT_FORMAT_*): New.
6309         (struct insn_data): Merge `template' and `outfun' into `output'.
6310         Add `output_format'.
6311         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
6312         (struct data): Remove `outfun'; add `output_format'.
6313         (name_for_index): Remove declaration.
6314         (output_insn_data): Handle output formats.
6315         (process_template): Emit the bare array for @.
6316         (gen_expand, gen_split): Set output_format to NONE.
6317         * output.h (get_insn_template): Declare.
6318         * final.c (get_insn_template): New.
6319         (final_scan_insn): Use it.
6320         * toplev.c (compile_file): Likewise.
6321
6322         * c4x/c4x.c (c4x_process_after_reload): Likewise.
6323         * i860/i860.c (output_delayed_branch): Likewise.
6324         (output_delay_insn): Likewise.
6325
6326 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6327
6328         * rtl.c (obstack_alloc_rtx): Removed.
6329
6330 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
6331
6332         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
6333
6334 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
6335
6336         * i386.c (call_insn_operand): Reject const_int.
6337         (expander_call_insn_operand): Use call_insn_operand.
6338
6339 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6340
6341         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
6342
6343 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
6344
6345         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
6346         Use DImode operation.
6347
6348 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
6349
6350         * gcc.c: Include sys/resource.h.
6351         (report_times): New flag.
6352         (execute):  If report_times is set, calculate and report the
6353         CPU time consumed by each subprocess.
6354
6355         (rus, prus): New globals.
6356         (option_map): Add --time.
6357         (display_help): Document -time.
6358         (process_command): Set report_times if -time is given.
6359         Turn off -pipe if -time is given.
6360
6361         * invoke.texi: Document new option -time.
6362
6363         * configure.in: Check for getrusage.  Check if we have to
6364         prototype getrusage.
6365         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
6366         * configure: Regenerate.
6367         * config.in: Regenerate.
6368
6369 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
6370
6371         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
6372         fields.
6373
6374 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
6375
6376         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
6377         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
6378         (nan): Return _thenan_sf or _thenan_df as appropriate.
6379         (L_thenan_sf): Define _thenan_sf.
6380         (L_thenan_df): Define _thenan_df.
6381
6382         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
6383         (DPBIT_FUNCS): Add _thenan_df.
6384
6385 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
6386
6387         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
6388         TYPE_SIZE_UNIT.
6389
6390 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6391
6392         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
6393
6394         * gcc.h: New file.
6395         (lang_specific_driver): Don't take a function pointer parameter.
6396         All callers changed.
6397
6398         * gcc.c: Include gcc.h.
6399         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
6400         lang_specific_extra_outfiles, fatal): Don't declare.
6401         (multilib_defaults_raw): Constify.
6402         (read_specs): Call memset, rather than bzero.
6403         (main): Call return, not exit.
6404         (lookup_compiler): Call memcpy, not bcopy.
6405         (fatal): Make extern.
6406
6407         * cppspec.c: Include gcc.h.
6408         (lang_specific_driver): Initialize variable `quote'.  Constify a
6409         char*.  All calls to the function pointer parameter now
6410         explicitly call `fatal'.
6411
6412         * gccspec.c (lang_specific_driver): Include gcc.h.
6413
6414 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
6415
6416         * arm.c (note_invalid_constants): Use recog_data.operand_type
6417         for recog_op_type.
6418
6419 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6420
6421         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
6422         Declare.
6423
6424         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
6425         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
6426         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
6427         reload_secondary_in_reload, reload_secondary_out_reload,
6428         reload_secondary_in_icode, reload_secondary_out_icode,
6429         reload_reg_rtx, reload_when_needed): Delete declarations.
6430         (struct reload): New structure.
6431         (rld): Declare new array.
6432         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
6433         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
6434         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
6435         reload_secondary_in_reload, reload_secondary_out_reload,
6436         reload_secondary_in_icode, reload_secondary_out_icode,
6437         reload_reg_rtx, reload_when_needed): Delete definitions.
6438         (rld): New array.
6439         (whole file): Replace uses of the deleted arrays with uses of rld.
6440         * reload1.c (whole file): Replace uses of the deleted arrays with
6441         uses of rld.
6442         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
6443         explicit loops, not with bcopy.
6444
6445 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
6446
6447         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
6448         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
6449         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
6450         insn_name): Delete and consolidate into new structures.
6451         (insn_operand_predicate_fn): New.
6452         (insn_output_fn): New.
6453         (insn_gen_fn): New.
6454         (struct insn_operand_data): New.
6455         (struct insn_data): New.
6456         (insn_data): New.
6457         (OUT_FCN): Update for insn_data change.
6458         * builtins.c (expand_builtin_strlen): Likewise.
6459         (expand_builtin_memcmp): Likewise.
6460         * combine.c (make_extraction, simplify_comparison): Likewise.
6461         * cse.c (canon_reg, cse_insn): Likewise.
6462         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
6463         * expmed.c (store_bit_field, extract_bit_field): Likewise.
6464         (emit_store_flag): Likewise.
6465         * expr.c (convert_move, emit_block_move): Likewise.
6466         (clear_storage, emit_push_insn, expand_increment): Likewise.
6467         (do_store_flag): Likewise.
6468         * expr.h (GEN_FCN): Likewise.
6469         (insn_gen_function): Die.
6470         * final.c (final_scan_insn): Update for insn_data change.
6471         (output_asm_name): Likewise.
6472         * function.c (fixup_var_refs_1): Likewise.
6473         * loop.c (check_dbra_loop): Likewise.
6474         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
6475         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
6476         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
6477         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
6478         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
6479         * regmove.c (gen_add3_insn): Likewise.
6480         * reload.c (push_secondary_reload, combine_reloads): Likewise.
6481         (find_reloads, find_reloads_address_1): Likewise.
6482         (debug_reload_to_stream): Likewise.
6483         * reload1.c (emit_reload_insns, gen_reload): Likewise.
6484         * stmt.c (expand_end_case): Likewise.
6485         * toplev.c (compile_file): Likewise.
6486
6487         * c4x/c4x.c (c4x_process_after_reload): Likewise.
6488         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
6489
6490         * print-rtl.c (insn_name_ptr): Remove declaration.
6491         (get_insn_name): Declare.
6492         (print_rtx): Use it.
6493         * genoutput.c (insn_name_ptr): Remove.
6494         (next_operand_number): New.
6495         (struct operand_data): New.
6496         (null_operand, odata, odata_end): New.
6497         (struct data): Use struct operand_data.
6498         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
6499         (get_insn_name): Renamed from name_for_index.
6500         (output_prologue): Define NO_MD_PROTOTYPES.
6501         (output_predicate_decls): Break out from output_epilogue.
6502         Iterate over the operands list.
6503         (output_operand_data): Break out from output_epilogue.  Emit
6504         just the operands list.
6505         (output_insn_data): Break out from output_epilogue.  Emit just
6506         the insn data.
6507         (output_epilogue): Remove.
6508         (output_get_insn_name): New.
6509         (constraints, op_n_alternatives, predicates, address_p): Die.
6510         (modes, strict_low, seen): Die.
6511         (scan_operands): Take new param `d' instead of writing to 
6512         seven global variables.
6513         (compare_operands): New.
6514         (place_operands): New.
6515         (validate_insn_alternatives): Update for struct data change.
6516         (gen_insn): Don't zero or copy 7 global arrays.  Update for
6517         scan_operands; call place_operands.
6518         (gen_peephole, gen_expand, gen_split): Likewise.
6519         (main): Update for new output routines.
6520
6521         * genattr.c (insn_name_ptr): Remove.
6522         (get_insn_name): New function.
6523         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
6524         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
6525         * genrecog.c: Likewise.
6526
6527         * alpha.md (adddi3): Make `pattern' array static.
6528
6529 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6530
6531         * config/c4x/c4x.h (c4x_rpts_cycles_string,
6532         c4x_cpu_version_string): Constify char *.
6533         * config/c4x/c4x.c (c4x_rpts_cycles_string,
6534         c4x_cpu_version_string): Likewise.
6535
6536 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
6537
6538         * tree.c (save_tree_status): Revert 10 Sep change.
6539         (restore_tree_status): Likewise.  Call obstack_free with NULL 
6540         before freeing the obstack proper.
6541
6542 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
6543
6544         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
6545
6546         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
6547         surrounding context.
6548
6549 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
6550
6551         * tree.c (type_hash_canon): Put all types in the hash-table, when
6552         GC'ing.
6553
6554 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
6555
6556         * recog.h (struct recog_data, recog_data): New.
6557         (recog_foo variables): Kill.
6558         * recog.c (recog_operand, recog_operand_loc): Kill.
6559         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
6560         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
6561         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
6562         (recog_data): Define.
6563         (extract_insn): Update all recog_foo references to use recog_data.
6564         (preprocess_constraints, constrain_operands): Likewise.
6565         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
6566         * genattrtab.c (main): Likewise.
6567         * genextract.c (main): Likewise.
6568         * genoutput.c: Likewise.
6569         * genrecog.c (write_subroutine, main): Likewise.
6570         * local-alloc.c (block_alloc): Likewise.
6571         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
6572         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
6573         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
6574         * reload.c (find_reloads, find_reloads_toplev): Likewise.
6575         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
6576         (reload_cse_simplify_operands): Likewise.
6577
6578         * arc/arc.c (arc_final_prescan_insn): Likewise.
6579         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
6580         * h8300/h8300.c (notice_update_cc): Likewise.
6581         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
6582         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
6583         * mn10200/mn10200.c (notice_update_cc): Likewise.
6584         * mn10300/mn10300.c (notice_update_cc): Likewise.
6585         * romp/romp.c (update_cc): Likewise.
6586         * sparc/sparc.c (check_pic): Likewise.
6587         * v850/v850.c (notice_update_cc): Likewise.
6588
6589         * genemit.c (main): Don't declare recog_operand.
6590
6591 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
6592
6593         * ggc.h (rtvec_def): Forward declare.
6594         (tree_node): Likewise.
6595         (ggc_root): Define.
6596         (roots): Declare.
6597         (ggc_set_mark_rtx): Add prototype.
6598         (ggc_set_mark_rtvec): Likewise.
6599         (ggc_set_mark_tree): Likewise.
6600         * ggc-simple.c (ggc_root): Don't define.
6601         (roots): Don't declare.
6602         (ggc_mark_rtx): Remove.
6603         (ggc_mark_rtvec): Likewise.
6604         (ggc_mark_tree): Likewise.
6605         (ggc_mark_varray): Likewise.
6606         (ggc_mark_tree_hash_table_entry): Likewise.
6607         (ggc_mark_tree_hash_table): Likewise.
6608         (ggc_set_mart_rtx): New function.
6609         (ggc_set_mark_rtvec): Likewise.
6610         (ggc_set_mark_tree): Likewise.
6611         (ggc_add_root): Remove.
6612         (ggc_add_rtx_root): Likewise.
6613         (ggc_remove_tree_root): Likewise.
6614         (ggc_add_string_root): Likewise.
6615         (ggc_add_tree_varray_root): Likewise.
6616         (ggc_add_tree_hash_table_root): Likewise.
6617         (ggc_del_root): Likewise.
6618         (ggc_mark_rtx_ptr): Likewise.
6619         (ggc_mark_tree_ptr): Likewise.
6620         (ggc_mark_string_ptr): Likewise.
6621         (ggc_mark_tree_varray_ptr): Likewise.
6622         (ggc_mark_tree_hash_table_ptr): Likewise.
6623         * ggc-common.c: New file.
6624         * Makefile.in (OBJS): Add ggc-common.o.
6625         (ggc-common.o): List dependencies.
6626
6627 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
6628
6629         * cppalloc.c (xstrdup): Use memcpy.
6630         * cpperror.c (cpp_print_containing_files): Don't use
6631         cpp_notice.
6632         * cpplib.c (conditional_skip): Set temp->lineno.
6633         (do_endif): Make error message less obscure.
6634         (if_directive_name): New function.
6635         (cpp_get_token [case EOF]): Unwind the if stack and generate
6636         error messages for each unterminated conditional in this file.
6637         (parse_string):  Do not behave differently if -traditional.
6638
6639 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
6640
6641         * builtins.c (expand_builtin_va_arg): Cope with an array-type
6642         va_list decomposing to pointer-type.
6643         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
6644         (rs6000_va_arg): Likewise.
6645
6646 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
6647
6648         * except.c (start_dynamic_handler): Compute size using
6649         STACK_SAVEAREA_MODE.
6650
6651 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6652
6653         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
6654         include directory headers.  Don't define strrchr.  Don't provide
6655         my_* replacement functions.  Prefer PTR over `pointer_type'.
6656         Don't prototype system functions.  Don't redefine getopt.
6657
6658         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
6659         safe_read, safe_write, save_pointers, restore_pointers,
6660         is_id_char, in_system_include_dir, directory_specified_p,
6661         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
6662         find_corresponding_lparen, referenced_file_is_newer,
6663         save_def_or_dec, munge_compile_params, gen_aux_info_file,
6664         process_aux_info_file, identify_lineno, check_source,
6665         seek_to_line, forward_to_next_token_char, output_bytes,
6666         output_string, output_up_to, other_variable_style_function,
6667         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
6668         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
6669         find_static_definition, connect_defs_and_decs, add_local_decl,
6670         add_global_decls, needs_to_be_converted, visit_each_hash_node,
6671         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
6672         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
6673         scan_for_missed_items, edit_file, string_list_cons): Add static
6674         prototypes.
6675         (standard_exec_prefix, target_machine, target_version,
6676         default_syscalls_dir, string_list, string_list_cons, find_file,
6677         do_cleaning): Constify a char*.
6678         (safe_read, safe_write): Use PTR, not a char*.
6679         (is_id_char): Take an int, not a char.
6680         (main): Add prototype.  Call return, not exit.
6681
6682 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
6683
6684         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
6685         when comparing types.
6686
6687 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
6688
6689         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
6690         (strength_reduce): Release the varrays from the no-bivs early exit.
6691
6692         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
6693         the loop over the registers.
6694
6695         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
6696         for a new obstack.
6697         (restore_tree_status): Check that instead when freeing the obstack.
6698
6699 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
6700
6701         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
6702         as pointers.
6703
6704 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6705
6706         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
6707         operand size modifiers.
6708
6709 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6710
6711         * c-common.c (c_common_nodes_and_builtins): Don't build
6712         va_list_type_node.
6713         * c-common.h (enum c_tree_index and related accesor macros): Remove
6714         everything now declared in tree.h.
6715         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
6716         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
6717         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
6718         (error_mark_node, void_type_node, char_type_node, integer_type_node,
6719         unsigned_type_node, ptr_type_node, va_list_type_node,
6720         integer_zero_node, null_pointer_node, integer_one_node): Delete.
6721         (init_decl_processing): Call build_common_tree_nodes and
6722         build_common_tree_nodes_2 instead of building their nodes here.
6723         Don't add roots for these nodes.
6724         * stor-layout.c (size_zero_node, size_one_node): Delete.
6725         (set_sizetype): Make a new node for bitsizetype each time.
6726         * tree.c (global_trees): New variable.
6727         (init_obstacks): Add a gc root for it.
6728         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
6729         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
6730         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
6731         (build_common_tree_nodes): New function.
6732         (fix_sizetype): New function.
6733         (build_common_tree_nodes_2): New function.
6734         * tree.h (enum tree_index): New.
6735         (global_trees): Declare.
6736         Add accessor macros for all nodes now moved to global_trees.
6737         Delete their declarations.
6738
6739 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
6740
6741         * c-decl.c (finish_function): When processing a nested function,
6742         push and pop GC context around rest_of_compilation.
6743
6744 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
6745
6746         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
6747         Default ix86_arch to PROCESSOR_I386.
6748         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
6749         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
6750         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
6751         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
6752         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
6753         (EXTRA_SPECS): Remove deleted specs.
6754
6755 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
6756
6757         * function.c (assign_stack_local_1): Allocate from
6758         function->x_frame_offset, not frame_offset.
6759
6760 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
6761
6762         * ggc.h (lang_cleanup_tree): Remove.
6763         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
6764         * ggc-callbacks.c (lang_cleanup_tree): Remove.
6765
6766         * c-decl.c (finish_struct): Use ggc_alloc to allocate
6767         TYPE_LANG_SPECIFIC when garbage collecting.
6768         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
6769         (lang_cleanup_tree): Remove.
6770
6771 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
6772
6773         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
6774         * crtstuff.c: Not here.
6775         * dwarf2out.c: Or here.
6776         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
6777         info.
6778
6779 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
6780
6781         * function.h (free_after_compilation): Remove decl parameter.
6782         (free_varasm_status0: Likewise.
6783         (free_emit_status): Likewise.
6784         (free_stmt_status): Likewise.
6785         (free_after_compilation): Likewise.
6786         (init_lang_status): New variable.
6787         (free_lang_status): Likewise.
6788         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
6789         * function.c (init_lang_status): New variable.
6790         (free_lang_status): Likewise.
6791         (push_function_context_to): Don't set function::decl here.
6792         (free_after_copmilation): Make decl parameter implicit.  Call
6793         free_lang_status if defined.
6794         (prepare_function_start): Call init_lang_status if defined.
6795         (init_function_start): Set function::decl here.
6796         * profile.c (output_func_start_profiler): Don't call pushdecl
6797         until we've actually started the function.
6798         * stmt.c (free_stmt_status): Make decl parameter implicit.
6799         * toplev.c (rest_of_compilation): Don't pass decl to
6800         free_after_compilation.
6801         * varasm.c (free_varasm_status): Likewise.
6802
6803 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6804
6805         * except.c (call_get_eh_context): Add root when allocating static
6806         tree variable.
6807
6808 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
6809
6810         * arm.c: Include "ggc.h".
6811         (arm_add_gc_roots): New function.
6812         (arm_override_options): Call it.
6813         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
6814
6815         * arm.md (define_asm_attributes): Add a pool_range attribute.
6816
6817 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
6818
6819         * extend.texi (Volatiles): New node.
6820
6821 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
6822
6823         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
6824         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
6825         (struct ggc_any): Replace `mark' with `magic_mark'.
6826         (ggc_alloc_string): Use memcpy, not bcopy.
6827         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
6828         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
6829         (ggc_free_any): New.
6830         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
6831         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
6832         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
6833         Use IS_MARKED. Use ggc_free_any.
6834
6835 1999-09-09  Scott Bambrough <scottb@netwinder.org>
6836
6837         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
6838
6839 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
6840
6841         * toplev.c (main): Always init_ggc.
6842
6843 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
6844
6845         * except.c (find_all_handler_type_matches): Free the list if
6846         we found no matches.
6847
6848         * combine.c (SUBST): Break out to a real function do_SUBST.
6849         (SUBST_INT): Likewise.
6850         * gcse.c (free_pre_mem): Free `temp_bitmap'.
6851         (pre_insert): Free `inserted'.
6852         * loop.c (basic_induction_var): Always set `location'.
6853
6854         * function.c (expand_function_end): Add initial_trampoline as a root.
6855         * rtl.h (init_varasm_once): Declare.
6856         * toplev.c (compile_file): Call it.
6857         * ggc-simple.c (ggc_mark_string_ptr): New.
6858         (ggc_add_string_root): New.
6859         (ggc_collect): Disable collection avoidance temporarily.
6860         * ggc.h (ggc_add_string_root): Declare.
6861         * except.c (create_rethrow_ref): Use ggc_alloc_string.
6862         * optabs.c (init_libfuncs): Likewise.
6863         * varasm.c (named_section): Use ggc_alloc_string.
6864         (make_function_rtl): Likewise.
6865         (make_decl_rtl): Likewise.
6866         (assemble_static_space): Likewise.
6867         (assemble_trampoline_template): Likewise.
6868         (output_constant_def): Likewise.
6869         (force_const_mem): Likewise.
6870         (mark_const_hash_entry): New.
6871         (mark_pool_sym_hash_table): New.
6872         (mark_varasm_state): Use it.
6873         (init_varasm_once): New.
6874
6875         * expr.h (init_one_libfunc): Declare.
6876         * optabs.c (init_one_libfunc): New.
6877         (init_optabs): Use it.
6878         * config/gofast.h: Likewise.
6879         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
6880         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
6881
6882 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
6883
6884         * Makefile.in (cppexp.o): Depend on cpphash.h.
6885         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
6886         Include cpphash.h.
6887         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
6888         * cpplib.c (do_define): Generalise to handle poisoned definitions,
6889         redefining poisoned identifiers, etc.
6890         (do_undef): Don't allow poisoned identifiers to be undefined.
6891         (do_pragma): Add #pragma poison.
6892         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
6893
6894         * cccp.c: Add T_POISON node type.
6895         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
6896         poisoned xxx.
6897         (do_define): Generalise to handle poisoned definitions,
6898         redefining poisoned identifiers, etc.
6899         (do_undef): Don't allow poisoned identifiers to be undefined.
6900         (do_pragma): Add #pragma poison.
6901         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
6902
6903         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
6904         * c-pragma.h: Add ps_poison state.  We now always have generic
6905         pragmas.
6906
6907 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
6908
6909         * ggc.h (ggc_alloc): New function.
6910         (ggc_mark): Likewise.
6911         * ggc-simple.c (ggc_any): New structure.
6912         (ggc_status): Add anys.
6913         (n_anys_collected): New variable.
6914         (ggc_alloc): Define.
6915         (ggc_mark): Likewise.
6916         (ggc_collect): Collect the anys.
6917
6918 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6919
6920         * c-decl.c (mark_binding_level): Make static to match prototype.
6921
6922 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
6923
6924         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
6925
6926 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
6927
6928         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
6929         will use into account.  Expand the max width to 5.
6930         * rtl.c: Likewise.
6931
6932 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
6933
6934         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
6935         for the rtx length.
6936
6937 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
6938
6939         * alpha.md (call value patterns): Remove the result predicates.
6940
6941 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
6942
6943         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
6944         last change.
6945
6946 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6947
6948         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
6949         changed from extern char *, to extern PTR.  Also fix typo in
6950         NEED_DECLARATION_REALLOC test.
6951
6952         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
6953
6954 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6955
6956         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
6957         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
6958         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
6959         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
6960
6961         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
6962
6963         * cccp.c (pcfinclude): Likewise.
6964
6965         * global.c (allocno_compare): Likewise.
6966
6967         * haifa-sched.c (rank_for_schedule): Likewise.
6968
6969         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
6970
6971         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
6972
6973         * stupid.c (stupid_reg_compare): Likewise.
6974
6975         * tree.c (_obstack_allocated_p): Likewise.
6976
6977         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
6978
6979 1999-09-08  Bruce Korb  autogen@linuxbox.com
6980
6981         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
6982         why "gperf -F" fails.
6983         * gcc/cp/Makefile.in: ditto
6984         * gcc/Makefile.in: ditto
6985         * gcc/java/Makefile.in: ditto
6986
6987 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
6988
6989         * lists.c: Include ggc.h.
6990         (zap_lists): New.
6991         (init_EXPR_INSN_LIST_cache): Install it.
6992
6993         * ggc-simple.c (init_ggc): Absorb the old init.
6994         (ggc_push_context): Use xcalloc.
6995         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
6996         (ggc_collect): Add [rvts] tags to the collection stats.
6997
6998 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
6999
7000         * cccp.c (main): Fix handling of -include and -imacros options.
7001
7002 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
7003
7004         * cpplib.c (cpp_push_buffer): Fix order of arguments.
7005
7006 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
7007
7008         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
7009         genrtl.c.
7010
7011 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
7012
7013         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
7014         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
7015         and SET_DEST. Update comment.
7016
7017 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7018
7019         * config/c4x/c4x.c: Include ggc.h.
7020         (c4x_add_gc_roots): New function.
7021         (c4x_override_options): Call c4x_add_gc_roots.
7022
7023 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
7024
7025         * defaults.h (TARGET_ESC): Move ...
7026         * system.h: ... here, where Linas had it in the first place.  Silly me.
7027
7028 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
7029
7030         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
7031         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
7032         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
7033         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
7034         * defaults.h (TARGET_ESC): Add default.
7035
7036 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
7037
7038         * configure.in: add i370-*-openedition, i370-*-mvs and
7039         i370-*-linux targets
7040
7041 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
7042
7043         * dsp16xxx.c: Include ggc.h
7044         (override_options): Mark GC roots.
7045         * mn10200.c: Include ggc.h.
7046         (asm_file_start): Mark GC roots.
7047         * tahoe.c: Include ggc.h.
7048         (extensible_operand): Mark GC roots.
7049
7050 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
7051
7052         * README: Add section discussing status of ELF ABI.
7053         * i370.c: Fix misc spelling mistakes.
7054         (i370_label_scan): Updated notes, exception handling.
7055         (i370_function_prolog): Simplify ELF stack handling.
7056         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
7057         (STACK_GROWS_DOWNWARD): ELF stack grows down.
7058         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
7059         * i370.md: (movdi): Add notes.
7060         (floatsidf2): Use stack not rtca for scratch float area.
7061         (iorsi3): Correct operand constraints.
7062         * x-oe: Restore TAROUTOPTS which are used by pax.
7063
7064 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
7065
7066         * rs6000.c: Include ggc.h.
7067         (rs6000_add_gc_roots): New function.
7068         (override_options): Call it.
7069
7070 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
7071
7072         * alpha.h (alpha_compare): New.
7073         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
7074         * alpha.c: Likewise for the definitions.
7075         (alpha_emit_conditional_branch): Update for alpha_compare.
7076         (alpha_emit_conditional_move): Likewise.
7077         * alpha.md (cmpdf, cmpdi): Likewise.
7078         (setcc patterns): Likewise.  Zero alpha_compare after use.
7079         (sne): Optimize (x != 0) into (0U < x).
7080
7081 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
7082
7083         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
7084         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
7085         (INIT_EXPANDERS): Remove.
7086         * alpha.c: Include ggc.h.
7087         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
7088         (alpha_init_machine_status, alpha_mark_machine_status): New.
7089         (override_options): Install them.
7090         (struct machine_function): Moved to alpha.h.
7091         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
7092         (alpha_init_expanders): Remove.
7093         (alpha_return_addr): Adjust to use current_function->machine.
7094         (alpha_ra_ever_killed): Likewise.
7095         (alpha_expand_epilogue): Likewise.
7096         * alpha.md (eh_epilogue): Likewise.
7097
7098 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
7099                           Melissa O'Neill  <oneill@cs.sfu.ca>
7100                           Geoffrey Keating  <geoffk@cygnus.com>
7101
7102         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
7103         call-used registers (call-saved registers must still be contiguous
7104         and end with r31, of course).
7105
7106 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
7107
7108         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
7109         (self_promoting_type_p): Delete.
7110         (self_promoting_args_p): Move ...
7111         * c-common.c: ... here.
7112         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
7113         (simple_type_promotes_to): New.
7114         * builtins.c (lang_type_promotes_to): New.
7115         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
7116         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
7117         * c-common.h: ... here.
7118         (self_promoting_args_p, simple_type_promotes_to): Declare.
7119         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
7120         (grokdeclarator): Likewise.
7121         * tree.h (lang_type_promotes_to): Declare.
7122
7123 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
7124
7125         Add some machine-dependent GC roots.
7126         * sparc.c: Include ggc.h.
7127         (sparc_add_gc_roots): New function.
7128         (mark_ultrasparc_pipeline_state): Likewise.
7129         (override_options): Call sparc_add_gc_roots.
7130         * pa.c: Include ggc.h.
7131         (pa_add_gc_roots): New function.
7132         (mark_deferred_plabels): Likewise.
7133         (override_options): Call pa_add_gc_roots.
7134         * mips.c: Include ggc.h.
7135         (mips_add_gc_roots): New function.
7136         (override_options): Use it.
7137
7138 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7139
7140         * cpperror.c (cpp_file_line_for_message): Constify a char*.
7141
7142         * cppexp.c (parse_number, parse_charconst, cpp_lex,
7143         cpp_parse_expr): Add static prototypes.
7144         (parse_charconst): Don't cast away const-ness.
7145         (token): Constify a char*.
7146
7147         * cppfiles.c (file_name_list, include_hash, find_include_file,
7148         finclude, initialize_input_buffer): Constify a char*.
7149         (file_cleanup, find_position): Add static prototypes.
7150
7151         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
7152         collect_expansion): Add static prototypes.
7153         (cpp_install, create_definition, monthnames): Constify a char*.
7154
7155         * cpphash.h (cpp_install): Likewise.
7156
7157         * cppinit.c (known_suffixes, default_include,
7158         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
7159         (base_name, dump_special_to_buffer, initialize_dependency_output):
7160         Add static prototypes.
7161
7162         * cpplib.c (my_strerror): Constify a char*.
7163         (null_underflow, null_cleanup, skip_comment, copy_comment,
7164         copy_rest_of_line, handle_directive, pass_thru_directive,
7165         get_directive_token, read_line_number, cpp_print_file_and_line,
7166         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
7167         v_cpp_warning_with_line, detect_if_not_defined,
7168         consider_directive_while_skipping): Add static prototypes.
7169         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
7170         cpp_pedwarn_with_file_and_line): Constify a char*.
7171
7172         * cpplib.h (cpp_options, include_hash, progname, definition,
7173         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
7174         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
7175         find_include_file, deps_output, include_hash): Constify a char*.
7176
7177         * cppmain.c (progname): Constify.
7178         (main): Add prototype.  Use return, not exit.
7179
7180         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
7181         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
7182         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
7183         check_protection): Add static prototype.
7184         (xfree): Remove.
7185         (progname, recognized_macrom, recognized_extern): Constify a char*.
7186         (main): Add prototype.
7187
7188         * gen-protos.c (progname): Constify a char*.
7189
7190 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
7191
7192         * emit-rtl.c (free_emit_status): Take decl as a parameter.
7193         (init_emit_once): Add more GC roots.
7194         * except.c (mark_func_eh_entry): New function.
7195         (mark_eh_node): Mark false_label and rethrow_label.
7196         (init_eh): Add more GC roots.
7197         * function.c (free_after_compilation): Take decl as a paramter.
7198         Call free_stmt_status.
7199         (mark_function_state): Don't assume x_parm_reg_stack_loc is
7200         non-NULL.
7201         * function.h (free_after_compilation): Change prototype.
7202         (free_varasm_status): Likewise.
7203         (free_emit_status): Likewise.
7204         (free_stmt_status): New function.
7205         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
7206         Remove, replacing with ...
7207         (ggc_status): New structure.
7208         (ggc_chain): New variable.
7209         (init_gcc): Define.
7210         (ggc_push_context): New function.
7211         (ggc_pop_context): Likewise.
7212         (ggc_alloc_rtx): Adjust for use of ggc_chain.
7213         (ggc_alloc_rtvec): Likewise.
7214         (ggc_alloc_tree): Likewise.
7215         (ggc_alloc_string): Likewise.
7216         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
7217         (ggc_mark_tree): Give language-dependent code a chance to mark
7218         `x' nodes.
7219         (ggc_mark_tree_varray): Handle empty arrays.
7220         (ggc_collect): Adjust for use of ggc_chain.  Clear
7221         bytes_alloced_since_last_gc.
7222         * ggc.h (ggc_pop_context): New function.
7223         (ggc_push_context): Likewise.
7224         * print-tree.c (print_node): Don't print obstacks when GC'ing.
7225         * stmt.c (free_stmt_status): New function.
7226         (init_stmt_for_function): Clear last_expr_value.
7227         * toplev.c (rest_of_compilation): Always call free_after_compilation.
7228         Conditionalize call to ggc_collect.
7229         (main): Call init_ggc.
7230         * tree.c (push_obstacks): Do the push, even when GC'ing.
7231         (push_obstacks_nochange): Likewise.
7232         (pop_obstacks): Liekwise.
7233         * varasm.c (free_varasm_status): Take decl as a parameter.
7234
7235 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7236
7237         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
7238         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
7239         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
7240         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
7241
7242 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
7243
7244         * pa/x-pa-mpeix: New file for the MPE port.
7245
7246         * pa/quadlib.asm: New file for long double support.
7247
7248         * configure.in: Add hppa1.0-*-mpeix for MPE port.
7249         * configure: Rebuilt.
7250
7251 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
7252
7253         * final.c (shorten_branches): Fix last change.
7254
7255 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
7256
7257         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
7258
7259 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
7260
7261         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
7262         details.
7263
7264 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7265
7266         * c-aux-info.c (concat): Don't define.
7267
7268         * cccp.c (my_strerror): Likewise.  All callers changed to use
7269         xstrerror instead.
7270         (do_include): Call xstrdup, not xmalloc/strcpy.
7271         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
7272         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
7273
7274         * collect2.c (my_strsignal): Likewise.  All callers changed to use
7275         strsignal instead.
7276         (locatelib): Call xstrdup, not xmalloc/strcpy.
7277
7278         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
7279
7280         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
7281
7282         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
7283
7284         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
7285
7286         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
7287
7288         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
7289
7290         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
7291         malloc/realloc.
7292         (find_all_handler_type_matches): Likewise.  Don't check return
7293         value.
7294         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
7295         xmalloc, not malloc.
7296         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
7297
7298         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
7299         (init_spec): Call xcalloc, not xmalloc/bzero.
7300         (set_spec): Call xstrdup, not save_string.
7301         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
7302         (find_a_file): Call xstrdup, not xmalloc/strcpy.
7303         (process_command): Call xstrdup, not save_string.
7304         (main): Call xcalloc, not xmalloc/bzero.
7305
7306         * gcov.c (xmalloc): Don't define.
7307         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
7308         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
7309         (output_data): Call xcalloc, not xmalloc/bzero.
7310
7311         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
7312
7313         * mips-tdump.c (xmalloc): Don't define.
7314         (print_symbol): Call xmalloc, not malloc.
7315         (read_tfile): Call xcalloc, not calloc.
7316
7317         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
7318         Don't define.  All callers of xfree/my_strsignal changed to use
7319         free/strsignal instead.
7320         (allocate_cluster): Call xcalloc, not calloc.
7321
7322         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
7323         Fix memory leak, free allocated memory.
7324
7325         * prefix.c (translate_name): Call xstrdup, not save_string.
7326         (update_path): Likewise.
7327
7328         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
7329
7330         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
7331         Don't define.  Callers of xfree/savestring2 changed to use
7332         free/concat instead.
7333
7334         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
7335         (init_elim_table): Likewise.
7336
7337         * resource.c (init_resource_info): Likewise.
7338
7339         * stupid.c (stupid_life_analysis): Likewise.
7340
7341         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
7342         (open_dump_file): Call concat, not xmalloc/strcpy/...
7343         (clean_dump_file): Likewise.
7344         (compile_file): Call xstrdup, not xmalloc/strcpy.
7345
7346 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
7347
7348         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
7349         * v850.c (v850_va_arg): New.
7350
7351 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7352
7353         * haifa-sched.c: Tidy comments.
7354
7355 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7356
7357         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
7358         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
7359         $(out_object_file)): Depend on ggc.h.
7360         * c-common.c: Include "ggc.h".
7361         (combine_strings): If doing GC, use ggc_alloc_string.
7362         * c-decl.c: Include "ggc.h".
7363         (ggc_p): Define with value 0.
7364         (mark_binding_level): New function.
7365         (init_decl_processing): Add GC roots.
7366         (mark_c_function_context): New function.
7367         (lang_mark_false_label_stack): New function.
7368         (lang_mark_tree): New function.
7369         (lang_cleanup_tree): New function.
7370         * c-lang.c: Include "ggc.h".
7371         (lang_init): Call c_parse_init.
7372         * c-lex.c: Include "ggc.h".
7373         (check_linenum): If doing GC, don't copy filenames to permanent
7374         obstack.
7375         * c-parse.in: Include "ggc.h".
7376         (c_parse_init): New function.
7377         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
7378         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
7379
7380         * except.c (mark_eh_state): Mark more state.
7381         * function.c (mark_function_state): Likewise.
7382         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
7383         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
7384         * toplev.c (mark_file_stack): New function.
7385         (compile_file): If doing GC, use ggc_alloc_string on input filename.
7386         (main): Add root for input_file_stack.
7387
7388         * i386.c: Include "ggc.h".
7389         (ix86_mark_machine_status): New function.
7390         (override_options): Set mark_machine_status.
7391
7392 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7393
7394         * tree.c (copy_node): Copy node contents also if doing GC.
7395
7396 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
7397
7398         * collect2.c (scan_libraries): Fix double-thinko :-).
7399
7400 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
7401
7402         * collect2.c (scan_libraries): Fix thinko.
7403
7404         * cse.c (delete_trivially_dead_insns): Do not skip the last
7405         insn if it is a real insn.
7406
7407 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
7408
7409         * Makefile.in (ggc-simple.o): Depend on hash.h.
7410         * ggc.h (ggc_add_tree_hash_table_root): Declare.
7411         (ggc_mark_tree_varray): Likewise.
7412         (ggc_mark_tree_hash_table): Likewise.
7413         * ggc-simple.c: Include hash.h.
7414         (ggc_mark_tree_hash_table_ptr): New function.
7415         (ggc_mark_tree_hash_table_entry): Likewise.
7416         (ggc_mark_tree_hash_table): Likewise.
7417         (ggc_add_tree_hash_table_root): Likewise.
7418         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
7419         rtx, when defining fields.
7420
7421 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7422
7423         * profile.c (output_func_start_profiler): Remove apparently
7424         nonsensical call to start_sequence.
7425
7426 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
7427
7428         * clipper/clipper.c (clipper_va_start): Fix typos.
7429
7430         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
7431         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
7432         (spur_va_arg): New stub.
7433
7434         * configure.in: Comment out pyramid.
7435
7436 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
7437
7438         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
7439         don't conflict with the bits that win32, cygwin, and dgux
7440         defines.
7441
7442 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
7443                           Bernd Schmidt <bernds@cygnus.co.uk>
7444
7445         * integrate.c (function_cannot_inline_p): Do not inline
7446         functions with forced labels.
7447
7448 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
7449                           Bernd Schmidt <bernds@cygnus.co.uk>
7450                           Mark Mitchell  <mark@codesourcery.com>
7451
7452         * Makefile.in (ggc-simple.o): Depend on varray.h.
7453         (rtl.o): Depend on ggc.h.
7454         (genattrtab.o): Depend on ggc.h.
7455         (print-tree.o): Likewise.
7456         (fold-const.o): Likewise.
7457         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
7458         (make_insn_raw): Don't cache insns when GC'ing.
7459         (emit_insn_before): Likewise.
7460         (emit_insn_after): Likewise.
7461         (emit_insn): Likewise.
7462         (start_sequence): Use xmalloc to allocate the sequence_stack.
7463         (end_sequence): Add free to free it.
7464         (gen_sequence): Don't cache insns when GC'ing.
7465         (clear_emit_caches): Don't use sequence_element_free_list.
7466         (init_emit): Use xcalloc, not xmalloc+bzero.
7467         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
7468         * function.c (pop_function_context_from): Use free to free the
7469         fixup_var_refs_queue.
7470         (put_reg_into_stack): Allocate it with xmalloc.
7471         * genattrtab.c: Include ggc.h.
7472         (operate_exp): Don't use obstack_free when GC'ing.
7473         (simplify_cond): Likewise.
7474         (simplify_text_exp): Likewise.
7475         (optimize_attrs): Likewise.
7476         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
7477         GC'ing.
7478         (gencode): Generate a #include for ggc.h.
7479         * ggc-callbacks.c (ggc_p): Define it to zero.
7480         * ggc-none.c (ggc_p): Likewise.
7481         * ggc-simple.c: Include varray.h.
7482         (ggc_mark_tree_varray): New function.
7483         (ggc_add_tree_varray_root): Likewise.
7484         (ggc_mark_tree_varray_ptr): Likewise.
7485         * ggc.h (ggc_p): Declare.
7486         (varray_head_tag): Likewise.
7487         (ggc_add_tree_varray_root): Declare.
7488         * print-tree.c (print_node): Don't check for TREE_PERMANENT
7489         inconsistencies when GC'ing.
7490         * rtl.c: Include ggc.h.
7491         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
7492         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
7493         (rtx_free): Don't call obstack_free when GC'ing.
7494         * toplev.c (rest_of_compilation): Call ggc_collect after every
7495         pass, if GC'ing.
7496         * tree.c (push_obstacks): Do nothing, if GC'ing.
7497         (pop_obstacks_nochange): Likewise.
7498         (pop_obstacks): Likewise.
7499         (make_node): Use ggc_alloc_tree when GC'ing.
7500         (copy_node): Likewise.
7501         (get_identifier): Use ggc_alloc_string when GC'ing.
7502         (build_string): Likewise.
7503         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
7504         (tree_cons): Likewise.
7505         (build1): Likewise.
7506         (type_hash_canon): Don't call obstack_free when GC'ing.
7507
7508 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
7509
7510         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
7511         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
7512
7513 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
7514                           Bernd Schmidt <bernds@cygnus.co.uk>
7515                           Mark Mitchell  <mark@codesourcery.com>
7516
7517         * Makefile.in (stor-layout.o): Depend on ggc.h.
7518         (expr.o): Depend on ggc.h.
7519         (profile.o): Depend on ggc.h.
7520         (stor-layout.o): Depend on ggc.h.
7521         * emit-rtl.c (init_emit_once): Add gc roots.
7522         * expr.c: Include ggc.h.
7523         (emit_block_move): Add gc roots.
7524         (clear_storage): Likewise.
7525         * expr.h (init_stor_layout_once): New function.
7526         * profile.c: Include ggc.h.
7527         (init_arc_profiler): profiler_label is a root.
7528         * scan.c (make_sstring_space): Trust xrealloc to function
7529         correctly with first parameter NULL.
7530         * stor-layout.c: Include ggc.h.
7531         (set_sizetype): Add gc root.
7532         (init_stor_layout_once): New function.
7533         * toplev.c (compile_file): Call it.
7534
7535 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
7536                           Bernd Schmidt <bernds@cygnus.co.uk>
7537                           Mark Mitchell  <mark@codesourcery.com>
7538
7539         * Makefile.in (tree.o): Depend on ggc.h.
7540         (varasm.o): Likewise.
7541         (function.o): Likewise.
7542         (stmt.o): Likewise.
7543         (except.o): Likewise.
7544         (optabs.o): Likewise.
7545         (emit-rtl.o): Likewise.
7546         * emit-rtl.c: Include ggc.h.
7547         (sequence_element_free_list): Remove, and all references.
7548         (mark_sequence): New functions.
7549         (mark_emit_state): New function.
7550         * except.c: Include ggc.h.
7551         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
7552         (mark_tree_label_node): New functions.
7553         (mark_eh_state): New function.
7554         * function.c: Include ggc.h.
7555         (mark_temp_slot, mark_function_chain): New functions.
7556         (mark_function_state): New function.
7557         (init_function_once): New function.
7558         * function.h (init_function_once): New function.
7559         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
7560         * ggc.h (label_node): Declare.
7561         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
7562         (lang_mark_false_label_stack): New function.
7563         (mark_temp_slot): Remove declaration.
7564         (mark_function_chain): Likewise.
7565         (mark_eh_state): Adjust prototype.
7566         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
7567         Likewise.
7568         * optabs.c: Include ggc.h.
7569         (mark_optab): New function.
7570         (init_optabs): Add gc roots.
7571         * stmt.c: Include ggc.h.
7572         (mark_cond_nesting, mark_loop_nesting): New functions.
7573         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
7574         (mark_stmt_state): New function.
7575         * toplev.c (compile_file): Call init_function_once.
7576         * tree.c: Include ggc.h.
7577         (type_hash): Move declaration earlier in file.
7578         (TYPE_HASH_SIZE, type_hash_table): Likewise.
7579         (init_obstacks): Add gc roots.
7580         (mark_type_hash): New function.
7581         * varasm.c: Include ggc.h.
7582         (mark_pool_constant): New function.
7583         (mark_varasm_state): New function.
7584
7585 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7586
7587         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
7588
7589 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
7590
7591         * c-decl.c (struct language_function): Renamed from struct c_function.
7592         Delete elt NEXT.
7593         (c_function_chain): Delete.
7594         (push_c_function_context): New arg F.  Don't warn about nested
7595         functions here.  Fill LANGUAGE elt of F.  Delete code to update
7596         c_function_chain.  Don't call push_function_context.
7597         (pop_c_function_context): New arg F.  Restore from there instead of
7598         from c_function_chain.  Don't call pop_function_context.  Clear out
7599         LANGUAGE field of F when done.
7600         * c-lang.c: Include "function.h"
7601         (lang_init): Initialize save_lang_status and restore_lang_status.
7602         * c-parse.in (nested_function, nested_function_notype): Warn about
7603         nested functions.  Call push_function_context/pop_function_context
7604         instead of the _c_ variants.
7605         * c-tree.h (push_c_function_context, pop_c_function_context): Update
7606         prototype.
7607         * Makefile.in (c-lang.o): Update dependencies.
7608
7609         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
7610         regno_pointer_flag, regno_pointer_align.
7611         (gen_reg_rtx): Use xrealloc to enlarge them.
7612         (free_emit_status): New function.
7613         * function.c (mark_machine_status, mark_lang_status): New variables.
7614         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
7615         in some bits from assign_stack_local.  All callers changed to use new
7616         name.
7617         (assign_stack_local): Just call assign_stack_local_1.
7618         (free_after_compilation): New function.
7619         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
7620         (trampoline_address): Likewise.
7621         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
7622         (prepare_function_start): Explicitly clear some more variables.
7623         * function.h (struct function): New elt can_garbage_collect.
7624         (mark_machine_status, mark_lang_status): Declare variables.
7625         (free_after_compilation, free_emit_status, free_varasm_status,
7626         init_varasm_status): Declare functions.
7627         * toplev.c (rest_of_compilation): Call free_after_compilation when
7628         done with the current function.
7629         * varasm.c (free_varasm_status): New function.
7630
7631 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
7632
7633         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
7634         (EXPAND_BUILTIN_VA_ARG): Define.
7635         * sparc.c (sparc_va_start): New.
7636         (sparc_va_arg): New.
7637
7638 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7639
7640         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
7641
7642 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7643
7644         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
7645
7646 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
7647
7648         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
7649         (OBJS): Add $(GGC).
7650         (ggc-callbacks.o): New target.
7651         * ggc-callbacks.c: New file.
7652
7653 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7654
7655         * expr.h: Collapse individual optab and libfunc vars to arrays.
7656         (optab_index, libfunc_index): New enumerations.
7657         (optab_table, libfunc_table): New arrays.
7658         Add accessor macros for both.
7659
7660         * optabs.c (optab_table, libfunc_table): New.
7661         Delete declarations for individual optab and libfunc vars.
7662
7663 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
7664
7665         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
7666
7667 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
7668
7669         * Makefile.in (GGC, GGC_LIB): New.
7670         (HOST_RTL): Include ggc-none.o.
7671         (ggc-simple.o): New target.
7672         (ggc-none.o): Likewise.
7673         * tree.h (tree_common): Add gc_mark.
7674         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
7675         (struct rtvec_def): Add gc_mark.
7676         * emit-rtl.c (global_rtl): Update static initializers to contain
7677         enough initializers.
7678         * ggc.h, ggc-none.c, ggc-simple.c: New files.
7679         * toplev.c (gc_time): New variable.
7680         (all_time): New variable.
7681         (compile_file): Print gc time.
7682         (print_time): Calculate percentage of the whole.
7683
7684 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7685
7686         Change obstack memory management and varasm constant pool handling so
7687         that nested functions are treated like any other functions.
7688         * function.c (init_machine_status): New variable.
7689         (push_function_context_to): Set contains_functions for the outer
7690         function.  Don't call save_varasm_status.
7691         (pop_function_context_from): Don't call restore_varasm_status.  Don't
7692         set current_function_contains_functions.
7693         (prepare_function_start): Call init_varasm_status rather than
7694         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
7695         is non-null.
7696         * function.h (struct function) Add field varasm.  Delete fields
7697         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
7698         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
7699         (init_machine_status): Declare.
7700         (save_varasm_status, restore_varasm_status): Delete declarations.
7701         (save_tree_status, restore_tree_status): Delete last argument.
7702         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
7703         code.  All callers changed.
7704         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
7705         save_constants_in_decl_trees, restore_constants, save_constants,
7706         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
7707         functions.
7708         (inlining): New variable.
7709         (reg_map, label_map, insn_map, orig_asm_operands_vector,
7710         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
7711         variables.
7712         (save_for_inline_nocopy): Don't save constants.
7713         Don't set inl_emit field in current_function.
7714         (expand_inline_function): Use emit field, not inl_emit, of the inlined
7715         function.  Set new variable inlining before
7716         calling copy_rtx_and_substitute.
7717         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
7718         constant pool references if inlining is nonzero.
7719         Delete ADDRESS and (most of the) CONST cases.
7720         (output_inline_function): Save and restore current_function/
7721         current_function_decl.  Delete restore_constants code.  Don't call
7722         init_const_rtx_hash_table.
7723         * output.h (init_const_rtx_hash_table): Don't declare.
7724         * rtl.h (struct function): Declare.
7725         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
7726         * toplev.c (rest_of_compilation): Don't treat nested functions or
7727         functions containing them specially.  Delete all code to deal with
7728         save_for_inline_copying.
7729         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
7730         inline_obstacks): Delete variables.
7731         (save_tree_status): Lose arg CONTEXT.  All callers changed.
7732         Simply allocate a new function_maybepermanent_obstack for the new
7733         function, delete all the special cases.
7734         Don't save inline_obstacks.
7735         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
7736         Delete special handling for function_maybepermanent_obstack; simply
7737         free it if empty.
7738         Don't restore inline_obstacks.
7739         (permanent_allocation):  Delete code that frees inline_obstacks.
7740         (print_inline_obstack_statistics): Delete function.
7741         (dump_tree_statistics): Don't call it.
7742         * varasm.c (struct varasm_status): New.
7743         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
7744         last_pool, pool_offset, const_double_chain): Delete global
7745         variables, replace with accessor macros.
7746         (immed_double_const): Don't walk const_double_chain outside a
7747         function, but don't treat nested functions specially anymore.
7748         (immed_real_const_1): Likewise.
7749         (clear_const_double_mem): Don't treat nested functions specially.
7750         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
7751         (save_varasm_status, restore_varasm_status): Delete functions.
7752         (init_varasm_status): New function.
7753         (force_const_mem): Don't treat nested functions specially.
7754         (find_pool_constant): Accept new arg F, search for constants in
7755         that function's pool rather than the current one.  All callers
7756         changed.
7757         (get_pool_constant_for_function, get_pool_mode_for_function): New
7758         functions.
7759
7760         * i386.c (init_386_machine_status): New function, mostly from
7761         clear_386_stack_locals.
7762         (struct machine_functions): Rename element names to avoid name
7763         clashes.
7764         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
7765         macros, replacing global variables.
7766         (clear_386_stack_locals, save_386_machine_status,
7767         restore_386_machine_status): Delete functions.
7768         (override_options): Initialize init_machine_status.
7769         * i386.h (INIT_EXPANDERS): Delete macro.
7770         (save_386_machine_status, restore_386_machine_status,
7771         clear_386_stack_locals): Delete declarations.
7772
7773 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7774
7775         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
7776         (doloop_begin):  Simplify pattern and use emit_jump_insn.
7777         (doloop_end): Simplify pattern, switch operand order,
7778         and use emit_jump_insn.
7779
7780 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7781
7782         * function.h (struct function): Add new element LANGUAGE.
7783         (save_lang_status): Declare new variable.
7784         (restore_lang_status): Likewise.
7785         * function.c (save_lang_status): Define.
7786         (restore_lang_status): Likewise.
7787         (push_function_context_to): Call language-specific save function.
7788         (pop_function_context_from): Call language-specific restore function.
7789
7790 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
7791
7792         * i386.md (movsf_1): Check REG_P before use of REGNO.
7793         (movdf_1): Likewise.
7794         (movxf_1): Likewise.
7795         (extendsfdf2): Likewise.
7796         (extendsfxf2): Likewise.
7797         (extenddfxf2): Likewise.
7798
7799 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7800
7801         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
7802         constants into memory.
7803         (c4x_shiftable_constant): New function.
7804         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
7805         (c4x_shiftable_constant): Declare.
7806         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
7807         ashlqi3_noclobber): Add new patterns and associated splitters.
7808
7809 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
7810
7811         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
7812         * dwarf2out.c (dwarf2out_frame_init): Likewise.
7813         * final.c (shorten_branches): Likewise.
7814         * global.c (global_alloc): Likewise.
7815         * haifa-sched.c (build_control_flow): Likewise.
7816         * stmt.c (check_for_full_enumeration_handling): Likewise.
7817         (estimate_case_costs): Likewise.
7818
7819 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
7820
7821         * rtl.h (RTL_CHECKC2): Fix typo in last change.
7822
7823 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
7824
7825         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
7826         (recompute_reg_usage): Likewise.
7827         * rtlanal.c (find_regno_fusage): Likewise.
7828
7829         * rtl.c (rtl_check_failed_code1): New function.
7830         (rtl_check_failed_code2): New.
7831         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
7832         (RTL_CHECKC1, RTL_CHECKC2): New.
7833         (XC*): New accessor macros.
7834         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
7835         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
7836         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
7837         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
7838         (TRAP_*, RANGE_INFO_*): Likewise.
7839
7840 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7841
7842         * Makefile.in (tlink.o): Don't depend on toplev.h.
7843
7844         * collect2.c (c_file, o_file, export_file, import_file, ldout,
7845         output_file, nm_file_name, ldd_file_name, strip_file_name,
7846         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
7847         add_prefix, prefix_from_env, prefix_from_string, do_wait,
7848         fork_execute, maybe_unlink, add_to_list,
7849         extract_init_priority, write_list, dump_list,
7850         dump_prefix_list, write_list_with_asm, write_c_file,
7851         write_c_file_stat, write_c_file_glob, scan_prog_file,
7852         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
7853         ignore_library, extract_string, notice, dump_file, target_machine,
7854         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
7855         read_file, print_load_command): Constify a char*.
7856         (fdopen, error, fatal, fatal_perror): Don't prototype.
7857         (my_strerror): Remove.  All callers use xstrerror instead.
7858         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
7859         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
7860         to xcalloc/strcpy/strcat/...  to one call to concat.
7861         (main, scan_prog_file, scan_libraries): Use an intermediate
7862         `const char **' to build an argv array.
7863         (mapfile, libselect, libcompare, locatelib): Add prototypes.
7864
7865         * collect2.h (collect_execute, collect_wait, dump_file,
7866         file_exists): Constify a char*.
7867         (ldout, c_file_name, temporary_obstack, permanent_obstack,
7868         temporary_firstobj, vflag, debug): Add extern declarations.
7869         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
7870
7871         * tlink.c: Don't include toplev.h.
7872         (vflag, debug, ldout, c_file_name, temporary_obstack,
7873         permanent_obstack, temporary_firstobj): Don't declare.
7874         (tlink_execute, frob_extension, symbol_hash_lookup,
7875         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
7876         recompile_files, read_repo_files, demangle_new_symbols,
7877         scan_linker_output): Constify a char*.
7878         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
7879         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
7880
7881 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
7882
7883         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
7884         (relative) rather than jsr (absolute) subroutine call insns.
7885         * config/m68k/m68k-coff.h: Ditto.
7886
7887 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
7888
7889         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
7890         now rework these too.
7891         (arm_reorg): If an insn can't reach the end of the current pool,
7892         ensure that we emit that pool before the insn.
7893
7894 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
7895
7896         * tlink.c (scan_linker_output): Skip the initial underscore in
7897         a mangled name if appropriate.
7898
7899 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7900
7901         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
7902         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
7903         error_with_ivar, gen_declarator, create_builtin_decl,
7904         my_build_string, generate_descriptor_table, generate_ivars_list,
7905         generate_dispatch_table, check_protocols, TAG_GETCLASS,
7906         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
7907         dump_base_name, lang_decode_option, build_encode_expr,
7908         start_class, finish_class, encode_pointer, really_start_method,
7909         gen_declaration, dump_interface, handle_class_ref, handle_impent):
7910         Constify.
7911         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
7912         Add static prototypes.
7913         (build_objc_string_decl, build_selector_reference_decl,
7914         encode_bitfield, build_class_reference_decl): Remove unused
7915         parameter, all callers changed.
7916         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
7917         (objc_printable_name): Likewise.  Change second parameter to type int.
7918         (init_objc): Use memcpy, not bcopy, to avoid casts.
7919
7920 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
7921
7922         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
7923         reg notes on a deleted insn.
7924         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
7925
7926 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
7927
7928         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
7929
7930 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7931
7932         * stmt.c (expand_asm_operands): Fix index into inout_mode when
7933         reading it.
7934
7935 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
7936
7937         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
7938         * tm.texi (MD_ASM_CLOBBERS): Document it.
7939
7940 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
7941
7942         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
7943         * except.c (expand_rethrow): Remove unused variable.
7944         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
7945         * flow.c (replace_insns): Likewise.
7946         (create_edge_list, verify_edge_list): Likewise.
7947         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
7948
7949         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
7950         is special code to run.
7951         (main): Don't define operands to emit_operand.
7952         * genrecog.c (main): Don't emit an empty peephole2_insn function.
7953
7954         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
7955
7956         * alpha/alpha.h (normal_memory_operand): Declare.
7957         (reg_no_subreg_operand): Declare.
7958         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
7959
7960 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
7961
7962         * c-parse.in (compstmt_primary_start): New, broken out of first
7963         part of compstmt handling in primary.
7964         (primary): Use it.  Add an error clause.
7965         (compstmt_nostart): Renamed from compstmt; remove all
7966         initial invocations of compstmt_start.
7967         (compstmt): New.
7968
7969 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
7970
7971         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
7972         needed.
7973
7974 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
7975
7976         * combine.c (simplify_shift_const): Remove extra semicolon.
7977         * dwarf2out.c (remove_AT): Likewise.
7978         * expmed.c (expand_mult): Likewise.
7979         * gcov.c (create_program_flow_graph): Likewise.
7980         * reorg.c (mostly_true_jump): Likewise.
7981
7982 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
7983
7984         * fold-const.c (fold_range_test): Do not try to fold the range
7985         test if the rhs or lhs has side effects.
7986
7987         * combine.c (simplify_rtx): Recognize another case of a synthesized
7988         sign extension.
7989
7990         * varasm.c (mark_constant_pool): When marking indirect references,
7991         only look at SYMBOL_REFs.
7992
7993         * except.c (expand_fixup_region_end): Do not peek at
7994         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
7995
7996 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
7997
7998         * flags.h: New variables align_loops, align_loops_log,
7999         align_jumps, align_jumps_log, align_labels, align_labels_log,
8000         align_functions, align_functions_log.
8001         * toplev.c: Define them.
8002         (f_options): Handle -falign-* when they have no argument.
8003         (main): Add logic to set variables for -falign-functions,
8004         -falign-jumps, -falign-labels, -falign-loops.
8005         Make it -fsched-verbose=<n> and -finline-limit=<n>.
8006         (display_help): Change help to match options.
8007         * final.c (LABEL_ALIGN): Default to align_labels_log.
8008         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
8009         (LOOP_ALIGN): Default to align_loops_log.
8010         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
8011         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
8012         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
8013         * varasm.c (assemble_start_function): Handle align_functions.
8014
8015         * config/sparc/sparc.h: Don't declare sparc_align_*.
8016         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
8017         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
8018         sparc.c.
8019         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
8020         it's a promise.
8021         * config/sparc/sparc.c: Delete sparc_align_loops,
8022         sparc_align_jumps, sparc_align_funcs and the corresponding string
8023         variables.
8024         (sparc_override_options): Default align_functions on ultrasparc.
8025         Delete -malign-* handling.
8026
8027         * config/mips/mips.c (override_options):  On 64-bit targets,
8028         try to align code to 64-bit boundaries.
8029         (print_operand): New substitution, %~,
8030         which aligns labels to align_labels_log.
8031         * config/mips/mips.md (div_trap_normal): Use %~.
8032         (div_trap_mips16): Likewise.
8033         (abssi): Likewise.
8034         (absdi2): Likewise.
8035         (ffssi2): Likewise.
8036         (ffsdi2): Likewise.
8037         (ashldi3_internal): Likewise.
8038         (ashrdi3_internal): Likewise.
8039         (lshrdi3_internal): Likewise.
8040         (casesi_internal): Likewise.
8041
8042 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
8043
8044         Merge new ia32 backend from the branch!
8045
8046         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
8047         See ChangeLog.P2 on new_ia32_branch for details.
8048
8049         * rtl.h (stack_regs_mentioned_p): Delete prototype.
8050         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
8051         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
8052         * i386/gas.h (ASM_FILE_START): Define.
8053         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
8054         for name change of ix86_valid_decl_attribute_p.
8055         (i386_pe_valid_type_attribute_p): Similarly.
8056
8057 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
8058
8059         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
8060         to step through CC modes.
8061
8062 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8063
8064         * regmove.c (fixup_match_1): Don't move INSN in front of P if
8065         it would end up in the shadow of a live flags regsiter.
8066
8067 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8068
8069         * reload1.c: Fix many indentation problems.
8070         * reload.c: Likewise.
8071
8072 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
8073
8074         * alias.c (non_local_reference_p): Constify fmt.
8075
8076 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
8077
8078         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
8079
8080 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
8081
8082         * cse.c (delete_trivially_dead_insns): Do not delete stores to
8083         the internal_arg_pointer.
8084
8085 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
8086
8087         Merge peephole2 from new_ia32_branch:
8088         * Makefile.in (STAGESTUFF): Add *.peephole2.
8089         (mostlyclean): Likewise.
8090         (recog.o): Depend on resource.h.
8091
8092         * final.c (peephole): Conditionalize decl on HAVE_peephole.
8093         (final_scan_insn): Likewise for the invocation of peephole.
8094         * genconfig.c (main): Look for peephole and peephole2 patterns.
8095         Emit HAVE_peephole* accordingly.
8096         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
8097         * flags.h (flag_peephole2): Declare.
8098         * toplev.c: New pass peephole2.  New flag -fpeephole2.
8099
8100         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
8101         * gencodes.c (main): Likewise.
8102         * genextract.c (main): Likewise.
8103         * genoutput.c (main): Likewise.
8104         * genemit.c (max_operand_1): Look for the max scratch operand.
8105         (gen_rtx_scratch): New.
8106         (gen_exp): Use it, and pass on new arg subroutine_type.
8107         (gen_expand): Take max scratch into account.
8108         (gen_split): Emit peephole2 functions.
8109         (output_peephole2_scratch): New.
8110         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
8111         * genrecog.c (routine_type): Add PEEPHOLE2.
8112         (IS_SPLIT): New.
8113         (make_insn_sequence): Match outer parallel for peep2.  Discard
8114         top level scratches and dups.
8115         (add_to_sequence): New args insn_type and top.  Update all callers.
8116         Handle toplevel peep2 matching insns.
8117         (write_subroutine): Handle peep2.
8118         (write_tree_1): Likewise.
8119         (write_tree): Likewise.
8120         (main): Likewise.
8121         (change_state): New arg afterward.  Update all callers.
8122         Handle matching separate insns.
8123         * recog.c (recog_next_insn): New.
8124         (peephole2_optimize): New.
8125         * rtl.def (DEFINE_PEEPHOLE2): New.
8126         * resource.c (find_free_register): New argument last_insn.  Use it
8127         to find a register available through the entire span.
8128         * resource.h (find_free_register): Update prototype.
8129
8130 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
8131
8132         * i386.c (output_strlen_unroll): Don't write xops[7]
8133         label if it wasn't set.
8134
8135 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
8136
8137         * cpplib.c (struct directive): Const-ify name pointer and
8138         function pointer prototype.
8139         (validate_else, do_define, do_line, do_include, do_undef,
8140         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
8141         do_elif, do_endif, do_sccs, do_assert, do_unassert,
8142         do_warning): Const-ify second arg.
8143         (directive_table): Mark const.  Reorder entries by frequency
8144         of usage, record statistics.
8145
8146 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
8147
8148         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
8149         bounds- check RTL accesses if --enable-checking.
8150         (RTVEC_ELT): Bounds check if --enable-checking.
8151         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
8152         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
8153         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
8154         GET_NUM_ELEM.
8155         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
8156         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
8157
8158         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
8159         (NOTE_SOURCE_FILE): Use X0STR.
8160         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
8161         MEM_ALIAS_SET): Use X0INT.
8162         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
8163         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
8164         Use X0EXP.
8165         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
8166         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
8167         (rtl_check_failed_bounds, rtl_check_failed_type1,
8168         rtl_check_failed_type2, rtvec_check_failed_bounds): New
8169         functions.
8170         (fancy_abort): Fix comment.
8171
8172         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
8173         (cse_insn): Decrement LABEL_NUSES for jump target before
8174         deleting jump insn.
8175         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
8176         * final.c (alter_subreg): Compute regno before changing x to
8177         REG; set REGNO(x) after changing it.
8178         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
8179         notes containing CONST_INTs.
8180         (delete_eh_regions): Use NOTE_EH_HANDLER.
8181         * function.c (put_reg_into_stack): Make reg a MEM before
8182         initializing it.
8183         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
8184         delete insn.
8185         (gen_mem_addressof): Make reg a MEM before initializing it.
8186         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
8187         X0WINT.
8188         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
8189         deleting an insn, not after.
8190         (block_alloc): Only look at PATTERN(insn) if we have to, and
8191         only if it's format class 'i'.
8192         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
8193         CONST_INT before using its INTVAL.
8194         * print-rtl.c (print_rtx): Use X0STR.
8195         * regmove.c (fixup_match_1): Don't look at PATTERN of
8196         non-class-'i' insn chain elements.
8197         * reload.c (loc_mentioned_in_p): Take address of
8198         in->fld[1].rtx directly.
8199         * reload1.c (reload): Change reg to a MEM before initializing
8200         it.
8201         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
8202         have no names.
8203         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
8204
8205 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
8206
8207         * config/mips/mips.c (machine_dependent_reorg): Force a
8208         barrier to output the local constant pool if a barrier hasn't
8209         been found at a natural point in the instruction stream.
8210
8211 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8212
8213         * c-parse.in (language_string): Constify.
8214
8215         * dwarf2out.c (language_string): Remove declaration.
8216
8217         * dwarfout.c (language_string): Likewise.
8218
8219         * toplev.c (language_string, init_parse, finish_parse): Likewise.
8220
8221         * tree.h (language_string, init_parse, finish_parse): Declare.
8222
8223         * i386/sun386.h (language_string): Remove declaration.
8224
8225         * mips.h (language_string): Likewise.
8226
8227         * nextstep.h (language_string): Likewise.
8228
8229         * nextstep21.h (language_string): Likewise.
8230
8231         * rs6000.c (language_string): Likewise.
8232
8233 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8234
8235         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
8236         (getpwd.o): Remove target.
8237
8238         * getpwd.c: Delete file.  Its in libiberty now.
8239
8240         * dbxout.c (getpwd): Don't prototype.
8241         * dwarf2out.c (getpwd): Likewise
8242         * dwarfout.c (getpwd): Likewise
8243         * final.c (getpwd): Likewise.
8244         * protoize.c (getpwd): Likewise.
8245
8246 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8247
8248         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
8249
8250 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
8251
8252         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
8253         mark_set_resources.
8254
8255 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
8256
8257         * fixinc/Makefile.in (subdir): New.
8258         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
8259         (Makefile): New.
8260
8261 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
8262
8263         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
8264         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
8265         be shared.
8266
8267         * invoke.texi: Fix typo.
8268
8269         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
8270         changed.  Handle autoincrement addressing modes.
8271
8272         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
8273         just like we would the virtual incoming args register when
8274         integrating.
8275
8276 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
8277
8278         * rs6000.h (ASM_FILE_START): Specify complete filename, including
8279         path, in .file directive.
8280
8281 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
8282
8283         * gcc.texi (External Bugs): Remove obsolete note about Perl on
8284         SunOS.
8285
8286 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
8287
8288         * stdbool.h: Make the typedef name _Bool, with bool a #defined
8289         alias.
8290
8291 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8292
8293         * tree.c (tree_code_name): Constify a char*.
8294
8295         * tree.h (tree_code_name, decl_printable_name): Likewise.
8296
8297         * function.h (struct function): Likewise.
8298
8299         * toplev.c (decl_name, decl_printable_name): Likewise.
8300
8301         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
8302
8303         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
8304         (init_objc): Remove function pointer cast.
8305
8306 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
8307
8308         * pa.md (interspace_jump): New pattern.
8309         (builtin_longjmp): New expander.
8310
8311 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
8312
8313         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
8314         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
8315         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
8316
8317 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
8318
8319         * jump.c (delete_prior_computation): Also check calls
8320         to constant functions.  Don't bother checking for a
8321         REG_UNUSED note before adding it.
8322         (delete_computation): Handle multi-word hard registers
8323         when synthesizing missing REG_DEAD notes for a register
8324         which is both set and used by an insn.
8325
8326 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8327
8328         * loop.c (this_loop_info): New variable.
8329         (loop_has_call, loop_has_volatile, loop_has_tablejump,
8330         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
8331         All uses updated.
8332         (prescan_loop, strength_reduce): New argument loop_info.  All callers
8333         updated.
8334         (scan_loop): New variable loop_info, initialise to address of
8335         this_loop_info.
8336         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
8337         Delete variable loop_has_multiple_exit targets and replace with
8338         field in this_loop_info.
8339         (find_and_verify_loops): Rename this_loop to this_loop_num.
8340         (strength_reduce): Delete loop_iteration_info.  Replace variable
8341         loop_info with function argument of same name.
8342         (insert_bct): Rework test for loop being completely unrolled.
8343
8344         * loop.h (struct loop_info): New fields num, loops_enclosed,
8345         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
8346         has_indirect_jump, and cont.  Redefine use of unroll_number.
8347         (loop_unroll_number): Delete.
8348
8349         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
8350         field of loop_info.
8351         (loop_iterations): Delete variable vtop and instead use
8352         loop_info->vtop computed in prescan_loop.
8353
8354 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
8355
8356         * fix-header.c (main): Do not pass a null pointer to strcmp.
8357
8358 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
8359
8360         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
8361         filenames.
8362         * configure: Rebuilt.
8363
8364 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
8365
8366         * jump.c (jump_optimize_1): Do not delete assignments to
8367         internal_arg_pointer.
8368         * cse.c (delete_trivially_dead_insns): Always consider a set of
8369         the internal_arg_pointer live.
8370
8371 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
8372
8373         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
8374         (update_life_info) [REG_WAS_0]: Search the original insns rather
8375         than the new insns for the note.  Fix typos finding note_dest.
8376         If no dest found, discard the note rather than abort.
8377         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
8378         (replace_insns): Remove the old insn list after update_life_info
8379         not before.
8380
8381 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
8382
8383         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
8384         sched_analyze_insn.
8385         (sched_analyze_1): Let add_dependence care for not adding dups.
8386         (sched_analyze_2): Likewise.
8387         (add_branch_dependences): Likewise.
8388
8389 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8390
8391         * i386/winnt.c (export_list): New type.
8392         (exports_head): Rename to
8393         (export_head):  this.
8394         (i386_pe_record_exported_symbol): Add is_data flag.
8395         (i386_pe_asm_file_end): Emit directive for exported variables.
8396         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
8397         prototype.
8398         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
8399         (ASM_DECLARE_OBJECT_NAME): Likewise.
8400         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8401         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8402
8403 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
8404
8405         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
8406
8407         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
8408         operand.
8409
8410 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
8411
8412         * config/openbsd.h: Define SET_ASM_OP.
8413         * tm.texi: cross-reference SET_ASM_OP in the index.
8414
8415 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
8416
8417         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
8418         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
8419         and class_narrowest_mode at compile time.  Kill init_rtl.
8420         Mark rtx_length, mode_class, mode_size, mode_unit_size,
8421         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
8422         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
8423         EXTRA_CC_NAMES.
8424         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
8425         format.
8426         * rtl.h: Declare rtx_length and rtx_format as const.
8427         * machmode.def: Define CC().  Use CC() to define CCmode.  If
8428         EXTRA_CC_MODES is defined, expand it here.
8429         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
8430         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
8431         const.  Kill all references to EXTRA_CC_MODES.
8432
8433         * toplev.c: Don't prototype or call init_rtl.
8434         * optabs.c: Don't call init_mov_optab.
8435         * genemit.c: Don't generate init_mov_optab.  Don't call
8436         init_rtl.
8437         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
8438         here.
8439         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
8440         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
8441         genrecog.c: Don't call init_rtl.
8442
8443         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
8444         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
8445         definition of EXTRA_CC_MODES.
8446
8447         * md.texi: Kill ref to EXTRA_CC_NAMES.
8448         * tm.texi: Document new way to define EXTRA_CC_MODES.
8449
8450         * genrecog.c: Do not look up the name of a define_split.
8451         (Unrelated bugfix.)
8452
8453 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
8454
8455         * config/v850/v850.md: Fix typo introduced by previous delta.
8456
8457 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8458
8459         * gcc.c (fatal): Make definition static to match prototype.
8460
8461 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8462
8463         * combine.c (get_last_value): Don't look for earlier sets if the last
8464         known set is somewhere in between the insns being combined.
8465
8466 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
8467
8468         * configure.in: Don't use shell ! to negate exit codes
8469         * configure: Regenerate
8470
8471 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
8472
8473         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
8474         the fact that ALIGN is measured in bits, not bytes.
8475
8476 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
8477
8478         * errors.c: New file; defines functions error, warning, and
8479         fatal, variables have_error and progname.
8480         * errors.h: New file; prototypes and decls for stuff in errors.c.
8481
8482         * Makefile: Add rules to build errors.o and
8483         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
8484         genopinit, genrecog, genextract, genpeep, genattr, and
8485         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
8486         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
8487         genpeep.o, genattr.o, and genoutput.o.
8488
8489         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
8490         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
8491         define or prototype fatal.  Set progname at beginning of main.
8492         * genoutput.c:  Likewise, and don't define or prototype error
8493         either.
8494
8495         * c-typeck.c (c_expand_start_case): Return immediately if exp
8496         is an ERROR_MARK.
8497         * fold-const.c (operand_equal_p): Return immediately if arg1
8498         or arg0 are ERROR_MARKs.
8499         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
8500         fields of type ERROR_MARK when calculating if the record can
8501         go in a register.
8502
8503 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
8504         with much help from Jeffrey A Law and Richard Henderson
8505
8506         * i386.md: In the 6 insns which call output_fix_trunc,
8507         earlyclobber operands[0].
8508
8509 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
8510
8511         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
8512         creating new registers.
8513
8514 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
8515
8516         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
8517         i386_reg_alloc_order, i386_regparm_string,
8518         i386_align_loops_string, i386_align_jumps_string,
8519         i386_align_funcs_string, i386_preferred_stack_boundary_string,
8520         and i386_branch_cost_string as type "const char *".
8521         * i386.c: Define all above strings as type "const char *".
8522
8523 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
8524
8525         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
8526         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
8527
8528 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
8529
8530         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
8531         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
8532
8533 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
8534
8535         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
8536         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
8537         (dwarf2out_line, dwarf2out_finish): Likewise.
8538         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
8539
8540 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8541
8542         * tree.c (lang_unsave_expr_now) : Correct return type.
8543         * tree.h (lang_unsave_expr_now) : Same.
8544
8545 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
8546
8547         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
8548         instead of duplicating code.
8549
8550 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8551
8552         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
8553
8554 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
8555
8556         * tree.h: fancy_abort always takes three args.
8557         * resource.c: Move include of system.h before toplev.h.
8558
8559 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
8560
8561         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
8562         as SYMBOL_REFs.
8563
8564 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
8565
8566         * system.h: Don't redefine abort or trim_filename.
8567         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
8568         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
8569         whether or not __FUNCTION__ is available.
8570         * tree.h: Duplicate rtl.h's definition of abort, for files
8571         that don't include rtl.h.  Delete all code to perform type
8572         checking with a compiler other than GCC.
8573         * varray.h: Delete all code to perform type checking with a
8574         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
8575         its arguments exactly once, using a statement expression.
8576         Adjust the VARRAY_<type> accessor macros to match.
8577         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
8578         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
8579         caller's location.  Define fatal_insn and fatal_insn_not_found
8580         as macros that use _fatal_insn and _fatal_insn_not_found.
8581         (fancy_abort, trim_filename): Kill prototypes.
8582
8583         * rtl.c (trim_filename): Move here from toplev.c.
8584         (fancy_abort): New function.
8585         (DIR_SEPARATOR): Provide default definition.
8586         * tree.c (tree_check_failed, tree_class_check_failed): Go
8587         through fancy_abort.
8588         (tree_check, tree_class_check, cst_or_constructor_check,
8589         expr_check): Delete.
8590         * varray.c (varray_check_failed): New function.
8591         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
8592         _fatal_insn and _fatal_insn_not_found.  Go through
8593         fancy_abort.
8594         (trim_filename, fancy_abort): Delete.
8595
8596         * builtins.c (expand_builtin_args_info): Report ICE with abort.
8597         * except.c (start_catch_handler): Report ICE with error/abort
8598         combo.
8599         * final.c (output_operand_lossage): Likewise.
8600         * flow.c (verify_flow_info): Likewise.
8601
8602         * gcc.c: Prototype fatal.
8603         * gengenrtl.c: Undef abort after including rtl.h not system.h.
8604         * genattr.c, genattrtab.c, genemit.c, genextract.c,
8605         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
8606         Don't define fancy_abort.
8607
8608 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
8609
8610         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
8611         canonization.
8612
8613 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
8614
8615         * m88k.h (VERSION_INFO2): Kill.
8616         (VERSION_STRING): Kill.
8617         (TM_RCS_ID): Kill.
8618         (VERSION_INFO1): Tidy.
8619         (TARGET_VERSION): Update.
8620         * m88k/dgux.h (VERSION_INFO2): Kill.
8621         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
8622         * m88k/luna.h (VERSION_INFO1): Tidy.
8623         * m88k/sysv4.h (VERSION_INFO1): Likewise.
8624         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
8625         (output_file_start): Adjust for death of VERSION_STRING.
8626
8627 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
8628
8629         * cpplib.c (detect_if_not_defined): New function.
8630         (do_if): Use it to detect potential once-only headers.
8631
8632 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
8633
8634         * c-common.c (combine_strings): Always set TREE_CONSTANT.
8635
8636 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8637
8638         * combine.c (nonzero_bits) : Allow single-ly set registers to be
8639         anywere in the function only if they are pseudos and set before
8640         being used (not live at the start of the function).
8641         (num_sign_bit_copies) : Same.
8642         (get_last_value_validate) : Same.
8643         (get_last_value) : Same.
8644
8645 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
8646
8647         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
8648         where N and M are constant and N is an integer multiple of M.
8649
8650 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8651
8652         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
8653         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
8654         sbitmap_union_of_preds): Add prototypes.
8655         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
8656         the intersection of successors with the new flow graph structures.
8657         (sbitmap_intersection_of_preds): New function to compute the
8658         intersection of predecessors with the new flow graph structures.
8659         (sbitmap_union_of_succs): New function to compute the union of
8660         successors with the new flow graph structures.
8661         (sbitmap_union_of_preds): New function to compute the union of
8662         predecessors with the new flow graph structures.
8663         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
8664         (expr_reaches_here_p): Use edge and basic_block structures instead
8665         of s_preds and s_succs.
8666         (compute_cprop_avinout): Use new sbitmap routines.
8667         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
8668         of s_preds and s_succs.
8669         * flow.c (compute_flow_dominators): Compute dominators using
8670         edges and basic blocks instead of s_preds and s_succs.
8671
8672 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8673
8674         * lists.c (unused_insn_list, unused_expr_list): New file for
8675         maintaining various types of lists. New statics for maintaining a
8676         cache of available INSN_LIST and EXPR_LIST nodes.
8677         (free_list): Static function for freeing a list of INSN/EXPR nodes.
8678         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
8679         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
8680         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
8681         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
8682         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
8683         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
8684         (free_INSN_LIST_node): Free an individual INSN_LIST node.
8685         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
8686         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
8687         (remove_dependence, free_pending_lists): Use new global routines.
8688         (flush_pending_lists, sched_analyze_insn): Use new global routines.
8689         (sched_analyze, compute_block_backward_dependences): Use new routines.
8690         (sched_analyze_1, sched_analyze_2): Use new routines.
8691         (schedule_insns): Use new global routines.
8692         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
8693         prototypes.
8694         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
8695         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
8696         prototypes.
8697         * toplev.c (rest_of_compilation): Initialize node cache.
8698         * Makefile.in (OBJS): Add lists.o to list of object files.
8699         (lists.o): Add dependancies.
8700
8701 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
8702
8703         * config/v850/v850.md: Fix compile time warning messages.
8704         * config/v850/v850.c: Fix compile time warning messages.
8705         * config/v850/v850.h: Fix compile time warning messages.
8706
8707 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8708
8709         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
8710         Remove unused prototype for `init_lengths'.
8711
8712 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8713
8714         * calls.c (emit_call_1): Mark parameter `stack_size' with
8715         ATTRIBUTE_UNUSED.
8716         (expand_call): Initialize variable `insn'.
8717         (emit_library_call): Likewise for variable `high_to_save'.
8718         (emit_library_call_value): Likewise.
8719         (store_one_arg): Likewise for variables `lower_bound' and
8720         `upper_bound'.
8721
8722         * combine.c (try_combine): Likewise for variables `i2_code_number'
8723         and `other_code_number'.
8724         (find_split_point): Likewise for variables `pos', `unsignedp' and
8725         `inner'.
8726         (simplify_if_then_else): Likewise for variables `op' and `c1'.
8727         (simplify_and_const_int): Remove unused variable `width'.
8728         (merge_outer_ops): Likewise.
8729
8730         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
8731         HOST_WIDE_INT' when comparing against one.
8732         (simplify_relational_operation): Likewise.
8733         (cse_insn): Initialize variables `src_eqv_volatile',
8734         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
8735
8736         * final.c (init_final): Constify parameter `filename'.
8737         (final_start_function): Mark parameter `optimize' with
8738         ATTRIBUTE_UNUSED.
8739         (profile_function): Likewise for parameters `first' and `optimize'.
8740         (output_source_line): Likewise for parameter `file'.
8741
8742         * integrate.c (subst_constants): Cast a value to `size_t' when
8743         comparing against one.
8744         (mark_stores): Initialize variable `mode'.  Cast a value to
8745         `size_t' when comparing against one.
8746
8747         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
8748
8749         * loop.c (move_movables): Initialize variable `first'.
8750         (strength_reduce): Likewise for variable `increment'.
8751         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
8752         value to `size_t' when comparing against one.
8753         (load_mems): Initialize variable `end_label'.
8754
8755         * output.h (init_final): Constify parameter.
8756
8757         * reload.c (decompose): Initialize variable `base'.
8758
8759         * reload1.c (reload): Likewise for variable `is_scalar'.
8760         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
8761         (choose_reload_regs): Initialize variable `mode'.
8762         (emit_reload_insns): Likewise for variable `store_insn'.
8763         (reload_cse_noop_set_p): Mark parameter `insn' with
8764         ATTRIBUTE_UNUSED.
8765         (reload_combine): Initialize variable `set'.
8766
8767         * unroll.c (unroll_loop): Likewise for variable `local_label'.
8768         (copy_loop_body): Cast a value to `size_t' when comparing against
8769         one.
8770
8771         * varasm.c (assemble_variable): Initialize variable `size_tree'.
8772         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
8773         (remove_from_pending_weak_list): Mark parameter `name' with
8774         ATTRIBUTE_UNUSED.
8775
8776 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8777
8778         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
8779         gcse dump file.
8780
8781 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
8782
8783         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
8784         (ASM_DECLARE_FUNCTION_NAME): Define.
8785         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
8786         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
8787         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
8788         not already defined.
8789
8790 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8791
8792         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
8793         of n_popped when call/call_value are not defined.
8794
8795 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
8796
8797         * tm.texi: GNU CC -> GCC conversion.
8798         (CC1_SPEC): Indicate it is used for all language front ends.
8799
8800 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
8801
8802         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
8803         NOTE_INSN_EH_REGION_END correctly.
8804
8805 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
8806                           Jeff Law <law@cygnus.com>
8807
8808         * loop.c (strength_reduce): Automatically unroll loops if the
8809         unrolled loop size is smaller than the rolled loop size.
8810
8811         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
8812         and delete comment that code should be rewritten.
8813
8814 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
8815
8816         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
8817         as reachable.
8818
8819         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
8820
8821 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8822
8823         * fixinc/mkfixinc.sh: Don't fix uwin headers.
8824         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
8825         (LINK_SPEC): Add -u _main when building executables.
8826         (ASM_DECLARE_FUNCTION): Update from Cygwin.
8827         (ASM_FILE_END): Use the default for ix86-pe.
8828         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
8829
8830 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
8831
8832         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
8833         and ASM_CLOSE_PAREN are empty strings.
8834
8835 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
8836                           Geoffrey Keating <geoffk@cygnus.com>
8837
8838         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
8839         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
8840         (unprotoize.o): Ditto.
8841         (test-protoize-simple): Don't define STD_PROTO_DIR.
8842         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
8843         changes to make 'test-protoize-simple' pass.
8844         (STD_PROTO_DIR): Remove define.
8845         (STANDARD_EXEC_PREFIX): Supply default define.
8846         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
8847         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
8848         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
8849         (GET_ENV_PATH_LIST): New macro.
8850         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
8851         (do_processing): Initialize default_syscalls_dir using new
8852         macros.  Use it to initialize syscalls_absolute_filename.
8853
8854 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
8855
8856         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
8857         B into a register before emit_conditional_move.
8858
8859 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
8860
8861         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
8862         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
8863         multiplicand out of (+ (* a b) (* c d)).
8864
8865 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
8866                           Richard Henderson  <rth@cygnus.com>
8867
8868         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
8869         (new_insn_dead_notes): Likewise.
8870         (update_n_sets): Likewise.
8871         (update_flow_info): Move to flow.c, renamed to update_life_info;
8872         extend to handle multiple source insns.
8873         * flow.c: Include resource.h
8874         (unlink_insn_chain): New.
8875         (split_hard_reg_notes): New.
8876         (maybe_add_dead_note): New.
8877         (maybe_add_dead_note_use): New.
8878         (find_insn_with_note): New.
8879         (new_insn_dead_notes): New.
8880         (update_n_sets): New.
8881         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
8882         (maybe_remove_dead_notes): New.
8883         (update_life_info): New.
8884         (prepend_reg_notes): New.
8885         (replace_insns): New.
8886         * output.h (update_life_info): Declare.
8887         * recog.c (split_block_insns): Use update_life_info.
8888         * resource.c (find_free_register): Use reg_alloc_order, don't use
8889         fixed regs, make sure the mode is supported, don't use new regs.
8890         (reg_dead_p): New.
8891         * rtl.h (replace_insns): Declare.
8892
8893 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
8894
8895         * expr.c (expand_expr): Cope with COND_EXPRs with one
8896         non-returning branch.
8897
8898 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
8899
8900         * expr.c (store_expr): Always pass down the target, even when not
8901         doing CSE.
8902
8903 1999-08-24  Nick Clifton  <nickc@cygnus.com>
8904
8905         * configure.in: Define target_cpu_default for v850 targets.
8906         * configure: Regenerate
8907
8908         * config/v850/v850.h (TARGET_CPU_generic): Define.
8909         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
8910         addresses are 4 byte aligned.
8911
8912         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
8913         addresses.
8914
8915 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8916
8917         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
8918         (main): Add prototypes.
8919
8920         * genattrtab.c (substitute_address, write_const_num_delay_slots,
8921         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
8922         (write_attr_get): Emit prototypes along with function definition.
8923         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
8924         (write_complex_function): Emit static prototype along with
8925         function definition.
8926
8927         * genemit.c (gen_split): Emit prototypes along with function
8928         definition.
8929
8930         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
8931         Likewise for predicates and `insn_operand_predicate'.
8932         (process_template): Emit static prototype along with function
8933         definition.
8934
8935         * genrecog.c (make_insn_sequence): Constify a char*.  Add
8936         prototypes for get_split_*().
8937         (write_subroutine): Emit prototypes along with function
8938         definition.
8939
8940 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8941
8942         * gcse.c (find_avail_set): Follow chains of register-register copies.
8943         Use oprs_not_set_p to guarantee that the returned value can be
8944         substituted.
8945         (cprop_insn): Don't verify the return value of find_avail_set with
8946         oprs_not_set_p.
8947
8948         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
8949         (cprop_cc0_jump): New function.
8950         (cprop_insn): Break out new function cprop_jump and use it.
8951         Also use cprop_cc0_jump for machines with CC0.
8952         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
8953
8954         * tree.h (current_function_calls_setjmp,
8955         current_function_calls_longjmp): Delete declarations.
8956         * dsp16xx.c: Include "function.h".
8957         * elxsi.c: Likewise.
8958         * gmicro.c: Likewise.
8959         * h8300.c: Likewise.
8960         * i370.c: Likewise.
8961         * m32r.c: Likewise.
8962         * mn10200.c: Likewise.
8963         * mn10300.c: Likewise.
8964         * ns32k.c: Likewise.
8965         * spur.c: Likewise.
8966         * v850.c: Likewise.
8967
8968         * rtl.h (rtx_equal_function_value_matters): Declare.
8969         * toplev.c (rtx_equal_function_value_matters): Don't declare.
8970         * cse.c: Likewise.
8971         * function.c: Likewise.
8972         * emit-rtl.c: Likewise.
8973
8974 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
8975
8976         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
8977         call.
8978
8979 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8980
8981         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
8982         exactly.
8983
8984 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
8985
8986         * cpp.texi: Add a node documenting macro varargs (copied
8987         from extend.texi).
8988
8989 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
8990
8991         * cppspec.c: Put a null pointer at the end of the new argv.
8992
8993 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
8994
8995         * configure.in: Remove code to select/de-select the haifa
8996         scheduler.  Every scheduled port gets haifa now.
8997         * configure: Rebuilt.
8998         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
8999         * sched.c Deleted.
9000         * Makefile.in: Corresponding changes.
9001
9002 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9003
9004         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
9005         All callers changed.
9006         (prepare_float_lib_cmp): Likewise.
9007         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
9008         * expr.h (emit_float_lib_cmp): Delete declaration.
9009         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
9010         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
9011         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
9012         specially.
9013         (cmptf): Now conditional on TARGET_HARD_QUAD.
9014
9015 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
9016
9017         * resource.c (mark_target_live_regs): Use
9018         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
9019
9020 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9021
9022         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
9023
9024         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
9025
9026         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
9027
9028 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9029
9030         * rtl.h (rtx_format): Constify a char*.
9031
9032         * rtl.c (rtx_format): Likewise.
9033         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
9034         (init_rtl): Use accessor macro, not `rtx_format'.
9035
9036         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
9037         char*.
9038
9039         * caller-save.c (mark_referenced_regs): Likewise.
9040
9041         * combine.c (subst, make_compound_operation, known_cond,
9042         gen_rtx_combine, update_table_tick, get_last_value_validate,
9043         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
9044
9045         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
9046         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
9047         count_reg_usage): Likewise.
9048
9049         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
9050         Likewise.
9051
9052         * final.c (leaf_renumber_regs_insn): Likewise.
9053
9054         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
9055         dump_edge_info, count_reg_references): Likewise.
9056
9057         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
9058         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
9059         Likewise.
9060
9061         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
9062         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
9063         add_label_notes): Likewise.
9064
9065         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
9066         clear_struct_flag, count_sub_rtxs, count_alternatives,
9067         compares_alternatives_p, contained_in_p, walk_attr_value,
9068         write_expr_attr_cache): Likewise.
9069
9070         * genconfig.c (walk_insn_part): Likewise.
9071
9072         * genemit.c (max_operand_1, gen_exp): Likewise.
9073
9074         * genextract.c (walk_rtx): Likewise.
9075
9076         * genflags.c (num_operands): Likewise.
9077
9078         * genoutput.c (scan_operands): Likewise.
9079
9080         * genpeep.c (match_rtx): Likewise.
9081
9082         * genrecog.c (add_to_sequence): Likewise.
9083
9084         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
9085         Likewise.
9086
9087         * integrate.c (save_constants, copy_for_inline,
9088         copy_rtx_and_substitute, subst_constants, restore_constants):
9089         Likewise.
9090
9091         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
9092         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
9093
9094         * local-alloc.c (contains_replace_regs, memref_referenced_p):
9095         Likewise.
9096
9097         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
9098         add_label_notes, replace_call_address, count_nonfixed_reads,
9099         invariant_p, find_single_use_in_loop, find_mem_givs,
9100         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
9101         Likewise.
9102
9103         * print-rtl.c (reg_names, print_rtx): Likewise.
9104
9105         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
9106
9107         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
9108         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
9109         print_blocks): Likewise.
9110
9111         * regclass.c (fix_register, record_address_regs,
9112         reg_scan_mark_refs): Likewise.
9113
9114         * regmove.c (stable_but_for_p): Likewise.
9115
9116         * reload.c (loc_mentioned_in_p, operands_match_p,
9117         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
9118         copy_replacements, refers_to_regno_for_reload_p,
9119         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
9120         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
9121         Likewise.
9122
9123         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
9124         delete_address_reloads_1, count_occurrences,
9125         reload_cse_mem_conflict_p, reload_combine_note_use,
9126         add_auto_inc_notes): Likewise.
9127
9128         * resource.c (mark_referenced_resources, mark_set_resources):
9129         Likewise.
9130
9131         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
9132         reg_mentioned_p, regs_set_between_p, modified_between_p,
9133         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
9134         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
9135         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
9136         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
9137
9138         * sched.c (sched_analyze_2, attach_deaths): Likewise.
9139
9140         * stupid.c (stupid_mark_refs): Likewise.
9141
9142         * unroll.c (remap_split_bivs): Likewise.
9143
9144         * varasm.c (mark_constants): Likewise.
9145
9146         * a29k/a29k.c (uses_local_reg_p): Likewise.
9147
9148         * alpha/alpha.c (summarize_insn): Likewise.
9149
9150         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
9151         eliminate_lr2ip): Likewise.
9152
9153         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
9154
9155         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
9156         reg_mentioned_in_mem): Likewise.
9157
9158         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
9159         symbolic_reference_mentioned_p): Likewise.
9160
9161         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
9162
9163         * sh/sh.c (regs_used, mark_use): Likewise.
9164
9165         * vax/vax.c (vax_rtx_cost): Likewise.
9166
9167 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9168
9169         * machmode.h (mode_name): Constify a char*.
9170
9171         * rtl.c (mode_name): Likewise.
9172
9173         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
9174
9175         * optabs.c (init_libfuncs): Constify a char*.
9176
9177         * print-tree.c (mode_name): Remove redundant declaration.
9178         (print_node): Use accessor macro, not `mode_name'.
9179
9180         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
9181         not `mode_name'.
9182         (new_spill_reg): Constify a char*.
9183
9184         * tree.c (mode_name): Remove redundant declaration.
9185
9186 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9187
9188         * rtl.c (rtx_name): Constify a char*.
9189
9190         * rtl.h (rtx_name, fix_sched_param): Likewise.
9191
9192         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
9193         (mypr): Use accessor macro, not `rtx_name'.
9194
9195         * genemit.c (print_code): Constify a char*.
9196
9197         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
9198
9199         * genpeep.c (print_code): Constify a char*.
9200
9201         * genrecog.c (print_code): Likewise.
9202
9203         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
9204         end_bb): Add static prototype.
9205         (draw_edge): Constify a char*.
9206         (end_bb): Remove unused parameter.
9207
9208         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
9209         print_block_visualization): Constify a char*.
9210
9211 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
9212
9213         * c-common.c (c_get_alias_set): Update comment.
9214
9215 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
9216
9217         * linux.h (LIB_SPEC): Added.
9218
9219 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9220
9221         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
9222
9223 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
9224
9225         * tree.c (expr_check): Fix typo in last change.
9226
9227 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
9228
9229         * rtl.def (NOTE): Change format to "iuu0n".
9230         (ADDR_DIFF_VEC): Change format to "eEee0".
9231         (ADDRESSOF): Change format to "eit".
9232
9233         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
9234         (RTVEC_ELT): Change to match.
9235         (XVECEXP): Use XVEC and RTVEC_ELT.
9236         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
9237         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
9238         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
9239         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
9240         TRAP_CONDITION, TRAP_CODE): Use XEXP.
9241         (INTVAL): Use XWINT.
9242         (ADDRESSOF_DECL): Use XTREE.
9243         (SET_ADDRESSOF_DECL): Delete.
9244         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
9245         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
9246         ifdefed out since 2.6 at least.
9247         (gen_rtvec_vv): Delete prototype.
9248
9249         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
9250         not rtunion.
9251         (copy_most_rtx): Handle 't' format letter.
9252         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
9253         (gen_rtvec_vv): Delete function.  All callers changed to use
9254         gen_rtvec_v instead.
9255         * print-rtl.c (print_rtx): Move special casing of NOTEs to
9256         the '0' format letter.
9257
9258         * function.c (gen_mem_addressof): Don't use
9259         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
9260         instead.
9261         * integrate.c (copy_rtx_and_substitute): Likewise.
9262         Copy 't' slots with XTREE.
9263         (subst_constants): Treat 't' slots like '[swi]' slots.
9264         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
9265         * jump.c (rtx_equal_for_thread_p): Likewise.
9266         * rtlanal.c (rtx_equal_p): Likewise.
9267         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
9268         only four arguments.
9269         * gengenrtl.c (type_from_format): Provide correct types for
9270         'b' and 't' slots.
9271
9272
9273         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
9274         If a recent gcc is in use (always in stage2 and beyond), use
9275         statement expressions, so we don't make a function call unless
9276         the check fails.  Evaluate arguments exactly once.
9277         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
9278         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
9279         Delete.
9280         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
9281         they evaluate their arguments exactly once, irrespective of
9282         the compiler in use.
9283
9284         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
9285         is used by the currently-enabled check macros.  This is:
9286         (tree_check_failed, tree_class_check_failed): For gcc.
9287         (tree_check, tree_class_check, cst_or_constructor_check,
9288         expr_check): For other compilers.
9289
9290         * gencheck.c: Do not define any *_CHECK1 macros.
9291
9292 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
9293                           Mark Mitchell <mark@codesourcery.com>
9294
9295         * c-common.c (c_get_alias_set): Fix support for poitners and
9296         references.
9297
9298 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
9299
9300         * alias.c: Include tree.h.
9301         (nonlocal_reference_p, mark_constant_function): New functions.
9302         * flow.c (life_analysis): Call mark_constant_function.
9303         * rtl.h (mark_constant_function): Declare it.
9304
9305 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
9306
9307         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
9308         unrecognisable switches.
9309
9310 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9311
9312         * loop.c (recombine_givs): Set ix field after sorting.
9313         (recombine_givs): Remove bogus index / giv lockstep looping.
9314
9315 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9316
9317         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
9318         on CODE.
9319         (emit_store_flag_force): Use do_compare_rtx_and_jump.
9320         (do_cmp_and_jump): Formatting fixes.
9321         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
9322         do_compare_rtx_and_jump instead of compare_from_rtx.
9323         (do_compare_rtx_and_jump): New function; mostly copied from
9324         compare_from_rtx.
9325         (do_jump_for_compare): Delete.
9326         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
9327         MIN_EXPR.
9328         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
9329         of compare/do_jump_for_compare pairs.
9330         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
9331         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
9332         compare_from_rtx/do_jump_for_compare pairs.
9333         (do_jump_by_parts_equality): Likewise.
9334         (do_jump_by_parts_equality_rtx): Likewise.
9335         * expr.h (do_compare_rtx_and_jump): Declare.
9336         * optabs.c (prepare_cmp_insn): New function, contains most of the code
9337         that used to be in emit_cmp_insn.
9338         (cmp_available_p): New function.
9339         (prepare_operand): New function.
9340         (emit_cmp_and_jump_insn_1): New function, contains some code that used
9341         to be in emit_cmp_insn.
9342         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
9343         parameters to be pointers; don't emit final compare but modify some of
9344         the values pointed to by the args so the caller can perform the
9345         correct comparison.
9346         (expand_binop): Call emit_store_flag_force with signed forms of
9347         comparison code.
9348         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
9349         emit_jump_insn pair.
9350         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
9351         emit_cmp_and_jump_insn_1.  Call emit_queue.
9352         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
9353         arg.
9354         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
9355         jump sets cc0 before deleting it.
9356         * integrate.c (expand_inline_function): Likewise.
9357         * unroll.c (unroll_loop): Similar changes in several places.
9358         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
9359         before deleting it.
9360
9361 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9362
9363         * Makefile.in (insn-recog.o): Update dependencies.
9364         * genrecog.c (main): Make generated file include "function.h".
9365
9366 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
9367
9368         * cse.c (cse_insn): Call never_reached_warning when a jump is
9369         changed to be unconditional.
9370         * flags.h: Declare warn_notreached.
9371         * flow.c (delete_block): Call never_reached_warning when
9372         a block is deleted.
9373         * jump.c (delete_barrier_successors): Call never_reached_warning
9374         when we delete everything after a BARRIER.
9375         (never_reached_warning): New function.
9376         * rtl.h: Declare never_reached_warning.
9377         * toplev.c (warn_notreached): New variable.
9378         (lang_independent_options): Set warn_notreached
9379         when -Wunreachable-code.
9380         (compile_file): We need line numbers for -Wunreachable-code.
9381
9382 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
9383
9384         * haifa-sched.c (insn_unit): Fix typo on out of range test.
9385         * sched.c (insn_unit): Likewise.
9386
9387 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
9388
9389         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
9390
9391 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9392
9393         * flow.c (create_edge_list): Use xmalloc, not malloc.
9394
9395 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
9396
9397         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
9398         C-style comments.  Do not lose the character before double slash.
9399
9400 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9401
9402         * basic-block.h (struct edge_list): Stucture to maintain a vector
9403         of edges.
9404         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
9405          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
9406         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
9407         New function prototypes.
9408         * flow.c (create_edge_list): Function to create an edge list.
9409         (free_edge_list): Discards memory used by an edge list.
9410         (print_edge_list): Debug output showing an edge list.
9411         (verify_edge_list): Internal consistency check for an edge list.
9412         (find_edge_index): Function to find an edge index for a pred and succ.
9413
9414 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
9415
9416         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
9417         hashtable.
9418
9419 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
9420
9421         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
9422
9423 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9424
9425         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9426
9427 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
9428
9429         * toplev.c (rest_of_compilation): Allow machine dependent
9430         reorganisation pass to place information into the RTL dump
9431         file if it so wishes.
9432
9433 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
9434
9435         * explow.c (hard_function_value): Use VOIDmode instead of
9436         MAX_MACHINE_MODE.
9437         * stmt.c (expand_return): Likewise.
9438         * stor-layout.c (get_best_mode): Likewise.
9439
9440         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
9441         emit call instead of emit_insn call.
9442
9443 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9444
9445         * configure.in: Handle --disable/enable-win32-registry.
9446         * install.texi: Document --disable/enable-win32-registry.
9447         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
9448         (WIN32_REGISTRY_KEY): New macro.
9449         * prefix.c: Use to enable/disable win32-specific code.
9450         (lookup_key): Use versioned key.
9451         * configure: Regenerate.
9452         * config.in: Likewise.
9453
9454 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
9455
9456         * cpplib.c (read_line_number): New fn, split out of...
9457         (do_line): Here.
9458
9459 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
9460
9461         tree.c (lang_unsave_expr_now) : New.
9462         (unsave_expr_now): Call lang_unsave_expr_now.
9463         tree.h (lang_unsave_expr_now) : New.
9464
9465 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
9466
9467         * toplev.c (flag_new_exceptions): On by default.
9468
9469 1999-08-13  Michael Meissner  <meissner@cygnus.com>
9470
9471         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
9472
9473 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
9474
9475         * dwarfout.c (fundamental_type_code): Return FT_boolean for
9476         INTEGER_TYPE with precision==1, it's __java_boolean.
9477
9478 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9479
9480         * global.c (prune_preferences): Move some invariants out of the
9481         inner loop.
9482
9483 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
9484
9485         * configure.in (alpha*-dec-osf*): Add osf5.
9486
9487 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
9488
9489         * configure.in: Rework handling of ARM GNU/Linux slightly.
9490         (arm*-*-linux-gnuoldld): New target.
9491         * configure: Regenerate.
9492         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
9493         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
9494         * config/arm/linux-oldld.h: New file.
9495         * config/arm/linux-elf26.h: Don't include linux-elf.h.
9496         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
9497         Don't define.
9498         * config/arm/linux-elf.h (ASM_SPEC): Define.
9499         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
9500         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
9501         for 26-bit APCS and old linker.
9502         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
9503         `arm_elf'.
9504         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
9505         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
9506         don't define `arm' or `arm_elf'.
9507         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
9508         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
9509
9510 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
9511
9512         * rtl.texi: Fix typo.
9513
9514 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
9515
9516         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
9517
9518 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
9519
9520         * extend.texi (C++ Signatures): Remove node.
9521         * invoke.texi: Remove discussion of -fhandle-signatures,
9522         signature, sigof, __signature__, and __sigof__.
9523
9524 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
9525
9526         * Makefile.in (JAVAGC): Removed.
9527
9528 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9529
9530         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
9531
9532 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
9533
9534         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
9535
9536 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
9537
9538         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
9539         a register that is already known to be a pointer.
9540
9541 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
9542
9543         * fixinc/inclhack.tpl: Only install assert.h conditionally.
9544         * fixinc/inclhack.sh: Regenerated.
9545         * fixinc/fixincl.sh: Regenerated.
9546
9547 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
9548
9549         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
9550         Fix documentation of -ansi flag to describe its C++ behavior.
9551         Remove bogus reference to GCC 2.9.
9552
9553 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
9554
9555         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
9556         note if it is non-NULL.
9557
9558 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9559
9560         * except.h (eh_nesting_info): Add new structure defintion.
9561         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
9562         (reachable_handlers, update_rethrow_references): Add function
9563         prototypes.
9564         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
9565         a rethrow symbol instead of an integer exception region number.
9566         * flow.c (Make_edges): Use new exception nesting routines to determine
9567         which handlers are reachable from a CALL or asynchronous insn.
9568         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
9569         goto receivers.
9570         (delete_eh_regions): Update rethrow labels, and don't delete
9571         regions which are the target of a rethrow.
9572         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
9573         avoid overloading the SYMBOL_REF_USED flag.
9574         (rethrow_symbol_map): Use new rethrow_ref field.
9575         (rethrow_used): Use new rethrow_ref field.
9576         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
9577         of an integer.  Fix formatting.
9578         (output_exception_table_entry): Use new rethrow_ref field.
9579         (can_throw): Check for EH_REGION_NOTE before deciding
9580         whether a CALL can throw or not.
9581         (scan_region): Call rethrow_used() instead of accessing data structure.
9582         (update_rethrow_references): New function to make sure only regions
9583         which are still targets of a rethrow are flagged as such.
9584         (process_nestinfo): New static function to initialize a handler
9585         list for a specific region.
9586         (init_eh_nesting_info): New function to allocate and initialize
9587         the list of all EH handlers reachable from all regions.
9588         (reachable_handlers): New function to retrieve the list of handlers
9589         reachable from a specific region and insn.
9590         (free_eh_nesting_info): New function to dispose of a list of
9591         reachable handlers.
9592
9593 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
9594
9595         * flow.c (split_edge): Set JUMP_LABEL field.
9596         (commit_one_edge_insertion): Set head correctly for insert_before.
9597         When inserting insns, update insn block numbers if allocated.
9598
9599 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9600
9601         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
9602         retry_incomplete_types): Add static prototype.
9603         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
9604         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
9605         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
9606         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
9607         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
9608         Constify a char*.
9609
9610         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
9611         dwarf2out_start_source_file, dwarf2out_line): Likewise.
9612
9613 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9614
9615         * output.h (assemble_name): Constify a char*.
9616
9617         * varasm.c (UNIQUE_SECTION, assemble_start_function,
9618         assemble_variable, assemble_name): Likewise.
9619
9620         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
9621
9622         * arm/pe.c (arm_pe_unique_section): Likewise.
9623
9624         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
9625
9626         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
9627
9628         * i386/interix.c (i386_pe_unique_section): Likewise.
9629
9630         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
9631
9632         * i386/winnt.c (i386_pe_unique_section): Likewise.
9633
9634         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
9635
9636         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
9637
9638         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
9639
9640         * pa/pa.c (output_call): Likewise.
9641
9642         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
9643
9644         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
9645
9646         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
9647         Likewise.
9648
9649         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
9650         Likewise.
9651
9652         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
9653
9654         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
9655         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
9656
9657         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
9658
9659 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9660
9661         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
9662
9663 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9664
9665         * tree.h (lang_identify): Constify a char*.
9666         (print_error_function): Add extern prototype.  Constify a char*.
9667
9668         * c-lang.c (lang_identify): Constify a char*.
9669
9670         * objc/objc-act.c (lang_identify): Constify a char*.
9671
9672 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9673
9674         * genpeep.c (main): Make generated file include "function.h".
9675         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
9676
9677 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9678
9679         * Makefile.in: Update dependencies.
9680         * alias.c: Include "function.h"
9681         * c-decl.c: Likewise.
9682         * caller-save.c: Likewise.
9683         * calls.c: Likewise.
9684         * combine.c: Likewise.
9685         * cse.c: Likewise.
9686         * explow.c: Likewise.
9687         * final.c: Likewise.
9688         * global.c: Likewise.
9689         * graph.c: Likewise.
9690         * local-alloc.c: Likewise.
9691         * loop.c: Likewise.
9692         * optabs.c: Likewise.
9693         * profile.c: Likewise.
9694         * recog.c: Likewise.
9695         * regclass.c: Likewise.
9696         * regmove.c: Likewise.
9697         * reload.c: Likewise.
9698         * reorg.c: Likewise.
9699         * resource.c: Likewise.
9700         * sched.c: Likewise.
9701         * stupid.c: Likewise.
9702         * config/1750a/1750a.c: Likewise.
9703         * config/a29k/a29k.c: Likewise.
9704         * config/arc/arc.c: Likewise.
9705         * config/arm/arm.c: Likewise.
9706         * config/arm/thumb.c: Likewise.
9707         * config/c4x/c4x.c: Likewise.
9708         * config/clipper/clipper.c: Likewise.
9709         * config/convex/convex.c: Likewise.
9710         * config/fx80/fx80.c: Likewise.
9711         * config/i860/i860.c: Likewise.
9712         * config/m68k/m68k.c: Likewise.
9713         * config/m88k/m88k.c: Likewise.
9714         * config/mips/mips.c: Likewise.
9715         * config/pdp11/pdp11.c: Likewise.
9716         * config/pyr/pyr.c: Likewise.
9717         * config/romp/romp.c: Likewise.
9718         * config/sh/sh.c: Likewise.
9719         * config/tahoe/tahoe.c: Likewise.
9720         * config/vax/vax.c: Likewise.
9721         * config/we32k/we32k.c: Likewise.
9722         * config/sparc/sparc.c: Include "function.h".
9723         (mem_min_alignment): Test current_function rather than
9724         regno_pointer_align.
9725         * config/pa/pa.c: Likewise.
9726         (compute_frame_size): Delete declaration of
9727         current_function_outgoing_args_size.
9728         * config/arc/arc.h (current_function_varargs): Delete declaration.
9729         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
9730         declaration.
9731         * config/i370/i370.h (current_function_outgoing_args_size): Delete
9732         declaration.
9733         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
9734         current_function_uses_pic_offset_table.
9735         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
9736         of current_function_returns_pointer.
9737         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9738         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9739         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9740         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9741         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9742         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
9743         * config/m88k/m88k.c: Include "function.h"
9744         (call_used_regs, current_function_pretend_args_size,
9745         current_function_outgoing_args_size, frame_pointer_needed): Delete
9746         declarations.
9747         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
9748         declaration.
9749         * config/mips/mips.h (current_function_calls_alloca): Delete
9750         declaration.
9751         * config/mn10200/mn10200.h (current_function_needs_context,
9752         rtx_equal_function_value_matters): Delete declarations.
9753         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
9754         flag_pic): Delete declarations.
9755         * config/pa/pa.h (current_function_pretend_args_size,
9756         current_function_decl): Delete declarations.
9757         * config/pa/som.h (current_function_varargs): Delete declaration.
9758         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
9759         declaration.
9760         * config/pyr/pyr.h (current_function_pretend_args_size,
9761         current_function_args_size, current_function_calls_alloca): Delete
9762         declarations.
9763         * config/sh/sh.h (current_function_varargs): Delete declaration.
9764         * config/sparc/sparc.h (current_function_outgoing_args_size,
9765         current_function_calls_alloca, current_function_decl): Delete
9766         declarations.
9767         * config/spur/spur.h (current_function_pretend_args_size,
9768         current_function_calls_alloca): Delete declarations.
9769         * config/v850/v850.c (current_function_outgoing_args_size): Delete
9770         declaration.
9771         * config/vax/vms.h (current_function_name): Delete declaration.
9772         * gcse.c: Include "function.h".
9773         (current_function_name, current_function_calls_setjmp): Delete
9774         declarations.
9775         * haifa-sched.c: Include "function.h".
9776         (forced_labels): Delete declaration.
9777         * jump.c: Likewise.
9778         * reg-stack.c: Likewise.
9779         * reload1.c: Likewise.
9780         * genemit.c (main): Make generated file include function.h.
9781         * genoutput.c (output_prologue): Likewise.
9782
9783         * builtins.c (saveregs_value, apply_args_value): Delete variables.
9784         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
9785         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
9786         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
9787         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
9788         macros for some of them.
9789         (emit_filename, emit_lineno): Delete declarations.
9790         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
9791         regno_pointer_* variables through current_function.
9792         (gen_inline_header_rtx): Delete function.
9793         (save_emit_status): Delete function.
9794         (set_new_last_label_num): New function.
9795         (clear_emit_caches): New function.
9796         (restore_emit_status): Just clear last_labelnum and call
9797         clear_emit_caches.
9798         (get_last_insn_anywhere): Variable sequence_stack is now accessed
9799         through macro seq_stack.
9800         (add_insn_after): Likewise.
9801         (add_insn_before): Likewise.
9802         (remove_insn): Likewise.
9803         (pop_topmost_sequence): Likewise.
9804         (in_sequence_p): Likewise.
9805         (start_sequence_for_rtl_expr): Likewise.
9806         (start_sequence): Likewise, and likewise for
9807         sequence_rtl_expr/seq_rtl_expr.
9808         (push_topmost_sequence): Likewise.
9809         (end_sequence): Likewise.
9810         (init_virtual_regs): Now takes a "struct emit_status *" argument.
9811         All callers changed.  Store into that pointer instead of globals.
9812         (init_emit): Allocate emit elt of current_function.
9813         Changes for sequence_rtl_expr/sequence_stack renaming.
9814         Call clear_emit_caches instead of doing it in-line.
9815         Access regno_pointer_* variables through current_function.
9816         (init_emit_once) Don't clear sequence_stack.
9817
9818         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
9819         Delete variables.
9820         (arg_pointer_save_area): Delete declaration.
9821         (finish_expr_for_function): Renamed from init_queue; no longer static.
9822         (init_expr): Don't call init_queue.
9823         (save_expr_status, restore_expr_status): Delete functions.
9824         (expand_expr): Changes to reflect new layout of struct function.
9825         Don't access current_function_check_memory_usage when current_function
9826         is 0.
9827         * expr.h (forced_labels, save_expr_regs, saveregs_value,
9828         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
9829         current_function_outgoing_args_size, current_function_arg_offset_rtx,
9830         current_function_uses_const_pool, function_call_count,
9831         current_function_uses_pic_offset_table, nonlocal_labels,
9832         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
9833         current_function_check_memory_usage, nonlocal_goto_handler_slots,
9834         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
9835         declarations.
9836         (finish_expr_for_function): Declare.
9837         * flags.h (current_function_has_nonlocal_label,
9838         current_function_has_nonlocal_goto, current_function_is_thunk,
9839         current_function_has_computed_jump): Delete declarations.
9840         * flow.c (forced_labels): Delete declaration.
9841         * function.c (current_function_pops_args,
9842         current_function_returns_struct, current_function_returns_pcc_struct,
9843         current_function_needs_context, current_function_calls_setjmp,
9844         current_function_calls_longjmp, current_function_has_nonlocal_label,
9845         current_function_has_nonlocal_goto, current_function_is_thunk,
9846         current_function_has_computed_jump, current_function_calls_alloca,
9847         current_function_contains_functions, current_function_returns_pointer,
9848         current_function_epilogue_delay_list, current_function_args_size,
9849         current_function_pretend_args_size, current_function_arg_offset_rtx,
9850         current_function_outgoing_args_size, current_function_varargs,
9851         current_function_stdarg, current_function_args_info, cleanup_label,
9852         current_function_name, current_function_uses_const_pool,
9853         current_function_instrument_entry_exit, current_function_return_rtx,
9854         current_function_uses_pic_offset_table, nonlocal_labels,
9855         current_function_internal_arg_pointer, current_function_cannot_inline,
9856         current_function_check_memory_usage, function_call_count,
9857         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
9858         nonlocal_goto_stack_level, return_label, save_expr_regs,
9859         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
9860         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
9861         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
9862         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
9863         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
9864         Delete variables.
9865         (push_function_context_to): Don't save them.  Don't call
9866         save_storage_status, save_emit_status or save_expr_status.
9867         (pop_function_context_from): Don't restore them.  Don't call
9868         restore_storage_status or restore_expr_status.
9869         (get_func_frame_size): New function.
9870         (get_frame_size): Use it.
9871         (assign_outer_stack_local): Reflect some member name changes in struct
9872         function.
9873         (put_reg_into_stack): Likewise.
9874         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
9875         seq_rtl_expr.
9876         (fixup_var_refs): Likewise.
9877         (fix_lexical_addr): Likewise.
9878         (trampoline_address): Likewise.
9879         (prepare_function_start): Clear field inlinable of current_function.
9880         (init_function_for_compilation): New function.
9881         (expand_dummy_function_end): New function.
9882         (expand_function_end): Call finish_expr_for_function.
9883         * function.h (struct emit_status): New; fields moved here from struct
9884         function and from global variables.  Add accessor macros for some of
9885         the fields.
9886         (struct expr_status): Likewise.
9887         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
9888         (struct function): Add fields expr and emit, inlinable, inl_emit,
9889         original_arg_vector, original_decl_initial, inl_last_parm_insn,
9890         inl_max_label_num.  Add many comments.
9891         Add accessor macros for all elts of struct function that no longer
9892         have a global variable.
9893         (cleanup_label, return_label, frame_offset, tail_recursion_label,
9894         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
9895         stack_slot_list): Delete declarations.
9896         (get_func_frame_size): Declare.
9897         (save_expr_status, restore_expr_status, save_emit_status,
9898         save_storage_status, restore_storage_status): Delete declarations.
9899         (init_virtual_regs): Declare.
9900         * output.h (current_function_pops_args,
9901         current_function_returns_struct, current_function_returns_pcc_struct,
9902         current_function_needs_context, current_function_calls_setjmp,
9903         current_function_calls_longjmp, current_function_calls_alloca,
9904         current_function_has_nonlocal_label, current_function_varargs,
9905         current_function_has_computed_jump, current_function_returns_pointer,
9906         current_function_contains_functions, current_function_args_size,
9907         current_function_pretend_args_size, current_function_stdarg,
9908         current_function_outgoing_args_size, current_function_args_info,
9909         current_function_name, current_function_return_rtx,
9910         current_function_epilogue_delay_list,
9911         current_function_uses_const_pool, current_function_cannot_inline):
9912         Delete declarations.
9913         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
9914         regno_reg_rtx): Delete declaration.
9915         (REGNO_POINTER_FLAG): Delete macro.
9916         * stmt.c (expand_goto): Changes to reflect that some fields in struct
9917         function were renamed.
9918         * stor-layout.c (save_storage_status, restore_storage_status): Delete
9919         functions.
9920         * toplev.c: Include "function.h".
9921         (current_function_decl): Delete declaration.
9922         (compile_file): Call init_dummy_function_start and
9923         expand_dummy_function_end around some initializations that need to
9924         emit rtl.
9925         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
9926         Call init_function_for_compilation.
9927         * unroll.c: Include "function.h"
9928         (unroll_loop): Access regno_pointer_* variables through
9929         current_function.
9930
9931         * tree.h (struct tree_decl): Add elt f to saved_insns member.
9932         (DECL_SAVED_INSNS): use it.
9933         (expand_dummy_function_end): Declare.
9934         (init_function_for_compilation): Declare.
9935         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
9936         that it's no longer an INLINE_HEADER.
9937         (expand_call): Likewise.
9938         * integrate.c (finish_inline): Delete function.
9939         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
9940         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
9941         args.  Don't generate an INLINE_HEADER rtx, just return the arg
9942         vector.  All callers changed.
9943         (save_for_inline_copying):  Create a duplicate struct emit_status to
9944         hold the emit state for compiling the current function.  Use this and
9945         the other new fields in struct function that are for integration
9946         instead of an INLINE_HEADER.
9947         Use memcpy instead of bcopy.
9948         Store the current struct function in DECL_SAVED_INSNS of fndecl.
9949         (save_for_inline_nocopy): Similar changes, except no new emit_status
9950         is needed here.
9951         (expand_inline_function): Get information from function structure,
9952         not from an inline header rtx.
9953         (output_inline_function): Lose code to extract the necessary
9954         information from an inline header; simply put back the function
9955         structure into current_function.  Clear its inlinable elt.
9956         * rtl.def (INLINE_HEADER): Delete.
9957         * rtl.h: Delete all accessors for an INLINE_HEADER.
9958         (gen_inline_header_rtx): Delete declaration.
9959         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
9960         Delete declarations.
9961         (REGNO_POINTER_ALIGN): Delete.
9962         (clear_emit_caches): Declare.
9963         (set_new_last_label_num): Declare.
9964
9965 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
9966
9967         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
9968
9969         * except.c (expand_eh_region_start_for_decl): Always start a new block.
9970         * stmt.c (is_eh_region): Make sure current_function is present, too.
9971
9972 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
9973
9974         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
9975         for 64bit PA targets.
9976
9977         * pa.h (SELECT_SECTION): Define.
9978         * som.h (SELECT_SECTION): Delete.
9979
9980 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9981
9982         * alias.c (init_alias_analysis): Wrap call to
9983         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
9984
9985 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
9986
9987         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
9988         <sys/asm.h> contains an asm comment with an apostrophe
9989         * fixinc/inclhack.sh:  regen
9990         * fixinc/fixincl.x:  regen
9991
9992 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
9993
9994         * function.c (init_function_start): Clear prologue & epilogue.
9995         (prologue_epilogue_contains): New function.
9996         * alias.c (init_alias_analysis): Use it.
9997         * rtl.h (prologue_epilogue_contains): Declare it.
9998
9999 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
10000
10001         * jump.c (onlyjump_p): New function.
10002         * rtl.h: Declare it.
10003         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
10004         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
10005
10006 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
10007
10008         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
10009         to invert loops.  Simplify block scanning.
10010
10011 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
10012
10013         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
10014         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
10015
10016 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
10017
10018         * config/sparc/liteelf.h: New file to support sparclite-elf target
10019         * config/sparc/t-sp86x: New file to support sparc86x targets
10020         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
10021         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
10022         * configure.in: Support above target triplets
10023         * configure: Regenerated
10024
10025 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
10026
10027         * fixinc/server.c (server_setup): Do not prefix function used as
10028         parameter with `&'.
10029
10030 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
10031
10032         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
10033         Remove fp reg alternatives.
10034
10035 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
10036
10037         * Makefile.in (TAROUTOPTS): Kill.
10038         (install-headers-tar): Use "xpf" for tar headerfile extraction
10039         * i370/x-oe (TAROUTOPTS): Delete.
10040         * m68k/x-apollo68 (TAROUTOPTS): Delete.
10041         * m68k/x-hp320 (TAROUTOPTS): Delete.
10042         * m68k/x-hp320g (TAROUTOPTS): Delete.
10043         * gcc.texi: Update bug reporting text.
10044
10045 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10046
10047         * reg-stack.c (change_stack) Fixed problem with negative array index.
10048
10049 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
10050
10051         * extend.texi, install.texi: Fix spelling mistakes.
10052
10053         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
10054         (s-attrtab); No longer try to use pre-made insn-attrtab file.
10055         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
10056         PREMADE_ATTRTAB_MD.
10057         * mips/t-ecoff: Likewise.
10058         * mips/t-elf: Likewise.
10059         * mips/t-mips: Likewise.
10060         * mips/t-osfrose: Likewise.
10061         * mips/t-r3900: Likewise.
10062         * mips/t-svr3: Likewise.
10063         * mips/t-svr4: Likewise.
10064         * mips/t-ultrix: Likewise.
10065
10066         * gcc.texi: Document recommend means to provide software floating
10067         point libraries in libgcc.a
10068
10069 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
10070
10071         * c-lex.c (yylex): We can have a number with no digits.
10072
10073 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
10074
10075         * jump.c (delete_prior_computation): New function, broken
10076         out of delete_computation.  Check for side effects with
10077         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
10078         multi-word hard registers.
10079         (delete_computation): Use it.  Check for side effects with
10080         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
10081         missing REG_DEAD note for a register which is both set and
10082         used by an insn.
10083
10084 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
10085
10086         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
10087         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
10088         (ASM_FILE_START): Import _mcount with the right type.
10089         (ASM_DECLARE_FUNCTION_NAME): Define.
10090         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
10091         * pa.c (output_function_prologue): Always emit the function's label
10092         here.
10093         * pa.h (TEXT_SPACE_P): Define.
10094         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
10095         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
10096         * som.h (TEXT_SPACE_P): Delete.
10097         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
10098         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
10099
10100 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
10101
10102         * expr.c (emit_group_load): Allow src to be a CONCAT.
10103
10104 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10105
10106         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
10107         (___mulsi3): Use '!' comment character.
10108
10109 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10110
10111         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
10112
10113 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
10114
10115         * gcc.c: Update URLs and mail addresses.
10116         * gcc.texi: Likewise.
10117
10118 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
10119
10120         * rs6000.c (current_file_function_operand): Return zero for
10121         weak functions.
10122         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
10123         weak symbols.
10124         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
10125         for weak symbols.
10126
10127 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
10128
10129         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
10130         allocate space in the stack frame for the PIC register.
10131
10132 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
10133
10134         * m68k.md (xordi3, anddi3): These patterns are not available on
10135         the coldfire.
10136
10137 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
10138
10139         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
10140         (PUT_REAL): Likewise.
10141
10142 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10143
10144         * final.c (shorten_branches): Don't add an alignment for loops
10145         that have no label inside.
10146
10147 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10148
10149         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
10150         prototypes in macro HAVE_cmpstrsi.
10151
10152         * cpplib.c (cpp_get_token): Remove unused label `op3'.
10153
10154         * emit-rtl.c (operand_subword): Remove unused variable
10155         `bits_per_word'.
10156
10157         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
10158
10159         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
10160
10161 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
10162
10163         * cpphash.c (macroexpand): Delete leading whitespace when arg
10164         is concatenated before.
10165         (unsafe_chars): Correct test for whether + and - can extend a
10166         token.
10167
10168         * cppinit.c (cpp_start_read): Do dependencies for
10169         -include/-imacros files also.
10170
10171         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
10172         tokenizing non-directive lines.
10173         (cpp_expand_to_buffer): Temporarily disable no-output mode.
10174         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
10175         the input file.
10176
10177 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
10178
10179         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
10180
10181         * c-lex.c: Sync with C++ frontend.
10182         (linemode): New variable.
10183         (parse_float): imag, conversion_errno, and type are output only.
10184         (yylex): Adjust.  Move initial '.' case into main switch.
10185         Use linemode.
10186         (handle_generic_pragma): Just deal with tokens.
10187         (readescape): Use ISXDIGIT and ISGRAPH.
10188         * c-parse.in: Add END_OF_LINE token.
10189
10190         * c-lex.c (lang_init): Generalize.
10191         (nextchar): Remove.  Replace uses with UNGETC.
10192         (skip_white_space): Handle linemode here.  Optimize for cpplib.
10193         (skip_white_space_on_line): Remove.
10194         (extend_token_buffer_to): New fn.
10195         (extend_token_buffer): Use it.
10196         (read_line_number, check_newline): Just deal with tokens.
10197         (token_getch, token_put_back): New fns.
10198         (yylex): Use them.  More cpplib optimizations.  Simplify.
10199
10200 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
10201                           Jason Merrill  <jason@yorick.cygnus.com>
10202
10203         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
10204         (consume_string): Make this smart about USE_CPPLIB.
10205         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
10206         (yylex): Rewrite to be intelligent about USE_CPPLIB.
10207         Also, clean up cases where we redundantly set token_buffer[0].
10208         (read_line_number): New fn.
10209         (ignore_escape_flag): New variable.
10210
10211 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
10212
10213         * a29k/t-a29kbare: Fix some comments.
10214         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
10215         (FPBIT, DPBIT): Define.
10216         * a29k/t-vx29k: Likewise.
10217         * arc/t-arc: Likewise.
10218         * arm/t-arm-elf: Likewise.
10219         * arm/t-bare: Likewise.
10220         * arm/t-pe: Likewise.
10221         * arm/t-pe-thumb: Likewise.
10222         * arm/t-semi: Likewise.
10223         * arm/t-thumb: Likewise.
10224         * arm/t-thumb-elf: Likewise.
10225         * arm/t-thumb-linux: Likewise.
10226         * h8300/t-h8300: Likewise.
10227         * i960/t-i960: Likewise.
10228         * i960/t-vxworks960: Likewise.
10229         * m32r/t-m32r: Likewise.
10230         * mips/t-ecoff: Likewise.
10231         * mips/t-elf: Likewise.
10232         * mips/t-r3900: Likewise.
10233         * pa/t-pro: Likewise.
10234         * rs6000/t-aix43: Likewise.
10235         * rs6000/t-beos: Likewise.
10236         * rs6000/t-newas: Likewise.
10237         * rs6000/t-ppccomm: Likewise.
10238         * rs6000/t-rs6000: Likewise.
10239         * rs6000/t-winnt: Likewise.
10240         * rs6000/t-xnewas: Likewise.
10241         * rs6000/t-xrs6000: Likewise.
10242         * sh/t-sh: Likewise.
10243         * sparc/t-elf: Likewise.
10244         * sparc/t-sparcbare: Likewise.
10245         * sparc/t-sparclite: Likewise.
10246         * sparc/t-splet: Likewise.
10247         * v850/t-v850: Likewise.
10248         * mn10200/t-mn10200: Fix comments.
10249         * mn10300/t-mn10300: Likewise.
10250
10251         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
10252         dummy operand.  Allocate a new pseudo for the dummy operand.
10253         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
10254
10255         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
10256
10257 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
10258
10259         * configure: Rebuilt.
10260         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
10261
10262 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
10263
10264         * recog.c (preproces_constraints): Zero recog_op_alt before
10265         processing the constraints.
10266
10267         * arm.c (typedef minipool_node): Renamed from pool_node.
10268         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
10269         (add_minipool_constant): New function.
10270         (dump_minipool): New function.
10271         (find_barrier): Remove special case for getting the insn size of
10272         an insn that references the constant pool.
10273         (minipool_fixup): New structure.
10274         (push_minipool_barrier): New function.
10275         (push_minipool_fix): New function.
10276         (note_invalid_constants): New function.
10277         (add_pool_constant, dump_table, fixit, broken_move): Delete.
10278         (arm_reorg): Rewrite code to fix up the constant pool into a
10279         series of mini-pools embedded in the insn stream.
10280         (arm_output_epilogue): New function, made mainly from the body
10281         of output_func_epilogue.
10282         (output_func_epilogue): Move insn generation part of epilogue code
10283         to arm_output_epilogue.
10284         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
10285         * arm.md (pool_range): New attribute.
10286         (zero_extendqidi2): Add attribute pool_range.
10287         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
10288         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
10289         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
10290         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
10291         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
10292         (epilogue): New expand.
10293         (epilogue_insn): New insn.  Call arm_output_epilogue.
10294
10295         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
10296         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
10297
10298 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
10299
10300         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
10301
10302 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
10303
10304         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
10305
10306 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
10307
10308         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
10309
10310 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
10311
10312         * global.c: Fix comment.
10313
10314 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
10315
10316         * gcc.c (access_check): New static function.
10317         (find_a_file): Use it when searching a directory list.
10318         * collect2.c (find_a_file): Don't accept directories found when
10319         searching a directory list.
10320
10321 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
10322
10323         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
10324         function parameters with `&'.
10325         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
10326
10327 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
10328
10329         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
10330         or tidy_fallthru_edge if the last insn in the block is not
10331         an unconditional jump or a simple conditional jump.
10332
10333 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10334
10335         * Makefile.in (c-decl.o): Depends on defaults.h.
10336
10337 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
10338
10339         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
10340         PA1.1 and above.
10341         (CLASS_MAX_NREGS): Likewise.
10342
10343 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
10344
10345         * cse.c (cse_insn): Fix dumb thinko in last change.
10346
10347 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10348
10349         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
10350         "const char *".
10351
10352 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10353
10354         * dwarf2out.c (add_location_or_const_value_attribute): Correct
10355         test for sizes of passed and declared parameter types.
10356
10357 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10358
10359         * fixincludes: Fix the return type of bsearch, char* -> void*.
10360
10361         * fixinc/inclhack.def: Likewise.
10362
10363 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
10364
10365         * invoke.texi (-fdump-translation-unit): New option.
10366
10367 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
10368
10369         * expr.h (PROMOTE_PROTOTYPES): Move ...
10370         * defaults.h: ... to here.
10371         * c-decl.c: Include defaults.h instead of expr.h.
10372         * c-typeck.c: Include defaults.h.
10373
10374 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
10375
10376         * toplev.h (errorcount): Declare.
10377         (warningcount): Likewise.
10378         (sorrycount): Likewise.
10379         * c-lex.c (errorcount): Don't declare.
10380         * dwarf2out.c (errorcount): Don't declare.
10381
10382 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
10383
10384         * config/libgloss.h: Add a note discouraging use with ELF.
10385         * configure.in: Don't use libgloss.h for ELF targets.
10386         Always use_collect2 on a.out targets.
10387
10388 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
10389
10390         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
10391         (force_to_mode, case ASHIFTRT): Add shiftrt label.
10392
10393 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10394
10395         * loop.c (strength_reduce): When doing biv->giv conversion, update
10396         reg note of NEXT->insn.
10397
10398 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10399
10400         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
10401
10402 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10403
10404         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
10405         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
10406         Ensure expr.h is included.
10407         * c-typecheck.c (convert_arguments): Ditto.
10408
10409         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
10410
10411         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
10412         * config/convex/convex.h: Ditto.
10413         * config/dsp16xx/dsp16xx.h: Ditto.
10414         * config/fx80/fx80.h: Ditto.
10415         * config/gmicro/gmicro.h: Ditto.
10416         * config/i370/i370.h: Ditto.
10417         * config/i386/i386.h: Ditto.
10418         * config/m32r/m32r.h: Ditto.
10419         * config/m68k/m68k.h: Ditto.
10420         * config/m88k/m88k.h: Ditto.
10421         * config/mips/mips.h: Ditto.
10422         * config/pa/pa.h: Ditto.
10423         * config/pyr/pyr.h: Ditto.
10424         * config/tahoe/tahoe.h: Ditto.
10425         * config/we32k/we32k.h: Ditto.
10426
10427         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
10428         based on arch size.
10429
10430         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
10431
10432         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
10433         from comment.
10434
10435         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
10436
10437 1999-08-02  Richard Henderson  <rth@cygnus.com>
10438
10439         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
10440         for the register spill block.
10441         (m32r_va_arg): New.
10442         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
10443         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
10444
10445         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
10446         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
10447         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
10448
10449 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10450
10451         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
10452         MAX_WCHAR_TYPE defined in sparc.h.
10453         * config/sparc/linuxaout.h: Likewise.
10454         * config/sparc/linux64.h: Likewise.
10455         Also default to -mvis if CPU is UltraSPARC.
10456
10457 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10458
10459         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
10460         (RTX_OK_FOR_OLO10): Likewise.
10461         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
10462         %lo(), allow it in addresses...
10463         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
10464         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
10465         does not make sense.
10466         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
10467         (sparc_output_scratch_registers): New function.
10468         (output_function_prologue, sparc_flat_output_function_prologue): Use
10469         it.
10470         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
10471         defined.
10472         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
10473         * configure.in: Add check for .register pseudo-op support in as and
10474         check for offsetable %lo().
10475         * acconfig.h: Add templates for the above checks.
10476         * configure: Regenerate.
10477
10478 1999-08-02  Richard Henderson  <rth@cygnus.com>
10479
10480         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
10481         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
10482         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
10483
10484 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10485
10486         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
10487         reg_biv_class.
10488
10489 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
10490
10491         * config/float-sparc.h: New file.
10492         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
10493         sparc-*-linux-gnu and sparc64-*-linux*.
10494
10495 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10496
10497         * rs6000.c (rs6000_va_list): Type is an array.
10498         (rs6000_va_start): Don't doubly adjust for varargs.
10499         (rs6000_va_arg): Evaluate long long GPR adjustment.
10500
10501 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
10502
10503         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
10504         -maix64 and -maix32.
10505         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
10506         LINK_SPEC): Change appropriately.
10507         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
10508         (u_short_cint_operand): Likewise.
10509         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
10510         for 64-bit hosts.
10511         * rs6000/t-aix43 (MULTILIB): Change to -m64.
10512
10513         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
10514
10515 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
10516
10517         * rs6000/rs6000.c (num_insns_constant_wide): Correct
10518         for type promotion.
10519         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
10520         (non_add_cint_operand): Likewise.
10521         (logical_operand): Likewise.
10522         (non_logical_cint_operand): Likewise.
10523         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
10524         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
10525         (rs6000_select_rtx_section): Suppress warning.
10526         (small_data_operand): Suppress warning.
10527         (rs6000_got_register): Suppress warning.
10528         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
10529         type, so `J' is generally the wrong constraint for a SImode value;
10530         use `L' instead.
10531         (andsi3_internal2): Likewise.
10532         (andsi3_internal3): Likewise.
10533         (iorsi3_internal1): Likewise.
10534         (xorsi3_internal1): Likewise.
10535         (movsi): Likewise.
10536         (movsf_softfloat): Likewise.
10537         (scc insns): Likewise.
10538         (movsi+2): Preserve sign bits of SImode constant.
10539         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
10540         (movdf+1): Sign-extend properly.
10541         (movdi_32+1): Sign-extend properly.
10542         (scc insns): Sign-extend properly.
10543
10544         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
10545         K, L, and T.
10546
10547 1999-08-02  Richard Henderson  <rth@cygnus.com>
10548
10549         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
10550         -mcpu parsing code.
10551         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
10552         * alpha.md (all fp insns): Likewise.
10553
10554 1999-08-02  Nick Clifton  <nickc@cygnus.com>
10555
10556         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
10557         already defined.
10558
10559 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
10560
10561         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
10562         pic_load_label generator directly.
10563         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
10564         No longer a named pattern.
10565
10566 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
10567
10568         * explow.c (force_reg): Call force_operand if X does not
10569         satisfy general_operand.
10570
10571 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
10572
10573         * fix-header.c (main): When testing for CONTINUED, use string
10574         equality, not pointer equality.
10575
10576 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
10577
10578         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
10579
10580 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
10581
10582         * cse.c (cse_insn): Fix loop which deletes insns after a jump
10583         that has become an unconditional jump.
10584
10585         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
10586         (output_function_epilogue): Similarly.
10587
10588 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10589
10590         * tree.h (init_dummy_function_start): Declare.
10591
10592 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10593
10594         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
10595         last_expr_type, last_expr_value, block_start_count, block_stack,
10596         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
10597         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
10598         dynamically in stmt elt of struct function for each function.
10599         (struct nesting): Rename function_call_count elt to n_function_calls,
10600         target_temp_slot_level to block_target_temp_slot_level.  All users
10601         changed.
10602         (struct stmt_status): New structure definition.
10603         Add many accessor macros for stmt_status elements which previously
10604         were global variables.
10605         (init_stmt_for_function): Allocate stmt elt for current_function.
10606         Reflect that block_start_count was renamed to
10607         current_block_start_count.
10608         (save_stmt_status, restore_stmt_status): Delete functions.
10609         (preserve_subexpressions_p): Don't access loop_stack when outside
10610         a function.
10611         (expand_start_bindings): Reflect that block_start_count was renamed to
10612         current_block_start_count.
10613         (expand_fixup): Likewise.
10614         (expand_decl): Don't access block_stack when outside a function.
10615         (expand_decl_cleanup): Likewise.
10616         (expand_dcc_cleanup): Likewise.
10617         (expand_dhc_cleanup): Likewise.
10618         (expand_anon_union_decl): Likewise.
10619         (set_file_and_line_for_stmt): New function.
10620         (in_control_zone_p): New function.
10621
10622         * function.h (struct function): Add new elt stmt.
10623         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
10624         case_stack, nesting_stack, nesting_depth, block_start_count,
10625         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
10626         emit_lineno, goto_fixup_chain.
10627         (save_eh_status, restore_eh_status, save_stmt_status,
10628         restore_stmt_status): Delete declarations.
10629         * function.c (push_function_context_to): Don't call save_stmt_status.
10630         (pop_function_context_to): Don't call restore_stmt_status.
10631         * tree.h (in_control_zone_p): Declare.
10632         * rtl.h (set_file_and_line_for_stmt): Declare.
10633
10634         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
10635         call set_file_and_line_for_stmt.
10636
10637 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
10638
10639         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
10640         Also update copyright.
10641
10642 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10643
10644         * c-pragma.c: Don't include "except.h".
10645         * emit-rtl.c: Likewise.
10646         * stor-layout.c: Likewise.
10647         * tree.c: Likewise.
10648         * varasm.c: Likewise.
10649
10650         * flow.c: Include "function.h".
10651         * tree.h (init_dummy_function_start): Declare new function.
10652
10653         * except.h (struct eh_status): New structure.
10654         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
10655         been included.
10656         (eh_return_stub_label, ehstack, catchstack, ehqueue,
10657         catch_clauses, false_label_stack, caught_return_label_stack,
10658         protect_list, current_function_ehc): Add accessor macros for the
10659         corresponding fields in current_function->eh; delete declarations
10660         for all items that used to be declared here.
10661         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
10662         catch_clauses, false_label_stack, caught_return_label_stack,
10663         protect_list, current_function_ehc): Delete variables.
10664         (init_eh_for_function): Allocate current_function->eh.
10665         (save_eh_status, restore_eh_status): Delete functions.
10666
10667         * function.h (struct function): Add fields next_global and eh.
10668         Delete all exception handling related fields.
10669         * function.c (current_function): New variable.
10670         (all_functions): New variable.
10671         (push_function_context_to): Don't allocate a struct function,
10672         use current_function instead.  Call init_dummy_function_start when
10673         outside a function.  Clear current_function before returning.
10674         (pop_function_context_from): Restore current_function.
10675         Don't free the restored struct function.
10676         (prepare_function_start): New function.
10677         (init_dummy_function_start): New function.
10678         (init_function_start): Break out some code into prepare_function_start
10679         and call it here.
10680
10681         * stmt.c (save_stmt_status): Don't call save_eh_status.
10682         (restore_stmt_status): Don't call restore_eh_status.
10683
10684         * Makefile.in: Update dependencies.
10685
10686 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
10687
10688         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
10689         of depending on a magic constant value.  Update comments.
10690         (hppa_expand_prologue): Similarly.
10691
10692         * pa.md (reload_indi, reload_outdi): Allow any register for the
10693         original reload register.
10694
10695 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
10696
10697         * cccp.c (print_help): Change marcos to macros.
10698
10699 1999-07-30  Richard Henderson  <rth@cygnus.com>
10700
10701         * c-typeck.c (initializer_constant_valid_p): Move ...
10702         * c-common.c (initializer_constant_valid_p): ... here.  Use
10703         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
10704         of label addresses.
10705         * c-common.h (initializer_constant_valid_p): Declare.
10706         * c-tree.h (initializer_constant_valid_p): Remove.
10707
10708 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
10709
10710         * config/i386/sol2-c1.asm: Align the stack.
10711         * config/i386/sol2-gc1.asm: Likewise.
10712
10713 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
10714
10715         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
10716         -Asparclite for sparc86x.
10717         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
10718         sparc86x.
10719         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
10720
10721 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
10722
10723         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
10724         the user if using the non-default arch size in BI_ARCH configuration.
10725         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
10726
10727         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
10728         Fix patterns so that they actually match.
10729         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
10730         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
10731         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
10732         TARGET_HARD_MUL32.
10733         (mulsidi3): Reflect this in the expand.
10734         (smulsi3_highpart): Only on TARGET_ARCH32.
10735         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
10736         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
10737         (umulsidi3): Reflect this in the expand.
10738         (umulsi3_highpart): Only on TARGET_ARCH32.
10739         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
10740         don't require g0 to be zero.
10741         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
10742         ({,u}divsi3): New expands.
10743         ({,u}divsi3_sp64): New patterns.
10744         (after lshrdi3_v8plus): Four new patterns to help combiner
10745         optimizing nested mixed mode shifts.
10746
10747         * config/sparc/sparc.c (sparc_override_options): Use deprecated
10748         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
10749         speed things up. Don't use them by default on plain v9 in 64bit
10750         mode, according to what SPAMv9 sais.
10751
10752         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
10753         top 32 bits of %[og][0-7] in signal handlers.
10754         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
10755
10756 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
10757
10758         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
10759         (ashlsi3): Corresponding changes.
10760
10761         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
10762
10763 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
10764
10765         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
10766
10767 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10768
10769         * arm.h (Hint): Delete macro.
10770         Substitute HOST_WIDE_INT for Hint in some prototypes.
10771         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
10772
10773 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
10774
10775         * builtins.c (expand_builtin_setjmp): Use force_operand to
10776         make sure that the buffer address is in a suitable form to be
10777         passed to force_reg.
10778
10779 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
10780
10781         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
10782         them here.
10783
10784 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
10785
10786         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
10787         proper mode in the condition string.
10788         (icacheflush, dcacheflush): Remove modes from match_operands.
10789
10790         * pa.c (emit_move_sequence): Always convert scratch_reg to the
10791         proper mode before using it.
10792
10793         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
10794         pair.
10795
10796         * pa.c (store_reg): Do not call add_high_const generator directly.
10797         (load_reg, set_reg_plus_d): Likewise.
10798         * pa.md (add_high_const): No longer a named pattern.
10799
10800         * pa.c (legitimize_address): Consistently use Pmode rather than
10801         SImode.  Do not call gen_pic2_highpart directly anymore.
10802         * pa.md (pic2_highpart): No longer a named pattern.
10803         (pic2_lo_sum): Similarly.  Reformat to make more readable.
10804
10805         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
10806         needed.
10807
10808         * README: Update.
10809
10810 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10811
10812         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
10813
10814 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
10815
10816         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
10817         and tag the spill mems.
10818         (hppa_va_start): New.
10819         (hppa_va_arg): New.
10820         * pa.h (EXPAND_BUILTIN_VA_START): New.
10821         (EXPAND_BUILTIN_VA_ARG): New.
10822
10823 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
10824
10825         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
10826         and tag the spill mems.
10827         (mn10300_va_start): New.
10828         (mn10300_va_arg): New.
10829         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
10830         (EXPAND_BUILTIN_VA_ARG): New.
10831
10832 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
10833
10834         * mn10200.c (mn10200_va_arg): New.
10835         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
10836
10837 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
10838
10839         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
10840         rather than play with TREE_INT_CST_LOW.
10841
10842 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
10843
10844         * config/arm/telf.h: Include dbxelf.h.
10845         (CPP_PREDEFINES): Only define if not already defined.
10846         (ASM_IDENTIFY_GCC): Likewise.
10847         (SUBTARGET_EXTRA_SECTIONS): Likewise.
10848         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
10849         * config/arm/thumb.h (LINK_SPEC): Only define if not already
10850         defined.
10851         (DBX_DEBUGGING_INFO): Don't define.
10852         * config/arm/linux-telf.h: New file.
10853         * config/arm/linux-tgas.h: New file.
10854         * config/arm/t-thumb-linux: New file.
10855         * config/arm/uclinux-elf.h: New file.
10856         * config/arm/uclinux-telf.h: New file.
10857         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
10858         thumb-*-uclinux): New targets.
10859         * configure: Regenerate.
10860
10861 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
10862
10863         * pa.md (post_store, pre_load): New expanders.
10864         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
10865         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
10866         need to directly generate RTL for them.
10867         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
10868         changes.
10869
10870 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
10871
10872         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
10873         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
10874         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
10875         (secndary_reload_class): Make TARGET_ELF conditional compile.
10876         (print_operand_address): Similar.
10877         (output_toc): Print all values as hex.
10878         (get_issue_rate): Rearrange and add RS64A and PPC630.
10879         * rs6000.h (processor_type): Add RS64A and PPC630.
10880         (PROCESSOR_POWERPC64): New.
10881         (PROMOTE_MODE): Use word_mode.
10882         (RTX_COSTS): Add RS64A and PPC630.
10883         * rs6000.md (scheduling information): Add lmul and ldiv
10884         representing 64-bit integer multiply and divide.  Add rs64a and
10885         PPC630 information.
10886         (ashldi3): Add support for "rldic" instruction.
10887         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
10888
10889 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
10890
10891         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
10892         instead of V8 for sparclite86x in cpu_table.
10893
10894 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10895
10896         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
10897         output_file_directive.
10898
10899 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
10900
10901         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
10902         tree for op1, not the rtl.
10903
10904 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
10905
10906         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
10907         to m88k_va_start, leaving only the register spill.
10908         (m88k_build_va_list): New.
10909         (m88k_va_start): New.
10910         (m88k_va_arg): New.
10911         * m88k.h (BUILD_VA_LIST_TYPE): New.
10912         (EXPAND_BUILTIN_VA_START): New.
10913         (EXPAND_BUILTIN_VA_ARG): New.
10914
10915 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
10916
10917         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
10918         Rename from expand_builtin_saveregs.
10919         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
10920
10921 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
10922
10923         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
10924         for the register spill block.
10925         (i960_build_va_list): New.
10926         (i960_va_start): New.
10927         (i960_va_arg): New.
10928         * i960.h (BUILD_VA_LIST_TYPE): New.
10929         (EXPAND_BUILTIN_VA_START): New.
10930         (EXPAND_BUILTIN_VA_ARG): New.
10931         * i960.md (store_multiple): Use change_address on individul mems.
10932
10933 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
10934
10935         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
10936         an ARRAY_TYPE.
10937         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
10938         (expand_builtin_va_end): Evaluate arg for side effects.
10939         * c-common.c (c_common_nodes_and_builtins): Construct a
10940         va_list_arg_type_node to handle array decomposition to pointer.
10941
10942 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
10943
10944         * except.c (start_dynamic_cleanup): Use force_operand on the
10945         buffer's address.
10946
10947 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
10948
10949         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
10950         * c4x.c (c4x_va_arg): New.
10951
10952 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
10953
10954         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
10955         has manual_pop set.
10956
10957 1999-07-26  Nathan Sidwell  <nathan@acm.org>
10958
10959         * eh-common.h (__eh_matcher): Prototype correctly.
10960
10961 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
10962
10963         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
10964         (TARGET_SINGLE_PIC_BASE): Likewise.
10965         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
10966         definitions.
10967         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
10968         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
10969         (TARGET_OPTIONS): Add -mpic-register=N.
10970         (OUTPUT_INT_ADDR_CONST): New macro.
10971         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
10972         LEGITIMATE_PIC_OPERAND_P): Likewise.
10973         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
10974         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
10975         output_addr_const directly.
10976         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
10977         ARM port.
10978         (thumb_pic_register, thumb_pic_register_string): Declare.
10979
10980         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
10981         from arm.c.
10982         (label_mentioned_p): New function: Imported from arm.c.
10983         (legitimize_pic_address): New function: Imported from arm.c.
10984         (is_pic):New function: Imported from arm.c.
10985         (thumb_finalize_pic):New function: Imported from arm.c.
10986         (add_constant): Cope with PIC constants.
10987         (fixit): Cope with PIC constants.
10988         (output_return): Do not treat the PIC register as live if
10989         TARGET_SINGLE_PIC_BASE is true.
10990         (thumb_function_prologue): Do not treat the PIC register as live if
10991         TARGET_SINGLE_PIC_BASE is true.
10992         (thumb_expand_prologue): Do not treat the PIC register as live if
10993         TARGET_SINGLE_PIC_BASE is true.
10994         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
10995         TARGET_SINGLE_PIC_BASE is true.
10996         (thumb_print_operand): Accept '|'.
10997         (thumb_override_options): Process PIC options.
10998
10999         * config/arm/thumb.md (movsi): Support PIC.
11000         (call_insn): Change "i" constraint to "X".
11001         (call_value_insn): Likewise.
11002         (consttable_4, consttable_8, consttable_end): Set and clear
11003         "making_const_table" as appropriate.
11004         (pic_load_addr, pic_add_dot_plus_four): New insns.
11005
11006         * invoke.texi (Thumb Options): Fix spelling.  Document new
11007         options -msingle-pic-base and -mpic-register=.
11008
11009 1999-07-26  Andrew Haley  <aph@cygnus.com>
11010
11011         * config/m32r/initfini.c (__init): Use a full word immediate for
11012         __fini: this allows it to be placed in any memory region.
11013
11014         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
11015         -mmodel=medium.  This is OK for all memory models.
11016
11017 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
11018
11019         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
11020         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
11021
11022 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
11023
11024         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
11025         defined.
11026
11027         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
11028
11029 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
11030
11031         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
11032         (BUILD_VA_LIST_TYPE): New.
11033         (EXPAND_BUILTIN_VA_START): New.
11034         (EXPAND_BUILTIN_VA_ARG): New.
11035         * i860.c (output_delayed_branch): Disable.
11036         (output_delay_insn): Likewise.
11037         (i860_saveregs): New.
11038         (i860_build_va_list): New.
11039         (i860_va_start): New.
11040         (i860_va_arg): New.
11041         * i860.md: Disable all peepholes using output_delayed_branch.
11042         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
11043
11044 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
11045
11046         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
11047         (BUILD_VA_LIST_TYPE): New.
11048         (EXPAND_BUILTIN_VA_START): New.
11049         (EXPAND_BUILTIN_VA_ARG): New.
11050         * clipper.c (clipper_builtin_saveregs): Only dump registers.
11051         Return the address of the save area.
11052         (clipper_build_va_list): New.
11053         (clipper_va_start): New.
11054         (clipper_va_arg): New.
11055
11056 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
11057
11058         * arc.h (EXPAND_BUILTIN_VA_START): New.
11059         (EXPAND_BUILTIN_VA_ARG): New.
11060         * arc.c (arc_setup_incoming_varargs): Set alias set of
11061         varargs save area.
11062         (arc_va_start): New.
11063         (arc_va_arg): New.
11064
11065 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
11066
11067         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
11068         (BUILD_VA_LIST_TYPE): New.
11069         (EXPAND_BUILTIN_VA_START): New.
11070         (EXPAND_BUILTIN_VA_ARG): New.
11071         * alpha.c (alpha_builtin_saveregs): Delete.
11072         (alpha_build_va_list): New.
11073         (alpha_va_start): New.
11074         (alpha_va_arg): New.
11075
11076 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
11077
11078         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
11079         column zero.
11080         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
11081         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
11082
11083         * gcc.texi: More changes related to list conversion.
11084         * invoke.texi: Likewise.
11085
11086 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
11087
11088         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
11089         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
11090         (expand_builtin_next_arg): Accept ARGLIST not EXP.
11091         (stabilize_va_list): New function.
11092         (std_expand_builtin_va_start): New function.
11093         (expand_builtin_va_start): New function.
11094         (get_varargs_alias_set): New function.
11095         (std_expand_builtin_va_arg): New function.
11096         (expand_builtin_va_arg): New function.
11097         (expand_builtin_va_end): New function.
11098         (expand_builtin_va_copy): New function.
11099         (expand_builtin): Call them.
11100         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
11101         __builtin_{varargs_start,stdarg_start,end,copy}.
11102         (build_va_arg): New function.
11103         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
11104         (build_va_arg): Declare.
11105         * c-decl.c (ptr_type_node, va_list_type_node): New.
11106         * c-parse.gperf (__builtin_va_arg): New.
11107         * c-parse.in (VA_ARG): New token.
11108         (unary_expr): Recognize it.
11109         * expr.c (expand_expr): Expand VA_ARG_EXPR.
11110         * expr.h (std_expand_builtin_va_start): Declare.
11111         (std_expand_builtin_va_arg): Declare.
11112         (expand_builtin_va_arg): Declare.
11113         (get_varargs_alias_set): Declare.
11114         * tree.def (VA_ARG_EXPR): New.
11115         * tree.h (BUILT_IN_VARARGS_START): New.
11116         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
11117         (ptr_type_node, va_list_type_node): Declare.
11118         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
11119         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
11120         * m88k.h, m88k.c: Likewise.
11121         * mn10300.h, mn10300.c: Likewise.
11122         * pa.h, pa.c: Likewise.
11123         * rs6000.h, rs6000.c: Likewise.
11124         * sh.h, sh.c: Likewise.
11125         * sparc.h, sparc.c: Likewise.
11126
11127         * emit-rtl.c (operand_subword): Copy alias set.
11128         (change_address): Likewise.
11129
11130 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
11131
11132         * pa.c (compute_frame_size): Scan all the used callee saved registers,
11133         not just the first one.
11134
11135 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
11136
11137         * config/arm/arm.h (TARGET_SWITCHES): Add
11138         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
11139         (TARGET_OPTIONS): Add -mpic-register=.
11140         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
11141         (arm_pic_register_string): Declare.
11142         (NEED_PLT_GOT): Delete, replace with ...
11143         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
11144         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
11145         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
11146         * config/arm/arm.c (arm_override_options): Add new option
11147         -mpic-register=N.
11148         (arm_pic_register_string): New variable.
11149         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
11150         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
11151         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
11152         (output_return_instruction): Likewise.
11153         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
11154         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
11155         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
11156
11157         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
11158         mention of -msched-prolog.  Document new options -msingle-pic-base
11159         and -mpic-register=.
11160
11161 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
11162
11163         * haifa-sched.c (reemit_notes): Tidy.
11164         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
11165         haifa's routine.
11166
11167 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
11168
11169         * explow.c (trunc_int_for_mode): New function.
11170         (plus_constant_wide): Use it.
11171         * combine.c (simplify_and_const_int): Likewise.
11172         (merge_outer_ops): Likewise.
11173         (simplify_shift_const): Likewise.
11174         * cse.c (simplify_unary_operation): Likewise.
11175         (simplify_binary_operation): Likewise.
11176         * emit-rtl.c (operand_subword): Likewise.
11177         * rtl.h: Declare it.
11178
11179 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11180
11181         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
11182         (use NUM_REGS instead of NUM_INTS).
11183
11184 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11185
11186         * builtins.c: New file.
11187         * expr.c (saveregs_value, apply_args_value):  Delete definition,
11188         moved into builtins.c.
11189         (string_constant): No longer static.
11190         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
11191         apply_args_size, apply_result_size, result_vector,
11192         expand_builtin_apply_args, expand_builtin_apply,
11193         expand_builtin_return): Delete functions, moved into builtins.c.
11194         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
11195         * expr.h (saveregs_value, apply_args_value): Declare variables.
11196         (expand_builtin, string_constant): Declare functions.
11197         * Makefile.in: Update to build builtin.o.
11198
11199 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
11200
11201         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
11202         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
11203         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
11204         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
11205         false.
11206         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
11207         Define to zero.
11208
11209 1999-07-21  Michael Meissner  <meissner@cygnus.com>
11210
11211         * print-rtl.c (print_rtx): Print the names of the virtual
11212         registers.
11213
11214 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
11215
11216         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
11217         introduced in previous delta.
11218
11219 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11220
11221         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
11222         to avoid name clash.
11223
11224 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11225
11226         * c-lex.c (yylex) : Correct the test for overflow when lexing
11227         integer literals.
11228
11229 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
11230
11231         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
11232         (adjust_priority): Always call ADJUST_PRIORITY.
11233         (schedule_insn): Only put insns into the ready at cost 0.
11234         (schedule_block): Remove redundant initial sort.  Give clock_var
11235         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
11236         is not 0.
11237         * tm.texi (MD_SCHED_REORDER): Update docs.
11238
11239         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
11240         * sparc.c (ultra_reorder_called_this_block): Delete.
11241         (ultrasparc_sched_init): Don't set it.
11242         (ultrasparc_sched_reorder): Don't check it.
11243
11244 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
11245
11246         * rs6000.h (struct rs6000_args): Add sysv_gregno.
11247         * rs6000.c (init_cumulative_args): Init sysv_gregno.
11248         (function_arg_boundary): Align DFmode.
11249         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
11250         to get fp reg and stack overflow correct.
11251         (function_arg): Likewise.
11252         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
11253         (setup_incoming_varargs): Restructure for ABI_V4; use
11254         function_arg_advance to skip final named argument.
11255         (expand_builtin_saveregs): Properly unskip the last integer arg
11256         when doing varargs.  Adjust overflow location calculation.
11257
11258         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
11259         explicitly unsigned.
11260         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
11261         (__VA_GP_REGSAVE): Similarly.
11262         (__va_longlong_p): Delete.
11263         (__va_arg_type_violation): New declaration.
11264         (va_arg): Restructure.  Flag promotion errors.  Align double.
11265         TFmode passed by reference.
11266
11267         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
11268         in the HOST_BITS_PER_WIDE_INT > 32 case.
11269
11270 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
11271
11272         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
11273
11274 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
11275
11276         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
11277         * toplev.c (documented_lang_options): Add -fpreprocessed.
11278         * cpplib.h (struct cpp_buffer): Add preprocessed.
11279         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
11280         (cpp_start_read): Don't expand macros or emit an initial #line
11281         directive if -fpreprocessed.
11282
11283 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
11284
11285         * cpplib.h (struct cpp_buffer): Added manual_pop for
11286         better C++ tokenization.
11287         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
11288         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
11289         * c-common.c (cpp_token): Make non-static.
11290
11291 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11292
11293         * c-common.h: New file.
11294         * c-common.c (permanent_obstack): Delete unused declaration.
11295         (c_global_trees): New array.
11296         (c_common_nodes_and_builtins): New function; split off common code
11297         from init_decl_processing in both c-decl.c and cp/decl.c.
11298         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
11299         c_global_trees and accessor macros defined in c-common.h.
11300         Include c-common.h.
11301         * c-decl.c: Delete definitions for tree nodes that were replaced by
11302         c_global_trees.
11303         (init_decl_processing): Build void_list_node.
11304         Call c_common_nodes_and_builtins; delete code to generate the common
11305         builtins here.
11306         * objc/objc-act.c (build_module_descriptor): Rename variable
11307         void_list_node to avoid clash with c-common.h.
11308
11309         * Makefile.in: Update dependencies.
11310         * objc/Make-lang.in: Likewise.
11311
11312 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
11313
11314         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
11315         (UNIQUE_SECTION_P): Likewise.
11316         (UNIQUE_SECTION): Likewise.
11317
11318 1999-07-19  Linas Vepstas  <linas@linas.org>
11319
11320         * config/i370/README: New file.
11321         * config/i370/linux.h: New file.
11322         * config/i370/mvs.h: New file.
11323         * config/i370/oe.h: New file.
11324         * config/i370/t-linux: New file.
11325         * config/i370/t-mvs: New file.
11326         * config/i370/t-oe: New file.
11327         * config/i370/x-oe: New file.
11328         * config/i370/xm-linux.h: New file.
11329         * config/i370/xm-mvs.h: New file.
11330         * config/i370/xm-oe.h: New file.
11331
11332         * i370.c (label_node_t): Add first_ref_page, label_addr,
11333         label_first_ref, label_last_ref members.
11334         (mvs_need_base_reload): Renamed from mvs_label_emitted.
11335         (MAX_MVS_LABEL_SIZE): Define.
11336         (MAX_LONG_LABEL_SIZE): Define.
11337         (alias_node_t, alias_anchor, alias_number): New.
11338         (mvs_function_table): Reorder for EBCDIC.
11339         (ascebc, ebcasc): Unconditionally define.
11340         (i370_branch_dest, i370_branch_length): New functions.
11341         (i370_short_branch, i370_label_scan): New functions.
11342         (mvs_get_label): Renamed from mvs_add_label.  Search for
11343         an existing label before creating a new one.
11344         (mvs_add_label): New function.
11345         (mvs_get_label_page): New function.
11346         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
11347         over the entire list.
11348         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
11349         (mvs_check_page) [TARGET_ELF_ABI]: New function.
11350         (mvs_add_alias, mvs_need_alias): New functions.
11351         (mvs_get_alias, mvs_check_alias): New functions.
11352         (handle_pragma): New function.
11353         (mvs_function_check): New function.
11354         (unsigned_jump_follows_p): Search harder.
11355         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
11356         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
11357         * i370.h (TARGET_VERSION): Delete.
11358         (CPP_SPEC, CPP_PREDEFINES): Delete.
11359         (mvs_label_emitted): Delete.
11360         (TARGET_EBCDIC): Delete.
11361         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
11362         (HANDLE_PRAGMA): Define.
11363         (HARD_REGNO_NREGS): Handle complex modes.
11364         (HARD_REGNO_MODE_OK): Likewise.
11365         (CLASS_MAX_NREGS): Likewise.
11366         (RET_REG): Likewise.
11367         (EXTRA_CONSTRAINT): Define.
11368         (RETURN_IN_MEMORY): True for DImode.
11369         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
11370         (FUNCTION_PROFILER): Delete.
11371         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
11372         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
11373         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
11374         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
11375         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
11376         (ASM_FILE_START): Add "RMODE ANY".
11377         (ASM_OUTPUT_EXTERNAL): Check for aliases.
11378         (ASM_GLOBALIZE_LABEL): Likewise.
11379         (ASM_OUTPUT_LABELREF): Likewise.
11380         (ASM_OUTPUT_COMMON): Likewise.
11381         (PRINT_OPERAND): Handle 'K', 'W', default.
11382         (PRINT_OPERAND_ADDRESS): New.
11383         (Lots of defines): Add support for TARGET_ELF_ABI.
11384         * i370.md (attr length): New.  Define for all patterns.
11385         (*): Lots of tweeks to assembly output and constraints.
11386
11387 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
11388
11389         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
11390         Disable patterns performing SImode comparisons with SImode values
11391         if TARGET_POWERPC64 and instruction does not sign-extend or does
11392         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
11393         differ for signed quantities.
11394         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
11395         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
11396         (decrement_and_branch_on_count): Add 64-bit variant.
11397
11398 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11399
11400         * final.c (output_asm_insn): When searching for the matching string
11401         for a given dialect, don't run past the end of the list of
11402         alternatives if there are fewer alternatives in the template than
11403         dialects.
11404
11405 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
11406
11407         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
11408         Removed paragraph about compression of files and size limitation,
11409         duplicated in the FAQ.  Use gcc-patches for posting patches.
11410         * gcc.c (main): Updated URL with bug reporting instructions to
11411         gcc.gnu.org.  Removed e-mail address.
11412         * system.h (abort): Likewise.
11413
11414 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11415
11416         * Makefile.in (stmp-multilib-sub): Make the files extracted
11417         from $(LIBGCC1) writable.
11418
11419 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
11420
11421         * config/arm/aout.h: Reformat for improved readability.
11422
11423         * config/arm/arm.h: Reformat for improved readability.
11424         Replace uses of fprintf with asm_fprintf where appropriate.
11425         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
11426         function declaration assembler actions.
11427         (NUM_INTS): New macro: Convert from bytes to words.
11428         (NUM_REGS): New macro: Compute number of registers required to
11429         hold a quanitity of tyep MODE.
11430         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
11431         types.
11432         (NUM_ARG_REGS): New macro: The number of argument registers
11433         available.
11434         (ARG_REGISTER): New macro: Compute the register number of the Nth
11435         argument register.
11436         (LAST_ARG_REGNUM): New macro: The number of the last argument
11437         register.
11438         (SP_REGNUM): New macro: Register number of the stack pointer.
11439         (FP_REGNUM): New macro: Register number of the frame pointer.
11440         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
11441         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
11442         CUMULATIVE_ARGS so that it counts registers not bytes.
11443
11444         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
11445         TARGET_INTERWORK.
11446         Replace uses of fprintf with asm_fprintf where appropriate.
11447         (output_ascii_pseudo_op): Replace with version from thumb.c
11448
11449         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
11450
11451         * config/arm/elf.h (CPP_PREDEFINES): Replace with
11452         SUBTARGET_CPP_SPEC.
11453         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
11454         (ASM_FILE_START): Emit ASM_APP_OFF.
11455
11456 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
11457
11458         * pa.c (compute_frame_size): Round frame according to
11459         STACK_BOUNDARY rather than a hardwired value.
11460
11461         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
11462
11463         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
11464         of "1".
11465         * configure: Rebuilt.
11466
11467         * configure.in (hppa*-*-linux*): New configuration.
11468         * configure: Rebuilt.
11469         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
11470         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
11471         * pa/pa-linux.h: New file.
11472         * pa/t-linux: New file.
11473         * pa/xm-linux.h: New file.
11474
11475         * pa.c (hppa_legitimize_address): Change references from SImode to
11476         either Pmode or word_mode as appropriate.
11477         (emit_move_sequence, store_reg, load_reg): Likewise.
11478         (set_reg_plus_d, hppa_expand_prologue): Likewise.
11479         (output_mul_insn): Likewise.
11480         * pa.h (PROMOTE_MODE): Likewise.
11481         (INITIALZE_TRAMPOLINE): Likewise.
11482         (Pmode): Define to word_mode.
11483
11484         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
11485         value of 4.  Allocate 8 bytes for each FP register save.
11486         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
11487         value of 4.
11488         (hppa_expand_prologue): Likewise.
11489         * pa.h (PROMOTE_MODE): Likewise.
11490         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
11491         (FUNCTION_ARG_BOUNDARY): Likewise.
11492
11493         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
11494
11495         * pa.c (out_of_line_prologue_epilogue): Delete.
11496         (override_options): Remove -mspace related code.
11497         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
11498         (compute_frame_size): Only allocate space for register that
11499         actually need to be saved.
11500         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
11501         (TARGET_SWITCHES): Remove -mspace, -mno-space
11502         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
11503         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
11504         * pa/ee.asm, pa/ee_fp.asm: Delete.
11505
11506         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
11507
11508         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
11509         directive in column zero.
11510
11511 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
11512
11513         * m68k.c (output_function_prologue): Fix computation of save mask
11514         when generating PIC code.
11515
11516 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
11517
11518         * tree.c (build_type_attribute_variant): Move current_obstack restore
11519         after build_qualified_type call.
11520
11521 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
11522
11523         * configure.in: Use t-iris6, even with GNU LD.
11524         * config/mips/iris6gld.h: Fix typo in linker spec.
11525         * config/mips/t-iris6gld: Remove.
11526
11527 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
11528
11529         * rs6000.md (insv, extzv): Remove SImode dependence in named
11530         patterns.  Explicitly generate DImode RTL if PowerPC64 and
11531         operand is DImode.
11532         (insvdi): Reverse start and size in instruction template.
11533
11534 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
11535
11536         * invoke.texi: Typo fixes.
11537
11538 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
11539
11540         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
11541         handle at this time instead of silently generating incorrect code.
11542         (gen_imagpart): Likewise.
11543
11544         * reload.c (find_reloads): Emit a USE for a pseudo register without
11545         a hard register if we could not create an optional reload for the
11546         pseudo.
11547
11548 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11549
11550         * c-typeck.c (output_init_element, process_init_element):
11551         When advancing constructor_unfilled_fields for a RECORD_TYPE,
11552         check for nameless bit fields.
11553
11554 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
11555
11556         * regclass.c (scan_one_insn): Notice subregs that change the
11557         size of their operand.
11558         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
11559
11560 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
11561
11562         * configure.in (alpha*-*-*): Include alpha/t-ieee.
11563         * configure: Rebuilt.
11564         * alpha/t-ieee: New file.
11565
11566 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
11567
11568         * rs6000.c (find_addr_reg): Do not select r0 as an address
11569         register.
11570
11571 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
11572
11573         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
11574
11575 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
11576
11577         * rs6000.md (movsf): Do not force easy FP constants into memory.
11578
11579         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
11580         immed_double_const to ensure they are properly truncated then
11581         sign extended.
11582
11583 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
11584
11585         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
11586         always unless NO_DEBUG is used.  Compile this code
11587         unconditionally.
11588         (replace_symbols_in_block): Compile it unconditionally.
11589
11590 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
11591
11592         * configure.in (i?86-*-elf*): New target.
11593         * configure: Rebuilt.
11594         * i386/i386elf.h, i386/t-i386elf: New files.
11595
11596 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
11597
11598         * toplev.c (main): Don't complain about saying -gdwarf.
11599         (rest_of_compilation): Remove redundant code.
11600
11601 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
11602
11603         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
11604
11605 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
11606
11607         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
11608         "Li960R:", to avoid name clash.
11609
11610 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11611
11612         * loop.c (check_dbra_loop): When reversing a loop, delete all
11613         REG_EQUAL notes referencing the reversed biv except those which are
11614         for a giv based on it.
11615
11616 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
11617
11618         * version.c: Drop "gcc-" prefix from version #.
11619
11620 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
11621
11622         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
11623         the label if we're being verbose.
11624
11625 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
11626
11627         * m68k.c (output_function_prologue): Add pic register to mask
11628         if live and flag_pic.
11629         (output_function_epilogue): Likewise.
11630
11631 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
11632
11633         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
11634         directives in column zero.
11635
11636         * pa/elf.h (ASM_FILE_START): Define.
11637         * pa/som.h (ASM_FILE_START): Include .level directives.
11638         * pa/hpux10.h (ASM_FILE_START): Delete.
11639         * pa/hpux11.h (ASM_FILE_START): Delete.
11640
11641         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
11642
11643 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11644
11645         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
11646         when reload_out equals reload_in.
11647
11648 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
11649
11650         * invoke.texi (Spec Files): New node: Describe the contents of
11651         spec files.
11652
11653 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
11654
11655         * invoke.texi (DEC Alpha Options): Put @end table at
11656         beginning of line, to avoid confusing texi2html.
11657
11658 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
11659
11660         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
11661         introduced in previous delta.
11662
11663 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11664
11665         * reload1.c (gen_reload): When synthesizing a 3 operand add
11666         sequence, improve test for when to reload OP1 into the reload
11667         register instead of OP0.
11668
11669 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
11670
11671         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
11672
11673 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
11674
11675         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
11676         string literal.
11677
11678 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
11679
11680         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
11681         (va_dcl): Use __builtin_va_alist_t.
11682
11683 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
11684
11685         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
11686         on the permanent_obstack.
11687         * dwarfout.c (output_type): Likewise.
11688
11689 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11690
11691         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11692         Merged from c-typeck.c and cp/typeck.c.
11693         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11694         Merged into c-common.
11695
11696 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
11697
11698         * c-lex.c (errorcount): Declare it.
11699         (finish_parse): Update errorcount when using CPPLIB.
11700
11701 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
11702
11703         * fixinc/inclhack.def(end_else_label): Double the backslash so
11704         sed gets a chance to see it.
11705         * fixinc/inclhack.sh: regen
11706         * fixinc/fixincl.x: regen
11707
11708 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
11709
11710         Add framework to support armv5 architecture when it becomes
11711         available:
11712
11713         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
11714         (arm_arch5): New variable.
11715         (all_architectures): Add armv5 line.
11716         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
11717         -march=armv5 is specified on the command line.
11718         (arm_arch5): Export this variable.
11719         * invoke.texi: Document new string accepted by -march= switch for
11720         ARM ports.
11721
11722         * config/arm/arm.h: Replace use of constant 12 as a register
11723         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
11724         * config/arm/arm.c: Replace use of constant 12 as a register
11725         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
11726
11727         * config/arm/elf.h: Tidy up.
11728         * config/arm/coff.h: Tidy up.
11729
11730 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
11731
11732         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
11733         * gcc/config/mips/t-iris6gld: New file.
11734         * gcc/config/mips/iris6gld.h: Likewise.
11735
11736 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11737
11738         * c-decl.c (widest_integer_literal_type_node,
11739         widest_unsigned_literal_type) : New.
11740         (init_decl_processing): Handle/use the two new types.
11741         * c-common.c (type_for_size,type_for_mode) : Same.
11742         * c-lex.c (yylex) : Same.
11743         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
11744         Same.
11745         * c-tree.h (widest_integer_literal_type_node,
11746         widest_unsigned_literal_type) : New.
11747
11748 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
11749
11750         * dwarfout.c (field_byte_offset): Correctly compute the object's
11751         byte offset for the first bit of a field which crosses an alignment
11752         boundary on a !BYTES_BIG_ENDIAN target.
11753
11754 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
11755
11756         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
11757         ntohs.
11758
11759 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
11760                           Jeff Law <law@cygnus.com>
11761
11762         * ginclude/varargs.h (va_dcl): Use word_mode for type of
11763         __builtin_va_list.
11764
11765         * except.c: Include intl.h.
11766         (expand_eh_return): Set current_function_cannot_inline.
11767         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
11768         * function.h (struct function): Add eh_return_stub_label.
11769         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
11770         * Makefile.in (except.o): Depend on intl.h.
11771
11772 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
11773
11774         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
11775         same as offsettable in cases 1 and 2.
11776
11777 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
11778
11779         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
11780         (extlh, extwh): Likewise.
11781
11782 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11783
11784         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
11785
11786 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
11787
11788         * configure.in: Add arm-pe and thumb-pe targets.
11789         * configure: Regenerate.
11790
11791         * thumb.c (arm_naked_function_p): New function: Determines if
11792         a function is naked (has no gcc generated prologue/epilogue).
11793         (is_called_in_ARM_mode): Return true if the func has the
11794         interfacearm attribute.
11795         (output_return): Do not generate a return for naked functions.
11796         (thumb_function_prologue): Do not generate a prologue for
11797         naked functions.
11798         (thumb_expand_prologue): Do not generate a prologue for naked
11799         functions.
11800         (thumb_expand_epilogue): Do not generate an epilogue for naked
11801         functions.
11802         (arm_valid_machine_decl_attribute): New function, copied from
11803         arm.c:  Permit naked and interfacearm attributes.
11804
11805         * config/arm/pe.c: New file: Support code for arm-pe target.
11806         * config/arm/pe.h: New file: Header file for arm-pe target.
11807         * config/arm/tpe.h: New file: Header file for thumb-pe target.
11808         * config/arm/t-thumb-pe: New file: Makefile fragment for
11809         thumb-pe target.
11810
11811 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
11812
11813         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
11814         -fPIC or -fpic is specified.
11815
11816 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
11817
11818         * expr.c (emit_block_move): Use copy_to_mode_reg for
11819         !TARGET_MEM_FUNCTIONS case too.
11820
11821         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
11822         appropriate.
11823         * configure: Rebuilt.
11824         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
11825         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
11826         definitions made redundant by dbxelf.h inclusion.  Delete
11827         lots of definitions related to assembly output that are
11828         specific to the SOM object format.
11829         * pa.c (output_function_prologue): Do not emit the function's
11830         name for OBJ_ELF.
11831         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
11832         * pa-pro.h: Deleted.
11833         * som.h: New file with SOM specific definitions.
11834         * elf.h: New file with ELF specific definitions.
11835
11836         * elfos.h (const_section): Output a tab before assembler directives.
11837         (ctors_section, dtors_section): Likewise.
11838         (ASM_OUTPUT_SECTION_NAME): Likewise.
11839
11840         * pa/pa1.h: Delete unused file.
11841
11842 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
11843
11844         * configure.in (hppa*-hp-hpux11*): New configuration.
11845         * configure: Rebuilt.
11846         * pa/pa-hpux11.h: New file.
11847         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
11848         command line.
11849
11850         * mips.md (leasi, leadi): New patterns.
11851
11852         * expr.c (emit_block_move): Properly handle case where one of the
11853         block move arguments has a queued increment or decrement.
11854         (clear_storage): Similarly.  Fix formatting goof.
11855
11856 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
11857
11858         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
11859         semicolon from the BSD VA_LIST replacement expression.
11860
11861         * fixinc/inclhack.sh: regen
11862         * fixinc/fixincl.x: regen
11863
11864         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
11865         now use the fixincl program.
11866
11867 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
11868
11869         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
11870         case.  Also make the PIC register call_used.
11871
11872         * m68k.h (FINALIZE_PIC): Delete.
11873         * m68k.c (finalize_pic): Delete.
11874
11875 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
11876
11877         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
11878         to memory.
11879
11880 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
11881
11882         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
11883
11884 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
11885
11886         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
11887
11888 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
11889
11890         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
11891
11892 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
11893
11894         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
11895
11896 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
11897
11898         * rs6000.c (output_toc): Always use hex values for floating-point
11899         constants.  Store single-precision values in upper-half of TOC
11900         entry in 64-bit mode.
11901         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
11902         to final constraints.
11903         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
11904         (fctiwz): Improve accuracy of RTL for pattern.
11905
11906 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11907
11908         * expr.c (expand_expr): Allow RTL_EXPR's through the
11909         MAX_INTEGER_COMPUTATION_MODE checks.
11910
11911 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
11912
11913         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
11914         such that MASK_SUPPORT_ARCH is not negative.
11915
11916 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
11917
11918         * loop.c (verify_dominator): Properly handle ADDR_VEC and
11919         ADDR_DIFF_VEC insns that appear inside loops.
11920
11921 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
11922                           Jeff Law <law@cygnus.com>
11923
11924         * rs6000.md (movdf_hardfloat32): Revert previous patch.
11925         Handle LO_SUM the same as offsettable in cases 1 and 2.
11926         * rs6000.c (find_addr_reg): Revert previous patch.
11927
11928 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
11929
11930         * system.h (strstr): New external function declaration.
11931         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
11932         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
11933         * config.in, configure: Rebuilt.
11934
11935 1999-06-24  Tom Tromey  <tromey@cygnus.com>
11936
11937         * gcc.c (main): Read user-specified specs files after computing
11938         additional startfile_prefixes.
11939
11940 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
11941
11942         Revert these two patches:
11943
11944         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11945         * loop.c (strength_reduce): When doing biv->giv conversion, update
11946         reg note of NEXT->insn.
11947
11948         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11949         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
11950         reg_biv_class.
11951         (recombine_givs): Set ix field after sorting.
11952
11953 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11954
11955         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
11956         for the parts of an UNSPEC / UNSPEC_VOLATILE.
11957
11958 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
11959
11960         *fixinc/inclhack.def:  Add fix development commentary
11961         (read_ret_type): reactivate and add selection clause
11962         (zzz_*): tweak output file name to match what is used in hackshell.tpl
11963         *fixinc/{fixincl.x|inclhack.sh}: regen
11964
11965 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
11966
11967         * expr.c (expand_expr): STRIP_NOPS before checking against
11968         MAX_INTEGER_COMPUTATION_MODE
11969         (check_max_integer_computation_mode): Likewise.
11970
11971 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
11972
11973         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
11974
11975 1999-06-22  Jim Wilson  <wilson@cygnus.com>
11976
11977         * expr.c (store_expr): When target is a promoted subreg, return a
11978         promoted subreg as a result.
11979
11980 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
11981
11982         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
11983         coding standards.
11984         (dwarf2out_define): Mark unused parameters appropriately.
11985         (gen_unspecified_parameters_die): Ditto.
11986         (gen_subprogram_die): Fix signed/unsigned warnings.
11987         (gen_variable_die): Ditto.
11988
11989 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
11990
11991         * fixinc/inclhack.def(end_else_label): combined else_label
11992         and endif_label and fixed the sed expression.
11993         *fixinc/{fixincl.x|inclhack.sh}: regen
11994
11995 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
11996
11997         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
11998         'x' when handling non-offsettable addresses
11999
12000 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
12001
12002         * final.c (shorten_branches): Don't try to split an insn that has
12003         been deleted.
12004
12005 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
12006
12007         * config/mips/mips.c (symbolic_expression_p): New function.
12008         (mips_select_rtx_section): Put symbolic expressions in the
12009         data section, not the read-only data section.
12010
12011 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
12012
12013         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
12014
12015 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
12016
12017         * collect2.c (main): Log frame table count.
12018         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
12019         (scan_prog_file) [COFF]: Handle frame tables.
12020
12021         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
12022         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
12023         * alpha/elf.h: Undef them again.
12024         * alpha/vms.h: Remove their definitions.
12025
12026 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12027
12028         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
12029         remove the clobber of r0 and change the REG_UNUSED note to
12030         REG_INC.
12031
12032 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
12033
12034         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
12035         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
12036         fits in HOST_WIDE_INT and one uses union to access a long constant
12037         as double.
12038
12039 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
12040
12041         * sparc.c (sparc_override_options): Don't allow profiling for
12042         code models other than medlow.
12043         (sparc_function_profiler): New function from old FUNCTION_PROFILER
12044         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
12045         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
12046         (sparc_block_profiler): Likewise.
12047         (sparc_function_block_profiler_exit): Likewise.
12048         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
12049         (FUNCTION_BLOCK_PROFILER): Likewise.
12050         (BLOCK_PROFILER): Likewise.
12051         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
12052         (MCOUNT_FUNCTION): New.
12053         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
12054         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
12055         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
12056         (MCOUNT_FUNCTION): New.
12057         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
12058         (BLOCK_PROFILER): Delete.
12059         (MCOUNT_FUNCTION): New.
12060
12061 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
12062
12063         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
12064
12065 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
12066
12067         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12068         Add the macros.
12069
12070         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12071         Ditto.
12072
12073         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12074         Ditto.
12075
12076         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12077         Ditto.
12078
12079 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
12080
12081         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
12082         types.
12083
12084 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
12085
12086         * i386/djgpp.h (LIB_SPEC): New.
12087         (STARTFILE_SPEC): New.
12088
12089         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
12090
12091 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
12092
12093         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
12094         compiler flags.
12095
12096         * system.h (WSTOPSIG): New macro.
12097
12098 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12099
12100         * c-pragma.c (push_alignment): Don't ignore alignments greater than
12101         4 bytes.
12102         (insert_pack_attributes): Take into account member natural
12103         alignment.
12104
12105         * i386/winnt.c (exports_head): New static variable.
12106         (i386_pe_record_exported_symbol): New function.
12107         (i386_pe_asm_file_end): Use.
12108         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
12109         symbols to be emitted at end of assembly.
12110         (ASM_DECLARE_OBJECT_NAME): Likewise.
12111         (ASM_DECLARE_FUNCTION_NAME): Likewise.
12112
12113         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
12114         -iwithprefix.
12115
12116 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
12117
12118         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
12119         in last change.
12120
12121 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
12122
12123         * haifa-sched.c (sched_analyze_1): Use free_list instead of
12124         zapping reg_last_uses directly.
12125         (sched_analyze_2, sched_analyze_insn): Likewise.
12126         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
12127
12128 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
12129
12130         * rs6000.md (movdf_hardfloat32): Use worst case insn length
12131         attributes for cases 1 and 2.
12132
12133 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
12134
12135         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
12136         instead of set.
12137
12138 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
12139
12140         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
12141
12142 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
12143
12144         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
12145         PIC_OFFSET_TABLE_REGNUM for general alloaction.
12146         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
12147         must be stacked if it is used for PIC accesses.
12148         * arm.c (use_return_insn): Handle PIC register specially.
12149         (output_return_instruction): Likewise.
12150         (output_func_{prologue,epilogue}): Likewise.
12151         (output_expand_prologue): Likewise.
12152
12153         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
12154         (*strsi_predec): Renamed from *strqi_predec.
12155         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
12156         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
12157
12158         * arm.c (arm_override_options): Remove warning about PIC code
12159         not being supported.
12160
12161 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
12162
12163         * rs6000.c (find_addr_reg): New function.
12164         * rs6000.h (find_addr_reg): Declare.
12165         (offsettable_addr_operand): Delete.
12166         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
12167         from and stores to GPRs.
12168
12169 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
12170
12171         * alpha.c (alpha_expand_block_move): Use get_insns rather than
12172         gen_sequence as argument to emit_no_conflict_block.
12173
12174 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12175
12176         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
12177         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
12178         *fixinc/fixincl.x: regen
12179         *fixinc/inclhack.sh: regen
12180
12181 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
12182
12183         * added support for -mpcrel (PC relative addressing for m68k)
12184         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
12185         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
12186         * m68k.c (print_operand_address): Handle 32-bit PIC case.
12187         (comments for general_src_operand): Add some explanation
12188         about EXTRA_CONSTRAINTS.
12189         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
12190         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
12191         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
12192         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
12193         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
12194         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
12195         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
12196         if not already set.
12197         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
12198         * m68k.h (TARGET_PCREL): New target flag.
12199         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
12200         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
12201         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
12202         contains a SYMBOL_REF.  Relax this constraint during reload, since
12203         we want to use the predicates, not reload's built-in concept of a
12204         valid memory address, to control what insns need reloading.
12205         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
12206         operands (essentially 'g', 'm', and 's' under normal circumstances).
12207         * m68k.c (print_operand): Cause printing of pc-relative addresses
12208         to include pc register.
12209         (print_operand_address): Ditto.
12210         (general_src_operand): Accept operands that are not only
12211         general_operands, but are also valid when used as a pc-relative
12212         source.
12213         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
12214         (memory_src_operand): Similar, for memory_operands.
12215         (pcrel_address): New predicate to accept the special case of a
12216         pc-relative address.
12217         * m68k.md (many patterns): Rewrite common SImode, HImode, and
12218         QImode insns to accept *_src_operand instead of *_operand where
12219         pc-relative operands can fit.  For example, a pc-relative operand
12220         can be used as a memory source operand for addsi3, but not as a
12221         memory destination.
12222         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
12223
12224 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
12225
12226         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
12227         .thumb_set pseudo op to mark aliases of thumb functions.
12228
12229 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
12230
12231         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
12232         preference to ASM_OUTPUT_DEF, if it is defined.
12233
12234         * tm.texi: Document new, optional target macro
12235         ASM_OUTPUT_DEF_FROM_DECLS.
12236
12237 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12238
12239         * fixincludes: ISCNTL patch
12240         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
12241         (dgux_int_varargs): new for DG/UX
12242         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
12243
12244 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
12245
12246         * invoke.texi (ia32 options): Fix typo.
12247
12248 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12249
12250         * loop.c (strength_reduce): When doing biv->giv conversion, update
12251         reg note of NEXT->insn.
12252
12253 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
12254
12255         * loop.c (move_movables): Note issues with replacing REGs with
12256         SUBREGs.
12257         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
12258
12259 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
12260
12261         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
12262
12263         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
12264         the reference to `mcount' was not correct for the ELF on FreeBSD.
12265
12266 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12267
12268         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
12269         reg_biv_class.
12270
12271         (recombine_givs): Set ix field after sorting.
12272
12273 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
12274
12275         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
12276         to safe to extract a subword out of a REG.
12277
12278 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12279
12280         * sh.md (mulsi3): Don't add a no-op move at the end.
12281
12282 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12283
12284         * cse.c (cse_insn): Don't put hard register source into tables for
12285         the last insn of a libcall.
12286
12287 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12288
12289         * loop.c (strength_reduce): Insert sets of derived givs at every
12290         biv increment, even if it's the only one.
12291
12292 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
12293
12294         * dwarfout.c (add_incomplete_type): New fn.
12295         (output_type): Call it.
12296         (retry_incomplete_types): New fn.
12297         (dwarfout_finish): Call it.
12298
12299         From Eric Raskin <ehr@listworks.com>:
12300         (output_type): Output types for bases.
12301
12302 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
12303
12304         * mips.c (mips_output_conditional_branch): Add `break'
12305         between `default' label and `close braces'.
12306
12307 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
12308
12309         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
12310         specifications and make it realistic.
12311         (LIB_SPEC): Likewise.
12312
12313 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
12314
12315         * config/mips/mips.c (mips_secondary_reload_class): Check for
12316         (PLUS (SP) (REG)) and return appropriate register class.
12317         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
12318         Handle (PLUS (SP) (REG)).
12319         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
12320         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
12321         of emit_insn for tablejump.
12322
12323 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
12324
12325         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
12326         asm_fprintf format string by itself.
12327         (output_function_profiler): Likewise.
12328
12329 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
12330
12331         * combine.c (simplify_logical, case AND): Only call
12332         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
12333         or the constant is positive.
12334
12335 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
12336
12337         * configure.in: Fix typo in rs6000-ibm-aix4 case.
12338         * configure: Regenerate.
12339
12340 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
12341
12342         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
12343         require a sub-version #.
12344         * configure: Rebuilt.
12345
12346 1999-06-14  Robert Lipe  (robertlipe@usa.net)
12347
12348         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
12349
12350 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
12351
12352         * c-typeck.c (process_init_element): Detect excess elements in
12353         char array initializer.
12354
12355 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
12356
12357         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
12358
12359 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12360
12361         * invoke.texi (Option Summary): Add -fpermissive flag.
12362
12363 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
12364
12365         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
12366         that require PIC code sequences.
12367
12368 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
12369
12370         * configure.in: Add new target: thumb-elf.
12371         * configure: Regenerate.
12372         * config/arm/t-thumb-elf: New file: Makefile fragment for
12373         thumb-elf build.
12374         * config/arm/telf.h: New file: Header file for thumb-elf
12375         build.
12376
12377 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
12378
12379         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
12380         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
12381         initializers is some circumstances.
12382
12383         * fixinc/inclhack.def (endif_label): Add additional selector for
12384         more bogus stuff after #endif statements.
12385         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
12386
12387 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12388
12389         * i386/cygwin.h (SET_ASM_OP): Define.
12390
12391 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12392
12393         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
12394
12395 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12396
12397         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
12398         latter.
12399
12400         * sh.md (ic_invalidate_line_i): Remove second alternative.
12401
12402 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12403
12404         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
12405         test for the presence of valid prototypes.  Delete bypass expr.
12406         (ioctl_fix_ctrl): Correct the selection expression.
12407         (no_double_slash): Correct quoting rules
12408         *fixinc/fixincl.x: regen
12409         *fixinc/inclhack.sh: regen
12410
12411 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
12412
12413         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
12414
12415 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12416
12417         * rs6000.md (movsi_got_internal_mem): Delete.
12418         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
12419         (GOT_TOC_REGNUM): Delete.
12420         (PIC_OFFSET_TABLE_REGNUM): Define.
12421         (FINALIZE_PIC): Disable.
12422         * rs6000.c (rs6000_got_register): New code for fixed pic register.
12423         (rs6000_replace_regno): Delete.
12424         (rs6000_finalize_pic): Likewise.
12425         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
12426
12427 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12428
12429         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
12430         is a note; use <= for the compare; advance P while it is
12431         a NOTE.
12432
12433 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
12434
12435         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
12436         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
12437
12438         * varasm.c (remove_from_pending_weak_list): Verify t->name
12439         is non-NULL before passing it to strcmp.
12440
12441 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12442
12443         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
12444         the typed arguments are not part of a comment
12445         (ioctl_fix_ctrl): Added a purpose comment
12446         *fixinc/fixincl.x: regenerate
12447         *fixinc/inclhack.sh: regenerate
12448
12449 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12450
12451         * invoke.texi: Add C4x invocation docs.
12452
12453 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12454
12455         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
12456         Define new macros.
12457         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
12458         TARGET_EXPOSE_LDP.
12459         (c4x_legitimize_reload_address): New function.
12460         * config/c4x/c4x.md: Update docs.
12461
12462 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
12463
12464         * fixincludes: Avoid removing '.'.
12465         * fixinc/fixinc.svr4: Likewise.
12466         * fixinc/fixinc.winnt: Likewise.
12467         * fixinc/inclhack.tpl: Likewise.
12468         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
12469
12470 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12471
12472         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
12473         pattern.
12474         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
12475
12476 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
12477
12478         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
12479         correctly.
12480
12481 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
12482
12483         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
12484         * configure: Regenerate.
12485
12486 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
12487
12488         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
12489         values.
12490
12491 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
12492
12493         * fixinc/inclhack.def (avoid_bool): Also catch
12494         "typedef [unsigned] int bool".
12495         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
12496
12497         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
12498         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
12499         * configure: Rebuilt.
12500
12501 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
12502
12503         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
12504         such that we can override its definitions if necessary.
12505         (CPP_SPEC): New define.  Support processor specific predefines via
12506         %(cpp_cpu).
12507         (CC1_SPEC): New define.  Support processor specific compiler
12508         options via %(cc1_cpu).
12509         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
12510         -static.
12511
12512 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12513
12514         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
12515         between sed's -e flag, and the open-quote following it.
12516         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
12517
12518 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
12519                           Jeffrey A Law  (law@cygnus.com)
12520
12521         * varasm.c (assemble_start_function): Remove the function
12522         from the pending weak decls list when we define a function.
12523         (assemble_variable): Similarly for variables.
12524         (weak_finish): Ignore items on the list with a NULL name.
12525         (remove_from_ending_weak_list); New function to "remove" an item
12526         from the pending weak declarations list.
12527
12528 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12529
12530         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
12531
12532 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
12533
12534         * c-lex.c (GETC): Redefine to call getch.
12535         (UNGETC): Redefine to call put_back.
12536         (putback_buffer): New structure type.
12537         (putback): New static structure.
12538         (getch): New function.
12539         (put_back): New function.
12540         (yylex): Replace unused bytes from bad multibyte character.
12541
12542 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
12543
12544         * cpplib.c (do_define): Cast `alloca' return value.
12545         (do_include, do_undef, do_pragma): Likewise.
12546         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
12547         values.
12548         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
12549         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
12550
12551 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
12552
12553         * sparc.md (abstf2): This should be an expand.
12554         (split after abstf2_notv9): Fix mode.
12555         (abstf2_hq_v9): New pattern.
12556         (abstf2_v9): Only use when no hard quad.
12557         (absdf2_v9): Fix if target is not the same as source.
12558         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
12559         Add correct output constraints.
12560
12561 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
12562
12563         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
12564         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
12565
12566 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
12567
12568         * mips.h (mips_output_conditional_branch): New function.
12569         (mips_adjust_insn_length): Likewise.
12570         (ASSEMBLER_SCRATCH_REGNUM): New macro.
12571         (ADJUST_INSN_LENGTH): Likewise.
12572         * mips.c (print_operand): Add `F' and `W' for floating-point
12573         comparison opcodes.
12574         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
12575         are now in bytes.
12576         (mips_adjust_insn_length): New function.
12577         (mips_output_conditional_branch): New function.
12578         * mips.md (length): Adjust attribute definition to handle
12579         conditional branches.   Change lengths to bytes, rather than
12580         instructions throughout.  Remove length attribute from
12581         instructions whose length is four bytes, and rely on the default
12582         instead.
12583         (dslot): Fix typo in comment.
12584         Reword conditional branch patterns to use
12585         mips_output_conditional_branch.
12586
12587 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12588
12589         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
12590         (LIB_SPEC): Likewise.
12591         Link with -lprof1_r for -g/-pg.
12592
12593 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12594
12595         * loop.c (check_dbra_loop): Fix change of Jan 19.
12596
12597 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
12598
12599         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
12600         (STARTFILE_SPEC):  Define, override the svr4.h version.
12601         (ENDFILE_SPEC):  Likewise.
12602
12603 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
12604
12605         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
12606         * fixinc/fixincl.x: Regenerated.
12607         * fixinc/inclhack.sh: Regenerated.
12608
12609 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12610
12611         * sh.c (barrier_align): Don't return early for normal branch/barrier
12612         when optimizing for SH2.
12613
12614 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
12615
12616         * i386/udk.h (LINK_SPEC): Correct linker search path for
12617         system libraries.
12618
12619 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12620
12621         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
12622         (braf_label_ref_operand): Delete.
12623         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
12624         * sh.md (casesi_jump_2): Operand1 is now the inside of a
12625         label_ref, and has no predicate.
12626         The patten has a predicate to guard against invalid substitutions.
12627         (dummy_jump): Delete.
12628         (casesi): Update use of casesi_jump_2.
12629
12630 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12631
12632         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
12633         *fixinc/fixincl.x: regenerate
12634         *fixinc/inclhack.sh: regenerate
12635
12636 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
12637
12638         * dwarf2out.c (add_incomplete_type): New fn.
12639         (gen_struct_or_union_type_die): Call it.
12640         (retry_incomplete_types): New fn.
12641         (dwarf2out_finish): Call it.
12642
12643 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
12644
12645         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
12646         current block starts with a CODE_LABEL and ends with a CALL and
12647         we can not find all the argument setup instructions for the CALL.
12648
12649 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
12650
12651         Revert this change:
12652         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
12653         something is a candidate for optimize_bit_field_compare.
12654
12655 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12656
12657         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
12658
12659 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
12660
12661         * alpha.c (override_options): Thinko in last patch.
12662
12663         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
12664         (LIB_SPEC): Recognize -pthread.
12665
12666 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
12667
12668         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
12669         definition in config/arm/coff.h
12670         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
12671
12672 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
12673
12674         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
12675         fixes that need "file=xxx\n" prepended before invocation
12676         (start_fixer - new): starting the fixer process is complex enough
12677         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
12678         (process): uses the new routine; omit usage of putenv()
12679         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
12680         * fixinc/fixincl.x: regenerate
12681
12682 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
12683
12684         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
12685         and version #s (1.1 -> 2.96) as needed.
12686         * README.g77: Kill way out of date file in the toplevel directory.
12687
12688 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
12689
12690         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
12691         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
12692         * configure: Rebuilt.
12693         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
12694         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
12695         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
12696         (SWITCH_TAKES_ARG): Likewise.
12697         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
12698         * config/t-freebsd: Moved from config/i386/ so it can used for all
12699         FreeBSD targets.
12700
12701 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
12702
12703         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
12704
12705 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
12706
12707         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
12708         * configure: Rebuilt.
12709
12710 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
12711
12712         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
12713         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
12714         * rs6000/rs6000.c (rs6000_file_start): Use putc.
12715         (rs6000_output_load_toc_table): Same.
12716         (output_prolog, output_mi_thunk): Same.
12717         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
12718         (ASM_GLOBALIZE_LABEL): Use putc.
12719
12720 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
12721
12722         * alpha.md (reload_*_help): New patterns and splitters.
12723         (reload_*): Use them.
12724         (mov[qh]i): Likewise.
12725
12726 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
12727
12728         * cccp.c (handle_directive): Handle backslash-newlines in quoted
12729         strings correctly.
12730
12731 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
12732
12733         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
12734
12735 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
12736
12737         * flow.c (mark_regs_live_at_end, insn_dead_p,
12738         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
12739         and HARD_FRAME_POINTER_REGNUM special treatment if reload
12740         hasn't run or the frame pointer is needed.
12741         * haifa-sched.c (attach_deaths): Likewise.
12742         * sched.c (attach_deaths): Likewise.
12743
12744 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
12745
12746         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
12747         calculate_can_reach_end returns nonzero.
12748
12749         * configure.in (native gas tests): Search for an assembler in the
12750         same manner that the installed compiler will.
12751         * configure: Rebuilt.
12752         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
12753
12754         * alias.c (find_base_term): Improve handling of addresses
12755         constructed from binary operations.
12756
12757 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
12758
12759         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
12760
12761 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
12762
12763         * function.h (cleanup_label, frame_offset): Declare.
12764         (tail_recursion_label, tail_recursion_reentry): Likewise.
12765         (arg_pointer_save_area, rtl_expr_chain): Likewise.
12766         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
12767         (tail_recursion_label, tail_recursion_reentry): Likewise.
12768         (arg_pointer_save_area, rtl_expr_chain): Likewise.
12769
12770 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
12771
12772         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
12773         defined.
12774         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
12775         (MAX_OFILE_ALIGNMENT): Define.
12776
12777 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
12778
12779         * fixincl.c: Replace local include scheme with #includes of
12780         gansidecl.h and system.h.
12781         * procopen.c:  Likewise.
12782         * server.c:  Likewise.
12783
12784 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
12785
12786         * i386/t-dgux (EXTRA_PARTS): Add crti.o
12787         (crti.o): Add build rule and dependencies.
12788         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
12789
12790 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12791
12792         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
12793         (LIB_LINUX_SPEC): Likewise.
12794         (LIB_LINUX_SPEC): Add support for -pthread
12795         (CPP_OS_LINUX_SPEC): Likewise.
12796         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
12797         specified.
12798
12799 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
12800
12801         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
12802         conditional move.
12803         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
12804         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
12805         for IEEE math and CC_FCOMI.
12806         (put_jump_code): No IEEE if CC_FCOMI is set.
12807
12808 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12809
12810         * fold-const.c (fold_truthop): Make the field reference unsigned
12811         when converting a single bit compare.
12812
12813 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12814
12815         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
12816
12817 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
12818
12819         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
12820         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
12821         version did.
12822
12823         * reload.c (push_reload): Do not call remove_address_replacements
12824         when presented with identical optional reloads.
12825
12826 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
12827
12828         * alpha.h (MASK_FIX, TARGET_FIX): New.
12829         (MASK_*): Reorganize constants.
12830         (CPP_AM_FIX_SPEC): New.
12831         (TARGET_SWITCHES): Add FIX.
12832         (EXTRA_SPECS): Likewise.
12833         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
12834         (SECONDARY_MEMORY_NEEDED): Likewise.
12835         (REGISTER_MOVE_COST): Likewise.
12836         * alpha.c (override_options): Add FIX support.  Always use
12837         ALPHA_TP_PROG for ev6.
12838         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
12839         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
12840         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
12841
12842 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
12843
12844         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
12845         something is a candidate for optimize_bit_field_compare.
12846
12847 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
12848
12849         * gcc.texi (Passes): Document branch-shortening.
12850         * invoke.texi (Debugging Options): Document the fact that `-dp'
12851         outputs length information for instructions.
12852
12853 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
12854
12855         * flow.c: Revert previous delta.
12856
12857 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
12858
12859         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
12860         FRAME_POINTER_REGNUM.
12861         (mark_set_1): Ditto.
12862         (mark_used_regs): Ditto.
12863
12864 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
12865
12866         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
12867         (GOT_PCREL): New macro.  Define to 1 if not already defined.
12868         * arm/elf.h (GOT_PCREL): Define to 0.
12869         * arm.c (arm_finalize_pic): Take into account the setting of
12870         GOT_PCREL.
12871
12872 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
12873
12874         * output.h (STRIP_NAME_ENCODING): Provide default definition.
12875         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
12876
12877         * flow.c (mark_set_1): Do not record BLKmode stores as dead
12878         store elimination candidates.
12879
12880 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12881
12882         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
12883         TARGET_GAS.
12884
12885 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
12886
12887         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
12888         Add use of x-aix41-gld.
12889
12890 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
12891
12892         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
12893         (ASM_OUTPUT_DESTRUCTOR): Define.
12894
12895 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
12896
12897         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
12898         last CODE_LABEL in a loop if we have previously passed a jump
12899         to the top of the loop.
12900
12901 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
12902
12903         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
12904         applying Philip's patch.
12905
12906 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
12907
12908         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
12909         are not VAR_DECLs.
12910
12911 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
12912
12913         * loop.c (strength_reduce): Grow reg_single_usage as needed.
12914
12915 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
12916
12917         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
12918         Also remove a useless comment.
12919
12920 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
12921
12922         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
12923
12924 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
12925
12926         * collect2.c (main): Only generate import or export file and add
12927         to link arguments if non-empty.  Use xmalloc not alloca.
12928         (write_{export,import}_file): Delete.
12929         (write_aix_file): New function.
12930         (locatelib): Use xmalloc not malloc.
12931         (GCC_OK_SYMBOL): Do not check type if aix64.
12932
12933 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
12934
12935         Based on patch by Scott Bambrough and Pat Beirne:
12936         * config/arm/arm.c (making_const_table): New variable.
12937         * config/arm/arm.h (making_const_table): Declare.
12938         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
12939         appropriate.
12940         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
12941         Keep track of when we are building the constant table.
12942
12943 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
12944
12945         * config/arm/arm.c (arm_override_options): Fix erroneous warning
12946         message.
12947
12948 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
12949
12950         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
12951         defined.
12952
12953 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
12954
12955         * tm.texi (FUNCTION_ARG): Correct description of a stack element
12956         in a PARALLEL.
12957
12958 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
12959
12960         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
12961
12962 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12963
12964         * rs6000.c (output_mi_thunk): Enable full support again.
12965
12966 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12967
12968         * sh.h (BRANCH_COST): Define.
12969
12970 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
12971
12972         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
12973
12974 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
12975
12976         * function.c (assign_stack_local): Align stack slot propertly.
12977         (assign_outer_stack_local): Likewise.
12978
12979 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
12980
12981         * expr.h (lang_expand_constant): Declare.
12982         * toplev.c (lang_expand_constant): Define it.
12983         * varasm.c (output_constant): Use it.
12984
12985 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12986
12987         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
12988         Change function definitions to K&R style.
12989
12990 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12991
12992         * fixinc/fixincl.c: We must not ignore SIGCLD now.
12993
12994 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
12995
12996         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
12997         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
12998         (several places): omit static initialization
12999         (process): use single fd, since only the read fd is used
13000         * fixinc/gnu-regex.c: define 'const' away, if not supported
13001         * fixinc/procopen.c(several places): omit static initialization
13002         * fixinc/server.c: define 'volitile' away, if not supported
13003
13004 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
13005
13006         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
13007         asm_fprintf and %L to generate the label name.
13008         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
13009         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
13010
13011 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
13012
13013         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
13014         insn for a conditional jump can not be found.
13015
13016 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
13017
13018         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
13019         on variables in specific sections other than .sbss and .sdata.
13020
13021 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
13022
13023         * stmt.c (expand_return): Call start_cleanup_deferral and
13024         end_cleanup_deferral around conditional code.
13025
13026 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
13027
13028         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
13029         filename lists.  Utilizes new "krstr" AutoGen function.
13030         * fixinc/fixincl.x: Rebuilt.
13031
13032 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
13033
13034         * i386.c (output_float_compare): Avoid GNU-C extensions.
13035
13036 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
13037
13038         * version.c: Bump to distinguish mainline tree from the
13039         gcc-2.95 branch.
13040
13041 See ChangeLog.1 for earlier changes.