OSDN Git Service

Reorg reg-stack to use the standard CFG.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
2                           Richard Henderson  <rth@cygnus.com>
3
4         * emit-rtl.c (emit_block_insn_before): New.
5         (emit_block_insn_after): New.
6         * basic-block.h: Declare them.
7
8         * bitmap.h: Protect from multiple inclusion.
9
10         * recog.c (scratch_operand): Handle VOIDmode correctly.
11
12         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
13
14         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
15         * function.c (assign_parms): Likewise.
16         * global.c (global_conflicts): Clarify STACK_REGS commentary.
17
18         * reg-stack.c (max_uid): Remove.
19         (blocks, block_begin, block_end, block_drops_in): Remove.
20         (block_stack_in, block_out_reg_set, block_number): Remove.
21         (struct block_info_def, BLOCK_INFO): New.
22         (enum emit_where): New.
23         (current_block): New.
24         (BLOCK_NUM): Remove.
25         (mark_regs_pat, record_label_references): Remove.
26         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
27         (nan): New.
28         (goto_block_pat, print_blocks, dump_stack_info): Remove.
29         (reg_to_stack): Simplified test for existance of fp code.  Use
30         flow.c code.  Call shorten_branches after cross-jump opt.
31         (check_asm_stack_operands): Renamed from record_asm_reg_life.
32         Return false if the asm doesn't use stack regs.  Don't do life
33         analysis on the asm.
34         (emit_pop_insn): Replace function pointer arg `when' with
35         enum `where'.  Update all callers.
36         (change_stack): Likewise.  Update basic block end.
37         (emit_swap_insn): Use current_block->head to limit reverse search
38         for start of block.  Use emit_block_insn_after.
39         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
40         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
41         structure assignment instead of bcopy.
42         (print_stack): New.
43         (convert_regs_entry, convert_regs_exit): New.
44         (convert_regs_1, convert_regs_2): Split out from convert_regs.
45         Work on basic blocks and the CFG.
46         (convert_regs): Use them.
47
48         * i386.c (output_fix_trunc): Remove code for DImode input operand
49         not at top-of-stack.
50         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
51         appropriate mode.
52         (fix_truncdi_1): Allow any mode scratch.
53
54 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
55
56         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
57         * linux.h, netbsd.h, vms.h: Not here.
58
59 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
60
61         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
62         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
63         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
64         CONDITIONAL_REGISTER_USEAGE): Use them. 
65         * config/mips/mips.c (mips_move_1word,mips_move_2words,
66         gen_conditional_branch,override_options) : Use them.
67         * config/mips/mips.md : Use them.
68
69 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
70
71         * i386.md (zero_extendqihi2): Use SImode register name with andl.
72
73 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
74
75         * integrate.c (function_cannot_inline_p): Don't allow inlining
76         if setjmp is used.
77
78 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
79
80         * c-parse.in (cast_expr): Constify.
81
82         * cccp.c (special_symbol): Likewise.
83
84         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
85
86         * dwarf2out.c (base_type_die): Likewise.
87
88         * global.c (allocno_compare): Likewise.
89
90         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
91
92         * regclass.c (fix_register): Likewise.
93
94         * rtl.h (fix_register): Likewise.
95
96         * stupid.c (stupid_reg_compare): Likewise.
97
98         * toplev.c (decode_f_option): Likewise.
99
100         * tree.c (build_complex_type): Likewise.
101
102 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
103
104         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
105
106 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
107
108         * reload.c (find_reloads): Compute mode and nregs fields of all
109         reloads.
110         * reload1.c (calculate_needs_all_insns): Simplify a bit.
111         (calculate_needs): Use precomputed mode/nregs values.
112         (allocate_reload_reg): Likewise.
113         Break out two...
114         (failed_reload, set_reload_reg): ... new functions.
115         (choose_reload_regs_init): New function, mostly broken out from...
116         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
117         Also lose one #if 0 block.
118
119 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
120
121         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name 
122         substitution.
123
124 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
125
126         * tree.h (BLOCK_TYPE_TAGS): Remove.
127         (BLOCK_END_NOTE): Likewise.
128         (BLOCK_LIVE_RANGE_FLAG): Likewise.
129         (BLOCK_LIVE_RANGE_START): Likewise.
130         (BLOCK_LIVE_RANGE_END): Likewise.
131         (tree_block): Remove live_range_flag, live_range_var_flag, and
132         type_tags.  Remove end_note, live_range_start, and live_range_end.
133         (remember_end_note): Remove prototype.
134         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
135         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
136         remember_end_note.
137         * ggc-common.c (ggc_mark_tree_children): Don't mark
138         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
139         * integrate.c (adjust_copied_decl_tree): Remove.
140         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
141         * stmt.c (last_block_end_note): Remove.
142         (init_stmt): Don't add a GC root for it.
143         (expand_fixup): Don't set it.
144         (remember_end_note): Remove.
145         (expand_end_bindings): Don't set last_block_end_note.
146
147 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
148
149         * reload1.c (reload_reg_free_for_value_p): Show
150         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
151         reloads.
152
153 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
154
155         * expmed.c (extract_bit_field): Allow for the case of non-integer
156         objects that are smaller than a word (like SFmode on a 64-bit
157         machine).
158
159         * loop.c (basic_induction_var): A non-integer variable which is
160         being set by a paradoxical subreg is probably not a biv.
161
162 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
163
164         * prefix.c (translate_name) Check for empty prefix string.
165
166 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
167
168         * Makefile.in (CPP_CROSS_NAME): New variable.
169         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
170         xcpp.
171         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
172         names of the files to be uninstalled.
173
174 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
175
176         * collect2.c (IS_DIR_SEPARATOR): Define.
177         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
178
179         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
180         functions too.
181
182         * haifa-sched.c (add_dependence): Update the true dependency
183         cache the first time we add a true dependence to the LOG_LINKS chain.
184
185 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
186
187         * fold-const.c (fold): Fix comment.
188
189 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
190
191         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
192         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
193         dbxout_start_new_source_file, dbxout_source_file,
194         dbxout_source_line, dbxout_finish, dbxout_type_fields,
195         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
196         Constify a char*.
197         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
198         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
199         (dbxout_block): Initialize variable `blocknum'. 
200
201         * dbxout.h (dbxout_init, dbxout_finish,
202         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
203         dbxout_args, dbxout_source_line): Constify a char*.
204
205         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
206         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
207         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
208         low_pc_attribute, high_pc_attribute, body_begin_attribute,
209         body_end_attribute, comp_dir_attribute, sf_names_attribute,
210         src_info_attribute, mac_info_attribute, producer_attribute,
211         lookup_filename, generate_macinfo_entry, fundamental_type_code,
212         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
213         dwarfout_undef): Constify a char*.
214         (add_incomplete_type, retry_incomplete_types): Add prototypes.
215
216         * dwarfout.h (dwarfout_define, dwarfout_undef,
217         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
218
219 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
220
221         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
222         (MULTILIB_ISA_DEFAULT): New.
223         (MULTILIB_DEFAULTS): Use it.
224         * config/mips/mips.c (): Remove the now unnecessary definition
225         of MIPS_ISA_DEFAULT.
226         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
227         unnecessary definition.
228
229 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
230
231         * arm.md (pic_load_addr): Add constraints to operand 1.
232
233 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
234
235         * fixinc/genfixes:  Provide a means for specifying -D options to
236         AutoGen
237
238 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
239
240         * arm.c (arm_override_options): Correct initialization of
241         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
242         arm_is_strong, and arm_is_6_or_7.
243
244         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
245         (note_set_pseudo_multiple_uses): New function.
246         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
247         if a pseudo set in the loop exit is used elsewhere.
248
249 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
250
251         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
252
253 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
254
255         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
256         a single load-address pattern.
257
258 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
259
260         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
261         depending on whether or not line-number notes are present.
262
263 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
264
265         * cccp.c (progname, file_buf, default_include, include_file,
266         macrodef, definition, hashval, wchar_type, user_label_prefix,
267         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
268         expand_to_temp_buffer, is_system_include, base_name,
269         absolute_filename, read_name_map, open_include_file,
270         record_control_macro, check_precompiled, check_preconditions,
271         pcfinclude, pass_thru_directive, create_definition,
272         check_macro_name, comp_def_part, collect_expansion,
273         check_assertion, read_token_list, assertion_install,
274         assertion_lookup, eval_if_expression, conditional_skip,
275         validate_else, skip_quoted_string, quote_string, macarg1,
276         error_from_errno, install, lookup, hashf, dump_defn_1,
277         perror_with_name, pfatal_with_name, main, trigraph_pcp,
278         check_white_space, rescan, handle_directive, monthnames,
279         special_symbol, do_include, remap_include_file, write_output,
280         arglist, do_assert, do_unassert, do_line, do_error, do_once,
281         do_ident, do_sccs, do_xifdef, skip_if_group,
282         output_line_directive, macroexpand, macarg, change_newlines,
283         initialize_builtins, make_definition): Constify a char*.
284
285         * pcp.h (stringdef): Likewise.
286
287 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
288
289         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
290         not of pattern.
291
292 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
293                           Richard Henderson  <rth@cygnus.com>
294
295         * alias.c: Include ggc.h.
296         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
297         (record_set): Verify enough room in reg_base_value.
298         (init_alias_analysis): Allocate reg_base_value with xcalloc.
299         Register it as a GC root.
300         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
301         * Makefile.in (alias.o): Depend on ggc.h.
302
303         * unroll.c (unroll_loop): Verify the insn before a barrier
304         is a JUMP_INSN before checking JUMP_LABEL.
305
306 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
307
308         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
309         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
310         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
311         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
312         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
313         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
314
315 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
316
317         * output.h (ctors_section, dtors_section, bss_section): Prototype.
318
319         * alpha/alpha-interix.h (text_section): Delete prototype.
320         * alpha/elf.h (text_section): Likewise.
321         * arm/linux-elf.h (text_section): Likewise.
322         * arm/linux-telf.h (text_section): Likewise.
323         * c4x/c4x.h (text_section): Likewise.
324         * dsp16xx/dsp16xx.h (bss_section): Likewise.
325         * elfos.h (text_section): Likewise.
326         * i386/aix386ng.h (text_section): Likewise.
327         * i386/i386-interix.h (text_section): Likewise.
328         * i386/sco5.h (text_section): Likewise.
329         * i386/svr3gas.h (text_section): Likewise.
330         * nextstep.h (text_section): Likewise.
331         * psos.h (text_section): Likewise.
332         * ptx4.h (text_section): Likewise.
333         * svr3.h (text_section): Likewise.
334         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
335
336 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
337
338         * final.c (peephole): Delete prototype.
339
340         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
341         (pre_insert_copies): Remove unused variable `bb'.
342
343         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
344         prototypes.
345
346         * output.h (peephole): Add prototype.
347
348 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
349
350         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
351         -O0.
352
353 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
354
355         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
356         for inlined declarations.
357
358 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
359
360         * arm.c (logical_binary_operator): New fucntion.
361         * arm.h (logical_binary_operator): Declare it.
362         (PREDICATE_CODES): Handle logical_binary_operator.
363         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
364         output constraints.  Add appropriate splitters.
365         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
366         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
367         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
368
369 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
370
371         * genoutput.c (struct operand_data): New elt eliminable.
372         (output_operand_data): Write it.
373         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
374         (compare_operands): Take it into account.
375         * recog.h (struct insn_operand_data): New elt eliminable.
376         * reload1.c (check_eliminable_occurrences, elimination_effects): New
377         functions.
378         (old_asm_operands_vec, new_asm_operands_vec): Delete.
379         (eliminate_regs): Move code that detects changes to elimination
380         target regs into new function elimination_effects.
381         Delete one #if 0 block.
382         Abort for USE, CLOBBER, ASM_OPERANDS and SET. 
383         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
384         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
385         Only call eliminate_regs for real operands of the insn, not for parts
386         of its structure or parts matched by things like match_operator.
387         Use elimination_effects and check_eliminable_occurrences.  Use
388         copy_insn to duplicate the pattern when not in the final pass.
389
390 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
391
392         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
393         and fld.
394
395 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
396
397         * fixinc/README: document the "mach" machine matching test
398         * fixinc/fixfixes.c: Implement the #else/#endif label fix
399         * fixinc/fixtests.c: Implement the #else/#endif label test
400         * fixinc/inclhack.def: utilize these tests and fixes
401         * fixinc/inclhack.sh:  regen
402         * fixinc/fixincl.x:  regen
403         * fixinc/fixincl.sh:  regen
404
405 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
406
407         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
408         depend on ggc.h.
409
410 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
411
412         * gcc.1: Document exit codes.
413
414 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
415
416         * calls.c: Include tm_p.h later, so everything we need is defined.
417         * expr.c: Likewise.
418         * function.c: Likewise.
419
420         * except.c: Include tm_p.h.
421
422         * sparc.c: Likewise.
423         (dwarf2out_cfi_label): Don't prototype.
424         (check_return_regs, epilogue_renumber,
425         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
426         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
427         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
428         ultra_schedule_insn): Add static prototype.
429         (data_segment_operand, text_segment_operand): Call itself with the
430         proper number of arguments.
431         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
432
433         * sparc.h: Move all declarations to sparc-protos.h.
434         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
435         symbolic_operand.
436
437         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
438
439         * config/svr4.h (text_section, ctors_section, dtors_section): Add
440         Prototypes.
441         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
442         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
443         ASM_OUTPUT_ASCII): Constify a char*.
444         
445         * sparc-protos.h: New file for sparc prototypes.
446         
447 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
448
449         * function.c (record_insns, contains): Always declare and define.
450         (record_insns): Mark with ATTRIBUTE_UNUSED.
451
452 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
453
454         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
455         to .section when outputting a .bss section to deal with multiple
456         .bss input sections (as happens with -fdata-sections)
457         Also output %progbits, not @progbits so the assembler doesn't treat as
458         a comment.
459         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
460
461         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
462         thumb parts even when building with non-thumb CPUs, by forcing
463         thumb mode.     
464
465 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
466
467         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
468         (movdf_const_intreg_sp64): Similarly.
469
470         * local-alloc.c (update_equiv_regs): Check the correct insn
471         for pre-existing REG_EQUIV notes.
472
473 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
474
475         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
476         block reached by a branch if we're not going to actually process
477         this block.
478
479 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
480
481         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
482         a local extern function declaration.
483
484 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
485
486         * i386.c (ix86_expand_prologue): Properly wrap USE around
487         reg for CALL_INSN_FUNCTION_USAGE.
488
489 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
490
491         * config/mips/mips.md (movdf_internal1a): Allow floating-point
492         move between GP_REGs.
493
494 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
495
496         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
497         the mode size when finding out if an offset is legal.
498
499 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
500
501         * basic-block.h (PROP_*): Move constants from ...
502         * flow.c: ... here.
503         (compute_bb_for_insn): Free the array before reallocating.
504         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
505         (allocate_reg_life_data): Reset all reg variables collected by
506         propagate_block.
507         (get_block_head_tail): Don't convert from bb to block.
508         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
509         (find_insn_reg_weight): Take block not bb.
510         (schedule_block): Don't set block num for moved insns.
511         (schedule_region): Don't update_life_info or find_insn_reg_weight.
512         (schedule_insns): Do it here instead.
513         * combine.c (combine_instructions): Invoke compute_bb_for_insn
514         before update_life_info.
515         * recog.c (split_all_insns, peephole2_optimize): Update for
516         new arg to update_life_info.
517         * rtlanal.c (remove_note): Cope with NULL note.
518         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
519         if we did sched1.
520
521 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
522
523         * jump.c (jump_optimize_1): More accurately detect casesi insns.
524
525         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
526         block records so that merge_blocks_nomove will clean up correctly.
527         (split_edge): Handle casesi insns.
528
529         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
530
531 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
532
533         * pa.md (call, call_value): Do not emit a blockage after restoring
534         the PIC register.
535
536 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
537
538         * c-typeck.c (c_expand_asm_operands): Fix typo.
539
540 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
541
542         * arm.c (fpu_rhs_operand): Verify modes.
543         (fpu_add_operand): Likewise.
544         (di_operand): Likewise.
545         (soft_df_operand): Likewise.
546
547 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
548
549         * arm.c (arm_return_in_memory): APCS rules state that the elements
550         of a structure returned in a register must be 'integer-like'.
551
552 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
553
554         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
555         in the source tree when the generated targets are out of date
556         * fixinc/genfixes: Alter it to run individual fixes for make.
557         * fixinc/README: rewrite
558         * fixinc/inclhack.def: moved initial comments to README
559
560 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
561
562         * toplev.c (main): Do not generate an error message if an
563         unrecognised command line switch is recognisable by another
564         language.  If extra_warnings are enabled, then generate a
565         warning message instead.
566
567 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
568
569         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
570         (insert_pack_attributes): Delete prototype.
571
572         * c-pragma.c (default_alignment): New static variable.
573         (push_alignment): Initialize to current effective alignment.
574         (pop_alignment): Use to set new alignment.
575         (insert_pack_attributes): Delete function.
576         (handle_pragma_token): Set default_alignment as well each time 
577         a #pragma pack(<n>) is encountered.
578
579 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
580
581         * reg-stack.c (stack_result): Aggregates are not returned in
582         stack registers.
583
584 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
585
586         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
587
588 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
589
590         * basic-block.h (set_block_num): Declare.
591         * flow.c (update_life_info): Don't call compute_bb_for_insn
592         or free_basic_block_vars.
593         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
594         (insn_orig_block): Remove.
595         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
596         (schedule_block): Keep BLOCK_NUM up-to-date.
597         (schedule_insns): Use compute_bb_for_insn.
598         * recog.c (split_all_insns): Likewise.
599         (peephole2_optimize): Likewise.
600
601 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
602
603         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
604         if the pic register is used.
605
606 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
607
608         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
609         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
610         if that tests TREE_PERMANENT.
611
612 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
613
614         * cse.c (invalidate_for_call): Do not remove memory references from
615         the table here.  It's handled elsewhere.
616
617         * haifa-sched.c (add_dependence): Protect references to the
618         true dependency cache with #ifdef INSN_SCHEDULING.
619         (remove_dependence): Similarly.
620
621         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
622         to the cfg code that this is a return instruction.
623         * mn10300.md (return_internal): Similarly.
624
625         * combine.c (get_last_value): If the last set of a register
626         is after subst_low_cuid, then we can not use it to determine
627         the register's last value.
628
629 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
630
631         * Makefile.in: Back out previous change.
632         
633 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
634
635         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
636
637         * haifa-sched.c (add_dependence): Only check/update the cache
638         if it exists.
639         (remove_dependence): Likewise.
640         (schedule_insns): Only create the true_dependency_cache if the
641         average number of instructions in a basic block is very large.
642
643 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
644
645         * Makefile.in (ggc-common.o): Depend on genrtl.h.
646         (ggc-simple.o): Likewise.
647         (ggc-page.o): Likewise.
648
649 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
650
651         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
652         Prototype for exported functions.
653         (pre_lcm, pre_rev_lcm): Remove prototypes.
654         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
655         (compute_available): Move to lcm.c, and change parameter order.
656         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
657         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
658         (gcse_main): No longer call compute_preds_succs.  Rebuild the
659         set table after reach pre pass.
660         (pre_insert_map, pre_delete_map, edge_list): New.
661         (alloc_pre_mem): Allocate edge vectors.
662         (free_pre_mem): Delete edge vectors.
663         (compute_pre_data): Call new edge based lcm routines.
664         (process_insert_insn): New function.
665         (insert_insn_end_bb): Use it.
666         (pre_edge_insert): New function.
667         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
668         needed.
669         (pre_insert_copies): Revamp using new edge based lcm outputs.
670         (pre_delete): Likewise.
671         (one_pre_gcse_pass): Insert & remove fake edges to the exit
672         block.
673         (compute_code_hoist_vbeinout): New new edge based routines.
674         * lcm.c: Remove all the old LCM functions.  Replace with new ones
675         that work with the new cfg datastructures and work with edges
676         instead of blocks.
677
678 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
679
680         * reload.h (struct reload): Add new fields "mode" and "nregs".
681         * reload1.c: Change all occurrences of reload_mode and reload_nregs
682         to reference the "mode" and "nregs" field within struct reload.
683
684 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
685
686         * haifa-sched.c (true_dependency_cache): New.
687         (add_dependence): Use the true dependency cache to avoid expensive
688         walks down the LOG_LINKS dependency list.  Add entries to the
689         cache as necessary.
690         (remove_dependence): Remove entries from the true dependency cache
691         as needed.
692         (schedule_insns): Allocate and initialize and free the true
693         dependency cache.
694
695         * haifa-sched.c (schedule_insns): Do not remove inter-block
696         dependencies anymore.
697
698 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
699
700         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
701         * i386/t-winnt: Likewise.
702
703 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
704
705         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
706
707 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
708
709         * Makefile.in (LANGUAGES): Omit "proto".
710         (clean): Remove stale comment about removing unprotoize.c.
711
712 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
713
714         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
715         using arithmetic on void pointers.
716
717 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
718
719         * haifa-sched.c (compute_block_forward_dependencies): Only check
720         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
721
722 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
723
724         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
725         (expr_equiv_p): Reject memories with different alias sets.
726
727 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
728
729         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
730         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
731         (f_options): Add "bounded-pointers" and "bounds-check" entries.
732         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
733         (lang_init): Set default for flag_bounds_check if still "unspecified".
734
735 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
736
737         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
738
739 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
740
741         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
742         instructions.
743
744 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
745
746         * config/c4x/c4x.md (*db_noclobber, 
747         *decrement_and_branch_until_zero_noclobber): New patterns and 
748         associated splitters.
749
750 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
751
752         * config/c4x/c4x.md (parallel instruction patterns): Rework
753         constraints to keep reload happy.
754
755 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
756
757         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
758         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
759         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
760         Add new patterns and associated post-reload splitters.
761
762 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
763
764         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
765
766 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
767
768         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
769         if appropriate.
770         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
771
772 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
773
774         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
775         memory mode.
776
777 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
778
779         * pa.c (move_operand): Rely on memory_address_p to determine the
780         validity of non-indexed memory addresses.
781         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
782         operand in DFmode and SFmode when generating PA2.0 code.
783
784 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
785
786         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
787
788 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
789
790         * mips.c (function_prologue): Fix argument types.
791         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
792         (casesi_internal): Write to the scratch register.
793
794 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
795
796         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
797         to U_CHAR **.
798         (parse_charconst): Delete unnecessary cast when calling
799         cpp_parse_escape.
800         (cpplib.h): Kill prototype of cpp_parse_escape.
801
802 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
803
804         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
805         * unroll.c (unroll_loop): Cast return value of alloca.
806         * i370/i370.c: Include function.h and toplev.h.
807         (i370_label_scan): Remove c++ commented abort.
808         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
809         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
810         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
811         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
812
813 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
814
815         * config/t-freebsd: Do not override USER_H.
816         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
817
818 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
819                           Mumit Khan  <khan@xraylith.wisc.edu>
820
821         * c-parse.in (component_decl): Support anonymous struct/union.
822         (%expect): Update.
823         * c-parse.y: Regenerate.
824         * c-parse.c: Likewise.
825         * objc/objc-parse.y: Likewise.
826         * objc/objc-parse.c: Likewise.
827         * c-decl.c (finish_struct): Don't sort the fields.
828         (field_decl_cmp): Delete unused function.
829
830 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
831
832         * sparc.md (movsf_const_intreg): Revert last constraint change.
833         (movdf_const_intreg_sp32): Likewise.
834
835 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
836
837         * cse.c: Include hashtab.h instead of splay-tree.h
838         (struct cse_reg_info): No longer use variant union.  Add new
839         field "regno".  All references changed to avoid union.
840         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
841         (free_cse_reg_info): Remove.
842         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
843         (get_cse_reg_info): Revamp to use expandable hash tables instead
844         of splay trees.  Initialize new fields in cse_reg_info structure.
845         (new_basic_block): Similarly.
846
847 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
848
849         * genrecog.c (message_with_line): Prototype.
850         (validate_pattern): Pass along the set for the dest, not a flag.
851         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
852         Check for PC/CC0 as sources.
853         (nodes_identical): Check for children position match before 
854         allowing the combination.
855
856         * rtl.c (read_rtx): Track line number across \\\n.
857
858 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
859
860         * mips.h (SPECIAL_MODE_PREDICATES): New.
861         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
862         (movdi+1, movsi+1): Add output reload constraint.
863         (casesi_internal): Likewise.  Fix commentary.
864         (return_internal): Use pmode_register_operand.
865
866 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
867
868         * 1750a.md (movstrqi): Add missing output reload constraint.
869         (call_value): Likewise.
870         * a29k.md (cpxxx patterns): Add missing match_operator mode.
871         (jmpfdec): Add missing inout reload constraint.
872         * elxsi.md (addsi patterns): Add missing output reload constraint.
873         (move from sp): Use @ alternates.
874         (call_value): No constraint on output.
875         * fr30.md (movsi_pop): Add missing output reload constraint.
876         (movsf_constant_store): Likewise.
877         (splits): Remove constraints.
878         (subsi3): Add missing mode.
879         * i370.md (cmpstrsi+1): Add missing output reload constraint.
880         (call_value): Likewise.
881         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
882         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
883         * m32r.md (movsicc_internal): Add output reload constraint.
884         (movstrsi_internal): Add inout reload constraints.
885         * m88k.h (reg_names): Don't declare.
886         (SPECIAL_MODE_PREDICATES): New.
887         * m88k.md (*): Use register_operand not reg_or_0_operand
888         on destinations.
889         * mn10200.h (PREDICATE_CODES): New.
890         * ns32k.md (ffs pattern): Add output reload constraint.
891         * pdp11.md (sob pattern): Add inout reload constraint.
892         * sh.md (splits): Remove constraints.
893         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
894         * v850.md (pattern_is_ok_for_epilogue): Likewise.
895         * vax.md (jgequ pattern): Add inout reload constraint.
896
897 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
898
899         * configure.in (djgpp): Revert previous patch.
900         * configure: Rebuit.
901         * config/i386/djgpp.h: Revert previous patch.
902
903 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
904
905         * fixinc/inclhack.def: Restore patch lost during last merge of
906         "no_bogosity" branch.
907         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
908
909 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
910
911         * fixincludes: Add a HPUX 11 fix for inttypes.h.
912         * fixinc/inclhack.def: Same.
913         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
914
915 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
916
917         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
918         as the base of a PLUS.
919
920 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
921
922         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
923         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
924         
925 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
926
927         * pa.md (post_stw+1): Use pmode_register_operand.
928         (dcacheflush, icacheflush): Likewise.
929
930         * i386.md (movstricthi_1): Allow r/r.
931
932 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
933
934         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
935         to (not (and (arg0) (arg1))). Similary for and.
936
937         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
938         falltrought to assocate code.
939         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
940         bits in common.
941
942         * combine.c (simplify_logical): Convert XOR to IOR if operands have
943         no bits in common; remove XOR to ROTATE conversion.
944
945 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
946
947         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
948
949 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
950
951         * config/c4x/c4x.c (dst_operand): New.
952         (PREDICATE_CODES): Update.
953         * config/c4x/c4x.h (dst_operand): Declare it.
954         * config/c4x/c4x.md:  Define mode for each unspec usage.
955         (move patterns):  Use dst_operand predicate instead of src_operand.
956         (movqi_update, movqf_update): Delete.
957
958 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
959
960         * recog.c (pmode_register_operand): New.
961         * recog.h: Declare it.
962         * genrecog.c (pred_codes): Likewise.
963         (special_mode_pred_table): Likewise.
964         (validate_pattern): Don't warn no mode for address_operand.
965
966         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
967         if the operand is not insn-like.
968
969 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
970                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
971
972         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
973
974 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
975
976         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
977         instead of general_operand in a SET_DEST.  Use const_double_operand
978         instead of an explicit test against CONST_DOUBLE.
979         (movsf_const_lo): Add missing register mode.
980         (goto_handler_and_restore): Add auxiliary test for Pmode.
981         (flush): Adjust to use address_operand.
982         (return_sf_no_fpu): Add missing output constraint.
983
984 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
985
986         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
987         for call return value.
988         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
989
990 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
991
992         * toplev.c (main): Only warn about options for other languages.
993         * collect2.c (main): Pass -w to sub-gcc.
994
995 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
996
997         * flow.c (propagate_block): Add call-clobbered registers to
998         significant too.
999
1000         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
1001         zapping mem_set_list.
1002         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
1003         (mark_set_1, mark_used_regs): Likewise.
1004
1005 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
1006
1007         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
1008
1009 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1010
1011         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
1012         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
1013         options. Also add a new item "C-only Warning Options" to the
1014         option summary.
1015
1016 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
1017
1018         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
1019         from multiple calls.
1020
1021 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
1022
1023         * i386.md (call value patterns): Move to the end of the file.
1024         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
1025
1026 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
1027
1028         * configure.in (djgpp configuration): Define extra_objects..
1029         * configure: Rebuilt.
1030         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
1031         (DTORS_SECTION_ASM_OP): Define.
1032         (INIT_SECTION_ASM_OP): Define.
1033         (FINI_SECTION_ASM_OP): Define.
1034         (DATA_SECTION_ASM_OP): Define.
1035         (TEXT_SECTION_ASM_OP): Define.
1036         (EH_FRAME_SECTION_ASM_OP): Define.
1037         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
1038         (STARTFILE_SPEC): Add crtbegin.o.
1039         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
1040         to here from LINK_COMMAND_SPEC.
1041         (DO_GLOBAL_CTORS_BODY): Define.
1042         (CRTSTUFF_USE_FINI_SECTION): Define
1043         (HAS_INIT_SECTION): Delete.
1044
1045 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
1046
1047         * Makefile.in (all.cross): Depend on xcpp$(exeext).
1048
1049 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
1050
1051         * pa.h (PREDICATE_CODES): New.
1052
1053         * genrecog.c (validate_pattern): Condense the destination
1054         non-lvalue message.
1055
1056 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
1057
1058         * alpha.md (call-1): Supply missing mode for operator.
1059         (*): Add missing output reload constraints.  Remove constraints
1060         from define_splits.
1061
1062         * i386.h (SPECIAL_MODE_PREDICATES): New.
1063         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
1064         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
1065         (addsi_lea_3): Add missing mode for op 3.
1066         (prologue_set_got, prologue_get_pc): Add missing modes.
1067         (*) Add missing output reload constraints.
1068
1069 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
1070
1071         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
1072         check for member bit-size overflow and use var_size if it occurs.
1073         (layout_record): Use bitsize_int() to define the type size in bits.
1074         Likewise for computation and assignment to DECL_FIELD_BITPOS.
1075         (layout_decl): Likewise when assigning to DECL_SIZE.
1076
1077 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
1078
1079         * genrecog.c (validate_pattern): Typo last change.  Verify
1080         that output operands have output reloads.
1081
1082 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
1083
1084         * genrecog.c (special_mode_pred_table): New.
1085         (NUM_SPECIAL_MODE_PREDS): New.
1086         (find_operand): New.
1087         (validate_pattern): New argument `insn'.  Warn for assignment to
1088         any predicate accepting non-lvalues.  Conditionaly warn for
1089         match_operand without a mode.  Try much harder to match source
1090         and destination modes on a set.
1091         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
1092
1093 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
1094
1095         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
1096
1097 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
1098
1099         * combine.c (simplify_logical): Recognize xor pattern that encodes
1100         rotation.
1101
1102 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1103
1104         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
1105         alignment.
1106
1107 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
1108
1109         * ggc-page.c (MAP_FAILED): Provide default.
1110
1111 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
1112
1113         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
1114         * sparc.h (PREDICATE_CODES): Update.
1115
1116 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
1117
1118         * alpha.c (some_ni_operand): New.
1119         * alpha-protos.h: Declare it.
1120         * alpha.h (PREDICATE_CODES): Update.
1121         * alpha.md (sXaddq reload insns): Use some_ni_operand 
1122         for SET_DEST instead of some_operand.
1123
1124 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
1125                           Jim Wilson  <wilson@cygnus.com>
1126
1127         * genrecog.c (maybe_both_true_2): Don't compare modes of
1128         two DT_pred tests.
1129         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
1130         after find_afterward.
1131         (debug_decision_1): Dump next and afterward codes.
1132
1133 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
1134
1135         * rtl.c (dump_and_abort): Remove.
1136         (fatal_with_file_and_line): New.
1137         (fatal_expected_char): New.
1138         (read_rtx_lineno, read_rtx_filename): New.
1139         (read_skip_spaces): Track line number.
1140         (read_name): Use fatal_with_file_and_line.
1141         (read_rtx): Use fatal_expected_char.  Track line number.
1142         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
1143
1144         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
1145         if it isn't a CODE_LABEL.
1146
1147         * genattr.c (main): Set read_rtx_filename.
1148         * genattrtab.c (main): Likewise.
1149         * gencodes.c (main): Likewise.
1150         * genconfig.c (main): Likewise.
1151         * genemit.c (main): Likewise.
1152         * genextract.c (main): Likewise.
1153         * genflags.c (main): Likewise.
1154         * genopinit.c (main): Likewise.
1155         * genoutput.c (main): Likewise.
1156         * genpeep.c (main): Likewise.
1157
1158         * genrecog.c (decision_test.u.insn): Add `lineno'.
1159         (pattern_lineno, error_count): New variables.
1160         (message_with_line): New.
1161         (add_to_sequence): Break out checking code to ...
1162         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
1163         (merge_insn): Use message_with_line.
1164         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
1165         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
1166
1167 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1168
1169         * expr.c (store_constructor): Clear union if constructor is empty.
1170
1171 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
1172
1173         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
1174         Add !endian checks.  Change %{...} to %(...).
1175
1176 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
1177
1178         * i386.md (*addsi3_cc): Renamed from addcsi3.
1179         (*addsi3_carry): Renamed from addxsi3.
1180         (*subsi3_cc): Renamed from subcsi3.
1181         (*subsi3_carry): Renamed from subxsi3.
1182         (*xorqi_cc_1): Renamed from xorcqi_1.
1183         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
1184         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
1185
1186 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
1187
1188         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
1189         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
1190
1191 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
1192
1193         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
1194         climb up the chain of insns.
1195
1196 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
1197
1198         * genrecog.c (write_subroutine): Careful for null trees.
1199         (process_tree): Don't elide empty functions.
1200
1201 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
1202
1203         * Makefile.in (genrtl.o): Depend on ggc.h.
1204         * configure.in (valloc): Probe for it.
1205         (with-gc): Use ggc-page if valloc present.
1206         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
1207         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
1208         (ggc_alloc_string): Moved from ggc-page.c.
1209         * ggc-none.c (ggc_alloc_obj): New.
1210         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
1211         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
1212         (struct globals): Likewise for dev_zero_fd.
1213         (init_ggc): Likewise for it's initialization.
1214         (ggc_allocated_p): Move careful dereference from ...
1215         (ggc_lookup_page_table): ... here.  Delete.
1216         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
1217         (alloc_anon): Use valloc if no mmap.
1218         (release_pages): Use free if using valloc.
1219         (ggc_alloc_obj): Renamed from alloc_obj.
1220         (ggc_set_mark): Renamed from mark_obj.
1221         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
1222         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
1223         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
1224         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. 
1225         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
1226         (ggc_collect): Use fp printing instead of our own rounding.
1227         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
1228         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
1229         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
1230         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
1231         (struct ggc_string, struct ggc_any): Delete.
1232         (offsetof): Provide default definition.
1233         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
1234         (PTR_KEY): New.
1235         (struct ggc_mem): New, from corpse of ggc_any.
1236         (struct ggc_status): Delete.
1237         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
1238         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
1239         (n_strings_collected, n_anys_collected): Delete.
1240         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
1241         (ggc_alloc_string, ggc_alloc): Delete.
1242         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
1243         (ggc_free_string, ggc_free_any): Delete.
1244         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
1245         (ggc_compare_addresses, ggc_mark_string): Delete.
1246         (ggc_mark_string_if_gcable, ggc_mark): Delete.
1247         (search_data): Delete.
1248         (struct globals): New.
1249         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.   
1250         (tree_insert, tree_lookup): New.
1251         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
1252         (clear_marks, sweep_objs): New.
1253         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
1254         (init_ggc): Set allocated_last_gc.
1255         (ggc_push_context): Gut.  Use G.context.
1256         (ggc_pop_context): Likewise.
1257         (ggc_pop_context_1): New.
1258         (debug_ggc_tree): New.
1259         (debug_ggc_balance, tally_leaves): New.
1260         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
1261         (ggc_mark_string_if_gcable): Remove decl.
1262         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
1263         (ggc_mark_rtvec_children): New.
1264         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
1265         (ggc_mark_if_gcable): New decl.
1266         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
1267         (ggc_alloc_tree, ggc_alloc): Likewise.
1268         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
1269         (ggc_alloc_obj): New decl.
1270         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
1271         (ggc_alloc_tree, ggc_alloc): Likewise.
1272         (ggc_set_mark): New decl.
1273         * rtl.h (struct rtx_def): Remove gc_mark.
1274         (struct rtvec_def): Likewise.
1275         * tree.h (struct tree_common): Likewise.
1276
1277 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
1278
1279         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
1280         float_format and thread_file definitions.
1281         * configure: Rebuilt.
1282
1283 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
1284
1285         * extend.texi (Function Names): Document types of function names.
1286
1287 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1288
1289         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
1290         an earlyclobbered output conflict with RELOAD_INPUT reloads.
1291
1292 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1293
1294         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
1295
1296 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1297
1298         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
1299
1300 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
1301
1302         * collect2.c (main): Do prelimnary link on AIX if rflag.
1303
1304 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1305
1306         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
1307         __CTOR_LIST__ in opposite order, which is the correct order for sorted
1308         constructors.
1309         (__do_global_dtors): similarly for __DTOR_LIST__.
1310
1311 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1312                                 Diego Novillo <dnovillo@cygnus.com>
1313
1314         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
1315         FPUL_REGS.
1316
1317 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
1318
1319         * fixincl/*: Merged "no_bogosity" branch
1320         * fixincl/fixlib.h: protect against doubly defining t_bool
1321         * fixincl/server.h: protect against doubly defining t_bool
1322
1323 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
1324
1325         * genoutput.c: Include toplev.h.
1326
1327 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
1328
1329         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
1330         Undef.
1331         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
1332         * configure: Regenerate.
1333
1334 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
1335
1336         * gcse.c (delete_null_pointer_checks): Returns void.
1337
1338 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1339
1340         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
1341         * emit-rtl.c (copy_insn_1): Likewise.
1342
1343 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
1344
1345         * config/mips/mips.c (mips_build_va_list): Correct
1346         TREE_CHAIN setting when hard-float.
1347         (mips_va_start): Use corrected setting.
1348         (mips_va_arg): Likewise.  Also pass a tree to build of
1349         POSTINCREMENT_EXPR rather than a naked 'int'.
1350
1351 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
1352
1353         * ggc.h (ggc_push_context): Fix comment.
1354         (ggc_pop_context): Likewise.
1355         (mark_string_if_gcable): Likewise.
1356         * ggc-common.c (ggc_mark_rtx_children): Use
1357         ggc_mark_string_if_gcable.
1358         * ggc-page.c (ggc_lookup_page_table): New function.
1359         (ggc_allocated_p): Likewise.
1360         (mark_obj): Fix formatting.
1361         (ggc_mark_string_if_gcable): New function.
1362         * ggc-simple.c (ggc_allocated_strings): New variable.
1363         (ggc_strings_used): Likewise.
1364         (ggc_compare_addresses): New function.
1365         (ggc_pop_context): Pop the `any' memory too.
1366         (ggc_mark_string_if_gcable): New function.
1367         (ggc_collect): Initialize and tear down ggc_allocated_strings.
1368         
1369 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
1370
1371         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
1372         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
1373         * rs6000.c (expand_block_move): Match movstrsi_?reg register
1374         changes.
1375
1376 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
1377
1378         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
1379         (sched_reg_live_length, sched_reg_basic_block): Delete.
1380         (current_block_num, bb_live_regs, old_live_regs): Delete.
1381         (dead_notes, struct sometimes): Delete.
1382         (sched_note_set, birthing_insn_p): Delete.
1383         (adjust_priority): Gut useless reg lifetime code.
1384         (create_reg_dead_note, attach_deaths): Delete.
1385         (attach_deaths_insn, new_sometimes_live): Delete.
1386         (finish_sometimes_live): Delete.
1387         (find_pre_sched_live, find_post_sched_live): Delete.
1388         (update_reg_usage): Delete.
1389         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
1390         (schedule_insns): Delete reg lifetime code.
1391         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
1392         (unlink_other_notes): Adjust REG_NOTE commentary.
1393         (reemit_notes): Use REG_SAVE_NOTE.
1394         (schedule_block): Likewise.
1395         (schedule_region): Allocate bitmap of blocks in region.  Use
1396         count_or_remove_death_notes.  Use update_life_info.
1397
1398         * rtl.h (REG_SAVE_NOTE): New.
1399         * rtl.c (reg_note_name): Update.
1400         
1401 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
1402
1403         * combine.c (refresh_blocks, need_refresh): New.
1404         (combine_instructions): Allocate refresh_blocks.  Invoke
1405         update_life_info if needed.
1406         (distribute_notes): Mark refresh_blocks instead of installing
1407         USE insns.
1408         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
1409         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
1410
1411         * Makefile.in (recog.o): Depend on basic-block.h.
1412
1413 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
1414
1415         * genrecog.c (add_to_sequence): Thinko last change: delete
1416         shadowing allow_const_int variable.
1417
1418 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
1421         __GNUC__ and __GNUC_MINOR__.
1422
1423         * gansidecl.h: Likewise.
1424
1425         * rtl.c: Likewise.
1426         
1427         * rtl.h: Likewise.
1428
1429         * toplev.h: Likewise.
1430
1431         * tree.c: Likewise.
1432
1433         * tree.h: Likewise.
1434
1435         * varray.c: Likewise.
1436
1437         * varray.h: Likewise.
1438
1439 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1440
1441         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
1442         use one before a jump table.
1443
1444         * rtl.def (ADDRESS): Change documentation to match reality.
1445         * md.texi: Don't document it.
1446         * gmicro.md (load address pattern): Use 'p' constraint, delete use
1447         of ADDRESS rtx.
1448
1449         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
1450
1451 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
1452
1453         * genrecog.c (add_to_sequence): Move allow_const_int test outside
1454         known predicate block; default allow_const_int true.
1455         (debug_decision_list): New.
1456
1457 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
1458
1459         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
1460
1461 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
1462
1463         * gcse.c (gcse_main): Avoid global optimizations if we have a
1464         large number of basic blocks and the ratio of edges to blocks
1465         is high.
1466         (delete_null_pointer_checks): Likewise.
1467
1468 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
1469
1470         * c-common.c (check_format_info): Warn if format string isn't a
1471         string literal.
1472
1473 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
1474
1475         * configure.in (arm*-*-*): Don't let autoconf remove brackets
1476         * configure: regenerate
1477
1478 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
1479
1480         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
1481         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
1482         (peepholes): Re-enable.
1483
1484 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
1485
1486         * Makefile.in (flow.o): Depend on TREE_H.
1487         * basic-block.h (REG_SET_EQUAL_P): New.
1488         (XOR_REG_SET): New.
1489         (n_edges): Declare.
1490         (free_regset_vector): Remove declaration.
1491         (flow_delete_insn_chain): Declare.
1492         (enum update_life_extent): New.
1493         (update_life_info, count_or_remove_death_notes): Declare.
1494         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
1495         Verify register live at bb->global_live_at_start before adding USE.
1496         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
1497         (CLEAN_ALLOCA): New.
1498         (n_edges): New. 
1499         (PROP_*): New flags.
1500         (find_basic_blocks_1): Use alloc_EXPR_LIST.
1501         (clear_edges): Zero n_edges.
1502         (make_edge): Increment n_edges.
1503         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
1504         (flow_delete_insn_chain): Export.
1505         (delete_block): Decrement n_edges.
1506         (merge_blocks_nomove): Likewise.
1507         (life_analysis): Give life_analysis_1 PROP flags.
1508         (verify_wide_reg_1, verify_wide_reg): New.
1509         (verify_local_live_at_start): New.
1510         (update_life_info): Rewrite to call into propogate_block.
1511         (mark_reg): New.
1512         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
1513         always mark stack pointer.  Conditionally mark PIC register.
1514         After reload, mark call-saved registers, return regsiters.
1515         (life_analysis_1): Accept PROP flags not remove_dead_code.
1516         Call mark_regs_live_at_end before zeroing regs_ever_live.
1517         Use calculate_global_regs_live.  Copy global_live_at_end before
1518         calling final propagate_block.  Zero reg_next_use on exit.
1519         (calculate_global_regs_live): New.
1520         (allocate_bb_life_data): Don't allocate bb->local_set.
1521         (init_regset_vector, free_regset_vector): Remove.
1522         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
1523         Test flags before every operation.  Warn if prologue/epilogue insn
1524         would have been deleted.
1525         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
1526         Use alloc_EXPR_LIST.
1527         (mark_used_regs): Accept and use FLAGS, not FINAL.
1528         Remove special handling for RETURN.
1529         (try_pre_increment): Use alloc_EXPR_LIST.
1530         (dump_flow_info): Dump n_edges.
1531         (unlink_insn_chain, split_hard_reg_notes): Remove.
1532         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
1533         (find_insn_with_note, new_insn_dead_notes): Remove.
1534         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
1535         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
1536         (replace_insns): Remove.
1537         (count_or_remove_death_notes): New.
1538         (verify_flow_info): Abort on error after all checks.
1539         (remove_edge): Decrement n_edges.
1540         (remove_fake_edges): Tweek format.
1541         * haifa-sched.c (schedule_insns): Use split_all_insns.
1542         * output.h (update_life_info): Remove declaration.
1543         * recog.c (split_all_insns): From the corpse of split_block_insns,
1544         do the whole function block by block.  Use update_life_info.
1545         (recog_last_allowed_insn): New.
1546         (recog_next_insn): Mind it.
1547         (peephole2_optimize): Set it.  Walk backwards through blocks.
1548         Use update_life_info.
1549         * rtl.h (update_flow_info, replace_insns): Remove declarations.
1550         (split_all_insns): Declare.
1551         * toplev.c (rest_of_compilation): Thread prologue before flow2.
1552         Use split_all_insns.
1553
1554         * i386.md (or -1 peep2s): Disable.
1555
1556 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
1557
1558         * config/mips/mips.md (movstrsi+[123]) : Combine these into
1559         a single pattern.  Scrap the 'd' versions as unnecessary. 
1560
1561         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
1562         tablejump_mips162,tablejump_internal4): The operands to a
1563         label_ref must be VOIDmode.
1564
1565 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1566
1567         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
1568
1569 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
1570
1571         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
1572
1573 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
1574
1575         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
1576         cache every function if ggc_p.
1577
1578 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1579
1580         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
1581         instead of copy_rtx.  Accept sequences that contain asm statements.
1582         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
1583         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
1584         orig_asm_operands_vector, copy_asm_operands_vector,
1585         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
1586         variables.
1587         * rtl.h (copy_insn, copy_insn_1): Declare.
1588
1589 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1590
1591         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
1592
1593         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
1594         arguments to `current_file_function_operand'.
1595
1596         * genrecog.c: Include hard-reg-set.h and resource.h in the
1597         generated output file.
1598
1599         * real.c: Include tm_p.h.
1600
1601 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1602
1603         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
1604         output operand.
1605
1606 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
1607
1608         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
1609         before the fctiwz insn.
1610
1611 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1612                           Mark Mitchell  <mark@codesourcery.com>
1613
1614         * tree.c (make_lang_type_fn): New funtion pointer.
1615         (make_lang_type): Call it.
1616         * tree.h (make_lang_type): Declare.
1617         (make_lang_type_fn): Likewise.
1618         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
1619
1620 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
1621
1622         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
1623         make sure that HIGH instructions are copied into BASE_REGS.
1624
1625 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
1626
1627         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
1628
1629 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
1630
1631         * c-decl.c (finish_struct): Use simpler method of
1632         removing elements of a singly-linked list.
1633
1634 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
1635
1636         * alpha.md (peephole2's): Comment out peephole2's that generate
1637         buggy code.
1638
1639 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
1640
1641         * genrecog.c (add_to_sequence): Disable mode check for
1642         wildcard matches.
1643
1644 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1645
1646         * ggc-simple.c (init_ggc): Set empty_string.
1647
1648 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
1649
1650         * configure.in: Detect mmap.  Add --with-gc=foo to select
1651         garbage collector; default to page if mmap available.
1652         * Makefile.in (GGC): Substitute.
1653
1654 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
1655
1656         * c-decl.c (ggc_p): Enable.
1657
1658 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1659
1660         * flow.c (verify_flow_info): Make it extern & unconditionally define.
1661
1662 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
1663
1664         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
1665         string for little-endian-data.
1666
1667 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
1668
1669         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
1670         case somebody tries to compile --enable-checking code with gcc
1671         1.34 or such.
1672
1673 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
1674
1675         * genrecog.c (add_to_sequence): Verify operand to label_ref is
1676         VOIDmode.
1677
1678 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
1679
1680         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
1681         * jump.c (jump_optimize_1): Document why.
1682
1683 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1684
1685         * collect2.c (scan_prog_file, scan_libraries): Prototype function
1686         pointers and casts for `int_handler' and `quit_handler'.
1687
1688         * flow.c (verify_flow_info, split_hard_reg_notes,
1689         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
1690         remove_edge, remove_fake_successors): Add static prototypes.
1691         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
1692         (mark_set_1): Initialize variable `regno'.
1693         (unlink_insn_chain): Likewise for variable `curr'.
1694         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
1695
1696         * loop.c (strength_reduce): Initialize variable
1697         `unrolled_insn_copies'.
1698         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
1699         prototypes.  Change these functions to take const PTR parameters
1700         to avoid prototype conflict when used as the comparson argument
1701         for qsort.
1702         (check_dbra_loop): Initialize variable `comparison_val'.
1703
1704         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
1705         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
1706         (find_valid_class): Initialize variable `best_class'.
1707         (find_reloads): Call memcpy, not bcopy.
1708
1709         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
1710         (hard_reg_use_compare): Don't needlessly cast away const.
1711         (reload_reg_class_lower): Likewise.
1712         (choose_reload_regs): Initialize variable `regno'.
1713
1714 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
1715
1716         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
1717
1718 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
1719
1720         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
1721         ({,d}discard): Add forward declarations.  Declare parameter as
1722         unused.
1723         (main_without_main): Explicitly declare return type to be int.
1724         (memcpy): Properly declare.
1725
1726         * libgcc2.c (toplevel): If inhibit_libc is defined and not
1727         building the trampoline support, declare malloc, free, and
1728         atexit.
1729         (__clear_cache): Mark arguments as potentially unused.
1730         
1731         * frame.c (toplevel): If inhibit_libc is defined, declare
1732         malloc and free.
1733
1734 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
1735
1736         * flow.c (make_edge): Accept an optional 2D bitmap in which
1737         to cache edge existence.  Update all callers.
1738         (make_label_edge, make_eh_edge): Pass through the edge cache.
1739         (make_edges): Provide the cache.
1740
1741 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1742
1743         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
1744         a char*.
1745         (local_mbtowc): Change the type of variable `i' from int to size_t.
1746
1747         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
1748         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
1749
1750 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
1751
1752         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
1753         after other includes that define the appropriate types.  Include
1754         tm_p.h for getting user prototypes.
1755         * ggc-callbacks.c (toplevel): Ditto.
1756         * ggc-none.c (toplevel): Ditto.
1757         * gcc-page.c (toplevel): Ditto.
1758         * ggc-simple.c (toplevel): Ditto.
1759
1760 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
1761                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
1762
1763         * config/mips/mips.c (mips_move_2words): Split doubles if
1764         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
1765
1766 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
1767
1768         * genrecog.c (struct decision_test): New.
1769         (struct decision): Remove test-related members, sort the rest by size.
1770         (IS_SPLIT): Simplify.
1771         (new_decision, new_decision_test): New.
1772         (add_to_sequence): Use them.  No special handling for args of
1773         non-MATCH codes.
1774         (maybe_both_true): Renamed from not_both_true; return sense changed.
1775         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
1776         of maybe_both_true and adjusted for decision_test.
1777         (position_merit): Remove.
1778         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
1779         (merge_accept_insn): New, broken out of merge_trees.
1780         (merge_trees): Use them.  No special case for c_test; no node
1781         splitting; use test type instead of position_merit.
1782         (factor_tests): New.
1783         (simplify_tests): New.
1784         (break_out_subroutines): Don't write code now.
1785         (find_afterward): New.
1786         (write_afterward, write_switch, write_cond): New.
1787         (write_action, is_unconditional): New.
1788         (write_node): New.  Use them.
1789         (write_tree_1): Rewrite.  Use the new functions above.
1790         (write_tree): Remove afterward processing.
1791         (write_subroutine): Simplify function variant emission.
1792         (write_subroutines): New.
1793         (same_codes, clear_codes): Remove.
1794         (same_modes, clear_modes): Remove.
1795         (write_header): New, broken out of main.
1796         (make_insn_sequence): Use new_decision and new_decision_test.
1797         (process_tree): New, broken out of main.
1798         (main): Adjust for merge_trees interface change. 
1799         Don't #define operands in the output file.
1800         (record_insn_name): New, broken out of make_insn_sequence.
1801         (debug_decision_2, debug_decision_1, debug_decision_0): New.
1802         (debug_decision): New.
1803
1804 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
1805
1806         * resource.c (find_free_register): Mark class_str argument const.
1807         * resource.h: Update prototype to match.
1808
1809         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
1810         * i386.md: Give all anonymous insns names.
1811
1812 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
1813
1814         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
1815         blocks.
1816
1817 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
1818
1819         * toplev.c (dbr_sched_time): Unconditional.
1820         (peephole2_time): New.
1821         (compile_file): Add pass numbers to all of the dump file suffixes.
1822         Dump peephole2_time.  Don't dump times for non-applicable passes.
1823         (rest_of_compilation): Add pass numbers to dump file suffixes.
1824         Conditionalize calls to the scheduler.
1825         * invoke.texi: Update.
1826
1827 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
1828
1829         * flow.c (make_edges): Fix insn iteration.
1830         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
1831         (find_basic_blocks_1): Fix spelling mistake.
1832
1833 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
1834
1835         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
1836         always have side-effects.  Use memset not bzero.
1837         (make_node): Likewise.
1838
1839 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
1840
1841         * stmt.c (expand_anon_union_decl): When any of the elements of the
1842         union is addressable, so is the entire union.
1843
1844 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
1845
1846         * sbitmap.c (sbitmap_ones): Don't set too many bits.
1847
1848         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
1849         * bitmap.c (bitmap_operation): Return true iff TO changed.
1850         (bitmap_equal_p): New.
1851         (bitmap_bit_p): Tidy arithmetic.
1852         (debug_bitmap_file): Likewise.
1853
1854 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
1855
1856         * toplev.c (rest_of_compilation): Turn on cse_not_expected
1857         before cse2 instead of after.
1858
1859 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
1860
1861         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
1862         register offsets. 
1863
1864 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1865
1866         * cppinit.c (is_idchar initializer): Loosen tests to accept
1867         gcc 2.>6 and >2.
1868
1869 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
1870
1871         * mips.md: Define conditional move patterns for floating point
1872         operands and DI mode conditions.
1873
1874 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
1875
1876         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
1877         always have side-effects.
1878
1879 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
1880
1881         * mn10200.c (asm_file_start): Fix typo.
1882
1883         * cppinit.c (is_idchar initializer): Tighten tests for when
1884         to put the table into initialized memory.
1885
1886         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
1887         not an array of rtunion.
1888         * gcc-page.c (ggc_alloc_rtvec): Similarly.
1889         * gcc-simple (ggc_free_rtvec): Similarly.
1890
1891         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
1892         of rtunions.
1893
1894         * mbchar.h: Add missing #endif.
1895
1896         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
1897         (FPBIT, DPBIT): Define.
1898
1899 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1900
1901         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
1902
1903         * profile.c (instrument_arcs, output_gcov_string,
1904         tablejump_entry_p): Add static prototypes.
1905         (output_gcov_string): Constify a char*.
1906         
1907         * regmove.c (replacement_quality, fixup_match_2): Add static
1908         prototypes.
1909
1910         * resource.h (reg_dead_p): Add extern prototype.
1911
1912         * rtl.c (trim_filename): Add static prototype.
1913
1914         * scan-decls.c (skip_to_closing_brace): Likewise.
1915
1916         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
1917         (expand_end_case): Initialize variable `range'.
1918         (emit_case_nodes): Remove unused prototype `rtx_fn'.
1919
1920         * varasm.c (asm_emit_uninitialised): Add static prototype.
1921         (asm_emit_uninitialised, assemble_variable): Mark parameter with
1922         ATTRIBUTE_UNUSED.
1923
1924 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1925
1926         * cpplib.c (if_directive_nameo): Add static prototype.
1927
1928         * cse.c (cse_insn): Remove unused variable `p'.
1929
1930         * except.c (create_rethrow_ref, push_entry,
1931         receive_exception_label, new_eh_region_entry, find_func_region,
1932         clear_function_eh_region, process_nestinfo): Add static prototypes.
1933         (get_reg_for_handler): Hide definition.
1934         (process_nestinfo): Initialize variable `extra_handlers'.
1935
1936         * expr.h (expand_builtin_longjmp): Add extern prototype.
1937
1938         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
1939
1940         * function.c (prepare_function_start): Likewise.
1941         (pop_function_context_from): Mark parameter `context' with
1942         ATTRIBUTE_UNUSED.
1943         (push_temp_slots_for_block, flush_addressof): Hide definition.
1944         
1945         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
1946         solve_program_flow_graph, calculate_branch_probs,
1947         function_summary, main, fancy_abort): Add prototypes.
1948
1949         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
1950         (add_hash): Constify a char*.
1951
1952         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
1953         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
1954         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
1955
1956         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
1957
1958         * lists.c (free_list, zap_lists): Likewise.
1959
1960 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1961
1962         * alias.c (nonlocal_reference_p): Add static prototype.
1963
1964         * bitmap.c (bitmap_element_allocate): Prototype args in function
1965         pointer cast.
1966
1967         * builtins.c (stabilize_va_list): Add static prototype.
1968         (expand_builtin_va_arg): Constify a char*.
1969         
1970         * c-lex.c (getch, put_back, extend_token_buffer_to,
1971         read_line_number, token_getch, token_put_back): Add static
1972         prototypes.
1973
1974         * c-parse.gperf (hash, is_reserved_word): Likewise.
1975
1976         * cccp.c (is_dir_separator): Likewise.
1977
1978 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1979
1980         * graph.h: New file to prototype functions exported by graph.c.
1981
1982         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
1983
1984         * graph.c: Include graph.h.
1985
1986         * toplev.c: Likewise.  Remove redundant prototypes.
1987
1988 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
1989
1990         * invoke.texi: Removed duplicated description for -Q.
1991
1992 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
1993
1994         * extend.texi: Grammar fix in __extension__ text.
1995
1996 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
1997
1998         * md.texi (define_peephole2): New section.
1999
2000 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
2001
2002         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
2003         (mov $-1 to or peepholer): Enable for pentium when optimizing for
2004         speed.
2005
2006 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
2007
2008         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
2009
2010 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
2011
2012         * i386.md (ffs expander): Emit Pentium friendly code for
2013         TARGET_PENTIUM.
2014
2015 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
2016
2017         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
2018         for non-trees.
2019         (build1): Likewise.
2020         
2021 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2022
2023         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
2024
2025 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
2026
2027         * config/m68k/m68k.c (use_return_insn): Return false if the pic
2028         register is in use.
2029
2030 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2031
2032         * md.texi (No Constraints): Delete section.
2033         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
2034         * final.c (final_scan_insn): We always have register constraints.
2035         * genattrtab.c: Don't include "insn-config.h".
2036         (write_attr_case): We always have register constraints.
2037         * genconfig.c (register_constraint_flag): Delete.
2038         (walk_insn_part): Don't check whether we have register constraints.
2039         (main): Don't write out "#define REGISTER_CONSTRAINTS".
2040         * genoutput.c (have_constraints): Delete.
2041         (main): Don't set it.
2042         (output_operand_data): We always have constraints.
2043         (scan_operands): Likewise.
2044         (compare_operands): Likewise.
2045         * local-alloc.c (block_alloc): We always have constraints.
2046         (requires_inout): Always compile this function.
2047         * recog.c (extract_insn): We always have constraints.
2048         (constrain_operands, reg_fits_class_p): Always compile these
2049         functions.
2050         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
2051         fields.
2052         (struct insn_operand_data): Likewise.
2053         * regclass.c (regclass): We always have constraints.
2054         (record_reg_classes, copy_cost, record_address_regs,
2055         auto_inc_dec_reg_p): Always compile these functions.
2056         * regmove.c (regmove_optimize): We always have constraints.
2057         * reload.c (find_reloads): Likewise.
2058         * reload1.c (reload): Likewise.
2059         (reload_cse_simplify_operands): Likewise.
2060         * i860.c (output_delay_insn): Likewise.
2061
2062 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
2063
2064         * iris6.h (BUILD_VA_LIST_TYPE): Define.
2065
2066 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2067
2068         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
2069         for the va_list record.
2070
2071 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
2072
2073         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
2074         prologues.
2075
2076 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
2077
2078         * alias.c: Include insn-flags.h.
2079         * Makefile.in (alias.o): Update.
2080
2081 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
2082
2083         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
2084         to LTU and GEU.  Handle more cases using sbb.
2085
2086 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
2087
2088         * i386.md (truncatexfdf splitters): Do not use subreg.
2089         (fop XFmode patterns): Fix mode in operand testing.
2090
2091 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
2092
2093         * jump.c (jump_optimize_1): Amend last change to test only the
2094         form of the operand, not the insn.
2095
2096         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
2097         not register_operand to determine when B may need preloading.
2098
2099 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
2100
2101         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
2102         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
2103         (call-value patterns): Move to end of file.
2104         (*): Remove mode from label_ref in (pc) context.
2105         (movstrqi): Use memory not general_operand for BLKmode operands.
2106         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
2107         to register_operand operands.
2108         (peep2 patterns): Convert from commented-out peephole patterns.
2109
2110 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2111
2112         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
2113         to BUILT_IN_INIT_DWARF_REG_SIZES.
2114         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
2115         Renamed from BUILT_IN_DWARF_REG_SIZE; call
2116         expand_builtin_init_dwarf_reg_sizes.
2117         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
2118         with __builtin_init_dwarf_reg_size_table.
2119         * dwarf2out.c (struct reg_size_range): Delete.
2120         (expand_builtin_init_dwarf_reg_sizes): New function.
2121         (expand_builtin_dwarf_reg_size): Delete.
2122         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
2123         (expand_builtin_dwarf_reg_size): Don't declare.
2124         * libgcc2.c (dwarf_reg_size_table_initialized): New.
2125         (dwarf_reg_size_table): New.
2126         (init_reg_size_table): New function.
2127         (copy_reg): Use dwarf_reg_size_table.
2128         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
2129         before use.
2130
2131 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
2132
2133         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
2134         Correctly build argument list to constructor and destructor functions.
2135
2136 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
2137
2138         * c-tree.h (warn_float_equal): Declare.
2139         * c-decl.c (warn_float_equal): Define.
2140         (c_decode_option): Recognize -W[no-]float-equal.
2141         * c-typeck.c (build_binary_op): Conditionally warn
2142         about equality tests of floating point types.
2143         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
2144         * invoke.texi: Add docs for -Wfloat-equal warning.
2145
2146 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
2147
2148         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
2149         generating RTL directly.
2150         * mips.h (INIT_TARGET_OPTABS): Likewise.
2151         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
2152
2153         * expr.h (init_mov_optab): Delete declaration
2154
2155         * h8300.c (WORD_REG_USED): Update to avoid useless register
2156         saves in interrupt functions and functions which never return.
2157
2158         * cse.c (struct set): Delete inner_dest_loc field. 
2159         (cse_insn): Remove assignments to inner_dest_loc field.
2160
2161 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
2162
2163         * ggc-page.c: Don't include <unistd.h> etc taken care of
2164         by "system.h".  Include <sys/mman.h> afterward.
2165
2166 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
2167
2168         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
2169         ggc_alloc_string.
2170
2171 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
2172
2173         * xcoffout.c (xcoffout_declare_function): Add documentation.
2174         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
2175         TARGET_64BIT.  Compare constant to -1, not bit pattern.
2176         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
2177         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
2178         gen_movsi typos.
2179
2180 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
2181
2182         * dwarf2out.c (add_abstract_origin_attribute): Abort if
2183         origin_die is NULL.
2184         (gen_inlined_enumeration_type_die): Do not abort if the type has
2185         not been writeen out.
2186         (gen_inlined_structure_type_die): Do not abort if the type has
2187         not been writeen out.
2188         (gen_inlined_union_type_die): Do not abort if the type has
2189         not been writeen out.
2190         (gen_tagged_type_instantiation_die): Do not abort if the type
2191         has not been written out.
2192
2193 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2194
2195         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
2196         call it.
2197         * reg-stack.c (straighten_stack): Copy hard reg set with
2198         COPY_HARD_REG_SET.
2199
2200 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
2201
2202         * builtins.c (stabilize_va_list): Stabilize array type va_list
2203         to a pointer type, not the base record type.
2204         (expand_builtin_va_copy): Dereference the pointers explicitly;
2205         use the correct size for the copy.
2206
2207         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
2208         (rs6000_va_arg): Likewise.
2209
2210 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
2211
2212         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
2213
2214 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
2215
2216         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
2217         field.
2218         (DECL_BUILT_IN_CLASS): Adjust accordingly.
2219
2220 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
2221
2222         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
2223         (init_ggc): Use it instead of a constant.
2224         (ggc_collect): Bound allocated_last_gc by it.
2225
2226 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
2227
2228         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
2229         with va_list.
2230
2231 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
2232
2233         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
2234         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
2235         * configure:  Regen.
2236         * config/mips/openbsd.h:  New, OpenBSD little endian target.
2237         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
2238         * config/mips/xm-openbsd.h:  New, OpenBSD host.
2239
2240 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
2241
2242         * config/m68k/m68k.c (output_function_prologue,
2243         output_function_epilogue): Use
2244         current_function_uses_pic_offset_table instead of regs_ever_live
2245         to decide whether to save/restore pic register.
2246         (legitimize_pic_address): Don't modify regs_ever_live any more.
2247
2248 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
2249
2250         * function.h (struct function): Add x_dont_save_pending_sizes_p.
2251         * stor-layout.c (variable_size): Don't add sizes to the pending
2252         sizes list if x_dont_save_pending_sizes_p is set.
2253         
2254 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
2255
2256         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
2257         for symbolic_operand().
2258         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
2259
2260 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2261
2262         * combine.c (gen_rtx_combine): Add missing call to va_end().
2263
2264         * final.c (asm_fprintf): Likewise.
2265
2266         * genattrtab.c (attr_rtx): Likewise.
2267
2268 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
2269
2270         * cse.c: Update comments.
2271         (cse_insn): When converting a conditional/computed jump into
2272         an unconditional jump, always make sure a BARRIER immediately
2273         follows the converted jump.  Do not delete unreachable code.
2274         (cse_basic_block): Do not delete unreachable code.
2275         * toplev.c (rest_of_compilation): Move call to 
2276         delete_trivially_dead_insns after the conditional call to
2277         jump_optimize.
2278
2279 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2280
2281         * collect2.c (make_temp_file): Don't prototype.
2282
2283         * gcc.c (make_temp_file): Likewise.
2284
2285         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
2286
2287 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
2288
2289         * varasm.c (asm_emit_uninitialised): New function: Generate
2290         the assembler statements necessary to declare an uninitialised 
2291         variable.
2292         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
2293         variable.
2294         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
2295         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
2296         section.
2297         (assemble_variable): Use asm_emit_uninitialised to emit an
2298         uninitialised variable.
2299
2300 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
2301
2302         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
2303         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
2304         <geoffk@cygnus.com>.
2305
2306 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2307
2308         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
2309         * c-common.h (builtin_function): Don't declare.
2310
2311         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
2312         DECL_BUILT_IN.
2313         (pushdecl): Likewise.
2314         (finish_decl): Likewise.
2315         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
2316         int.  All callers changed.
2317         Set the builtin's DECL_BUILT_IN_CLASS.
2318         * tree.h (enum built_in_class): New.
2319         (enum built_in_function): Delete NOT_BUILT_IN.
2320         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
2321         in a union.
2322         (DECL_SET_FUNCTION_CODE): Likewise.
2323         (DECL_BUILT_IN_CLASS): New macro.
2324         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
2325         (struct tree_decl): Split builtin function code field into a
2326         struct.
2327         (builtin_function): Declare.
2328
2329 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
2330
2331         * optabs.c (init_traps): Fix typo in last change.
2332
2333 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
2334
2335         * toplev.c (rest_of_decl_compilation): Update comment.
2336
2337 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
2338
2339         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
2340         in .sbss if appropriate.
2341         (EXTRA_SECTION_FUNCTIONS): Add sbss.
2342         (SBSS_SECTION_ASM_OP): New macro.
2343         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
2344         (EXTRA_SECTIONS): Add in_sbss.
2345         * config/mips/mips.h: Prototype sbss_section.
2346
2347 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
2348
2349         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
2350         to disappear.
2351
2352 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
2353
2354         * optabs.c (init_traps): Register trap_rtx as a GC root.
2355
2356 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2357
2358         * config/mips/mips.c (function_arg_pass_by_reference): Define
2359         unconditionally, since it's called unconditionally.
2360
2361 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
2362
2363         * toplev.c (documented_lang_options): Add -fshort-wchar.
2364         * c-decl.c (c_decode_option): Likewise.
2365         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
2366         for wchar_t.
2367         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
2368         * gcc.c (default_compilers): If -fshort-wchar, 
2369         override __WCHAR_TYPE__.
2370         * tm.texi (C Dialect Options): Add -fshort-wchar.
2371
2372         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
2373         symbol for a variable.
2374
2375         * cpplib.h (CPP_PREPROCESSED): New macro.
2376         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
2377         we're seeing this input for a second time.
2378
2379 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
2380
2381         * emit-rtl.c (init_emit_once): Initialize modes first.
2382
2383 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
2384
2385         * config/i386/i386.c (pic_label_name): Change to char pointer.
2386         (global_offset_table): New variable.
2387         (load_pic_register): Fill global_offset_table if it hasn't
2388         already been done.  Allocate pic_label_name dynamically.
2389         * ggc.h (empty_string): New variable.
2390         * ggc-simple.c (empty_string): Likewise.
2391         (init_ggc): Allocate empty_string and add as root.
2392         * stmt.c (digit_strings): New variable.
2393         (init_stmt): Add last_block_end_note as root.  Allocate and
2394         initialize digit_strings. 
2395         (expand_asm_operands): Use empty_string instead of string
2396         constant.  Use digit_strings instead of string constants.
2397         * profile.c (init_arc_profiler): Allocate string with
2398         ggc_alloc_string instead of xmalloc.
2399         (output_func_start_profiler): Likewise.
2400         * c-typeck.c (digest_init): Check if init is error_mark_node.
2401
2402 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
2403                           Richard Henderson  <rth@cygnus.com>
2404
2405         * ggc-page.c: New file.
2406         * Makefile.in (ggc-page.o): New.
2407
2408 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
2409
2410         * invoke.texi: Document -fdelete-null-pointer-checks
2411         * toplev.c (flag_delete_null_pointer_checks): New.
2412         (f_options): Add entry for -fdelete-null-pointer-checks.
2413         (rest_of_compilation): Conditionalize null pointer check
2414         elimination on flag_delete_null_pointer_checks.
2415         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
2416
2417 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
2418
2419         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
2420         copyright notice and special exception to GPL.
2421
2422 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2423
2424         * abi64.h (mips_function_value): Add prototype arguments.
2425
2426         * mips-protos.h: New file with mips prototypes.
2427
2428         * mips.c: Include "tm_p.h".
2429         (mktemp, lookup_name): Add prototype arguments.
2430         (extern_list, string_constant, mips_fill_delay_slot,
2431         mips_output_external, mips_output_external_libcall,
2432         mips_output_filename, mips_declare_object, function_prologue,
2433         mips_expand_prologue, function_epilogue, mips16_constant,
2434         build_mips16_function_stub, mips_output_conditional_branch):
2435         Constify a char*.
2436         (mips_va_start): Remove unused variable `u'.
2437         (mips_va_arg): Cast value to unsigned when comparing against one.
2438         (trace): Delete.
2439         (save_restore_insns, mips_expand_prologue): Add missing arg in
2440         call to `large_int'.
2441
2442         * mips.h: Move prototypes to mips-protos.h.
2443         (data_section, memory_address_p, rdata_section,
2444         readonly_data_section, simple_epilogue_p, text_section): Delete
2445         prototypes delcared elsewhere.
2446         (mips_epilogue_delay_slots, print_options): Delete unused decls.
2447         (trace): Delete.
2448         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
2449
2450         * mips.md: Delete extra args in call to `mips_move_2words'.
2451
2452         * xm-iris6.h (alloca): Add prototype argument.
2453
2454         * genpeep.c: Include "tm_p.h" in generated output file.
2455
2456 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
2457
2458         * basic-block.h (find_edge_index): Change parameters.
2459         * flow.c (verify_edge_list): Pass basic_block parameters to
2460         find_edge_index instead of integers.
2461
2462 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
2463
2464         * combine.c (simplify_comparison): Use an unsigned shift to adjust
2465         the constant.
2466
2467 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
2468
2469         * gcc.1: Fix a formatting error.
2470
2471 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2472
2473         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
2474         i786, mn10200, mn10300, pdp11, v850.
2475
2476 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
2477
2478         * libgcc2.c (num_digits): Add prototype with 
2479         __attribute__((const)).
2480         (__terminate): Add prototype.
2481
2482 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
2483
2484         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
2485
2486         * alpha/alpha.c (print_operand): Fix type of `code'.
2487         (alpha_output_filename): Constify.
2488         * alpha/alpha.h: Move all function declarations ...
2489         * alpha/alpha-protos.h: ... here.  New file.
2490         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
2491         (SECTION_FUNCTION_TEMPLATE): Likewise.
2492
2493 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2494
2495         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
2496         * expr.c (expand_expr): Likewise.
2497         (do_jump): Likewise.
2498         (do_store_flag): Pass ccp_store_flag to can_compare_p.
2499         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
2500         accessor macros.
2501         (enum can_compare_purpose): New.
2502         (can_compare_p): Adjust prototype.
2503         (prepare_cmp_insn, prepare_operand): Declare.
2504         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
2505         * optabs.c (cmp_available_p): Deleted.
2506         (expand_abs): Pass ccp_jump to can_compare_p.
2507         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
2508         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
2509         Call can_compare_p rather than cmp_available_p.
2510         (prepare_operand): No longer static.
2511         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
2512         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
2513         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
2514         sequence to use emit_cmp_and_jump_insns.
2515         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
2516
2517 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
2518
2519         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
2520         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
2521         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
2522         (plus (reg) (const_int 0))
2523         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
2524         
2525 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
2526
2527         * rs6000.c (expand_block_move): DImode loads and stores require
2528         word-aligned displacements.  Increment address registers with
2529         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
2530
2531 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
2532
2533         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
2534         is no name for the base type, rather than segfault.  If we are
2535         writing out a complex integer type, use DW_ATE_lo_user.
2536
2537         * expr.c (emit_move_insn_1): If we are copying a complex that fits
2538         in one word or less (complex char, complex short, or on 64 bit
2539         systems complex float) to/from a hard register, copy it through
2540         memory instead of dying in gen_{real,imag}part.  If we have a
2541         short complex type, prevent inlining since it allocates stack
2542         memory.
2543
2544         * tree.c (build_complex_type): If we are writing dwarf2 output,
2545         generate a name for complex integer types.
2546
2547 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
2548
2549         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
2550         * flow.c (remove_edge): Remove extra whitespace.
2551         (remove_fake_edges): Fix comment.
2552         (add_noreturn_fake_exit_edges): Use the correct name.
2553
2554 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
2555
2556         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
2557         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
2558         (clean): Depend on INTL_CLEAN.
2559         (maintainer-clean): Adjust.
2560
2561 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2562
2563         * configure.in (AC_PREREQ): Bump to 2.13.
2564         (AC_C_STRINGIZE): Call this instead of using a custom macro.
2565
2566         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
2567
2568         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
2569
2570         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
2571
2572         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
2573         (HAVE_STRINGIZE): Define.
2574
2575 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
2576
2577         * c-parse.in: save and restore warn_pointer_arith on __extension__
2578         along with pedantic.
2579         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
2580         Set the type of extension to itype rather than $<itype>1 kludge.
2581         * extend.texi (Alternate Keywords): Adjust documentation.
2582         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
2583
2584 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
2585
2586         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
2587         most assembler templates.
2588
2589         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
2590         FP loads and stores.
2591         (following_call): Always return zero for the PA8000.
2592         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
2593         FP loads and stores.
2594         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
2595
2596         * pa.h (BRANCH_COST): Define.
2597
2598         * pa.md (return, return_internal): Use bve for PA2.0.
2599
2600         * pa.md (fused multiply): Add variants which reduce height for the
2601         fused multiply, but which still generate 2 insns.
2602         (fnegabs): Similarly.
2603
2604         * pa.md (subsi3): Turn into an expander.  Create two anonymous
2605         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
2606         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
2607
2608         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
2609         for TARGET_PA_20.
2610         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
2611         code generation.
2612         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
2613         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
2614
2615         * regclass.c (init_regs): Add "top_of_stack" as a garbage
2616         collection root.
2617
2618         * flow.c (record_active_eh_regions): Terminate loop after finding
2619         the last insn in the last basic block.
2620
2621 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2622
2623         * config/c4x/c4x.md: Delete parallel instruction peepholes.
2624
2625 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2626
2627         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
2628
2629 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2630
2631         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
2632         splitting to not use output template.
2633
2634 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2635
2636         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
2637         * config/c4x/c4x.c (c4x_va_start): New function.
2638
2639 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
2640
2641         * genrecog.c (not_both_true): Handle correctly cases when called for
2642         tests with different positions in the insn.
2643
2644 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2645
2646         * machmode.h (HOST_PTR_PRINTF): Move from here ...
2647
2648         * system.h (HOST_PTR_PRINTF): ... to here.
2649
2650         * mips-tfile.c: Don't include machmode.h.
2651
2652         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
2653         (mips-tfile.o): Don't depend on machmode.h.
2654
2655 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2656
2657         * haifa-sched.c (sched_analyze): Rename local variable `region' to
2658         avoid conflicts with typedef struct `region' at the top level scope.
2659
2660 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
2661
2662         * basic-block.h (basic_block): Add eh_beg, eh_end.
2663         * flow.c (entry_exit_blocks): Update.
2664         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
2665         Call new functions.
2666         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
2667         lists.c functions to allocate insn lists.
2668         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
2669         edge creation ...
2670         (make_eh_edge): ... here.  New.
2671         (move_stray_eh_region_notes): New.
2672         (record_active_eh_regions): New.
2673         (delete_unreachable_blocks): Split out block merging ...
2674         (try_merge_blocks): ... here.  New.
2675         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
2676         Dump debugging data.
2677         (merge_blocks_move_successor_nojumps): Likewise.
2678         (merge_blocks): Use eh_beg+eh_end to validate block movement.
2679
2680 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2681
2682         * extend.texi (Bound member functions): Document unbound pmf
2683         conversion.
2684
2685 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
2686
2687         * flow.c (split_edge): Handle insertion on a fallthrough edge which
2688         has the EXIT_BLOCK as a dest.
2689
2690 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
2691
2692         * flow.c (remove_edge): New function to remove an edge from the 
2693         flow graph.
2694         (remove_fake_successors): New function to remove fake successor edges.
2695         (remove_fake_edges): New function to remove all fake edges from the
2696         flow graph.
2697         (add_fake_exit_edges): New function to add fake edges from all blocks
2698         with no successors to the exit block.
2699         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
2700         prototypes for new functions.
2701
2702 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
2703
2704         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
2705         Use Pmode to determine whether to output .dword or .word.
2706
2707 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
2708
2709         * tree.c (built_in_filename): New variable.
2710         (BUILT_IN_FILENAME): New macro.
2711         (init_tree_codes): Allocate built_in_filename.
2712         (make_node): Use built_in_filename instead of string constant.
2713
2714 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
2715
2716         * configure.in: Add fr30 target.
2717         * configure: Regenerate.
2718         * config/fr30: New directory.
2719         * config/fr30/crti.asm: New file.
2720         * config/fr30/fr30.c: New file.
2721         * config/fr30/crtn.asm: New file.
2722         * config/fr30/fr30.h: New file.
2723         * config/fr30/fr30.md: New file.
2724         * config/fr30/lib1funcs.asm: New file.
2725         * config/fr30/t-fr30: New file.
2726         * config/fr30/xm-fr30.h: New file.
2727
2728 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
2729
2730         * flow.c (merge_blocks_move_successor_nojumps): Delete the
2731         BARRIER at the end of the successor, not the BARRIER before
2732         the successor.
2733
2734         * pa.c (pa_add_gc_roots): Fix thinko in last change.
2735
2736 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
2737
2738         * stmt.c (any_pending_cleanups): Don't crash when 
2739         current_function->stmt is unset.
2740
2741 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2742
2743         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
2744         other initializations that may use it for relative offsets.
2745
2746 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2747
2748         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
2749         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
2750         * config/i386/sol2dbg.h: Removed.
2751         * config/i386/sol2gas.h: New file, to enable gas work-around.
2752         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
2753         Don't use sol2dbg.h.
2754         * configure: Rebuilt.
2755
2756 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
2757
2758         * invoke.texi (-fthis-is-variable): Remove documentation.
2759
2760 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
2761
2762         * basic-block.h (compute_bb_for_insn): Declare.
2763         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
2764         to use; set size of basic_block_for_insn directly.
2765         (find_basic_blocks): Update.
2766
2767 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2768
2769         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
2770
2771 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2772
2773         * crtstuff.c (ON_EXIT): Delete empty macro definition.
2774         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
2775
2776 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
2777
2778         * c-decl.c (c_decode_option): Extend comment.
2779
2780 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
2781
2782         * toplev.c (progname): Make 'const char *'
2783         (flag_print_mem): Move out of main.
2784         (version_flag): Move out of main.
2785         (filename): Move out of main.
2786         (debug_args): Remove g prefix from options.
2787         (documented_lang_options): Remove cpplib specific options.
2788         (display_help): Add g prefix to debug options.
2789         (check_lang_option): Delete this function.
2790         (decode_d_option): New function: Decode -d... option.
2791         (decode_f_option): New function: Decode -f... option.
2792         (decode_W_option): New function: Decode -W... option.
2793         (decode_g_option): New function: Decode -g... option.
2794         (independent_decode_option): New function: Decode a language
2795         independent command line option.
2796         (main): Invoke lang_decode_option and then
2797         independent_decode_option on each command line option in
2798         turn. 
2799
2800 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
2801
2802         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
2803          * fold-const.c (fold_range_test): Do not try to fold the range
2804          test if the rhs or lhs has side effects.
2805
2806         * basic-block.h (compute_flow_dominators): Declare.
2807
2808         * gcse.c (alloc_code_hoist_mem): New function.
2809         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
2810         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
2811         (hoist_code, one_code_hoisting_pass): Likewise.
2812         (gcse_main): If optimizing for size, then hoist expressions
2813         computed in multiple dominated basic blocks.
2814
2815         * gcse.c (invalid_nonnull_info): New function.
2816         (delete_null_pointer_checks): Likewise.
2817         * rtl.h (delete_null_pointer_checks): Declare.
2818         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
2819
2820         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
2821         (merge-blocks_move_successor_nojumps): Likewise.
2822         (merge_blocks): Allow merging of some blocks, even if it requires
2823         physical movement of the blocks, but not if it requires new jumps.
2824
2825         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
2826         Callers and prototype changed.
2827         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
2828
2829 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2830
2831         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
2832         -YP when both -p and -pg are present.  From i386/sol2.h.
2833
2834 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2835
2836         * Makefile.in (distclean): Delete tm_p.h.
2837         * configure.in: Create a new file, "tm_p.h", from a list in
2838         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
2839         "i386/i386-protos.h".
2840
2841         * alias.c: Include "tm_p.h".
2842         * c-typeck.c: Likewise.
2843         * calls.c: Likewise.
2844         * cse.c: Likewise.
2845         * emit-rtl.c: Likewise.
2846         * explow.c: Likewise.
2847         * expmed.c: Likewise.
2848         * expr.c: Likewise.
2849         * final.c: Likewise.
2850         * flow.c: Likewise.
2851         * fold-const.c: Likewise.
2852         * function.c: Likewise.
2853         * gcse.c: Likewise.
2854         * global.c: Likewise.
2855         * haifa-sched.c: Likewise.
2856         * integrate.c: Likewise.
2857         * jump.c: Likewise.
2858         * local-alloc.c: Likewise.
2859         * loop.c: Likewise.
2860         * optabs.c: Likewise.
2861         * recog.c: Likewise.
2862         * reg-stack.c: Likewise.
2863         * regclass.c: Likewise.
2864         * regmove.c: Likewise.
2865         * reload.c: Likewise.
2866         * reload1.c: Likewise.
2867         * reorg.c: Likewise.
2868         * resource.c: Likewise.
2869         * stmt.c: Likewise.
2870         * stor-layout.c: Likewise.
2871         * toplev.c: Likewise.
2872         * tree.c: Likewise.
2873         * unroll.c: Likewise.
2874         * genattrtab.c (main): Make generated file include "tm_p.h".
2875         * genemit.c (main): Likewise.
2876         * genoutput.c (main): Likewise.
2877         * genrecog.c (main): Likewise.
2878
2879         * i386.h: Delete all prototypes.
2880         * i386.c: Include "tm_p.h".
2881         (ix86_attr_length_default): Call constant_call_address_operand
2882         with correct number of arguments.
2883         * i386-protos.h: New file.
2884         * i386.md (unnamed patterns): Call constant_call_address_operand
2885         with correct number of arguments.
2886         (exception_receiver): Call load_pic_register with correct number
2887         of arguments.
2888
2889 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
2890
2891         * c-pragma.c (mark_align_stack): Dereference the void* properly.
2892
2893 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
2894
2895         * rtl.h (insns_safe_to_move_p): New function.
2896         * loop.c (find_and_verify_loops): Use it.
2897         * rtlanal.c (insns_safe_to_move_p): Define it.
2898
2899 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
2900
2901         * c-pragma.c: Include ggc.h.
2902         * Makefile.in (c-pragma.o): Update.
2903
2904 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2905
2906         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
2907         (LIB_SPEC): Likewise.
2908         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
2909         Reindent -YP/-p/-pg.
2910         Copied from config/sparc/sol2.h.
2911
2912 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
2913
2914         * c-pragma.c (mark_align_stack): New.
2915         (init_pragma): New.
2916         * c-pragma.h (init_pragma): Declare it.
2917         * c-lex.c (init_parse): Call it.
2918
2919 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2920
2921         * configure.in: Pick up thread library on Solaris/x86 just
2922         like on Solaris/sparc.
2923         * configure: Rebuilt.
2924
2925 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
2926
2927         * rtl.h (global_rtx_index): New enum.
2928         (global_rtl): Change to array of rtx.
2929         (pc_rtx, cc0_rtx): Redefine accordingly.
2930         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
2931         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
2932         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
2933         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
2934         (const_int_rtx): Change to array of rtx.
2935         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
2936         accordingly. 
2937         * emit-rtl.c (global_rtl): Change to array of rtx.
2938         (const_int_rtx): Change to aray of rtx.
2939         (gen_rtx_CONST_INT): Redefine accordingly.
2940         (init_emit_once): Allocate and initialize global_rtl.  Likewise
2941         for const_int_rtx.  Add both as GC roots.
2942         * genattrtab.c (global_rtl): Update declaration.
2943
2944 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
2945
2946         * Makefile (USER_H): Add iso646.h back.
2947
2948 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
2949
2950         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
2951         zapping the LOG_LINKS of sched_before_next_call.
2952
2953         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
2954         * pa.c (insn_refs_are_delayed): Renamed from
2955         insn_sets_and_refs_are_delayed.
2956
2957 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
2958
2959         * functiion.h (struct function): Add x_whole_function_mode_p.
2960         (retrofit_block): Declare.
2961         * function.c (retrofit_block): New function.
2962         (identify_blocks): Add assertions.  Allow an incomplete set of
2963         block notes if we're still generating code for the function.
2964         * integrate.c: Include loop.h.
2965         (expand_inline_function): Call find_loop_tree_blocks to map block
2966         notes to blocks when in whole-function mode.  Use retrofit_block
2967         to insert new BLOCKs for the inlined function, rather than
2968         insert_block.
2969         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
2970         * Makefile.in (integrate.o): Depend on loop.h.
2971
2972 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
2973
2974         * tree.h (warn_about_unused_variables): Declare.
2975         * stmt.c (warn_about_unused_variables): New function, split out
2976         from ...
2977         (expand_end_bindings): Here.
2978
2979 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
2980
2981         * stmt.c (preserve_subexpressions_p): Don't crash when
2982         current_function->stmt is unset.
2983
2984 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
2985
2986         * stmt.c (expand_start_bindings): Allow callers to pass a flag
2987         indicating that no NOTE_INSN_BLOCK_BEG note is required.
2988         (expand_start_target_temps): Use it.
2989         * except.c (expand_eh_region_start_for_decl): Likewise.
2990         * expr.c (expand_expr): Likewise.
2991
2992 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2993
2994         * fold-const.c (operand_equal_p): Pay attention to side effects.
2995
2996 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
2997
2998         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
2999         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
3000
3001         * tlink.c (scan_linker_output): Look for keywords before accepting
3002         a mangled name in quotes.
3003
3004 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
3005
3006         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
3007         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
3008
3009 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
3010
3011         * alpha.md: Revert Thu Nov 26 change that came in through the
3012         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
3013         Avoid earlyclobber when possible.
3014
3015 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3016
3017         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
3018
3019         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
3020         Define HAVE_ON_EXIT.
3021
3022 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3023
3024         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
3025         CTYPE_CONV in all ctype macros.
3026
3027         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
3028         from system.h.
3029
3030         * cexp.y (initialize_random_junk): Likewise.
3031
3032         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
3033
3034         * i370.c (handle_pragma): Likewise.
3035
3036         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
3037
3038         * v850.c (override_options): Likewise.
3039
3040         * doprint.c (_doprnt): Likewise.
3041
3042         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
3043         Likewise.
3044
3045         * fixinc/server.c (load_data): Likewise.
3046
3047         * fold-const.c (real_hex_to_f): Likewise.
3048
3049         * genattr.c (write_upcase, gen_attr): Likewise.
3050
3051         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
3052         write_upcase): Likewise.
3053
3054         * genemit.c (print_code): Likewise.
3055
3056         * genopinit.c (gen_insn): Likewise.
3057
3058         * genpeep.c (print_code): Likewise.
3059
3060         * genrecog.c (print_code): Likewise.
3061
3062         * optabs.c (init_libfuncs): Likewise.
3063
3064 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
3065
3066         * haifa-sched.c (sched_analyze): Keep the list of notes organized
3067         in pairs.
3068         (reemit_notes): Likewise.
3069
3070 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
3071
3072         * ggc.h (ggc_root): Move to ggc-common.c.
3073         (roots): Remove.
3074         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
3075         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
3076         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
3077         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
3078         * ggc-common.c (ggc_root): Move from ggc.h.
3079         (roots): Declare, static.
3080         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
3081         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
3082         null or check/set mark bit.
3083         (ggc_mark_roots): New.
3084         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
3085
3086 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
3087
3088         * m32r.c: Include toplev.h.
3089         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
3090         (gen_compare): Rename swap_p to must_swap to match uses.
3091         Add default abort case.
3092         (m32r_output_function_epilogue): Remove unused variables.
3093         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
3094         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
3095         define to empty parameter list.  Update all uses.
3096         (predicate decls): Use enum machine_mode not int.
3097         * m32r.md (movsi): Call abort, not fatal_insn.
3098         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
3099
3100 1999-09-14  Andrew Haley  <aph@cygnus.com>
3101
3102         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
3103         use $0 instead of 0.
3104
3105 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3106
3107         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
3108         computation out of loop over hard regs.
3109
3110 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
3111
3112         * function.c (identify_blocks): Don't shadow a variable in an 
3113         outer scope.
3114         * integrate.c (integrate_decl_tree): Don't use pushlevel,
3115         pushdecl, or poplevel to build up the new BLOCK tree.
3116         (expand_inline_function): Likewise.
3117         (integrate_parm_decls): Likewise.
3118
3119 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
3120
3121         * c-typeck.c (qualify_type): Merge qualifiers from both types.
3122
3123 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
3124
3125         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
3126         * invoke.texi: Document this change.
3127
3128 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
3129
3130         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
3131         Free the struct.
3132         (mark_emit_status): Renamed from mark_emit_state.
3133         * except.c (mark_eh_status): Renamed from mark_eh_state.
3134         Check not null before marking.
3135         (free_eh_status): New.
3136         * expr.c (mark_expr_status, free_expr_status): New.
3137         * function.c (free_machine_status): New.
3138         (free_after_parsing): New.
3139         (free_after_compilation): Move bits to free_after_parsing; call
3140         free_eh_status, free_expr_status; zero the marked members of the
3141         function state.
3142         (prepare_function_start): No can_garbage_collect. 
3143         Call init_eh_for_function.
3144         (expand_dummy_function_end): Free up current_function state.
3145         (mark_function_status): Renamed from mark_function_state.
3146         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
3147         * function.h (struct function): No can_garbage_collect.
3148         (free_machine_status, free_after_parsing): Declare.
3149         (free_eh_status, free_expr_status): Declare.
3150         * ggc.h (mark_expr_status): Declare.
3151         * stmt.c (free_stmt_status): Free the struct.
3152         (mark_stmt_status): Renamed from mark_stmt_state.
3153         (init_stmt): Don't call init_eh.
3154         (init_stmt_for_function): Don't call init_eh_for_function.
3155         * toplev.c (compile_file): Call init_eh.
3156         (rest_of_compilation): Free basic block info before ggc_collect.
3157         Call free_after_parsing; conditionally call free_after_compilation.
3158         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
3159         Check not null before marking.
3160         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
3161
3162 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
3163
3164         * c-lex.c (yylex): Initialize warn.
3165
3166 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
3167
3168         * pa.c (emit_move_sequence): Properly set the mode of the scratch
3169         register when performing secondary reloads for the SAR register.
3170
3171 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
3172
3173         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
3174         (NOTE_BLOCK): New macro.
3175         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
3176         * function.h (identify_blocks): Change prototype.
3177         * function.c (identify_blocks): Simplify.
3178         (reorder_blocks): Likewise.
3179         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
3180         NOTE_INSN_BLOCK_{BEG,END}.
3181         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
3182         the list of saved notes if the note isn't a
3183         NOTE_INSN_BLOCK_{BEG,END}.
3184         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
3185         NOTE_BLOCK_NUMBER.
3186         (reemit_notes): Adjust recreation of notes to reflect new saved
3187         note structure.
3188         * print-rtl.c (print_rtx): Print the address of the BLOCK when
3189         printing a block note.
3190         * stmt.c (block_vector): Remove.
3191         (find_loop_tree_blocks): Simplify.
3192         (unroll_block_trees): Likewise.
3193         * tree.h (reorder_block): Change prototype.
3194         
3195 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
3196
3197         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
3198         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
3199         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
3200         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
3201         (atexit, exit): Simplify.
3202         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
3203         * config/lots: Remove defns of HAVE_ATEXIT.
3204
3205 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
3206
3207         * calls.c (precompute_arguments): Fix typo in comment.
3208         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
3209         TARGET_EXPR.
3210
3211 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
3212
3213         * dsp16xx.c (override_options): Fix typos in GC root registration.
3214
3215 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
3216
3217         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
3218         from config/svr4.h.
3219         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
3220         (FUNCTION_PROFILER): Redefine appropriately for Linux.
3221         (CC1_SPEC): Likewise.
3222
3223 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3224
3225         * genattr.c (main): Add extern prototype.  Call return, not exit.
3226         * genattrtab.c (main): Likewise.
3227         * gencheck.c (main): Likewise.
3228         * gencodes.c (main): Likewise.
3229         * genconfig.c (main): Likewise.
3230         * genemit.c (main): Likewise.
3231         * genextract.c (main): Likewise.
3232         * genflags.c (main): Likewise.
3233         * gengenrtl.c (main): Likewise.
3234         * genopinit.c (main): Likewise.
3235         * genoutput.c (main): Likewise.
3236         * genpeep.c (main): Likewise.
3237         * genrecog.c (main): Likewise.
3238         
3239         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
3240         * genattrtab.c (get_insn_name): Likewise.
3241         * gencodes.c (get_insn_name): Likewise.
3242         * genconfig.c (get_insn_name): Likewise.
3243         * genemit.c (get_insn_name): Likewise.
3244         * genextract.c (get_insn_name): Likewise.
3245         * genflags.c (get_insn_name): Likewise.
3246         * genopinit.c (get_insn_name): Likewise.
3247         * genpeep.c (get_insn_name): Likewise.
3248         
3249         * gencheck.c (usage): Add static prototype.
3250         * genextract.c (print_path): Constify a char*.
3251         * genopinit.c (optabs): Likewise.
3252         * genoutput.c (operand_data, data, output_predicate_decls,
3253         compare_operands): Likewise.
3254         * genrecog.c (write_tree): Add default case in switch.
3255
3256 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3257
3258         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
3259
3260         * print-rtl.c (get_insn_name): Remove prototype.
3261
3262         * toplev.h (progname): Declare const.
3263
3264         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
3265         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
3266         dump_sched_info, dump_local_alloc, regset_release_memory,
3267         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
3268         error_with_file_and_line, error_with_decl, error_for_asm, error,
3269         fatal, warning_with_file_and_line, warning_with_decl, warning,
3270         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
3271         Remove redundant prototypes.
3272
3273         (notice, check_lang_option, report_file_and_line, vnotice,
3274         mark_file_stack): Add static prototype.
3275         (set_fatal_function): Add prototype.
3276         (vnotice, report_file_and_line, set_fatal_function,
3277         check_lang_option): Constify a char*.
3278         (main): Prototype.  Call return, not exit.
3279
3280 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3281
3282         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
3283
3284         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
3285
3286         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
3287
3288         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
3289
3290 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3291
3292         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
3293         behave as if it's zero in all cases.
3294         (expand_function_start): Adjust call to assign_parms.
3295         * tree.h (assign_parms): Adjust prototype.
3296         * objc/objc-act.c (hack_method_prototype): Adjust call to
3297         assign_parms.
3298
3299 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
3300
3301         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
3302         arg_pointer_rtx fixed if the argument pointer register is
3303         not fixed.
3304         (NONZERO_BASE_PLUS_P): Likewise.
3305
3306 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
3307
3308         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
3309         match_insn2 to match_insn.
3310         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
3311
3312 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
3313
3314         * Makefile.in (USER_H): Remove va-foo.h.
3315
3316         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
3317         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
3318         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
3319         va-spur.h,va-v850.h}: Remove.
3320
3321 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
3322
3323         * sparc/sparc.md (eligible_for_return_delay): New attribute.
3324         (in_return_delay): Use it instead of match_insn.
3325
3326 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3327
3328         * config/alpha/va_list.h (va-alpha.h): Do not include.
3329         (__gnuc_va_list): Typedef as in varargs.h.
3330
3331 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
3332
3333         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
3334         DECL_LIVE_RANGE_RTL.
3335
3336 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
3337
3338         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
3339         not NOTE_BLOCK_NUMBER.
3340         (expand_eh_region_end): Likewise.
3341         (find_exception_handler_labels): Likewise.
3342         (scan_region): Likewise.
3343         (exception_optimize): Likewise.
3344         (update_rethrow_references): Likewise.
3345         (set_insn_eh_region): Likewise.
3346         * final.c (final_scan_insn): Likewise.
3347         * flow.c (make_edges): Likewise.
3348         * integrate.c (expand_inline_function): Likewise.
3349         * print-rtl.c (print_rtx): Likewise.
3350
3351 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
3352
3353         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
3354         terms of builtin functions and types.
3355
3356         * mips.c (mips_build_va_list): New.
3357         (mips_va_start, mips_va_arg): New.
3358         * mips.h (BUILD_VA_LIST_TYPE): New.
3359         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
3360
3361         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
3362         (sh_build_va_list, sh_va_start, sh_va_arg): New.
3363         * sh.h (BUILD_VA_LIST_TYPE): New.
3364         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
3365
3366 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
3367
3368         * recog.h (struct recog_data): Make dup_num, operand_address_p,
3369         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
3370         (struct insn_data): Likewise with n_operands, n_dups, 
3371         n_alternatives, output_format.
3372         * regclass.c (scan_one_insn): Cast n_operands to int before
3373         arithmetic inside comparison.
3374
3375 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
3376
3377         * toplev.c (compile_function): Unconditionally emit nop.
3378
3379 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3380
3381         * haifa-sched.c (actual_hazard): Move declaration of variable
3382         `this_cost' into the scope where it is used.
3383
3384 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3385
3386         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
3387         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
3388         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
3389
3390         * genrecog.c (make_insn_sequence): Call memset, not bzero.
3391
3392         * jump.c (find_insert_position): Don't declare or define unless
3393         !HAVE_conditional_arithmetic.
3394         (returnjump_p_1, delete_prior_computation): Add static prototypes.
3395
3396         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
3397         
3398         * recog.c (offsettable_address_p): Prototype function pointer.
3399         (preprocess_constraints): Call memset, not bzero.
3400         
3401         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
3402         (gcc_obstack_init): Don't declare.
3403         (fix_sizetype): Add static prototype.
3404         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
3405         (tree_cons): Call memset, not bzero.
3406
3407         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
3408         definition in macro ASM_WEAKEN_LABEL.
3409         (mark_const_hash_entry): Add static prototype.
3410
3411 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3412
3413         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
3414
3415         * unroll.c (find_common_reg_term, subtract_reg_term,
3416         loop_find_equiv_value): Add static prototypes.
3417         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
3418         (copy_loop_body): Remove unreachable break statement.
3419         
3420         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
3421
3422         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
3423         
3424 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3425
3426         Undo some changes from the gcc2 merge:
3427         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
3428         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
3429         pointers.
3430
3431         Undo this change:
3432         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
3433         * emit-rtl.c (gen_lowpart_common): Disable optimization of
3434         initialized float-int union if the value is a NaN.
3435
3436 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3437
3438         * gthr-win32.h: New file.
3439
3440         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
3441         shared as a valid attribute.
3442         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
3443         * extend.texi: Document `shared' variable attribute.
3444
3445 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
3446
3447         * configure.in: Handle --enable-threads on FreeBSD.
3448         * configure: Rebuit.
3449
3450 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
3451
3452         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
3453         thread support.
3454         * configure: Rebuilt.
3455
3456 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
3457                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
3458                           Rosimildo DaSilva <rdasilva@connecttel.com>
3459
3460         * configure.in (m68k-*-rtemscoff*): Added.
3461         * configure.in (mips64orion-*-rtems*): Converted to ELF.
3462         * configure.in (sparc-*-rtemsaout*): Added as alias for old
3463         sparc-rtems configuration.
3464         * configure.in (sparc-*-rtemself*): Added.
3465         * configure.in (sparc-*-rtems*): Now ELF not a.out.
3466         * config/i386/rtems.h: Added comment.
3467         * config/sparc/rtemself.h: New file.
3468
3469         * configure.in (m68k-rtemself): Added.
3470         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
3471         and DWARF_DEBUGGING_INFO.
3472         * config/m68k/crti.s: New file.
3473         * config/m68k/crtn.s: New file.
3474         * config/m68k/t-crtstuff: New file.
3475         * config/m68k/rtemself.h: New file.
3476
3477         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
3478         global ctor/dtor and C++ exception handling.
3479         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
3480         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
3481         ENDFILE_SPEC.
3482         * config/i386/t-rtems-i386: New File.
3483
3484 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
3485
3486         * stmt.c (expand_end_case): Return right away if the case stack is
3487         empty.
3488
3489 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
3490
3491         * Makefile.in (version.c): Remove rule incorrectly brought in from
3492         the gcc2 merge.
3493
3494 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
3495
3496         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
3497         * msdos/top.sed:  Take into account a prepended $(SHELL) to
3498         move-if-change.
3499         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
3500
3501         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
3502
3503 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3504
3505         * regmove.c (fixup_match_1): Don't change an unchanging register.
3506         (stable_but_for_p): Renamed to:
3507         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
3508         Changed all callers.
3509
3510 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
3511
3512         * loop.c (strength_reduce): Don't call reg_used_between_p if the
3513         insn from BL2 is after the insn from BL.
3514
3515 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
3516
3517         * recog.h (INSN_OUTPUT_FORMAT_*): New.
3518         (struct insn_data): Merge `template' and `outfun' into `output'.
3519         Add `output_format'.
3520         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
3521         (struct data): Remove `outfun'; add `output_format'.
3522         (name_for_index): Remove declaration.
3523         (output_insn_data): Handle output formats.
3524         (process_template): Emit the bare array for @.
3525         (gen_expand, gen_split): Set output_format to NONE.
3526         * output.h (get_insn_template): Declare.
3527         * final.c (get_insn_template): New.
3528         (final_scan_insn): Use it.
3529         * toplev.c (compile_file): Likewise.
3530
3531         * c4x/c4x.c (c4x_process_after_reload): Likewise.
3532         * i860/i860.c (output_delayed_branch): Likewise.
3533         (output_delay_insn): Likewise.
3534
3535 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3536
3537         * rtl.c (obstack_alloc_rtx): Removed.
3538
3539 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
3540
3541         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
3542
3543 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
3544
3545         * i386.c (call_insn_operand): Reject const_int.
3546         (expander_call_insn_operand): Use call_insn_operand.
3547
3548 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3549
3550         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
3551
3552 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
3553
3554         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
3555         Use DImode operation.
3556
3557 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
3558
3559         * gcc.c: Include sys/resource.h.
3560         (report_times): New flag.
3561         (execute):  If report_times is set, calculate and report the
3562         CPU time consumed by each subprocess.
3563
3564         (rus, prus): New globals.
3565         (option_map): Add --time.
3566         (display_help): Document -time.
3567         (process_command): Set report_times if -time is given.
3568         Turn off -pipe if -time is given.
3569
3570         * invoke.texi: Document new option -time.
3571
3572         * configure.in: Check for getrusage.  Check if we have to
3573         prototype getrusage.
3574         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
3575         * configure: Regenerate.
3576         * config.in: Regenerate.
3577
3578 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
3579
3580         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
3581         fields.
3582
3583 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
3584
3585         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
3586         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
3587         (nan): Return _thenan_sf or _thenan_df as appropriate.
3588         (L_thenan_sf): Define _thenan_sf.
3589         (L_thenan_df): Define _thenan_df.
3590
3591         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
3592         (DPBIT_FUNCS): Add _thenan_df.
3593
3594 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
3595
3596         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
3597         TYPE_SIZE_UNIT.
3598
3599 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3600
3601         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
3602
3603         * gcc.h: New file.
3604         (lang_specific_driver): Don't take a function pointer parameter.
3605         All callers changed.
3606
3607         * gcc.c: Include gcc.h.
3608         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
3609         lang_specific_extra_outfiles, fatal): Don't declare.
3610         (multilib_defaults_raw): Constify.
3611         (read_specs): Call memset, rather than bzero.
3612         (main): Call return, not exit.
3613         (lookup_compiler): Call memcpy, not bcopy.
3614         (fatal): Make extern.
3615
3616         * cppspec.c: Include gcc.h.
3617         (lang_specific_driver): Initialize variable `quote'.  Constify a
3618         char*.  All calls to the function pointer parameter now
3619         explicitly call `fatal'.
3620
3621         * gccspec.c (lang_specific_driver): Include gcc.h.
3622
3623 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
3624
3625         * arm.c (note_invalid_constants): Use recog_data.operand_type
3626         for recog_op_type.
3627
3628 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3629
3630         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
3631         Declare.
3632
3633         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
3634         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
3635         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
3636         reload_secondary_in_reload, reload_secondary_out_reload,
3637         reload_secondary_in_icode, reload_secondary_out_icode,
3638         reload_reg_rtx, reload_when_needed): Delete declarations.
3639         (struct reload): New structure.
3640         (rld): Declare new array.
3641         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
3642         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
3643         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
3644         reload_secondary_in_reload, reload_secondary_out_reload,
3645         reload_secondary_in_icode, reload_secondary_out_icode,
3646         reload_reg_rtx, reload_when_needed): Delete definitions.
3647         (rld): New array.
3648         (whole file): Replace uses of the deleted arrays with uses of rld.
3649         * reload1.c (whole file): Replace uses of the deleted arrays with
3650         uses of rld.
3651         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
3652         explicit loops, not with bcopy.
3653
3654 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
3655
3656         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
3657         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
3658         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
3659         insn_name): Delete and consolidate into new structures.
3660         (insn_operand_predicate_fn): New.
3661         (insn_output_fn): New.
3662         (insn_gen_fn): New.
3663         (struct insn_operand_data): New.
3664         (struct insn_data): New.
3665         (insn_data): New.
3666         (OUT_FCN): Update for insn_data change.
3667         * builtins.c (expand_builtin_strlen): Likewise.
3668         (expand_builtin_memcmp): Likewise.
3669         * combine.c (make_extraction, simplify_comparison): Likewise.
3670         * cse.c (canon_reg, cse_insn): Likewise.
3671         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
3672         * expmed.c (store_bit_field, extract_bit_field): Likewise.
3673         (emit_store_flag): Likewise.
3674         * expr.c (convert_move, emit_block_move): Likewise.
3675         (clear_storage, emit_push_insn, expand_increment): Likewise.
3676         (do_store_flag): Likewise.
3677         * expr.h (GEN_FCN): Likewise.
3678         (insn_gen_function): Die.
3679         * final.c (final_scan_insn): Update for insn_data change.
3680         (output_asm_name): Likewise.
3681         * function.c (fixup_var_refs_1): Likewise.
3682         * loop.c (check_dbra_loop): Likewise.
3683         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
3684         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
3685         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
3686         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
3687         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
3688         * regmove.c (gen_add3_insn): Likewise.
3689         * reload.c (push_secondary_reload, combine_reloads): Likewise.
3690         (find_reloads, find_reloads_address_1): Likewise.
3691         (debug_reload_to_stream): Likewise.
3692         * reload1.c (emit_reload_insns, gen_reload): Likewise.
3693         * stmt.c (expand_end_case): Likewise.
3694         * toplev.c (compile_file): Likewise.
3695
3696         * c4x/c4x.c (c4x_process_after_reload): Likewise.
3697         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
3698
3699         * print-rtl.c (insn_name_ptr): Remove declaration.
3700         (get_insn_name): Declare.
3701         (print_rtx): Use it.
3702         * genoutput.c (insn_name_ptr): Remove.
3703         (next_operand_number): New.
3704         (struct operand_data): New.
3705         (null_operand, odata, odata_end): New.
3706         (struct data): Use struct operand_data.
3707         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
3708         (get_insn_name): Renamed from name_for_index.
3709         (output_prologue): Define NO_MD_PROTOTYPES.
3710         (output_predicate_decls): Break out from output_epilogue.
3711         Iterate over the operands list.
3712         (output_operand_data): Break out from output_epilogue.  Emit
3713         just the operands list.
3714         (output_insn_data): Break out from output_epilogue.  Emit just
3715         the insn data.
3716         (output_epilogue): Remove.
3717         (output_get_insn_name): New.
3718         (constraints, op_n_alternatives, predicates, address_p): Die.
3719         (modes, strict_low, seen): Die.
3720         (scan_operands): Take new param `d' instead of writing to 
3721         seven global variables.
3722         (compare_operands): New.
3723         (place_operands): New.
3724         (validate_insn_alternatives): Update for struct data change.
3725         (gen_insn): Don't zero or copy 7 global arrays.  Update for
3726         scan_operands; call place_operands.
3727         (gen_peephole, gen_expand, gen_split): Likewise.
3728         (main): Update for new output routines.
3729
3730         * genattr.c (insn_name_ptr): Remove.
3731         (get_insn_name): New function.
3732         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
3733         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
3734         * genrecog.c: Likewise.
3735
3736         * alpha.md (adddi3): Make `pattern' array static.
3737
3738 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3739
3740         * config/c4x/c4x.h (c4x_rpts_cycles_string,
3741         c4x_cpu_version_string): Constify char *.
3742         * config/c4x/c4x.c (c4x_rpts_cycles_string,
3743         c4x_cpu_version_string): Likewise.
3744
3745 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
3746
3747         * tree.c (save_tree_status): Revert 10 Sep change.
3748         (restore_tree_status): Likewise.  Call obstack_free with NULL 
3749         before freeing the obstack proper.
3750
3751 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
3752
3753         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
3754
3755         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
3756         surrounding context.
3757
3758 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
3759
3760         * tree.c (type_hash_canon): Put all types in the hash-table, when
3761         GC'ing.
3762
3763 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
3764
3765         * recog.h (struct recog_data, recog_data): New.
3766         (recog_foo variables): Kill.
3767         * recog.c (recog_operand, recog_operand_loc): Kill.
3768         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
3769         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
3770         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
3771         (recog_data): Define.
3772         (extract_insn): Update all recog_foo references to use recog_data.
3773         (preprocess_constraints, constrain_operands): Likewise.
3774         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
3775         * genattrtab.c (main): Likewise.
3776         * genextract.c (main): Likewise.
3777         * genoutput.c: Likewise.
3778         * genrecog.c (write_subroutine, main): Likewise.
3779         * local-alloc.c (block_alloc): Likewise.
3780         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
3781         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
3782         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
3783         * reload.c (find_reloads, find_reloads_toplev): Likewise.
3784         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
3785         (reload_cse_simplify_operands): Likewise.
3786
3787         * arc/arc.c (arc_final_prescan_insn): Likewise.
3788         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
3789         * h8300/h8300.c (notice_update_cc): Likewise.
3790         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
3791         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
3792         * mn10200/mn10200.c (notice_update_cc): Likewise.
3793         * mn10300/mn10300.c (notice_update_cc): Likewise.
3794         * romp/romp.c (update_cc): Likewise.
3795         * sparc/sparc.c (check_pic): Likewise.
3796         * v850/v850.c (notice_update_cc): Likewise.
3797
3798         * genemit.c (main): Don't declare recog_operand.
3799
3800 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
3801
3802         * ggc.h (rtvec_def): Forward declare.
3803         (tree_node): Likewise.
3804         (ggc_root): Define.
3805         (roots): Declare.
3806         (ggc_set_mark_rtx): Add prototype.
3807         (ggc_set_mark_rtvec): Likewise.
3808         (ggc_set_mark_tree): Likewise.
3809         * ggc-simple.c (ggc_root): Don't define.
3810         (roots): Don't declare.
3811         (ggc_mark_rtx): Remove.
3812         (ggc_mark_rtvec): Likewise.
3813         (ggc_mark_tree): Likewise.
3814         (ggc_mark_varray): Likewise.
3815         (ggc_mark_tree_hash_table_entry): Likewise.
3816         (ggc_mark_tree_hash_table): Likewise.
3817         (ggc_set_mart_rtx): New function.
3818         (ggc_set_mark_rtvec): Likewise.
3819         (ggc_set_mark_tree): Likewise.
3820         (ggc_add_root): Remove.
3821         (ggc_add_rtx_root): Likewise.
3822         (ggc_remove_tree_root): Likewise.
3823         (ggc_add_string_root): Likewise.
3824         (ggc_add_tree_varray_root): Likewise.
3825         (ggc_add_tree_hash_table_root): Likewise.
3826         (ggc_del_root): Likewise.
3827         (ggc_mark_rtx_ptr): Likewise.
3828         (ggc_mark_tree_ptr): Likewise.
3829         (ggc_mark_string_ptr): Likewise.
3830         (ggc_mark_tree_varray_ptr): Likewise.
3831         (ggc_mark_tree_hash_table_ptr): Likewise.
3832         * ggc-common.c: New file.
3833         * Makefile.in (OBJS): Add ggc-common.o.
3834         (ggc-common.o): List dependencies.
3835
3836 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
3837
3838         * cppalloc.c (xstrdup): Use memcpy.
3839         * cpperror.c (cpp_print_containing_files): Don't use
3840         cpp_notice.
3841         * cpplib.c (conditional_skip): Set temp->lineno.
3842         (do_endif): Make error message less obscure.
3843         (if_directive_name): New function.
3844         (cpp_get_token [case EOF]): Unwind the if stack and generate
3845         error messages for each unterminated conditional in this file.
3846         (parse_string):  Do not behave differently if -traditional.
3847
3848 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
3849
3850         * builtins.c (expand_builtin_va_arg): Cope with an array-type
3851         va_list decomposing to pointer-type.
3852         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
3853         (rs6000_va_arg): Likewise.
3854
3855 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
3856
3857         * except.c (start_dynamic_handler): Compute size using
3858         STACK_SAVEAREA_MODE.
3859
3860 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3861
3862         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
3863         include directory headers.  Don't define strrchr.  Don't provide
3864         my_* replacement functions.  Prefer PTR over `pointer_type'.
3865         Don't prototype system functions.  Don't redefine getopt.
3866
3867         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
3868         safe_read, safe_write, save_pointers, restore_pointers,
3869         is_id_char, in_system_include_dir, directory_specified_p,
3870         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
3871         find_corresponding_lparen, referenced_file_is_newer,
3872         save_def_or_dec, munge_compile_params, gen_aux_info_file,
3873         process_aux_info_file, identify_lineno, check_source,
3874         seek_to_line, forward_to_next_token_char, output_bytes,
3875         output_string, output_up_to, other_variable_style_function,
3876         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
3877         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
3878         find_static_definition, connect_defs_and_decs, add_local_decl,
3879         add_global_decls, needs_to_be_converted, visit_each_hash_node,
3880         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
3881         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
3882         scan_for_missed_items, edit_file, string_list_cons): Add static
3883         prototypes.
3884         (standard_exec_prefix, target_machine, target_version,
3885         default_syscalls_dir, string_list, string_list_cons, find_file,
3886         do_cleaning): Constify a char*.
3887         (safe_read, safe_write): Use PTR, not a char*.
3888         (is_id_char): Take an int, not a char.
3889         (main): Add prototype.  Call return, not exit.
3890
3891 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
3892
3893         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
3894         when comparing types.
3895
3896 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
3897
3898         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
3899         (strength_reduce): Release the varrays from the no-bivs early exit.
3900
3901         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
3902         the loop over the registers.
3903
3904         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
3905         for a new obstack.
3906         (restore_tree_status): Check that instead when freeing the obstack.
3907
3908 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
3909
3910         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
3911         as pointers.
3912
3913 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3914
3915         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
3916         operand size modifiers.
3917
3918 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3919
3920         * c-common.c (c_common_nodes_and_builtins): Don't build
3921         va_list_type_node.
3922         * c-common.h (enum c_tree_index and related accesor macros): Remove
3923         everything now declared in tree.h.
3924         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
3925         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
3926         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
3927         (error_mark_node, void_type_node, char_type_node, integer_type_node,
3928         unsigned_type_node, ptr_type_node, va_list_type_node,
3929         integer_zero_node, null_pointer_node, integer_one_node): Delete.
3930         (init_decl_processing): Call build_common_tree_nodes and
3931         build_common_tree_nodes_2 instead of building their nodes here.
3932         Don't add roots for these nodes.
3933         * stor-layout.c (size_zero_node, size_one_node): Delete.
3934         (set_sizetype): Make a new node for bitsizetype each time.
3935         * tree.c (global_trees): New variable.
3936         (init_obstacks): Add a gc root for it.
3937         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
3938         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
3939         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
3940         (build_common_tree_nodes): New function.
3941         (fix_sizetype): New function.
3942         (build_common_tree_nodes_2): New function.
3943         * tree.h (enum tree_index): New.
3944         (global_trees): Declare.
3945         Add accessor macros for all nodes now moved to global_trees.
3946         Delete their declarations.
3947
3948 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
3949
3950         * c-decl.c (finish_function): When processing a nested function,
3951         push and pop GC context around rest_of_compilation.
3952
3953 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
3954
3955         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
3956         Default ix86_arch to PROCESSOR_I386.
3957         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
3958         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
3959         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
3960         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
3961         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
3962         (EXTRA_SPECS): Remove deleted specs.
3963
3964 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
3965
3966         * function.c (assign_stack_local_1): Allocate from
3967         function->x_frame_offset, not frame_offset.
3968
3969 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
3970
3971         * ggc.h (lang_cleanup_tree): Remove.
3972         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
3973         * ggc-callbacks.c (lang_cleanup_tree): Remove.
3974
3975         * c-decl.c (finish_struct): Use ggc_alloc to allocate
3976         TYPE_LANG_SPECIFIC when garbage collecting.
3977         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
3978         (lang_cleanup_tree): Remove.
3979
3980 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
3981
3982         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
3983         * crtstuff.c: Not here.
3984         * dwarf2out.c: Or here.
3985         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
3986         info.
3987
3988 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
3989
3990         * function.h (free_after_compilation): Remove decl parameter.
3991         (free_varasm_status0: Likewise.
3992         (free_emit_status): Likewise.
3993         (free_stmt_status): Likewise.
3994         (free_after_compilation): Likewise.
3995         (init_lang_status): New variable.
3996         (free_lang_status): Likewise.
3997         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
3998         * function.c (init_lang_status): New variable.
3999         (free_lang_status): Likewise.
4000         (push_function_context_to): Don't set function::decl here.
4001         (free_after_copmilation): Make decl parameter implicit.  Call
4002         free_lang_status if defined.
4003         (prepare_function_start): Call init_lang_status if defined.
4004         (init_function_start): Set function::decl here.
4005         * profile.c (output_func_start_profiler): Don't call pushdecl
4006         until we've actually started the function.
4007         * stmt.c (free_stmt_status): Make decl parameter implicit.
4008         * toplev.c (rest_of_compilation): Don't pass decl to
4009         free_after_compilation.
4010         * varasm.c (free_varasm_status): Likewise.
4011
4012 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4013
4014         * except.c (call_get_eh_context): Add root when allocating static
4015         tree variable.
4016
4017 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
4018
4019         * arm.c: Include "ggc.h".
4020         (arm_add_gc_roots): New function.
4021         (arm_override_options): Call it.
4022         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
4023
4024         * arm.md (define_asm_attributes): Add a pool_range attribute.
4025
4026 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
4027
4028         * extend.texi (Volatiles): New node.
4029
4030 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
4031
4032         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
4033         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
4034         (struct ggc_any): Replace `mark' with `magic_mark'.
4035         (ggc_alloc_string): Use memcpy, not bcopy.
4036         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
4037         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
4038         (ggc_free_any): New.
4039         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
4040         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
4041         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
4042         Use IS_MARKED. Use ggc_free_any.
4043
4044 1999-09-09  Scott Bambrough <scottb@netwinder.org>
4045
4046         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
4047
4048 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
4049
4050         * toplev.c (main): Always init_ggc.
4051
4052 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
4053
4054         * except.c (find_all_handler_type_matches): Free the list if
4055         we found no matches.
4056
4057         * combine.c (SUBST): Break out to a real function do_SUBST.
4058         (SUBST_INT): Likewise.
4059         * gcse.c (free_pre_mem): Free `temp_bitmap'.
4060         (pre_insert): Free `inserted'.
4061         * loop.c (basic_induction_var): Always set `location'.
4062
4063         * function.c (expand_function_end): Add initial_trampoline as a root.
4064         * rtl.h (init_varasm_once): Declare.
4065         * toplev.c (compile_file): Call it.
4066         * ggc-simple.c (ggc_mark_string_ptr): New.
4067         (ggc_add_string_root): New.
4068         (ggc_collect): Disable collection avoidance temporarily.
4069         * ggc.h (ggc_add_string_root): Declare.
4070         * except.c (create_rethrow_ref): Use ggc_alloc_string.
4071         * optabs.c (init_libfuncs): Likewise.
4072         * varasm.c (named_section): Use ggc_alloc_string.
4073         (make_function_rtl): Likewise.
4074         (make_decl_rtl): Likewise.
4075         (assemble_static_space): Likewise.
4076         (assemble_trampoline_template): Likewise.
4077         (output_constant_def): Likewise.
4078         (force_const_mem): Likewise.
4079         (mark_const_hash_entry): New.
4080         (mark_pool_sym_hash_table): New.
4081         (mark_varasm_state): Use it.
4082         (init_varasm_once): New.
4083
4084         * expr.h (init_one_libfunc): Declare.
4085         * optabs.c (init_one_libfunc): New.
4086         (init_optabs): Use it.
4087         * config/gofast.h: Likewise.
4088         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
4089         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
4090
4091 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
4092
4093         * Makefile.in (cppexp.o): Depend on cpphash.h.
4094         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
4095         Include cpphash.h.
4096         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
4097         * cpplib.c (do_define): Generalise to handle poisoned definitions,
4098         redefining poisoned identifiers, etc.
4099         (do_undef): Don't allow poisoned identifiers to be undefined.
4100         (do_pragma): Add #pragma poison.
4101         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
4102
4103         * cccp.c: Add T_POISON node type.
4104         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
4105         poisoned xxx.
4106         (do_define): Generalise to handle poisoned definitions,
4107         redefining poisoned identifiers, etc.
4108         (do_undef): Don't allow poisoned identifiers to be undefined.
4109         (do_pragma): Add #pragma poison.
4110         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
4111
4112         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
4113         * c-pragma.h: Add ps_poison state.  We now always have generic
4114         pragmas.
4115
4116 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
4117
4118         * ggc.h (ggc_alloc): New function.
4119         (ggc_mark): Likewise.
4120         * ggc-simple.c (ggc_any): New structure.
4121         (ggc_status): Add anys.
4122         (n_anys_collected): New variable.
4123         (ggc_alloc): Define.
4124         (ggc_mark): Likewise.
4125         (ggc_collect): Collect the anys.
4126
4127 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4128
4129         * c-decl.c (mark_binding_level): Make static to match prototype.
4130
4131 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
4132
4133         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
4134
4135 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
4136
4137         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
4138         will use into account.  Expand the max width to 5.
4139         * rtl.c: Likewise.
4140
4141 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
4142
4143         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
4144         for the rtx length.
4145
4146 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
4147
4148         * alpha.md (call value patterns): Remove the result predicates.
4149
4150 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
4151
4152         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
4153         last change.
4154
4155 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4156
4157         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
4158         changed from extern char *, to extern PTR.  Also fix typo in
4159         NEED_DECLARATION_REALLOC test.
4160
4161         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
4162
4163 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4164
4165         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
4166         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
4167         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
4168         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
4169
4170         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
4171
4172         * cccp.c (pcfinclude): Likewise.
4173
4174         * global.c (allocno_compare): Likewise.
4175
4176         * haifa-sched.c (rank_for_schedule): Likewise.
4177
4178         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
4179
4180         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
4181
4182         * stupid.c (stupid_reg_compare): Likewise.
4183
4184         * tree.c (_obstack_allocated_p): Likewise.
4185
4186         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
4187
4188 1999-09-08  Bruce Korb  autogen@linuxbox.com
4189
4190         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
4191         why "gperf -F" fails.
4192         * gcc/cp/Makefile.in: ditto
4193         * gcc/Makefile.in: ditto
4194         * gcc/java/Makefile.in: ditto
4195
4196 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
4197
4198         * lists.c: Include ggc.h.
4199         (zap_lists): New.
4200         (init_EXPR_INSN_LIST_cache): Install it.
4201
4202         * ggc-simple.c (init_ggc): Absorb the old init.
4203         (ggc_push_context): Use xcalloc.
4204         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
4205         (ggc_collect): Add [rvts] tags to the collection stats.
4206
4207 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
4208
4209         * cccp.c (main): Fix handling of -include and -imacros options.
4210
4211 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
4212
4213         * cpplib.c (cpp_push_buffer): Fix order of arguments.
4214
4215 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
4216
4217         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
4218         genrtl.c.
4219
4220 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
4221
4222         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
4223         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
4224         and SET_DEST. Update comment.
4225
4226 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4227
4228         * config/c4x/c4x.c: Include ggc.h.
4229         (c4x_add_gc_roots): New function.
4230         (c4x_override_options): Call c4x_add_gc_roots.
4231
4232 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
4233
4234         * defaults.h (TARGET_ESC): Move ...
4235         * system.h: ... here, where Linas had it in the first place.  Silly me.
4236
4237 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
4238
4239         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
4240         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
4241         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
4242         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
4243         * defaults.h (TARGET_ESC): Add default.
4244
4245 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
4246
4247         * configure.in: add i370-*-openedition, i370-*-mvs and
4248         i370-*-linux targets
4249
4250 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
4251
4252         * dsp16xxx.c: Include ggc.h
4253         (override_options): Mark GC roots.
4254         * mn10200.c: Include ggc.h.
4255         (asm_file_start): Mark GC roots.
4256         * tahoe.c: Include ggc.h.
4257         (extensible_operand): Mark GC roots.
4258
4259 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
4260
4261         * README: Add section discussing status of ELF ABI.
4262         * i370.c: Fix misc spelling mistakes.
4263         (i370_label_scan): Updated notes, exception handling.
4264         (i370_function_prolog): Simplify ELF stack handling.
4265         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
4266         (STACK_GROWS_DOWNWARD): ELF stack grows down.
4267         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
4268         * i370.md: (movdi): Add notes.
4269         (floatsidf2): Use stack not rtca for scratch float area.
4270         (iorsi3): Correct operand constraints.
4271         * x-oe: Restore TAROUTOPTS which are used by pax.
4272
4273 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
4274
4275         * rs6000.c: Include ggc.h.
4276         (rs6000_add_gc_roots): New function.
4277         (override_options): Call it.
4278
4279 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
4280
4281         * alpha.h (alpha_compare): New.
4282         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
4283         * alpha.c: Likewise for the definitions.
4284         (alpha_emit_conditional_branch): Update for alpha_compare.
4285         (alpha_emit_conditional_move): Likewise.
4286         * alpha.md (cmpdf, cmpdi): Likewise.
4287         (setcc patterns): Likewise.  Zero alpha_compare after use.
4288         (sne): Optimize (x != 0) into (0U < x).
4289
4290 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
4291
4292         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
4293         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
4294         (INIT_EXPANDERS): Remove.
4295         * alpha.c: Include ggc.h.
4296         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
4297         (alpha_init_machine_status, alpha_mark_machine_status): New.
4298         (override_options): Install them.
4299         (struct machine_function): Moved to alpha.h.
4300         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
4301         (alpha_init_expanders): Remove.
4302         (alpha_return_addr): Adjust to use current_function->machine.
4303         (alpha_ra_ever_killed): Likewise.
4304         (alpha_expand_epilogue): Likewise.
4305         * alpha.md (eh_epilogue): Likewise.
4306
4307 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
4308                           Melissa O'Neill  <oneill@cs.sfu.ca>
4309                           Geoffrey Keating  <geoffk@cygnus.com>
4310
4311         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
4312         call-used registers (call-saved registers must still be contiguous
4313         and end with r31, of course).
4314
4315 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
4316
4317         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
4318         (self_promoting_type_p): Delete.
4319         (self_promoting_args_p): Move ...
4320         * c-common.c: ... here.
4321         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
4322         (simple_type_promotes_to): New.
4323         * builtins.c (lang_type_promotes_to): New.
4324         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
4325         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
4326         * c-common.h: ... here.
4327         (self_promoting_args_p, simple_type_promotes_to): Declare.
4328         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
4329         (grokdeclarator): Likewise.
4330         * tree.h (lang_type_promotes_to): Declare.
4331
4332 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
4333
4334         Add some machine-dependent GC roots.
4335         * sparc.c: Include ggc.h.
4336         (sparc_add_gc_roots): New function.
4337         (mark_ultrasparc_pipeline_state): Likewise.
4338         (override_options): Call sparc_add_gc_roots.
4339         * pa.c: Include ggc.h.
4340         (pa_add_gc_roots): New function.
4341         (mark_deferred_plabels): Likewise.
4342         (override_options): Call pa_add_gc_roots.
4343         * mips.c: Include ggc.h.
4344         (mips_add_gc_roots): New function.
4345         (override_options): Use it.
4346
4347 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4348
4349         * cpperror.c (cpp_file_line_for_message): Constify a char*.
4350
4351         * cppexp.c (parse_number, parse_charconst, cpp_lex,
4352         cpp_parse_expr): Add static prototypes.
4353         (parse_charconst): Don't cast away const-ness.
4354         (token): Constify a char*.
4355
4356         * cppfiles.c (file_name_list, include_hash, find_include_file,
4357         finclude, initialize_input_buffer): Constify a char*.
4358         (file_cleanup, find_position): Add static prototypes.
4359
4360         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
4361         collect_expansion): Add static prototypes.
4362         (cpp_install, create_definition, monthnames): Constify a char*.
4363
4364         * cpphash.h (cpp_install): Likewise.
4365
4366         * cppinit.c (known_suffixes, default_include,
4367         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
4368         (base_name, dump_special_to_buffer, initialize_dependency_output):
4369         Add static prototypes.
4370
4371         * cpplib.c (my_strerror): Constify a char*.
4372         (null_underflow, null_cleanup, skip_comment, copy_comment,
4373         copy_rest_of_line, handle_directive, pass_thru_directive,
4374         get_directive_token, read_line_number, cpp_print_file_and_line,
4375         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
4376         v_cpp_warning_with_line, detect_if_not_defined,
4377         consider_directive_while_skipping): Add static prototypes.
4378         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
4379         cpp_pedwarn_with_file_and_line): Constify a char*.
4380
4381         * cpplib.h (cpp_options, include_hash, progname, definition,
4382         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
4383         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
4384         find_include_file, deps_output, include_hash): Constify a char*.
4385
4386         * cppmain.c (progname): Constify.
4387         (main): Add prototype.  Use return, not exit.
4388
4389         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
4390         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
4391         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
4392         check_protection): Add static prototype.
4393         (xfree): Remove.
4394         (progname, recognized_macrom, recognized_extern): Constify a char*.
4395         (main): Add prototype.
4396
4397         * gen-protos.c (progname): Constify a char*.
4398
4399 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
4400
4401         * emit-rtl.c (free_emit_status): Take decl as a parameter.
4402         (init_emit_once): Add more GC roots.
4403         * except.c (mark_func_eh_entry): New function.
4404         (mark_eh_node): Mark false_label and rethrow_label.
4405         (init_eh): Add more GC roots.
4406         * function.c (free_after_compilation): Take decl as a paramter.
4407         Call free_stmt_status.
4408         (mark_function_state): Don't assume x_parm_reg_stack_loc is
4409         non-NULL.
4410         * function.h (free_after_compilation): Change prototype.
4411         (free_varasm_status): Likewise.
4412         (free_emit_status): Likewise.
4413         (free_stmt_status): New function.
4414         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
4415         Remove, replacing with ...
4416         (ggc_status): New structure.
4417         (ggc_chain): New variable.
4418         (init_gcc): Define.
4419         (ggc_push_context): New function.
4420         (ggc_pop_context): Likewise.
4421         (ggc_alloc_rtx): Adjust for use of ggc_chain.
4422         (ggc_alloc_rtvec): Likewise.
4423         (ggc_alloc_tree): Likewise.
4424         (ggc_alloc_string): Likewise.
4425         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
4426         (ggc_mark_tree): Give language-dependent code a chance to mark
4427         `x' nodes.
4428         (ggc_mark_tree_varray): Handle empty arrays.
4429         (ggc_collect): Adjust for use of ggc_chain.  Clear
4430         bytes_alloced_since_last_gc.
4431         * ggc.h (ggc_pop_context): New function.
4432         (ggc_push_context): Likewise.
4433         * print-tree.c (print_node): Don't print obstacks when GC'ing.
4434         * stmt.c (free_stmt_status): New function.
4435         (init_stmt_for_function): Clear last_expr_value.
4436         * toplev.c (rest_of_compilation): Always call free_after_compilation.
4437         Conditionalize call to ggc_collect.
4438         (main): Call init_ggc.
4439         * tree.c (push_obstacks): Do the push, even when GC'ing.
4440         (push_obstacks_nochange): Likewise.
4441         (pop_obstacks): Liekwise.
4442         * varasm.c (free_varasm_status): Take decl as a parameter.
4443
4444 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4445
4446         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
4447         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
4448         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
4449         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
4450
4451 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
4452
4453         * pa/x-pa-mpeix: New file for the MPE port.
4454
4455         * pa/quadlib.asm: New file for long double support.
4456
4457         * configure.in: Add hppa1.0-*-mpeix for MPE port.
4458         * configure: Rebuilt.
4459
4460 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
4461
4462         * final.c (shorten_branches): Fix last change.
4463
4464 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
4465
4466         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
4467
4468 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
4469
4470         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
4471         details.
4472
4473 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4474
4475         * c-aux-info.c (concat): Don't define.
4476
4477         * cccp.c (my_strerror): Likewise.  All callers changed to use
4478         xstrerror instead.
4479         (do_include): Call xstrdup, not xmalloc/strcpy.
4480         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
4481         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
4482
4483         * collect2.c (my_strsignal): Likewise.  All callers changed to use
4484         strsignal instead.
4485         (locatelib): Call xstrdup, not xmalloc/strcpy.
4486
4487         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
4488
4489         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
4490
4491         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
4492
4493         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
4494
4495         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
4496
4497         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
4498
4499         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
4500         malloc/realloc.
4501         (find_all_handler_type_matches): Likewise.  Don't check return
4502         value.
4503         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
4504         xmalloc, not malloc.
4505         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
4506
4507         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
4508         (init_spec): Call xcalloc, not xmalloc/bzero.
4509         (set_spec): Call xstrdup, not save_string.
4510         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
4511         (find_a_file): Call xstrdup, not xmalloc/strcpy.
4512         (process_command): Call xstrdup, not save_string.
4513         (main): Call xcalloc, not xmalloc/bzero.
4514
4515         * gcov.c (xmalloc): Don't define.
4516         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
4517         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
4518         (output_data): Call xcalloc, not xmalloc/bzero.
4519
4520         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
4521
4522         * mips-tdump.c (xmalloc): Don't define.
4523         (print_symbol): Call xmalloc, not malloc.
4524         (read_tfile): Call xcalloc, not calloc.
4525
4526         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
4527         Don't define.  All callers of xfree/my_strsignal changed to use
4528         free/strsignal instead.
4529         (allocate_cluster): Call xcalloc, not calloc.
4530
4531         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
4532         Fix memory leak, free allocated memory.
4533
4534         * prefix.c (translate_name): Call xstrdup, not save_string.
4535         (update_path): Likewise.
4536
4537         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
4538
4539         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
4540         Don't define.  Callers of xfree/savestring2 changed to use
4541         free/concat instead.
4542
4543         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
4544         (init_elim_table): Likewise.
4545
4546         * resource.c (init_resource_info): Likewise.
4547
4548         * stupid.c (stupid_life_analysis): Likewise.
4549
4550         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
4551         (open_dump_file): Call concat, not xmalloc/strcpy/...
4552         (clean_dump_file): Likewise.
4553         (compile_file): Call xstrdup, not xmalloc/strcpy.
4554
4555 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
4556
4557         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
4558         * v850.c (v850_va_arg): New.
4559
4560 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4561
4562         * haifa-sched.c: Tidy comments.
4563
4564 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4565
4566         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
4567         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
4568         $(out_object_file)): Depend on ggc.h.
4569         * c-common.c: Include "ggc.h".
4570         (combine_strings): If doing GC, use ggc_alloc_string.
4571         * c-decl.c: Include "ggc.h".
4572         (ggc_p): Define with value 0.
4573         (mark_binding_level): New function.
4574         (init_decl_processing): Add GC roots.
4575         (mark_c_function_context): New function.
4576         (lang_mark_false_label_stack): New function.
4577         (lang_mark_tree): New function.
4578         (lang_cleanup_tree): New function.
4579         * c-lang.c: Include "ggc.h".
4580         (lang_init): Call c_parse_init.
4581         * c-lex.c: Include "ggc.h".
4582         (check_linenum): If doing GC, don't copy filenames to permanent
4583         obstack.
4584         * c-parse.in: Include "ggc.h".
4585         (c_parse_init): New function.
4586         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
4587         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
4588
4589         * except.c (mark_eh_state): Mark more state.
4590         * function.c (mark_function_state): Likewise.
4591         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
4592         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
4593         * toplev.c (mark_file_stack): New function.
4594         (compile_file): If doing GC, use ggc_alloc_string on input filename.
4595         (main): Add root for input_file_stack.
4596
4597         * i386.c: Include "ggc.h".
4598         (ix86_mark_machine_status): New function.
4599         (override_options): Set mark_machine_status.
4600
4601 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4602
4603         * tree.c (copy_node): Copy node contents also if doing GC.
4604
4605 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
4606
4607         * collect2.c (scan_libraries): Fix double-thinko :-).
4608
4609 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
4610
4611         * collect2.c (scan_libraries): Fix thinko.
4612
4613         * cse.c (delete_trivially_dead_insns): Do not skip the last
4614         insn if it is a real insn.
4615
4616 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
4617
4618         * Makefile.in (ggc-simple.o): Depend on hash.h.
4619         * ggc.h (ggc_add_tree_hash_table_root): Declare.
4620         (ggc_mark_tree_varray): Likewise.
4621         (ggc_mark_tree_hash_table): Likewise.
4622         * ggc-simple.c: Include hash.h.
4623         (ggc_mark_tree_hash_table_ptr): New function.
4624         (ggc_mark_tree_hash_table_entry): Likewise.
4625         (ggc_mark_tree_hash_table): Likewise.
4626         (ggc_add_tree_hash_table_root): Likewise.
4627         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
4628         rtx, when defining fields.
4629
4630 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4631
4632         * profile.c (output_func_start_profiler): Remove apparently
4633         nonsensical call to start_sequence.
4634
4635 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
4636
4637         * clipper/clipper.c (clipper_va_start): Fix typos.
4638
4639         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
4640         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
4641         (spur_va_arg): New stub.
4642
4643         * configure.in: Comment out pyramid.
4644
4645 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
4646
4647         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
4648         don't conflict with the bits that win32, cygwin, and dgux
4649         defines.
4650
4651 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
4652                           Bernd Schmidt <bernds@cygnus.co.uk>
4653
4654         * integrate.c (function_cannot_inline_p): Do not inline
4655         functions with forced labels.
4656
4657 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
4658                           Bernd Schmidt <bernds@cygnus.co.uk>
4659                           Mark Mitchell  <mark@codesourcery.com>
4660
4661         * Makefile.in (ggc-simple.o): Depend on varray.h.
4662         (rtl.o): Depend on ggc.h.
4663         (genattrtab.o): Depend on ggc.h.
4664         (print-tree.o): Likewise.
4665         (fold-const.o): Likewise.
4666         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
4667         (make_insn_raw): Don't cache insns when GC'ing.
4668         (emit_insn_before): Likewise.
4669         (emit_insn_after): Likewise.
4670         (emit_insn): Likewise.
4671         (start_sequence): Use xmalloc to allocate the sequence_stack.
4672         (end_sequence): Add free to free it.
4673         (gen_sequence): Don't cache insns when GC'ing.
4674         (clear_emit_caches): Don't use sequence_element_free_list.
4675         (init_emit): Use xcalloc, not xmalloc+bzero.
4676         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
4677         * function.c (pop_function_context_from): Use free to free the
4678         fixup_var_refs_queue.
4679         (put_reg_into_stack): Allocate it with xmalloc.
4680         * genattrtab.c: Include ggc.h.
4681         (operate_exp): Don't use obstack_free when GC'ing.
4682         (simplify_cond): Likewise.
4683         (simplify_text_exp): Likewise.
4684         (optimize_attrs): Likewise.
4685         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
4686         GC'ing.
4687         (gencode): Generate a #include for ggc.h.
4688         * ggc-callbacks.c (ggc_p): Define it to zero.
4689         * ggc-none.c (ggc_p): Likewise.
4690         * ggc-simple.c: Include varray.h.
4691         (ggc_mark_tree_varray): New function.
4692         (ggc_add_tree_varray_root): Likewise.
4693         (ggc_mark_tree_varray_ptr): Likewise.
4694         * ggc.h (ggc_p): Declare.
4695         (varray_head_tag): Likewise.
4696         (ggc_add_tree_varray_root): Declare.
4697         * print-tree.c (print_node): Don't check for TREE_PERMANENT
4698         inconsistencies when GC'ing.
4699         * rtl.c: Include ggc.h.
4700         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
4701         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
4702         (rtx_free): Don't call obstack_free when GC'ing.
4703         * toplev.c (rest_of_compilation): Call ggc_collect after every
4704         pass, if GC'ing.
4705         * tree.c (push_obstacks): Do nothing, if GC'ing.
4706         (pop_obstacks_nochange): Likewise.
4707         (pop_obstacks): Likewise.
4708         (make_node): Use ggc_alloc_tree when GC'ing.
4709         (copy_node): Likewise.
4710         (get_identifier): Use ggc_alloc_string when GC'ing.
4711         (build_string): Likewise.
4712         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
4713         (tree_cons): Likewise.
4714         (build1): Likewise.
4715         (type_hash_canon): Don't call obstack_free when GC'ing.
4716
4717 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
4718
4719         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
4720         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
4721
4722 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
4723                           Bernd Schmidt <bernds@cygnus.co.uk>
4724                           Mark Mitchell  <mark@codesourcery.com>
4725
4726         * Makefile.in (stor-layout.o): Depend on ggc.h.
4727         (expr.o): Depend on ggc.h.
4728         (profile.o): Depend on ggc.h.
4729         (stor-layout.o): Depend on ggc.h.
4730         * emit-rtl.c (init_emit_once): Add gc roots.
4731         * expr.c: Include ggc.h.
4732         (emit_block_move): Add gc roots.
4733         (clear_storage): Likewise.
4734         * expr.h (init_stor_layout_once): New function.
4735         * profile.c: Include ggc.h.
4736         (init_arc_profiler): profiler_label is a root.
4737         * scan.c (make_sstring_space): Trust xrealloc to function
4738         correctly with first parameter NULL.
4739         * stor-layout.c: Include ggc.h.
4740         (set_sizetype): Add gc root.
4741         (init_stor_layout_once): New function.
4742         * toplev.c (compile_file): Call it.
4743
4744 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
4745                           Bernd Schmidt <bernds@cygnus.co.uk>
4746                           Mark Mitchell  <mark@codesourcery.com>
4747
4748         * Makefile.in (tree.o): Depend on ggc.h.
4749         (varasm.o): Likewise.
4750         (function.o): Likewise.
4751         (stmt.o): Likewise.
4752         (except.o): Likewise.
4753         (optabs.o): Likewise.
4754         (emit-rtl.o): Likewise.
4755         * emit-rtl.c: Include ggc.h.
4756         (sequence_element_free_list): Remove, and all references.
4757         (mark_sequence): New functions.
4758         (mark_emit_state): New function.
4759         * except.c: Include ggc.h.
4760         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
4761         (mark_tree_label_node): New functions.
4762         (mark_eh_state): New function.
4763         * function.c: Include ggc.h.
4764         (mark_temp_slot, mark_function_chain): New functions.
4765         (mark_function_state): New function.
4766         (init_function_once): New function.
4767         * function.h (init_function_once): New function.
4768         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
4769         * ggc.h (label_node): Declare.
4770         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
4771         (lang_mark_false_label_stack): New function.
4772         (mark_temp_slot): Remove declaration.
4773         (mark_function_chain): Likewise.
4774         (mark_eh_state): Adjust prototype.
4775         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
4776         Likewise.
4777         * optabs.c: Include ggc.h.
4778         (mark_optab): New function.
4779         (init_optabs): Add gc roots.
4780         * stmt.c: Include ggc.h.
4781         (mark_cond_nesting, mark_loop_nesting): New functions.
4782         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
4783         (mark_stmt_state): New function.
4784         * toplev.c (compile_file): Call init_function_once.
4785         * tree.c: Include ggc.h.
4786         (type_hash): Move declaration earlier in file.
4787         (TYPE_HASH_SIZE, type_hash_table): Likewise.
4788         (init_obstacks): Add gc roots.
4789         (mark_type_hash): New function.
4790         * varasm.c: Include ggc.h.
4791         (mark_pool_constant): New function.
4792         (mark_varasm_state): New function.
4793
4794 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4795
4796         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
4797
4798 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
4799
4800         * c-decl.c (struct language_function): Renamed from struct c_function.
4801         Delete elt NEXT.
4802         (c_function_chain): Delete.
4803         (push_c_function_context): New arg F.  Don't warn about nested
4804         functions here.  Fill LANGUAGE elt of F.  Delete code to update
4805         c_function_chain.  Don't call push_function_context.
4806         (pop_c_function_context): New arg F.  Restore from there instead of
4807         from c_function_chain.  Don't call pop_function_context.  Clear out
4808         LANGUAGE field of F when done.
4809         * c-lang.c: Include "function.h"
4810         (lang_init): Initialize save_lang_status and restore_lang_status.
4811         * c-parse.in (nested_function, nested_function_notype): Warn about
4812         nested functions.  Call push_function_context/pop_function_context
4813         instead of the _c_ variants.
4814         * c-tree.h (push_c_function_context, pop_c_function_context): Update
4815         prototype.
4816         * Makefile.in (c-lang.o): Update dependencies.
4817
4818         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
4819         regno_pointer_flag, regno_pointer_align.
4820         (gen_reg_rtx): Use xrealloc to enlarge them.
4821         (free_emit_status): New function.
4822         * function.c (mark_machine_status, mark_lang_status): New variables.
4823         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
4824         in some bits from assign_stack_local.  All callers changed to use new
4825         name.
4826         (assign_stack_local): Just call assign_stack_local_1.
4827         (free_after_compilation): New function.
4828         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
4829         (trampoline_address): Likewise.
4830         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
4831         (prepare_function_start): Explicitly clear some more variables.
4832         * function.h (struct function): New elt can_garbage_collect.
4833         (mark_machine_status, mark_lang_status): Declare variables.
4834         (free_after_compilation, free_emit_status, free_varasm_status,
4835         init_varasm_status): Declare functions.
4836         * toplev.c (rest_of_compilation): Call free_after_compilation when
4837         done with the current function.
4838         * varasm.c (free_varasm_status): New function.
4839
4840 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
4841
4842         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
4843         (EXPAND_BUILTIN_VA_ARG): Define.
4844         * sparc.c (sparc_va_start): New.
4845         (sparc_va_arg): New.
4846
4847 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4848
4849         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
4850
4851 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4852
4853         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
4854
4855 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
4856
4857         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
4858         (OBJS): Add $(GGC).
4859         (ggc-callbacks.o): New target.
4860         * ggc-callbacks.c: New file.
4861
4862 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4863
4864         * expr.h: Collapse individual optab and libfunc vars to arrays.
4865         (optab_index, libfunc_index): New enumerations.
4866         (optab_table, libfunc_table): New arrays.
4867         Add accessor macros for both.
4868
4869         * optabs.c (optab_table, libfunc_table): New.
4870         Delete declarations for individual optab and libfunc vars.
4871
4872 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
4873
4874         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
4875
4876 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
4877
4878         * Makefile.in (GGC, GGC_LIB): New.
4879         (HOST_RTL): Include ggc-none.o.
4880         (ggc-simple.o): New target.
4881         (ggc-none.o): Likewise.
4882         * tree.h (tree_common): Add gc_mark.
4883         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
4884         (struct rtvec_def): Add gc_mark.
4885         * emit-rtl.c (global_rtl): Update static initializers to contain
4886         enough initializers.
4887         * ggc.h, ggc-none.c, ggc-simple.c: New files.
4888         * toplev.c (gc_time): New variable.
4889         (all_time): New variable.
4890         (compile_file): Print gc time.
4891         (print_time): Calculate percentage of the whole.
4892
4893 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4894
4895         Change obstack memory management and varasm constant pool handling so
4896         that nested functions are treated like any other functions.
4897         * function.c (init_machine_status): New variable.
4898         (push_function_context_to): Set contains_functions for the outer
4899         function.  Don't call save_varasm_status.
4900         (pop_function_context_from): Don't call restore_varasm_status.  Don't
4901         set current_function_contains_functions.
4902         (prepare_function_start): Call init_varasm_status rather than
4903         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
4904         is non-null.
4905         * function.h (struct function) Add field varasm.  Delete fields
4906         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
4907         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
4908         (init_machine_status): Declare.
4909         (save_varasm_status, restore_varasm_status): Delete declarations.
4910         (save_tree_status, restore_tree_status): Delete last argument.
4911         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
4912         code.  All callers changed.
4913         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
4914         save_constants_in_decl_trees, restore_constants, save_constants,
4915         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
4916         functions.
4917         (inlining): New variable.
4918         (reg_map, label_map, insn_map, orig_asm_operands_vector,
4919         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
4920         variables.
4921         (save_for_inline_nocopy): Don't save constants.
4922         Don't set inl_emit field in current_function.
4923         (expand_inline_function): Use emit field, not inl_emit, of the inlined
4924         function.  Set new variable inlining before
4925         calling copy_rtx_and_substitute.
4926         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
4927         constant pool references if inlining is nonzero.
4928         Delete ADDRESS and (most of the) CONST cases.
4929         (output_inline_function): Save and restore current_function/
4930         current_function_decl.  Delete restore_constants code.  Don't call
4931         init_const_rtx_hash_table.
4932         * output.h (init_const_rtx_hash_table): Don't declare.
4933         * rtl.h (struct function): Declare.
4934         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
4935         * toplev.c (rest_of_compilation): Don't treat nested functions or
4936         functions containing them specially.  Delete all code to deal with
4937         save_for_inline_copying.
4938         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
4939         inline_obstacks): Delete variables.
4940         (save_tree_status): Lose arg CONTEXT.  All callers changed.
4941         Simply allocate a new function_maybepermanent_obstack for the new
4942         function, delete all the special cases.
4943         Don't save inline_obstacks.
4944         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
4945         Delete special handling for function_maybepermanent_obstack; simply
4946         free it if empty.
4947         Don't restore inline_obstacks.
4948         (permanent_allocation):  Delete code that frees inline_obstacks.
4949         (print_inline_obstack_statistics): Delete function.
4950         (dump_tree_statistics): Don't call it.
4951         * varasm.c (struct varasm_status): New.
4952         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
4953         last_pool, pool_offset, const_double_chain): Delete global
4954         variables, replace with accessor macros.
4955         (immed_double_const): Don't walk const_double_chain outside a
4956         function, but don't treat nested functions specially anymore.
4957         (immed_real_const_1): Likewise.
4958         (clear_const_double_mem): Don't treat nested functions specially.
4959         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
4960         (save_varasm_status, restore_varasm_status): Delete functions.
4961         (init_varasm_status): New function.
4962         (force_const_mem): Don't treat nested functions specially.
4963         (find_pool_constant): Accept new arg F, search for constants in
4964         that function's pool rather than the current one.  All callers
4965         changed.
4966         (get_pool_constant_for_function, get_pool_mode_for_function): New
4967         functions.
4968
4969         * i386.c (init_386_machine_status): New function, mostly from
4970         clear_386_stack_locals.
4971         (struct machine_functions): Rename element names to avoid name
4972         clashes.
4973         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
4974         macros, replacing global variables.
4975         (clear_386_stack_locals, save_386_machine_status,
4976         restore_386_machine_status): Delete functions.
4977         (override_options): Initialize init_machine_status.
4978         * i386.h (INIT_EXPANDERS): Delete macro.
4979         (save_386_machine_status, restore_386_machine_status,
4980         clear_386_stack_locals): Delete declarations.
4981
4982 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4983
4984         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
4985         (doloop_begin):  Simplify pattern and use emit_jump_insn.
4986         (doloop_end): Simplify pattern, switch operand order,
4987         and use emit_jump_insn.
4988
4989 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4990
4991         * function.h (struct function): Add new element LANGUAGE.
4992         (save_lang_status): Declare new variable.
4993         (restore_lang_status): Likewise.
4994         * function.c (save_lang_status): Define.
4995         (restore_lang_status): Likewise.
4996         (push_function_context_to): Call language-specific save function.
4997         (pop_function_context_from): Call language-specific restore function.
4998
4999 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
5000
5001         * i386.md (movsf_1): Check REG_P before use of REGNO.
5002         (movdf_1): Likewise.
5003         (movxf_1): Likewise.
5004         (extendsfdf2): Likewise.
5005         (extendsfxf2): Likewise.
5006         (extenddfxf2): Likewise.
5007
5008 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5009
5010         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
5011         constants into memory.
5012         (c4x_shiftable_constant): New function.
5013         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
5014         (c4x_shiftable_constant): Declare.
5015         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
5016         ashlqi3_noclobber): Add new patterns and associated splitters.
5017
5018 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
5019
5020         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
5021         * dwarf2out.c (dwarf2out_frame_init): Likewise.
5022         * final.c (shorten_branches): Likewise.
5023         * global.c (global_alloc): Likewise.
5024         * haifa-sched.c (build_control_flow): Likewise.
5025         * stmt.c (check_for_full_enumeration_handling): Likewise.
5026         (estimate_case_costs): Likewise.
5027
5028 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
5029
5030         * rtl.h (RTL_CHECKC2): Fix typo in last change.
5031
5032 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
5033
5034         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
5035         (recompute_reg_usage): Likewise.
5036         * rtlanal.c (find_regno_fusage): Likewise.
5037
5038         * rtl.c (rtl_check_failed_code1): New function.
5039         (rtl_check_failed_code2): New.
5040         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
5041         (RTL_CHECKC1, RTL_CHECKC2): New.
5042         (XC*): New accessor macros.
5043         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
5044         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
5045         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
5046         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
5047         (TRAP_*, RANGE_INFO_*): Likewise.
5048
5049 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5050
5051         * Makefile.in (tlink.o): Don't depend on toplev.h.
5052
5053         * collect2.c (c_file, o_file, export_file, import_file, ldout,
5054         output_file, nm_file_name, ldd_file_name, strip_file_name,
5055         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
5056         add_prefix, prefix_from_env, prefix_from_string, do_wait,
5057         fork_execute, maybe_unlink, add_to_list,
5058         extract_init_priority, write_list, dump_list,
5059         dump_prefix_list, write_list_with_asm, write_c_file,
5060         write_c_file_stat, write_c_file_glob, scan_prog_file,
5061         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
5062         ignore_library, extract_string, notice, dump_file, target_machine,
5063         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
5064         read_file, print_load_command): Constify a char*.
5065         (fdopen, error, fatal, fatal_perror): Don't prototype.
5066         (my_strerror): Remove.  All callers use xstrerror instead.
5067         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
5068         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
5069         to xcalloc/strcpy/strcat/...  to one call to concat.
5070         (main, scan_prog_file, scan_libraries): Use an intermediate
5071         `const char **' to build an argv array.
5072         (mapfile, libselect, libcompare, locatelib): Add prototypes.
5073
5074         * collect2.h (collect_execute, collect_wait, dump_file,
5075         file_exists): Constify a char*.
5076         (ldout, c_file_name, temporary_obstack, permanent_obstack,
5077         temporary_firstobj, vflag, debug): Add extern declarations.
5078         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
5079
5080         * tlink.c: Don't include toplev.h.
5081         (vflag, debug, ldout, c_file_name, temporary_obstack,
5082         permanent_obstack, temporary_firstobj): Don't declare.
5083         (tlink_execute, frob_extension, symbol_hash_lookup,
5084         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
5085         recompile_files, read_repo_files, demangle_new_symbols,
5086         scan_linker_output): Constify a char*.
5087         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
5088         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
5089
5090 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
5091
5092         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
5093         (relative) rather than jsr (absolute) subroutine call insns.
5094         * config/m68k/m68k-coff.h: Ditto.
5095
5096 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
5097
5098         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
5099         now rework these too.
5100         (arm_reorg): If an insn can't reach the end of the current pool,
5101         ensure that we emit that pool before the insn.
5102
5103 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
5104
5105         * tlink.c (scan_linker_output): Skip the initial underscore in
5106         a mangled name if appropriate.
5107
5108 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5109
5110         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5111         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
5112         error_with_ivar, gen_declarator, create_builtin_decl,
5113         my_build_string, generate_descriptor_table, generate_ivars_list,
5114         generate_dispatch_table, check_protocols, TAG_GETCLASS,
5115         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
5116         dump_base_name, lang_decode_option, build_encode_expr,
5117         start_class, finish_class, encode_pointer, really_start_method,
5118         gen_declaration, dump_interface, handle_class_ref, handle_impent):
5119         Constify.
5120         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
5121         Add static prototypes.
5122         (build_objc_string_decl, build_selector_reference_decl,
5123         encode_bitfield, build_class_reference_decl): Remove unused
5124         parameter, all callers changed.
5125         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
5126         (objc_printable_name): Likewise.  Change second parameter to type int.
5127         (init_objc): Use memcpy, not bcopy, to avoid casts.
5128
5129 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
5130
5131         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
5132         reg notes on a deleted insn.
5133         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
5134
5135 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
5136
5137         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
5138
5139 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5140
5141         * stmt.c (expand_asm_operands): Fix index into inout_mode when
5142         reading it.
5143
5144 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
5145
5146         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
5147         * tm.texi (MD_ASM_CLOBBERS): Document it.
5148
5149 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
5150
5151         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
5152         * except.c (expand_rethrow): Remove unused variable.
5153         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
5154         * flow.c (replace_insns): Likewise.
5155         (create_edge_list, verify_edge_list): Likewise.
5156         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
5157
5158         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
5159         is special code to run.
5160         (main): Don't define operands to emit_operand.
5161         * genrecog.c (main): Don't emit an empty peephole2_insn function.
5162
5163         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
5164
5165         * alpha/alpha.h (normal_memory_operand): Declare.
5166         (reg_no_subreg_operand): Declare.
5167         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
5168
5169 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
5170
5171         * c-parse.in (compstmt_primary_start): New, broken out of first
5172         part of compstmt handling in primary.
5173         (primary): Use it.  Add an error clause.
5174         (compstmt_nostart): Renamed from compstmt; remove all
5175         initial invocations of compstmt_start.
5176         (compstmt): New.
5177
5178 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
5179
5180         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
5181         needed.
5182
5183 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
5184
5185         * combine.c (simplify_shift_const): Remove extra semicolon.
5186         * dwarf2out.c (remove_AT): Likewise.
5187         * expmed.c (expand_mult): Likewise.
5188         * gcov.c (create_program_flow_graph): Likewise.
5189         * reorg.c (mostly_true_jump): Likewise.
5190
5191 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
5192
5193         * fold-const.c (fold_range_test): Do not try to fold the range
5194         test if the rhs or lhs has side effects.
5195
5196         * combine.c (simplify_rtx): Recognize another case of a synthesized
5197         sign extension.
5198
5199         * varasm.c (mark_constant_pool): When marking indirect references,
5200         only look at SYMBOL_REFs.
5201
5202         * except.c (expand_fixup_region_end): Do not peek at
5203         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
5204
5205 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
5206
5207         * flags.h: New variables align_loops, align_loops_log,
5208         align_jumps, align_jumps_log, align_labels, align_labels_log,
5209         align_functions, align_functions_log.
5210         * toplev.c: Define them.
5211         (f_options): Handle -falign-* when they have no argument.
5212         (main): Add logic to set variables for -falign-functions,
5213         -falign-jumps, -falign-labels, -falign-loops.
5214         Make it -fsched-verbose=<n> and -finline-limit=<n>.
5215         (display_help): Change help to match options.
5216         * final.c (LABEL_ALIGN): Default to align_labels_log.
5217         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
5218         (LOOP_ALIGN): Default to align_loops_log.
5219         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
5220         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
5221         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
5222         * varasm.c (assemble_start_function): Handle align_functions.
5223
5224         * config/sparc/sparc.h: Don't declare sparc_align_*.
5225         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
5226         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
5227         sparc.c.
5228         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
5229         it's a promise.
5230         * config/sparc/sparc.c: Delete sparc_align_loops,
5231         sparc_align_jumps, sparc_align_funcs and the corresponding string
5232         variables.
5233         (sparc_override_options): Default align_functions on ultrasparc.
5234         Delete -malign-* handling.
5235
5236         * config/mips/mips.c (override_options):  On 64-bit targets,
5237         try to align code to 64-bit boundaries.
5238         (print_operand): New substitution, %~,
5239         which aligns labels to align_labels_log.
5240         * config/mips/mips.md (div_trap_normal): Use %~.
5241         (div_trap_mips16): Likewise.
5242         (abssi): Likewise.
5243         (absdi2): Likewise.
5244         (ffssi2): Likewise.
5245         (ffsdi2): Likewise.
5246         (ashldi3_internal): Likewise.
5247         (ashrdi3_internal): Likewise.
5248         (lshrdi3_internal): Likewise.
5249         (casesi_internal): Likewise.
5250
5251 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
5252
5253         Merge new ia32 backend from the branch!
5254
5255         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
5256         See ChangeLog.P2 on new_ia32_branch for details.
5257
5258         * rtl.h (stack_regs_mentioned_p): Delete prototype.
5259         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
5260         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
5261         * i386/gas.h (ASM_FILE_START): Define.
5262         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
5263         for name change of ix86_valid_decl_attribute_p.
5264         (i386_pe_valid_type_attribute_p): Similarly.
5265
5266 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
5267
5268         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
5269         to step through CC modes.
5270
5271 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5272
5273         * regmove.c (fixup_match_1): Don't move INSN in front of P if
5274         it would end up in the shadow of a live flags regsiter.
5275
5276 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5277
5278         * reload1.c: Fix many indentation problems.
5279         * reload.c: Likewise.
5280
5281 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
5282
5283         * alias.c (non_local_reference_p): Constify fmt.
5284
5285 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
5286
5287         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
5288
5289 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
5290
5291         * cse.c (delete_trivially_dead_insns): Do not delete stores to
5292         the internal_arg_pointer.
5293
5294 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
5295
5296         Merge peephole2 from new_ia32_branch:
5297         * Makefile.in (STAGESTUFF): Add *.peephole2.
5298         (mostlyclean): Likewise.
5299         (recog.o): Depend on resource.h.
5300
5301         * final.c (peephole): Conditionalize decl on HAVE_peephole.
5302         (final_scan_insn): Likewise for the invocation of peephole.
5303         * genconfig.c (main): Look for peephole and peephole2 patterns.
5304         Emit HAVE_peephole* accordingly.
5305         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
5306         * flags.h (flag_peephole2): Declare.
5307         * toplev.c: New pass peephole2.  New flag -fpeephole2.
5308
5309         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
5310         * gencodes.c (main): Likewise.
5311         * genextract.c (main): Likewise.
5312         * genoutput.c (main): Likewise.
5313         * genemit.c (max_operand_1): Look for the max scratch operand.
5314         (gen_rtx_scratch): New.
5315         (gen_exp): Use it, and pass on new arg subroutine_type.
5316         (gen_expand): Take max scratch into account.
5317         (gen_split): Emit peephole2 functions.
5318         (output_peephole2_scratch): New.
5319         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
5320         * genrecog.c (routine_type): Add PEEPHOLE2.
5321         (IS_SPLIT): New.
5322         (make_insn_sequence): Match outer parallel for peep2.  Discard
5323         top level scratches and dups.
5324         (add_to_sequence): New args insn_type and top.  Update all callers.
5325         Handle toplevel peep2 matching insns.
5326         (write_subroutine): Handle peep2.
5327         (write_tree_1): Likewise.
5328         (write_tree): Likewise.
5329         (main): Likewise.
5330         (change_state): New arg afterward.  Update all callers.
5331         Handle matching separate insns.
5332         * recog.c (recog_next_insn): New.
5333         (peephole2_optimize): New.
5334         * rtl.def (DEFINE_PEEPHOLE2): New.
5335         * resource.c (find_free_register): New argument last_insn.  Use it
5336         to find a register available through the entire span.
5337         * resource.h (find_free_register): Update prototype.
5338
5339 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
5340
5341         * i386.c (output_strlen_unroll): Don't write xops[7]
5342         label if it wasn't set.
5343
5344 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
5345
5346         * cpplib.c (struct directive): Const-ify name pointer and
5347         function pointer prototype.
5348         (validate_else, do_define, do_line, do_include, do_undef,
5349         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
5350         do_elif, do_endif, do_sccs, do_assert, do_unassert,
5351         do_warning): Const-ify second arg.
5352         (directive_table): Mark const.  Reorder entries by frequency
5353         of usage, record statistics.
5354
5355 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
5356
5357         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
5358         bounds- check RTL accesses if --enable-checking.
5359         (RTVEC_ELT): Bounds check if --enable-checking.
5360         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
5361         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
5362         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
5363         GET_NUM_ELEM.
5364         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
5365         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
5366
5367         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
5368         (NOTE_SOURCE_FILE): Use X0STR.
5369         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
5370         MEM_ALIAS_SET): Use X0INT.
5371         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
5372         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
5373         Use X0EXP.
5374         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
5375         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
5376         (rtl_check_failed_bounds, rtl_check_failed_type1,
5377         rtl_check_failed_type2, rtvec_check_failed_bounds): New
5378         functions.
5379         (fancy_abort): Fix comment.
5380
5381         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
5382         (cse_insn): Decrement LABEL_NUSES for jump target before
5383         deleting jump insn.
5384         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
5385         * final.c (alter_subreg): Compute regno before changing x to
5386         REG; set REGNO(x) after changing it.
5387         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
5388         notes containing CONST_INTs.
5389         (delete_eh_regions): Use NOTE_EH_HANDLER.
5390         * function.c (put_reg_into_stack): Make reg a MEM before
5391         initializing it.
5392         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
5393         delete insn.
5394         (gen_mem_addressof): Make reg a MEM before initializing it.
5395         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
5396         X0WINT.
5397         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
5398         deleting an insn, not after.
5399         (block_alloc): Only look at PATTERN(insn) if we have to, and
5400         only if it's format class 'i'.
5401         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
5402         CONST_INT before using its INTVAL.
5403         * print-rtl.c (print_rtx): Use X0STR.
5404         * regmove.c (fixup_match_1): Don't look at PATTERN of
5405         non-class-'i' insn chain elements.
5406         * reload.c (loc_mentioned_in_p): Take address of
5407         in->fld[1].rtx directly.
5408         * reload1.c (reload): Change reg to a MEM before initializing
5409         it.
5410         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
5411         have no names.
5412         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
5413
5414 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
5415
5416         * config/mips/mips.c (machine_dependent_reorg): Force a
5417         barrier to output the local constant pool if a barrier hasn't
5418         been found at a natural point in the instruction stream.
5419
5420 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5421
5422         * c-parse.in (language_string): Constify.
5423
5424         * dwarf2out.c (language_string): Remove declaration.
5425
5426         * dwarfout.c (language_string): Likewise.
5427
5428         * toplev.c (language_string, init_parse, finish_parse): Likewise.
5429
5430         * tree.h (language_string, init_parse, finish_parse): Declare.
5431
5432         * i386/sun386.h (language_string): Remove declaration.
5433
5434         * mips.h (language_string): Likewise.
5435
5436         * nextstep.h (language_string): Likewise.
5437
5438         * nextstep21.h (language_string): Likewise.
5439
5440         * rs6000.c (language_string): Likewise.
5441
5442 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5443
5444         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
5445         (getpwd.o): Remove target.
5446
5447         * getpwd.c: Delete file.  Its in libiberty now.
5448
5449         * dbxout.c (getpwd): Don't prototype.
5450         * dwarf2out.c (getpwd): Likewise
5451         * dwarfout.c (getpwd): Likewise
5452         * final.c (getpwd): Likewise.
5453         * protoize.c (getpwd): Likewise.
5454
5455 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5456
5457         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
5458
5459 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
5460
5461         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
5462         mark_set_resources.
5463
5464 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
5465
5466         * fixinc/Makefile.in (subdir): New.
5467         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
5468         (Makefile): New.
5469
5470 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
5471
5472         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
5473         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
5474         be shared.
5475
5476         * invoke.texi: Fix typo.
5477
5478         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
5479         changed.  Handle autoincrement addressing modes.
5480
5481         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
5482         just like we would the virtual incoming args register when
5483         integrating.
5484
5485 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
5486
5487         * rs6000.h (ASM_FILE_START): Specify complete filename, including
5488         path, in .file directive.
5489
5490 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
5491
5492         * gcc.texi (External Bugs): Remove obsolete note about Perl on
5493         SunOS.
5494
5495 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
5496
5497         * stdbool.h: Make the typedef name _Bool, with bool a #defined
5498         alias.
5499
5500 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5501
5502         * tree.c (tree_code_name): Constify a char*.
5503
5504         * tree.h (tree_code_name, decl_printable_name): Likewise.
5505
5506         * function.h (struct function): Likewise.
5507
5508         * toplev.c (decl_name, decl_printable_name): Likewise.
5509
5510         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
5511
5512         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
5513         (init_objc): Remove function pointer cast.
5514
5515 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
5516
5517         * pa.md (interspace_jump): New pattern.
5518         (builtin_longjmp): New expander.
5519
5520 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
5521
5522         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
5523         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
5524         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
5525
5526 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
5527
5528         * jump.c (delete_prior_computation): Also check calls
5529         to constant functions.  Don't bother checking for a
5530         REG_UNUSED note before adding it.
5531         (delete_computation): Handle multi-word hard registers
5532         when synthesizing missing REG_DEAD notes for a register
5533         which is both set and used by an insn.
5534
5535 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5536
5537         * loop.c (this_loop_info): New variable.
5538         (loop_has_call, loop_has_volatile, loop_has_tablejump,
5539         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
5540         All uses updated.
5541         (prescan_loop, strength_reduce): New argument loop_info.  All callers
5542         updated.
5543         (scan_loop): New variable loop_info, initialise to address of
5544         this_loop_info.
5545         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
5546         Delete variable loop_has_multiple_exit targets and replace with
5547         field in this_loop_info.
5548         (find_and_verify_loops): Rename this_loop to this_loop_num.
5549         (strength_reduce): Delete loop_iteration_info.  Replace variable
5550         loop_info with function argument of same name.
5551         (insert_bct): Rework test for loop being completely unrolled.
5552
5553         * loop.h (struct loop_info): New fields num, loops_enclosed,
5554         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
5555         has_indirect_jump, and cont.  Redefine use of unroll_number.
5556         (loop_unroll_number): Delete.
5557
5558         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
5559         field of loop_info.
5560         (loop_iterations): Delete variable vtop and instead use
5561         loop_info->vtop computed in prescan_loop.
5562
5563 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
5564
5565         * fix-header.c (main): Do not pass a null pointer to strcmp.
5566
5567 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
5568
5569         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
5570         filenames.
5571         * configure: Rebuilt.
5572
5573 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
5574
5575         * jump.c (jump_optimize_1): Do not delete assignments to
5576         internal_arg_pointer.
5577         * cse.c (delete_trivially_dead_insns): Always consider a set of
5578         the internal_arg_pointer live.
5579
5580 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
5581
5582         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
5583         (update_life_info) [REG_WAS_0]: Search the original insns rather
5584         than the new insns for the note.  Fix typos finding note_dest.
5585         If no dest found, discard the note rather than abort.
5586         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
5587         (replace_insns): Remove the old insn list after update_life_info
5588         not before.
5589
5590 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
5591
5592         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
5593         sched_analyze_insn.
5594         (sched_analyze_1): Let add_dependence care for not adding dups.
5595         (sched_analyze_2): Likewise.
5596         (add_branch_dependences): Likewise.
5597
5598 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5599
5600         * i386/winnt.c (export_list): New type.
5601         (exports_head): Rename to
5602         (export_head):  this.
5603         (i386_pe_record_exported_symbol): Add is_data flag.
5604         (i386_pe_asm_file_end): Emit directive for exported variables.
5605         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
5606         prototype.
5607         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
5608         (ASM_DECLARE_OBJECT_NAME): Likewise.
5609         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5610         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5611
5612 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
5613
5614         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
5615
5616         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
5617         operand.
5618
5619 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
5620
5621         * config/openbsd.h: Define SET_ASM_OP.
5622         * tm.texi: cross-reference SET_ASM_OP in the index.
5623
5624 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
5625
5626         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
5627         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
5628         and class_narrowest_mode at compile time.  Kill init_rtl.
5629         Mark rtx_length, mode_class, mode_size, mode_unit_size,
5630         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
5631         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
5632         EXTRA_CC_NAMES.
5633         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
5634         format.
5635         * rtl.h: Declare rtx_length and rtx_format as const.
5636         * machmode.def: Define CC().  Use CC() to define CCmode.  If
5637         EXTRA_CC_MODES is defined, expand it here.
5638         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
5639         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
5640         const.  Kill all references to EXTRA_CC_MODES.
5641
5642         * toplev.c: Don't prototype or call init_rtl.
5643         * optabs.c: Don't call init_mov_optab.
5644         * genemit.c: Don't generate init_mov_optab.  Don't call
5645         init_rtl.
5646         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
5647         here.
5648         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
5649         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
5650         genrecog.c: Don't call init_rtl.
5651
5652         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
5653         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
5654         definition of EXTRA_CC_MODES.
5655
5656         * md.texi: Kill ref to EXTRA_CC_NAMES.
5657         * tm.texi: Document new way to define EXTRA_CC_MODES.
5658
5659         * genrecog.c: Do not look up the name of a define_split.
5660         (Unrelated bugfix.)
5661
5662 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
5663
5664         * config/v850/v850.md: Fix typo introduced by previous delta.
5665
5666 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5667
5668         * gcc.c (fatal): Make definition static to match prototype.
5669
5670 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5671
5672         * combine.c (get_last_value): Don't look for earlier sets if the last
5673         known set is somewhere in between the insns being combined.
5674
5675 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
5676
5677         * configure.in: Don't use shell ! to negate exit codes
5678         * configure: Regenerate
5679
5680 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
5681
5682         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
5683         the fact that ALIGN is measured in bits, not bytes.
5684
5685 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
5686
5687         * errors.c: New file; defines functions error, warning, and
5688         fatal, variables have_error and progname.
5689         * errors.h: New file; prototypes and decls for stuff in errors.c.
5690
5691         * Makefile: Add rules to build errors.o and
5692         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
5693         genopinit, genrecog, genextract, genpeep, genattr, and
5694         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
5695         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
5696         genpeep.o, genattr.o, and genoutput.o.
5697
5698         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
5699         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
5700         define or prototype fatal.  Set progname at beginning of main.
5701         * genoutput.c:  Likewise, and don't define or prototype error
5702         either.
5703
5704         * c-typeck.c (c_expand_start_case): Return immediately if exp
5705         is an ERROR_MARK.
5706         * fold-const.c (operand_equal_p): Return immediately if arg1
5707         or arg0 are ERROR_MARKs.
5708         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
5709         fields of type ERROR_MARK when calculating if the record can
5710         go in a register.
5711
5712 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
5713         with much help from Jeffrey A Law and Richard Henderson
5714
5715         * i386.md: In the 6 insns which call output_fix_trunc,
5716         earlyclobber operands[0].
5717
5718 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
5719
5720         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
5721         creating new registers.
5722
5723 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
5724
5725         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
5726         i386_reg_alloc_order, i386_regparm_string,
5727         i386_align_loops_string, i386_align_jumps_string,
5728         i386_align_funcs_string, i386_preferred_stack_boundary_string,
5729         and i386_branch_cost_string as type "const char *".
5730         * i386.c: Define all above strings as type "const char *".
5731
5732 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
5733
5734         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
5735         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
5736
5737 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
5738
5739         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
5740         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
5741
5742 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
5743
5744         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
5745         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
5746         (dwarf2out_line, dwarf2out_finish): Likewise.
5747         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
5748
5749 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5750
5751         * tree.c (lang_unsave_expr_now) : Correct return type.
5752         * tree.h (lang_unsave_expr_now) : Same.
5753
5754 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
5755
5756         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
5757         instead of duplicating code.
5758
5759 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5760
5761         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
5762
5763 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
5764
5765         * tree.h: fancy_abort always takes three args.
5766         * resource.c: Move include of system.h before toplev.h.
5767
5768 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
5769
5770         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
5771         as SYMBOL_REFs.
5772
5773 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
5774
5775         * system.h: Don't redefine abort or trim_filename.
5776         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
5777         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
5778         whether or not __FUNCTION__ is available.
5779         * tree.h: Duplicate rtl.h's definition of abort, for files
5780         that don't include rtl.h.  Delete all code to perform type
5781         checking with a compiler other than GCC.
5782         * varray.h: Delete all code to perform type checking with a
5783         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
5784         its arguments exactly once, using a statement expression.
5785         Adjust the VARRAY_<type> accessor macros to match.
5786         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
5787         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
5788         caller's location.  Define fatal_insn and fatal_insn_not_found
5789         as macros that use _fatal_insn and _fatal_insn_not_found.
5790         (fancy_abort, trim_filename): Kill prototypes.
5791
5792         * rtl.c (trim_filename): Move here from toplev.c.
5793         (fancy_abort): New function.
5794         (DIR_SEPARATOR): Provide default definition.
5795         * tree.c (tree_check_failed, tree_class_check_failed): Go
5796         through fancy_abort.
5797         (tree_check, tree_class_check, cst_or_constructor_check,
5798         expr_check): Delete.
5799         * varray.c (varray_check_failed): New function.
5800         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
5801         _fatal_insn and _fatal_insn_not_found.  Go through
5802         fancy_abort.
5803         (trim_filename, fancy_abort): Delete.
5804
5805         * builtins.c (expand_builtin_args_info): Report ICE with abort.
5806         * except.c (start_catch_handler): Report ICE with error/abort
5807         combo.
5808         * final.c (output_operand_lossage): Likewise.
5809         * flow.c (verify_flow_info): Likewise.
5810
5811         * gcc.c: Prototype fatal.
5812         * gengenrtl.c: Undef abort after including rtl.h not system.h.
5813         * genattr.c, genattrtab.c, genemit.c, genextract.c,
5814         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
5815         Don't define fancy_abort.
5816
5817 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
5818
5819         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
5820         canonization.
5821
5822 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
5823
5824         * m88k.h (VERSION_INFO2): Kill.
5825         (VERSION_STRING): Kill.
5826         (TM_RCS_ID): Kill.
5827         (VERSION_INFO1): Tidy.
5828         (TARGET_VERSION): Update.
5829         * m88k/dgux.h (VERSION_INFO2): Kill.
5830         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
5831         * m88k/luna.h (VERSION_INFO1): Tidy.
5832         * m88k/sysv4.h (VERSION_INFO1): Likewise.
5833         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
5834         (output_file_start): Adjust for death of VERSION_STRING.
5835
5836 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
5837
5838         * cpplib.c (detect_if_not_defined): New function.
5839         (do_if): Use it to detect potential once-only headers.
5840
5841 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
5842
5843         * c-common.c (combine_strings): Always set TREE_CONSTANT.
5844
5845 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5846
5847         * combine.c (nonzero_bits) : Allow single-ly set registers to be
5848         anywere in the function only if they are pseudos and set before
5849         being used (not live at the start of the function).
5850         (num_sign_bit_copies) : Same.
5851         (get_last_value_validate) : Same.
5852         (get_last_value) : Same.
5853
5854 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
5855
5856         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
5857         where N and M are constant and N is an integer multiple of M.
5858
5859 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5860
5861         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
5862         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
5863         sbitmap_union_of_preds): Add prototypes.
5864         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
5865         the intersection of successors with the new flow graph structures.
5866         (sbitmap_intersection_of_preds): New function to compute the
5867         intersection of predecessors with the new flow graph structures.
5868         (sbitmap_union_of_succs): New function to compute the union of
5869         successors with the new flow graph structures.
5870         (sbitmap_union_of_preds): New function to compute the union of
5871         predecessors with the new flow graph structures.
5872         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
5873         (expr_reaches_here_p): Use edge and basic_block structures instead
5874         of s_preds and s_succs.
5875         (compute_cprop_avinout): Use new sbitmap routines.
5876         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
5877         of s_preds and s_succs.
5878         * flow.c (compute_flow_dominators): Compute dominators using
5879         edges and basic blocks instead of s_preds and s_succs.
5880
5881 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5882
5883         * lists.c (unused_insn_list, unused_expr_list): New file for
5884         maintaining various types of lists. New statics for maintaining a
5885         cache of available INSN_LIST and EXPR_LIST nodes.
5886         (free_list): Static function for freeing a list of INSN/EXPR nodes.
5887         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
5888         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
5889         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
5890         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
5891         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
5892         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
5893         (free_INSN_LIST_node): Free an individual INSN_LIST node.
5894         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
5895         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
5896         (remove_dependence, free_pending_lists): Use new global routines.
5897         (flush_pending_lists, sched_analyze_insn): Use new global routines.
5898         (sched_analyze, compute_block_backward_dependences): Use new routines.
5899         (sched_analyze_1, sched_analyze_2): Use new routines.
5900         (schedule_insns): Use new global routines.
5901         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
5902         prototypes.
5903         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
5904         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
5905         prototypes.
5906         * toplev.c (rest_of_compilation): Initialize node cache.
5907         * Makefile.in (OBJS): Add lists.o to list of object files.
5908         (lists.o): Add dependancies.
5909
5910 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
5911
5912         * config/v850/v850.md: Fix compile time warning messages.
5913         * config/v850/v850.c: Fix compile time warning messages.
5914         * config/v850/v850.h: Fix compile time warning messages.
5915
5916 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5917
5918         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
5919         Remove unused prototype for `init_lengths'.
5920
5921 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5922
5923         * calls.c (emit_call_1): Mark parameter `stack_size' with
5924         ATTRIBUTE_UNUSED.
5925         (expand_call): Initialize variable `insn'.
5926         (emit_library_call): Likewise for variable `high_to_save'.
5927         (emit_library_call_value): Likewise.
5928         (store_one_arg): Likewise for variables `lower_bound' and
5929         `upper_bound'.
5930
5931         * combine.c (try_combine): Likewise for variables `i2_code_number'
5932         and `other_code_number'.
5933         (find_split_point): Likewise for variables `pos', `unsignedp' and
5934         `inner'.
5935         (simplify_if_then_else): Likewise for variables `op' and `c1'.
5936         (simplify_and_const_int): Remove unused variable `width'.
5937         (merge_outer_ops): Likewise.
5938
5939         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
5940         HOST_WIDE_INT' when comparing against one.
5941         (simplify_relational_operation): Likewise.
5942         (cse_insn): Initialize variables `src_eqv_volatile',
5943         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
5944
5945         * final.c (init_final): Constify parameter `filename'.
5946         (final_start_function): Mark parameter `optimize' with
5947         ATTRIBUTE_UNUSED.
5948         (profile_function): Likewise for parameters `first' and `optimize'.
5949         (output_source_line): Likewise for parameter `file'.
5950
5951         * integrate.c (subst_constants): Cast a value to `size_t' when
5952         comparing against one.
5953         (mark_stores): Initialize variable `mode'.  Cast a value to
5954         `size_t' when comparing against one.
5955
5956         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
5957
5958         * loop.c (move_movables): Initialize variable `first'.
5959         (strength_reduce): Likewise for variable `increment'.
5960         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
5961         value to `size_t' when comparing against one.
5962         (load_mems): Initialize variable `end_label'.
5963
5964         * output.h (init_final): Constify parameter.
5965
5966         * reload.c (decompose): Initialize variable `base'.
5967
5968         * reload1.c (reload): Likewise for variable `is_scalar'.
5969         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
5970         (choose_reload_regs): Initialize variable `mode'.
5971         (emit_reload_insns): Likewise for variable `store_insn'.
5972         (reload_cse_noop_set_p): Mark parameter `insn' with
5973         ATTRIBUTE_UNUSED.
5974         (reload_combine): Initialize variable `set'.
5975
5976         * unroll.c (unroll_loop): Likewise for variable `local_label'.
5977         (copy_loop_body): Cast a value to `size_t' when comparing against
5978         one.
5979
5980         * varasm.c (assemble_variable): Initialize variable `size_tree'.
5981         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
5982         (remove_from_pending_weak_list): Mark parameter `name' with
5983         ATTRIBUTE_UNUSED.
5984
5985 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5986
5987         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
5988         gcse dump file.
5989
5990 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
5991
5992         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
5993         (ASM_DECLARE_FUNCTION_NAME): Define.
5994         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
5995         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
5996         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
5997         not already defined.
5998
5999 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6000
6001         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
6002         of n_popped when call/call_value are not defined.
6003
6004 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
6005
6006         * tm.texi: GNU CC -> GCC conversion.
6007         (CC1_SPEC): Indicate it is used for all language front ends.
6008
6009 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
6010
6011         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
6012         NOTE_INSN_EH_REGION_END correctly.
6013
6014 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
6015                           Jeff Law <law@cygnus.com>
6016
6017         * loop.c (strength_reduce): Automatically unroll loops if the
6018         unrolled loop size is smaller than the rolled loop size.
6019
6020         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
6021         and delete comment that code should be rewritten.
6022
6023 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
6024
6025         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
6026         as reachable.
6027
6028         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
6029
6030 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6031
6032         * fixinc/mkfixinc.sh: Don't fix uwin headers.
6033         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
6034         (LINK_SPEC): Add -u _main when building executables.
6035         (ASM_DECLARE_FUNCTION): Update from Cygwin.
6036         (ASM_FILE_END): Use the default for ix86-pe.
6037         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
6038
6039 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
6040
6041         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
6042         and ASM_CLOSE_PAREN are empty strings.
6043
6044 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
6045                           Geoffrey Keating <geoffk@cygnus.com>
6046
6047         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
6048         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
6049         (unprotoize.o): Ditto.
6050         (test-protoize-simple): Don't define STD_PROTO_DIR.
6051         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
6052         changes to make 'test-protoize-simple' pass.
6053         (STD_PROTO_DIR): Remove define.
6054         (STANDARD_EXEC_PREFIX): Supply default define.
6055         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
6056         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
6057         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
6058         (GET_ENV_PATH_LIST): New macro.
6059         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
6060         (do_processing): Initialize default_syscalls_dir using new
6061         macros.  Use it to initialize syscalls_absolute_filename.
6062
6063 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
6064
6065         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
6066         B into a register before emit_conditional_move.
6067
6068 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
6069
6070         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
6071         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
6072         multiplicand out of (+ (* a b) (* c d)).
6073
6074 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
6075                           Richard Henderson  <rth@cygnus.com>
6076
6077         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
6078         (new_insn_dead_notes): Likewise.
6079         (update_n_sets): Likewise.
6080         (update_flow_info): Move to flow.c, renamed to update_life_info;
6081         extend to handle multiple source insns.
6082         * flow.c: Include resource.h
6083         (unlink_insn_chain): New.
6084         (split_hard_reg_notes): New.
6085         (maybe_add_dead_note): New.
6086         (maybe_add_dead_note_use): New.
6087         (find_insn_with_note): New.
6088         (new_insn_dead_notes): New.
6089         (update_n_sets): New.
6090         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
6091         (maybe_remove_dead_notes): New.
6092         (update_life_info): New.
6093         (prepend_reg_notes): New.
6094         (replace_insns): New.
6095         * output.h (update_life_info): Declare.
6096         * recog.c (split_block_insns): Use update_life_info.
6097         * resource.c (find_free_register): Use reg_alloc_order, don't use
6098         fixed regs, make sure the mode is supported, don't use new regs.
6099         (reg_dead_p): New.
6100         * rtl.h (replace_insns): Declare.
6101
6102 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
6103
6104         * expr.c (expand_expr): Cope with COND_EXPRs with one
6105         non-returning branch.
6106
6107 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
6108
6109         * expr.c (store_expr): Always pass down the target, even when not
6110         doing CSE.
6111
6112 1999-08-24  Nick Clifton  <nickc@cygnus.com>
6113
6114         * configure.in: Define target_cpu_default for v850 targets.
6115         * configure: Regenerate
6116
6117         * config/v850/v850.h (TARGET_CPU_generic): Define.
6118         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
6119         addresses are 4 byte aligned.
6120
6121         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
6122         addresses.
6123
6124 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6125
6126         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
6127         (main): Add prototypes.
6128
6129         * genattrtab.c (substitute_address, write_const_num_delay_slots,
6130         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
6131         (write_attr_get): Emit prototypes along with function definition.
6132         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
6133         (write_complex_function): Emit static prototype along with
6134         function definition.
6135
6136         * genemit.c (gen_split): Emit prototypes along with function
6137         definition.
6138
6139         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
6140         Likewise for predicates and `insn_operand_predicate'.
6141         (process_template): Emit static prototype along with function
6142         definition.
6143
6144         * genrecog.c (make_insn_sequence): Constify a char*.  Add
6145         prototypes for get_split_*().
6146         (write_subroutine): Emit prototypes along with function
6147         definition.
6148
6149 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6150
6151         * gcse.c (find_avail_set): Follow chains of register-register copies.
6152         Use oprs_not_set_p to guarantee that the returned value can be
6153         substituted.
6154         (cprop_insn): Don't verify the return value of find_avail_set with
6155         oprs_not_set_p.
6156
6157         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
6158         (cprop_cc0_jump): New function.
6159         (cprop_insn): Break out new function cprop_jump and use it.
6160         Also use cprop_cc0_jump for machines with CC0.
6161         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
6162
6163         * tree.h (current_function_calls_setjmp,
6164         current_function_calls_longjmp): Delete declarations.
6165         * dsp16xx.c: Include "function.h".
6166         * elxsi.c: Likewise.
6167         * gmicro.c: Likewise.
6168         * h8300.c: Likewise.
6169         * i370.c: Likewise.
6170         * m32r.c: Likewise.
6171         * mn10200.c: Likewise.
6172         * mn10300.c: Likewise.
6173         * ns32k.c: Likewise.
6174         * spur.c: Likewise.
6175         * v850.c: Likewise.
6176
6177         * rtl.h (rtx_equal_function_value_matters): Declare.
6178         * toplev.c (rtx_equal_function_value_matters): Don't declare.
6179         * cse.c: Likewise.
6180         * function.c: Likewise.
6181         * emit-rtl.c: Likewise.
6182
6183 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
6184
6185         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
6186         call.
6187
6188 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6189
6190         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
6191         exactly.
6192
6193 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
6194
6195         * cpp.texi: Add a node documenting macro varargs (copied
6196         from extend.texi).
6197
6198 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
6199
6200         * cppspec.c: Put a null pointer at the end of the new argv.
6201
6202 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
6203
6204         * configure.in: Remove code to select/de-select the haifa
6205         scheduler.  Every scheduled port gets haifa now.
6206         * configure: Rebuilt.
6207         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
6208         * sched.c Deleted.
6209         * Makefile.in: Corresponding changes.
6210
6211 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6212
6213         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
6214         All callers changed.
6215         (prepare_float_lib_cmp): Likewise.
6216         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
6217         * expr.h (emit_float_lib_cmp): Delete declaration.
6218         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
6219         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
6220         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
6221         specially.
6222         (cmptf): Now conditional on TARGET_HARD_QUAD.
6223
6224 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
6225
6226         * resource.c (mark_target_live_regs): Use
6227         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
6228
6229 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6230
6231         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
6232
6233         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
6234
6235         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
6236
6237 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6238
6239         * rtl.h (rtx_format): Constify a char*.
6240
6241         * rtl.c (rtx_format): Likewise.
6242         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
6243         (init_rtl): Use accessor macro, not `rtx_format'.
6244
6245         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
6246         char*.
6247
6248         * caller-save.c (mark_referenced_regs): Likewise.
6249
6250         * combine.c (subst, make_compound_operation, known_cond,
6251         gen_rtx_combine, update_table_tick, get_last_value_validate,
6252         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
6253
6254         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
6255         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
6256         count_reg_usage): Likewise.
6257
6258         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
6259         Likewise.
6260
6261         * final.c (leaf_renumber_regs_insn): Likewise.
6262
6263         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
6264         dump_edge_info, count_reg_references): Likewise.
6265
6266         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
6267         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
6268         Likewise.
6269
6270         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
6271         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
6272         add_label_notes): Likewise.
6273
6274         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
6275         clear_struct_flag, count_sub_rtxs, count_alternatives,
6276         compares_alternatives_p, contained_in_p, walk_attr_value,
6277         write_expr_attr_cache): Likewise.
6278
6279         * genconfig.c (walk_insn_part): Likewise.
6280
6281         * genemit.c (max_operand_1, gen_exp): Likewise.
6282
6283         * genextract.c (walk_rtx): Likewise.
6284
6285         * genflags.c (num_operands): Likewise.
6286
6287         * genoutput.c (scan_operands): Likewise.
6288
6289         * genpeep.c (match_rtx): Likewise.
6290
6291         * genrecog.c (add_to_sequence): Likewise.
6292
6293         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
6294         Likewise.
6295
6296         * integrate.c (save_constants, copy_for_inline,
6297         copy_rtx_and_substitute, subst_constants, restore_constants):
6298         Likewise.
6299
6300         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
6301         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
6302
6303         * local-alloc.c (contains_replace_regs, memref_referenced_p):
6304         Likewise.
6305
6306         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
6307         add_label_notes, replace_call_address, count_nonfixed_reads,
6308         invariant_p, find_single_use_in_loop, find_mem_givs,
6309         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
6310         Likewise.
6311
6312         * print-rtl.c (reg_names, print_rtx): Likewise.
6313
6314         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
6315
6316         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
6317         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
6318         print_blocks): Likewise.
6319
6320         * regclass.c (fix_register, record_address_regs,
6321         reg_scan_mark_refs): Likewise.
6322
6323         * regmove.c (stable_but_for_p): Likewise.
6324
6325         * reload.c (loc_mentioned_in_p, operands_match_p,
6326         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
6327         copy_replacements, refers_to_regno_for_reload_p,
6328         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
6329         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
6330         Likewise.
6331
6332         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
6333         delete_address_reloads_1, count_occurrences,
6334         reload_cse_mem_conflict_p, reload_combine_note_use,
6335         add_auto_inc_notes): Likewise.
6336
6337         * resource.c (mark_referenced_resources, mark_set_resources):
6338         Likewise.
6339
6340         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
6341         reg_mentioned_p, regs_set_between_p, modified_between_p,
6342         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
6343         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
6344         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
6345         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
6346
6347         * sched.c (sched_analyze_2, attach_deaths): Likewise.
6348
6349         * stupid.c (stupid_mark_refs): Likewise.
6350
6351         * unroll.c (remap_split_bivs): Likewise.
6352
6353         * varasm.c (mark_constants): Likewise.
6354
6355         * a29k/a29k.c (uses_local_reg_p): Likewise.
6356
6357         * alpha/alpha.c (summarize_insn): Likewise.
6358
6359         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
6360         eliminate_lr2ip): Likewise.
6361
6362         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
6363
6364         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
6365         reg_mentioned_in_mem): Likewise.
6366
6367         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
6368         symbolic_reference_mentioned_p): Likewise.
6369
6370         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
6371
6372         * sh/sh.c (regs_used, mark_use): Likewise.
6373
6374         * vax/vax.c (vax_rtx_cost): Likewise.
6375
6376 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6377
6378         * machmode.h (mode_name): Constify a char*.
6379
6380         * rtl.c (mode_name): Likewise.
6381
6382         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
6383
6384         * optabs.c (init_libfuncs): Constify a char*.
6385
6386         * print-tree.c (mode_name): Remove redundant declaration.
6387         (print_node): Use accessor macro, not `mode_name'.
6388
6389         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
6390         not `mode_name'.
6391         (new_spill_reg): Constify a char*.
6392
6393         * tree.c (mode_name): Remove redundant declaration.
6394
6395 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6396
6397         * rtl.c (rtx_name): Constify a char*.
6398
6399         * rtl.h (rtx_name, fix_sched_param): Likewise.
6400
6401         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
6402         (mypr): Use accessor macro, not `rtx_name'.
6403
6404         * genemit.c (print_code): Constify a char*.
6405
6406         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
6407
6408         * genpeep.c (print_code): Constify a char*.
6409
6410         * genrecog.c (print_code): Likewise.
6411
6412         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
6413         end_bb): Add static prototype.
6414         (draw_edge): Constify a char*.
6415         (end_bb): Remove unused parameter.
6416
6417         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
6418         print_block_visualization): Constify a char*.
6419
6420 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
6421
6422         * c-common.c (c_get_alias_set): Update comment.
6423
6424 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
6425
6426         * linux.h (LIB_SPEC): Added.
6427
6428 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6429
6430         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
6431
6432 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
6433
6434         * tree.c (expr_check): Fix typo in last change.
6435
6436 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
6437
6438         * rtl.def (NOTE): Change format to "iuu0n".
6439         (ADDR_DIFF_VEC): Change format to "eEee0".
6440         (ADDRESSOF): Change format to "eit".
6441
6442         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
6443         (RTVEC_ELT): Change to match.
6444         (XVECEXP): Use XVEC and RTVEC_ELT.
6445         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
6446         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
6447         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
6448         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
6449         TRAP_CONDITION, TRAP_CODE): Use XEXP.
6450         (INTVAL): Use XWINT.
6451         (ADDRESSOF_DECL): Use XTREE.
6452         (SET_ADDRESSOF_DECL): Delete.
6453         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
6454         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
6455         ifdefed out since 2.6 at least.
6456         (gen_rtvec_vv): Delete prototype.
6457
6458         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
6459         not rtunion.
6460         (copy_most_rtx): Handle 't' format letter.
6461         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
6462         (gen_rtvec_vv): Delete function.  All callers changed to use
6463         gen_rtvec_v instead.
6464         * print-rtl.c (print_rtx): Move special casing of NOTEs to
6465         the '0' format letter.
6466
6467         * function.c (gen_mem_addressof): Don't use
6468         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
6469         instead.
6470         * integrate.c (copy_rtx_and_substitute): Likewise.
6471         Copy 't' slots with XTREE.
6472         (subst_constants): Treat 't' slots like '[swi]' slots.
6473         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
6474         * jump.c (rtx_equal_for_thread_p): Likewise.
6475         * rtlanal.c (rtx_equal_p): Likewise.
6476         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
6477         only four arguments.
6478         * gengenrtl.c (type_from_format): Provide correct types for
6479         'b' and 't' slots.
6480
6481
6482         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
6483         If a recent gcc is in use (always in stage2 and beyond), use
6484         statement expressions, so we don't make a function call unless
6485         the check fails.  Evaluate arguments exactly once.
6486         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
6487         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
6488         Delete.
6489         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
6490         they evaluate their arguments exactly once, irrespective of
6491         the compiler in use.
6492
6493         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
6494         is used by the currently-enabled check macros.  This is:
6495         (tree_check_failed, tree_class_check_failed): For gcc.
6496         (tree_check, tree_class_check, cst_or_constructor_check,
6497         expr_check): For other compilers.
6498
6499         * gencheck.c: Do not define any *_CHECK1 macros.
6500
6501 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
6502                           Mark Mitchell <mark@codesourcery.com>
6503
6504         * c-common.c (c_get_alias_set): Fix support for poitners and
6505         references.
6506
6507 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
6508
6509         * alias.c: Include tree.h.
6510         (nonlocal_reference_p, mark_constant_function): New functions.
6511         * flow.c (life_analysis): Call mark_constant_function.
6512         * rtl.h (mark_constant_function): Declare it.
6513
6514 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
6515
6516         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
6517         unrecognisable switches.
6518
6519 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6520
6521         * loop.c (recombine_givs): Set ix field after sorting.
6522         (recombine_givs): Remove bogus index / giv lockstep looping.
6523
6524 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6525
6526         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
6527         on CODE.
6528         (emit_store_flag_force): Use do_compare_rtx_and_jump.
6529         (do_cmp_and_jump): Formatting fixes.
6530         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
6531         do_compare_rtx_and_jump instead of compare_from_rtx.
6532         (do_compare_rtx_and_jump): New function; mostly copied from
6533         compare_from_rtx.
6534         (do_jump_for_compare): Delete.
6535         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
6536         MIN_EXPR.
6537         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
6538         of compare/do_jump_for_compare pairs.
6539         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
6540         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
6541         compare_from_rtx/do_jump_for_compare pairs.
6542         (do_jump_by_parts_equality): Likewise.
6543         (do_jump_by_parts_equality_rtx): Likewise.
6544         * expr.h (do_compare_rtx_and_jump): Declare.
6545         * optabs.c (prepare_cmp_insn): New function, contains most of the code
6546         that used to be in emit_cmp_insn.
6547         (cmp_available_p): New function.
6548         (prepare_operand): New function.
6549         (emit_cmp_and_jump_insn_1): New function, contains some code that used
6550         to be in emit_cmp_insn.
6551         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
6552         parameters to be pointers; don't emit final compare but modify some of
6553         the values pointed to by the args so the caller can perform the
6554         correct comparison.
6555         (expand_binop): Call emit_store_flag_force with signed forms of
6556         comparison code.
6557         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
6558         emit_jump_insn pair.
6559         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
6560         emit_cmp_and_jump_insn_1.  Call emit_queue.
6561         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
6562         arg.
6563         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
6564         jump sets cc0 before deleting it.
6565         * integrate.c (expand_inline_function): Likewise.
6566         * unroll.c (unroll_loop): Similar changes in several places.
6567         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
6568         before deleting it.
6569
6570 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6571
6572         * Makefile.in (insn-recog.o): Update dependencies.
6573         * genrecog.c (main): Make generated file include "function.h".
6574
6575 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
6576
6577         * cse.c (cse_insn): Call never_reached_warning when a jump is
6578         changed to be unconditional.
6579         * flags.h: Declare warn_notreached.
6580         * flow.c (delete_block): Call never_reached_warning when
6581         a block is deleted.
6582         * jump.c (delete_barrier_successors): Call never_reached_warning
6583         when we delete everything after a BARRIER.
6584         (never_reached_warning): New function.
6585         * rtl.h: Declare never_reached_warning.
6586         * toplev.c (warn_notreached): New variable.
6587         (lang_independent_options): Set warn_notreached
6588         when -Wunreachable-code.
6589         (compile_file): We need line numbers for -Wunreachable-code.
6590
6591 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
6592
6593         * haifa-sched.c (insn_unit): Fix typo on out of range test.
6594         * sched.c (insn_unit): Likewise.
6595
6596 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
6597
6598         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
6599
6600 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6601
6602         * flow.c (create_edge_list): Use xmalloc, not malloc.
6603
6604 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
6605
6606         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
6607         C-style comments.  Do not lose the character before double slash.
6608
6609 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6610
6611         * basic-block.h (struct edge_list): Stucture to maintain a vector
6612         of edges.
6613         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
6614          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
6615         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
6616         New function prototypes.
6617         * flow.c (create_edge_list): Function to create an edge list.
6618         (free_edge_list): Discards memory used by an edge list.
6619         (print_edge_list): Debug output showing an edge list.
6620         (verify_edge_list): Internal consistency check for an edge list.
6621         (find_edge_index): Function to find an edge index for a pred and succ.
6622
6623 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
6624
6625         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
6626         hashtable.
6627
6628 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
6629
6630         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
6631
6632 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6633
6634         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6635
6636 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
6637
6638         * toplev.c (rest_of_compilation): Allow machine dependent
6639         reorganisation pass to place information into the RTL dump
6640         file if it so wishes.
6641
6642 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
6643
6644         * explow.c (hard_function_value): Use VOIDmode instead of
6645         MAX_MACHINE_MODE.
6646         * stmt.c (expand_return): Likewise.
6647         * stor-layout.c (get_best_mode): Likewise.
6648
6649         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
6650         emit call instead of emit_insn call.
6651
6652 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6653
6654         * configure.in: Handle --disable/enable-win32-registry.
6655         * install.texi: Document --disable/enable-win32-registry.
6656         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
6657         (WIN32_REGISTRY_KEY): New macro.
6658         * prefix.c: Use to enable/disable win32-specific code.
6659         (lookup_key): Use versioned key.
6660         * configure: Regenerate.
6661         * config.in: Likewise.
6662
6663 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
6664
6665         * cpplib.c (read_line_number): New fn, split out of...
6666         (do_line): Here.
6667
6668 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6669
6670         tree.c (lang_unsave_expr_now) : New.
6671         (unsave_expr_now): Call lang_unsave_expr_now.
6672         tree.h (lang_unsave_expr_now) : New.
6673
6674 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
6675
6676         * toplev.c (flag_new_exceptions): On by default.
6677
6678 1999-08-13  Michael Meissner  <meissner@cygnus.com>
6679
6680         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
6681
6682 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
6683
6684         * dwarfout.c (fundamental_type_code): Return FT_boolean for
6685         INTEGER_TYPE with precision==1, it's __java_boolean.
6686
6687 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6688
6689         * global.c (prune_preferences): Move some invariants out of the
6690         inner loop.
6691
6692 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
6693
6694         * configure.in (alpha*-dec-osf*): Add osf5.
6695
6696 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
6697
6698         * configure.in: Rework handling of ARM GNU/Linux slightly.
6699         (arm*-*-linux-gnuoldld): New target.
6700         * configure: Regenerate.
6701         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
6702         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
6703         * config/arm/linux-oldld.h: New file.
6704         * config/arm/linux-elf26.h: Don't include linux-elf.h.
6705         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
6706         Don't define.
6707         * config/arm/linux-elf.h (ASM_SPEC): Define.
6708         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
6709         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
6710         for 26-bit APCS and old linker.
6711         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
6712         `arm_elf'.
6713         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
6714         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
6715         don't define `arm' or `arm_elf'.
6716         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
6717         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
6718
6719 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
6720
6721         * rtl.texi: Fix typo.
6722
6723 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
6724
6725         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
6726
6727 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
6728
6729         * extend.texi (C++ Signatures): Remove node.
6730         * invoke.texi: Remove discussion of -fhandle-signatures,
6731         signature, sigof, __signature__, and __sigof__.
6732
6733 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
6734
6735         * Makefile.in (JAVAGC): Removed.
6736
6737 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6738
6739         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
6740
6741 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
6742
6743         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
6744
6745 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
6746
6747         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
6748         a register that is already known to be a pointer.
6749
6750 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
6751
6752         * fixinc/inclhack.tpl: Only install assert.h conditionally.
6753         * fixinc/inclhack.sh: Regenerated.
6754         * fixinc/fixincl.sh: Regenerated.
6755
6756 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
6757
6758         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
6759         Fix documentation of -ansi flag to describe its C++ behavior.
6760         Remove bogus reference to GCC 2.9.
6761
6762 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
6763
6764         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
6765         note if it is non-NULL.
6766
6767 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6768
6769         * except.h (eh_nesting_info): Add new structure defintion.
6770         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
6771         (reachable_handlers, update_rethrow_references): Add function
6772         prototypes.
6773         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
6774         a rethrow symbol instead of an integer exception region number.
6775         * flow.c (Make_edges): Use new exception nesting routines to determine
6776         which handlers are reachable from a CALL or asynchronous insn.
6777         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
6778         goto receivers.
6779         (delete_eh_regions): Update rethrow labels, and don't delete
6780         regions which are the target of a rethrow.
6781         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
6782         avoid overloading the SYMBOL_REF_USED flag.
6783         (rethrow_symbol_map): Use new rethrow_ref field.
6784         (rethrow_used): Use new rethrow_ref field.
6785         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
6786         of an integer.  Fix formatting.
6787         (output_exception_table_entry): Use new rethrow_ref field.
6788         (can_throw): Check for EH_REGION_NOTE before deciding
6789         whether a CALL can throw or not.
6790         (scan_region): Call rethrow_used() instead of accessing data structure.
6791         (update_rethrow_references): New function to make sure only regions
6792         which are still targets of a rethrow are flagged as such.
6793         (process_nestinfo): New static function to initialize a handler
6794         list for a specific region.
6795         (init_eh_nesting_info): New function to allocate and initialize
6796         the list of all EH handlers reachable from all regions.
6797         (reachable_handlers): New function to retrieve the list of handlers
6798         reachable from a specific region and insn.
6799         (free_eh_nesting_info): New function to dispose of a list of
6800         reachable handlers.
6801
6802 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
6803
6804         * flow.c (split_edge): Set JUMP_LABEL field.
6805         (commit_one_edge_insertion): Set head correctly for insert_before.
6806         When inserting insns, update insn block numbers if allocated.
6807
6808 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6809
6810         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
6811         retry_incomplete_types): Add static prototype.
6812         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
6813         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
6814         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
6815         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
6816         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
6817         Constify a char*.
6818
6819         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
6820         dwarf2out_start_source_file, dwarf2out_line): Likewise.
6821
6822 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6823
6824         * output.h (assemble_name): Constify a char*.
6825
6826         * varasm.c (UNIQUE_SECTION, assemble_start_function,
6827         assemble_variable, assemble_name): Likewise.
6828
6829         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
6830
6831         * arm/pe.c (arm_pe_unique_section): Likewise.
6832
6833         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
6834
6835         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
6836
6837         * i386/interix.c (i386_pe_unique_section): Likewise.
6838
6839         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
6840
6841         * i386/winnt.c (i386_pe_unique_section): Likewise.
6842
6843         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
6844
6845         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
6846
6847         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
6848
6849         * pa/pa.c (output_call): Likewise.
6850
6851         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
6852
6853         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
6854
6855         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
6856         Likewise.
6857
6858         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
6859         Likewise.
6860
6861         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
6862
6863         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
6864         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
6865
6866         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
6867
6868 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6869
6870         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
6871
6872 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6873
6874         * tree.h (lang_identify): Constify a char*.
6875         (print_error_function): Add extern prototype.  Constify a char*.
6876
6877         * c-lang.c (lang_identify): Constify a char*.
6878
6879         * objc/objc-act.c (lang_identify): Constify a char*.
6880
6881 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6882
6883         * genpeep.c (main): Make generated file include "function.h".
6884         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
6885
6886 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6887
6888         * Makefile.in: Update dependencies.
6889         * alias.c: Include "function.h"
6890         * c-decl.c: Likewise.
6891         * caller-save.c: Likewise.
6892         * calls.c: Likewise.
6893         * combine.c: Likewise.
6894         * cse.c: Likewise.
6895         * explow.c: Likewise.
6896         * final.c: Likewise.
6897         * global.c: Likewise.
6898         * graph.c: Likewise.
6899         * local-alloc.c: Likewise.
6900         * loop.c: Likewise.
6901         * optabs.c: Likewise.
6902         * profile.c: Likewise.
6903         * recog.c: Likewise.
6904         * regclass.c: Likewise.
6905         * regmove.c: Likewise.
6906         * reload.c: Likewise.
6907         * reorg.c: Likewise.
6908         * resource.c: Likewise.
6909         * sched.c: Likewise.
6910         * stupid.c: Likewise.
6911         * config/1750a/1750a.c: Likewise.
6912         * config/a29k/a29k.c: Likewise.
6913         * config/arc/arc.c: Likewise.
6914         * config/arm/arm.c: Likewise.
6915         * config/arm/thumb.c: Likewise.
6916         * config/c4x/c4x.c: Likewise.
6917         * config/clipper/clipper.c: Likewise.
6918         * config/convex/convex.c: Likewise.
6919         * config/fx80/fx80.c: Likewise.
6920         * config/i860/i860.c: Likewise.
6921         * config/m68k/m68k.c: Likewise.
6922         * config/m88k/m88k.c: Likewise.
6923         * config/mips/mips.c: Likewise.
6924         * config/pdp11/pdp11.c: Likewise.
6925         * config/pyr/pyr.c: Likewise.
6926         * config/romp/romp.c: Likewise.
6927         * config/sh/sh.c: Likewise.
6928         * config/tahoe/tahoe.c: Likewise.
6929         * config/vax/vax.c: Likewise.
6930         * config/we32k/we32k.c: Likewise.
6931         * config/sparc/sparc.c: Include "function.h".
6932         (mem_min_alignment): Test current_function rather than
6933         regno_pointer_align.
6934         * config/pa/pa.c: Likewise.
6935         (compute_frame_size): Delete declaration of
6936         current_function_outgoing_args_size.
6937         * config/arc/arc.h (current_function_varargs): Delete declaration.
6938         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
6939         declaration.
6940         * config/i370/i370.h (current_function_outgoing_args_size): Delete
6941         declaration.
6942         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
6943         current_function_uses_pic_offset_table.
6944         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
6945         of current_function_returns_pointer.
6946         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6947         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6948         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6949         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6950         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6951         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
6952         * config/m88k/m88k.c: Include "function.h"
6953         (call_used_regs, current_function_pretend_args_size,
6954         current_function_outgoing_args_size, frame_pointer_needed): Delete
6955         declarations.
6956         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
6957         declaration.
6958         * config/mips/mips.h (current_function_calls_alloca): Delete
6959         declaration.
6960         * config/mn10200/mn10200.h (current_function_needs_context,
6961         rtx_equal_function_value_matters): Delete declarations.
6962         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
6963         flag_pic): Delete declarations.
6964         * config/pa/pa.h (current_function_pretend_args_size,
6965         current_function_decl): Delete declarations.
6966         * config/pa/som.h (current_function_varargs): Delete declaration.
6967         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
6968         declaration.
6969         * config/pyr/pyr.h (current_function_pretend_args_size,
6970         current_function_args_size, current_function_calls_alloca): Delete
6971         declarations.
6972         * config/sh/sh.h (current_function_varargs): Delete declaration.
6973         * config/sparc/sparc.h (current_function_outgoing_args_size,
6974         current_function_calls_alloca, current_function_decl): Delete
6975         declarations.
6976         * config/spur/spur.h (current_function_pretend_args_size,
6977         current_function_calls_alloca): Delete declarations.
6978         * config/v850/v850.c (current_function_outgoing_args_size): Delete
6979         declaration.
6980         * config/vax/vms.h (current_function_name): Delete declaration.
6981         * gcse.c: Include "function.h".
6982         (current_function_name, current_function_calls_setjmp): Delete
6983         declarations.
6984         * haifa-sched.c: Include "function.h".
6985         (forced_labels): Delete declaration.
6986         * jump.c: Likewise.
6987         * reg-stack.c: Likewise.
6988         * reload1.c: Likewise.
6989         * genemit.c (main): Make generated file include function.h.
6990         * genoutput.c (output_prologue): Likewise.
6991
6992         * builtins.c (saveregs_value, apply_args_value): Delete variables.
6993         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
6994         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
6995         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
6996         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
6997         macros for some of them.
6998         (emit_filename, emit_lineno): Delete declarations.
6999         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
7000         regno_pointer_* variables through current_function.
7001         (gen_inline_header_rtx): Delete function.
7002         (save_emit_status): Delete function.
7003         (set_new_last_label_num): New function.
7004         (clear_emit_caches): New function.
7005         (restore_emit_status): Just clear last_labelnum and call
7006         clear_emit_caches.
7007         (get_last_insn_anywhere): Variable sequence_stack is now accessed
7008         through macro seq_stack.
7009         (add_insn_after): Likewise.
7010         (add_insn_before): Likewise.
7011         (remove_insn): Likewise.
7012         (pop_topmost_sequence): Likewise.
7013         (in_sequence_p): Likewise.
7014         (start_sequence_for_rtl_expr): Likewise.
7015         (start_sequence): Likewise, and likewise for
7016         sequence_rtl_expr/seq_rtl_expr.
7017         (push_topmost_sequence): Likewise.
7018         (end_sequence): Likewise.
7019         (init_virtual_regs): Now takes a "struct emit_status *" argument.
7020         All callers changed.  Store into that pointer instead of globals.
7021         (init_emit): Allocate emit elt of current_function.
7022         Changes for sequence_rtl_expr/sequence_stack renaming.
7023         Call clear_emit_caches instead of doing it in-line.
7024         Access regno_pointer_* variables through current_function.
7025         (init_emit_once) Don't clear sequence_stack.
7026
7027         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
7028         Delete variables.
7029         (arg_pointer_save_area): Delete declaration.
7030         (finish_expr_for_function): Renamed from init_queue; no longer static.
7031         (init_expr): Don't call init_queue.
7032         (save_expr_status, restore_expr_status): Delete functions.
7033         (expand_expr): Changes to reflect new layout of struct function.
7034         Don't access current_function_check_memory_usage when current_function
7035         is 0.
7036         * expr.h (forced_labels, save_expr_regs, saveregs_value,
7037         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
7038         current_function_outgoing_args_size, current_function_arg_offset_rtx,
7039         current_function_uses_const_pool, function_call_count,
7040         current_function_uses_pic_offset_table, nonlocal_labels,
7041         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
7042         current_function_check_memory_usage, nonlocal_goto_handler_slots,
7043         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
7044         declarations.
7045         (finish_expr_for_function): Declare.
7046         * flags.h (current_function_has_nonlocal_label,
7047         current_function_has_nonlocal_goto, current_function_is_thunk,
7048         current_function_has_computed_jump): Delete declarations.
7049         * flow.c (forced_labels): Delete declaration.
7050         * function.c (current_function_pops_args,
7051         current_function_returns_struct, current_function_returns_pcc_struct,
7052         current_function_needs_context, current_function_calls_setjmp,
7053         current_function_calls_longjmp, current_function_has_nonlocal_label,
7054         current_function_has_nonlocal_goto, current_function_is_thunk,
7055         current_function_has_computed_jump, current_function_calls_alloca,
7056         current_function_contains_functions, current_function_returns_pointer,
7057         current_function_epilogue_delay_list, current_function_args_size,
7058         current_function_pretend_args_size, current_function_arg_offset_rtx,
7059         current_function_outgoing_args_size, current_function_varargs,
7060         current_function_stdarg, current_function_args_info, cleanup_label,
7061         current_function_name, current_function_uses_const_pool,
7062         current_function_instrument_entry_exit, current_function_return_rtx,
7063         current_function_uses_pic_offset_table, nonlocal_labels,
7064         current_function_internal_arg_pointer, current_function_cannot_inline,
7065         current_function_check_memory_usage, function_call_count,
7066         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
7067         nonlocal_goto_stack_level, return_label, save_expr_regs,
7068         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
7069         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
7070         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
7071         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
7072         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
7073         Delete variables.
7074         (push_function_context_to): Don't save them.  Don't call
7075         save_storage_status, save_emit_status or save_expr_status.
7076         (pop_function_context_from): Don't restore them.  Don't call
7077         restore_storage_status or restore_expr_status.
7078         (get_func_frame_size): New function.
7079         (get_frame_size): Use it.
7080         (assign_outer_stack_local): Reflect some member name changes in struct
7081         function.
7082         (put_reg_into_stack): Likewise.
7083         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
7084         seq_rtl_expr.
7085         (fixup_var_refs): Likewise.
7086         (fix_lexical_addr): Likewise.
7087         (trampoline_address): Likewise.
7088         (prepare_function_start): Clear field inlinable of current_function.
7089         (init_function_for_compilation): New function.
7090         (expand_dummy_function_end): New function.
7091         (expand_function_end): Call finish_expr_for_function.
7092         * function.h (struct emit_status): New; fields moved here from struct
7093         function and from global variables.  Add accessor macros for some of
7094         the fields.
7095         (struct expr_status): Likewise.
7096         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
7097         (struct function): Add fields expr and emit, inlinable, inl_emit,
7098         original_arg_vector, original_decl_initial, inl_last_parm_insn,
7099         inl_max_label_num.  Add many comments.
7100         Add accessor macros for all elts of struct function that no longer
7101         have a global variable.
7102         (cleanup_label, return_label, frame_offset, tail_recursion_label,
7103         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
7104         stack_slot_list): Delete declarations.
7105         (get_func_frame_size): Declare.
7106         (save_expr_status, restore_expr_status, save_emit_status,
7107         save_storage_status, restore_storage_status): Delete declarations.
7108         (init_virtual_regs): Declare.
7109         * output.h (current_function_pops_args,
7110         current_function_returns_struct, current_function_returns_pcc_struct,
7111         current_function_needs_context, current_function_calls_setjmp,
7112         current_function_calls_longjmp, current_function_calls_alloca,
7113         current_function_has_nonlocal_label, current_function_varargs,
7114         current_function_has_computed_jump, current_function_returns_pointer,
7115         current_function_contains_functions, current_function_args_size,
7116         current_function_pretend_args_size, current_function_stdarg,
7117         current_function_outgoing_args_size, current_function_args_info,
7118         current_function_name, current_function_return_rtx,
7119         current_function_epilogue_delay_list,
7120         current_function_uses_const_pool, current_function_cannot_inline):
7121         Delete declarations.
7122         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
7123         regno_reg_rtx): Delete declaration.
7124         (REGNO_POINTER_FLAG): Delete macro.
7125         * stmt.c (expand_goto): Changes to reflect that some fields in struct
7126         function were renamed.
7127         * stor-layout.c (save_storage_status, restore_storage_status): Delete
7128         functions.
7129         * toplev.c: Include "function.h".
7130         (current_function_decl): Delete declaration.
7131         (compile_file): Call init_dummy_function_start and
7132         expand_dummy_function_end around some initializations that need to
7133         emit rtl.
7134         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
7135         Call init_function_for_compilation.
7136         * unroll.c: Include "function.h"
7137         (unroll_loop): Access regno_pointer_* variables through
7138         current_function.
7139
7140         * tree.h (struct tree_decl): Add elt f to saved_insns member.
7141         (DECL_SAVED_INSNS): use it.
7142         (expand_dummy_function_end): Declare.
7143         (init_function_for_compilation): Declare.
7144         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
7145         that it's no longer an INLINE_HEADER.
7146         (expand_call): Likewise.
7147         * integrate.c (finish_inline): Delete function.
7148         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
7149         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
7150         args.  Don't generate an INLINE_HEADER rtx, just return the arg
7151         vector.  All callers changed.
7152         (save_for_inline_copying):  Create a duplicate struct emit_status to
7153         hold the emit state for compiling the current function.  Use this and
7154         the other new fields in struct function that are for integration
7155         instead of an INLINE_HEADER.
7156         Use memcpy instead of bcopy.
7157         Store the current struct function in DECL_SAVED_INSNS of fndecl.
7158         (save_for_inline_nocopy): Similar changes, except no new emit_status
7159         is needed here.
7160         (expand_inline_function): Get information from function structure,
7161         not from an inline header rtx.
7162         (output_inline_function): Lose code to extract the necessary
7163         information from an inline header; simply put back the function
7164         structure into current_function.  Clear its inlinable elt.
7165         * rtl.def (INLINE_HEADER): Delete.
7166         * rtl.h: Delete all accessors for an INLINE_HEADER.
7167         (gen_inline_header_rtx): Delete declaration.
7168         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
7169         Delete declarations.
7170         (REGNO_POINTER_ALIGN): Delete.
7171         (clear_emit_caches): Declare.
7172         (set_new_last_label_num): Declare.
7173
7174 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
7175
7176         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
7177
7178         * except.c (expand_eh_region_start_for_decl): Always start a new block.
7179         * stmt.c (is_eh_region): Make sure current_function is present, too.
7180
7181 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
7182
7183         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
7184         for 64bit PA targets.
7185
7186         * pa.h (SELECT_SECTION): Define.
7187         * som.h (SELECT_SECTION): Delete.
7188
7189 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7190
7191         * alias.c (init_alias_analysis): Wrap call to
7192         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
7193
7194 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
7195
7196         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
7197         <sys/asm.h> contains an asm comment with an apostrophe
7198         * fixinc/inclhack.sh:  regen
7199         * fixinc/fixincl.x:  regen
7200
7201 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
7202
7203         * function.c (init_function_start): Clear prologue & epilogue.
7204         (prologue_epilogue_contains): New function.
7205         * alias.c (init_alias_analysis): Use it.
7206         * rtl.h (prologue_epilogue_contains): Declare it.
7207
7208 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
7209
7210         * jump.c (onlyjump_p): New function.
7211         * rtl.h: Declare it.
7212         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
7213         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
7214
7215 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
7216
7217         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
7218         to invert loops.  Simplify block scanning.
7219
7220 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
7221
7222         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
7223         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
7224
7225 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
7226
7227         * config/sparc/liteelf.h: New file to support sparclite-elf target
7228         * config/sparc/t-sp86x: New file to support sparc86x targets
7229         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
7230         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
7231         * configure.in: Support above target triplets
7232         * configure: Regenerated
7233
7234 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
7235
7236         * fixinc/server.c (server_setup): Do not prefix function used as
7237         parameter with `&'.
7238
7239 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
7240
7241         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
7242         Remove fp reg alternatives.
7243
7244 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
7245
7246         * Makefile.in (TAROUTOPTS): Kill.
7247         (install-headers-tar): Use "xpf" for tar headerfile extraction
7248         * i370/x-oe (TAROUTOPTS): Delete.
7249         * m68k/x-apollo68 (TAROUTOPTS): Delete.
7250         * m68k/x-hp320 (TAROUTOPTS): Delete.
7251         * m68k/x-hp320g (TAROUTOPTS): Delete.
7252         * gcc.texi: Update bug reporting text.
7253
7254 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7255
7256         * reg-stack.c (change_stack) Fixed problem with negative array index.
7257
7258 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
7259
7260         * extend.texi, install.texi: Fix spelling mistakes.
7261
7262         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
7263         (s-attrtab); No longer try to use pre-made insn-attrtab file.
7264         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
7265         PREMADE_ATTRTAB_MD.
7266         * mips/t-ecoff: Likewise.
7267         * mips/t-elf: Likewise.
7268         * mips/t-mips: Likewise.
7269         * mips/t-osfrose: Likewise.
7270         * mips/t-r3900: Likewise.
7271         * mips/t-svr3: Likewise.
7272         * mips/t-svr4: Likewise.
7273         * mips/t-ultrix: Likewise.
7274
7275         * gcc.texi: Document recommend means to provide software floating
7276         point libraries in libgcc.a
7277
7278 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
7279
7280         * c-lex.c (yylex): We can have a number with no digits.
7281
7282 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
7283
7284         * jump.c (delete_prior_computation): New function, broken
7285         out of delete_computation.  Check for side effects with
7286         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
7287         multi-word hard registers.
7288         (delete_computation): Use it.  Check for side effects with
7289         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
7290         missing REG_DEAD note for a register which is both set and
7291         used by an insn.
7292
7293 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
7294
7295         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
7296         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
7297         (ASM_FILE_START): Import _mcount with the right type.
7298         (ASM_DECLARE_FUNCTION_NAME): Define.
7299         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
7300         * pa.c (output_function_prologue): Always emit the function's label
7301         here.
7302         * pa.h (TEXT_SPACE_P): Define.
7303         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
7304         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
7305         * som.h (TEXT_SPACE_P): Delete.
7306         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
7307         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
7308
7309 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
7310
7311         * expr.c (emit_group_load): Allow src to be a CONCAT.
7312
7313 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7314
7315         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
7316         (___mulsi3): Use '!' comment character.
7317
7318 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7319
7320         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
7321
7322 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
7323
7324         * gcc.c: Update URLs and mail addresses.
7325         * gcc.texi: Likewise.
7326
7327 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
7328
7329         * rs6000.c (current_file_function_operand): Return zero for
7330         weak functions.
7331         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
7332         weak symbols.
7333         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
7334         for weak symbols.
7335
7336 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
7337
7338         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
7339         allocate space in the stack frame for the PIC register.
7340
7341 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
7342
7343         * m68k.md (xordi3, anddi3): These patterns are not available on
7344         the coldfire.
7345
7346 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
7347
7348         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
7349         (PUT_REAL): Likewise.
7350
7351 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7352
7353         * final.c (shorten_branches): Don't add an alignment for loops
7354         that have no label inside.
7355
7356 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7357
7358         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
7359         prototypes in macro HAVE_cmpstrsi.
7360
7361         * cpplib.c (cpp_get_token): Remove unused label `op3'.
7362
7363         * emit-rtl.c (operand_subword): Remove unused variable
7364         `bits_per_word'.
7365
7366         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
7367
7368         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
7369
7370 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
7371
7372         * cpphash.c (macroexpand): Delete leading whitespace when arg
7373         is concatenated before.
7374         (unsafe_chars): Correct test for whether + and - can extend a
7375         token.
7376
7377         * cppinit.c (cpp_start_read): Do dependencies for
7378         -include/-imacros files also.
7379
7380         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
7381         tokenizing non-directive lines.
7382         (cpp_expand_to_buffer): Temporarily disable no-output mode.
7383         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
7384         the input file.
7385
7386 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
7387
7388         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
7389
7390         * c-lex.c: Sync with C++ frontend.
7391         (linemode): New variable.
7392         (parse_float): imag, conversion_errno, and type are output only.
7393         (yylex): Adjust.  Move initial '.' case into main switch.
7394         Use linemode.
7395         (handle_generic_pragma): Just deal with tokens.
7396         (readescape): Use ISXDIGIT and ISGRAPH.
7397         * c-parse.in: Add END_OF_LINE token.
7398
7399         * c-lex.c (lang_init): Generalize.
7400         (nextchar): Remove.  Replace uses with UNGETC.
7401         (skip_white_space): Handle linemode here.  Optimize for cpplib.
7402         (skip_white_space_on_line): Remove.
7403         (extend_token_buffer_to): New fn.
7404         (extend_token_buffer): Use it.
7405         (read_line_number, check_newline): Just deal with tokens.
7406         (token_getch, token_put_back): New fns.
7407         (yylex): Use them.  More cpplib optimizations.  Simplify.
7408
7409 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
7410                           Jason Merrill  <jason@yorick.cygnus.com>
7411
7412         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
7413         (consume_string): Make this smart about USE_CPPLIB.
7414         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
7415         (yylex): Rewrite to be intelligent about USE_CPPLIB.
7416         Also, clean up cases where we redundantly set token_buffer[0].
7417         (read_line_number): New fn.
7418         (ignore_escape_flag): New variable.
7419
7420 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
7421
7422         * a29k/t-a29kbare: Fix some comments.
7423         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
7424         (FPBIT, DPBIT): Define.
7425         * a29k/t-vx29k: Likewise.
7426         * arc/t-arc: Likewise.
7427         * arm/t-arm-elf: Likewise.
7428         * arm/t-bare: Likewise.
7429         * arm/t-pe: Likewise.
7430         * arm/t-pe-thumb: Likewise.
7431         * arm/t-semi: Likewise.
7432         * arm/t-thumb: Likewise.
7433         * arm/t-thumb-elf: Likewise.
7434         * arm/t-thumb-linux: Likewise.
7435         * h8300/t-h8300: Likewise.
7436         * i960/t-i960: Likewise.
7437         * i960/t-vxworks960: Likewise.
7438         * m32r/t-m32r: Likewise.
7439         * mips/t-ecoff: Likewise.
7440         * mips/t-elf: Likewise.
7441         * mips/t-r3900: Likewise.
7442         * pa/t-pro: Likewise.
7443         * rs6000/t-aix43: Likewise.
7444         * rs6000/t-beos: Likewise.
7445         * rs6000/t-newas: Likewise.
7446         * rs6000/t-ppccomm: Likewise.
7447         * rs6000/t-rs6000: Likewise.
7448         * rs6000/t-winnt: Likewise.
7449         * rs6000/t-xnewas: Likewise.
7450         * rs6000/t-xrs6000: Likewise.
7451         * sh/t-sh: Likewise.
7452         * sparc/t-elf: Likewise.
7453         * sparc/t-sparcbare: Likewise.
7454         * sparc/t-sparclite: Likewise.
7455         * sparc/t-splet: Likewise.
7456         * v850/t-v850: Likewise.
7457         * mn10200/t-mn10200: Fix comments.
7458         * mn10300/t-mn10300: Likewise.
7459
7460         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
7461         dummy operand.  Allocate a new pseudo for the dummy operand.
7462         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
7463
7464         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
7465
7466 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
7467
7468         * configure: Rebuilt.
7469         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
7470
7471 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
7472
7473         * recog.c (preproces_constraints): Zero recog_op_alt before
7474         processing the constraints.
7475
7476         * arm.c (typedef minipool_node): Renamed from pool_node.
7477         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
7478         (add_minipool_constant): New function.
7479         (dump_minipool): New function.
7480         (find_barrier): Remove special case for getting the insn size of
7481         an insn that references the constant pool.
7482         (minipool_fixup): New structure.
7483         (push_minipool_barrier): New function.
7484         (push_minipool_fix): New function.
7485         (note_invalid_constants): New function.
7486         (add_pool_constant, dump_table, fixit, broken_move): Delete.
7487         (arm_reorg): Rewrite code to fix up the constant pool into a
7488         series of mini-pools embedded in the insn stream.
7489         (arm_output_epilogue): New function, made mainly from the body
7490         of output_func_epilogue.
7491         (output_func_epilogue): Move insn generation part of epilogue code
7492         to arm_output_epilogue.
7493         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
7494         * arm.md (pool_range): New attribute.
7495         (zero_extendqidi2): Add attribute pool_range.
7496         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
7497         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
7498         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
7499         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
7500         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
7501         (epilogue): New expand.
7502         (epilogue_insn): New insn.  Call arm_output_epilogue.
7503
7504         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
7505         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
7506
7507 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
7508
7509         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7510
7511 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
7512
7513         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
7514
7515 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
7516
7517         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
7518
7519 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
7520
7521         * global.c: Fix comment.
7522
7523 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
7524
7525         * gcc.c (access_check): New static function.
7526         (find_a_file): Use it when searching a directory list.
7527         * collect2.c (find_a_file): Don't accept directories found when
7528         searching a directory list.
7529
7530 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
7531
7532         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
7533         function parameters with `&'.
7534         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
7535
7536 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
7537
7538         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
7539         or tidy_fallthru_edge if the last insn in the block is not
7540         an unconditional jump or a simple conditional jump.
7541
7542 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7543
7544         * Makefile.in (c-decl.o): Depends on defaults.h.
7545
7546 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
7547
7548         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
7549         PA1.1 and above.
7550         (CLASS_MAX_NREGS): Likewise.
7551
7552 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
7553
7554         * cse.c (cse_insn): Fix dumb thinko in last change.
7555
7556 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7557
7558         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
7559         "const char *".
7560
7561 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
7562
7563         * dwarf2out.c (add_location_or_const_value_attribute): Correct
7564         test for sizes of passed and declared parameter types.
7565
7566 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7567
7568         * fixincludes: Fix the return type of bsearch, char* -> void*.
7569
7570         * fixinc/inclhack.def: Likewise.
7571
7572 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
7573
7574         * invoke.texi (-fdump-translation-unit): New option.
7575
7576 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
7577
7578         * expr.h (PROMOTE_PROTOTYPES): Move ...
7579         * defaults.h: ... to here.
7580         * c-decl.c: Include defaults.h instead of expr.h.
7581         * c-typeck.c: Include defaults.h.
7582
7583 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
7584
7585         * toplev.h (errorcount): Declare.
7586         (warningcount): Likewise.
7587         (sorrycount): Likewise.
7588         * c-lex.c (errorcount): Don't declare.
7589         * dwarf2out.c (errorcount): Don't declare.
7590
7591 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
7592
7593         * config/libgloss.h: Add a note discouraging use with ELF.
7594         * configure.in: Don't use libgloss.h for ELF targets.
7595         Always use_collect2 on a.out targets.
7596
7597 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
7598
7599         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
7600         (force_to_mode, case ASHIFTRT): Add shiftrt label.
7601
7602 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7603
7604         * loop.c (strength_reduce): When doing biv->giv conversion, update
7605         reg note of NEXT->insn.
7606
7607 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
7608
7609         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
7610
7611 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
7612
7613         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
7614         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
7615         Ensure expr.h is included.
7616         * c-typecheck.c (convert_arguments): Ditto.
7617
7618         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
7619
7620         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
7621         * config/convex/convex.h: Ditto.
7622         * config/dsp16xx/dsp16xx.h: Ditto.
7623         * config/fx80/fx80.h: Ditto.
7624         * config/gmicro/gmicro.h: Ditto.
7625         * config/i370/i370.h: Ditto.
7626         * config/i386/i386.h: Ditto.
7627         * config/m32r/m32r.h: Ditto.
7628         * config/m68k/m68k.h: Ditto.
7629         * config/m88k/m88k.h: Ditto.
7630         * config/mips/mips.h: Ditto.
7631         * config/pa/pa.h: Ditto.
7632         * config/pyr/pyr.h: Ditto.
7633         * config/tahoe/tahoe.h: Ditto.
7634         * config/we32k/we32k.h: Ditto.
7635
7636         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
7637         based on arch size.
7638
7639         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
7640
7641         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
7642         from comment.
7643
7644         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
7645
7646 1999-08-02  Richard Henderson  <rth@cygnus.com>
7647
7648         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
7649         for the register spill block.
7650         (m32r_va_arg): New.
7651         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
7652         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
7653
7654         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
7655         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
7656         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
7657
7658 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
7659
7660         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
7661         MAX_WCHAR_TYPE defined in sparc.h.
7662         * config/sparc/linuxaout.h: Likewise.
7663         * config/sparc/linux64.h: Likewise.
7664         Also default to -mvis if CPU is UltraSPARC.
7665
7666 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
7667
7668         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
7669         (RTX_OK_FOR_OLO10): Likewise.
7670         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
7671         %lo(), allow it in addresses...
7672         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
7673         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
7674         does not make sense.
7675         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
7676         (sparc_output_scratch_registers): New function.
7677         (output_function_prologue, sparc_flat_output_function_prologue): Use
7678         it.
7679         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
7680         defined.
7681         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
7682         * configure.in: Add check for .register pseudo-op support in as and
7683         check for offsetable %lo().
7684         * acconfig.h: Add templates for the above checks.
7685         * configure: Regenerate.
7686
7687 1999-08-02  Richard Henderson  <rth@cygnus.com>
7688
7689         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
7690         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
7691         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
7692
7693 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7694
7695         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
7696         reg_biv_class.
7697
7698 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
7699
7700         * config/float-sparc.h: New file.
7701         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
7702         sparc-*-linux-gnu and sparc64-*-linux*.
7703
7704 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7705
7706         * rs6000.c (rs6000_va_list): Type is an array.
7707         (rs6000_va_start): Don't doubly adjust for varargs.
7708         (rs6000_va_arg): Evaluate long long GPR adjustment.
7709
7710 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
7711
7712         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
7713         -maix64 and -maix32.
7714         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
7715         LINK_SPEC): Change appropriately.
7716         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
7717         (u_short_cint_operand): Likewise.
7718         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
7719         for 64-bit hosts.
7720         * rs6000/t-aix43 (MULTILIB): Change to -m64.
7721
7722         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
7723
7724 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
7725
7726         * rs6000/rs6000.c (num_insns_constant_wide): Correct
7727         for type promotion.
7728         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
7729         (non_add_cint_operand): Likewise.
7730         (logical_operand): Likewise.
7731         (non_logical_cint_operand): Likewise.
7732         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
7733         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
7734         (rs6000_select_rtx_section): Suppress warning.
7735         (small_data_operand): Suppress warning.
7736         (rs6000_got_register): Suppress warning.
7737         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
7738         type, so `J' is generally the wrong constraint for a SImode value;
7739         use `L' instead.
7740         (andsi3_internal2): Likewise.
7741         (andsi3_internal3): Likewise.
7742         (iorsi3_internal1): Likewise.
7743         (xorsi3_internal1): Likewise.
7744         (movsi): Likewise.
7745         (movsf_softfloat): Likewise.
7746         (scc insns): Likewise.
7747         (movsi+2): Preserve sign bits of SImode constant.
7748         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
7749         (movdf+1): Sign-extend properly.
7750         (movdi_32+1): Sign-extend properly.
7751         (scc insns): Sign-extend properly.
7752
7753         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
7754         K, L, and T.
7755
7756 1999-08-02  Richard Henderson  <rth@cygnus.com>
7757
7758         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
7759         -mcpu parsing code.
7760         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
7761         * alpha.md (all fp insns): Likewise.
7762
7763 1999-08-02  Nick Clifton  <nickc@cygnus.com>
7764
7765         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
7766         already defined.
7767
7768 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
7769
7770         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
7771         pic_load_label generator directly.
7772         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
7773         No longer a named pattern.
7774
7775 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
7776
7777         * explow.c (force_reg): Call force_operand if X does not
7778         satisfy general_operand.
7779
7780 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
7781
7782         * fix-header.c (main): When testing for CONTINUED, use string
7783         equality, not pointer equality.
7784
7785 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
7786
7787         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
7788
7789 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
7790
7791         * cse.c (cse_insn): Fix loop which deletes insns after a jump
7792         that has become an unconditional jump.
7793
7794         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
7795         (output_function_epilogue): Similarly.
7796
7797 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7798
7799         * tree.h (init_dummy_function_start): Declare.
7800
7801 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7802
7803         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
7804         last_expr_type, last_expr_value, block_start_count, block_stack,
7805         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
7806         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
7807         dynamically in stmt elt of struct function for each function.
7808         (struct nesting): Rename function_call_count elt to n_function_calls,
7809         target_temp_slot_level to block_target_temp_slot_level.  All users
7810         changed.
7811         (struct stmt_status): New structure definition.
7812         Add many accessor macros for stmt_status elements which previously
7813         were global variables.
7814         (init_stmt_for_function): Allocate stmt elt for current_function.
7815         Reflect that block_start_count was renamed to
7816         current_block_start_count.
7817         (save_stmt_status, restore_stmt_status): Delete functions.
7818         (preserve_subexpressions_p): Don't access loop_stack when outside
7819         a function.
7820         (expand_start_bindings): Reflect that block_start_count was renamed to
7821         current_block_start_count.
7822         (expand_fixup): Likewise.
7823         (expand_decl): Don't access block_stack when outside a function.
7824         (expand_decl_cleanup): Likewise.
7825         (expand_dcc_cleanup): Likewise.
7826         (expand_dhc_cleanup): Likewise.
7827         (expand_anon_union_decl): Likewise.
7828         (set_file_and_line_for_stmt): New function.
7829         (in_control_zone_p): New function.
7830
7831         * function.h (struct function): Add new elt stmt.
7832         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
7833         case_stack, nesting_stack, nesting_depth, block_start_count,
7834         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
7835         emit_lineno, goto_fixup_chain.
7836         (save_eh_status, restore_eh_status, save_stmt_status,
7837         restore_stmt_status): Delete declarations.
7838         * function.c (push_function_context_to): Don't call save_stmt_status.
7839         (pop_function_context_to): Don't call restore_stmt_status.
7840         * tree.h (in_control_zone_p): Declare.
7841         * rtl.h (set_file_and_line_for_stmt): Declare.
7842
7843         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
7844         call set_file_and_line_for_stmt.
7845
7846 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
7847
7848         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
7849         Also update copyright.
7850
7851 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7852
7853         * c-pragma.c: Don't include "except.h".
7854         * emit-rtl.c: Likewise.
7855         * stor-layout.c: Likewise.
7856         * tree.c: Likewise.
7857         * varasm.c: Likewise.
7858
7859         * flow.c: Include "function.h".
7860         * tree.h (init_dummy_function_start): Declare new function.
7861
7862         * except.h (struct eh_status): New structure.
7863         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
7864         been included.
7865         (eh_return_stub_label, ehstack, catchstack, ehqueue,
7866         catch_clauses, false_label_stack, caught_return_label_stack,
7867         protect_list, current_function_ehc): Add accessor macros for the
7868         corresponding fields in current_function->eh; delete declarations
7869         for all items that used to be declared here.
7870         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
7871         catch_clauses, false_label_stack, caught_return_label_stack,
7872         protect_list, current_function_ehc): Delete variables.
7873         (init_eh_for_function): Allocate current_function->eh.
7874         (save_eh_status, restore_eh_status): Delete functions.
7875
7876         * function.h (struct function): Add fields next_global and eh.
7877         Delete all exception handling related fields.
7878         * function.c (current_function): New variable.
7879         (all_functions): New variable.
7880         (push_function_context_to): Don't allocate a struct function,
7881         use current_function instead.  Call init_dummy_function_start when
7882         outside a function.  Clear current_function before returning.
7883         (pop_function_context_from): Restore current_function.
7884         Don't free the restored struct function.
7885         (prepare_function_start): New function.
7886         (init_dummy_function_start): New function.
7887         (init_function_start): Break out some code into prepare_function_start
7888         and call it here.
7889
7890         * stmt.c (save_stmt_status): Don't call save_eh_status.
7891         (restore_stmt_status): Don't call restore_eh_status.
7892
7893         * Makefile.in: Update dependencies.
7894
7895 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
7896
7897         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
7898         of depending on a magic constant value.  Update comments.
7899         (hppa_expand_prologue): Similarly.
7900
7901         * pa.md (reload_indi, reload_outdi): Allow any register for the
7902         original reload register.
7903
7904 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
7905
7906         * cccp.c (print_help): Change marcos to macros.
7907
7908 1999-07-30  Richard Henderson  <rth@cygnus.com>
7909
7910         * c-typeck.c (initializer_constant_valid_p): Move ...
7911         * c-common.c (initializer_constant_valid_p): ... here.  Use
7912         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
7913         of label addresses.
7914         * c-common.h (initializer_constant_valid_p): Declare.
7915         * c-tree.h (initializer_constant_valid_p): Remove.
7916
7917 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
7918
7919         * config/i386/sol2-c1.asm: Align the stack.
7920         * config/i386/sol2-gc1.asm: Likewise.
7921
7922 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
7923
7924         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
7925         -Asparclite for sparc86x.
7926         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
7927         sparc86x.
7928         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
7929
7930 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
7931
7932         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
7933         the user if using the non-default arch size in BI_ARCH configuration.
7934         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
7935
7936         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
7937         Fix patterns so that they actually match.
7938         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
7939         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
7940         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
7941         TARGET_HARD_MUL32.
7942         (mulsidi3): Reflect this in the expand.
7943         (smulsi3_highpart): Only on TARGET_ARCH32.
7944         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
7945         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
7946         (umulsidi3): Reflect this in the expand.
7947         (umulsi3_highpart): Only on TARGET_ARCH32.
7948         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
7949         don't require g0 to be zero.
7950         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
7951         ({,u}divsi3): New expands.
7952         ({,u}divsi3_sp64): New patterns.
7953         (after lshrdi3_v8plus): Four new patterns to help combiner
7954         optimizing nested mixed mode shifts.
7955
7956         * config/sparc/sparc.c (sparc_override_options): Use deprecated
7957         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
7958         speed things up. Don't use them by default on plain v9 in 64bit
7959         mode, according to what SPAMv9 sais.
7960
7961         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
7962         top 32 bits of %[og][0-7] in signal handlers.
7963         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
7964
7965 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
7966
7967         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
7968         (ashlsi3): Corresponding changes.
7969
7970         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
7971
7972 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
7973
7974         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
7975
7976 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7977
7978         * arm.h (Hint): Delete macro.
7979         Substitute HOST_WIDE_INT for Hint in some prototypes.
7980         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
7981
7982 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
7983
7984         * builtins.c (expand_builtin_setjmp): Use force_operand to
7985         make sure that the buffer address is in a suitable form to be
7986         passed to force_reg.
7987
7988 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
7989
7990         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
7991         them here.
7992
7993 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
7994
7995         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
7996         proper mode in the condition string.
7997         (icacheflush, dcacheflush): Remove modes from match_operands.
7998
7999         * pa.c (emit_move_sequence): Always convert scratch_reg to the
8000         proper mode before using it.
8001
8002         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
8003         pair.
8004
8005         * pa.c (store_reg): Do not call add_high_const generator directly.
8006         (load_reg, set_reg_plus_d): Likewise.
8007         * pa.md (add_high_const): No longer a named pattern.
8008
8009         * pa.c (legitimize_address): Consistently use Pmode rather than
8010         SImode.  Do not call gen_pic2_highpart directly anymore.
8011         * pa.md (pic2_highpart): No longer a named pattern.
8012         (pic2_lo_sum): Similarly.  Reformat to make more readable.
8013
8014         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
8015         needed.
8016
8017         * README: Update.
8018
8019 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8020
8021         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
8022
8023 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
8024
8025         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
8026         and tag the spill mems.
8027         (hppa_va_start): New.
8028         (hppa_va_arg): New.
8029         * pa.h (EXPAND_BUILTIN_VA_START): New.
8030         (EXPAND_BUILTIN_VA_ARG): New.
8031
8032 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
8033
8034         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
8035         and tag the spill mems.
8036         (mn10300_va_start): New.
8037         (mn10300_va_arg): New.
8038         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
8039         (EXPAND_BUILTIN_VA_ARG): New.
8040
8041 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
8042
8043         * mn10200.c (mn10200_va_arg): New.
8044         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
8045
8046 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
8047
8048         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
8049         rather than play with TREE_INT_CST_LOW.
8050
8051 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
8052
8053         * config/arm/telf.h: Include dbxelf.h.
8054         (CPP_PREDEFINES): Only define if not already defined.
8055         (ASM_IDENTIFY_GCC): Likewise.
8056         (SUBTARGET_EXTRA_SECTIONS): Likewise.
8057         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
8058         * config/arm/thumb.h (LINK_SPEC): Only define if not already
8059         defined.
8060         (DBX_DEBUGGING_INFO): Don't define.
8061         * config/arm/linux-telf.h: New file.
8062         * config/arm/linux-tgas.h: New file.
8063         * config/arm/t-thumb-linux: New file.
8064         * config/arm/uclinux-elf.h: New file.
8065         * config/arm/uclinux-telf.h: New file.
8066         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
8067         thumb-*-uclinux): New targets.
8068         * configure: Regenerate.
8069
8070 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
8071
8072         * pa.md (post_store, pre_load): New expanders.
8073         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
8074         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
8075         need to directly generate RTL for them.
8076         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
8077         changes.
8078
8079 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
8080
8081         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
8082         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
8083         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
8084         (secndary_reload_class): Make TARGET_ELF conditional compile.
8085         (print_operand_address): Similar.
8086         (output_toc): Print all values as hex.
8087         (get_issue_rate): Rearrange and add RS64A and PPC630.
8088         * rs6000.h (processor_type): Add RS64A and PPC630.
8089         (PROCESSOR_POWERPC64): New.
8090         (PROMOTE_MODE): Use word_mode.
8091         (RTX_COSTS): Add RS64A and PPC630.
8092         * rs6000.md (scheduling information): Add lmul and ldiv
8093         representing 64-bit integer multiply and divide.  Add rs64a and
8094         PPC630 information.
8095         (ashldi3): Add support for "rldic" instruction.
8096         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
8097
8098 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
8099
8100         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
8101         instead of V8 for sparclite86x in cpu_table.
8102
8103 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8104
8105         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
8106         output_file_directive.
8107
8108 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
8109
8110         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
8111         tree for op1, not the rtl.
8112
8113 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
8114
8115         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
8116         to m88k_va_start, leaving only the register spill.
8117         (m88k_build_va_list): New.
8118         (m88k_va_start): New.
8119         (m88k_va_arg): New.
8120         * m88k.h (BUILD_VA_LIST_TYPE): New.
8121         (EXPAND_BUILTIN_VA_START): New.
8122         (EXPAND_BUILTIN_VA_ARG): New.
8123
8124 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
8125
8126         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
8127         Rename from expand_builtin_saveregs.
8128         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
8129
8130 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
8131
8132         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
8133         for the register spill block.
8134         (i960_build_va_list): New.
8135         (i960_va_start): New.
8136         (i960_va_arg): New.
8137         * i960.h (BUILD_VA_LIST_TYPE): New.
8138         (EXPAND_BUILTIN_VA_START): New.
8139         (EXPAND_BUILTIN_VA_ARG): New.
8140         * i960.md (store_multiple): Use change_address on individul mems.
8141
8142 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
8143
8144         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
8145         an ARRAY_TYPE.
8146         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
8147         (expand_builtin_va_end): Evaluate arg for side effects.
8148         * c-common.c (c_common_nodes_and_builtins): Construct a
8149         va_list_arg_type_node to handle array decomposition to pointer.
8150
8151 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
8152
8153         * except.c (start_dynamic_cleanup): Use force_operand on the
8154         buffer's address.
8155
8156 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
8157
8158         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
8159         * c4x.c (c4x_va_arg): New.
8160
8161 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
8162
8163         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
8164         has manual_pop set.
8165
8166 1999-07-26  Nathan Sidwell  <nathan@acm.org>
8167
8168         * eh-common.h (__eh_matcher): Prototype correctly.
8169
8170 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
8171
8172         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
8173         (TARGET_SINGLE_PIC_BASE): Likewise.
8174         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
8175         definitions.
8176         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
8177         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
8178         (TARGET_OPTIONS): Add -mpic-register=N.
8179         (OUTPUT_INT_ADDR_CONST): New macro.
8180         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
8181         LEGITIMATE_PIC_OPERAND_P): Likewise.
8182         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
8183         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
8184         output_addr_const directly.
8185         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
8186         ARM port.
8187         (thumb_pic_register, thumb_pic_register_string): Declare.
8188
8189         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
8190         from arm.c.
8191         (label_mentioned_p): New function: Imported from arm.c.
8192         (legitimize_pic_address): New function: Imported from arm.c.
8193         (is_pic):New function: Imported from arm.c.
8194         (thumb_finalize_pic):New function: Imported from arm.c.
8195         (add_constant): Cope with PIC constants.
8196         (fixit): Cope with PIC constants.
8197         (output_return): Do not treat the PIC register as live if
8198         TARGET_SINGLE_PIC_BASE is true.
8199         (thumb_function_prologue): Do not treat the PIC register as live if
8200         TARGET_SINGLE_PIC_BASE is true.
8201         (thumb_expand_prologue): Do not treat the PIC register as live if
8202         TARGET_SINGLE_PIC_BASE is true.
8203         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
8204         TARGET_SINGLE_PIC_BASE is true.
8205         (thumb_print_operand): Accept '|'.
8206         (thumb_override_options): Process PIC options.
8207
8208         * config/arm/thumb.md (movsi): Support PIC.
8209         (call_insn): Change "i" constraint to "X".
8210         (call_value_insn): Likewise.
8211         (consttable_4, consttable_8, consttable_end): Set and clear
8212         "making_const_table" as appropriate.
8213         (pic_load_addr, pic_add_dot_plus_four): New insns.
8214
8215         * invoke.texi (Thumb Options): Fix spelling.  Document new
8216         options -msingle-pic-base and -mpic-register=.
8217
8218 1999-07-26  Andrew Haley  <aph@cygnus.com>
8219
8220         * config/m32r/initfini.c (__init): Use a full word immediate for
8221         __fini: this allows it to be placed in any memory region.
8222
8223         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
8224         -mmodel=medium.  This is OK for all memory models.
8225
8226 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
8227
8228         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
8229         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
8230
8231 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
8232
8233         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
8234         defined.
8235
8236         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
8237
8238 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
8239
8240         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
8241         (BUILD_VA_LIST_TYPE): New.
8242         (EXPAND_BUILTIN_VA_START): New.
8243         (EXPAND_BUILTIN_VA_ARG): New.
8244         * i860.c (output_delayed_branch): Disable.
8245         (output_delay_insn): Likewise.
8246         (i860_saveregs): New.
8247         (i860_build_va_list): New.
8248         (i860_va_start): New.
8249         (i860_va_arg): New.
8250         * i860.md: Disable all peepholes using output_delayed_branch.
8251         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
8252
8253 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
8254
8255         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
8256         (BUILD_VA_LIST_TYPE): New.
8257         (EXPAND_BUILTIN_VA_START): New.
8258         (EXPAND_BUILTIN_VA_ARG): New.
8259         * clipper.c (clipper_builtin_saveregs): Only dump registers.
8260         Return the address of the save area.
8261         (clipper_build_va_list): New.
8262         (clipper_va_start): New.
8263         (clipper_va_arg): New.
8264
8265 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
8266
8267         * arc.h (EXPAND_BUILTIN_VA_START): New.
8268         (EXPAND_BUILTIN_VA_ARG): New.
8269         * arc.c (arc_setup_incoming_varargs): Set alias set of
8270         varargs save area.
8271         (arc_va_start): New.
8272         (arc_va_arg): New.
8273
8274 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
8275
8276         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
8277         (BUILD_VA_LIST_TYPE): New.
8278         (EXPAND_BUILTIN_VA_START): New.
8279         (EXPAND_BUILTIN_VA_ARG): New.
8280         * alpha.c (alpha_builtin_saveregs): Delete.
8281         (alpha_build_va_list): New.
8282         (alpha_va_start): New.
8283         (alpha_va_arg): New.
8284
8285 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
8286
8287         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
8288         column zero.
8289         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
8290         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
8291
8292         * gcc.texi: More changes related to list conversion.
8293         * invoke.texi: Likewise.
8294
8295 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
8296
8297         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
8298         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
8299         (expand_builtin_next_arg): Accept ARGLIST not EXP.
8300         (stabilize_va_list): New function.
8301         (std_expand_builtin_va_start): New function.
8302         (expand_builtin_va_start): New function.
8303         (get_varargs_alias_set): New function.
8304         (std_expand_builtin_va_arg): New function.
8305         (expand_builtin_va_arg): New function.
8306         (expand_builtin_va_end): New function.
8307         (expand_builtin_va_copy): New function.
8308         (expand_builtin): Call them.
8309         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
8310         __builtin_{varargs_start,stdarg_start,end,copy}.
8311         (build_va_arg): New function.
8312         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
8313         (build_va_arg): Declare.
8314         * c-decl.c (ptr_type_node, va_list_type_node): New.
8315         * c-parse.gperf (__builtin_va_arg): New.
8316         * c-parse.in (VA_ARG): New token.
8317         (unary_expr): Recognize it.
8318         * expr.c (expand_expr): Expand VA_ARG_EXPR.
8319         * expr.h (std_expand_builtin_va_start): Declare.
8320         (std_expand_builtin_va_arg): Declare.
8321         (expand_builtin_va_arg): Declare.
8322         (get_varargs_alias_set): Declare.
8323         * tree.def (VA_ARG_EXPR): New.
8324         * tree.h (BUILT_IN_VARARGS_START): New.
8325         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
8326         (ptr_type_node, va_list_type_node): Declare.
8327         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
8328         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
8329         * m88k.h, m88k.c: Likewise.
8330         * mn10300.h, mn10300.c: Likewise.
8331         * pa.h, pa.c: Likewise.
8332         * rs6000.h, rs6000.c: Likewise.
8333         * sh.h, sh.c: Likewise.
8334         * sparc.h, sparc.c: Likewise.
8335
8336         * emit-rtl.c (operand_subword): Copy alias set.
8337         (change_address): Likewise.
8338
8339 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
8340
8341         * pa.c (compute_frame_size): Scan all the used callee saved registers,
8342         not just the first one.
8343
8344 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
8345
8346         * config/arm/arm.h (TARGET_SWITCHES): Add
8347         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
8348         (TARGET_OPTIONS): Add -mpic-register=.
8349         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
8350         (arm_pic_register_string): Declare.
8351         (NEED_PLT_GOT): Delete, replace with ...
8352         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
8353         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
8354         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
8355         * config/arm/arm.c (arm_override_options): Add new option
8356         -mpic-register=N.
8357         (arm_pic_register_string): New variable.
8358         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
8359         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
8360         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
8361         (output_return_instruction): Likewise.
8362         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
8363         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
8364         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
8365
8366         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
8367         mention of -msched-prolog.  Document new options -msingle-pic-base
8368         and -mpic-register=.
8369
8370 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
8371
8372         * haifa-sched.c (reemit_notes): Tidy.
8373         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
8374         haifa's routine.
8375
8376 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
8377
8378         * explow.c (trunc_int_for_mode): New function.
8379         (plus_constant_wide): Use it.
8380         * combine.c (simplify_and_const_int): Likewise.
8381         (merge_outer_ops): Likewise.
8382         (simplify_shift_const): Likewise.
8383         * cse.c (simplify_unary_operation): Likewise.
8384         (simplify_binary_operation): Likewise.
8385         * emit-rtl.c (operand_subword): Likewise.
8386         * rtl.h: Declare it.
8387
8388 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8389
8390         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
8391         (use NUM_REGS instead of NUM_INTS).
8392
8393 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8394
8395         * builtins.c: New file.
8396         * expr.c (saveregs_value, apply_args_value):  Delete definition,
8397         moved into builtins.c.
8398         (string_constant): No longer static.
8399         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
8400         apply_args_size, apply_result_size, result_vector,
8401         expand_builtin_apply_args, expand_builtin_apply,
8402         expand_builtin_return): Delete functions, moved into builtins.c.
8403         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
8404         * expr.h (saveregs_value, apply_args_value): Declare variables.
8405         (expand_builtin, string_constant): Declare functions.
8406         * Makefile.in: Update to build builtin.o.
8407
8408 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
8409
8410         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
8411         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
8412         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
8413         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
8414         false.
8415         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
8416         Define to zero.
8417
8418 1999-07-21  Michael Meissner  <meissner@cygnus.com>
8419
8420         * print-rtl.c (print_rtx): Print the names of the virtual
8421         registers.
8422
8423 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
8424
8425         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
8426         introduced in previous delta.
8427
8428 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8429
8430         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
8431         to avoid name clash.
8432
8433 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8434
8435         * c-lex.c (yylex) : Correct the test for overflow when lexing
8436         integer literals.
8437
8438 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
8439
8440         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
8441         (adjust_priority): Always call ADJUST_PRIORITY.
8442         (schedule_insn): Only put insns into the ready at cost 0.
8443         (schedule_block): Remove redundant initial sort.  Give clock_var
8444         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
8445         is not 0.
8446         * tm.texi (MD_SCHED_REORDER): Update docs.
8447
8448         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
8449         * sparc.c (ultra_reorder_called_this_block): Delete.
8450         (ultrasparc_sched_init): Don't set it.
8451         (ultrasparc_sched_reorder): Don't check it.
8452
8453 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
8454
8455         * rs6000.h (struct rs6000_args): Add sysv_gregno.
8456         * rs6000.c (init_cumulative_args): Init sysv_gregno.
8457         (function_arg_boundary): Align DFmode.
8458         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
8459         to get fp reg and stack overflow correct.
8460         (function_arg): Likewise.
8461         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
8462         (setup_incoming_varargs): Restructure for ABI_V4; use
8463         function_arg_advance to skip final named argument.
8464         (expand_builtin_saveregs): Properly unskip the last integer arg
8465         when doing varargs.  Adjust overflow location calculation.
8466
8467         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
8468         explicitly unsigned.
8469         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
8470         (__VA_GP_REGSAVE): Similarly.
8471         (__va_longlong_p): Delete.
8472         (__va_arg_type_violation): New declaration.
8473         (va_arg): Restructure.  Flag promotion errors.  Align double.
8474         TFmode passed by reference.
8475
8476         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
8477         in the HOST_BITS_PER_WIDE_INT > 32 case.
8478
8479 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
8480
8481         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
8482
8483 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
8484
8485         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
8486         * toplev.c (documented_lang_options): Add -fpreprocessed.
8487         * cpplib.h (struct cpp_buffer): Add preprocessed.
8488         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
8489         (cpp_start_read): Don't expand macros or emit an initial #line
8490         directive if -fpreprocessed.
8491
8492 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
8493
8494         * cpplib.h (struct cpp_buffer): Added manual_pop for
8495         better C++ tokenization.
8496         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
8497         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
8498         * c-common.c (cpp_token): Make non-static.
8499
8500 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8501
8502         * c-common.h: New file.
8503         * c-common.c (permanent_obstack): Delete unused declaration.
8504         (c_global_trees): New array.
8505         (c_common_nodes_and_builtins): New function; split off common code
8506         from init_decl_processing in both c-decl.c and cp/decl.c.
8507         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
8508         c_global_trees and accessor macros defined in c-common.h.
8509         Include c-common.h.
8510         * c-decl.c: Delete definitions for tree nodes that were replaced by
8511         c_global_trees.
8512         (init_decl_processing): Build void_list_node.
8513         Call c_common_nodes_and_builtins; delete code to generate the common
8514         builtins here.
8515         * objc/objc-act.c (build_module_descriptor): Rename variable
8516         void_list_node to avoid clash with c-common.h.
8517
8518         * Makefile.in: Update dependencies.
8519         * objc/Make-lang.in: Likewise.
8520
8521 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
8522
8523         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
8524         (UNIQUE_SECTION_P): Likewise.
8525         (UNIQUE_SECTION): Likewise.
8526
8527 1999-07-19  Linas Vepstas  <linas@linas.org>
8528
8529         * config/i370/README: New file.
8530         * config/i370/linux.h: New file.
8531         * config/i370/mvs.h: New file.
8532         * config/i370/oe.h: New file.
8533         * config/i370/t-linux: New file.
8534         * config/i370/t-mvs: New file.
8535         * config/i370/t-oe: New file.
8536         * config/i370/x-oe: New file.
8537         * config/i370/xm-linux.h: New file.
8538         * config/i370/xm-mvs.h: New file.
8539         * config/i370/xm-oe.h: New file.
8540
8541         * i370.c (label_node_t): Add first_ref_page, label_addr,
8542         label_first_ref, label_last_ref members.
8543         (mvs_need_base_reload): Renamed from mvs_label_emitted.
8544         (MAX_MVS_LABEL_SIZE): Define.
8545         (MAX_LONG_LABEL_SIZE): Define.
8546         (alias_node_t, alias_anchor, alias_number): New.
8547         (mvs_function_table): Reorder for EBCDIC.
8548         (ascebc, ebcasc): Unconditionally define.
8549         (i370_branch_dest, i370_branch_length): New functions.
8550         (i370_short_branch, i370_label_scan): New functions.
8551         (mvs_get_label): Renamed from mvs_add_label.  Search for
8552         an existing label before creating a new one.
8553         (mvs_add_label): New function.
8554         (mvs_get_label_page): New function.
8555         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
8556         over the entire list.
8557         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
8558         (mvs_check_page) [TARGET_ELF_ABI]: New function.
8559         (mvs_add_alias, mvs_need_alias): New functions.
8560         (mvs_get_alias, mvs_check_alias): New functions.
8561         (handle_pragma): New function.
8562         (mvs_function_check): New function.
8563         (unsigned_jump_follows_p): Search harder.
8564         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
8565         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
8566         * i370.h (TARGET_VERSION): Delete.
8567         (CPP_SPEC, CPP_PREDEFINES): Delete.
8568         (mvs_label_emitted): Delete.
8569         (TARGET_EBCDIC): Delete.
8570         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
8571         (HANDLE_PRAGMA): Define.
8572         (HARD_REGNO_NREGS): Handle complex modes.
8573         (HARD_REGNO_MODE_OK): Likewise.
8574         (CLASS_MAX_NREGS): Likewise.
8575         (RET_REG): Likewise.
8576         (EXTRA_CONSTRAINT): Define.
8577         (RETURN_IN_MEMORY): True for DImode.
8578         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
8579         (FUNCTION_PROFILER): Delete.
8580         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
8581         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
8582         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
8583         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
8584         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
8585         (ASM_FILE_START): Add "RMODE ANY".
8586         (ASM_OUTPUT_EXTERNAL): Check for aliases.
8587         (ASM_GLOBALIZE_LABEL): Likewise.
8588         (ASM_OUTPUT_LABELREF): Likewise.
8589         (ASM_OUTPUT_COMMON): Likewise.
8590         (PRINT_OPERAND): Handle 'K', 'W', default.
8591         (PRINT_OPERAND_ADDRESS): New.
8592         (Lots of defines): Add support for TARGET_ELF_ABI.
8593         * i370.md (attr length): New.  Define for all patterns.
8594         (*): Lots of tweeks to assembly output and constraints.
8595
8596 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
8597
8598         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
8599         Disable patterns performing SImode comparisons with SImode values
8600         if TARGET_POWERPC64 and instruction does not sign-extend or does
8601         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
8602         differ for signed quantities.
8603         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
8604         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
8605         (decrement_and_branch_on_count): Add 64-bit variant.
8606
8607 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8608
8609         * final.c (output_asm_insn): When searching for the matching string
8610         for a given dialect, don't run past the end of the list of
8611         alternatives if there are fewer alternatives in the template than
8612         dialects.
8613
8614 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
8615
8616         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
8617         Removed paragraph about compression of files and size limitation,
8618         duplicated in the FAQ.  Use gcc-patches for posting patches.
8619         * gcc.c (main): Updated URL with bug reporting instructions to
8620         gcc.gnu.org.  Removed e-mail address.
8621         * system.h (abort): Likewise.
8622
8623 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8624
8625         * Makefile.in (stmp-multilib-sub): Make the files extracted
8626         from $(LIBGCC1) writable.
8627
8628 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
8629
8630         * config/arm/aout.h: Reformat for improved readability.
8631
8632         * config/arm/arm.h: Reformat for improved readability.
8633         Replace uses of fprintf with asm_fprintf where appropriate.
8634         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
8635         function declaration assembler actions.
8636         (NUM_INTS): New macro: Convert from bytes to words.
8637         (NUM_REGS): New macro: Compute number of registers required to
8638         hold a quanitity of tyep MODE.
8639         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
8640         types.
8641         (NUM_ARG_REGS): New macro: The number of argument registers
8642         available.
8643         (ARG_REGISTER): New macro: Compute the register number of the Nth
8644         argument register.
8645         (LAST_ARG_REGNUM): New macro: The number of the last argument
8646         register.
8647         (SP_REGNUM): New macro: Register number of the stack pointer.
8648         (FP_REGNUM): New macro: Register number of the frame pointer.
8649         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
8650         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
8651         CUMULATIVE_ARGS so that it counts registers not bytes.
8652
8653         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
8654         TARGET_INTERWORK.
8655         Replace uses of fprintf with asm_fprintf where appropriate.
8656         (output_ascii_pseudo_op): Replace with version from thumb.c
8657
8658         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
8659
8660         * config/arm/elf.h (CPP_PREDEFINES): Replace with
8661         SUBTARGET_CPP_SPEC.
8662         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8663         (ASM_FILE_START): Emit ASM_APP_OFF.
8664
8665 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
8666
8667         * pa.c (compute_frame_size): Round frame according to
8668         STACK_BOUNDARY rather than a hardwired value.
8669
8670         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
8671
8672         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
8673         of "1".
8674         * configure: Rebuilt.
8675
8676         * configure.in (hppa*-*-linux*): New configuration.
8677         * configure: Rebuilt.
8678         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
8679         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
8680         * pa/pa-linux.h: New file.
8681         * pa/t-linux: New file.
8682         * pa/xm-linux.h: New file.
8683
8684         * pa.c (hppa_legitimize_address): Change references from SImode to
8685         either Pmode or word_mode as appropriate.
8686         (emit_move_sequence, store_reg, load_reg): Likewise.
8687         (set_reg_plus_d, hppa_expand_prologue): Likewise.
8688         (output_mul_insn): Likewise.
8689         * pa.h (PROMOTE_MODE): Likewise.
8690         (INITIALZE_TRAMPOLINE): Likewise.
8691         (Pmode): Define to word_mode.
8692
8693         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
8694         value of 4.  Allocate 8 bytes for each FP register save.
8695         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
8696         value of 4.
8697         (hppa_expand_prologue): Likewise.
8698         * pa.h (PROMOTE_MODE): Likewise.
8699         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
8700         (FUNCTION_ARG_BOUNDARY): Likewise.
8701
8702         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
8703
8704         * pa.c (out_of_line_prologue_epilogue): Delete.
8705         (override_options): Remove -mspace related code.
8706         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
8707         (compute_frame_size): Only allocate space for register that
8708         actually need to be saved.
8709         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
8710         (TARGET_SWITCHES): Remove -mspace, -mno-space
8711         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
8712         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
8713         * pa/ee.asm, pa/ee_fp.asm: Delete.
8714
8715         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
8716
8717         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
8718         directive in column zero.
8719
8720 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
8721
8722         * m68k.c (output_function_prologue): Fix computation of save mask
8723         when generating PIC code.
8724
8725 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
8726
8727         * tree.c (build_type_attribute_variant): Move current_obstack restore
8728         after build_qualified_type call.
8729
8730 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
8731
8732         * configure.in: Use t-iris6, even with GNU LD.
8733         * config/mips/iris6gld.h: Fix typo in linker spec.
8734         * config/mips/t-iris6gld: Remove.
8735
8736 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
8737
8738         * rs6000.md (insv, extzv): Remove SImode dependence in named
8739         patterns.  Explicitly generate DImode RTL if PowerPC64 and
8740         operand is DImode.
8741         (insvdi): Reverse start and size in instruction template.
8742
8743 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
8744
8745         * invoke.texi: Typo fixes.
8746
8747 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
8748
8749         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
8750         handle at this time instead of silently generating incorrect code.
8751         (gen_imagpart): Likewise.
8752
8753         * reload.c (find_reloads): Emit a USE for a pseudo register without
8754         a hard register if we could not create an optional reload for the
8755         pseudo.
8756
8757 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8758
8759         * c-typeck.c (output_init_element, process_init_element):
8760         When advancing constructor_unfilled_fields for a RECORD_TYPE,
8761         check for nameless bit fields.
8762
8763 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
8764
8765         * regclass.c (scan_one_insn): Notice subregs that change the
8766         size of their operand.
8767         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
8768
8769 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
8770
8771         * configure.in (alpha*-*-*): Include alpha/t-ieee.
8772         * configure: Rebuilt.
8773         * alpha/t-ieee: New file.
8774
8775 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
8776
8777         * rs6000.c (find_addr_reg): Do not select r0 as an address
8778         register.
8779
8780 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
8781
8782         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
8783
8784 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
8785
8786         * rs6000.md (movsf): Do not force easy FP constants into memory.
8787
8788         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
8789         immed_double_const to ensure they are properly truncated then
8790         sign extended.
8791
8792 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
8793
8794         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
8795         always unless NO_DEBUG is used.  Compile this code
8796         unconditionally.
8797         (replace_symbols_in_block): Compile it unconditionally.
8798
8799 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
8800
8801         * configure.in (i?86-*-elf*): New target.
8802         * configure: Rebuilt.
8803         * i386/i386elf.h, i386/t-i386elf: New files.
8804
8805 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
8806
8807         * toplev.c (main): Don't complain about saying -gdwarf.
8808         (rest_of_compilation): Remove redundant code.
8809
8810 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
8811
8812         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
8813
8814 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
8815
8816         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
8817         "Li960R:", to avoid name clash.
8818
8819 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8820
8821         * loop.c (check_dbra_loop): When reversing a loop, delete all
8822         REG_EQUAL notes referencing the reversed biv except those which are
8823         for a giv based on it.
8824
8825 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
8826
8827         * version.c: Drop "gcc-" prefix from version #.
8828
8829 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
8830
8831         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
8832         the label if we're being verbose.
8833
8834 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
8835
8836         * m68k.c (output_function_prologue): Add pic register to mask
8837         if live and flag_pic.
8838         (output_function_epilogue): Likewise.
8839
8840 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
8841
8842         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
8843         directives in column zero.
8844
8845         * pa/elf.h (ASM_FILE_START): Define.
8846         * pa/som.h (ASM_FILE_START): Include .level directives.
8847         * pa/hpux10.h (ASM_FILE_START): Delete.
8848         * pa/hpux11.h (ASM_FILE_START): Delete.
8849
8850         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
8851
8852 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8853
8854         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
8855         when reload_out equals reload_in.
8856
8857 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
8858
8859         * invoke.texi (Spec Files): New node: Describe the contents of
8860         spec files.
8861
8862 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
8863
8864         * invoke.texi (DEC Alpha Options): Put @end table at
8865         beginning of line, to avoid confusing texi2html.
8866
8867 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
8868
8869         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
8870         introduced in previous delta.
8871
8872 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8873
8874         * reload1.c (gen_reload): When synthesizing a 3 operand add
8875         sequence, improve test for when to reload OP1 into the reload
8876         register instead of OP0.
8877
8878 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
8879
8880         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
8881
8882 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
8883
8884         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
8885         string literal.
8886
8887 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
8888
8889         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
8890         (va_dcl): Use __builtin_va_alist_t.
8891
8892 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
8893
8894         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
8895         on the permanent_obstack.
8896         * dwarfout.c (output_type): Likewise.
8897
8898 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8899
8900         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
8901         Merged from c-typeck.c and cp/typeck.c.
8902         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
8903         Merged into c-common.
8904
8905 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
8906
8907         * c-lex.c (errorcount): Declare it.
8908         (finish_parse): Update errorcount when using CPPLIB.
8909
8910 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
8911
8912         * fixinc/inclhack.def(end_else_label): Double the backslash so
8913         sed gets a chance to see it.
8914         * fixinc/inclhack.sh: regen
8915         * fixinc/fixincl.x: regen
8916
8917 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
8918
8919         Add framework to support armv5 architecture when it becomes
8920         available:
8921
8922         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
8923         (arm_arch5): New variable.
8924         (all_architectures): Add armv5 line.
8925         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
8926         -march=armv5 is specified on the command line.
8927         (arm_arch5): Export this variable.
8928         * invoke.texi: Document new string accepted by -march= switch for
8929         ARM ports.
8930
8931         * config/arm/arm.h: Replace use of constant 12 as a register
8932         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
8933         * config/arm/arm.c: Replace use of constant 12 as a register
8934         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
8935
8936         * config/arm/elf.h: Tidy up.
8937         * config/arm/coff.h: Tidy up.
8938
8939 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
8940
8941         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
8942         * gcc/config/mips/t-iris6gld: New file.
8943         * gcc/config/mips/iris6gld.h: Likewise.
8944
8945 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8946
8947         * c-decl.c (widest_integer_literal_type_node,
8948         widest_unsigned_literal_type) : New.
8949         (init_decl_processing): Handle/use the two new types.
8950         * c-common.c (type_for_size,type_for_mode) : Same.
8951         * c-lex.c (yylex) : Same.
8952         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
8953         Same.
8954         * c-tree.h (widest_integer_literal_type_node,
8955         widest_unsigned_literal_type) : New.
8956
8957 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
8958
8959         * dwarfout.c (field_byte_offset): Correctly compute the object's
8960         byte offset for the first bit of a field which crosses an alignment
8961         boundary on a !BYTES_BIG_ENDIAN target.
8962
8963 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
8964
8965         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
8966         ntohs.
8967
8968 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
8969                           Jeff Law <law@cygnus.com>
8970
8971         * ginclude/varargs.h (va_dcl): Use word_mode for type of
8972         __builtin_va_list.
8973
8974         * except.c: Include intl.h.
8975         (expand_eh_return): Set current_function_cannot_inline.
8976         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
8977         * function.h (struct function): Add eh_return_stub_label.
8978         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
8979         * Makefile.in (except.o): Depend on intl.h.
8980
8981 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
8982
8983         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
8984         same as offsettable in cases 1 and 2.
8985
8986 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
8987
8988         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
8989         (extlh, extwh): Likewise.
8990
8991 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8992
8993         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
8994
8995 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
8996
8997         * configure.in: Add arm-pe and thumb-pe targets.
8998         * configure: Regenerate.
8999
9000         * thumb.c (arm_naked_function_p): New function: Determines if
9001         a function is naked (has no gcc generated prologue/epilogue).
9002         (is_called_in_ARM_mode): Return true if the func has the
9003         interfacearm attribute.
9004         (output_return): Do not generate a return for naked functions.
9005         (thumb_function_prologue): Do not generate a prologue for
9006         naked functions.
9007         (thumb_expand_prologue): Do not generate a prologue for naked
9008         functions.
9009         (thumb_expand_epilogue): Do not generate an epilogue for naked
9010         functions.
9011         (arm_valid_machine_decl_attribute): New function, copied from
9012         arm.c:  Permit naked and interfacearm attributes.
9013
9014         * config/arm/pe.c: New file: Support code for arm-pe target.
9015         * config/arm/pe.h: New file: Header file for arm-pe target.
9016         * config/arm/tpe.h: New file: Header file for thumb-pe target.
9017         * config/arm/t-thumb-pe: New file: Makefile fragment for
9018         thumb-pe target.
9019
9020 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
9021
9022         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
9023         -fPIC or -fpic is specified.
9024
9025 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
9026
9027         * expr.c (emit_block_move): Use copy_to_mode_reg for
9028         !TARGET_MEM_FUNCTIONS case too.
9029
9030         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
9031         appropriate.
9032         * configure: Rebuilt.
9033         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
9034         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
9035         definitions made redundant by dbxelf.h inclusion.  Delete
9036         lots of definitions related to assembly output that are
9037         specific to the SOM object format.
9038         * pa.c (output_function_prologue): Do not emit the function's
9039         name for OBJ_ELF.
9040         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
9041         * pa-pro.h: Deleted.
9042         * som.h: New file with SOM specific definitions.
9043         * elf.h: New file with ELF specific definitions.
9044
9045         * elfos.h (const_section): Output a tab before assembler directives.
9046         (ctors_section, dtors_section): Likewise.
9047         (ASM_OUTPUT_SECTION_NAME): Likewise.
9048
9049         * pa/pa1.h: Delete unused file.
9050
9051 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
9052
9053         * configure.in (hppa*-hp-hpux11*): New configuration.
9054         * configure: Rebuilt.
9055         * pa/pa-hpux11.h: New file.
9056         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
9057         command line.
9058
9059         * mips.md (leasi, leadi): New patterns.
9060
9061         * expr.c (emit_block_move): Properly handle case where one of the
9062         block move arguments has a queued increment or decrement.
9063         (clear_storage): Similarly.  Fix formatting goof.
9064
9065 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
9066
9067         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
9068         semicolon from the BSD VA_LIST replacement expression.
9069
9070         * fixinc/inclhack.sh: regen
9071         * fixinc/fixincl.x: regen
9072
9073         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
9074         now use the fixincl program.
9075
9076 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
9077
9078         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
9079         case.  Also make the PIC register call_used.
9080
9081         * m68k.h (FINALIZE_PIC): Delete.
9082         * m68k.c (finalize_pic): Delete.
9083
9084 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
9085
9086         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
9087         to memory.
9088
9089 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
9090
9091         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
9092
9093 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
9094
9095         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
9096
9097 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
9098
9099         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
9100
9101 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
9102
9103         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
9104
9105 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
9106
9107         * rs6000.c (output_toc): Always use hex values for floating-point
9108         constants.  Store single-precision values in upper-half of TOC
9109         entry in 64-bit mode.
9110         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
9111         to final constraints.
9112         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
9113         (fctiwz): Improve accuracy of RTL for pattern.
9114
9115 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
9116
9117         * expr.c (expand_expr): Allow RTL_EXPR's through the
9118         MAX_INTEGER_COMPUTATION_MODE checks.
9119
9120 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
9121
9122         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
9123         such that MASK_SUPPORT_ARCH is not negative.
9124
9125 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
9126
9127         * loop.c (verify_dominator): Properly handle ADDR_VEC and
9128         ADDR_DIFF_VEC insns that appear inside loops.
9129
9130 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
9131                           Jeff Law <law@cygnus.com>
9132
9133         * rs6000.md (movdf_hardfloat32): Revert previous patch.
9134         Handle LO_SUM the same as offsettable in cases 1 and 2.
9135         * rs6000.c (find_addr_reg): Revert previous patch.
9136
9137 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
9138
9139         * system.h (strstr): New external function declaration.
9140         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
9141         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
9142         * config.in, configure: Rebuilt.
9143
9144 1999-06-24  Tom Tromey  <tromey@cygnus.com>
9145
9146         * gcc.c (main): Read user-specified specs files after computing
9147         additional startfile_prefixes.
9148
9149 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
9150
9151         Revert these two patches:
9152
9153         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9154         * loop.c (strength_reduce): When doing biv->giv conversion, update
9155         reg note of NEXT->insn.
9156
9157         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9158         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
9159         reg_biv_class.
9160         (recombine_givs): Set ix field after sorting.
9161
9162 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9163
9164         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
9165         for the parts of an UNSPEC / UNSPEC_VOLATILE.
9166
9167 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
9168
9169         *fixinc/inclhack.def:  Add fix development commentary
9170         (read_ret_type): reactivate and add selection clause
9171         (zzz_*): tweak output file name to match what is used in hackshell.tpl
9172         *fixinc/{fixincl.x|inclhack.sh}: regen
9173
9174 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
9175
9176         * expr.c (expand_expr): STRIP_NOPS before checking against
9177         MAX_INTEGER_COMPUTATION_MODE
9178         (check_max_integer_computation_mode): Likewise.
9179
9180 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
9181
9182         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
9183
9184 1999-06-22  Jim Wilson  <wilson@cygnus.com>
9185
9186         * expr.c (store_expr): When target is a promoted subreg, return a
9187         promoted subreg as a result.
9188
9189 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
9190
9191         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
9192         coding standards.
9193         (dwarf2out_define): Mark unused parameters appropriately.
9194         (gen_unspecified_parameters_die): Ditto.
9195         (gen_subprogram_die): Fix signed/unsigned warnings.
9196         (gen_variable_die): Ditto.
9197
9198 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
9199
9200         * fixinc/inclhack.def(end_else_label): combined else_label
9201         and endif_label and fixed the sed expression.
9202         *fixinc/{fixincl.x|inclhack.sh}: regen
9203
9204 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
9205
9206         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
9207         'x' when handling non-offsettable addresses
9208
9209 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
9210
9211         * final.c (shorten_branches): Don't try to split an insn that has
9212         been deleted.
9213
9214 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
9215
9216         * config/mips/mips.c (symbolic_expression_p): New function.
9217         (mips_select_rtx_section): Put symbolic expressions in the
9218         data section, not the read-only data section.
9219
9220 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
9221
9222         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
9223
9224 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
9225
9226         * collect2.c (main): Log frame table count.
9227         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
9228         (scan_prog_file) [COFF]: Handle frame tables.
9229
9230         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
9231         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
9232         * alpha/elf.h: Undef them again.
9233         * alpha/vms.h: Remove their definitions.
9234
9235 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9236
9237         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
9238         remove the clobber of r0 and change the REG_UNUSED note to
9239         REG_INC.
9240
9241 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
9242
9243         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
9244         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
9245         fits in HOST_WIDE_INT and one uses union to access a long constant
9246         as double.
9247
9248 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
9249
9250         * sparc.c (sparc_override_options): Don't allow profiling for
9251         code models other than medlow.
9252         (sparc_function_profiler): New function from old FUNCTION_PROFILER
9253         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
9254         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
9255         (sparc_block_profiler): Likewise.
9256         (sparc_function_block_profiler_exit): Likewise.
9257         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
9258         (FUNCTION_BLOCK_PROFILER): Likewise.
9259         (BLOCK_PROFILER): Likewise.
9260         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
9261         (MCOUNT_FUNCTION): New.
9262         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
9263         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
9264         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
9265         (MCOUNT_FUNCTION): New.
9266         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
9267         (BLOCK_PROFILER): Delete.
9268         (MCOUNT_FUNCTION): New.
9269
9270 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
9271
9272         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
9273
9274 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
9275
9276         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9277         Add the macros.
9278
9279         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9280         Ditto.
9281
9282         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9283         Ditto.
9284
9285         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
9286         Ditto.
9287
9288 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
9289
9290         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
9291         types.
9292
9293 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
9294
9295         * i386/djgpp.h (LIB_SPEC): New.
9296         (STARTFILE_SPEC): New.
9297
9298         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
9299
9300 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
9301
9302         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
9303         compiler flags.
9304
9305         * system.h (WSTOPSIG): New macro.
9306
9307 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9308
9309         * c-pragma.c (push_alignment): Don't ignore alignments greater than
9310         4 bytes.
9311         (insert_pack_attributes): Take into account member natural
9312         alignment.
9313
9314         * i386/winnt.c (exports_head): New static variable.
9315         (i386_pe_record_exported_symbol): New function.
9316         (i386_pe_asm_file_end): Use.
9317         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
9318         symbols to be emitted at end of assembly.
9319         (ASM_DECLARE_OBJECT_NAME): Likewise.
9320         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9321
9322         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
9323         -iwithprefix.
9324
9325 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
9326
9327         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
9328         in last change.
9329
9330 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
9331
9332         * haifa-sched.c (sched_analyze_1): Use free_list instead of
9333         zapping reg_last_uses directly.
9334         (sched_analyze_2, sched_analyze_insn): Likewise.
9335         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
9336
9337 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
9338
9339         * rs6000.md (movdf_hardfloat32): Use worst case insn length
9340         attributes for cases 1 and 2.
9341
9342 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
9343
9344         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
9345         instead of set.
9346
9347 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
9348
9349         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
9350
9351 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
9352
9353         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
9354         PIC_OFFSET_TABLE_REGNUM for general alloaction.
9355         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
9356         must be stacked if it is used for PIC accesses.
9357         * arm.c (use_return_insn): Handle PIC register specially.
9358         (output_return_instruction): Likewise.
9359         (output_func_{prologue,epilogue}): Likewise.
9360         (output_expand_prologue): Likewise.
9361
9362         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
9363         (*strsi_predec): Renamed from *strqi_predec.
9364         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
9365         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
9366
9367         * arm.c (arm_override_options): Remove warning about PIC code
9368         not being supported.
9369
9370 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
9371
9372         * rs6000.c (find_addr_reg): New function.
9373         * rs6000.h (find_addr_reg): Declare.
9374         (offsettable_addr_operand): Delete.
9375         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
9376         from and stores to GPRs.
9377
9378 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
9379
9380         * alpha.c (alpha_expand_block_move): Use get_insns rather than
9381         gen_sequence as argument to emit_no_conflict_block.
9382
9383 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
9384
9385         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
9386         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
9387         *fixinc/fixincl.x: regen
9388         *fixinc/inclhack.sh: regen
9389
9390 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
9391
9392         * added support for -mpcrel (PC relative addressing for m68k)
9393         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
9394         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
9395         * m68k.c (print_operand_address): Handle 32-bit PIC case.
9396         (comments for general_src_operand): Add some explanation
9397         about EXTRA_CONSTRAINTS.
9398         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
9399         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
9400         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
9401         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
9402         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
9403         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
9404         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
9405         if not already set.
9406         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
9407         * m68k.h (TARGET_PCREL): New target flag.
9408         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
9409         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
9410         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
9411         contains a SYMBOL_REF.  Relax this constraint during reload, since
9412         we want to use the predicates, not reload's built-in concept of a
9413         valid memory address, to control what insns need reloading.
9414         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
9415         operands (essentially 'g', 'm', and 's' under normal circumstances).
9416         * m68k.c (print_operand): Cause printing of pc-relative addresses
9417         to include pc register.
9418         (print_operand_address): Ditto.
9419         (general_src_operand): Accept operands that are not only
9420         general_operands, but are also valid when used as a pc-relative
9421         source.
9422         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
9423         (memory_src_operand): Similar, for memory_operands.
9424         (pcrel_address): New predicate to accept the special case of a
9425         pc-relative address.
9426         * m68k.md (many patterns): Rewrite common SImode, HImode, and
9427         QImode insns to accept *_src_operand instead of *_operand where
9428         pc-relative operands can fit.  For example, a pc-relative operand
9429         can be used as a memory source operand for addsi3, but not as a
9430         memory destination.
9431         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
9432
9433 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
9434
9435         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
9436         .thumb_set pseudo op to mark aliases of thumb functions.
9437
9438 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
9439
9440         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
9441         preference to ASM_OUTPUT_DEF, if it is defined.
9442
9443         * tm.texi: Document new, optional target macro
9444         ASM_OUTPUT_DEF_FROM_DECLS.
9445
9446 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
9447
9448         * fixincludes: ISCNTL patch
9449         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
9450         (dgux_int_varargs): new for DG/UX
9451         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
9452
9453 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
9454
9455         * invoke.texi (ia32 options): Fix typo.
9456
9457 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9458
9459         * loop.c (strength_reduce): When doing biv->giv conversion, update
9460         reg note of NEXT->insn.
9461
9462 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
9463
9464         * loop.c (move_movables): Note issues with replacing REGs with
9465         SUBREGs.
9466         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
9467
9468 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
9469
9470         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
9471
9472         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
9473         the reference to `mcount' was not correct for the ELF on FreeBSD.
9474
9475 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9476
9477         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
9478         reg_biv_class.
9479
9480         (recombine_givs): Set ix field after sorting.
9481
9482 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
9483
9484         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
9485         to safe to extract a subword out of a REG.
9486
9487 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9488
9489         * sh.md (mulsi3): Don't add a no-op move at the end.
9490
9491 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9492
9493         * cse.c (cse_insn): Don't put hard register source into tables for
9494         the last insn of a libcall.
9495
9496 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9497
9498         * loop.c (strength_reduce): Insert sets of derived givs at every
9499         biv increment, even if it's the only one.
9500
9501 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
9502
9503         * dwarfout.c (add_incomplete_type): New fn.
9504         (output_type): Call it.
9505         (retry_incomplete_types): New fn.
9506         (dwarfout_finish): Call it.
9507
9508         From Eric Raskin <ehr@listworks.com>:
9509         (output_type): Output types for bases.
9510
9511 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
9512
9513         * mips.c (mips_output_conditional_branch): Add `break'
9514         between `default' label and `close braces'.
9515
9516 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
9517
9518         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
9519         specifications and make it realistic.
9520         (LIB_SPEC): Likewise.
9521
9522 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
9523
9524         * config/mips/mips.c (mips_secondary_reload_class): Check for
9525         (PLUS (SP) (REG)) and return appropriate register class.
9526         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
9527         Handle (PLUS (SP) (REG)).
9528         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
9529         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
9530         of emit_insn for tablejump.
9531
9532 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
9533
9534         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
9535         asm_fprintf format string by itself.
9536         (output_function_profiler): Likewise.
9537
9538 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
9539
9540         * combine.c (simplify_logical, case AND): Only call
9541         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
9542         or the constant is positive.
9543
9544 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
9545
9546         * configure.in: Fix typo in rs6000-ibm-aix4 case.
9547         * configure: Regenerate.
9548
9549 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
9550
9551         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
9552         require a sub-version #.
9553         * configure: Rebuilt.
9554
9555 1999-06-14  Robert Lipe  (robertlipe@usa.net)
9556
9557         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
9558
9559 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
9560
9561         * c-typeck.c (process_init_element): Detect excess elements in
9562         char array initializer.
9563
9564 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
9565
9566         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
9567
9568 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
9569
9570         * invoke.texi (Option Summary): Add -fpermissive flag.
9571
9572 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
9573
9574         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
9575         that require PIC code sequences.
9576
9577 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
9578
9579         * configure.in: Add new target: thumb-elf.
9580         * configure: Regenerate.
9581         * config/arm/t-thumb-elf: New file: Makefile fragment for
9582         thumb-elf build.
9583         * config/arm/telf.h: New file: Header file for thumb-elf
9584         build.
9585
9586 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
9587
9588         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
9589         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
9590         initializers is some circumstances.
9591
9592         * fixinc/inclhack.def (endif_label): Add additional selector for
9593         more bogus stuff after #endif statements.
9594         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
9595
9596 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9597
9598         * i386/cygwin.h (SET_ASM_OP): Define.
9599
9600 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9601
9602         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
9603
9604 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9605
9606         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
9607         latter.
9608
9609         * sh.md (ic_invalidate_line_i): Remove second alternative.
9610
9611 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
9612
9613         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
9614         test for the presence of valid prototypes.  Delete bypass expr.
9615         (ioctl_fix_ctrl): Correct the selection expression.
9616         (no_double_slash): Correct quoting rules
9617         *fixinc/fixincl.x: regen
9618         *fixinc/inclhack.sh: regen
9619
9620 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
9621
9622         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
9623
9624 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9625
9626         * rs6000.md (movsi_got_internal_mem): Delete.
9627         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
9628         (GOT_TOC_REGNUM): Delete.
9629         (PIC_OFFSET_TABLE_REGNUM): Define.
9630         (FINALIZE_PIC): Disable.
9631         * rs6000.c (rs6000_got_register): New code for fixed pic register.
9632         (rs6000_replace_regno): Delete.
9633         (rs6000_finalize_pic): Likewise.
9634         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
9635
9636 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9637
9638         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
9639         is a note; use <= for the compare; advance P while it is
9640         a NOTE.
9641
9642 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
9643
9644         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
9645         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
9646
9647         * varasm.c (remove_from_pending_weak_list): Verify t->name
9648         is non-NULL before passing it to strcmp.
9649
9650 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
9651
9652         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
9653         the typed arguments are not part of a comment
9654         (ioctl_fix_ctrl): Added a purpose comment
9655         *fixinc/fixincl.x: regenerate
9656         *fixinc/inclhack.sh: regenerate
9657
9658 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9659
9660         * invoke.texi: Add C4x invocation docs.
9661
9662 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9663
9664         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
9665         Define new macros.
9666         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
9667         TARGET_EXPOSE_LDP.
9668         (c4x_legitimize_reload_address): New function.
9669         * config/c4x/c4x.md: Update docs.
9670
9671 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
9672
9673         * fixincludes: Avoid removing '.'.
9674         * fixinc/fixinc.svr4: Likewise.
9675         * fixinc/fixinc.winnt: Likewise.
9676         * fixinc/inclhack.tpl: Likewise.
9677         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
9678
9679 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9680
9681         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
9682         pattern.
9683         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
9684
9685 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
9686
9687         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
9688         correctly.
9689
9690 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
9691
9692         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
9693         * configure: Regenerate.
9694
9695 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
9696
9697         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
9698         values.
9699
9700 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
9701
9702         * fixinc/inclhack.def (avoid_bool): Also catch
9703         "typedef [unsigned] int bool".
9704         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
9705
9706         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
9707         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
9708         * configure: Rebuilt.
9709
9710 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
9711
9712         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
9713         such that we can override its definitions if necessary.
9714         (CPP_SPEC): New define.  Support processor specific predefines via
9715         %(cpp_cpu).
9716         (CC1_SPEC): New define.  Support processor specific compiler
9717         options via %(cc1_cpu).
9718         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
9719         -static.
9720
9721 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9722
9723         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
9724         between sed's -e flag, and the open-quote following it.
9725         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
9726
9727 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
9728                           Jeffrey A Law  (law@cygnus.com)
9729
9730         * varasm.c (assemble_start_function): Remove the function
9731         from the pending weak decls list when we define a function.
9732         (assemble_variable): Similarly for variables.
9733         (weak_finish): Ignore items on the list with a NULL name.
9734         (remove_from_ending_weak_list); New function to "remove" an item
9735         from the pending weak declarations list.
9736
9737 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
9738
9739         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
9740
9741 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
9742
9743         * c-lex.c (GETC): Redefine to call getch.
9744         (UNGETC): Redefine to call put_back.
9745         (putback_buffer): New structure type.
9746         (putback): New static structure.
9747         (getch): New function.
9748         (put_back): New function.
9749         (yylex): Replace unused bytes from bad multibyte character.
9750
9751 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
9752
9753         * cpplib.c (do_define): Cast `alloca' return value.
9754         (do_include, do_undef, do_pragma): Likewise.
9755         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
9756         values.
9757         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
9758         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
9759
9760 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
9761
9762         * sparc.md (abstf2): This should be an expand.
9763         (split after abstf2_notv9): Fix mode.
9764         (abstf2_hq_v9): New pattern.
9765         (abstf2_v9): Only use when no hard quad.
9766         (absdf2_v9): Fix if target is not the same as source.
9767         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
9768         Add correct output constraints.
9769
9770 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
9771
9772         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
9773         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
9774
9775 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
9776
9777         * mips.h (mips_output_conditional_branch): New function.
9778         (mips_adjust_insn_length): Likewise.
9779         (ASSEMBLER_SCRATCH_REGNUM): New macro.
9780         (ADJUST_INSN_LENGTH): Likewise.
9781         * mips.c (print_operand): Add `F' and `W' for floating-point
9782         comparison opcodes.
9783         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
9784         are now in bytes.
9785         (mips_adjust_insn_length): New function.
9786         (mips_output_conditional_branch): New function.
9787         * mips.md (length): Adjust attribute definition to handle
9788         conditional branches.   Change lengths to bytes, rather than
9789         instructions throughout.  Remove length attribute from
9790         instructions whose length is four bytes, and rely on the default
9791         instead.
9792         (dslot): Fix typo in comment.
9793         Reword conditional branch patterns to use
9794         mips_output_conditional_branch.
9795
9796 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9797
9798         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
9799         (LIB_SPEC): Likewise.
9800         Link with -lprof1_r for -g/-pg.
9801
9802 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9803
9804         * loop.c (check_dbra_loop): Fix change of Jan 19.
9805
9806 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
9807
9808         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
9809         (STARTFILE_SPEC):  Define, override the svr4.h version.
9810         (ENDFILE_SPEC):  Likewise.
9811
9812 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
9813
9814         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
9815         * fixinc/fixincl.x: Regenerated.
9816         * fixinc/inclhack.sh: Regenerated.
9817
9818 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9819
9820         * sh.c (barrier_align): Don't return early for normal branch/barrier
9821         when optimizing for SH2.
9822
9823 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
9824
9825         * i386/udk.h (LINK_SPEC): Correct linker search path for
9826         system libraries.
9827
9828 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9829
9830         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
9831         (braf_label_ref_operand): Delete.
9832         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
9833         * sh.md (casesi_jump_2): Operand1 is now the inside of a
9834         label_ref, and has no predicate.
9835         The patten has a predicate to guard against invalid substitutions.
9836         (dummy_jump): Delete.
9837         (casesi): Update use of casesi_jump_2.
9838
9839 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
9840
9841         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
9842         *fixinc/fixincl.x: regenerate
9843         *fixinc/inclhack.sh: regenerate
9844
9845 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
9846
9847         * dwarf2out.c (add_incomplete_type): New fn.
9848         (gen_struct_or_union_type_die): Call it.
9849         (retry_incomplete_types): New fn.
9850         (dwarf2out_finish): Call it.
9851
9852 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
9853
9854         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
9855         current block starts with a CODE_LABEL and ends with a CALL and
9856         we can not find all the argument setup instructions for the CALL.
9857
9858 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
9859
9860         Revert this change:
9861         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
9862         something is a candidate for optimize_bit_field_compare.
9863
9864 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9865
9866         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
9867
9868 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
9869
9870         * alpha.c (override_options): Thinko in last patch.
9871
9872         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
9873         (LIB_SPEC): Recognize -pthread.
9874
9875 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
9876
9877         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
9878         definition in config/arm/coff.h
9879         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
9880
9881 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
9882
9883         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
9884         fixes that need "file=xxx\n" prepended before invocation
9885         (start_fixer - new): starting the fixer process is complex enough
9886         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
9887         (process): uses the new routine; omit usage of putenv()
9888         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
9889         * fixinc/fixincl.x: regenerate
9890
9891 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
9892
9893         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
9894         and version #s (1.1 -> 2.96) as needed.
9895         * README.g77: Kill way out of date file in the toplevel directory.
9896
9897 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
9898
9899         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
9900         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
9901         * configure: Rebuilt.
9902         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
9903         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
9904         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
9905         (SWITCH_TAKES_ARG): Likewise.
9906         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
9907         * config/t-freebsd: Moved from config/i386/ so it can used for all
9908         FreeBSD targets.
9909
9910 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
9911
9912         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
9913
9914 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
9915
9916         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
9917         * configure: Rebuilt.
9918
9919 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
9920
9921         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
9922         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
9923         * rs6000/rs6000.c (rs6000_file_start): Use putc.
9924         (rs6000_output_load_toc_table): Same.
9925         (output_prolog, output_mi_thunk): Same.
9926         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
9927         (ASM_GLOBALIZE_LABEL): Use putc.
9928
9929 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
9930
9931         * alpha.md (reload_*_help): New patterns and splitters.
9932         (reload_*): Use them.
9933         (mov[qh]i): Likewise.
9934
9935 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
9936
9937         * cccp.c (handle_directive): Handle backslash-newlines in quoted
9938         strings correctly.
9939
9940 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
9941
9942         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
9943
9944 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
9945
9946         * flow.c (mark_regs_live_at_end, insn_dead_p,
9947         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
9948         and HARD_FRAME_POINTER_REGNUM special treatment if reload
9949         hasn't run or the frame pointer is needed.
9950         * haifa-sched.c (attach_deaths): Likewise.
9951         * sched.c (attach_deaths): Likewise.
9952
9953 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
9954
9955         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
9956         calculate_can_reach_end returns nonzero.
9957
9958         * configure.in (native gas tests): Search for an assembler in the
9959         same manner that the installed compiler will.
9960         * configure: Rebuilt.
9961         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
9962
9963         * alias.c (find_base_term): Improve handling of addresses
9964         constructed from binary operations.
9965
9966 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
9967
9968         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
9969
9970 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
9971
9972         * function.h (cleanup_label, frame_offset): Declare.
9973         (tail_recursion_label, tail_recursion_reentry): Likewise.
9974         (arg_pointer_save_area, rtl_expr_chain): Likewise.
9975         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
9976         (tail_recursion_label, tail_recursion_reentry): Likewise.
9977         (arg_pointer_save_area, rtl_expr_chain): Likewise.
9978
9979 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
9980
9981         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
9982         defined.
9983         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
9984         (MAX_OFILE_ALIGNMENT): Define.
9985
9986 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
9987
9988         * fixincl.c: Replace local include scheme with #includes of
9989         gansidecl.h and system.h.
9990         * procopen.c:  Likewise.
9991         * server.c:  Likewise.
9992
9993 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
9994
9995         * i386/t-dgux (EXTRA_PARTS): Add crti.o
9996         (crti.o): Add build rule and dependencies.
9997         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
9998
9999 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10000
10001         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
10002         (LIB_LINUX_SPEC): Likewise.
10003         (LIB_LINUX_SPEC): Add support for -pthread
10004         (CPP_OS_LINUX_SPEC): Likewise.
10005         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
10006         specified.
10007
10008 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
10009
10010         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
10011         conditional move.
10012         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
10013         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
10014         for IEEE math and CC_FCOMI.
10015         (put_jump_code): No IEEE if CC_FCOMI is set.
10016
10017 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10018
10019         * fold-const.c (fold_truthop): Make the field reference unsigned
10020         when converting a single bit compare.
10021
10022 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10023
10024         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
10025
10026 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
10027
10028         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
10029         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
10030         version did.
10031
10032         * reload.c (push_reload): Do not call remove_address_replacements
10033         when presented with identical optional reloads.
10034
10035 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
10036
10037         * alpha.h (MASK_FIX, TARGET_FIX): New.
10038         (MASK_*): Reorganize constants.
10039         (CPP_AM_FIX_SPEC): New.
10040         (TARGET_SWITCHES): Add FIX.
10041         (EXTRA_SPECS): Likewise.
10042         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
10043         (SECONDARY_MEMORY_NEEDED): Likewise.
10044         (REGISTER_MOVE_COST): Likewise.
10045         * alpha.c (override_options): Add FIX support.  Always use
10046         ALPHA_TP_PROG for ev6.
10047         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
10048         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
10049         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
10050
10051 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
10052
10053         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
10054         something is a candidate for optimize_bit_field_compare.
10055
10056 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
10057
10058         * gcc.texi (Passes): Document branch-shortening.
10059         * invoke.texi (Debugging Options): Document the fact that `-dp'
10060         outputs length information for instructions.
10061
10062 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
10063
10064         * flow.c: Revert previous delta.
10065
10066 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
10067
10068         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
10069         FRAME_POINTER_REGNUM.
10070         (mark_set_1): Ditto.
10071         (mark_used_regs): Ditto.
10072
10073 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
10074
10075         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
10076         (GOT_PCREL): New macro.  Define to 1 if not already defined.
10077         * arm/elf.h (GOT_PCREL): Define to 0.
10078         * arm.c (arm_finalize_pic): Take into account the setting of
10079         GOT_PCREL.
10080
10081 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
10082
10083         * output.h (STRIP_NAME_ENCODING): Provide default definition.
10084         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
10085
10086         * flow.c (mark_set_1): Do not record BLKmode stores as dead
10087         store elimination candidates.
10088
10089 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10090
10091         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
10092         TARGET_GAS.
10093
10094 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
10095
10096         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
10097         Add use of x-aix41-gld.
10098
10099 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
10100
10101         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
10102         (ASM_OUTPUT_DESTRUCTOR): Define.
10103
10104 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
10105
10106         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
10107         last CODE_LABEL in a loop if we have previously passed a jump
10108         to the top of the loop.
10109
10110 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
10111
10112         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
10113         applying Philip's patch.
10114
10115 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
10116
10117         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
10118         are not VAR_DECLs.
10119
10120 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
10121
10122         * loop.c (strength_reduce): Grow reg_single_usage as needed.
10123
10124 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
10125
10126         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
10127         Also remove a useless comment.
10128
10129 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
10130
10131         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
10132
10133 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
10134
10135         * collect2.c (main): Only generate import or export file and add
10136         to link arguments if non-empty.  Use xmalloc not alloca.
10137         (write_{export,import}_file): Delete.
10138         (write_aix_file): New function.
10139         (locatelib): Use xmalloc not malloc.
10140         (GCC_OK_SYMBOL): Do not check type if aix64.
10141
10142 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
10143
10144         Based on patch by Scott Bambrough and Pat Beirne:
10145         * config/arm/arm.c (making_const_table): New variable.
10146         * config/arm/arm.h (making_const_table): Declare.
10147         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
10148         appropriate.
10149         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
10150         Keep track of when we are building the constant table.
10151
10152 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
10153
10154         * config/arm/arm.c (arm_override_options): Fix erroneous warning
10155         message.
10156
10157 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
10158
10159         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
10160         defined.
10161
10162 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
10163
10164         * tm.texi (FUNCTION_ARG): Correct description of a stack element
10165         in a PARALLEL.
10166
10167 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
10168
10169         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
10170
10171 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10172
10173         * rs6000.c (output_mi_thunk): Enable full support again.
10174
10175 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10176
10177         * sh.h (BRANCH_COST): Define.
10178
10179 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
10180
10181         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
10182
10183 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
10184
10185         * function.c (assign_stack_local): Align stack slot propertly.
10186         (assign_outer_stack_local): Likewise.
10187
10188 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
10189
10190         * expr.h (lang_expand_constant): Declare.
10191         * toplev.c (lang_expand_constant): Define it.
10192         * varasm.c (output_constant): Use it.
10193
10194 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10195
10196         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
10197         Change function definitions to K&R style.
10198
10199 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
10200
10201         * fixinc/fixincl.c: We must not ignore SIGCLD now.
10202
10203 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
10204
10205         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
10206         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
10207         (several places): omit static initialization
10208         (process): use single fd, since only the read fd is used
10209         * fixinc/gnu-regex.c: define 'const' away, if not supported
10210         * fixinc/procopen.c(several places): omit static initialization
10211         * fixinc/server.c: define 'volitile' away, if not supported
10212
10213 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
10214
10215         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
10216         asm_fprintf and %L to generate the label name.
10217         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
10218         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
10219
10220 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
10221
10222         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
10223         insn for a conditional jump can not be found.
10224
10225 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
10226
10227         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
10228         on variables in specific sections other than .sbss and .sdata.
10229
10230 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
10231
10232         * stmt.c (expand_return): Call start_cleanup_deferral and
10233         end_cleanup_deferral around conditional code.
10234
10235 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
10236
10237         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
10238         filename lists.  Utilizes new "krstr" AutoGen function.
10239         * fixinc/fixincl.x: Rebuilt.
10240
10241 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
10242
10243         * i386.c (output_float_compare): Avoid GNU-C extensions.
10244
10245 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
10246
10247         * version.c: Bump to distinguish mainline tree from the
10248         gcc-2.95 branch.
10249
10250 See ChangeLog.1 for earlier changes.
10251
10252 Local Variables:
10253 add-log-time-format: current-time-string
10254 End: