OSDN Git Service

9b9dd6ea123d76661df04a3fb260da2d55337e74
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
2                           Michael Meissner  <meissner@cygnus.com>
3
4         * md.texi (Simple Constraints): Add item about whitespace.
5         * genoutput.c (strip_whitespace): New.
6         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
7         strip_whitespace for constraints.
8         Test pointer using NULL, not 0.
9
10 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11
12         * cpplib.c (do_line): Pedwarn for #line > 32767.
13
14         * c-lex.c (readescape): Warn about '\x', but do not reject it.
15
16 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
17
18         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
19         to default cpp spec.
20         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
21         * cpp.texi: Document __GNUC_PATCHLEVEL__.
22         * cpp.1: Likewise.
23
24         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
25         default spec.
26
27 2000-02-15  Denis Chertykov  <denisc@overta.ru>
28
29         * configure.in: Add support for avr target.
30
31 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
32
33         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
34         (sh_addr_diff_vec_mode): Don't declare.
35         * sh.c (sh_addr_diff_vec_mode): Delete.
36
37 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
38
39         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
40
41 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
42
43         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
44         (smulsi3_highpart_i): Name.
45         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
46         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
47         (smulsi3_highpart, umulsi3_highpart): Likewise.
48
49         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
50         correctly independent of endianness.
51         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
52         confuse the optimizers.
53         (mulsidi3+1, umulsidi3+1): New define_split.
54
55 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
56
57         * config/sh/sh.md: Guard insn splits against illegal registers.
58         * config/sh/sh.h: Correct comment about macros.
59
60 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
61                           Andrew MacLeod  <amacleod@cygnus.com>
62
63         * Makefile.in (lcm.o): Depend on insn-attr.h.
64         * basic-block.h (optimize_mode_switching): Declare.
65         * lcm.c (tm_p.h, insn-attr.h): #include.
66         (seginfo, bb_info): New structs.
67         (antic, transp, comp, delete, insert) : New file-scope static variables.
68         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
69         (reg_becomes_live, optimize_mode_switching): Likewise.
70         * tm.texi: Add description of mode switching macros.
71         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
72
73         * sh-protos.h (remove_dead_before_cse): Remove prototype.
74         (fldi_ok, fpscr_set_from_mem): New prototypes.
75         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
76         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
77         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
78         (sh_flag_remove_dead_before_cse): Remove declaration.
79         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
80         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
81         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
82         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
83         (barrier_align): Allow for JUMP_INSNS containing a parallel.
84         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
85         (fldi_ok): New function.
86         (get_fpscr_rtx): Add fpscr_rtx as GC root.
87         (emit_sf_insn): Only generate fpu switches when optimize < 1.
88         (emit_df_insn): Likewise.
89         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
90         (sh_flag_remove_dead_before_cse): Delete.
91         (get_free_reg, fpscr_set_from_mem): New functions.
92         * sh.md (movdf, movsf): Remove no_new_pseudos code.
93         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
94
95 2000-02-15  Loren Rittle  <ljrittle@acm.org>
96
97         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
98
99 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
100
101         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
102         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
103
104         * cccp.c: Include version.h and/or don't declare `version_string'.
105         * collect2.c: Likewise.
106         * alpha.c: Likewise.
107         * arm/aof.h: Likewise.
108         * arm/coff.h: Likewise.
109         * arm/elf.h: Likewise.
110         * arm/pe.h: Likewise.
111         * arm/tcoff.h: Likewise.
112         * arm/telf.h: Likewise.
113         * arm/tpe.h: Likewise.
114         * arm/vxarm.h: Likewise.
115         * convex/convex.c: Likewise.
116         * i386/dgux.c: Likewise.
117         * i386/sun386.h: Likewise.
118         * m88k/m88k.c: Likewise.
119         * mcore/mcore-pe.h: Likewise.
120         * mips/mips.h: Likewise.
121         * romp/romp.h: Likewise.
122         * sh/sh.c: Likewise.
123         * cpphash.c: Likewise.
124         * cppinit.c: Likewise.
125         * dwarf2out.c: Likewise.
126         * dwarfout.c: Likewise.
127         * gcc.c: Likewise.
128         * gcc.h: Likewise.
129         * mips-tfile.c: Likewise.
130         * protoize.c: Likewise.
131         * toplev.c: Likewise.
132         * tree.h: Likewise.
133         
134         * version.c (version_string): Constify a char*.
135
136         * version.h: New file.
137
138 2000-02-14  Nick Clifton  <nickc@cygnus.com>
139
140         * configure.in: Add mcore-elf and mcore-pe targets.
141         * configure: Regenerate.
142
143         * NEWS: Add note that MCore port has been contributed.
144
145         * invoke.texi: Document command line switches for MCore port.
146         * install.texi: Add MCore to list of supported targets.
147
148 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
149
150         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
151         then we will need to import the frame handling functions.
152         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
153         to import the frames themselves.
154
155 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
156                           Jason Eckhardt  <jle@cygnus.com>
157
158         * basic_block.h: Added prototype for reorder_basic_blocks.
159         * toplev.c: Changes to add -freorder-blocks and graph dump after
160         block reordering is done.
161         * flow.c (reorder_block_def): New structure for use during block
162         reordering.
163         (REORDER_BLOCK_*): New macros to access members of above structure.
164         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
165         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
166         functions for block reordering.
167
168 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
169
170         * gcc.texi (Passes): Fix typo.
171         * md.texi (Standard Names): Ditto.
172         * tm.texi (Storage Layout): Ditto.
173
174 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
175
176         * cpplib.c (do_define): Only free the old definition if it
177         actually had one.
178
179 2000-02-13   Neil Booth  <NeilB@earthling.net>
180
181         * cppfiles.c (read_and_prescan): When emitting deferred
182         newlines, test speccase[] again instead of checking each
183         possible whitespace character in turn.  When we encounter \r,
184         look behind for \n first, then ahead.
185
186 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
187
188         * cse.c (cse_altered): New internal flag.
189         (cse_insn): Set it if we changed an insn.
190         (cse_main): Clear cse_altered before each basic block.
191         Only garbage collect if cse_altered is true afterward.
192
193 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
194
195         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
196
197 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
198
199         * combine.c (simplify_comparison): Fix typo.
200
201 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
202
203         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
204         consistently.
205
206 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
207
208         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
209         previously inserted node instead of root node.  Caller changed.
210
211 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
212
213         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
214
215 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
216
217         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
218         __dereg_frame_dtor): Add prototype argument.
219
220         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
221
222         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
223
224         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
225
226         * gthr-vxworks.h (__gthread_once): Likewise.
227
228         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
229
230 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
231
232         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
233         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
234         stack pointer in functions w/o saved registers, output LEAVE more often
235         on TARGET_USE_LEAVE machines.
236
237 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
238
239         * config/arm/arm.c (arm_init_cumulative_args); New function:
240         Initlaise the CUMULATIE_ARGS strcuture for a function
241         defintion. 
242         (arm_function_arg): New function: Determine where to place a
243         function's argument.  Also handles deciding the function's
244         call cookie.
245         (current_file_function_operand): New function: Return true if
246         the symbol is a function which has already been compiled.
247         (arm_is_long_call_p): New function: Return true if the
248         indicated function should be called via a long call.
249         (arm_valid_type_attribute_p): New function: Return true if the
250         attribute is a valid, arm specific, attribute.
251         (arm_comp_type_attribute): New function: Return true if the
252         two types have compatable, arm specific, attributes.
253
254         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
255         structure.
256         (FUNCTION_ARG): Redefine to call arm_function_arg.
257         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
258         structure field.
259         (INIT_CUMULATIVE_ARGS): Redefine to call
260         arm_init_cumulative_args.
261         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
262         field. 
263         (SETUP_INCOMING_VARARGS): Redefine to use correct structure 
264         field. 
265         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
266         functions.
267         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
268         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
269         (COMP_TYPE_ATTRIBUTES): Define.
270
271         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
272         if a long call is needed.
273         (call_value): Call arm_is_long_call_p to decide if a long call
274         is needed.
275         (call_symbol): Call arm_is_long_call_p to decide if a long call
276         is needed.
277
278         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
279
280 2000-02-11  Denis Chertykov  <denisc@overta.ru>
281
282         * README.AVR: New file with information about the avr ports.
283         * config/avr: New directory with avr port files.
284
285 2000-02-11  Andreas Jaeger  <aj@suse.de>
286
287         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
288
289 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
290
291         * cpphash.c: Fix formatting, update commentary.
292         (dump_definition): Take three separate arguments instead of a
293         MACRODEF structure argument.
294         * cpphash.h: Update prototype of dump_definition.
295         * cppinit.c (cpp_finish): Update call of dump_definition.
296
297         * cpplib.c (do_define): Always create new hash entry with
298         T_MACRO type.  Remove redundant check for redefinition of
299         poisoned identifier.  Update call of dump_definition.
300         (do_undef): Don't call check_macro_name.  Rename sym_length to
301         len.
302         (do_error, do_warning): Don't use copy_rest_of_line or
303         SKIP_WHITE_SPACE.
304         (do_warning): Don't use pedwarn for the actual warning,
305         only the notice about its not being in the standard.  (Fixes
306         bug with #warning in system headers.)
307         (do_ident): Stricter argument checking - accept only a single
308         string after #ident.  Also, macro-expand the line.
309         (do_xifdef): Use cpp_defined.  De-obfuscate.
310
311         (do_pragma): Split out specific pragma handling to separate
312         functions.  Use get_directive_token.  Update commentary.  Do
313         not pass on #pragma once or #pragma poison to the front end.
314         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
315         do_pragma_default): New.
316
317 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
318
319         * jump.c (jump_optimize_1): The first operand in a relational
320         can be a CONST_INT.
321         * optabs.c (emit_conditional_move): Handle relationals which
322         have a known true/false result.
323
324 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
325
326         * function.c (thread_prologue_and_epilogue_insns): Don't insert
327         a RETURN insn into a block which already ends with a jump.
328
329 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
330
331         * haifa-sched.c (BUF_LEN): Increase a lot.
332
333 2000-02-11  Nick Clifton  <nickc@cygnus.com>
334
335         * configure.in: Add tm_p_file specification for thumb targets.
336         * configure: Regenerate.
337
338         * config/arm/thumb-protos.h: New file: Prototypes for exported
339         functions defined in thumb.c.
340
341 2000-02-11  Robert Lipe  <robertl@sco.com>
342
343         * Makefile.in (bootstrap-lean): Remove additional files.
344         (bootstrap2-lean): Likewise.
345         (VOL_FILES): List of files for above.
346
347 2000-02-11  Nathan Sidwell  <nathan@acm.org>
348
349         * cpphash.c (special_symbol): Remove spurious argument to
350         cpp_lookup.
351
352 2000-02-11  Joel Sherrill (joel@OARcorp.com>
353
354         * configure.in: (i*86-*-rtems*): Swapped elf and coff
355         stanzas.
356         * configure: Rebuilt.
357
358 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
359         
360         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
361
362 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
363
364         * pa.c, pa.h: Remove trigraph sequences within comments.
365
366 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
367
368         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
369
370 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
371
372         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
373
374 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
375         
376         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
377
378 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
379
380         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
381         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
382         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
383         (ASM_FILE_END): Use c4x_file_end.
384         * config/c4x/c4x.c (c4x_global_label): New function.
385         (c4x_external_ref, c4x_file_end): Likewise.
386
387         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
388         (c4x_external_ref, c4x_end_file): Likewise.
389
390 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
391
392         * cppexp.c: Don't include cpphash.h.
393         (parse_charconst, cpp_lex): Use cpp_defined.
394         (cpp_lex): Use get_directive_token throughout.  Remove
395         unnecessary cases from switch.  Move assertion-handling code
396         down to OTHER case.
397         (cpp_parse_expr): If we see '+' or '-', check the context to
398         determine if they are unary or binary operators.  Streamline
399         the jumps a bit.  Do not call skip_rest_of_line.
400
401         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
402         static.  Export get_directive_token.  Update commentary.
403         (cpp_defined): New function.
404         (do_define): Remove reference to T_PCSTRING.  Call
405         free_definition to release memory for old definition, when
406         redefining a macro.
407         (eval_if_expression): Set only_seen_white to 0 before calling
408         cpp_parse_expr.  Call skip_rest_of_line after it returns.
409         (cpp_read_check_assertion): Don't preserve a pointer into the
410         token buffer across a call to cpp_get_token.
411
412         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
413         * cppfiles.c (redundant_include_p): Use cpp_defined.
414         * cpphash.c (free_definition): New function.
415         (delete_macro): Use it.  Update commentary.
416         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
417         free_definition.
418         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
419         from enum node_type.  Prototype cpp_defined and get_directive_token.
420         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
421
422         * fix-header.c (check_macro_names): Use cpp_defined.
423         (read_scan_file): Set inhibit_warnings and inhibit_errors in
424         the options structure.
425
426 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
427
428         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
429
430 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
431
432         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
433         rather than die->die_tag.
434
435 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
436
437         * combine.c (make_extraction, force_to_mode): Avoid warning on
438         mixed-signedness conditionals.
439         (make_field_assignment, nonzero_bits): Likewise.
440         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
441         (store_split_bit_field, extract_split_bit_field): Likewise.
442         (extract_fixed_bit_field, store_bit_field, 
443         * expr.c: Change alignment to be unsigned everywhere.
444         (move_by_pieces, store_constructor_field, store_constructor): 
445         Alignment parm is unsigned.
446         (emit_block_move, emit_group_load, emit_group_store): Likewise.
447         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
448         (do_compare_rtx_and_jump): Likewise.
449         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
450         Compare align with GET_MODE_ALIGNMENT.
451         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
452         (get_inner_reference): Likewise.
453         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
454         (expand_assignment): Local vars for alignment now unsigned.
455         (store_constructor, store_field, expand_expr, do_jump): Likewise.
456         (do_compare_and_jump): Likewise.
457         (store_field): Call new function expr_align.
458         * expr.h (emit_block_move, emit_group_load, emit_group_store):
459         Alignment arg now unsigned.
460         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
461         (do_compare_rtx_and_jump, store_bit_field): Likewise.
462         (extract_bit_field): Likewise.
463         * fold-const.c (add_double): Add cast to eliminate signedness warning.
464         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
465         (get_best_mode): Alignment arg is unsigned.
466         * rtl.h (move_by_pieces): Likewise.
467         * store-layout.c (maximum_field_alignment, set_alignment):
468         Now unsigned.
469         (layout_decl): Alignment arg is now unsigned.
470         Remove unneeded casts.
471         (layout_record, layout_union, layout_type): Remove unneeded casts.
472         Local alignment variables now unsigned.
473         (get_best_mode): Alignment arg now unsigned.
474         * tree.c (expr_align): New function.
475         * tree.h (expr_align): Likewise.
476         (maximum_field_alignment, set_alignment): Now unsigned.
477         (get_inner_reference): Alignment argument is now pointer to unsigned.
478         * varasm.c (assemble_variable): Add cast to eliminate warning.
479
480 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
481
482         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
483         then store directly into op0.
484
485         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
486         the CALL_INSN, and emit the note immediately after it.
487
488 2000-02-10  Nick Clifton  <nickc@cygnus.com>
489
490         * config/arm/thumb.md (epilogue): Include a (return) in the
491         generated insn, and emit it using emit_jump_insn not
492         emit_insn. 
493
494 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
495
496         * function.c (assign_temp): Change zero-sized arrays to size 1.
497         * integrate.c (expand_inline_function): Do not update
498         stack_alignment_needed
499         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
500         add some sanity checking, remove optimization for function with
501         zero frame size.
502
503 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
504
505         * flow.c (mark_regs_live_at_end): Delete unused variables.
506
507         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
508
509         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
510         in macro FRAME_GROWS_DOWNWARD.
511
512         * stmt.c (expand_end_bindings): Delete unused variable.
513
514         * unroll.c (iteration_info): Mark parameter `loop' with
515         ATTRIBUTE_UNUSED.
516
517 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
518
519         * fixinc/server.c (load_data): Return NULL if the marker line is
520         not found.
521         (run_shell): If load_data returns NULL, retry the command once, in
522         a new shell.
523
524         * configure: Rebuilt.
525
526 2000-02-09  Bruce Korb  <bkorb@gnu.org>
527
528         * gcc/fixincludes:  ** DELETED **
529         * gcc/fixcpp:  ** DELETED **
530         * gcc/fixinc-nt.sed:  ** DELETED **
531         * gcc/just-fixinc:  ** DELETED **
532         * gcc/Makefile.in:  Removed out-dated commentary
533         * gcc/configure.in: Removed fast-fixincludes disablement.
534         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
535
536 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
537         * function.c (thread_prologue_and_epilogue_insns): Uncomment
538         last change.
539
540 2000-02-09  Richard Henderson  <rth@cygnus.com>
541
542         * jump.c (delete_insn): Don't delete user labels at -O0.
543
544 2000-02-09  Robert Lipe  <robertl@sco.com>
545
546         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
547         Don't link with HOST_LIBS. 
548
549 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
550
551         * configure.in: Correct --help text for --with-dwarf2.
552         Put tm-dwarf2.h after other tm files, if it's requested.
553         * configure: Regenerate.
554         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
555         defining it.
556
557 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
558
559         * cpplib.h: Provide HASHNODE typedef and forward decl of
560         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
561         DEFINITION, struct hashnode, struct macrodef, struct
562         definition, scan_decls prototype, default defn of
563         INCLUDE_LEN_FUDGE moved elsewhere.
564
565         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
566         definition, and struct hashnode moved here. Remove the unused
567         'predefined' field from struct definition.  Replace the 'args'
568         union with its sole member.  All users updated (cpphash.c).
569         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
570         multiple include guard.
571
572         * cpphash.c (hashf): Make static; use better algorithm; drop
573         HASHSIZE parameter; return an unsigned int.
574         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
575         used. Calculate HASHSIZE modulus here.
576         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
577         here.
578         (create_definition): Drop PREDEFINITION parameter.
579         * cpplib.c (do_define): Don't calculate a hash value here.
580         Don't pass (keyword == NULL) to create_definition.
581
582         * scan.h: Prototype scan_decls here.
583         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
584         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
585         callers of cpp_lookup and cpp_install updated.
586         
587         * cpphash.c (macarg): Hoist all the flag diddling out of the
588         function...
589         (macroexpand): ... and out of the loop that calls macarg.
590         Skip over the initial paren before macro arguments with
591         cpp_get_non_space_token; point may be some distance before
592         that paren.  Abort if it's not there.
593
594         * cpplib.c (parse_clear_mark): Delete function.
595         (parse_set_mark, parse_goto_mark): Make static.
596         (ACTIVE_MARK_P): New macro.
597         (skip_block_comment, skip_line_comment): Do not bump the line
598         if ACTIVE_MARK_P is true.
599         (cpp_pop_buffer): The buffer to be popped may not have an
600         active mark.
601         (cpp_get_token): When looking for the initial paren before
602         macro arguments, only set a mark in a file buffer, Always
603         return to that mark before proceeding to call macroexpand or
604         return a NAME token.
605
606         * cpplib.h: Remove prototypes of parse_set_mark,
607         parse_clear_mark, parse_goto_mark.
608         (struct cpp_options): Rename 'put_out_comments' to
609         'discard_comments' and invert its sense.
610         * cppinit.c, cpphash.c, cpplib.c: All users of
611         put_out_comments changed to use discard_comments, with
612         opposite sense.
613
614 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
615
616         * function.c (thread_prologue_and_epilogue_insns): Don't delete
617         the edge from a block that both jumps and falls through to the
618         fallthru block.
619
620 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
621
622         * config/arm/arm.md (movsi): In PIC mode, make sure that a
623         constant source address is legitimate.
624
625 2000-02-09  Philip Blundell  <pb@futuretv.com>
626
627         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
628         correctly.
629
630         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
631         generating PIC.
632         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
633
634 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
635
636         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
637         ends with a newline and a NUL.  Don't be so clever manipulating
638         strings.
639
640 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
641
642         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
643         not to BIGGEST_ALIGNMENT.
644
645 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
646
647         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
648         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
649         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
650         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
651         * frame.c (execute_cfa_insn): Handle 
652         DW_CFA_GNU_negative_offset_extended.
653
654 2000-02-08  Richard Henderson  <rth@cygnus.com>
655
656         * flow.c (tidy_fallthru_edges): Split out from ...
657         (delete_unreachable_blocks): ... here.
658         (find_basic_blocks): Use it.
659
660 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
661
662         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
663
664 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
665
666         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
667         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
668         (fix-header.o): Don't depend on cpphash.h.
669
670         * scan.c (hashstr): New function. 
671         * scan.h: Prototype it.
672         * fix-header.c: Don't include cpphash.h.  Use hashstr.  
673         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
674         hashstr.  Report hash table statistics.  Add private     
675         definition of xrealloc.
676
677 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
678
679         * i386.h (TARGET_SWITCHES): Fix typo in option name.
680
681 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
682
683         * function.c (thread_prologue_and_epilogue_insns): Don't replace
684         jumps with returns unless they are jumps to the fallthru block.
685
686 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
687
688         * i386.md (addqi3_cc): Fix contraints.
689
690 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
691
692         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
693
694 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
695
696         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
697         carriage return after a macro name.
698
699 2000-02-07  Fred Fish  <fnf@be.com>
700
701         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
702         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
703
704 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
705
706         * cppfiles.c (deps_output): Count spacers in deps_column.
707
708 2000-02-07  Neil Booth  <NeilB@earthling.net>
709
710         * cppinit.c (initialize_dependency_output): If there is no
711         suffix, don't try to look for known suffixes.  Use strrchr.
712         (cpp_start_read): Remove duplicate initialization.
713
714 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
715
716         * calls.c (compute_argument_block_size): New argument
717         preferred_stack_boundary.
718         (expand_call): update cfun->preferred_stack_boundary, update call of
719         compute_argument_block_size
720         (emit_library_call): Increate cfun->preferred_stack_boundary
721         to PREFERRED_STACK_BOUNDARY
722         (emit_library_call_value): Likewise.
723         * explow.c (allocate_dynamic_stack_spave): Likewise.
724         * function.c (prepare_function_start): Set
725         cfun->preferred_stack_boundary
726         * function.h (struct function): Add preferred_stack_boundary field.
727         * integrate.c (expand_inline_function): Update
728         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
729         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
730         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
731
732 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
733
734         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
735         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
736         cpp_pedwarn, cpp_pedwarn_with_line,
737         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
738         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
739         v_cpp_error_with_line, v_cpp_warning_with_line,
740         cpp_message_from_errno, cpp_perror_with_name): Delete.
741
742         * cpperror.c (cpp_print_containing_files): Take starting
743         buffer as argument.
744         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
745         (v_cpp_message): Now called directly by all entry points.
746         Remove -1 case.
747         (cpp_pfatal_with_name, cpp_message): Delete.
748         (cpp_notice_from_errno, cpp_ice): New functions.
749         (cpp_notice): Is now for reporting error conditions, just
750         without an associated file.
751         (cpp_error, cpp_error_with_line): Don't do anything if
752         opts->inhibit_errors is on.
753         (cpp_pedwarn_with_file_and_line): Take column argument also.
754
755         * cpplib.h: Update prototypes of exported functions.
756         (struct cpp_options): Add inhibit_errors.
757
758         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
759         non-error messages.  Include intl.h.
760
761         * cppinit.c, cppmain.c: Likewise.  Also, use
762         cpp_notice_from_errno instead of cpp_perror_with_name or
763         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
764
765         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
766         report internal errors.
767
768         * cpplib.c (do_define): Switch bcopy to memcpy.
769         Give cpp_pedwarn_with_file_and_line a dummy column argument.
770
771         * cpplib.c (copy_rest_of_line): Revert previous change: don't
772         bail out early if we hit a line comment.
773
774 2000-02-06  Richard Henderson  <rth@cygnus.com>
775
776         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
777         * basic-block.h: Declare them.
778         * emit-rtl.h (active_insn_p): New.
779         (next_active_insn, prev_active_insn): Use it.
780         * rtl.h: Declare it.
781         * function.c (emit_return_into_block): New.
782         (thread_prologue_and_epilogue_insns): Insert return insns instead
783         of epilogues when possible.
784         * jump.c (jump_optimize_1): Remove code to insert a return insn
785         on the fallthru to the exit block.
786
787         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
788         and for non-empty stack frames.
789         * i386.md (return): Expand to return-pop as needed.
790
791 2000-02-06  Richard Henderson  <rth@cygnus.com>
792
793         * simplify-rtx.c (simplify_relational_operation): Canonicalize
794         constant to op1 for testing.
795
796 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
797
798         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
799         (fixuns_truncqfqi2): Use it.
800
801 2000-02-06  Richard Henderson  <rth@cygnus.com>
802
803         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
804         as a TYPE_LEA insn.
805
806         * i386.md (widening and peepholes): Mask the constant instead of
807         using gen_lowpart.
808
809 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
810
811         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
812         input pointer before possibly branching off to the backslash
813         code.
814         * cpphash.c (macroexpand): Correctly delete \r escapes when
815         stringifying parameters.
816         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
817         if we can; bail out early if we hit a line comment.
818         (handle_directive): Treat '# 123' in an .S file just like
819         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
820         Return 1 for '# not_a_directive'.
821         (get_directive_token): Pop macro buffers here, so that
822         cpp_get_token can't sneakily move past a newline.
823         Add sanity checks. 
824         (cpp_get_token): goto randomchar if handle_directive returns 0.
825
826         * cppalloc.c: Update copyright.
827         * cpplib.c: Merge all the static function prototypes into one
828         block.
829         * cpplib.h: Remove #if 0 block.
830
831         * cpperror.c: Remove #ifdef EMACS block.
832         * cppmain.c: Likewise.
833         * cpphash.c: Remove #if 0 blocks.
834         * cppinit.c: Remove #if 0 blocks, and the -lint option.
835         * cpplib.c: Remove #if 0 blocks and code referencing
836         pcp_inside_if or for_lint.  Remove duplicate error message.
837         Fix error messages for #else after #else or #elif.  Reformat.
838         Remove archaic TODO list.
839         * cpplib.h: Remove pcp_inside_if and for_lint flags.
840
841 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
842
843         * i386/osf1elf.h: Add missing backslash to multiline string.
844
845 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
846
847         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
848
849 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
850
851         * Makefile.in (c-common.o): Depend on $(EXPR_H).
852
853         * c-common.c: Include expr.h.
854
855         * c-pragma.c (mark_align_stack): Add prototype.
856
857         * caller-save.c (add_stored_regs): Likewise.
858
859         * combine.c (record_promoted_value): Likewise.
860
861         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
862         Likewise.
863
864         * cppinit.c (new_pending_define): Likewise.
865
866         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
867
868         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
869         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
870         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
871         class_scope_p): Likewise.
872
873         * dwarf2out.h (dwarf2out_set_demangle_name_func,
874         dwarf2out_add_library_unit_info): Likewise.
875
876         * ggc.h (ggc_page_print_statistics): Likewise.
877
878         * haifa-sched.c (propagate_deps): Likewise.
879
880         * reg-stack.c (next_flags_user, record_label_references): Likewise.
881
882         * rtl.h (set_stack_check_libfunc): Likewise.
883
884         * toplev.h (set_fatal_function): Likewise.
885
886         * toplev.c (set_fatal_function): Delete prototype.
887         
888         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
889         
890 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
891
892         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
893         (FUNC_END): Likewise.
894
895 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
896
897         * caller-save.c: Include tm_p.h.
898
899 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
900
901         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
902
903 2000-02-04  Neil Booth  <NeilB@earthling.net>
904
905         * cccp.c (main): Check 'dir' for a NULL pointer before passing
906         it to strcmp.
907
908 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
909
910         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
911         * genflags.c: Use the max_operand_1 logic from genemit.c to
912         calculate how many arguments gen_insn prototypes have.  Remove
913         NO_MD_PROTOTYPES ifdefs from the generated file.
914         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
915         file.  Cast gen_insn initializers to insn_gen_fn.
916         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
917         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
918
919 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
920
921         * fixinc/Makefile.in (HDR): Add machname.h.
922         (clean): Likewise.
923
924 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
925
926         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
927         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
928         (c4x_cpu_version): Ditto.
929         * config/c4x/c4x-protos.h: ... here.
930
931 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
932
933         * dwarf2out.c (add_abstract_origin_attribute): Don't call
934         gen_abstract_function on our context if we're a nested function.
935
936 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
937
938         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
939         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
940
941 2000-02-04  Bruce Korb  <bkorb@gnu.org>
942
943         * fixinc/genfixes(machname.h):
944         Move the functionality from gen-machine.h into this file.
945         UNdef MN_NAME_PAT if there are no names to change.
946         Also, be a little kinder when AutoGen is not present.
947
948         * fixinc/Makefile.in(machname.h):
949         Change the generation rule to use genfixes.
950
951         * fixinc/fixfixes.c(machine_name):
952         machine_name_fix's functionality now dependent upon whether
953         MN_NAME_PAT is defined.
954
955         * fixinc/fixtests.c(machine_name):
956         ditto.
957
958         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
959         of MN_NAME_PAT.
960
961         * fixinc/fixlib.h(mn_get_regexps):
962         ditto
963
964         * fixinc/gen-machine.h: DELETED
965
966 2000-02-04  Jan Hubicka  <jh@suse.cz>
967             Richard Henderson  <rth@cygnus.com>
968
969         * i386.c (SAVE_REGS_FIRST): Remove.
970         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
971         (ix86_compute_frame_size): Likewise.
972         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
973         (ix86_emit_restore_regs): Remove.
974         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
975         when a frame pointer is in use.
976         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
977         instead of pop to restore a register when profitable; emit leave
978         when profitable.
979         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
980         as a TYPE_LEA insn.
981         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
982         * i386.md (prologue_allocate_stack): Remove.
983         (epilogue_deallocate_stack): Remove.
984         (pro_epilogue_adjust_stack): New.
985
986 2000-02-04  Richard Henderson  <rth@cygnus.com>
987
988         * function.c (diddle_return_value): Rework to use a callback function.
989         Use current_function_return_rtx if it's been set up.
990         (do_clobber_return_reg, clobber_return_register): New.
991         (do_use_return_reg, use_return_register): New.
992         (expand_function_end): Use them.
993         * stmt.c (expand_null_return): Likewise.
994         * function.h: Declare them.
995         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
996         (mark_reg): Change arguments as appropriate for callback.
997         * integrate.c (expand_inline_function): Revert 19 Jan change.
998
999 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
1000
1001         * tm.texi (Values in Registers): Fix typo: "fo" "for".
1002         (Misc): Say the scheduler, not the Haifa scheduler.
1003
1004 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
1005
1006         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
1007         when in_mem is set.  Update all callers.
1008
1009 2000-02-04  Richard Henderson  <rth@cygnus.com>
1010
1011         * i386/openbsd.h (INT_ASM_OP): Define.
1012
1013 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
1014
1015         * tm.texi: Fix various typos.
1016
1017 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
1018
1019         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
1020         (MD_STARTFILE_PREFIX_1): New macro.
1021
1022 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
1023
1024         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
1025         destination when needed.
1026         (strmovsi, strsetsi): New expander.
1027         (strmovsi_1, strsetsi_1): New pattern.
1028         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
1029         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
1030         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
1031         * invoke.texi (align-stringops, inline-all-stringops): Document.
1032
1033 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
1034
1035         * i386/netbsd.h (INT_ASM_OP): Define.
1036
1037 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
1038
1039         * cpplib.h (cpp_reader): Add new flag, no_directives.
1040         * cpphash.c (macarg): Set it.
1041         * cpplib.c (handle_directive): If no_directives is on and we
1042         find a directive, issue an error and discard the line.
1043
1044 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
1045
1046         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
1047         FP constants.  Add ! TARGET_FPU check for FP constants.
1048
1049 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
1050         
1051         * flow.c (find_basic_blocks): Don't kill label_value_list
1052         here.
1053         (cleanup_cfg): Kill it here.
1054
1055 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1056
1057         * expr.c (store_field): Ensure ALIGN is no stricter than the
1058         alignment of EXP.
1059
1060 2000-02-02  Richard Henderson  <rth@cygnus.com>
1061
1062         * jump.c (delete_insn): Partially revert 19 Jan change; 
1063         don't convert unused code labels to notes at -O0.
1064
1065 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1066
1067         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
1068         split_all_insns to recreate REG_LABEL notes for flow2 pass.
1069
1070 2000-02-01  Richard Henderson  <rth@cygnus.com>
1071
1072         * i386.c (general_no_elim_operand): New.
1073         (nonmemory_no_elim_operand): New.
1074         (ix86_expand_move): Copy eliminable operands before a push.
1075         * i386-protos.h: Declare new functions.
1076         * i386.h (CAN_ELIMINATE): Simplify.
1077         (PREDICATE_CODES): Update.
1078         * i386.md (push insns): Don't allow eliminable register operands.
1079
1080 2000-02-01  Richard Henderson  <rth@cygnus.com>
1081
1082         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
1083         replace BLKmode with DECL_RTL's mode.
1084
1085 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
1086
1087         * frame.c (find_fde): Convert for loop to do-while so compiler
1088         sees it's always executed at least once.
1089         * libgcc2.c (BBINBUFSIZE): Kill.
1090         (__bb_init_prg): Use fgets.
1091         (__bb_exit_trace_func): Don't paste strings.
1092         * unroll.c (unroll_loop): Initialize unroll_type, not
1093         unroll_number, and tweak logic to match.
1094
1095         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
1096         all failure paths.
1097         (ix86_flags_dependant): Likewise.  Disentangle control flow.
1098         (ix86_sched_reorder): Break guts out to
1099         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
1100         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
1101         any possible use.
1102
1103         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
1104         use string concatenation.  Don't save and restore esi.
1105
1106         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
1107         (machname.h): Remove script to separate file.  Use two-step
1108         sequence so target is not created if script fails.
1109         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
1110         identifiers are defined.
1111         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
1112         an empty string, machine_name doesn't need to do anything at
1113         all.
1114         (is_cxx_header): Add more cases to regexp.
1115         * fixinc/fixlib.h: Update prototype.
1116         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
1117         mn_get_regexps.
1118         * fixinc/fixincl.c: Define NO_BOGOSITY.
1119
1120         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
1121         (hp_sysfile): Add missing comma.
1122         (math_exception): Put the wrapper ifdefs at the beginning and
1123         the end of the file.
1124         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
1125
1126 2000-02-01  Richard Henderson  <rth@cygnus.com>
1127
1128         * sparc.c (fp_zero_operand): Turn into a normal predicate.
1129         Use CONST0_RTX.  Update all callers.
1130         * sparc.h, sparc-protos.h: Update accordingly.
1131         * sparc.md (fp mov insns): Use fp_zero_operand directly
1132         where applicable.
1133
1134 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
1135
1136         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
1137         example.
1138
1139 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1140
1141         * Makefile.in (specs.ready): New target.
1142         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
1143
1144 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1145
1146         * fixinc.irix: Use unique filenames for writing into /tmp,
1147         * fixinc.ptx: Likewise.
1148         * fixinc.sco: Likewise.
1149         * fixinc.svr4: Likewise.
1150         * fixinc.winnt: Likewise.
1151
1152 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1153
1154         * tsystem.h: New file.
1155
1156         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
1157         s-crtS): Depend on tsystem.h.
1158
1159         * crtstuff.c: Include tsystem.h.
1160         * frame.c: Likewise.
1161         * libgcc2.c: Likewise.
1162
1163 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
1164
1165         * builtins.c (expand_builtin_memset): Expand for variable sized
1166         lengths too.
1167
1168 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au> 
1169
1170         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
1171         on ABI.
1172
1173 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
1174
1175         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
1176
1177         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
1178
1179 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
1180
1181         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
1182         case 3->2 combining (combining with splitting) in which 2 is CC0
1183         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are 
1184         checked at the begining of the function with the aid of calling 
1185         function 'can_combine_p'. 
1186
1187 2000-01-31  Dave Brolley  <brolley@redhat.com>
1188
1189         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
1190
1191 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
1192
1193         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
1194         new label.
1195
1196 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1197
1198         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
1199         
1200         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
1201         PROTO -> PARAMS.
1202
1203 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
1204
1205         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
1206         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
1207         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
1208         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
1209         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
1210         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
1211         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
1212         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
1213         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
1214         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
1215         
1216         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
1217         Add %(cpp_cpu) to CPP_SPEC.
1218
1219         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
1220         Add %(cc1_cpu) to CC1_SPEC.
1221
1222 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
1223
1224         * c-decl.c (c_decode_option): Accept optional numeric argument to
1225         -Wformat and set warn_format.
1226         * c-common.c: Don't emit warning about non-constant printf format
1227         string unless warn_format > 1.
1228
1229 2000-01-30  Richard Henderson  <rth@cygnus.com>
1230
1231         * alpha.md (return_internal): Allow after reload only.
1232
1233 2000-01-30  Richard Henderson  <rth@cygnus.com>
1234
1235         * i386.c (ix86_compute_frame_size): Omit padding1 if the
1236         local frame size is zero.
1237
1238 2000-01-30  Richard Henderson  <rth@cygnus.com>
1239
1240         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
1241         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
1242         * alpha.md (return): Turn into an expander.
1243         (return_internal): Don't use $26.
1244         (epilogue): Emit the return insn.
1245
1246 2000-01-30  Richard Henderson  <rth@cygnus.com>
1247
1248         * alpha.md (negtf2, abstf2): Fix word order thinko.
1249         (extendsftf2): New.
1250         (trunctfsf2): Avoid intermediate rounding errors.
1251
1252 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
1253
1254         * cppfiles.c (find_position): Drop 'colp' argument, return the
1255         new line base.
1256         (read_and_prescan): Adjust to match.  Don't ever manipulate
1257         line or line_base except via find_position.
1258
1259 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
1260
1261         * c-parse.in: Apply Ulrich's changes from c-parse.y.
1262         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
1263         Regenerate.
1264
1265 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
1266
1267         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
1268         just print "<command line>".  If 'filename' is null or an
1269         empty string, print "<stdin>" for the filename.
1270         * cpplib.c (do_define): Don't print the 'location of the
1271         previous definition' message if we're still parsing the
1272         command line.
1273         (cpp_pedwarn_with_file_and_line): Always call
1274         cpp_file_line_for_message.
1275
1276 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
1277
1278         * flow.c (mark_regs_live_at_end): Fix typo.
1279
1280 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
1281
1282         * c-common.c: Adjust variable names, comments, help strings to c99.
1283         * c-lex.c: Likewise.
1284         * c-parse.y: Likewise.
1285         * c-tree.h: Likewise.
1286         * cccp.c: Likewise.
1287         * cpplib.h: Likewise.
1288         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
1289         * cppinit.c: Likewise.
1290
1291 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1292
1293         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
1294         * c4x.c: Define the optab rtx values.
1295         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
1296         (c4x_emit_libcall): Use new optab rtx values.
1297         (c4x_emit_libcall3): Likewise.
1298         (c4x_emit_libcall_mulhi): Likewise.
1299         * c4x-protos.h: Add prototypes for optab rtx values and change
1300         prototypes for above c4x_emit_libcall functions.
1301
1302 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1303
1304         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
1305         syntax is used.
1306         (c4x_function_prologue): Use regnames intead of float_reg_names when
1307         TI syntax is used.
1308         (c4x_function_epilogue): Likewise.
1309         (c4x_print_operand): Likewise.
1310         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
1311         * c4x.md (set_high): Disable for TARGET_TI.
1312
1313 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1314
1315         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
1316         of framepointer + constant to ADDR_REGS class.
1317         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
1318         * c4x.c (std_or_reg_operand): New function.
1319         * c4x-protos.h (std_or_reg_operand): Prototype it.
1320
1321 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1322
1323         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
1324                 object names as libgcc2.c.
1325         * libgcc.S: Use newly defined names.
1326
1327 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
1328         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
1329         function.
1330         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
1331         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
1332         (FLOW_LOOP_LAST_BLOCK): Likewise.
1333
1334 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1335
1336         * basic-block.h (struct loop): New fields 'first' and 'last'.
1337         * flow.c (flow_loops_find): Compute loop->first and loop->last.
1338         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
1339         and loop->last to check for NOTE_INSN_LOOP_END.
1340
1341 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
1342
1343         * predict.c (estimate_probability): Use the new FIRST and LAST fields
1344         of the loop descriptor rather than HEADER and LATCH. Also added
1345         missing break statements as well making some coding style modifications
1346         as suggested by Michael Hayes.
1347
1348 2000-01-28  Richard Henderson  <rth@cygnus.com>
1349
1350         * flow.c (find_basic_blocks): Remove do_cleanup argument.
1351         Break out that code ...
1352         (cleanup_cfg): ... here.
1353         (commit_one_edge_insertion): Detect a return instruction being
1354         emitted to an edge.  Emit a barrier following; clear fallthru.
1355         (commit_edge_insertions): Verify CFG consistency.
1356         * function.c (expand_function_start): Kill unused variable.
1357         (expand_function_end): Likewise.
1358         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
1359         to insert the epilogue.
1360
1361         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
1362         (delete_null_pointer_checks): Likewise.
1363         * output.h: Likewise.
1364         * reg-stack.c (reg_to_stack): Likewise.
1365         * toplev.c (rest_of_compilation): Likewise.  Run
1366         thread_prologue_and_epilogue_insns after rebuilding the CFG.
1367
1368 2000-01-28  Richard Henderson  <rth@cygnus.com>
1369
1370         * Makefile.in (flow.o): Revert 24 Jan change.
1371         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
1372         FUNCTION_VALUE result to DECL_RESULT's mode.
1373
1374         * haifa-sched.c (schedule_insns): Don't recompute reg info
1375         after reload.
1376
1377 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
1378
1379         * configure.in: Make --enable-cpplib the default.
1380         * configure: Regenerate.
1381         * gcc.dg/990119-1.c: No longer expected to fail.
1382
1383 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
1384
1385         * jump.c (jump_optimize_1): Delete an optimization that is also done
1386         by merge_blocks in flow.
1387
1388 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1389
1390         * diagnostic.c (build_message_string, output_printf,
1391         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
1392         (build_location_prefix): Fix non-literal format string.
1393
1394 2000-01-27  Richard Henderson  <rth@cygnus.com>
1395
1396         * alpha.md (trunctfsf2): New.
1397
1398 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
1399
1400         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
1401
1402 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
1403
1404         * cppinit.c (cpp_handle_option): Recognize C++ comments under
1405         -std=gnu89.
1406         * cpplib.c (skip_block_comment, skip_line_comment): Split code
1407         out of...
1408         (skip_comment) ... here.  Permit C++ comments in system
1409         headers always.  Warn about C++ comments in user code under
1410         -std=gnu89 -pedantic.
1411         (copy_comment): Use skip_comment.
1412         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
1413         return EOF.
1414         (consider_directive_while_skipping, do_else, do_endif): Call
1415         validate_else unconditionally.
1416         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
1417         text after the conditional in a system header.
1418         * cpplib.h (struct cpp_buffer): Add flag
1419         warned_cplusplus_comments.
1420
1421 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
1422
1423         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
1424         Use unshare_all_rtl_1.
1425         (unshare_all_rtl_again): New function.
1426         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
1427
1428         * function.c (purge_addressof_1): Use unshare_all_rtl_again
1429         rather than resetting the 'used' flags ourself.
1430
1431         * toplev.c (rest_of_compilation): Add current_function_decl
1432         to the unshare_all_rtl call.
1433         * tree.h: Prototype unshare_all_rtl.
1434         * rtl.h: Prototype unshare_all_rtl_again here.
1435
1436 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
1437
1438         * genoutput.c (output_prologue): Include ggc.h in generated
1439         files.
1440         * Makefile.in (insn-output.o): Depends on ggc.h.
1441
1442 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
1443             Hans-Peter Nilsson  <hp@bitrange.com>
1444
1445         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
1446         Remove redundant include of xm-ns32k.h.
1447         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
1448         Remove redundant include of xm-ns32k.h.
1449         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
1450         Remove redundant include of xm-ns32k.h.
1451         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
1452
1453         * ns32k/ns32k.h: Update comment on multiply-add instructions.
1454         (TARGET_SWITCHES): Add documentation strings.
1455         (DWARF_FRAME_REGNUM): Override default definition.
1456         (REG_CLASS_CONTENTS): Add comments.
1457         (SUBSET_P): Format to reduce line length.
1458         (SMALL_REGISTER_CLASSES): Make a run time option.
1459         (GO_IF_NONINDEXED_ADDRESS): Reformat.
1460         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
1461         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
1462         (regclass_map): fix typo in comment.
1463         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
1464         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
1465         (trace, reg_or_mem_operand): Delete, unused function.
1466         (calc_address_cost): Small offsets are cheaper than large ones.
1467         (expand_block_move): Generate more efficient code when bytes is a
1468         known at compile time.
1469         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
1470         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
1471         instead of reg_or_mem_operand.
1472
1473         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
1474         not general_operand.  Similarly use "=rm" or stricter, not "=g".
1475         For input operands, use stricter constraints than "g" if not
1476         general_operand.  Similarly use stricter predicate than
1477         "general_operand" when stricter constraints than "g" are present,
1478         except for matching constraints.
1479         (movstrsi): Use "memory_operand" for operands 0 and 1.
1480         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
1481         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
1482         not reg_or_mem_operand.
1483         (udivmoddisi4): Ditto.
1484         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
1485         Use nonimmediate_operand for operand 3, not register_operand.
1486         (udivmoddiqi4_internal): Use register_operand for operand 1, not
1487         reg_or_mem_operand.
1488
1489 2000-01-27  Fred Fish  <fnf@be.com>
1490
1491         * gthr-posix.h: Fix typo; compatibily -> compatibility.
1492         * gthr-single.h: Likewise.
1493         * gthr-solaris.h: Likewise.
1494         * gthr-vxworks.h: Likewise.
1495         * gthr-win32.h: Likewise.
1496         * gthr.h: Likewise.
1497
1498 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
1499
1500         * cppinit.c: Add " (cpplib)" to end of string printed by
1501         -v / --version.
1502
1503 2000-01-27  Richard Henderson  <rth@cygnus.com>
1504
1505         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
1506         testing for a signed comparison.
1507         (alpha_emit_floatuns): New.
1508         * alpha-protos.h: Declare it.
1509         * alpha.md (floatunsdisf2, floatunsdidf2): New.
1510         (extendsfdf2): Tidy.
1511
1512 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
1513
1514         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
1515         no -g option specifying debugging format, default to -gstabs+.
1516
1517 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
1518
1519         * calls.c (special_function_p): New argument fork_or_exec.
1520         (expand_call): When profile_arc_flag is set and the function
1521         is in the fork_or_exec group, call __bb_fork_func first.
1522         * libgcc2.c, _bb module (__bb_fork_func): New function.
1523         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
1524         output file.
1525         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
1526         * tree.h (special_function_p): Update prototype.
1527
1528 2000-01-26  Richard Henderson  <rth@cygnus.com>
1529
1530         * alpha.c (alpha_split_tfmode_pair): New.
1531         * alpha-protos.h: Declare it.
1532         * alpha.md (abstf2, negtf2): New.
1533         (movtf insn): Add input G constraint.
1534         (movtf splitter): Use alpha_split_tfmode_pair.
1535
1536 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1537
1538         * i386/cygwin.h: PROTO -> PARAMS.
1539
1540 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
1541
1542         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
1543         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
1544         using _Qp_cmp/_Q_cmp and testing the return value.
1545         (print_operand): Call reverse_condition_maybe_unordered if
1546         we are handling CCFPmode or CCFPEmode.
1547         Handle ORDERED, UN* and LTGT comparisons.
1548         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
1549         if not TARGET_HARD_QUAD.
1550         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
1551         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
1552         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
1553         Adjust gen_b* calls so that they reflect return comparison of
1554         sparc_emit_float_lib_cmp.
1555
1556 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1557
1558         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
1559         incoming operands array is large enough for one more operand.
1560         (alpha_emit_xfloating_arith): Likewise.
1561
1562 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
1563
1564         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
1565         file with one line and no trailing newline.
1566         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
1567         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
1568         checking if the match is on the line.
1569         * fixinc/gnu-regex.c: Provide regerror not __regerror.
1570
1571 2000-01-25  Richard Henderson  <rth@cygnus.com>
1572
1573         * sparc.c (output_cbranch): Fix accidental squashing of the
1574         fp branch pre-delay nop.
1575
1576 2000-01-25  Richard Henderson  <rth@cygnus.com>
1577
1578         * tree.def (UNNE_EXPR): Remove.
1579         * c-typeck.c (build_binary_op): Don't handle it.
1580         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
1581
1582         * rtl.def (UNNE): Remove.
1583         (LTGT): Add.
1584         * jump.c (reverse_condition): Update accordingly.
1585         (swap_condition): Likewise.
1586         (comparison_dominates_p): Handle unordered comparisons.
1587         (reverse_condition_maybe_unordered): New.
1588         * rtl.h (reverse_condition_maybe_unordered): Declare.
1589
1590         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
1591         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
1592         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
1593         * sparc.md (bltgt): New.
1594
1595 2000-01-25  Nick Clifton  <nickc@redhat.com>
1596
1597         * emit-rtl.c (emit_insn): Only check machine class insns for
1598         improper emission of a RETURN.
1599
1600 2000-01-25  Richard Henderson  <rth@cygnus.com>
1601
1602         * Makefile.in (flow.o): Depend on $(EXPR_H).
1603         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
1604         duplicate the structure of diddle_return_value for keeping regs live.
1605
1606 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1607
1608         * loop.c (current_loop_info): Delete.
1609         (consec_sets_invariant_p): Add loop argument, update callers.
1610         (get_condition_for_loop): Likewise.
1611         (count_nonfixed_reads, update_giv_derive): Likewise.
1612         (simplify_giv_expr, general_induction_var): Likewise.
1613         (consec_sets_giv, recombine_givs): Likewise.
1614         (move_movables): Delete loop_start and loop_end arguments,
1615         add loop argument, and update callers.
1616         (find_mem_givs, check_final_value): Likewise.
1617         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
1618         (loop_invariant_p): Rename from invariant_p, add loop argument, and
1619         update callers.
1620         (basic_induction_var): Add loop argument, delete loop_level argument,
1621         and update callers.
1622         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
1623         add loop argument, and update callers.
1624         (find_splittable_regs, find_splittable_givs): Likewise.
1625         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
1626         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
1627         (biv_total_increment): Delete loop_start and loop_end arguments;
1628         update callers.
1629         (precondition_loop_p): Delete loop_start and loop_info arguments;
1630         update callers.
1631         * loop.h (get_condition_for_loop): Add loop argument.
1632         (biv_total_increment): Delete loop_start and loop_end arguments.
1633         (precondition_loop_p): Delete loop_start and loop_info arguments;
1634         add loop argument.
1635         (final_biv_value): Delete loop_start and loop_end arguments;
1636         add loop argument.
1637         (final_giv_value, back_branch_in_range_p): Likewise.
1638
1639 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
1640
1641         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
1642
1643 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
1644
1645         * Makefile.in (c-gperf.h) : Change the "See" pointer to
1646         point to the new "generated_files" doc.
1647
1648 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
1649
1650         * config/fp-bit.c (_unord_f2): Fix typo.
1651
1652 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
1653
1654         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
1655         c-typeck.c, objc/objc-act.c: Remove all references to obstack
1656         functions obsoleted by GC, such as push_obstacks_nochange,
1657         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
1658         and code which existed only to decide whether or not to call
1659         them.  Remove now-unused NESTED argument from start_function;
1660         all callers changed.  Do not change behavior based on ggc_p.
1661         The use of the ixp_obstack in c-iterate.c and the util_obstack
1662         in objc/objc-act.c remain; these are not obsoleted by garbage
1663         collection.
1664         * c-tree.h: Update prototype for start_function.
1665
1666         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
1667
1668 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
1669
1670         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
1671         mips16.
1672
1673 2000-01-25  Richard Henderson  <rth@cygnus.com>
1674
1675         * sparc-protos.h (select_cc_mode): Declare.
1676         * sparc.c (select_cc_mode): New.  Handle unordered compares.
1677         (output_cbranch): Always reverse via code change.  Handle
1678         unordered compares.  Factor tests and string updates.
1679         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
1680         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
1681         * sparc.md (bunordered, bordered): New.
1682         (bungt, bunlt, buneq, bunge, bunle): New.
1683
1684 2000-01-25  Richard Henderson  <rth@cygnus.com>
1685
1686         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
1687         * ggc-common.c (ggc_add_rtx_varray_root): New.
1688         (ggc_mark_rtx_varray): New.
1689         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
1690         functions down below ggc_mark_foo.
1691         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
1692
1693 2000-01-25  Richard Henderson  <rth@cygnus.com>
1694
1695         * alpha.c (secondary_reload_class): Don't allocate a secondary
1696         for integral mode memories into FLOAT_REGS.  Rearrange the more
1697         complicated memory expression inward.
1698
1699 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
1700
1701         * inclhack.def: Fixes to play nicer with FreeBSD, and
1702         corrections to comments.
1703         (cxx_unready): Add select expression.
1704         (irix_sockaddr): Add bypass expression.
1705         (machine_ansi_h_va_list): New fix.
1706         (stdio_va_list): No need to edit _BSD_VA_LIST_.
1707         Split out addition of "#include <stdarg.h>" to...
1708         (stdio_stdarg_h): ... here.
1709         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
1710         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
1711         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
1712         size_t.
1713         (ultrix_ifdef): Tighten up select expression.
1714
1715         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
1716         re_ct and max_mach to avoid use of shell.  Make printed names
1717         match names in inclhack.def.  Use static copyright date.
1718         Don't count c_test and test expressions as requiring regex_t
1719         slots.  Add some commentary.
1720         * inclhack.tpl: Do not include the 'This script contains N
1721         fixup scripts' line if PROGRAM is defined.  Use static
1722         copyright date.
1723
1724 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
1725
1726         * dwarf2out.c: include "varray.h", not dyn-string.h.
1727         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
1728         (addr_const_to_string, addr_to_string): Lose.
1729         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
1730         (struct dw_val_struct): val_addr is now an rtx.
1731         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
1732         (used_rtx_varray): New varray.
1733         (dwarf2out_init): Initialize it.
1734         (save_rtx): New fn.
1735         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
1736         addr_to_string.
1737         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
1738         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
1739         * Makefile.in (dwarf2out.o): Update dependencies.
1740
1741 2000-01-24  Richard Henderson  <rth@cygnus.com>
1742
1743         * i386.c (i386_dwarf_output_addr_const): New.
1744         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
1745
1746         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
1747         if defined.
1748         * dwarfout.c (output_mem_loc_descriptor): Likewise.
1749         * i386.c (i386_simplify_dwarf_addr): New.
1750         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
1751
1752 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
1753
1754         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
1755         TYPE_STUB_DECL is NULL.
1756
1757 2000-01-24  Richard Henderson  <rth@cygnus.com>
1758
1759         * builtins.c (expand_tree_builtin): Move ...
1760         * c-common.c (expand_tree_builtin): ... here.
1761
1762 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1763
1764         * loop.h (LOOP_INFO): New accessor macro.
1765         * basic-block.h (struct loop): Rename field `info' to `aux'.
1766         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
1767         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
1768         * unroll.c (loop_iterations, unroll_loop): Likewise.
1769
1770 2000-01-24  Christopher Faylor <cgf@cygnus.com>
1771
1772         * config/i386/t-cygwin: Accomodate new winsup directory layout
1773         when searching for include files.
1774
1775 2000-01-24  Richard Henderson  <rth@cygnus.com>
1776
1777         * rtl.def: Add unordered fp comparisions.
1778         * tree.def: Likewise.
1779         * tree.h: Add ISO C 9x unordered fp comparision builtins.
1780
1781         * builtins.c (expand_tree_builtin): New function.
1782         * c-typeck.c (build_function_call): Use it.
1783         (build_binary_op): Support unordered compares.
1784         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
1785
1786         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
1787         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
1788         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
1789         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
1790         * jump.c (reverse_condition): Don't abort for UNLE etc, but
1791         return UNKNOWN.
1792         (swap_condition): Handle unordered compares.
1793         (thread_jumps): Check can_reverse before reversing.
1794         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
1795         reversed for FP.
1796
1797         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
1798         setcc is present before acking for cmp_optab.  Update all callers.
1799         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
1800         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
1801         * expr.c (expand_expr): Likewise.  Support unordered compares.
1802         (do_jump, do_store_flag): Likewise.
1803         * expr.h (enum libfunc_index): Add unordered compares.
1804
1805         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
1806         (DPBIT_FUNCS): Add _unord_df.
1807         * config/fp-bit.c (_unord_f2): New.
1808         * fp-test.c (main): Try unordered compare builtins.
1809
1810         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
1811         * alpha.c (alpha_comparison_operator): Check mode properly.
1812         (alpha_swapped_comparison_operator): Likewise.
1813         (signed_comparison_operator): Likewise.
1814         (alpha_fp_comparison_operator): New.
1815         (alpha_emit_conditional_branch): Handle unordered compares.
1816         * alpha.h (PREDICATE_CODES): Update.
1817         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
1818         (bunordered, bordered): New.
1819
1820 2000-01-24  Richard Henderson  <rth@cygnus.com>
1821
1822         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
1823         * alpha.md (movtf): New expander, insn, and splitter.
1824
1825 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
1826
1827         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
1828         dead registers.
1829
1830 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
1831
1832         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
1833         (FIXED_REGISTERS, CALL_USED_REGISTERS,
1834          REG_ALLOC_ORDER): Add frame pointer
1835         (FRAME_POINTER_REGNUM): Set to 20
1836         (HARD_FRAME_POINTER_REGNUM): New macro.
1837         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
1838         to HARD_FRAME_POINTER.
1839         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
1840         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
1841         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
1842         (HI_REGISTER_NAMES): Add "frame".
1843         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
1844         (debug_reg): Handle FRAME_POINTER_REGNUM.
1845         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
1846         GENERAL_REGS and INDEX_REGS.
1847         * i386.c (SAVED_REGS_FIRST): new macro.
1848         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
1849         (ix86_decompose_address, memory_address_length): Likewise.
1850         (regclass_map): Add frame pointer.
1851         (call_insn_operand): Handle frame_pointer_rtx.
1852         (reg_no_sp_operand): Likewise.
1853         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
1854         (print_operand, legitimize_pic_address): Fix formating.
1855         (ix86_compute_frame_size): Make static, update prototype, new
1856         parameters padding1, padding2, use ix86_nsaved_regs, use
1857         stack_alignment_needed.
1858         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
1859         to HARD_FRAME_POINTER_REGNUM conversions.
1860         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
1861         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
1862         (print_reg): Abort on FRAME_POINTER_REGNUM
1863
1864 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
1865
1866         * i386.h (PREDICATE_CODES): Add aligned_operand.
1867         * i386.c (aligned_operand): New function.
1868         (ix86_aligned_p): Kill.
1869         * i386.md (movhi_1): Emit mov for aligned operands.
1870         (promoting peep2s): Use aligned_operand.
1871
1872 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
1873
1874         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
1875         expression to allow underscores in macro names.
1876         (fix_char_macro_defines): Increment scanning pointer.
1877
1878 2000-01-23  Richard Henderson  <rth@cygnus.com>
1879
1880         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
1881         * alpha/osf5.h: New file.
1882         * configure.in (alpha-*-osf5): Add it to tm_file.
1883
1884         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
1885
1886         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
1887         (alpha_emit_xfloating_cvt, function_arg): Declare.
1888         * alpha.c (alpha_emit_conditional_branch): Call
1889         alpha_emit_xfloating_compare for TFmode compares.
1890         (alpha_lookup_xfloating_lib_func): New.
1891         (alpha_compute_xfloating_mode_arg): New.
1892         (alpha_emit_xfloating_libcall): New.
1893         (alpha_emit_xfloating_arith): New.
1894         (alpha_emit_xfloating_compare): New.
1895         (alpha_emit_xfloating_cvt): New.
1896         (print_operand): Add default abort case.
1897         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
1898         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
1899         (BIGGEST_ALIGNMENT): Increase to 128 bits.
1900         (RETURN_IN_MEMORY): True for TF/TCmode.
1901         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
1902         (FUNCTION_ARG): Move to function_arg.
1903         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
1904         (ASM_OUTPUT_LONG_DOUBLE): New.
1905         (ASM_OUTPUT_DOUBLE): Always output bits.
1906         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
1907         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
1908         (extenddftf2, trunctfdf2): New.
1909
1910 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1911
1912         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
1913         * config/sparc/sol2.h: ... here.
1914
1915 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1916
1917         * basic-block.h (struct loops): New field `levels'.
1918         * flow.c (flow_loops_level_compute): Traverse all outer loops.
1919         (flow_loop_level_compute): Initialise level to 1.
1920         (flow_loops_find): Set loops->levels.
1921         (flow_loops_dump): Print loops->levels.
1922
1923 2000-01-23  Richard Henderson  <rth@cygnus.com>
1924
1925         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
1926         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
1927
1928 2000-01-23  Richard Henderson  <rth@cygnus.com>
1929
1930         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
1931         * i386.h (DBX_REGISTER_NUMBER): Use them.
1932         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
1933         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
1934         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
1935         * i386/sequent.h: Kill incorrect comment.
1936
1937 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
1938
1939         * ggc-page.c (struct page_entry): Make `context_depth' an
1940         `unsigned short'.
1941         (struct globals): Likewise.
1942
1943 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
1944
1945         * loop.c (check_dbra_loop): When checking a loop for
1946         reversability, check the source of any stores to ensure
1947         they don't depend on an initial value.
1948
1949 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1950
1951         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
1952
1953 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
1954
1955         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
1956         'pz_scan' into scope of entire function.  Only affects
1957         compiles with -DDEBUG.
1958
1959 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
1960
1961         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
1962         section naming to that prior to 2000-01-07 patch.
1963         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
1964         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
1965         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
1966         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
1967         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
1968
1969 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
1970
1971         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
1972         constant.
1973
1974 2000-01-21  Jim Wilson  <wilson@cygnus.com>
1975
1976         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
1977         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
1978
1979 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
1980
1981         * cpphash.c (change_newlines): Delete function.
1982         (struct argdata): Delete 'newlines' and 'use_count' fields.
1983         (macroexpand): Remove code referencing those fields.
1984
1985 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1986
1987         * loop.c (loops_info): New variable.
1988         (loop_optimize): Allocate loops->array and free it on exit.
1989         Allocate memory for loops_info and assign to each loop,
1990         replacing alloca.
1991         (find_and_verify_loops): Do not allocate loops->array.
1992
1993 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
1994
1995         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
1996
1997 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
1998
1999         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
2000         pseudos if expanded after first flow.
2001         (movdi_pic_label_ref): Likewise.
2002
2003 2000-01-20  Richard Henderson  <rth@cygnus.com>
2004
2005         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
2006
2007 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
2008
2009         * Makefile.in (fixinc.sh): Depend on specs.
2010         * fixinc/Makefile.in: Add rule to create machname.h.
2011         (fixlib.o): Depend on machname.h.
2012         * fixinc/fixtests.c (machine_name): New test.
2013         * fixinc/fixfixes.c (machine_name): New fix.
2014         * fixinc/fixlib.c (mn_get_regexps): New helper function for
2015         the machine_name test and fix.
2016         * fixinc/fixlib.h: Prototype it.
2017         * fixinc/inclhack.def (machine_name): Use the C test and fix.
2018         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
2019
2020         * gcc.c (do_spec_1) [case P]: Take care not to create
2021         identifiers with three leading or trailing underscores.
2022
2023         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
2024         (fixincl): Don't specify libraries twice on link line.
2025         (gnu-regex.o): Remove special rule.
2026         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
2027         defined by config.h.  Do not define _REGEX_RE_COMP.
2028         (regcomp): Allocate and initialize a fastmap.
2029         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
2030
2031 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
2032
2033         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
2034
2035 2000-01-19  Richard Henderson  <rth@cygnus.com>
2036
2037         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
2038         arguments with BB.  Update all callers.  Tidy line wrapping.
2039
2040 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
2041
2042         * emit-rtl.c (try_split): Return last_insn if we split the
2043         last_insn.
2044
2045 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
2046
2047         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
2048         (ix86_initial_elimination_offset): Declare.
2049         * i386.c (ix86_nsaved_regs): Break out from ...
2050         (ix86_can_use_return_insn_p): ... here.
2051         (ix86_emit_save_regs): Break out from ...
2052         (ix86_expand_prologue): ... here.
2053         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
2054         out from ...
2055         (ix86_expand_epilogue): ... here.
2056         (ix86_compute_frame_size): Make static, add prototype.
2057         (ix86_initial_elimination_offset): Break out from ...
2058         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
2059
2060 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2061
2062         * recog.h (OUT_FCN): Delete.
2063
2064         * vax.md: Call `get_insn_template' instead of OUT_FCN.
2065
2066 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2067
2068         * cppalloc.c: PROTO -> PARAMS.
2069         * cpperror.c: Likewise.
2070         * cppfiles.c: Likewise.
2071         * cpplib.c: Likewise.
2072         * cpplib.h: Likewise.
2073
2074         * config/arm/arm-protos.h: PROTO -> PARAMS.
2075         * config/arm/arm.c: Likewise.
2076         * config/c4x/c4x.c: Likewise.
2077         * config/fr30/fr30-protos.h: Likewise.
2078         * config/nextstep.c: Likewise.
2079         * config/pa/pa.c: Likewise.
2080         * config/pj/pj.c: Likewise.
2081         * config/rs6000/rs6000.c: Likewise.
2082         * config/v850/v850-protos.h: Likewise.
2083         * config/v850/v850.c: Likewise.
2084
2085 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2086
2087         * i370-protos.h: New file.
2088
2089         * i370.c: Include tm_p.h.  Fix compile time warnings.
2090
2091         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
2092         warnings.
2093
2094         * i370.md: Likewise.
2095
2096 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2097
2098         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
2099         (target_isinf, target_isnan, eisnan): Mark parameter with
2100         ATTRIBUTE_UNUSED.
2101         (eiisinf): Wrap in INFINITY.
2102         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
2103         (ibmtoe): Remove unused variable `rndsav'.
2104
2105 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2106
2107         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
2108         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
2109
2110 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
2111
2112         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
2113         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
2114         (fix_char_macro_defines, fix_char_macro_uses): New functions.
2115
2116         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
2117         Recognize Emacs mode markers also.
2118         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
2119         C++ comments in C++ headers.  Call is_cxx_header only if
2120         necessary.
2121
2122         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
2123         bypass for ncurses.
2124         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
2125         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
2126         ... these, which use the new C fixes.
2127         (math_exception): Escape literal '+' in bypass expression.
2128
2129         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
2130         Regenerate.
2131
2132 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
2133
2134         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
2135         inside the MEM.
2136
2137 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2138
2139         * loop.c (loop_optimize): Allocate loop_info structure for each loop
2140         prior to calling scan_loop.
2141
2142 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2143
2144         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
2145         (split_branches, calc_live_regs): Likewise.
2146
2147 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2148
2149         * sh.md (fpu_single, fp_mode): New attributes.
2150
2151 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2152
2153         * loop.c (current_loop_info): Renamed from loop_info_data
2154         and changed to a pointer.
2155         (loop_optimize): Allocate loop_info structure for each loop
2156         and initialise to zero.
2157         (scan_loop): Set current_loop_info.
2158
2159         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
2160         on iteration_var.
2161
2162 2000-01-19  Richard Henderson  <rth@cygnus.com>
2163
2164         * stupid.c: Die die die.
2165         * Makefile.in (OBJS): Remove stupid.o.
2166         (stupid.o): Likewise.
2167
2168         * except.c (emit_eh_context): Don't emit USEs for stupid.
2169         * explow.c (probe_stack_range): Likewise.
2170         * flags.h (obey_regdecls): Remove.
2171         * flow.c (find_basic_blocks): Don't run try_merge_blocks
2172         when not optimizing.
2173         (life_analysis): Limit data collection when not optimizing.
2174         (mark_regs_live_at_end): Always mark the return value registers.
2175         (mark_used_regs): Remove dummy RETURN case.
2176         (print_rtl_with_bb): Don't consult obey_regdecls.
2177         * function.c (use_variable, use_variable_after): Remove.
2178         (assign_parms): Consult optimize not obey_regdecls.
2179         (expand_function_start): Don't emit USEs for stupid.
2180         (expand_function_end): Likewise.
2181         * global.c (build_insn_chain): Export.
2182         * integrate.c (expand_inline_function): Kill return-value USE
2183         handling code.
2184         * jump.c (jump_optimize_1): Do simple jump optimizations and
2185         dead code elimination.
2186         (calculate_can_reach_end): Remove check_deleted argument.
2187         (delete_insn): Patch out insns even when not optimizing.
2188         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
2189         * rtl.h (use_variable, use_variable_after): Remove declarations.
2190         (build_insn_chain): Declare.
2191         * stmt.c (expand_value_return): Don't emit USEs for stupid.
2192         (expand_end_bindings): Likewise.
2193         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
2194         * toplev.c (obey_regdecls): Remove.
2195         (rest_of_compilation): Don't set it.  Kill stupid in favour of
2196         flow1, local-alloc, and reload.
2197         (main): Don't set obey_regdecls.
2198
2199         * config/nextstep.c (handle_pragma): Likewise.
2200
2201         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
2202
2203         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
2204
2205 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2206
2207         * alpha-protos.h: PROTO -> PARAMS.
2208         * alpha.c: Likewise.
2209         * elf.h: Likewise.
2210         * h8300.c: Likewise.
2211         * i386-protos.h: Likewise.
2212         * i386.c: Likewise.
2213         * m32r-protos.h: Likewise.
2214         * m32r.c: Likewise.
2215         * mips.c: Likewise.
2216         * mips.md: Likewise.
2217         * gmon-sol2.c: Likewise.
2218         * sparc.c: Likewise.
2219
2220 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2221
2222         * ns32k-protos.h: New file.
2223
2224         * ns32k.c: Fix compile time warnings.
2225
2226         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
2227         warnings.
2228
2229         * ns32k.md: Likewise.
2230
2231 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2232
2233         * vax-protos.h: New file.
2234
2235         * vax.c: Fix compile time warnings.
2236
2237         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
2238         warnings.
2239
2240         * vax.md: Likewise.
2241
2242         * vaxv.md: Likewise.
2243
2244 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2245
2246         * romp-protos.h: New file.
2247
2248         * romp.c: Fix compile time warnings.
2249
2250         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
2251         warnings.
2252
2253         * romp.md: Likewise.
2254
2255 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2256
2257         * we32k-protos.h: New file.
2258
2259         * we32k.c: Fix compile time warnings.
2260
2261         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
2262         warnings.
2263
2264 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2265
2266         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
2267
2268         * except.c (eh_regs): Likewise.
2269
2270         * final.c (output_operand): Likewise.
2271
2272         * fold-const.c (target_isinf, target_isnan): Likewise.
2273
2274 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
2275
2276         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
2277         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
2278
2279         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
2280         when optimize_size.
2281         (clrstrsi): Rewrite.
2282         (strsethi, strsetqi): New expanders.
2283         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
2284         (cmpstrsi): Emit compare insn before cmpstrsi_1
2285         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
2286         (strlensi_1): Likewise.
2287         (cmpstrsi_1): Likewise; do not output compare.
2288         (strlen expander): Do not unroll when optimizing for size.
2289         (*subsi3_carry): Rename to subsi3_carry
2290         (addqi3_cc): New pattern.
2291         * i386.h (processor_costs): Add move_ratio field.
2292         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
2293         * i386.c (*_cost): Set move_ratio.
2294         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
2295         (x86_expand_strlensi_1): Rewrite the main loop.
2296
2297 2000-01-17  Richard Henderson  <rth@cygnus.com>
2298
2299         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
2300         * cse.c (find_comparison_args, fold_rtx): Likewise.
2301         * integrate.c (subst_constants): Likewise.
2302         * loop.c (get_condition): Likewise.
2303
2304         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
2305
2306         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
2307
2308 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2309
2310         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
2311         (RESTORE_WARN_FLAGS): Unpack it.
2312         Change semantic type of extension to ttype.
2313         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
2314         * c-parse.y, c-parse.c, objc/objc-parse.y,
2315         objc/objc-parse.c: Regenerate.
2316
2317 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
2318
2319         * fixinc/fixlib.c: Add copyright notice.
2320         (compile_re): New function.
2321         * fixinc/fixlib.h: Prototype compile_re.
2322
2323         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
2324         Use compile_re to compile regular expressions.
2325
2326         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
2327         where the pattern matched.
2328
2329         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
2330         use 'replace'.
2331         (ultrix_ansi_compat): Likewise.
2332         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
2333         add egrep test.
2334         (interactv_add2, interactv_add3): Delete.
2335         (x11_sprintf): Don't use filename glob.
2336         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
2337         Regenerate.
2338
2339 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2340
2341         * print-rtl.c: PROTO -> PARAMS.
2342         * real.c: Likewise.
2343         * reg-stack.c: Likewise.
2344         * resource.c: Likewise.
2345         * sdbout.h: Likewise.
2346         * simplify-rtx.c: Likewise.
2347         * stor-layout.c: Likewise.
2348         * stupid.c: Likewise.
2349         * xcoffout.c: Likewise.
2350         * xcoffout.h: Likewise.
2351
2352 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2353
2354         * toplev.c: PROTO -> PARAMS.
2355         * toplev.h: Likewise.
2356         * tree.c: Likewise.
2357         * tree.h: Likewise.
2358         * unroll.c: Likewise.
2359         * varasm.c: Likewise.
2360         * varray.c: Likewise.
2361         * varray.h: Likewise.
2362
2363 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2364
2365         * reload.c: PROTO -> PARAMS.
2366         * reload.h: Likewise.
2367         * reload1.c: Likewise.
2368         * reorg.c: Likewise.
2369         * resource.h: Likewise.
2370         * rtl.c: Likewise.
2371         * rtl.h: Likewise.
2372         * rtlanal.c: Likewise.
2373         * sbitmap.h: Likewise.
2374         * sdbout.c: Likewise.
2375         * stack.h: Likewise.
2376         * stmt.c: Likewise.
2377         * system.h: Likewise.
2378
2379 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2380
2381         * machmode.h: PROTO -> PARAMS.
2382         * mbchar.h: Likewise.
2383         * mips-tdump.c: Likewise.
2384         * mips-tfile.c: Likewise.
2385         * optabs.c: Likewise.
2386         * output.h: Likewise.
2387         * prefix.c: Likewise.
2388         * profile.c: Likewise.
2389         * protoize.c: Likewise.
2390         * real.h: Likewise.
2391         * recog.c: Likewise.
2392         * recog.h: Likewise.
2393         * regclass.c: Likewise.
2394         * regmove.c: Likewise.
2395         * regs.h: Likewise.
2396
2397 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2398
2399         * ggc-common.c: PROTO -> PARAMS.
2400         * ggc-page.c: Likewise.
2401         * ggc-simple.c: Likewise.
2402         * ggc.h: Likewise.
2403         * global.c: Likewise.
2404         * graph.c: Likewise.
2405         * gthr-win32.h: Likewise.
2406         * haifa-sched.c: Likewise.
2407         * halfpic.h: Likewise.
2408         * integrate.c: Likewise.
2409         * integrate.h: Likewise.
2410         * jump.c: Likewise.
2411         * lcm.c: Likewise.
2412         * local-alloc.c: Likewise.
2413         * loop.c: Likewise.
2414         * loop.h: Likewise.
2415
2416 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2417
2418         * genattr.c: PROTO -> PARAMS.
2419         * genattrtab.c: Likewise.
2420         * gencheck.c: Likewise.
2421         * gencodes.c: Likewise.
2422         * genconfig.c: Likewise.
2423         * genemit.c: Likewise.
2424         * genextract.c: Likewise.
2425         * genflags.c: Likewise.
2426         * gengenrtl.c: Likewise.
2427         * genopinit.c: Likewise.
2428         * genoutput.c: Likewise.
2429         * genpeep.c: Likewise.
2430         * genrecog.c: Likewise.
2431
2432 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
2433
2434         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
2435
2436 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2437
2438         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
2439         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
2440         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
2441         * configure, config.in: Rebuilt.
2442
2443 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
2444
2445         * config/i386/i386.md: Add peephole to merge successive stack
2446         adjusts.
2447
2448 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
2449
2450         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
2451         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
2452         when walking backwards to find all the parameter loads when
2453         the basic block ends in a call.
2454
2455 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2456
2457         * loop.c (this_loop_info): Delete.
2458         (uid_loop): Add in place of uid_loop_num.  All uses updated.
2459         (loop_number_exit_count): Delete and replace with entry in loop
2460         structure.  All uses updated.
2461         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
2462         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
2463         (loop_outer_loop): Likewise.
2464         (loop_invalid, loop_number_exit_labels): Likewise.
2465         (loop_used_count_register): Delete and replace with entry in
2466         loop_info structure.
2467         (find_and_verify_loops): Add loops argument.
2468         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
2469         loop_end, etc. arguments with loop structure pointer.  All callers
2470         changed.
2471         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
2472         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
2473         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
2474         (insert_bct): Likewise.
2475         (basic_induction_var): New argument level.
2476         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
2477         vtop, and cont.  Add used_count_register.
2478         (uid_loop): Delete declaration.
2479         (loop_number_exit_count): Likewise.
2480         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
2481         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
2482         (loop_outer_loop, loop_used_count_register): Likewise.
2483         (loop_invalid, loop_number_exit_labels): Likewise.
2484         (unroll_loop): Replace loop_start and loop_end arguments
2485         with loop structure pointer.
2486         (loop_precondition_p, loop_iterations): Likewise.
2487         Include basic-block.h.
2488         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
2489         with loop structure pointer.
2490         (loop_precondition_p, loop_iterations): Likewise.
2491         * basic-block.h (struct loop): New entries vtop, cont,
2492         cont_dominator, start, end, top, scan_start, exit_labels,
2493         exit_count.
2494         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
2495
2496 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2497
2498         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
2499
2500 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
2501
2502         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
2503
2504 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2505
2506         * pdp11-protos.h: New file.
2507
2508         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
2509         time warnings.
2510
2511         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
2512         warnings.
2513
2514         * pdp11.md: Likewise.
2515
2516         * 2bsd.h: Likewise.
2517
2518 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2519
2520         * mn10300-protos.h: New file.
2521
2522         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
2523         time warnings.
2524
2525         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
2526         warnings.
2527
2528         * mn10300.md: Likewise.
2529
2530 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2531
2532         * mn10200-protos.h: New file.
2533
2534         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
2535         time warnings.
2536
2537         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
2538         warnings.
2539
2540         * mn10200.md: Likewise.
2541
2542 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2543
2544         * h8300-protos.h: New file.
2545
2546         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
2547         time warnings.
2548
2549         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
2550         warnings.
2551
2552         * h8300.md: Likewise.
2553
2554 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2555
2556         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
2557         (asm_emit_uninitialised): Likewise.
2558
2559 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
2560
2561         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
2562         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
2563
2564 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
2565
2566         * config/mips/mips.c (override_options): Don't turn on extra
2567         alignment for mips16.
2568
2569 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
2570
2571         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
2572         eabi, and make sure queued POSTINCREMENT rtl is emitted at
2573         the right point.
2574
2575 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
2576
2577         * builtins.c (PAD_VARARGS_DOWN): Define.
2578         (std_expand_builtin_va_arg): Use the above macro.
2579         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
2580         * tm.texi (Register Arguments): Document the above macro.
2581
2582 2000-01-14  Nick Clifton  <nickc@cygnus.com>
2583
2584         * emit-rtl.c (emit_insn): If checking is enabled, make sure
2585         that this function has not been used to emit a jump
2586         instruction.
2587
2588         * jump.c (return_jump_1): Cope with being passed a null rtx.
2589
2590 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2591
2592         * eh-common.h: PROTO -> PARAMS.
2593         * emit-rtl.c: Likewise.
2594         * errors.c: Likewise.
2595         * errors.h: Likewise.
2596         * except.c: Likewise.
2597         * except.h: Likewise.
2598         * explow.c: Likewise.
2599         * expmed.c: Likewise.
2600         * expr.c: Likewise.
2601         * expr.h: Likewise.
2602         * final.c: Likewise.
2603         * fix-header.c: Likewise.
2604         * flow.c: Likewise.
2605         * fold-const.c: Likewise.
2606         * function.c: Likewise.
2607         * function.h: Likewise.
2608         * gcc.c: Likewise.
2609         * gcov-io.h: Likewise.
2610         * gcov.c: Likewise.
2611         * gcse.c: Likewise.
2612
2613 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2614
2615         * sh-protos.h: New file.
2616
2617         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
2618         Add static prototypes.  Fix compile time warnings.
2619
2620         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
2621         * sh.md: Likewise.
2622         * elf.h: Likewise.
2623
2624 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2625
2626         * arc-protos.h: New file.
2627
2628         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
2629         time warnings.
2630
2631         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
2632         warnings.
2633
2634         * arc.md: Likewise.
2635
2636 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2637
2638         * dsp16xx-protos.h: New file.
2639
2640         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
2641         time warnings.
2642
2643         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
2644         warnings.
2645
2646         * dsp16xx.md: Likewise.
2647
2648 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2649
2650         * convex-protos.h: New file.
2651
2652         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
2653         time warnings.
2654
2655         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
2656         warnings.
2657
2658 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2659
2660         * elxsi-protos.h: New file.
2661
2662         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
2663         time warnings.
2664
2665         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
2666         warnings.
2667
2668         * elxsi.md: Likewise.
2669
2670 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
2671
2672         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
2673         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
2674         match the comment for MIPS16.
2675
2676 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
2677
2678         * flow.c (split_edge): Do not call set_block_for_insn if we
2679         do not have a basic_block_for_insn structure.
2680
2681         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
2682         and destination functions are 32bit aligned within the trampoline.
2683         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
2684         (TRAMPOLINE_ALIGNMENT): Define.
2685
2686         * cse.c (cse_insn): When changing (set (pc) (reg)) to
2687         (set (pc) (label_ref)), verify the change creates a valid insn.
2688
2689         * fr30.c (call_operand): Tighten and rework to match rules for
2690         call RTL expressions.
2691         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
2692         * fr30.md (call patterns): Improve constraints.
2693
2694 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
2695
2696         * fr30.c (fr30_expand_epilogue): Revert last change.
2697         Use emit_jump_insn for the return insn.
2698
2699 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
2700                           Stan Cox  <scox@cygnus.com>
2701
2702         * predict.c: New file. Preliminary infrastructure work for static
2703         branch prediction and basic block reordering.
2704         * basic-block.h: Add prototype for estimate_probability.
2705         * Makefile.in: Add rules for predict.o.
2706
2707 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
2708
2709         * fixincludes (va_list): Use __not_va_list__ for the dummy.
2710         * fixinc/*: Likewise.
2711
2712 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2713
2714         * cccp.c: PROTO -> PARAMS.
2715         * cexp.y: Likewise.
2716         * collect2.c: Likewise.
2717         * combine.c: Likewise.
2718         * convert.h: Likewise.
2719         * cse.c: Likewise.
2720         * dbxout.c: Likewise.
2721         * dbxout.h: Likewise.
2722         * diagnostic.c: Likewise.
2723         * doprint.c: Likewise.
2724         * dwarf2out.c: Likewise.
2725         * dwarf2out.h: Likewise.
2726         * dwarfout.c: Likewise.
2727         * dwarfout.h: Likewise.
2728         * dyn-string.h: Likewise.
2729
2730 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2731
2732         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
2733         macro conditionals guarding use.
2734
2735         * dwarf2out.c: Include "tm_p.h".
2736
2737         * function.c (locate_and_pad_parm): Mark parameter with
2738         ATTRIBUTE_UNUSED.
2739         (expand_function_end): Likewise for variable `context'.
2740
2741         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
2742
2743 2000-01-13  Nick Clifton  <nickc@cygnus.com>
2744
2745         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
2746         register to prevent compile time warnings.
2747
2748 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
2749
2750         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
2751         to avoid -Wtraditional warning.
2752
2753 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754
2755         * 1750a-protos.h: New file.
2756
2757         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
2758         time warnings.
2759
2760         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
2761         warnings.
2762
2763         * 1750a.md: Likewise.
2764
2765 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2766
2767         * a29k-protos.h: New file.
2768
2769         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
2770         time warnings.
2771
2772         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
2773         warnings.
2774
2775 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2776
2777         * clipper-protos.h: New file.
2778
2779         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
2780         time warnings.
2781
2782         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
2783         warnings.
2784
2785 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2786
2787         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
2788
2789 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
2790
2791         * configure.in (--enable-new-gxx-abi): New option.
2792         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
2793         * Makefile.in (GXX_ABI_FLAG): New variable.
2794         * configure: Regenerate.
2795
2796 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2797
2798         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
2799         * tm.texi (FORCE_STRUCT_BLK): Document.
2800         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
2801
2802 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
2803
2804         * config/ns32k/ns32k.md: Revert Jan 9 change.
2805
2806         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
2807         to a mode-test, if the predicate is address_operand.
2808
2809 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
2810
2811         * combine.c (if_then_else_cond): Be careful about what kinds
2812         of RTL expressions are passed to operand_subword.
2813
2814         * flow.c (split_edge): If we have to insert a new jump, make
2815         sure to associate it with a basic block.
2816
2817         * flow.c (commit_one_edge_insertion): A block with one successor
2818         can end in a JUMP_INSN that is not a simplejump.
2819
2820 2000-01-12  Robert Lipe  <robertl@sco.com>
2821
2822         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
2823         (BUILD_VA_LIST_TYPE): Define.
2824         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
2825         with crtstuff.c.
2826
2827 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
2828
2829         * cccp.c (do_pragma): Add cast to (char *).
2830
2831 2000-01-12  Richard Henderson  <rth@cygnus.com>
2832             Fred Fish  <fnf@be.com>
2833             Jason Merrill  <jason@cygnus.com>
2834
2835         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
2836         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
2837         * i386/beos-elf.h, i386/beos-pe.h: New files.
2838
2839         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
2840         * cross-make (SYSTEM_HEADER_DIR): Define using
2841         CROSS_SYSTEM_HEADER_DIR.
2842
2843         * gcc.c (LIBRARY_PATH_ENV): Provide default.
2844         (process_command): Use it.
2845         (main): Likewise.  Kill trailing = from env vars.
2846         (build_search_list): Put it back.
2847         * collect2.c (main): Use LIBRARY_PATH_ENV.
2848
2849         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
2850         * toplev.c: Use NEED_DECLARATION_ENVIRON.
2851
2852         * tm.texi (Frame Layout): Document SMALL_STACK.
2853         * c-common.c (c_common_nodes_and_builtins): Check it.
2854
2855         * system.h: Undef alloca after including glibc's <stdlib.h>,
2856         if USE_C_ALLOCA is defined.
2857
2858         * gcc.c (set_input): New fn.
2859         (main): After all input files are compiled, reset the input file
2860         info to the first.
2861
2862         * aclocal.m4 (rindex, index): If already defined, don't attempt
2863         to redefine.
2864
2865         * ginclude/varargs.h: (__va_list__): Define ifndef.
2866         * ginclude/stdarg.h: Likewise.
2867
2868         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
2869         instead of unsigned char.
2870
2871         * hash.h (true, false, boolean): Undef before enum.
2872
2873         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
2874         proper type of "HOST_WIDE_INT *", rather than their natural type of
2875         "unsigned HOST_WIDE_INT *".
2876
2877 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2878
2879         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
2880
2881         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
2882
2883         * regclass.c (choose_hard_reg_mode): Likewise.
2884
2885         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
2886
2887         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
2888
2889 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2890
2891         * c-common.c: PROTO -> PARAMS.
2892         * c-common.h: Likewise.
2893         * c-decl.c: Likewise.
2894         * c-iterate.c: Likewise.
2895         * c-lang.c: Likewise.
2896         * c-lex.c: Likewise.
2897         * c-lex.h: Likewise.
2898         * c-parse.in: Likewise.
2899         * c-pragma.c: Likewise.
2900         * c-pragma.h: Likewise.
2901         * c-tree.h: Likewise.
2902         * c-typeck.c: Likewise.
2903         * objc/objc-act.c: Likewise.
2904         * objc/objc-act.h: Likewise.
2905
2906 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2907
2908         * m88k-protos.h: New file.
2909
2910         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
2911         time warnings.
2912
2913         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
2914
2915         * m88k.md: Likewise.
2916
2917         * tekXD88.h: Likewise.
2918
2919 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2920
2921         * m68k-protos.h: New file.
2922
2923         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
2924         time warnings.
2925
2926         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
2927
2928         * mot3300.h: Likewise.
2929
2930 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
2931
2932         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
2933         extract_bitlst.
2934         (extract_bitlist): Declare bitlen.
2935
2936 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
2937
2938         * cccp.c: Accept and ignore -lang-fortran.
2939
2940         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
2941         qualifiers don't match at any level of pointerness.
2942
2943 2000-01-12  Robert Lipe  <robertl@sco.com>
2944
2945         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
2946
2947 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
2948
2949         * reload1.c (reload_reg_unavailable): New static variable.
2950         (reload_reg_free_p): Test it.
2951         (reload_reg_free_for_value_p): Test it instead of
2952         reload_reg_used.
2953         (choose_reload_regs_init): Compute it.
2954
2955 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
2956
2957         * reorg.c (fill_slots_from_thread): Check modified_in_p
2958         before replacing.
2959
2960 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
2961
2962         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
2963         these nodes even if INTERNALS is not set.
2964
2965 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
2966
2967         * gcse.c (delete_null_pointer_checks_1): Cope when
2968         get_condition cannot determine the condition.
2969
2970 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
2971
2972         * toplev.h (set_message_length): Declare.
2973
2974         * diagnostic.c (obstack_chunk_alloc): Define macro.
2975         (obstack_chunk_free): Likewise.
2976         (struct output_buffer): New data structure.
2977         (vmessage): Remove.
2978         (output_maximum_width): New variable.
2979         (doing_line_wrapping, set_message_length, init_output_buffer,
2980         get_output_prefix, output_space_left, emit_output_prefix,
2981         output_newline, output_append, output_puts, dump_output,
2982         vbuild_message_string, build_message_string, build_location_prefix,
2983         voutput_notice, output_printf, line_wrapper_printf,
2984         vline_wrapper_message_with_location):  New functions. Implement
2985         automatic line wrapping.
2986         (v_message_with_decl): Make it handle automatic line wrapping.
2987         (v_error_with_file_and_line): Likewise.
2988         (v_warning_with_file_and_line): Likewise.
2989         (announce_function): Likewise.
2990         (default_print_error_function): Likewise.
2991
2992 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
2993
2994         * cpplib.h (struct cpp_options): Change lang_asm to char.
2995         Add lang_fortran.
2996         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
2997         done in cpp_handle_option now.
2998         (initialize_builtins): Take out special case code used only by
2999         __STDC_VERSION__.
3000         (cpp_handle_option): Turn off trigraphs and trigraph warnings
3001         if -traditional.  Recognize -lang-fortran and set
3002         lang_fortran, also turn off cplusplus_comments.
3003         (print_help): Document -lang-fortran.
3004         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
3005         lang_asm. Ignore all directives other than `# 123 "file"' if
3006         CPP_PREPROCESSED.
3007         (cpp_get_token): If -traditional, don't recognize directives
3008         unless the # is in column 1.
3009         (parse_string): If lang_fortran or lang_asm, silently
3010         terminate strings ('' or "") at end of line.
3011         Remove unnecessary braces.
3012
3013 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3014             Richard Henderson  <rth@cygnus.com>
3015
3016         * resource.c (mark_referenced_resources): Mark a set strict_low_part
3017         as used.
3018         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
3019         strict_low_part when possible.
3020
3021 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3022
3023         * alias.c: PROTO -> PARAMS.
3024         * basic-block.h: Likewise.
3025         * bitmap.c: Likewise.
3026         * bitmap.h: Likewise.
3027         * builtins.c: Likewise.
3028         * c-aux-info.c: Likewise.
3029         * caller-save.c: Likewise.
3030         * calls.c: Likewise.
3031
3032 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3033
3034         * Makefile.in (toplev.o): Depend on regs.h.
3035
3036         * output.h (tdesc_section): Prototype.
3037
3038         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
3039
3040         * sdbout.c: Include "tm_p.h".
3041
3042         * toplev.c: Include "regs.h".
3043
3044 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
3045
3046         * unroll.c (unroll_loop): Add EH support.
3047
3048 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3049
3050         * pa-protos.h: New file.
3051
3052         * pa.c: Include recog.h and tm_p.h.
3053         (compute_zdepwi_operands, compute_movstrsi_length,
3054         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
3055         find_addr_reg, import_milli): Add static prototypes.
3056         (pa_cpu_string, pa_arch_string): Constify a char*.
3057         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
3058         (read_only_operand): Add argument `mode'.
3059         (singlemove_string, output_move_double, output_fp_move_double,
3060         output_block_move, output_and, output_ior, output_ascii,
3061         remove_useless_addtr_insns, milli_names, output_mul_insn,
3062         output_div_insn, output_mod_insn, output_arg_descriptor,
3063         output_cbranch, output_bb, output_bvb, output_dbra, ,
3064         output_millicode_call, output_call, hppa_encode_label,
3065         output_parallel_movb, output_parallel_addb): Constify a char*.
3066         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
3067         (output_parallel_addb): Remove extra arg to `constrain_operands'
3068
3069         * pa.h:  Move all prototypes to pa-protos.h.
3070         (pa_cpu_string, pa_arch_string): Constify a char*.
3071         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
3072
3073         * pa.md: Call `function_label_operand' with mode argument.
3074         Likewise for `read_only_operand'.
3075         Fix nesting of parens in call to `symbolic_operand'.
3076
3077 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3078
3079         * i860-protos.h: New file.
3080
3081         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
3082         time warnings.
3083
3084         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
3085
3086         * i860.md: Likewise.
3087
3088 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
3089
3090         * i386.md (movstrsi expander): Rewrite.
3091         (movstrsi_1 insn): Deleted.
3092         (strmovhi, strmovqi expander): New expanders.
3093         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
3094         * i386.c (x86_single_stringop): New global variable.
3095         * i386.h (x86_single_stringop): Declare.
3096         (TARGET_SINGLE_STRINGOP): New macro.
3097
3098 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
3099
3100         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
3101         integer vararg POSTINCREMENT before the destination of the jump
3102         for the hard fp case.
3103         (function_arg_pass_by_reference): Pass a copy of CUM to
3104         FUNCTION_ARG.
3105
3106         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
3107         for CONSTANT_ADDRESS_P above while loop for subreg.
3108
3109 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
3110
3111         * flow.c (propagate_block): When a prologue/epilogue insn
3112         is marked dead, unconditionally clear libcall_is_dead and
3113         insn_is_dead, and only dump rtl if warnings aren't being
3114         suppressed.
3115
3116 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
3117
3118         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
3119         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
3120         (FIXED_REGISTERS): Set dirflag as fixed.
3121         (CALL_USED_REGISTERS): Set dirflag as used.
3122         (REG_ALLOC_ORDER): Set dirflag as last one.
3123         (DIRFLAG_REG): New macro.
3124         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
3125         (HI_REGISTER_NAMES): Add dirflag.
3126         (DEBUF_PRINT_REG): Handle dirflag.
3127         * i386.md (type attribute): New cld and str types.
3128         (length_opcode attribute): Set cld and str to 1.
3129         (memory attribute): Set str to unknown - it is not clear from the
3130         patterns.
3131         (pent_np function unit): Prefixed string operations takes 12 cycles
3132         minimally; cld takes 2 cycles.
3133         (ppro_uops attribute): Str is "many" and cld is "few".
3134         (ppro_p0 unit): Handle cld here.
3135         (k6_alux unit): Handle cld and str types.
3136         (k6_load unit): It is ocupied by str opcodes.
3137         (k6_store unit): It is ocupied by str opcodes.
3138         (athlon_decode): Str is vector decoded.
3139         (athlon_ieu): Handle str and cld.
3140         (cld pattern): New.
3141         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
3142         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
3143         cmpstrsi_nz_1 insn): Do not output cld instruction
3144
3145 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
3146
3147         * gcc.texi (G++ and GCC): Add Java and Chill.
3148         (Bug Critera): Don't list languages.
3149
3150         * gcc.texi (Incompatibilities): No longer claim most C compilers
3151         are K&R.
3152
3153         * gcc.texi (G++ and GCC): Update other front-ends list.
3154
3155 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
3156
3157         * i386.c (ix86_expand_setcc): Fix typo.
3158         (ix86_expand_movcc): Similarly.
3159
3160         * Band-aid until haifa's bitset implementation is nuked.
3161         * haifa-sched.c (extract_bitlst): New parameter for size of the
3162         bitset in bits.  All callers changed.  Avoid looking at undefined
3163         bits in the bitset.
3164         (edgeset_bitsize): New variable.
3165         (schedule_region): Initialize edgeset_bitsize.
3166
3167 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3168
3169         * Makefile.in (optabs.o): Depend on real.h
3170         (resource.o): Depend on insn-attr.h
3171
3172         * builtins.c (result_vector): Wrap prototype in macro conditions
3173         governing definition and use.
3174
3175         * c-common.c: Include tm_p.h.
3176
3177         * c-lex.c: Likewise.
3178
3179         * elfos.h: Constify a char*.
3180
3181         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
3182         (get_attr_length, shorten_branches, profile_after_prologue): Mark
3183         parameter with ATTRIBUTE_UNUSED.
3184
3185         * fold-const.c (exact_real_inverse): Wrap variable `i' in
3186         CHECK_FLOAT_VALUE.
3187
3188         * haifa-sched.c (schedule_insns): Mark parameter with
3189         ATTRIBUTE_UNUSED.
3190
3191         * optabs.c: Include real.h.
3192
3193         * real.h (ereal_atof): Add prototype arguments.
3194
3195         * resource.c: Include insn-attr.h.
3196
3197         * sdbout.c (sdbout_queue_anonymous_type,
3198         sdbout_dequeue_anonymous_types): Wrap in macro
3199         SDB_ALLOW_FORWARD_REFERENCES.
3200         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
3201         ATTRIBUTE_UNUSED.
3202
3203         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
3204
3205         * stupid.c: Include tm_p.h.
3206
3207         * tree.c (real_value_from_int_cst): Mark parameter with
3208         ATTRIBUTE_UNUSED.
3209
3210 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3211
3212         * i960-protos.h: New file.
3213
3214         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
3215         time warnings.
3216
3217         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
3218
3219 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3220
3221         * combine.c (expand_field_assignment): Do not discard SUBREGs
3222         while computing nonzero_bits.
3223
3224 2000-01-09  Nick Clifton  <nickc@cygnus.com>
3225
3226         * config/arm/arm.c: Fix compile time warnings about signed vs
3227         unsigned constants.
3228         * config/arm/arm.h: Fix compile time warnings about signed vs
3229         unsigned constants.
3230
3231 2000-01-09  Philip Blundell  <philb@gnu.org>
3232
3233         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
3234         than `ldm' with only one register.
3235         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
3236         only one register.
3237
3238         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
3239         clobbered.
3240
3241 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
3242
3243         * config/ns32k/ns32k.md (load or push effective address): Operand 1
3244         must have SImode.
3245
3246 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3247
3248         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
3249         assignment used as truth value.
3250
3251         * function.c (assign_temp): Mark parameter `dont_promote' with
3252         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
3253         PROMOTE_FOR_CALL_ONLY.
3254
3255         * genrecog.c (write_subroutine): Mark variable `operands' with
3256         ATTRIBUTE_UNUSED.
3257
3258         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
3259         ATTRIBUTE_UNUSED.
3260
3261         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
3262         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
3263
3264         * toplev.c (note_deferral_of_defined_inline_function): Likewise
3265         for `decl'.
3266
3267 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3268
3269         * config/c4x.h: Tidy up comments.
3270         * config/c4x.c: Likewise.
3271
3272 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
3273
3274         * fold-const.c (lshift_double, rshift_double): Handle
3275         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
3276
3277 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3278
3279         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
3280         in prepare_function_start().
3281
3282 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
3283
3284         * config/v850/v850.c (expand_epilogue): Interrupt functions no
3285         longer allocate extra stack for function calls.
3286
3287 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3288
3289         * config/c4x/c4x.md (*subqf3_set): Fix typo.
3290
3291 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3292
3293         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
3294
3295 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
3296
3297         * rs6000.c (processor_target_table): Add power3 as alias for 630.
3298         * aix43.h: Revert Aug 2 change.
3299         (HAS_INIT_SECTION): Define, not visible yet.
3300         (LD_INIT_SWITCH): Define, not visible yet.
3301         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
3302
3303         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
3304
3305         * collect2.c (main): Expand ld2 size further.
3306         (export_object_lst): Cast assignment to avoid warning.
3307         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
3308         (scan_prog_file, COFF): Do not collect initialization or
3309         finalization functions generated for entire shared object if
3310         init/fini support present.
3311
3312 2000-01-07  Nick Clifton  <nickc@cygnus.com>
3313
3314         * config/elfos.h: Tidy up formatting of marcos.  Make sure
3315         that .section directives are always prefixed by a tab.
3316
3317         * config/svr4.h: Add #include "elfos.h" and remove duplicate
3318         definitions.
3319
3320 2000-01-07  Matt Austern  <austern@sgi.com>
3321
3322         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
3323         expon.
3324
3325 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
3326
3327         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
3328         crtstuff.c.
3329         (crtbegin.o, s-crtS): Likewise.
3330
3331 2000-01-06  Richard Henderson  <rth@cygnus.com>
3332
3333         * alpha.md (adddi_2+1): Limit offset such that it will be
3334         loadable with a single ldah+lda pair.
3335         (adddi_2+2): Explicitly fail split if we can't make it work.
3336
3337 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
3338
3339         * protoize.c: Conditionally include unistd.h.
3340         (IS_SAME_PATH_CHAR): New macro.
3341         (IS_SAME_PATH): New macro.
3342         (CPLUS_FILE_SUFFIX): New macro.
3343         (cplus_suffix): New static variable.
3344         (is_abspath): New static function.
3345         (in_system_include_dir): Handle DOS style pathnames.
3346         (file_could_be_converted): Likewise.
3347         (file_normally_convertible): Likewise.
3348         (directory_specified_p): Likewise.
3349         (file_excluded_p): Likewise.
3350         (abspath): Likewise.
3351         (shortpath): Likewise.
3352         (referenced_file_is_newer): Likewise.
3353         (save_def_or_dec): Likewise.
3354         (do_processing): Likewise.
3355         (main): Likewise.
3356         (edit_file): Likewise. Use rename instead of link.
3357         (rename_c_file): Likewise. Don't rename syscalls file.
3358         (munge_compile_params): Define null device for DOS based systems.
3359         (process_aux_info_file): Use binary mode if appliable.
3360         (edit_file): Likewise.
3361         * invoke.texi (Running Protoize): Document C++ suffixes used.
3362
3363         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
3364         IS_DIR_SEPARATOR macros.
3365         * collect2.c: Likewise.
3366         * cppinit.c: Likewise.
3367         * dwarf2out.c: Likewise.
3368         * gcc.c: Likewise.
3369         * gcov.c: Likewise.
3370         * prefix.c: Likewise.
3371         * rtl.c: Likewise.
3372         * toplev.c: Likewise.
3373         * system.h: And move to here.
3374
3375         * prefix.c (update_path): Fix typo in variable name.
3376
3377 2000-01-06  Richard Henderson  <rth@cygnus.com>
3378
3379         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
3380         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
3381         (count_reg_sets_1, count_reg_references): Likewise.
3382         (flow_loops_level_compute): Start counting actual loop depth at 1.
3383         (flow_loops_find): Likewise.
3384         * local-alloc.c (update_equiv_regs): Likewise.
3385         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
3386
3387 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
3388
3389         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
3390         FIRST_PSEUDO_REGISTER
3391         * dwarf2out.c: Don't include frame.h
3392         * dwarfout.c: Likewise
3393         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
3394         frame.h
3395
3396 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
3397
3398         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
3399         dead registers.
3400
3401         * i386.c (movsf splitter): Fix typo in my last checkin.
3402
3403 2000-01-05  Nick Clifton  <nickc@cygnus.com>
3404
3405         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
3406         own definition of this macro.
3407         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
3408         flag_data_sections or UNIQUE_SECTION_P are true.
3409
3410         * tm.texi (UNIQUE_SECTION): Document that it can be called for
3411         unitialised data decls.
3412
3413         * config/i386/winnt.c (i386_pe_unique_section): Cope with
3414         being called for uninitialised data.
3415
3416         * config/i386/interix.c (i386_pe_unique_section): Cope with
3417         being called for uninitialised data.
3418
3419         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
3420         for uninitialised data.
3421
3422         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
3423         for uninitialised data.
3424
3425         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
3426         for uninitialised data.
3427
3428         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
3429         (UNIQUE_SECTION_P): Always generate a unique section if
3430         flag_data_sections is true.
3431         (UNIQUE_SECTION): Also generate unique sections for
3432         uninitialised data.
3433         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
3434         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
3435         named_section().
3436
3437 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3438
3439         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
3440         SI, or DI.
3441
3442 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3443
3444         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
3445         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
3446         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
3447         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
3448         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
3449
3450         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
3451
3452 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
3453
3454         * c-decl.c (finish_enum): Simplify code to determine minimum and
3455         maximum values of the enum, and calculate the type.  Remove check
3456         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
3457         the DECL_INITIAL of each enumeration constant with a copy converted
3458         to the enumeration type.  When updating variant types, don't bother
3459         updating the type itself.
3460
3461         * c-typeck.c (build_binary_op): Simplify conditional expressions
3462         when weeding out spurious signed-unsigned warnings.  Add new
3463         spurious warning category: if the unsigned quantity is an enum
3464         and its maximum value fits in signed_type(result_type).  Update
3465         commentary.
3466         (build_conditional_expr): Warn here if one alternative is signed
3467         and the other is unsigned.
3468
3469 2000-01-05  Nick Clifton  <nickc@cygnus.com>
3470
3471         * config/fr30/fr30.h: Remove extraneous comments.
3472
3473 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
3474
3475         * reload1.c (choose_reload_regs): When disabling a reload, also
3476         set reload_spill_index to -1.
3477
3478 2000-01-04  Joel Sherrill (joel@OARcorp.com>
3479
3480         * configure.in (m68*-*-rtemscoff*): New target, formal name for
3481         old m68*-*-rtems*.
3482         (m68*-*-rtemself*): New target.
3483         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
3484         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
3485         (sparc*-*-rtemself*): New target.
3486         (sparc*-*-rtems*): Now elf not a.out.
3487         * config/i386/rtems.h: Include config/rtems.h.
3488         * config/i386/rtemself.h: Include config/rtems.h.
3489         * config/i960/rtems.h: Include config/rtems.h.
3490         * config/m68k/rtems.h: Include config/rtems.h.
3491         * config/m68k/rtemself.h: Include config/rtems.h.
3492         * config/mips/rtems64.h: Include config/rtems.h.
3493         * config/pa/rtems.h: Include config/rtems.h.
3494         * config/rs6000/rtems.h: Include config/rtems.h.
3495         * config/sh/rtems.h: Include config/rtems.h.
3496         * config/sh/rtemself.h: Include config/rtems.h.
3497         * config/sparc/rtems.h: Include config/rtems.h.
3498         * config/sparc/rtemself.h: Include config/rtems.h
3499
3500 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
3501
3502         * final.c (shorten_branches): Correctly compute length of
3503         asms without operands.
3504
3505 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
3506
3507         * configure.in: Add pj target.
3508         * configure: Regenerate.
3509         * config/pj: New directory.
3510         * config/pj/lib1funcs.S: New file.
3511         * config/pj/linux.h: New file.
3512         * config/pj/pj.c: New file.
3513         * config/pj/pj.md: New file.
3514         * config/pj/pjl.h: New file.
3515         * config/pj/t-pj: New file.
3516         * config/pj/xm-pj.h: New file
3517
3518 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
3519
3520         * toplev.c (rest_of_compilation): Run shorten-branches before
3521         reg-stack for now.
3522
3523 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3524
3525         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
3526         macros so that they're consistent with their names.
3527         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
3528         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
3529
3530 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3531
3532         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
3533         modified inadvertently.
3534
3535 2000-01-04  Joel Sherrill <joel@OARcorp.com>
3536
3537         * configure.in (v850*-*-rtems*): New target.
3538         * configure: Regenerate.
3539         * config/v850/rtems.h: New file.
3540
3541 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
3542
3543         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
3544         (__gthread_key_create): Likewise.
3545         (__gthread_key_dtor):  Likewise.
3546         (__gthread_once): Fix logic.
3547         (__gthread_key_delete): Cast away constness.
3548
3549         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
3550         * invoke.texi: Document.
3551         * i386/mingw32.h (CPP_SPEC): Use.
3552         (LIBGCC_SPEC): Likewise.
3553         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
3554
3555 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
3556
3557         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
3558         (HANDLE_PRAGMA_PACK): Undefine.
3559         (SLOW_UNALIGNED_ACCESS): Define.
3560
3561 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
3562
3563         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
3564         to default definition.
3565         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
3566         (store_fixed_bit_field): Call macro with word_mode and alignment.
3567         (extract_bit_field): Call macro with relevant mode and alignment.
3568         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
3569         to default definition.
3570         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
3571         and alignment.
3572         (move_by_pieces_ninsns): Likewise.
3573         (clear_by_pieces): Likewise.
3574         (emit_push_insn): Likewise.
3575         (store_field): Call macro with relevant mode and alignment.
3576         (expand_expr): Likewise.
3577         (expand_expr_unaligned): Likewise.
3578
3579         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
3580         (SLOW_UNALIGNED_ACCESS): Define.
3581         (CASE_VECTOR_MODE): Always use 32-bit offsets.
3582         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
3583         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
3584         (toc_section): Likewise and .toc pseudo-op.
3585         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
3586         64-bit mode.
3587         (TEXT_SECTION_ASM_OP): Likewise.
3588         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
3589         32-bit offsets.
3590
3591         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
3592         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
3593         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
3594         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
3595         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
3596
3597 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
3598
3599         * regclass.c: Revert my Jan 4 change to loop cost computation.
3600
3601 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
3602
3603         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
3604         compilation.
3605
3606 2000-01-04  Stan Cox  <scox@cygnus.com>
3607
3608         * haifa-sched.c (build_control_flow): Change unreachable simple
3609         loop test to check if current block has only one predecessor.
3610         (find_rgns): Initialize degree.  Use dest as degree index, not src.
3611
3612 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3613
3614         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
3615
3616         * calls.c (expand_call): Likewise for
3617         `old_stack_arg_under_construction'.
3618
3619         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
3620
3621         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
3622         `save_constant'.
3623
3624         * gcc.c (execute): Likewise for `ut' and `st'.
3625
3626         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
3627
3628         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
3629
3630         * jump.c (jump_optimize_1): Likewise for `temp2'.
3631
3632         * local-alloc.c (block_alloc): Likewise for `r1'.
3633
3634         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
3635
3636         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
3637         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
3638
3639         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
3640         and `set2'.
3641
3642         * reload.c (find_reloads): Likewise for `goal_alternative_number'
3643         and `goal_earlyclobber'.
3644
3645         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
3646
3647         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
3648
3649         * stupid.c (stupid_life_analysis): Likewise for `chain'.
3650
3651         * unroll.c (copy_loop_body): Likewise for `copy'.
3652
3653         * varasm.c (output_constructor): Likewise for `byte'.
3654
3655 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
3656
3657         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
3658         all FP constants for constant->reg moves.
3659         (ix86_split_to_parts): Try to convert memory address into immediate
3660         when available in the constant pool.
3661         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
3662         moves.
3663         (LEGITIMATE_CONSTANT_P): Return 1.
3664         * i386.md (pushsf): New splitter to convert constant pool memory
3665         reference to immediate.
3666         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
3667         reload.
3668
3669 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
3670
3671         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
3672         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
3673         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
3674         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
3675         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
3676
3677 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
3678
3679         * ginclude/stdbool.h:  Support compilation as C++.
3680
3681 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3682
3683         * fold-const.c (make_range): Don't try to reverse an unbounded range.
3684
3685 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
3686
3687         * regclass.c (regclass): Properly compute loop_cost.  Adjust
3688         comments.
3689
3690         * regclass.c: Fix minor whitespace problems.
3691
3692 2000-01-03  Anthony Green  <green@cygnus.com>
3693
3694         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
3695         Restore the pic register if required.
3696
3697 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
3698
3699         * c-common.c (format_char_info): Update comment.
3700         (check_format_info): Recognize 'z' modifier in the same way 'Z'
3701         was recognized.  Emit warning for formats new in ISO C99 only
3702         if flag_isoc9x is not set.
3703
3704 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
3705
3706         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
3707
3708 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
3709
3710         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
3711         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
3712         (make_compound_operation): Choose cheaper alternative between
3713         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
3714
3715         * regclass.c (op_costs): Remove global variable.
3716         (record_reg_classes): New parameter "op_costs" and "reg_pref".
3717         (record_operand_costs): Break out from ...
3718         (scan_one_insn): ... here.
3719         (dump_regclass): Make dumps nicer.
3720         (regclass): Dump preferrences choosed and changes done during passes.
3721
3722 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
3723
3724         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
3725
3726 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
3727
3728         * config/sparc/sparc.c (gen_df_reg): New function.
3729         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
3730         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
3731         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
3732         movtf_cc_reg_sp64+1): Use it.
3733
3734 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
3735
3736         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
3737         copied LABEL_DECLs.
3738
3739 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
3740
3741         * config/i386/i386.c (ix86_expand_unary_operator): Function
3742         definition made void.
3743         (ix86_expand_binary_operator): Update outdated preceding comment.
3744         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
3745         prototype.
3746
3747         * config/i386/i386.c (override_options): Fix option-name typo.
3748
3749 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
3750
3751         * system.h (CEIL): Define.
3752         * builtins.c (CEIL): Remove.
3753         * expmed.c (CEIL): Likewise.
3754         * expr.c (CEIL): Likewise.
3755         * stor-layout.c (CEIL): Likewise.
3756
3757 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3758
3759         * expr.c (store_constructor_field): Fix typo introduced with last
3760         gcc2 merge.
3761
3762 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
3763
3764         * tree.h (BINFO_N_BASETYPES): New macro.
3765
3766 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
3767
3768         * expmed.c (emit_store_flag): Prevent losing a pending stack
3769         adjust the same way we prevent losing queued increments.
3770
3771 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3772
3773         * function.c (update_temp_slot_address): Handle case where sum of
3774         temporary address plus offset in register is a valid address.
3775
3776 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
3777
3778         * genrecog.c (change_state) Corrected typo.
3779
3780 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3781
3782         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
3783         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
3784         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
3785
3786 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
3787
3788         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
3789         case, expand GT comparisons correctly.  Fix a comment before this
3790         part of the code.
3791
3792 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
3793
3794         * dwarfout.c: Include "frame.h"
3795         * dwarf2out.c: Likewise.
3796         * Makefile.in (dwarfout.o): Depend on frame.h
3797         (dwarf2out.o): Likewise.
3798
3799 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
3800
3801         Restore i386 binary compatibility in Dwarf EH info.
3802         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
3803         value of FIRST_PSEUDO_REGISTER.
3804         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
3805         (struct frame_state): Use DWARF_FRAME_REGISTERS.
3806         * dwarfout.c (output_reg_number): Ditto.
3807         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
3808         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
3809
3810 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
3811
3812         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
3813         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
3814         (<hack>_RE_CT): not needed
3815         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
3816         rewritten to scan the file text once only
3817         "template<..." test added
3818         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
3819         (is_cxx_header): declaration added
3820         * fixinc/fixtests.c(is_cxx_header): removed
3821         (apply_fix_p_t): removed
3822         (double_slash_test): is_cxx_header is only called once now
3823         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
3824         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
3825         within the templates.
3826         The borken spelling of "broken" was fixed.
3827         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
3828         The default level depends on FIXINC_DEBUG.
3829
3830 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3831
3832         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
3833         Otherwise provide a declaration for atexit.
3834         (init_dummy): Make sure dummy call to atexit is nevertheless
3835         called with correct number of args.
3836
3837         * frame.c: Update comments referring to other files.
3838
3839         * libgcc2.c: Likewise.
3840
3841 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3842
3843         * cse.c (free_element, get_element): Remove unused prototypes.
3844
3845         * fold-const.c (extract_muldiv): Initialize variables `op0' and
3846         `op1'.
3847
3848         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
3849         `else' clauses.
3850
3851 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
3852
3853         * configure.in,configure: case arm for mn10200-*-* now sets
3854         float_format=i32 so that float.h will correctly claim "double"
3855         to be 32 bits. Ran autoconf to generate configure from .in file.
3856
3857 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
3858
3859         * pa.md (conditional zero): If op1 is a register, force it into
3860         the same register as op0.
3861
3862 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
3863
3864         * tree.h (BINFO_BASETYPES): Improve documentation.
3865
3866 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3867
3868         * configure.in (--enable-checking): Use a more portable `for'
3869         loop syntax.
3870
3871 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3872
3873         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
3874         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
3875
3876         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
3877         Delete files.
3878
3879         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
3880         Delete descriptions.
3881
3882         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
3883         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
3884         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
3885         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
3886         xm-svr4.h: Remove all instances of sys_siglist handling.
3887
3888 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
3889
3890         * config/sparc/sparc.md (cmp_zero_qi,
3891         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
3892         cmp_zero_extendqidi2_andcc_set): New patterns.
3893
3894 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
3895
3896         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
3897         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
3898         (fpgnulib.c, xfgnulib.c): Add rules.
3899         * m68k/t-mot3300-gas: Likewise.
3900
3901 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
3902
3903         * configure.in: Avoid [[ by using test and changequote.  Add
3904         changequote required by 1999-12-14 change.
3905         * configure: Rebuild.
3906
3907 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
3908
3909         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
3910
3911 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
3912
3913         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
3914         * flow.c (find_use_as_address): Likewise.
3915         * function.c (fixup_var_refs_1): Likewise.
3916         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
3917         * jump.c (invert_exp, redirect_exp): Likewise.
3918         * loop.c (replace_call_address): Likewise.
3919         (count_nonfixed_reads): Likewise.
3920         * rtlanal.c (modified_between_p): Likewise.
3921         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
3922         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
3923         * unroll.c (remap_split_bivs): Likewise.
3924
3925 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3926
3927         * diagnostic.c (v_message_with_decl): Use .* format specifier
3928         instead of building the format specifier width manually.
3929
3930         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
3931         determining whether to provide a prototype.  Remove the
3932         sys_siglist clause in the conditional.
3933
3934 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3935
3936         * fold-const.c (operand_equal_p): Use memcmp to compare string
3937         constants.
3938         Suggested by D. J. Bernstein
3939
3940 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
3941
3942         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
3943         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
3944         compiling libgcc2.
3945         * config/mips/mips.h (TARGET_64BIT): Likewise.
3946         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
3947         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
3948         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
3949         dsps.  Give routines proper names if SI/DI modes are not used.
3950         * longlong.h: Use DWunion instead of DIunion.
3951
3952 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
3953
3954         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
3955         GC_CHECKING, GC_ALWAYS_COLLECT.
3956         * configure.in: Allow --enable-checking with an argument
3957         listing check modes to enable.
3958         * config.in, configure: Rebuilt.
3959         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
3960         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
3961         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
3962         ENABLE_GC_ALWAYS_COLLECT.
3963         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
3964         throughout.
3965         * tree.h, tree.c: Change ENABLE_CHECKING to
3966         ENABLE_TREE_CHECKING throughout.
3967
3968 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3969
3970         * fold-const.c (fold_truthop): Properly check for FP RHS.
3971
3972 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
3973
3974         * toplev.h (note_deferall_of_defined_inline_function): Declare.
3975         * toplev.c (note_deferral_of_defined_inline_function): New
3976         function, split out from ...
3977         (rest_of_compilation): ... here.  Use it.
3978
3979 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3980
3981         * expr.c (store_constructor): Don't call clear_storage if size is
3982         variable.
3983
3984 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3985
3986         * Makefile.in (toplev.o): Depend on loop.h.
3987
3988         * dwarfout.c: Include tm_p.h.
3989
3990         * emit-rtl.c (restore_emit_status): Mark parameter with
3991         ATTRIBUTE_UNUSED.
3992
3993         * final.c (final_scan_insn): Likewise.
3994
3995         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
3996         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
3997         flow_depth_first_order_compute, flow_loop_pre_header_find,
3998         flow_loop_tree_node_add, flow_loops_tree_build,
3999         flow_loop_level_compute, flow_loops_level_compute,
4000         flow_loop_outside_edge_p): Add prototypes.
4001         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
4002
4003         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
4004         Mark with ATTRIBUTE_NORETURN.
4005
4006         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
4007
4008         * local-alloc.c (no_conflict_p): Likewise.
4009
4010         * loop.c (insert_bct): Hide definitions of variables with hidden
4011         usage.
4012         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
4013
4014         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
4015         with ATTRIBUTE_UNUSED.
4016         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
4017         (reg_scan): Likewise.
4018
4019         * reload.c (find_reloads): Remove unused variables `changed'.
4020
4021         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
4022         away const-ness.
4023         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
4024         Remove unused variable `insn'.
4025
4026         * toplev.c: Include loop.h.
4027         (report_file_and_line): Remove unnecessary prototype.
4028
4029         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
4030
4031         * unroll.c (biv_total_increment): Likewise.
4032
4033 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4034
4035         * reload1.c (emit_input_reload_insns): Restore old behaviour
4036         wrt. 'special' reloads.
4037
4038 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
4039
4040         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
4041         hash.h.  (cse.c): Don't depend on hashtab.h.
4042
4043         * cse.c: Don't include hashtab.h.
4044         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
4045         of dead functions.
4046         * ggc-simple.c: Don't include hash.h.
4047
4048 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
4049
4050         * dwarf2out.c (add_abstract_origin_attribute): Call
4051         gen_abstract_function on our function context.
4052
4053 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
4054
4055         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
4056
4057 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4058
4059         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
4060         case in switch.
4061
4062 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4063
4064         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
4065         constraints to "a!r".
4066
4067 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
4068
4069         * Makefile.in (calls.o): Depend on function.h.
4070         (alias.o): Likewise.
4071
4072 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
4073
4074         * reload1.c (emit_reload_insns): Break out code and variables into...
4075         (input_reload_insns, other_input_address_reload_insns,
4076         other_input_reload_insns, input_address_reload_insns,
4077         inpaddr_address_reload_insns, output_reload_insns,
4078         output_address_reload_insns, outaddr_address_reload_insns,
4079         operand_reload_insns, other_operand_reload_insns,
4080         other_output_reload_insns): ... new static variables, and...
4081         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
4082         do_output_reload): ... new functions.
4083
4084 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4085
4086         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
4087
4088 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4089
4090         * md.texi: Add c4x constraints documentation.
4091
4092 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4093
4094         * config/i386/dgux.c (struct option): Rename to
4095         lang_independent_option.
4096         (struct m_options): Add description field.
4097         (output_options): Rename option type, add sep declaration, output
4098         ix86_cpu_string and ix86_arch_string only if set.
4099         (output_file_start): Rename option type.
4100
4101 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
4102
4103         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
4104         stmp-int-hdrs.
4105         (libgcc2.a): Similarly.
4106
4107 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
4108
4109         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
4110         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
4111         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
4112
4113 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
4114
4115         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
4116         Remove redundant initialization of "frexpon" and "expon".
4117
4118 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4119
4120         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
4121
4122         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
4123         (store_constructor_field, expand_expr): Pass new arg.
4124
4125 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
4126
4127         * Makefile.in (explow.o): Depend on function.h.
4128
4129         * stor-layout.c (set_sizetype): Fix typo.
4130
4131 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
4132
4133         * function.c (cfun): Renamed from current_function.  All users
4134         changed.
4135         * function.h (cfun): Rename declaration as well.
4136
4137         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
4138         to be of type regset_head, not regset.  All users changed by adding
4139         address operator.
4140         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
4141
4142 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4143
4144         * config/c4x/rtems.h: New file.
4145
4146 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
4147
4148         * reload1.c (spill_failure): Take class of failed reload as argument
4149         and print it.  Caller changed.
4150
4151 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4152
4153         * rs6000.h (SUBTARGET_DEFAULT): New macro.
4154         (TARGET_SWITCHES): Allow subtargets to default switches.
4155         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
4156
4157 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
4158
4159         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
4160         in a main program.
4161
4162 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
4163
4164         * cccp.c (main): Define __STDC_VERSION__ as necessary.
4165         * cppinit.c (cpp_handle_option): Likewise.
4166
4167         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
4168         determine when to define.
4169
4170 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
4171
4172         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
4173         cmove with mismatched test and data modes.
4174
4175 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
4176
4177         * c-typeck.c (c_expand_start_case): Don't warn for long switch
4178         in system headers.
4179
4180 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4181
4182         * alias.c: Minor reformatting.
4183         * flow.c: Likewise.
4184         * regs.h: Likewise.
4185         * stor-layout.c: Likewise.
4186         * fold-const.c: Likewise.
4187         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
4188         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
4189         not arg itself.
4190         (size_int_wide): Cache nodes even if garbage collecting.
4191         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
4192         of SAVE_EXPR has no side effects.
4193         * cse.c: Move a comment.
4194         * tree.c: Minor reformatting.
4195         (int_size_in_bytes): Return -1 if constant overflows.
4196
4197 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4198
4199         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
4200
4201 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
4202
4203         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
4204         after any change to c-parse.in, even if objc-parse.y didn't
4205         change.  Oops.
4206
4207 1999-12-18  David S. Miller  <davem@redhat.com>
4208
4209         * toplev.c (rest_of_compilation): Restore BLOCK tree
4210         reconstruction and branch shortening changes lost in
4211         December 18th change.
4212
4213 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
4214
4215         * config/arm/linux-elf.h: Change all instances of
4216         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
4217         * config/arm/uclinux-elf.h: Likewise.
4218
4219 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
4220
4221         * toplev.c (notice, vmessage, v_message_with_file_and_line,
4222         v_message_with_decl, file_and_line_for_asm,
4223         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
4224         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
4225         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
4226         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
4227         pfatal_with_name, fatal_io_error, need_error_newline,
4228         last_error_function, last_error_tick, announce_function,
4229         default_print_error_function, print_error_function,
4230         report_error_function, fnotice, error_with_file_and_line,
4231         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
4232         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
4233         warning_with_decl, warning_for_asm, warning, pedwarn,
4234         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
4235         diagnostic.c
4236         (compile_file): Use fnotice instead of notice.  Adjust call.
4237
4238         * diagnostic.c: New file.
4239
4240         * Makefile.in (OBJS): Include diagnostic.o
4241         (diagnostic.o): Define dependence.
4242
4243 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4244
4245         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
4246         Tweak formatting.
4247
4248 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4249
4250         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
4251
4252 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
4253
4254         * fixtests.c (is_cxx_header): New fn, split out of
4255         double_slash_test.
4256         (else_endif_label): Allow "#endif // comment" in C++ headers,
4257         as determined by is_cxx_header.
4258         * fixfixes.c (else_endif_label_fix): Update comment.
4259         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
4260         a tty.
4261         * genfixes: Correct double thinko in commandline parsing.
4262         * hackshell.tpl: Generate correct sh syntax for bypass
4263         entries.
4264
4265         * inclhack.def (all): Whenever an inserted preprocessor
4266         conditional is split over multiple lines, use double
4267         backslashes in this file so the fixed header will be readable.
4268
4269         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
4270         and add bypass entry for correct version of this header.
4271         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
4272         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
4273
4274         (hpux8_bogus_inlines): New fix, split from...
4275         (ultrix_atof_param) ... here.
4276         (math_expression): Add bypass entry keyed to glibc comment
4277         indicating the problem has been dealt with; disable
4278         unnecessary sed operations; update commentary.
4279         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
4280         add select and bypass entries, simplify shell operation.
4281         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
4282
4283         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
4284          ultrix_atof_param): Add select entry.
4285         (stdio_va_list, sunos_mather_decl): Add bypass entry.
4286         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
4287         comments with the fixes they describe.
4288
4289         * c-parse.in (string action): Do not warn about ANSI string
4290         concatenation in system headers.  Affects C parser only.
4291         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
4292
4293 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
4294
4295         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
4296         compiling libgcc2 the macro depends always on arch cpp defines.
4297
4298 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
4299
4300         * loop.c (insert_loop_mem): Don't record MEMs from inside
4301         EXPR_LISTs.
4302
4303 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
4304
4305         * regclass.c (regclass): Do not use flowgraph when not optimizing.
4306
4307         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
4308         notes too, create one when replacement failed, attempt to simplify
4309         resulting notes.
4310         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
4311         or REG_EQUIV notes.
4312
4313 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
4314
4315         * crtstuff.c (__dso_handle): Declare.
4316         (__cxa_finalize): Likewise.
4317         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
4318         non-NULL.
4319
4320         * invoke.texi: Document -fuse-cxa-atexit.
4321
4322         * tree.h (ptr_type_node): Document.
4323         (const_ptr_type_node): Likewise.
4324
4325 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4326
4327         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
4328         (optimize_reg_copy_2): Likewise.
4329         (optimize_reg_copy_3): Likewise.
4330         (fixup_match_2): Likewise.
4331         (regmove_optimize): Likewise.
4332         (fixup_match_1): Liekwise.
4333
4334         * i386.md (HI to SImode promoting splitters): Rewrite.
4335         (pushsf mem peep2): New.
4336         (testhi to andhi peep2): Remove.
4337         * i386.h (x86_promote_QImode): New.
4338         (TARGET_PROMOTE_QImode): New.
4339         (PREDICATE_CODES): Add promotable_binary_operator.
4340         * i386.c (x86_promote_QImode0: New.
4341         (promotable_binary_operator): New.
4342         * i386-protos.h (promotable_binary_operator): New.
4343
4344         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
4345         condition.
4346         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
4347
4348 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
4349
4350         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
4351         * function.c (insert_block_after_note): Remove.
4352         (retrofit_block): Likewise.
4353         (identify_blocks): Fix indentation.
4354         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
4355         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
4356         * function.h (insert_block_after_note): Remove prototype.
4357         (retrofit_block): Likewise.
4358         * integrate.c (expand_inline_function): Don't call
4359         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
4360         just expand_start_bindings.  Use the block_map to remap old
4361         NOTE_BLOCKs to new ones.
4362         (integrate_decl_tree): Keep track of remapped blocks.
4363         * integrate.h (struct inline_remap): Add block_map.
4364         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
4365         NOTE_BLOCK on the notes.
4366         (expand_start_bindings): Rename to ...
4367         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
4368         (expand_end_bindings): Set NOTE_BLOCK.
4369         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
4370         reconstruct the BLOCK tree.
4371         * tree.h (expand_start_bindings): Macroize.  Call ...
4372         (expand_start_bindings_and_block): New function.
4373
4374 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
4375
4376         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
4377         to match the format.
4378
4379 1999-12-16  David S. Miller  <davem@redhat.com>
4380
4381         * expr.c (emit_move_insn_1): Only emit clobbers if one of
4382         the outputs is a SUBREG.
4383         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
4384         change.
4385
4386         * config/sparc/sparc.c (epilogue_renumber): Add default case
4387         to switch stmt.
4388
4389 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4390
4391         * toplev.c (rest_of_compilation): Run branch shortening after
4392         reg-stack.
4393
4394         * regclass.c (loop_depth): Remove
4395         (scan_one_insn): Do not handle LOOP_NOTE insns.
4396         (regclass): Go through basic blocks and set loop_cost
4397
4398 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
4399
4400         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
4401
4402 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4403
4404         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
4405         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
4406         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
4407
4408 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
4409
4410         * loop.c (insert_loop_mem): Ignore memory clobbers.
4411
4412         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
4413         to (OP A B).
4414
4415 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
4416
4417         * profile.c: Remove redundant #include "output.h".
4418
4419         * h8300.md (HImode preinc peephole): Fix typo.
4420
4421 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
4422
4423         * function.c (retrofit_block): Abort if we don't find a suitable insn.
4424         (insert_block_after_note): Abort if we don't have a previous block.
4425         Remove FN parameter.
4426         * function.h: Adjust.
4427
4428 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
4429
4430         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
4431         argument more than once.
4432
4433 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
4434
4435         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
4436
4437 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
4438
4439         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
4440
4441 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4442
4443         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
4444         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
4445         update stack_alignment_needed.
4446         (prepare_function_start): Initialize stack_alignment_needed
4447         * function.h (struct function): Add field stack_alignment_needed.
4448
4449 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4450
4451         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
4452         Handle live_throughout / dead_or_set instead of live_before /
4453         live_after.
4454         (save_call_clobbered_regs): Get register livenessinformation from
4455         chain->live_throughout.
4456         (add_stored_regs): New function.
4457         (insert_restore, insert_save): Add restored / saved registers to
4458         dead_or_set.
4459         * global.c (reg_dies): New parameter chain.
4460         (reg_becomes_live): Third parameter is regs_set now.
4461         Changed all callers.
4462         (reg_dies): New parameter chain.  Changed all callers.
4463         (build_insn_chain): Set live_throughout instead of
4464         live_before / live_after.
4465         * reload.h (struct insn_chain): Replace members live_before /
4466         live_after with live_throughout / dead_or_set.
4467         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
4468         instead of live_before / live_after.
4469         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
4470         (order_regs_for_reload, find_reg, finish_spills): Likewise.
4471         (choose_reload_regs_init): Likewise.
4472         * stupid.c (current_chain, find_clobbered_regs): Delete.
4473         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
4474         instead of chain->live_before / chain->live_after.
4475         (mark_hard_ref): New function.
4476         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
4477
4478 1999-12-15  David S. Miller  <davem@redhat.com>
4479
4480         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
4481
4482 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4483
4484         * flow.c (calculate_loop_depth): Make global, remove prototype,
4485         rewrite to use new loop infrastructure.
4486         (find_basic_block): Remove calculate_loop_depth call.
4487         * toplev.c (rest_of_compilation): Call find_basic_block.
4488         * output.h (calculate_loop_depth): Declare.
4489
4490         * flow.c (dump_flow_info): Dump loop_depth.
4491         (flow_loops_nodes_find): Increase loop_depth for basic block in the
4492         body.
4493         (flow_loops_find): Initialize the loop_depth for each basic block.
4494
4495 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
4496
4497         * tree.c (decl_function_context): Handle virtual functions.
4498
4499         * tlink.c (scan_linker_output): Don't look in demangled name when
4500         looking for linker output keywords.
4501
4502         * dwarfout.c (output_type): We can defer namespace-scope classes.
4503
4504 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
4505
4506         * regclass.c (record_reg_classes): Update comment for merging
4507         register class preferences in reg->reg copies.  Tighten conditions
4508         for merging register class preferences in reg->reg copies.
4509
4510 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
4511
4512         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
4513
4514 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
4515
4516         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
4517         (INIT_SECTION_ASM_OP): Delete.
4518         (FINI_SECTION_ASM_OP): Delete.
4519         (STARTFILE_SPEC): Define to hold just crtbegin.o.
4520
4521 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
4522
4523         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
4524         the abstract origin wasn't emitted.
4525
4526         * dwarf2out.c (class_scope_p): New fn.
4527         (gen_subprogram_die): Use it.
4528         (gen_variable_die): Use it.  Tweak logic.
4529         (gen_struct_or_union_type_die): Check context_die to determine
4530         if we're function-local.
4531         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
4532
4533 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
4534
4535         * loop.c (check_dbra_loop): Can't reverse a biv that has
4536         maybe_multiple set.
4537
4538 1999-12-14  Nick Clifton  <nickc@cygnus.com>
4539
4540         * config/arm/arm.c: Add support for -mcpu=arm720 command line
4541         switch.
4542
4543 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4544
4545         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
4546         for givs made from biv increments.
4547
4548 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
4549
4550         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
4551         * alpha.c (override_options): Recognize -mcpu=ev67.
4552         * alpha.h (CPP_CPU_EV67_SPEC): New.
4553         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
4554         (EXTRA_SPECS): Update.
4555
4556 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
4557
4558         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
4559         appropriate for -lang-c89 and -std=*.
4560         * cppinit.c (cpp_handle_option): Likewise.
4561         (new_pending_define): New, split out from cpp_handle_option.
4562         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
4563         or enable trigraphs for -ansi/-std=*.
4564
4565         * ginclude/stdarg.h (__va_copy): New.
4566         (va_copy): Don't define for C89.
4567
4568 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
4569
4570         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
4571         for long long multiply-accumulate.
4572
4573 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4574
4575         * regclass.c (scan_one_insn): Set loop_cost to 1 when
4576         optimizing for size.
4577
4578 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
4579
4580         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
4581         if something changed.  Back out that part of yesterday's changes.
4582
4583         * loop.c (loop_max_reg): New static variable.
4584         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
4585         max_reg_num.
4586         (scan_loop): Call reg_scan_update whenever we may have added new
4587         registers, and update loop_max_reg.
4588
4589 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4590
4591         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
4592         when source does not die.
4593
4594         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
4595
4596 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
4597
4598         * config/sparc/linux64.h (TARGET_LIVE_G0,
4599         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
4600         variants on Linux.
4601         * config/sparc/linux.h (TARGET_LIVE_G0,
4602         TARGET_BROKEN_SAVERESTORE): Likewise.
4603         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
4604         TARGET_BROKEN_SAVERESTORE): Likewise.
4605
4606         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
4607         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
4608         not %g2.
4609         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
4610         as sparc64 block profiling register.
4611         * config/sparc/sparc.c (sparc_override_options): Allow block
4612         profiling with -m32.
4613         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
4614         profiling register.
4615         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
4616         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
4617         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
4618
4619         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
4620         for sparc64.
4621         * config/sparc/sparc.h: Likewise.
4622         * config/sparc/xm-sysv4-64.h: Likewise.
4623         * config/float-sparc.h: Likewise.
4624         * glimits.h: Likewise.
4625         * longlong.h: Likewise.
4626
4627         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
4628         (ASM_IDENTIFY_GCC): Remove.
4629
4630 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
4631
4632         * combine.c (combine_simplify_rtx): Don't make shared rtl.
4633         (simplify_logical): Likewise.
4634
4635 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
4636
4637         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
4638         * cppfiles.c (INO_T_EQ): Likewise.
4639
4640 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
4641
4642         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
4643         * i386/mingw32.h (LIB_SPEC): Likewise.
4644         (STARTFILE_SPEC): Likewise.
4645         * i386/uwin.h (LIB_SPEC): Likewise.
4646         (STARTFILE_SPEC): Likewise.
4647
4648         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
4649         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
4650
4651 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
4652
4653         * combine.c (combine_simplify_rtx): Fix order of checks for
4654         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
4655
4656 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
4657
4658         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
4659         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
4660
4661 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
4662
4663         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
4664         defined.
4665         * regclass.c (inv_reg_alloc_order): New array.
4666         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
4667
4668         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
4669         counted_for_groups, counted_for_nongroups.  Add fields rld and
4670         n_reloads.
4671         * reload.c (push_secondary_reload): Don't set nongroup field of
4672         new reloads.
4673         (push_reload): Likewise.
4674         (find_reloads): Delete code to compute nongroup fields.
4675         * reload1.c (reload_insn_firstobj): New static variable.
4676         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
4677         users changed.
4678         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
4679         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
4680         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
4681         functions.
4682         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
4683         functions.
4684         (struct hard_reg_n_uses): Deleted.
4685         (potential_reload_regs): Deleted.
4686         (init_reload): Initialize spilled_pseudos and pseudos_counted.
4687         (reload): Don't try to allocate reload registers if we already know
4688         we have to make another pass.  Call select_reload_regs.  Free memory
4689         starting with reload_firstobj when starting another pass.
4690         Don't allocate spilled_pseudos.
4691         (calculate_needs_all_insns): Call copy_reloads for an insn that
4692         needs reloads; don't call calculate_needs.
4693         (spill_cost): New static array.
4694         (used_spill_regs_local): New static variable.
4695         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
4696         to compute potential_reload_regs.
4697         (find_reload_regs): Completely rewritten to use find_reg.
4698         (allocate_reload_reg): Don't test counted_for_groups or
4699         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
4700         all cllers changed.
4701         (choose_reload_regs): Add fallback code that uses the existing
4702         register allocation from find_reload_regs.
4703
4704 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
4705
4706         * flow.c (create_edge_list): Cast xmalloc return value.
4707
4708 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
4709
4710         * doprnt.c: Remove incorrect comment closure.
4711
4712         * cse.c: Fix a few minor whitespace goofs.
4713
4714 1999-12-13  Don Bowman  <don@pixstream.com>
4715
4716         * mips/vxworks.h: Fix problem with comment termination.
4717         (EXTRA_SECTIONS): Add in_sbss.
4718         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
4719
4720 1999-12-12  David S. Miller  <davem@redhat.com>
4721
4722         * cse.c (struct cse_reg_info): Add hash_next member,
4723         reorder rest of struct for better packing on 64-bit
4724         hosts.
4725         (cse_reg_info_tree): Kill.
4726         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
4727         REGHASH_FN): New custom pow2 hash mechanism.
4728         (NBUCKETS): Kill.
4729         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
4730         use a pow2 hash table.
4731         (get_cse_reg_info): Rework to use new REGHASH.
4732         (new_basic_block): Likewise, use HASH_SIZE, and inline
4733         free_element call.
4734         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
4735         and inline free_element call.
4736         (lookup_as_function, insert, flush_hash_table, invalidate,
4737         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
4738         invalidate_for_call, use_related_value, find_comparison_args,
4739         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
4740         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
4741         get_element): Kill.
4742
4743 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
4744
4745         * cse.c (cse_basic_block): Free qty_table consistently.
4746
4747 1999-12-12  David S. Miller  <davem@redhat.com>
4748             Jakub Jelinek    <jakub@redhat.com>
4749
4750         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
4751         SUBREGs by hand, gen the appropriate hard reg directly.
4752         (movtf reg/mem split): Likewise and alter_subreg on destination
4753         if necessary.
4754         (movtf mem/reg split): Similarly.
4755         (movdf_cc_sp64): Rename from hidden pattern.
4756         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
4757         (movtf_cc_sp64, following split): New pattern and splitter.
4758         (movdf_cc_reg_sp64): Rename from hidden pattern.
4759         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
4760         TARGET_HARD_QUAD.
4761         (movtf_cc_reg_sp64, following split): New pattern and splitter.
4762
4763 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
4764
4765         * loop.c (load_mems): Don't hoist written floating point mem
4766         if -ffloat-store.
4767
4768 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
4769
4770         * except.h (struct eh_queue): Add `next' pointer.
4771         (struct eh_status): Make x_ehqueue a pointer.
4772         (push_ehqueue):  Declare.
4773         (pop_ehqueue): Likewise.
4774         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
4775         pointer.
4776         (expand_fixup_region_end): Likewise.
4777         (expand_leftover_cleanups): Likewise.
4778         (push_ehqueue): Define.
4779         (pop_ehqueue): Likewise.
4780         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
4781         than doing it inline.
4782         (expand_start_all_catch):  Adjust now that ehqueue is a
4783         pointer.
4784         (mark_eh_queue): Mark all level of the queue.
4785         (mark_eh_status):  Adjust now that ehqueue is a
4786         pointer.
4787         (init_eh_for_function): Allocate ehqueue.
4788         (free_eh_status): Free it.
4789         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
4790         expansion for a fixup.
4791
4792 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4793
4794         * gthr-single.h (__gthread_active_p): Add prototype arguments.
4795
4796         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
4797         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
4798         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
4799         function_ptr, getpagesize, __enable_execute_stack,
4800         __enable_execute_stack, __clear_insn_cache,
4801         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
4802         _cleanup, _exit, __default_terminate, __terminate_func,
4803         __terminate, __empty, __throw, new_eh_context,
4804         eh_context_initialize, eh_context_static, eh_context_specific,
4805         get_eh_context, __get_eh_context, __get_eh_info,
4806         init_reg_size_table, eh_threads_initialize,
4807         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
4808         __unwinding_cleanup, throw_helper, __throw, __rethrow,
4809         __pure_virtual): Add prototype arguments.
4810         (__bb_exit_func): Cast a sizeof to long when comparing against one.
4811         Cast a signed value to unsigned long when comparing against one.
4812         (new_eh_context): Wrap in _GTHREADS macro.
4813         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
4814         declaration.
4815         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
4816         (throw_helper): Initialize variables `handler_p' and `pc_p'.
4817
4818 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4819
4820         * combine.c (record_promoted_value): Remove unused variable
4821         `links2'.
4822
4823         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
4824
4825         * global.c (record_conflicts): Likewise for `j'.
4826
4827         * genoutput.c (output_insn_data): Don't unnecessarily cast away
4828         const-ness.
4829
4830 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4831
4832         * i386-protos.h (output_387_binary_op, output_fix_trunc,
4833         output_fp_compare): Constify a char*.
4834
4835         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
4836         static prototypes.
4837         (override_options, ix86_comp_type_attributes, print_operand,
4838         output_387_binary_op, output_fix_trunc, output_fp_compare):
4839         Constify a char*.
4840         (ix86_sched_reorder): Mark parameter `clock_var' with
4841         ATTRIBUTE_UNUSED.
4842
4843         * i386.h (DEBUG_PRINT_REG): Constify a char*.
4844
4845 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
4846
4847         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
4848         operand, for use in the Java front-end.
4849
4850 1999-12-10  Ben Collins  <bcollins@debian.org>
4851
4852         * configure.in: Fix typo for "-64" in 64bit as check.
4853         * configure: Rebuilt.
4854
4855 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
4856
4857         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
4858         appropriate.
4859
4860 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4861
4862         * c-parse.in (string): With -Wtraditional, warn if ANSI string
4863         concatenation is utilized.
4864
4865         * invoke.texi (-Wtraditional): Document it.
4866
4867 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4868
4869         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
4870         Cast a ptrdiff_t to long and pass it to printf with %ld.
4871
4872 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
4873
4874         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
4875         68881, we have no 68881 registers at all.
4876         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
4877         value in a 68881 register if it is available.
4878
4879 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
4880
4881         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
4882         for long long multiply-accumulate.
4883
4884 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
4885
4886         * loop.c (insert_loop_mem): Undo last change.
4887
4888 1999-12-10  David S. Miller  <davem@redhat.com>
4889
4890         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
4891         New functions.
4892         * config/sparc/sparc-protos.h: Add them.
4893         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
4894         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
4895         constraints which use those helpers.
4896         (EXTRA_CONSTRAINT): Use this new macro.
4897         * md.texi: Update sparc target constraints documentation.
4898         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
4899         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
4900         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
4901         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
4902         (movsf high/lo_sum split): Rework for new patterns.
4903         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
4904
4905 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
4906
4907         * c-common.c (c_common_nodes_and_builtins):
4908         Create __builtin_ptrdiff_t and __builtin_size_t.
4909
4910 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
4911
4912         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
4913
4914 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4915
4916         * regclass.c (globalize_reg): Re-instate test that allows
4917         fixed registers to be declared as a variable even after functions
4918         are defined.
4919
4920 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
4921
4922         * i386.md (cpu attribute): Add "athlon".
4923         (athlon_decode): New attribute.
4924         (Athlon scheduling units definitions): New.
4925         (fcmp and shld patterns): Set athlon_decode to "vector".
4926         * i386.c (athlon_cost): New.
4927         (m_ATHLON): New.
4928         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
4929         x86_use_sahf): Set for Athlon.
4930         (x86_use_fiop): Unset for Athlon.
4931         (override_options): Define Athlon alignments and "athlon" name.
4932         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
4933         * i386.h (TARGET_ATHLON): New.
4934         (enum processor_type): Add PROCESSOR_ATHLON.
4935         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
4936         for CPU_DEFAULT==5
4937         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
4938
4939 1999-12-09  Andreas Jaeger  <aj@suse.de>
4940
4941         * loop.c (record_biv): Declare parameter as int.
4942
4943         * config/i386/i386-protos.h: Declare long_memory_operand.
4944
4945 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
4946
4947         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
4948         EXPR_WITH_FILE_LOCATION.
4949
4950 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
4951
4952         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
4953         in expander.
4954
4955         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
4956
4957         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
4958         updating code.
4959
4960 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
4961
4962         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
4963         default on linux64 again.
4964         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
4965         models for multilibing.
4966         * genmultilib: Accept | as alternative separator within a set in
4967         MULTILIB_OPTIONS.
4968
4969         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
4970
4971         * calls.c (precompute_arguments): Make sure initial_value contains
4972         value pseudo which CSE expects.
4973         * cse.c (struct set): New entry orig_src.
4974         (cse_insn): Set it early on entry, use it for libcall EQUIV note
4975         replacement.
4976
4977 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
4978
4979         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
4980
4981 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
4982
4983         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
4984
4985 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
4986
4987         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
4988         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
4989
4990         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
4991         if TARGET_ARCH32.
4992
4993         * longlong.h: Merge in changes from glibc.
4994         Also don't clobber %g2 register in 32bit SPARC assembly, so that
4995         -mno-app-regs libgcc can be compiled.
4996         * libgcc2.c: Add defines so that the updated longlong.h
4997         can be used in libgcc2.a. Also, make sure on most architectures
4998         (at least on all which have optimized code in longlong.h defined
4999         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
5000
5001 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5002
5003         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
5004         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
5005         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
5006         is GNU ld.
5007         * configure: Rebuilt.
5008
5009 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
5010
5011         * alpha.c (secondary_reload_class): For !BWX, sub-simode
5012         outputs require a register.
5013
5014 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
5015
5016         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
5017         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
5018         functions like dptoul will be resolved.
5019         (libgcc2.a): Make sure that the object files from DPBIT are named
5020         differently (prefix `_dp') from those that would be coming from
5021         FPBIT.
5022
5023 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
5024
5025         * configure.in: When target is sparc* and tm_file contains 64,
5026         test for 64bit support in assembler.  If not supported, remove
5027         sparc/t-sol2-64 from target-dependent Makefile fragments.
5028         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
5029         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
5030         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
5031         * acconfig.h (AS_SPARC64_FLAG): Added.
5032         * configure, config.in: Rebuilt.
5033         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
5034         support.  Use AS_SPARC64_FLAG.
5035
5036 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
5037
5038         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
5039         suitable for holding OFmode values so that gcc works with complex
5040         quad long doubles.
5041         (hard_64bit_mode_classes): Likewise.
5042
5043         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
5044         so that it is actually matched.
5045         (sethi_di_medlow): Likewise.
5046
5047         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
5048         as legitimate constant if -mvis.
5049         * config/sparc/sparc.md (movtf): Likewise.
5050         (clear_sf): Use const_double_operand.
5051         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
5052
5053         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
5054         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
5055         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
5056         routines, _Qp_* cannot be handled like that now.
5057         (INIT_TARGET_OPTABS): Likewise.
5058         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
5059         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
5060         sparc_emit_float_lib_cmp if ARCH64 and soft float.
5061         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
5062         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
5063         divtf3, sqrttf3): New expanders.
5064         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
5065         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
5066         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
5067         non-_hq patterns.
5068
5069         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
5070         * configure: Rebuilt.
5071         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
5072         -mcpu is given and we're doing 64bit compiles.
5073
5074 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
5075
5076         * loop.h (struct induction): Add multi_insn_incr.
5077         * loop.c (basic_induction_var): New multi_insn_incr argument.
5078         Set it if we search back through previous insns for the biv.
5079         (record_biv): New multi_insn_incr argument; fill in struct induction.
5080         (strength_reduce): Discard an iv with multiple bivs, any of
5081         which require multiple insns to increment.
5082
5083 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
5084
5085         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
5086         documentation.
5087
5088 1999-12-06  David S. Miller  <davem@redhat.com>
5089
5090         * combine.c (check_promoted_subreg): Do not conditionalize this upon
5091         PROMOTE_FUNCTION_RETURN.
5092
5093 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
5094
5095         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
5096         and handle REG_UNUSED note on insn.
5097
5098         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
5099         inner_mask instead of mask.
5100
5101 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
5102
5103         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
5104         zero if there was an error.
5105
5106 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
5107
5108         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
5109         output string.
5110
5111         * longlong.h: Fix clobbers in SPARC asm statements.
5112
5113         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
5114         valid sethi operations when TARGET_ARCH64.
5115
5116         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
5117         always use move_by_pieces to avoid infinite recursion.
5118         (restore_fixed_argument_area): Likewise.
5119
5120         * combine.c (check_promoted_subreg, record_promoted_value): New
5121         functions.
5122         (combine_instructions): Use them to retain nonzero and sign bit
5123         information after SUBREGs are eliminated by optimizations in
5124         this pass if PROMOTE_FUNCTION_RETURN.
5125
5126         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
5127         .register declaration. Don't use variables with __ prefixes.
5128
5129 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5130
5131         * fold-const.c (optimize_bit_field_compare): Only use one mode
5132         for both RHS and LHS in non-constant case.
5133
5134 1999-12-06  Nathan Sidwell  <nathan@acm.org>
5135
5136         * frame.c (start_fde_sort): Only allocate erratic array, if
5137         linear one was allocated. Return allocated flag.
5138         (fde_insert): Only insert, if there's a valid array.
5139         (fde_end_sort): Split, sort and merge if linear and erratic
5140         arrays exist, else just sort linear one.
5141         (search_fdes): New function. Linear search through original fde
5142         structure.
5143         (frame_init): Permit multiple initializations. Cope with
5144         memory shortages.
5145         (find_fde): Fallback on linear search, if failed to sort array.
5146         (__deregister_frame_info): Only free sorted array, if we
5147         allocated it.
5148
5149 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
5150
5151         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
5152
5153 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
5154
5155         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
5156
5157 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
5158
5159         * tree.h (special_function_p): Declare.
5160         * calls.c (special_function_p): Make it global.  Don't take `name'
5161         as a parameter.  Fix typo in 1999-11-28 change.
5162         (expand_cal): Adjust.
5163
5164 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
5165
5166         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
5167         * tree.h (EXPR_WFL_FILENAME): Define in terms of
5168         EXPR_WFL_FILENAME_NODE.
5169         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
5170         the TREE_CHAIN.
5171         * print-tree.c (print_note): Print TREE_PRIVATE and
5172         TREE_PROTECTED.
5173
5174         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
5175         the original die cannot be found.
5176
5177         * varray.h (varray_head_tag): Add elements_used.
5178         (VARRAY_PUSH): New macro.
5179         (VARRAY_POP): Likewise.
5180         (VARRAY_TOP): Likewise.
5181         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
5182         types.
5183         * varray.c (varray_init): Initialize elements_used.
5184         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
5185         (INTEGRATE_H): New variable.
5186         (integrate.o): Depend on INTEGRATE_H.
5187         (unroll.o): Likewise.
5188
5189         * function.h (insert_block_after_note): Declare.
5190         * function.c (insert_block_after_note): Split out from ...
5191         (retrofit_block): ... here.
5192
5193         * stmt.c (expand_fixup): Fix typo in comment.
5194
5195 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
5196
5197         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
5198         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
5199         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
5200         (regmove_optimize, fixup_match_1): Likewise.
5201
5202 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5203
5204         * flow.c (flow_loops_dump): Add missing argument when calling
5205         flow_loop_nested_p.
5206
5207 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
5208             Greg McGary  <gkm@gnu.org>
5209
5210         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
5211         (init_attributes): Add A_NO_LIMIT_STACK.
5212         (decl_attributes): Handle A_NO_LIMIT_STACK.
5213         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
5214         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
5215         Handle stack bounds checking.
5216         * flags.h (flag_stack_check): Use the word 'probe' rather than
5217         'check', because the flag doesn't actually cause any checking to
5218         be done.
5219         * function.c (expand_function_start): Set
5220         current_function_limit_stack.
5221         * function.h (struct function): Add limit_stack.
5222         (current_function_limit_stack): Define.
5223         * invoke.texi (Code Gen Options): Document new options.
5224         * rtl.h: Declare stack_limit_rtx.
5225         * toplev.c (stack_limit_rtx): New variable.
5226         (decode_f_option): Handle new options -fstack-limit-register=REG,
5227         -fstack-limit-symbol=IDENT, -fno-stack-limit.
5228         (main): Add stack_limit_rtx as GC root.
5229         * tree.h (DECL_NO_LIMIT_STACK): New macro.
5230         (struct tree_decl): New member no_limit_stack.
5231
5232         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
5233         stack_limit_rtx.
5234         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
5235         (conditional_trap+1): Get new mnemonic correct.
5236         (conditional_trap+2): New pattern for DImode traps.
5237
5238         * config/m68k/m68k.c (output_function_prologue): Handle
5239         stack_limit_rtx.
5240         * config/m68k/m68k.md (trap): New insn.
5241         (conditional_trap): New insn.
5242         * md.texi (Standard Names): Document `trap' and
5243         `conditional_trap'.
5244         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
5245         so a cc0 setter doesn't get emitted at some random place in the
5246         function.
5247
5248         * config/i960/i960.md (trap): New insn.
5249         (conditional_trap): New expander.
5250         (conditional_trap+1, conditional_trap+2): New insns for signed
5251         and unsigned cases.
5252         * config/i960/i960.c (i960_function_prologue): Use
5253         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
5254
5255 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
5256                           Geoffrey Keating  <geoffk@cygnus.com>
5257
5258         * flags.h (warn_padded, warn_packed): Add global var decls.
5259         * toplev.c (warn_padded, warn_packed): Add global var defns.
5260         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
5261         * stor-layout.c (layout_record): Add local variable `type'
5262         to hold often-used TREE_TYPE (field).  Add local variable
5263         `unpacked_align' to hold alignment that would be in force
5264         if no `packed' attribute were present.  Warn if `packed' attribute
5265         is unnecessary, or even harmful.  Warn when gcc inserts padding
5266         to satisfy alignment requirements of members.  Use NULL_TREE
5267         when checking whether var_size is set.
5268         * invoke.texi: Document new flags.
5269
5270 1999-12-03  Nathan Sidwell  <nathan@acm.org>
5271
5272         * frame.c (fde_split): Reimplement to avoid variable sized array.
5273
5274 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5275
5276         * combine.c (try_combine): Before fixing up LOG_LINKS for the
5277         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
5278
5279 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
5280
5281         * invoke.texi: Document the mips option -mno-crt0
5282
5283 1999-12-02  Mike Karr  <mkarr@mathworks.com>
5284
5285         * cccp.c (argdata): Added free_ptr member.
5286         (macroexpand): Initialize free_ptr of each argument. When an
5287         argument's buffers are freed, if the argument's free_ptr corresponds
5288         to a buffer on the input stack, then return the free_ptr to that stack
5289         frame, otherwise, free it.
5290         (macarg): If an argument begins and ends on the same input stack level,
5291         then transfer the free_ptr of that buffer to the argument in case
5292         the stack is popped during the processing of a subsequent argument.
5293
5294 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
5295
5296         * loop.c (note_reg_stored): New function.
5297         (struct note_reg_stored_arg): New structure.
5298         (try_copy_prop): Change to be more conservative; only replace within
5299         one extended basic block and stop replacing if a store to the
5300         replacement reg is seen.
5301
5302 1999-12-02  Nick Clifton  <nickc@cygnus.com>
5303
5304         * config/fp-bit.c: Initialise all fields of the NAN
5305         constants.
5306
5307         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
5308         to HANDLE_PRAGMA.
5309
5310 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
5311
5312         * i386.md (extend?f?f2): Force the input into a register, not
5313         the output.
5314
5315 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
5316
5317         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
5318         regclass' sake.
5319         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
5320         alternative because setting up 64bit constant is usually costly,
5321         especially when reload is in progress or completed.
5322         (movdf_const_intreg_sp64): Likewise.
5323         (movdf_const_intreg split): Fix building up constants when
5324         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
5325
5326 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
5327
5328         * combine.c (if_then_else_cond): Use const_true_rtx instead of
5329         const1_rtx for return values in EQ/NE comparison against (const_int 0)
5330         case.
5331
5332         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
5333         (asm_file_start): Emit .am33 into assembly file when compiling for
5334         the AM33.
5335         (print_operand_address): Handle POST_INC addresses.
5336         (can_use_return_insn, initial_offset): Check AM33 registers too.
5337         (expand_prologue): Check & save AM33 registers too.
5338         (expand_epilogue): Similarly.
5339         (secondary_reload_class): Handle AM33 specific secondary reloads.
5340         (output_tst): Emit efficient code for the AM33 too.
5341         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
5342         (TARGET_SWITCHES): Add -mam33 switch.
5343         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
5344         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
5345         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
5346         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
5347         (enum reg_class, REG_CLASS_NAMES): Likewise.
5348         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
5349         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
5350         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
5351         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
5352         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
5353         (HAVE_POST_INCREMENT): Define.
5354         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
5355         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
5356         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
5357         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
5358         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
5359         (zero_extend to SI from QI/HI): Likewise.
5360         (sign_extend to SI from QI/HI): Likewise.
5361         (mulsidi3, umulsidi3): New patterns for the AM33.
5362         (tstsi with zero extension from QI/HI): Add AM33 variants.
5363         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
5364         (return_internal_regs, store_movm): Handle new AM33 registers.
5365         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
5366         (LIBGCC, INSTALL_LIBGCC): Likewise.
5367         * invoke.texi: Document new flags.
5368
5369 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
5370
5371         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
5372         (addsi3_carry): Likewise.
5373         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
5374         (sbbsi3_carry): Likewise.
5375         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
5376         (mulhi3): Likewise.
5377         (test?i_1): Ensure that only one operand is memory.
5378         (conditional move patterns): likewise.
5379         (shift and rotate patterns): Rewrite to expander, add
5380         "binary_operator_ok" to the condition.
5381
5382         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
5383         * i386.h (procesor_costs): Add movzbl_load field.
5384         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
5385         non-Q registers, accept DImode registers anywhere.
5386         (Q_CLASS_P): New.
5387         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
5388         * i386.c (*_cost): Set value for movxbl_load field.
5389
5390         * (addsi): New add to lea splitter.
5391         (ashlsi): Likewise.
5392         (lea to add/shift peep2): New.
5393
5394 1999-12-01  Mark Salter <msalter@cygnus.com>
5395
5396         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
5397         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
5398         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
5399
5400 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
5401
5402         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
5403         * i386.md (movsi_xor): New.
5404         (movsi_or): New.
5405         (movsi_1, movhi_1, movqi_1): Remove.
5406         (movsi_2): Rename to movsi_1.
5407         (movhi_2): Rename to movhi_1.
5408         (movqi_2): Rename to movqi_1.
5409         (movdi_1): Remove; remove splitter.
5410         (movdi_2): Rename to movdi_1.
5411         (divmodsi4 splitter): Do not emit clobbers for move patterns.
5412         (long move peep2): Do not create QI or HI mode mov0s
5413         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
5414
5415         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
5416         rewrite splitters.
5417
5418         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
5419         (abs?f2_if): Likewise.
5420
5421 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
5422
5423         * ggc.h (ggc_test_and_set_mark): New macro.
5424         (ggc_mark_rtx): Use ggc_test_and_set_mark.
5425         (ggc_mark_tree): Likewise.
5426         (ggc_mark_rtvec): Likewise.
5427         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
5428
5429 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
5430
5431         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
5432         containing types.
5433         (decl_scope_table): Just an array of trees now.
5434         (push_decl_scope): Simplify.
5435         (dwarf2out_init): Adjust.
5436         (local_scope_p): New fn.
5437         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
5438         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
5439         (gen_typedef_die): Likewise.
5440         (gen_lexical_block_die): Don't call push/pop_decl_scope.
5441         (gen_inlined_subroutine_die): Likewise.
5442         (gen_abstract_function): Set current_function_decl temporarily.
5443         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
5444         Handle block extern declarations.  Don't call push/pop_decl_scope.
5445         (gen_decl_die): Fix logic for block externs.
5446
5447 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5448
5449         * calls.c (special_function_p): Remove `realloc' and add `strdup'
5450         to the list of functions which have attribute malloc by default.
5451
5452 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5453
5454         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
5455         integer constant does not match the traditional type, limit the
5456         warnings to cases where the base of the type is ten.
5457
5458         * invoke.texi (-Wtraditional): Document it.
5459
5460 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5461
5462         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
5463         * rs6000.md: Only access a CONST_INT with INTVAL
5464
5465 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
5466
5467         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
5468         (compute_nearerout): Likewise.
5469         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
5470         size_t to unsigned long for formatting.
5471
5472 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
5473
5474         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
5475         Allow the user to override call-used/fixed state of %g2-5
5476         registers from the command line (with the exception of %g4 for
5477         embedded model).
5478         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
5479         there is a higher chance of having a leaf function.
5480         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
5481         for ARCH64 which has %ccr register.
5482         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
5483         patterns.
5484         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
5485         insn accept into delay slot any insn which does not use %[ol]
5486         registers.  Accept some LO_SUM and shift left by 1 for the normal
5487         restore case.
5488         (output_function_epilogue): Likewise.
5489         (epilogue_renumber): Added argument which inhibits any renumbering
5490         and just tests if the rtx does not use any %[ol] registers.
5491         (output_return): Reflect above change.
5492
5493 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
5494
5495         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
5496         aggregate passing for sizes <= 16 bytes.
5497
5498 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
5499
5500         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
5501         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
5502         * reload.c (find_dummy_reload): Likewise.
5503         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
5504         * reload1.c (reload_as_needed): Likewise.
5505         * stupid.c (stupid_find_reg): Likewise.
5506         * tm.texi (Obsolete Register Macros): Delete section.
5507         * gmicro.h: Remove all traces of the two macros.
5508         * i386.h: Likewise.
5509         * m88k.h: Likewise.
5510         * mips.h: Likewise.
5511
5512 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
5513
5514         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
5515         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
5516         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
5517         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
5518         units for the sparclite86x chip.
5519         (flush): Revert October 14th change; add SImode specifically.
5520         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
5521         * invoke.texi: Document it.
5522
5523 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
5524
5525         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
5526         psimode_truncation_operand.
5527
5528         * config/mn10200/mn10200.c (psimode_truncation_operand): New
5529         function.  Return true if the operand is either a MEM valid
5530         for a PSImode address or not a MEM at all.
5531
5532         * config/mn10200/mn10200.md (truncsipsi2): Use
5533         psimode_truncation_operand.
5534
5535 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5536
5537         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
5538         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
5539         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
5540         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
5541         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
5542         (flow_loop_level_compute, low_loops_level_compute): Likewise.
5543         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
5544         * basic-block.h: Protect from multiple inclusion.
5545         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
5546         (struct loops, struct loop): Define structures.
5547         * sbitmap.c (sbitmap_a_subset_b_p): New function.
5548         * sbitmap.h: Protect from multiple inclusion.
5549         (sbitmap_a_subset_b_p): Add prototype.
5550         * Makefile.in (LOOP_H): New macro.
5551         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
5552
5553 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
5554
5555         * cppinit.c (CAT): The argument list of this macro may not contain
5556         spaces !
5557
5558 1999-11-29  David S. Miller  <davem@redhat.com>
5559
5560         Move quantity tables and register equivalence chains into
5561         per-qty and per-register structure arrays respectively.
5562         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
5563         qty_const_insn, qty_comparison_code, qty_comparison_const,
5564         qty_comparison_qty): Delete, replace with...
5565         (qty_table): this structure table.
5566         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
5567         (reg_eqv_table): this structure table.
5568         (make_new_qty): Add argument MODE.  Caller updated.
5569         Update to use qty_table and reg_eqv_table.
5570         (make_regs_eqv, delete_reg_equiv, insert_regs,
5571         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
5572         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
5573         cse_process_notes, cse_main, cse_basic_block): Likewise.
5574
5575 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5576
5577         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
5578         operation if C is negative.
5579         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
5580         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
5581         law for some divisions if constant is negative and change other
5582         divisions to the opposite rounding.
5583
5584         * expr.c (store_constructor_field): If bit position is not multiple
5585         of alignment of TARGET's mode, use BLKmode.
5586
5587         * expr.c (expand_expr_unaligned): Add more code from full case
5588         that is needed when OP0 is in a register.
5589
5590 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5591
5592         * dwarfout.c (field_byte_offset): Size can be zero if there was
5593         an error.
5594
5595 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
5596
5597         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
5598         (associate_trees): Delete unused var TEM.
5599         (extract_muldiv): Delete unused var CANCEL_P.
5600
5601         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
5602         (target_isinf, target_isnan, target_negative): Add return types to
5603         function definitions.
5604
5605 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
5606
5607         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
5608         * fixinc/hackshell.tpl: ditto
5609         * fixinc/fixtests.c(double_slash_test): more C++ header testing
5610         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
5611
5612 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
5613
5614         * reload.c (push_reload): When looking for a register to put into
5615         reg_rtx, make sure all hard regs in a multi-reg register are in the
5616         right class and nonfixed.
5617
5618         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
5619         pending_read_insns, pending_write_insns, pending_read_mems,
5620         pending_write_mems, pending_list_length, last_pending_memory_flush,
5621         last_function_call, sched_before_next_call): Move static variables
5622         into a structure.
5623         (bb_ prefixed versions): Replace with single array bb_deps.
5624         (struct deps): New structure.
5625         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
5626         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
5627         argument of type "struct deps *"; use that instead of global
5628         variables.  All callers changed.
5629         (init_rgn_data_dependencies): Delete function.
5630         (init_rtx_vector): Delete function.
5631         (init_deps): New function.
5632
5633         (free_pending_lists): Simplify, we always use the bb_deps array even
5634         if only one basic block.
5635         (compute_block_backward_dependences): Likewise.
5636         (schedule_region): Likewise.
5637
5638         (propagate_deps): New function, broken out of
5639         compute_block_backward_dependences.
5640         (compute_block_backward_dependences): Use it.
5641
5642         * alpha.md: Delete useless patterns that tried to work around
5643         register elimination problems.
5644
5645         * unroll.c (loop_iterations): Don't abort if iteration variable
5646         was made by loop.
5647
5648         From Joern Rennecke:
5649         * reload1.c (reloads_conflict): Reverse test comparing operand
5650         numbers when testing for conflict between output/outaddr reloads.
5651
5652 1999-11-29  David S. Miller  <davem@redhat.com>
5653
5654         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
5655         arg.
5656         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
5657
5658 1999-11-28  Robert Lipe  <robertl@cygnus.com>
5659
5660         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
5661         table from .fini into .dtor.
5662
5663 1999-11-28  Anthony Green  <green@cygnus.com>
5664
5665         * tree.h (struct tree_decl): Add malloc_flag.
5666         (DECL_IS_MALLOC): Define.
5667         * c-common.c (attrs): Add A_MALLOC attribute.
5668         (init_attributes): Add this attribute to the table.
5669         (decl_attributes): Handle malloc attribute.
5670         * calls.c (special_function_p): Check for the malloc attribute.
5671         * extend.texi (Function Attributes): Document malloc attribute.
5672
5673 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
5674
5675         * pa.md (reload shift-add patterns): Remove.
5676
5677 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5678
5679         * reorg.c (dbr_schedule) Print more statistics. Corrected
5680         problem when printing info when 3 delay slots are filled.
5681
5682 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
5683
5684         * combine.c (setup_incoming_promotions): Pass an outgoing
5685         regno to FUNCTION_ARG_REGNO_P which it expects.
5686
5687 1999-11-28  Andreas Jaeger  <aj@suse.de>
5688
5689         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
5690
5691 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
5692
5693         * cccp.c (do_include): Avoid initialization of automatic variable.
5694
5695         * integrate.c (mark_stores): Function definition made void, to match
5696         previous declaration.
5697         * regclass.c (dump_regclass): Ditto.
5698         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
5699
5700 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5701
5702         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
5703         known to be multiple of divisor.
5704
5705         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
5706
5707         * combine.c (try_combine): Add code to try to merge a set of a
5708         two-word pseudo to a constant with a setting of one of those words
5709         to a constant.
5710
5711         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
5712         (split_tree): Completely rework to make more general.
5713         (make_range, fold): Call negate_expr.
5714         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
5715         (fold, associate): Call new split_tree and associate_trees.
5716         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
5717
5718 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
5719
5720         * loop.c (try_copy_prop): Avoid GNU C extension.
5721
5722 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
5723
5724         * except.c (init_eh_for_function): Still zero eh_return_context,
5725         eh_return_stack_adjust, and eh_return_handler.
5726
5727         * except.h (eh_status): Adjust documentation for x_protect_list.
5728         (begin_protect_partials): New function.
5729         * except.c (enqueue_eh_entry): Fix formatting.
5730         (get_first_handler): Add consistency check.
5731         (add_partial_entry): Adjust usage of protect_list.
5732         (emit_cleanup_handler): Save and restore ehqueue.
5733         (expand_start_all_catch): Add comment.
5734         (begin_protect_partials): New function.
5735         (end_protect_partials): Adjust usage of protect_list.
5736         (init_eh_for_function): Use xcalloc.
5737
5738 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5739
5740         * c-common.c (check_format_info): Don't call a variadic function
5741         with a non-literal format string.
5742
5743         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
5744
5745         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
5746         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
5747         Likewise.
5748
5749         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
5750         Likewise.
5751
5752         * collect2.c (collect_wait): Likewise.
5753
5754         * dbxout.c (dbxout_type): Likewise.
5755
5756         * gcc.c (do_spec_1): Likewise.
5757
5758         * genemit.c (gen_insn, gen_expand): Likewise.
5759
5760         * genrecog.c (write_switch, write_subroutine): Likewise.
5761
5762         * mips-tfile.c (catch_signal, botch): Likewise.
5763
5764         * print-rtl.c (print_rtx): Likewise.
5765
5766         * toplev.c (default_print_error_function, report_error_function,
5767         _fatal_insn): Likewise.
5768
5769 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
5770
5771         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
5772
5773 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
5774
5775         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
5776         operations when needed.
5777         * i386.md (fop_?f_comm): New.
5778         (fop_?f_1): Do not accept commutative operands.
5779
5780 1999-11-25  Andreas Jaeger  <aj@suse.de>
5781
5782         * config/mips/mips.md (casesi_internal): Add missing brace.
5783
5784 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
5785
5786         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
5787         (splice_child_die): Handle moving a child DIE from the declaration
5788         DIE of a class to its specification.
5789         (gen_struct_or_union_type_die): Use 'complete' consistently.
5790         (gen_decl_die): Generate the virtual context DIE first.
5791         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
5792
5793 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
5794
5795         * config/mips/mips.md (call_value_multiple_interanal1): New.
5796
5797 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
5798
5799         * dwarf2out.c (free_AT, free_die): New fns.
5800         (remove_children): Call them.
5801         (output_line_info): Disable removal of duplicate notes.
5802
5803         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
5804         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
5805         means pretend the type isn't defined.
5806         Don't defer emitting types.
5807         (gen_type_die_for_member): New fn.
5808         (gen_decl_die): Call it.
5809         (splice_child_die): New fn.
5810         (gen_member_die): Call it rather than generate duplicate dies.
5811
5812         Defer emitting information for the abstract instance of an inline
5813         until we either inline it or emit an out-of-line copy.
5814         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
5815         from output_inline_function if DECL_ABSTRACT is also set.
5816         (block_ultimate_origin): Likewise.
5817         (gen_abstract_function): New fn.
5818         (gen_decl_die, gen_inlined_subroutine_die): Call it.
5819         (gen_subprogram_die):  An abstract instance is not a declaration
5820         just because it doesn't match current_function_decl.  Don't abort
5821         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
5822         has an abstract origin.
5823         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
5824         abstract instance here.
5825
5826 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
5827
5828         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
5829         where we need to reload fpul from a system register.
5830
5831 1999-11-24  Andreas Jaeger  <aj@suse.de>
5832
5833         * config/mips/linux.h (CPP_PREDEFINES): Added.
5834         (LINK_SPEC): Remove -Y since this is only needed on sparc.
5835
5836 1999-11-24  Andreas Jaeger  <aj@suse.de>
5837
5838         * config/mips/linux.h (TARGET_VERSION): Added.
5839         (HANDLE_SYSV_PRAGMA): Added.
5840         (DEFAULT_VTABLE_THUNKS): Added.
5841
5842 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
5843
5844         * local-alloc.c (qty): New structure and static variable.
5845         (qty_phys_reg): Remove, all references changed to qty.
5846         (qty_n_refs): Likewise.
5847         (qty_min_class): Likewise.
5848         (qty_birth): Likewise.
5849         (qty_death): Likewise.
5850         (qty_size): Likewise.
5851         (qty_mode): Likewise.
5852         (qty_n_calls_crossed): Likewise.
5853         (qty_alternate_class): Likewise.
5854         (qty_changes_size): Likewise.
5855         (qty_first_reg): Likewise.
5856         (alloc_qty): Rename variable QTY to QTYNO.
5857         (finf_free_reg): Likewise.
5858         (local_alloc): Allocate qty, do not allocate the removed variables.
5859
5860 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
5861
5862         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
5863         when -membedded-pic is passed.
5864
5865         * config/mips/mips.md (casesi): Handle 64-bit case too.
5866         (casesi_internal_di): New insn.
5867
5868         * config/mips/mips.c (embedded_pic_offset): Always make the
5869         embedded-pic subtractions relative to the name of the current
5870         function by use of the magic string "..CURRENT_FUNCTION".
5871         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
5872
5873 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
5874
5875         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
5876         of (const_int 0), when what we really care about is
5877         whether it's a zero constant anyway.
5878         (div_trap_mips16): Likewise.
5879
5880 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
5881
5882         * loop.c (loop_optimize): Always find_loop_tree_blocks and
5883         unroll_block_trees when generating debuggable code.
5884
5885         * tree.h (unsave_expr_1): New function.
5886         (lang_unsave): New variable.
5887         (get_callee_fndecl): New function.
5888         * tree.c (unsave_expr_now_r): New function.
5889         (lang_unsave): Define.
5890         (unsave_expr_1): Likewise.
5891         (unsave_expr_now_r): Split out from unsave_expr_now.
5892         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
5893         call unsave_expr_now_r.
5894         (get_callee_fndecl): Define.
5895
5896         * Makefile.in (gencheck): Don't depend on lang_tree_files.
5897         (gencheck.o): Do depend on lang_tree_files.
5898
5899         * integrate.h (copy_decl_for_inlining): New declaration.
5900         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
5901         (copy_decl_for_inlining): New function.
5902         (integrate_parm_decls): Use it.
5903         (integrate_decl_tree): Likewise.
5904
5905 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
5906
5907         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
5908         the second two from the first.
5909         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
5910         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
5911         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
5912         ISA_HAS_FP4.
5913         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
5914         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
5915         ISA_HAS_FP4.
5916
5917 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
5918
5919         * pa.md (call_internal_symref, call_value_internal_symref): No mode
5920         needed on the address operand.
5921         * pa.c (call_operand_address): Check for the correct mode.
5922
5923 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
5924
5925         * loop.c: Include "basic-block.h".
5926         (try_copy_prop, replace_loop_reg): New functions.
5927         (load_mems): Detect registers that just hold copies of the hoisted
5928         mem, and call try_copy_prop to eliminate them.
5929         * Makefile.in (loop.o): Update dependencies.
5930
5931 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
5932
5933         * Makefile.in (gencheck.o): Depend on gencheck.h.
5934         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
5935         (insn-peep.o): Depend on except.h and function.h.
5936         (insn-attrtab.o): Depend on RECOG_H.
5937         (insn-output.o): Depend on toplev.h and flags.h.
5938         (gengenrtl.o): Depend on real.h.
5939         (gen-protos.o): Depend on cpplib.h and cpphash.h.
5940         Unify all dependencies to be on RECOG_H rather than recog.h.
5941
5942 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5943
5944         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
5945         * configure.in: Try building a bi-arch 32/64-bit compiler on
5946         sparc-*-solaris2.7 and higher.
5947         * configure: Rebuild.
5948
5949 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
5950
5951         * config/freebsd.h: New, FreeBSD architecture independent file.
5952         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
5953         independent pieces.
5954         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
5955         directly by i386/freebsd.h.
5956         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
5957         independent configuration file.
5958         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
5959         directly by i386/freebsd.h.
5960         * configure: Rebuilt.
5961
5962         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
5963         which is in the user's namespace.
5964         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
5965         `i386' which is not in our namespace.
5966
5967 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
5968
5969         * invoke.texi (ARM Options): Add in -mno-alignment-traps
5970
5971 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
5972
5973         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
5974         (add_dwarf_attr, add_child_die): Just push onto the front.
5975         (reverse_die_lists): New fn.
5976         (add_sibling_attributes): Use it.
5977         (push_decl_scope): Reorganize.
5978         (add_name_and_src_coords_attributes): Don't set file and line for
5979         an artificial decl.
5980         (gen_subprogram_die): An artificial function doesn't need to match
5981         file and line.
5982         (gen_compile_unit_die): Return the generated die.  Only add
5983         AT_comp_dir if the filename is relative.
5984         (remove_AT): Simplify loop.  Also free string values.
5985         (output_die): A DIE ref can't be null.
5986         (output_value_format, value_format): Take a dw_attr_ref.
5987         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
5988         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
5989         AT_addr, AT_lbl): New fns.
5990         (various): Use them.
5991         (various): Constify.
5992
5993 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5994
5995         * combine.c (combine_simplify_rtx): When handling a SUBREG,
5996         take SUBREG_WORD into account.
5997         (if_then_else_cond): Likewise.
5998
5999 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
6000
6001         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
6002         clause from BSD license, pursuant with
6003
6004           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
6005
6006 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
6007
6008         * loop.c (load_mems): Reformat slightly.
6009         * basic-block.h (regset_head): New typedef.
6010         (INIT_REG_SET): New macro.
6011
6012 1999-11-22  Bruce Korb  <autogen@linuxbox.com
6013
6014         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
6015         (mips-dec-bsd*): non-functional code
6016         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
6017
6018         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
6019         added three replacement fixes
6020         (no_double_slash): removed comments that are not (any longer) pertinent
6021         (bad_lval): this fix currently runs against many files.
6022         The comment seems to indicate that we should select for files
6023         containing 'pragma extern_prefix'.
6024
6025         * fixinc/fixinc.x86-linux-gnu: deleted
6026         * fixinc/inclhack.sh:  regen
6027         * fixinc/fixincl.x:  regen
6028         * fixinc/fixincl.sh:  regen
6029
6030 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
6031
6032         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
6033         its code is INSN and it has no notes.
6034
6035 1999-11-22  Andrew Haley  <aph@cygnus.com>
6036
6037         * varasm.c (function_defined): Remove.
6038         (make_function_rtl): Don't set function_defined.
6039         (make_decl_rtl): Remove global register warning.
6040         * regclass.c (no_global_reg_vars): New variable.
6041         (globalize_reg): Warn if function has already been defined.
6042         (regclass_init): Set no_global_reg_vars.
6043
6044 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6045
6046         * regclass.c (reg_pref): New structure and static variable
6047         (prefclass): Delete.
6048         (altclass): Delete.
6049         (all uses of prefclass and altclass): Use reg_pref instead.
6050
6051 1999-11-21  Nick Clifton  <nickc@cygnus.com>
6052
6053         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
6054         -malignment-traps.
6055         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
6056         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
6057         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
6058
6059 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
6060
6061         * varasm.c (output_constructor): Solve problem with long long
6062         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
6063
6064 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6065
6066         * global.c (allocno): New structure and static variable.
6067         (allocno_reg): Remove, all references replaced by allocno.
6068         (allocno_size): Likewise.
6069         (hard_reg_conflicts): Likewise.
6070         (hard_reg_preferences): Likewise.
6071         (hard_reg_copy_preferences): Likewise.
6072         (hard_reg_full_preferences): Likewise.
6073         (regs_someone_prefers): Likewise.
6074         (allocno_calls_crossed): Likewise.
6075         (allocno_n_refs): Likewise.
6076         (allocno_live_length): Likewise.
6077         (find_reg): Rename ALLOCNO to NUM.
6078
6079         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
6080         references updated.
6081         (may_move_out_cost): New variable.
6082         (init_reg_sets_1): Initialize may_move_out_cost.
6083         (record_reg_classes): Use may_move_out_cost.
6084
6085         * regclass.c (dump_regclass): New function.
6086         (regclass): New parameter DUMP, call DUMP_REGCLASS.
6087         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
6088         pass rtl_dump_file to regclass.
6089         * rtl.h (regclass): Update prototype.
6090
6091 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6092
6093         * i386.md (neg, not and abs patterns): Revmap to use
6094         ix86_expand_unary_operator and ix86_unary_operator_ok.
6095         (add?f and sub?f expanders): Force operand 1 to register.
6096         * i386.c (ix86_expand_unary_operator): Rewrite.
6097         (ix86_unary_operator_ok): Ensure that memory operands
6098         match real opcode.
6099         (ix86_binary_operator_ok): Do not allow operand 1 to
6100         come into memory and operand 0 not.
6101         (ix86_expand_binary_operator): Ensure that
6102         src1 is not non-matching memory.
6103
6104         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
6105         to support integer registers and memory.
6106         (abss?2_integer): Likewise.
6107
6108         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
6109         (REG_CLASS_NAMES): Likewise.
6110         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
6111         and GENERAL_REGS.
6112         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
6113         (movsf): Likewise; unify 4th and 5th alternative.
6114         (pushdf): Likewise.
6115         (movdf_1): Likewise; rename to movdf_integer.
6116         (pushxf): Likewise; rename to pushxf_integer; fix output template;
6117         remove redundant splitter.
6118         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
6119         (movdf_nointeger): New.
6120         (movxf_nointeger): New.
6121         (pushxf_nointeger): New.
6122
6123         * i386.md (extend?f?f): Split to expander and pattern, refuse two
6124         memory operands in patterns.
6125         (fop*): Refuse two memory operands.
6126
6127         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
6128         on !TARGET_USE_CLTD CPUs.
6129
6130 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
6131
6132         * extend.texi: Document C++ restricted pointers and references.
6133
6134 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
6135
6136         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
6137         (invalidate_skipped_set): Call it unconditionally.
6138         (cse_set_around_loop): Likewise.
6139
6140 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
6141
6142         * rtl.texi (mem): Add documentation for alias-set argument
6143         to RTX `mem'.
6144
6145 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6146
6147         * i386.h (struct_processor_costs): New fields int_load, int_store,
6148         fp_move, fp_load and fp_store
6149         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
6150         fp->int moves
6151         (MEMORY_MOVE_COST): New macro.
6152         * i386.c (386_cost): Define new fields.
6153         (i486_cost): Likewise.
6154         (pentium_cost): Likewise.
6155         (pentiumpro_cost): Likewise.
6156         (k6_cost): Likewise.
6157
6158 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
6159                           Geoffrey Keating  <geoffk@cygnus.com>
6160
6161         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
6162
6163         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
6164         MASK_ALIGN_INT.
6165
6166         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
6167         (TARGET_STRICT_ALIGNMENT): New macro.
6168         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
6169         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
6170         * invoke.texi (M680x0 Options): Document -mstrict-align.
6171
6172 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
6173                           Richard Henderson  <rth@cygnus.com>
6174
6175         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
6176         (ix86_split_long_move): Declare.
6177         * i386.c (split_xf, ix86_split_movdi): Remove.
6178         (ix86_split_to_parts, ix86_split_long_move): New.
6179         * i386.md (dimode move splitters): Use ix86_split_long_move.
6180         (dfmode move splitters): Likewise.
6181         (xfmode move splitters): Likewise.
6182         (movsf_1): Allow F->r.
6183         (movdf_1, movxf_1): Allow F->ro.
6184
6185 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
6186
6187         * except.h (struct eh_entry): Add goto_entry_p.
6188         (eh_region_from_symbol): Remove prototype.
6189         * except.c (find_func_region_from_symbol): New function.
6190         (emit_cleanup_handler): Likewise.
6191         (eh_region_from_symbol): Make it static.
6192         (add_new_handler): Verify the argument.
6193         (find_func_region): Update comment.
6194         (expand_eh_region_end): Expand handlers here, rater than waiting
6195         until expand_leftover_cleanups or start_all_catch.
6196         (expand_leftover_cleanups): Don't expand here.
6197         (expand_start_all_catch): Or here.
6198         (expand_rethrow): Check the return value from find_func_region.
6199         * function.c (expand_function_end): Emit the catch_clauses.
6200
6201 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
6202
6203         * integrate.c (expand_inline_function): Add necessary check for NULL.
6204
6205 1999-11-18  Nick Clifton  <nickc@cygnus.com>
6206
6207         * toplev.c (main): Correctly detect an unrecognised option.
6208
6209         * cppinit.c (cpp_handle_option): Do not claim to have consumed
6210         a -f option if it has not been recognised.
6211
6212 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
6213
6214         * basic-block.h (update_life_extent): Remove trailing comma on
6215         enumeration type list.
6216
6217 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6218
6219         * varasm.c (output_constructor) Solved problem with long long
6220         bitfields. Corrected calculating this_time and shift. Also
6221         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
6222
6223 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
6224
6225         * flow.c (split_edge): Take looping structure into account when
6226         determining where to put the new block note.
6227
6228 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
6229
6230         * Makefile.in (ggc-none.o): Provide host specific version if
6231         needed.
6232
6233 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
6234
6235         * cse.c (delete_trivially_dead_insns): Identify no-op insns
6236         containing subregs too.
6237
6238 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
6239
6240         * invoke.texi: Add documentation for -muninit-const-in-rodata.
6241         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
6242         (TARGET_UNINIT_CONST_IN_RODATA): Define.
6243         (text_section): Add switches -munint-const-in-rodata and
6244         -mno-uninit-const-in-rodata.
6245         (ASM_OUTPUT_COMMON): Remove.
6246         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
6247         const objects should be placed in read-only data. Otherwise declare
6248         them in common.
6249
6250 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
6251
6252         * jump.c (jump_optimize_1): Revert last change.
6253
6254 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
6255
6256         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
6257         test if optimizing for size.
6258
6259 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
6260
6261         * Makefile.in (toplev.o): Depend on except.h.
6262         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
6263
6264 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
6265
6266         * i386.md (divmodsi4): Rewrite to expander.
6267         (*divmodsi4_nocltd): New.
6268         (*divmodsi4_cltd): New.
6269         (divmodsi4 splitter): Handle the case when input comes in edx.
6270         (udivmodhi4): Do not use constraints in exander.
6271         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
6272
6273 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
6274
6275         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
6276         for the common case.
6277
6278 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
6279
6280         * explow.c (hard_function_value): Add outgoing argument.
6281         * expr.h (hard_function_value): Declare it.
6282         * calls.c (expand_call, emit_library_call_value): Update callers.
6283         * function.c (aggregate_value_p): Ditto.
6284         (diddle_return_value): Must look at the outgoing registers
6285         on archs with register windows.
6286
6287 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
6288
6289         * alpha.c (alpha_build_va_list): Use make_lang_type and
6290         initialize TYPE_NAME for the va_list record.
6291
6292         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
6293
6294         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
6295         for printing.
6296         * ggc.h (struct ggc_statistics): Rearrange elements for better
6297         packing on 64-bit hosts.
6298         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
6299         (compute_nearerout): Likewise.
6300
6301 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
6302
6303         * config/rs6000/rs6000.c (first_reg_to_save): Save
6304         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
6305
6306 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
6307
6308         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
6309         notion of nesting to find the DIE for a type or function.
6310         DIEs can go in limbo even if we got a context_die.
6311         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
6312         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
6313         for local type.
6314         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
6315         (gen_type_die): Writing out the context doesn't cause member class
6316         template instantiations to be written out as well.
6317
6318 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
6319
6320         * rs6000.h (ASM_OUTPUT_DEF): New.
6321         Based on proposed addition from David Edelsohn.
6322
6323 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
6324             Bruce Korb  <autogen@linuxbox.com>
6325
6326         * fixinc/inclhack.def
6327         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
6328         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
6329                 in net/inet.h.
6330         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
6331         (svr4_endian): enabled with SVR5
6332         (svr4_mkdev): simplified syntax and enabled with SVR5
6333
6334 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
6335
6336         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
6337         * configure: Rebuilt.
6338         * config/t-freebsd-thread: New file.
6339
6340 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
6341
6342         * i386.c (ix86_decompose_address): Verify the base is a REG
6343         before trying to examine its register number.
6344
6345         * basic-block.h: Remove all #defines and prototypes related to
6346         integer lists.
6347         (free_bb_mem, compute_preds_succs): Remove prototype.
6348         * rtl.h (free_bb_mem): Remove prototype.
6349         * flow.c (alloc_int_list_node); Remove function.
6350         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
6351         (compute_preds_succs, free_bb_mem): Likewise.
6352         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
6353         * toplev.c (rest_of_compilation): Likewise.
6354         * haifa-sched.c (build_control_flow): Use flow generated edge
6355         list to build the haifa specific edge list.
6356         (find_rgns): Use new CFG data structures instead of pred/succ lists.
6357         (schedule_insns): Do not build pred/succ lists anymore.  Instead
6358         build the edge table.
6359
6360         * basic-block.h (dump_bb_data): Remove declaration.
6361         * flow.c (dump_bb_data): Remove function.
6362         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
6363         (sbitmap_union_of_predsucc): Likewise.
6364
6365         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
6366         argument.  All callers changed.
6367         (delete_null_pointer_checks_1): No longer need to compute the
6368         pred/succ lists.
6369
6370         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
6371         All callers changed.
6372         (pre_expr_reaches_here_p_work): Likewise.
6373         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
6374         * lcm.c (compute_laterin): Fix initialization of LATER.
6375         (compute_nearerout): Similarly for NEARER.
6376
6377 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6378
6379         * cse.c (set_nonvarying_address_components): Delete unused function.
6380         (refers_to_p): Likewise.
6381
6382 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
6383
6384         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
6385         needed.
6386
6387 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6388
6389         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
6390         definition in do while (0).
6391
6392 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
6393
6394         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
6395
6396 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
6397
6398         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
6399
6400 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
6401
6402         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
6403         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
6404         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
6405         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
6406
6407         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
6408         saved on the stack.  Output more accurate stack frame statistics
6409         into assembler file.
6410
6411 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
6412
6413         * genextract.c (record_insn_name): New function.
6414         (get_insn_name): No longer a stub.
6415         (main): Call record_insn_name for each insn.  After each label
6416         written, print the insn name in a comment.
6417
6418 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6419
6420         * output.h (const_section, init_section, fini_section): Add
6421         prototypes.
6422
6423         * alpha/elf.h (const_section): Delete declaration.
6424
6425         * svr4.h (const_section): Likewise.
6426
6427 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
6428
6429         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
6430         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
6431         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
6432         expressions.
6433         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
6434         variable-sized array bounds.
6435
6436 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
6437
6438         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
6439         ASM_OUTPUT_LABEL.
6440
6441 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6442
6443         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
6444         addresses the same way GO_IF_LEGITIMATE_INDEX does.
6445
6446 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6447
6448         * cse.c (hash_arg_in_struct): Delete.
6449         (struct table_elt): Delete elt in_struct.
6450         (struct set): Delete elt src_in_struct.
6451         (merge_equiv_classes): Don't set either hash_arg_in_struct or
6452         the corresponding in_struct elts.
6453         (canon_hash): Likewise.
6454         (safe_hash): Likewise.
6455         (find_best_addr): Likewise.
6456         (record_jump_cond): Likewise.
6457         (cse_insn): Likewise.
6458
6459 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
6460
6461         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
6462
6463         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
6464         unsigned types.
6465
6466 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
6467
6468         * function.c (diddle_return_value): Put back check that the DECL_RTL
6469         for the function is a register.
6470
6471         * function.c (diddle_return_value): Use hard_function_value to
6472         get an rtx suitable for use in the USE/CLOBBER insn.
6473
6474         * global.c (global_conflicts): Update comments.
6475         (record_conflicts): No need to record conflicts between pseudos here.
6476
6477 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
6478
6479         * fixinc/fixincl.c: Added verbose levels for status messages
6480
6481 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6482
6483         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
6484         operand as argument to expand_and or expand_binop.
6485
6486 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
6487
6488         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
6489         gcc_add_string_root.
6490
6491 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
6492
6493         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
6494
6495 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
6496
6497         * flow.c (compute_flow_dominators): Initially put all blocks on
6498         the worklist.
6499         * lcm.c (compute_antinout_edge, compute_available): Similarly.
6500         * gcse.c (compute_cprop_avinout): Remove.
6501         (compute_cprop_data): Use compute_available.
6502         (delete_null_pointer_checks_1): Use compute_available.
6503
6504         * basic-block.h (compute_available): Returns a void now.
6505         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
6506         to return a value anymore.
6507         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
6508         worklists.  Fix boundary cases. Compute maximal solutions.
6509         (compute_laterin, compute_nearerout): Similarly.
6510
6511         * dwarf2out.c (add_AT_location_description): Allow
6512         (mem (plus (pseudo) (...)) too.
6513
6514 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
6515
6516         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
6517
6518 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
6519                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6520
6521         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
6522
6523         * gansidecl.h: Likewise.
6524
6525         * rtl.c: Likewise.
6526
6527         * rtl.h: Likewise.
6528
6529         * toplev.h: Likewise.
6530
6531         * tree.c: Likewise.
6532
6533         * tree.h: Likewise.
6534
6535         * varray.c: Likewise.
6536
6537         * varray.h: Likewise.
6538
6539 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
6540
6541         * gcov.c (struct arcdata): Add hits and total, remove prob.
6542         (output_branch_counts): New.
6543         (process_args): Set output_branch_counts if -c.
6544         (calculate_branch_probs): Store hits and total instead of
6545         percentage.
6546         (output_data): Emit counts if output_branch_counts is true.
6547         * gcov.texi (Invoking Gcov): Document -c switch..
6548
6549 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
6550
6551         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
6552         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
6553
6554 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
6555
6556         * invoke.texi (C Dialect Options): Add missing builtins from
6557         c-common.c to list.
6558         * extend.texi (Other Builtins): Copy to this list.
6559
6560 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6561
6562         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
6563         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
6564         redundant bitmap.h.
6565
6566 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
6567
6568         * flow.c (compute_flow_dominators): No longer treat basic block 0
6569         or (n_basic_blocks - 1) specially.  Clear the AUX field before
6570         starting computation of doms/pdoms.  Fix initial state for pdoms.
6571
6572 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6573
6574         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
6575         match rtl.o's: added ggc.h and toplev.h
6576         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
6577         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
6578         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
6579
6580 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
6581
6582         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
6583         from HAVE_DOS_BASED_FILESYSTEM.
6584         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
6585         HAVE_DOS_BASED_FILESYSTEM.
6586         (main): Likewise.
6587         (split_directories): Only special-case DOS file names if
6588         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
6589         instead of explicit tests.  Conditionalize on !VMS.
6590         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
6591         tests.  Conditionalize on !VMS.
6592         (process_command): Only use make_relative_prefix if !VMS.
6593         (free_split_directories): Conditionalize on !VMS.
6594         (DIR_UP): Conditionalize on !VMS.
6595
6596 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6597
6598         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
6599
6600 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
6601
6602         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
6603         case.
6604
6605 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
6606
6607         * invoke.texi (Environment Variables): Document relative path
6608         lookup.
6609         * gcc.c (DIR_UP): If not defined, define as "..".
6610         (standard_bindir_prefix): New static, holds target location to
6611         install binaries.
6612         (split_directories): New function to split a filename into
6613         component directories.
6614         (free_split_directories): New function, release memory allocated
6615         by split_directories.
6616         (make_relative_prefix): New function, make a relative pathname if
6617         the compiler is not in the expected location.
6618         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
6619         can figure out an appropriate prefix from argv[0].
6620         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
6621         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
6622         STANDARD_BINDIR_PREFIX.
6623
6624 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6625
6626         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
6627         in c4x.c.
6628         * config/c4x/c4x.h: Moved prototypes to c4x.h.
6629         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
6630         c4x_secondary_memory_needed) Delete.
6631         (fp_zero_operand): Add mode argument.
6632
6633 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
6634
6635         * reload1.c (reload_reg_free_for_value_p): Don't use a register
6636         that is in reload_reg_used.
6637
6638 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
6639
6640         * config/arm/arm-protos.h: New file: Prototypes for functions
6641         defined in arm.c and pe.c.
6642         * config/arm/arm.h: Fix compile time warnings.
6643         * config/arm/arm.c: Fix compile time warnings.
6644         * config/arm/pe.h: Fix compile time warnings.
6645         * config/arm/aout.h: Fix compile time warnings.
6646
6647 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
6648
6649         * config/m32r/m32r-protos.h: New file: Prototypes for functions
6650         defined in m32r.c
6651
6652         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
6653         Add support for subtargets.
6654         Add prototypes for new predicates.
6655         Add scheduling macros.
6656
6657         * config/m32r/m32r.c: Fix compile time warnings.
6658         (int8_operand): New predicate function.
6659         (reg_or_cmp_int16_operand): New predicate function.
6660         (extend_operand): New predicate function.
6661         (m32r_adjust_code): New scheduling function.
6662         (m32r_adjust_priorty): New scheduling function.
6663         (m32r_sched_init): New scheduling function.
6664         (m32r_sched_reorder): New scheduling function.
6665         (m32r_sched_variable_issue): New scheduling function.
6666         (direct_return): New codegen function.
6667         (m32r_not_same_reg): New rtl testsing function.
6668
6669         * config/m32r/m32r.md: Fix compile time warnings.
6670         Add support for pre decrement and post increment memory
6671         references.
6672         Add S<cc> patterns.
6673         Add fabs patterns.
6674
6675 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6676
6677         * global.c (EXECUTE_IF_CONFLICT): Don't define.
6678         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
6679         (find_reg): Likewise.
6680
6681 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
6682
6683         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
6684         to avoid assembler errors.
6685
6686 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
6687
6688         * config/v850/v850-protos.h: New file: Prototypes for functions
6689         defined in v850.c
6690         * config/v850/v850.h: Move prototypes to v850-protos.h
6691         * config/v850/v850.c: Move prototypes to v850-protos.h
6692         * config/v850/v850.md: Fix compile time warnings.
6693
6694         * config/fr30/fr30-protos.h: New file: Prototypes for functions
6695         defined in fr30.c
6696         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
6697         * config/fr30/fr30.c: Fix compile time warnings.
6698         * config/fr30/fr30.md: Fix compile time warnings.
6699
6700 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
6701
6702         * tree.h (get_containing_scope): Declare it.
6703         * tree.c (get_containing_scope): New fucntion.
6704         (decl_function_context): Use it.
6705         * toplev.c (rest_of_compilation): Use get_containing_scope.
6706
6707 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6708
6709         * Makefile.in (rtl.o): Depend on toplev.h.
6710
6711 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
6712
6713         * cse.c (delete_trivially_dead_insns): Replace alloca with
6714         xmalloc/xcalloc.
6715         * except.c (update_rethrow_references): Likewise.
6716         (init_eh_nesting_info): Likewise.
6717         * function.c (identify_blocks): Likewise.
6718         * gcse.c (dump_hash_table): Likewise.
6719         * graph.c (print_rtl_graph_with_bb): Likewise.
6720         * loop.c (combine_movables): Likewise.
6721         (move_movables): Likewise.
6722         (count_loop_regs_set): Likewise.
6723         (strength_reduce): Likewise.
6724         * profile.c (compute_branch_probabilities): New function, split
6725         out from ...
6726         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
6727         * regclass.c (regclass): Likewise.
6728         * regmove.c (regmove_optimize): Likewise.
6729         * toplev.c (compile_file): Likewise.
6730         (main): Don't mess with the stack rlimit.
6731
6732 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
6733
6734         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
6735         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
6736
6737 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
6738
6739         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
6740
6741 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
6742
6743         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
6744         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
6745         macro expansion.
6746
6747 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
6748
6749         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
6750
6751 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
6752
6753         * gcse.c (post_dominators): Kill.
6754         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
6755         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
6756         pass in a pdom array since we do not need pdoms.
6757         * haifa-sched.c (schedule_insns): Similarly.
6758         * flow.c (compute_dominators): Remove dead function.
6759         (compute_flow_dominators): Do not compute doms or pdoms if the
6760         caller does not request them.  Split up loop to build doms and
6761         pdoms.  Use a worklist to compute doms and pdoms.
6762         * basic-block.h (compute_dominators): Remove prototype.
6763
6764 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
6765
6766         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
6767         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
6768         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
6769         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
6770         (cant_move, fed_by_spec_load, is_load_insn): Remove.
6771         (schedule_region): Remove unused variable.
6772         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
6773
6774 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
6775
6776         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
6777         (update_equiv_regs): Likewise.
6778         (block_alloc): Likewise.
6779         * reg-stack.c (reg_to_stack): Likewise.
6780         (convert_regs_2): Likewise.
6781         * reload1.c (reload_as_needed): Likewise.
6782
6783 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
6784
6785         * Makefile.in (dbxout.o): Depend on ggc.h.
6786         (dwarf2out.o): Likewise.
6787         (xcoffout.o): Likewise.
6788         * dbxout.c: Include ggc.h.
6789         (dbxout_init): Register lastfile as a root.
6790         * dwarf2out.c: Include ggc.h.
6791         (dwarf2out_line): Register lastfile as a root.
6792         * xcoffout.c: Include ggc.h.
6793         (xcoffout_source_line): Register xcoff_lastfile as a root.
6794
6795 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
6796
6797         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
6798
6799 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
6800
6801         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
6802         defined.
6803         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6804
6805 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6806
6807         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
6808         (EXECUTE_IF_CONFLICT): Likewise.
6809         (ALLOCNO_LIVE_P): Avoid signed division.
6810         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
6811         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
6812         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
6813
6814 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
6815
6816         * haifa-sched.c (schedule_block): Don't crash if there's no
6817         next insn for an interblock movement.
6818         (add_branch_dependences): Don't allow clobber insns to move either.
6819
6820 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
6821
6822         * i386.c (split_xf): New.
6823         * i386-protos.h: Declare it.
6824         * i386.md (movxf_1): Add general regs alternatives.
6825         (movxf_1+1): New splitter for same.
6826
6827 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
6828
6829         * function.c (purge_addressof_1): Add missing return values.
6830
6831 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
6832
6833         * function.c (is_addressof): New function.  Returns true if
6834         the given piece of RTL is an ADDRESSOF.
6835         (purge_addressof_1): Make boolean.  Return false if the
6836         ADDRESSOFs could not be purged.
6837         (purge_addressof): If ADDRESSOFs could not be purged from the
6838         notes attached to an insn, remove the offending note(s),
6839         unless they are attached to a libcall.
6840
6841 1999-11-05  Andreas Jaeger  <aj@suse.de>
6842
6843         * genoutput.c (null_operand =): Initialize all fields.
6844
6845         * errors.h: Add extern to prototypes.
6846
6847 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
6848
6849         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
6850         * configure: Rebuilt.
6851
6852 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6853
6854         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
6855         (mirror_conflicts): New function.
6856         (global_alloc): Call it.
6857         (expand_preferences): Remove redundant CONFLICTP test.
6858         (find_reg, dump_conflicts): Likewise.
6859         (prune_preferences): Process conflicts one word at a time.
6860
6861 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
6862
6863         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
6864         instead of an explicit loop.
6865
6866 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
6867
6868         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
6869         if REG_RETVAL check succeeds, then put classp in src_elt.
6870
6871 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
6872
6873         * function.c (pad_to_arg_alignment): Only update argument_pad
6874         if the argument's alignment is greater than STACK_BOUNDARY.
6875
6876 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
6877
6878         * bitmap.h (BITMAP_XFREE): New.
6879         * flow.c (life_analysis): Use it.
6880         (life_analysis_1): Free blocks.
6881
6882         * combine.c (undo_commit): New.
6883         (try_combine): Use it.  Don't zap undobuf.undos.
6884         (combine_instructions): Don't zap undobuf.undos; free the
6885         undobuf.frees list.
6886
6887         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
6888
6889         * stmt.c (cost_table_): New.
6890         (estimate_case_costs): Use it instead of xmalloc.
6891
6892         * toplev.c (compile_file): Reuse dumpname memory instead
6893         of strdup'ing it.
6894
6895 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
6896
6897         * reg-stack.c (convert_regs_1): Initialize target_stack->top
6898         after verifying an EH edge.
6899
6900         * haifa-sched.c (init_rgn_data_dependences): Correctly
6901         size bb_pending_lists_length when zeroing.
6902
6903 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
6904
6905         * function.c (diddle_return_value): New.
6906         (expand_function_end): Use it.
6907         * stmt.c (expand_null_return): Likewise.
6908         (expand_value_return): Likewise.
6909
6910         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
6911
6912         * reload1.c (reload): Don't remove return value clobbers.
6913
6914 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
6915
6916         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
6917
6918 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
6919
6920         * cse.c (cse_main): Use xmalloc, not alloca.
6921         (cse_basic_block): Likewise.
6922         * local-alloc.c (local_alloc): Likewise.
6923
6924 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
6925                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6926
6927         * rtl.c: Include toplev.h.
6928         (fatal): Remove declaration.
6929
6930 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
6931
6932         * haifa-sched.c (schedule_block): Fix thinko.
6933
6934 1999-11-03  James McKelvey <mckelvey@fafnir.com>
6935
6936         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
6937         S_IR* defined values
6938
6939 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
6940
6941         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
6942         call `malloc' instead.
6943
6944 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
6945
6946         * flags.h (flag_renumber_insns): Declare.
6947         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
6948         renumbering table.
6949         * rtl.h (renumber_insns): Change prototype.
6950         * toplev.c (flag_renumber_insns): Define.
6951         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
6952
6953 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
6954
6955         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
6956         and fpsqrtd.  Use them and create fdiv function unit to more
6957         accurately represent fpu sqrt pipeline semantics on UltraSparc.
6958         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
6959
6960 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
6961
6962         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
6963         3 on UltraSparc.
6964         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
6965         insn into ready list, do not use just a raw swap.
6966
6967 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
6968
6969         * rtl.h (renumber_insns): New function.
6970         (remove_unnecessary_notes): Likewise.
6971         * emit-rtl.c (renumber_insns): Define.
6972         (remove_unncessary_notes): Likewise.
6973         * toplev.c (rest_of_compilation): Remove dead code.
6974         Use renumber_insns and remove_unncessary_notes.
6975
6976         * gcse.c (struct null_pointer_info): New type.
6977         (get_bitmap_width): New function.
6978         (current_block): Remove.
6979         (nonnull_local): Likewise.
6980         (nonnull_killed): Likewise.
6981         (invalidate_nonnull_info): Take a null_pointer_info as input.
6982         (delete_null_pointer_checks_1): New function.
6983         (delete_null_pointer_checks): Use it.
6984
6985         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
6986         (split_edges): Likewise.
6987         (schedule_block): Likewise.
6988         (compute_block_backward_dependencies): Likewise.
6989         (schedule_region): Likewise.
6990         (schedule_insns): Likewise.
6991
6992 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
6993
6994         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
6995         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
6996         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
6997         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
6998         * jump.c (delete_unreferenced_labels): Don't delete if
6999         LABEL_ALTERNATE_NAME is set.
7000         * print-rtl.c (print_rtx): Dump alternate name.
7001         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
7002         * rtl.h (LABEL_ALTERNATE_NAME): Define.
7003         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
7004         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
7005
7006 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7007
7008         * fix-header.c (recognized_extern, recognized_function): Constify
7009         a char*.
7010
7011         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
7012         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
7013         (compute_available): Remove unused variable `last'.
7014         (compute_nearerout): Remove unused variable `temp_bitmap'.
7015         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
7016         Remove unused variable `x'.
7017
7018         * scan.h (recognized_function, recognized_extern): Constify a
7019         char*.
7020
7021         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
7022
7023 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7024
7025         * varasm.c (decode_rtx_const): Use XSTR to access the string
7026         of a SYMBOL_REF.
7027
7028 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
7029
7030         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
7031
7032 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7033
7034         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
7035
7036 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
7037
7038         * pa.c (ireg_operand): New function.
7039         * pa.h (PREDICATE_CODES): Handle ireg_operand.
7040         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
7041         Fix out of date comment.
7042
7043         * pa.md (negdi2): Turn into expander + anonymous pattern.
7044
7045         * reload.c (find_reloads): Fix typos in recent change.
7046
7047         * dwarf2out.c: Do not include ctype.h.
7048
7049 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7050
7051         * regclass.c (record_reg_classes): Always use may_move_cost when
7052         seeing how operand fits with various register classes.
7053
7054 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
7055
7056         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
7057         * toplev.c: Revert Nov 1 13:22 change.
7058
7059 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
7060
7061         * config/pa/pa.md (height reduction patterns): Add checks for
7062         overlapping operands to avoid semantic-destroying splits for
7063         height reduction patterns.
7064
7065 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7066
7067         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
7068         have been an hyphen, fixed.
7069         * configure: Rebuilt.
7070
7071 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
7072
7073         * config/arm/tpe.h: Add prototypes for exported functions.
7074         * config/arm/pe.c: Fix compile time warnings.
7075         * config/arm/semi.h: Fix compile time warnings.
7076         * config/arm/arm.c: Fix compile time warnings.
7077         * config/arm/arm.h: Fix compile time warnings.
7078         * config/arm/arm.md: Fix compile time warnings.
7079         * config/arm/thumb.c: Fix compile time warnings.
7080         * config/arm/thumb.h: Fix compile time warnings.
7081         * config/arm/thumb.md: Fix compile time warnings.
7082
7083 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
7084
7085         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
7086         detection code
7087
7088         * unroll.c (unroll_loop): Remove LOOP notes when loop is
7089         completely unrolled.
7090
7091 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7092
7093         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
7094
7095 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
7096
7097         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
7098         * rtl.h (rtx_equal_p): Move prototype.
7099         * rtl.c (rtx_equal_function_value_matters): Move from
7100         rtlanal.c
7101         (rtx_equal_p): Likewise.
7102         * rtlanal.c (rtx_equal_function_value_matters): Delete.
7103         (rtx_equal_p): Likewise.
7104
7105 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
7106
7107         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
7108         ! HAS_INIT_SECTION.
7109
7110 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
7111
7112         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
7113
7114         * pa.h (ADDR_VEC_ALIGN): Define.
7115
7116         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
7117         notes when presented with "if (foo) break; end_of_loop" and
7118         the break sequence gets moved out of the loop.
7119
7120         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
7121         Remove explicit zero initializations of entries within MAP.
7122
7123 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
7124
7125         * reg-stack.c (convert_regs_1): Handle EH edges specially.
7126
7127 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
7128
7129         * bitmap.h (BITMAP_XMALLOC): New macro.
7130         * flow.c (CLEAN_ALLOCA): Remove.
7131         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
7132         (life_analysis): Likewise.
7133         (update_life_info): Don't use CLEAN_ALLOCA.
7134         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
7135         (calculate_global_regs_live): Likewise.
7136         (print_rtl_with_bb): Likewise.
7137         (verify_flow_info): Likewise.
7138         * global.c (global_alloc): Likewise.
7139         (global_conflicts): Likewise.
7140         * integrate.c (save_for_inline_nocopy): Likewise.
7141         (expand_inline_function): Likewise.
7142         * jump.c (jump_optimize_1): Likewise.
7143         (duplicate_loop_exit_test): Likewise.
7144         (thread_jumps): Likewise.
7145         * loop.c (loop_optimize): Likewise.
7146         (combine_givs): Likewise.
7147         (recombine_givs): Likewise.
7148         * reorg.c (dbr_schedule): Likewise.
7149         * unroll.c (unroll_loop): Likewise.
7150
7151         * combine.c (combine_instructions): Use xmalloc instead of alloca.
7152
7153 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
7154
7155         * toplev.c (rest_of_compilation): Don't optimize the CFG
7156         when rebuilding, just before dbr.
7157
7158 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7159
7160         * output.h (assemble_end_function, assemble_destructor,
7161         assemble_constructor, assemble_gc_entry, assemble_global,
7162         assemble_label, output_constant_pool) Constify a char*.
7163
7164         * varasm.c (assemble_destructor, assemble_constructor,
7165         assemble_gc_entry, assemble_end_function, assemble_global,
7166         assemble_label, output_constant_pool): Likewise.
7167
7168 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
7169
7170         * config/arm/thumb.c (thumb_expand_prologue): Add comments
7171         explaining what is goin on in this function.
7172
7173 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7174
7175         * regclass.c (record_reg_classes): In matching case, recompute
7176         costs since the direction of movement is different.
7177
7178 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
7179
7180         * resource.c (mark_target_live_regs): For unconditional branches,
7181         the resources found at the branch target should be added to the
7182         resources found so far, not intersected.
7183
7184 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
7185
7186         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
7187         old cpp's.
7188         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
7189         (sys/mman.h): Include this file only if #HAVE_MMAP.
7190         (run_compiles): Initialize `esac_fmt' with one old KR string, not
7191         with automatically concatenated ANSI strings.
7192
7193 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
7194
7195         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
7196         (DIV_ROUND_UP): Robustify.
7197         (ggc_recalculate_in_use_p): New function.
7198         (release_pages): Don't inline it.
7199         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
7200         outer contexts.
7201         (ggc_pop_context): Use ggc_recalculate_in_use_p.
7202         (clear_marks): Always save in_use_p.
7203         (sweep_pages): Use ggc_recalculate_in_use_p.
7204         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
7205         Release pages before counting statistics.
7206
7207 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
7208
7209         * toplev.c (rest_of_compilation): Fix thinko in this change:
7210
7211         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
7212
7213         (rest_of_compilation): If inside an inlined external function,
7214         pretend we are just being declared.
7215
7216 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
7217
7218         * flow.c (calculate_global_regs_live): Fix thinko.
7219
7220         * integrate.c (expand_inline_function): Fix bugs in previous
7221         change from Oct 28, 1999.
7222
7223 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
7224
7225         * stmt.c (expand_value_return): Fix typo in this change:
7226
7227         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7228         (expand_value_return): Correctly convert VAL when promoting function
7229         return; support RETURN_REG being a PARALLEL.
7230
7231 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
7232
7233         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
7234
7235 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7236
7237         * hard-reg-set.h (reg_names): Constify a char*.
7238
7239         * regclass.c  (reg_names): Likewise.
7240
7241         * regs.h (reg_names): Likewise
7242
7243         * a29k/a29k.c (reg_names): Delete declaration.
7244
7245         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
7246
7247         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
7248         arc_output_function_epilogue): Likewise.
7249
7250         * elxsi/elxsi.c (reg_names): Likewise.
7251
7252         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
7253
7254         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
7255         Likewise.
7256
7257         * m88k/m88k.c (output_function_profiler): Likewise.
7258
7259         * sparc/sparc.c (sparc_flat_output_function_prologue,
7260         sparc_flat_output_function_epilogue): Likewise.
7261
7262 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
7263
7264         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
7265         warning from -Wuninitialized and put it under -W.
7266         * function.c (uninitialized_vars_warning): Warn only when the
7267         corresponding flag is set.
7268
7269 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
7270
7271         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
7272         is nonzero and the single set does not have an elt, then assign
7273         it an elt.
7274
7275         * simplify-rtx.c: New file.
7276         * Makefile.in (OBJS): Add simplify-rtx.o
7277         (simplify-rtx.o): Add dependencies.
7278         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
7279         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
7280         (cse_gen_binary, simplify_unary_operation): Delete.
7281         (simplify_binary_operation, simplify_plus_minus): Likewise.
7282         (check_fold_consts, simplify_relation_operation): Likewise.
7283         (simplify_ternary_operation): Likewise.
7284         (delete_trivially_dead_insns): Simplify the contents of the
7285         REG_EQUAL note before trying to substitute it into the source
7286         of the reg-reg copy at the end of a libcall sequence.
7287
7288         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
7289         references/callers changed.
7290
7291         * mn10200.c (mn10200_va_arg): Force the return value into a
7292         register.
7293
7294         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
7295
7296         * cccp.c (macroexpand): Avoid out of range accesses for omitted
7297         arguments.
7298
7299 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
7300
7301         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
7302
7303 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
7304
7305         * fold-const.c (fold): Fix thinko when optimizing comparisons
7306         against -0.0.
7307
7308 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
7309
7310         * gcc.texi (Passes): Update front-end files to their current
7311         location.
7312
7313 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
7314
7315         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
7316         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7317         (PREDICATE_CODES): Add addition_operation.
7318         * alpha-protos.h (addition_operation): Declare.
7319         (secondary_reload_class): Likewise.
7320         * alpha.c (addition_operation): New.
7321         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
7322         * alpha.md (adddi3): Turn into expander.
7323         (*lda, *adddi_2): New.
7324         (movsf, movdf patterns): Don't preference integer regs.
7325         (movsi, movdi patterns): Don't preference fp regs.
7326
7327 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
7328
7329         * genrecog.c (write_switch): Check for duplicate CODE cases.
7330
7331 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
7332
7333         * ggc-common.c: Update pre-function commentary.
7334         * ggc-page.c: Likewise.
7335         (poison): Remove.
7336         (poison_pages): Use memset directly.
7337         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
7338         (ggc_collect): Poison before sweeping.
7339         * ggc-simple.c: Update pre-function commentary.
7340         (ggc_alloc_obj): Poison non-zeroed memory.
7341
7342 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
7343
7344         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
7345         match format string, even on 64-bit hosts.
7346         * gcc-page.c (ggc_page_print_statistics): Likewise.
7347
7348 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
7349
7350         * config/i386/i386.c (ix86_cpu): Revert last patch.
7351         * config/i386/i386.h (ix86_cpu): Ditto.
7352
7353 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
7354
7355         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
7356         TYPE_SIZE, convert type of result to sizetype.
7357
7358 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
7359
7360         * flow.c (count_or_remove_death_notes): Equate NULL with the
7361         universal set.
7362
7363         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
7364         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
7365         dbr_schedule.
7366
7367         * i386.c (pic_label_no): Delete.
7368         (ix86_attr_length_default): Don't use single_set to peek
7369         inside a parallel.
7370
7371         * recog.c (peephole2_optimize): Allow recog_next_insn to index
7372         the first insn after bb->end.
7373         * i386.md (push mem peeps): Scratch is live after evaluation
7374         of the memory.
7375         (cmp mem peep): Similarly.
7376
7377 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
7378
7379         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
7380         * function.c (pad_to_arg_alignment): Add missing braces.
7381
7382 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7383
7384         * alpha/alpha-protos.h (literal_section): Add prototype.
7385         (alpha_need_linkage, alpha_start_function,alpha_end_function):
7386         Constify a char*.
7387
7388         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
7389         prototype.
7390         (alpha_start_function, alpha_end_function, float_strings,
7391         alpha_need_linkage): Constify a char*
7392
7393         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
7394
7395         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
7396
7397         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
7398
7399         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
7400
7401 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7402
7403         * flow.c (debug_flow_info): Add prototype.
7404
7405         * gcc.c (main): Likewise.
7406
7407         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
7408         Likewise.
7409
7410         * reload1.c (failed_reload, set_reload_reg): Likewise.
7411
7412         * mips-tfile.c (main): Likewise.
7413         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
7414         with ATTRIBUTE_NORETURN.
7415
7416 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
7417
7418         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
7419         DECL is not a memory ref.
7420
7421 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
7422
7423         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
7424         * config/i386/i386.c (ix86_cpu): Add extern attribute.
7425
7426 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
7427
7428         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
7429         * config/mips/elf64.h: ditto.
7430
7431 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
7432
7433         * expr.c (emit_push_insn): New argument alignment_pad.
7434         Update all callers.  Adjust stack pointer based on alignment pad.
7435         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
7436         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
7437         (locate_and_pad_parm): New argument alignment_pad.  Update all
7438         callers.
7439         * expr.h (emit_push_insn): Update prototype.
7440         (locate_and_pad_parm): Update prototype.
7441         * calls.c (arg_data):  Add new field alignment_pad.
7442         (initialize_argument_information): Initialize alignment_pad.
7443
7444 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
7445
7446         * except.c (free_eh_nesting_info): Free the info itself.
7447         * function.c (free_after_compilation): Don't free NULL.
7448         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
7449         (pre_edge_insert): Free inserted.
7450         * stmt.c (free_stmt_status): Don't free NULL.
7451
7452 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
7453
7454         * gcov.c (DIR_SEPARATOR): Provide default.
7455         (output_data): Add test for MS-DOS format absolute filename.
7456         (fancy_abort): Correct program name.
7457         (open_files): Open all files in binary mode.
7458         * libgcc2.c (__bb_exit_func): Likewise.
7459
7460         * profile.c (init_branch_prob): Specify binary when opening files.
7461
7462         * flags.h (flag_unwind_tables): New decl.
7463         * toplev.c (flag_unwind_table): New definition.
7464         (f_options): Add -funwind-tables.
7465         (decode_g_option): Clarify warning when unknown -g option is given.
7466         (rest_of_compilation): If inside an inlined external function,
7467         pretend we are just being declared.
7468
7469         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
7470         (dwarf2out_frame_finish): Likewise.
7471
7472 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
7473
7474         * fold-const.c (merge_ranges): If not in0, but in1, handle
7475         upper bounds equal like subset case.
7476
7477 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
7478
7479         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
7480         passed in a register but moved to the stack.
7481
7482 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
7483
7484         * gcc.c (pass_exit_codes, greatest_status): New variables.
7485         (struct option_map): Add entry for "--pass-exit-codes".
7486         (execute): Update greatest_status if error.
7487         (display_help): Add documentation for -pass-exit-codes.
7488         (process_command): Handle -pass-exit-codes.
7489         (main): Look at pass_exit_codes and greatest_status on call to exit.
7490
7491 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7492
7493         * reload.c (find_reloads): Refine test for no input reload
7494         case to not includes reloads emitted after insn.
7495
7496         * function.c (find_temp_slots_from_address): Handle sum involving
7497         a register that points to a temp slot.
7498         (update_temp_slot_address): Make recursive call if both old and
7499         new are PLUS with a common operand.
7500         * calls.c (expand_call): Mark temp slot for result as having
7501         address taken.
7502
7503         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
7504
7505         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
7506         component as well as "BINUTILS".
7507
7508         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
7509         * integrate.c (copy_rtx_and_substitute): Likewise.
7510         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
7511         All callers changed.
7512         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
7513
7514         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
7515         gdb extensions, write size of type; also be more consistent
7516         in using references when this is a subtype.
7517
7518         * pa.md (extv, extzv, insv): Use define_expand to reject constant
7519         that is out of range.
7520
7521         * loop.c (unknown_constant_address_altered): New variable.
7522         (prescan_loop): Initialize it.
7523         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
7524         (invariant_p, case MEM): Remove handling for volatile and readonly;
7525         check new variable if readonly.
7526         (check_dbra_loop): Chdeck unknown_constant_address_altered.
7527
7528         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
7529         (addr_affects_sp_p): Removed from note_mem_written and only
7530         define #ifdef AUTO_INC_DEC.
7531
7532         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
7533
7534         * regclass.c (record_reg_classes): Properly handle register move
7535         directions.
7536
7537         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
7538         Don't think valid if both operands are invalid.
7539         (struct constant_descriptor): New field RTL.
7540         (mark_const_hash_entry): Mark it.
7541         (record_constant{,_rtx}): Initialize it.
7542         (output_constant_def): Allocate RTL in permanent obstack and
7543         save in table.
7544         ({record,compare}_constant_1): Modes must match for
7545         CONSTRUCTOR of ARRAY_TYPE.
7546
7547         * c-common.h (initializer_constant_valid_p): Delete decl from here.
7548         * output.h (initializer_constant_valid_p): Move decl to here.
7549         * c-common.c (initializer_constant_valid_p): Delete function from here.
7550         * varasm.c (initializer_constant_valid_p): Move function to here.
7551
7552         * tree.h (STRIP_SIGN_NOPS): New macro.
7553         * fold-const.c (optimize_minmax_comparison): New function.
7554         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
7555         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
7556         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
7557         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
7558         widening conversions.
7559         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
7560         to look at size of mode, not precision of type; also add missing cases.
7561         (optimize_bit_field_compare, decode_field_reference): Don't try to
7562         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
7563
7564         * dwarf2out.c (ctype.h): Include.
7565         (dwarf2out_set_demangle_name_func): New function.
7566         (size_of_line_info): Deleted.
7567         (output_line_info): Compute size of line info table from difference
7568         of labels.
7569         (base_type_die, add_name_attribute): Call demangle function, if any.
7570         (field_byte_offset): Use bits per word for variable length fields.
7571         (gen_array_type_die): Add array name.
7572         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
7573         (dwarf2out_add_library_unit_info): New function.
7574
7575         * explow.c (set_stack_check_libfunc): New function.
7576         (stack_check_libfunc): New static variable.
7577         (probe_stack_range): Allow front-end to set up a libfunc to call.
7578
7579         * combine.c (simplify_comparison): When making comparison in wider
7580         mode, check for having commuted an AND and a SUBREG.
7581         (contains_muldiv): New function.
7582         (try_combine): Call it when dividing a PARALLEL.
7583         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
7584         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
7585         a PLUS.
7586         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
7587         use one of the CLOBBERs instead.
7588         (if_then_else_cond): If comparing against zero, just return thing
7589         being compared.
7590
7591         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
7592         Don't generate shifts and subtract if have conditional arithmetic.
7593
7594         * rtl.h (delete_barrier): New declaration.
7595         * jump.c (jump_optimize): Set up to handle conditional call.
7596         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
7597         (delete_barrier): New function.
7598
7599         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
7600
7601         * recog.c (nonmemory_operand): Accept ADDRESSOF.
7602
7603         * tree.c (build_type_attribute_variant): Push to obstack of
7604         ttype around type_hash_canon call.
7605
7606         * expr.c (placeholder_list): Move decl to file scope.
7607         (expand_expr): Don't force access to volatile just because its
7608         address is taken.
7609         If ignoring reference operations, just expand the operands.
7610         (expand_expr, case COMPONENT_REF): Propagate
7611         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
7612         Refine test for using bitfield operations vs pointer punning.
7613         (expand_expr, case CONVERT_EXPR): If converting to
7614         BLKmode UNION_TYPE from BLKmode, just return inner object.
7615         Use proper mode in store_field call.
7616         Properly set sizes of object to store and total size in store_field
7617         call for convert to union.
7618         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
7619         memory (like for ADDR_EXPR).  Also, don't put constant in register if
7620         we'll want it in memory.
7621         (readonly_fields_p): New function.
7622         (expand_expr, case INDIRECT_REF): Call it if LHS.
7623         (expand_assignment): Handle a RESULT_DECL where
7624         DECL_RTL is a PARALLEL.
7625         (do_jump, case WITH_RECORD_EXPR): New case.
7626         (get_inner_reference): Always go inside a CONVERT_EXPR
7627         and NOP_EXPR if both modes are the same.
7628         (store_field): Use bitfield operations if size of bitsize is not same
7629         as size of RHS's type.
7630         Check for bitpos not a multiple of alignment in BLKmode case.
7631         Do block move in largest possible alignment.
7632         (store_constructor): Set BITSIZE to -1 for variable size and properly
7633         in case of array of BLKmode.
7634         (expand_expr_unaligned): New function.
7635         (do_compare_and_jump): Call it.
7636
7637         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
7638         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
7639         does not include 'o'.
7640
7641         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
7642         both SET_DEST and SET_SRC reference a virtual register.
7643         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
7644
7645         * integrate.c (expand_inline_function): Handle case of setting
7646         virtual stack vars register (from built in setjmp); when parameter
7647         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
7648         (subst_constant): Add new parm, MEMONLY.
7649         (expand_inline_function, integrate_parm_decls): Pass new parm.
7650         (integrate_decl_tree): Likewise.
7651         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
7652         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
7653         (copy_rtx_and_substitute, case SET): Add explicit calls to
7654         copy_rtx_and_substitute for both sides.
7655
7656         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
7657         constraints.
7658         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
7659         within INDEX_TYPE, instead of before.
7660         (fixup_gotos): Use f->target_rtl, not the next insn,
7661         since latter may be from a later fixup.
7662         (expand_value_return): Correctly convert VAL when promoting function
7663         return; support RETURN_REG being a PARALLEL.
7664         (expand_return): When checking for result in regs and having
7665         cleanup, consider PARALLEL in DECL_RTL as being in regs.
7666
7667 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
7668
7669         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
7670         last_nominal_fname): Mark const.
7671         (struct include_hash: name, nshort, control_macro): Mark
7672         const.
7673         (struct macrodef: symnam): Mark const.
7674         (struct if_stack: fname): Mark const.
7675         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
7676         (IStable): New character-syntax array which encompasses all
7677         the old is_foo arrays.
7678         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
7679         is_space): New macros for interrogating IStable.
7680         (check_macro_name): Kill last argument.  All callers changed.
7681
7682         * cppinit.c (initialize_char_syntax): Delete.
7683         (is_idchar, is_idstart, is_hor_space, is_space,
7684         trigraph_table): Delete.
7685         (IStable): New.  Initialize with clever macros to avoid
7686         information duplication.
7687         (builtin_array): Table of builtins to get rid of explicit list
7688         in initialize_builtins.
7689         (initialize_builtins): Use builtins_array.
7690         (cpp_start_read): Call init_IStable, and set IStable['$'] if
7691         opts->dollars_in_ident.
7692
7693         * cppexp.c: Change all refs to is_xyz[] arrays to use new
7694         is_xyz() macros.
7695         (cpp_parse_expr): Avoid 'format string is not constant'
7696         warning. Use ISGRAPH to identify printable chars.
7697         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
7698         is_xyz() macros.
7699         (read_and_prescan): Map trigraphs to chars with open-coded
7700         if-else-if-... sequence, not a lookup table.
7701         * cpphash.c: Change all refs to is_xyz[] arrays to use new
7702         is_xyz() macros.
7703         * cpplib.c: Change all refs to is_xyz[] arrays to use new
7704         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
7705         (check_macro_name): Remove ability to report an invalid
7706         assertion name, which is never used.
7707         (do_line): Constify a couple of char *'s.
7708         * cppmain.c (main): Call cpp_cleanup before returning.
7709
7710 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
7711
7712         * ggc.h (struct ggc_statistics): New type.
7713         (ggc_get_size): New function.
7714         (ggc_print_statistics): Likewise.
7715         * ggc-common.c (ggc_stats): New variable.
7716         (ggc_mark_rtx_children): Keep statistics.
7717         (ggc_mark_tree_children): Likewise.
7718         (ggc_print_statistics): New function.
7719         * ggc-page.c (struct globals): Add bytes_mapped field.
7720         (alloc_anon): Update it.
7721         (release_pages): Likewise.
7722         (ggc_get_size): New function.
7723         (ggc_page_print_statistics): New function.
7724         * ggc-simple.c (ggc_get_size): New function.
7725
7726 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
7727
7728         * flow.c (propagate_block): When the last reference to a label
7729         before an ADDR_VEC is deleted because the reference is a dead
7730         store, delete the ADDR_VEC.
7731
7732 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
7733
7734         * resource.c (find_free_register): Don't use the frame pointer
7735         if frame_pointer_needed.
7736
7737 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
7738
7739         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
7740         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
7741
7742         * config/i960/i960.c (i960_va_start): New locals base, num.
7743         Use INDIRECT_REF instead of ARRAY_REF on valist.
7744         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
7745
7746 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
7747
7748         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
7749
7750 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
7751
7752         * tree.def (PLACEHOLDER_EXPR): Update comments.
7753
7754 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7755
7756         * c-common.c (check_format_info): Avoid non-literal format string
7757         warnings when `first_arg_num' is zero.
7758
7759 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7760
7761         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
7762
7763 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
7764
7765         * arm.md (casesi_insn): Add a clobber of the condition code
7766         register.
7767
7768 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
7769
7770         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
7771         used by both cc1 and cc1plus.
7772
7773 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
7774
7775         * config/arm/arm.c: Initialise arm_structure_size_boundary to
7776         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
7777         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
7778         to the value 32 if it has not already been defined.
7779         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
7780         Override definition in arm.h with a value of 8.
7781
7782 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
7783
7784         * c-pragma.c (push_alignment): Don't check the return value
7785         of xmalloc.
7786
7787 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
7788
7789         * sparc.h (ADJUST_COST): Fix thinko.
7790
7791 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
7792
7793         * cccp.c (rescan): Fixed obp pointer handling around call to
7794         check_expand subroutine.
7795
7796 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
7797
7798         * gcse.c (delete_null_pointer_checks): Only record non-null info
7799         for pseudos when examining stores.
7800
7801         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
7802         splitters for these patterns.  Use "#" for output templates.
7803         (addsi3_carryin_shift): New pattern.
7804
7805 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
7806
7807         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
7808         of the function return register into a plain REG until
7809         after function inlining is done.
7810
7811 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
7812
7813         * jump.c (jump_optimize_1): If we did cross-jumping, and
7814         the data will matter, rebuild the CFG.
7815         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
7816         not optimizing.  Don't run shorten_branches.
7817         * toplev.c (rest_of_compilation): Run shorten_branches after
7818         reg_to_stack.
7819
7820 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
7821
7822         * rtl.h (note_stores): Add additional paramter.
7823         * rtlanal.c (reg_set_p_1): Take additional paramter.
7824         (reg_set_last_1): Likewise.
7825         (reg_set_p): Adjust call to note_stores.
7826         (reg_set_last): Likewise.
7827         (note_stores): Pass data parameter to worker function.
7828         * alias.c (record_set): Take additional parameter.
7829         (init_alias_analysis): Pass it.
7830         * caller-save.c (mark_set_regs): Take additional parameter.
7831         (save_call_clobbered_regs): Pass NULL to note_stores.
7832         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
7833         parameter.
7834         (record_dead_and_set_regs_1): Likewise.
7835         (reg_dead_at_p_1): Likewise.
7836         (combine_instructions): Adjust calls to note_stores.
7837         (try_combine): Likewise.
7838         (record_dead_insn): Remove.
7839         (record_dead_and_set_regs): Adjust calls to note_stores.
7840         (reg_dead_at_p): Likewise.
7841         * cse.c (invalidate_skipped_set): Take additional parameter.
7842         (cse_check_loop_start): Likewise.
7843         (cse_check_loop_start_value): Remove.
7844         (cse_set_around_loop): Adjust calls to note_stores.
7845         * flow.c (notice_stack_pointer_modification): Take additional
7846         parameter.  Remove duplicate declaration.
7847         (record_volatile_insns): Adjust calls to note_stores.
7848         * gcse.c (record_set_info): Take additional parameter.
7849         (record_last_set_info): Likewise.
7850         (invalidate_nonnull_info): Likewise.
7851         (record_set_insn): Remove.
7852         (compute_sets): Adjust calls to note_stores.
7853         (last_set_insn): Remove.
7854         (compute_hash_table): Adjust calls to note_stores.
7855         (insert_insn_end_bb): Likewise.
7856         (delete_null_pointer_checks): Likewise.
7857         * global.c (mark_reg_store): Take additional parameter.
7858         (mark_reg_clobber): Likewise.
7859         (reg_becomes_live): Likewise.
7860         (global_conflicts): Adjust calls to note_stores.
7861         (build_insn_chain): Likewise.
7862         * integrate.c (note_modified_parmregs): Take additional parameter.
7863         (mark_stores): Likewise.  Make it static.
7864         (save_for_inline_nocopy): Adjust calls to note_stores.
7865         (try_constants): Likewise.
7866         * integrate.h (mark_stores): Remove declaration.
7867         * jump.c (mark_modified_reg): Take additional parameter.
7868         (thread_jumps): Adjust calls to note_stores.
7869         * local-alloc.c (validate_equiv_mem_from_store): Take additional
7870         parameter.
7871         (no_equiv): Likewise.
7872         (reg_is_set): Likewise.
7873         (validate_equiv_mem): Adjust calls to note_stores.
7874         (update_equiv_regs): Likewise.
7875         (block_alloc): Likewise.
7876         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
7877         (note_addr_stored): Take additional parameter.
7878         (note_set_pseudo_multiple_uses): Likewise.
7879         (record_initial): Likewise.
7880         (prescan_loop): Adjust calls to note_stores.
7881         (strength_reduce): Likewise.
7882         (check_dbra_loop): Likewise.
7883         * regmove.c (flags_set_1): Take additional paramter.
7884         (mark_flags_life_zones): Adjust calls to note_stores.
7885         * reload1.c (mark_not_eliminable): Take additional parameter.
7886         (forget_old_reloads_1): Likewise.
7887         (reload_cse_invalidate_rtx): Likewise.
7888         (reload_cse_check_clobber): Likewise.
7889         (reload_combine_note_store): Likewise.
7890         (move2add_note_store): Likewise.
7891         (reload): Adjust calls to note_stores.
7892         (reload_as_needed): Likewise.
7893         (emit_reload_insns): Likewise.
7894         (reload_cse_regs_1): Likewise.
7895         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
7896         (reload_combine): Adjust calls to note_stores.
7897         * resource.c (update_live_status): Take additional paramter.
7898         (mark_target_live_regs): Adjust calls to note_stores.
7899         * stupid.c (find_clobbered_regs): Take additional parameter.
7900         (stupid_life_analysis): Adjust calls to note_stores.
7901
7902 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
7903
7904         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
7905         definition.
7906
7907         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
7908         definition.
7909
7910         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
7911         of the variable arm_structure_size_boundary.
7912
7913 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
7914
7915         * alias.c (init_alias_analysis): Allocate reg_known_value and
7916         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
7917         and reg_seen.
7918         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
7919         * cse.c (cse_main): Call end_alias_analysis.
7920         * haifa-sched.c (schedule_insns): Likewise.
7921         * local-alloc. (update_equiv_regs): Likewise.
7922         * reload1.c (reload_cse_regs): Likewise.
7923
7924 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7925
7926         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
7927         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
7928         mapping from MASK_FPU.
7929
7930 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
7931
7932         * sparc.md (call): Don't bound structure return size to 0xfff.
7933
7934 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
7935
7936         * resource.c (mark_target_live_regs): Check that the target
7937         insn wasn't created after compute_bb_for_insn.
7938
7939 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
7940
7941         * ggc-page.c (poison_pages): Don't be overzealous.
7942
7943 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
7944
7945         * alias.c: Update comments for ADDRESS.
7946         (nonlocal_reference_p): Look inside the ADDRESS to determine if
7947         it is a local memory reference.
7948
7949         * c-typeck.c (build_function_call): Check that the built-in
7950         function is of class BUILT_IN_NORMAL before trying to recongize
7951         it as BUILT_IN_ABS.
7952         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
7953         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
7954
7955 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
7956
7957         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
7958         of alloca.
7959         (pre_gcse): Likewise.
7960         (hoist_expr_reaches_here_p): Likewise.
7961         (hoist_code): Likewise.
7962         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
7963         code to ...
7964         (pre_expr_reaches_here_p_work): ... here.
7965         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
7966         code to ...
7967         (expr_reaches_here_p_work): ... here.
7968
7969 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
7970
7971         * resource.c (find_basic_block): Delete.
7972         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
7973         (init_resource_info): Call compute_bb_for_insn.
7974
7975 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
7976
7977         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
7978         with already adjacent blocks, but no fallthru.
7979         (merge_blocks_move_successor_nojumps): Simplify.
7980         (debug_flow_info): New.
7981
7982         * toplev.c (rest_of_compilation): Open jump1 dump file before
7983         jump and close after, as opposed to just using dump_rtl.
7984
7985 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7986
7987         * reload.h (earlyclobber_operand_p): Declare.
7988         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
7989         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
7990         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
7991         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
7992
7993 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
7994                           Richard Henderson  <rth@cygnus.com>
7995
7996         * emit-rtl.c (emit_block_insn_before): New.
7997         (emit_block_insn_after): New.
7998         * basic-block.h: Declare them.
7999
8000         * bitmap.h: Protect from multiple inclusion.
8001
8002         * recog.c (scratch_operand): Handle VOIDmode correctly.
8003
8004         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
8005
8006         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
8007         * function.c (assign_parms): Likewise.
8008         * global.c (global_conflicts): Clarify STACK_REGS commentary.
8009
8010         * reg-stack.c (max_uid): Remove.
8011         (blocks, block_begin, block_end, block_drops_in): Remove.
8012         (block_stack_in, block_out_reg_set, block_number): Remove.
8013         (struct block_info_def, BLOCK_INFO): New.
8014         (enum emit_where): New.
8015         (current_block): New.
8016         (BLOCK_NUM): Remove.
8017         (mark_regs_pat, record_label_references): Remove.
8018         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
8019         (nan): New.
8020         (goto_block_pat, print_blocks, dump_stack_info): Remove.
8021         (reg_to_stack): Simplified test for existance of fp code.  Use
8022         flow.c code.  Call shorten_branches after cross-jump opt.
8023         (check_asm_stack_operands): Renamed from record_asm_reg_life.
8024         Return false if the asm doesn't use stack regs.  Don't do life
8025         analysis on the asm.
8026         (emit_pop_insn): Replace function pointer arg `when' with
8027         enum `where'.  Update all callers.
8028         (change_stack): Likewise.  Update basic block end.
8029         (emit_swap_insn): Use current_block->head to limit reverse search
8030         for start of block.  Use emit_block_insn_after.
8031         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
8032         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
8033         structure assignment instead of bcopy.
8034         (print_stack): New.
8035         (convert_regs_entry, convert_regs_exit): New.
8036         (convert_regs_1, convert_regs_2): Split out from convert_regs.
8037         Work on basic blocks and the CFG.
8038         (convert_regs): Use them.
8039
8040         * i386.c (output_fix_trunc): Remove code for DImode input operand
8041         not at top-of-stack.
8042         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
8043         appropriate mode.
8044         (fix_truncdi_1): Allow any mode scratch.
8045
8046 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
8047
8048         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
8049         * linux.h, netbsd.h, vms.h: Not here.
8050
8051 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
8052
8053         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
8054         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
8055         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
8056         CONDITIONAL_REGISTER_USEAGE): Use them.
8057         * config/mips/mips.c (mips_move_1word,mips_move_2words,
8058         gen_conditional_branch,override_options) : Use them.
8059         * config/mips/mips.md : Use them.
8060
8061 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
8062
8063         * i386.md (zero_extendqihi2): Use SImode register name with andl.
8064
8065 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
8066
8067         * integrate.c (function_cannot_inline_p): Don't allow inlining
8068         if setjmp is used.
8069
8070 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8071
8072         * c-parse.in (cast_expr): Constify.
8073
8074         * cccp.c (special_symbol): Likewise.
8075
8076         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
8077
8078         * dwarf2out.c (base_type_die): Likewise.
8079
8080         * global.c (allocno_compare): Likewise.
8081
8082         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
8083
8084         * regclass.c (fix_register): Likewise.
8085
8086         * rtl.h (fix_register): Likewise.
8087
8088         * stupid.c (stupid_reg_compare): Likewise.
8089
8090         * toplev.c (decode_f_option): Likewise.
8091
8092         * tree.c (build_complex_type): Likewise.
8093
8094 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
8095
8096         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
8097
8098 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8099
8100         * reload.c (find_reloads): Compute mode and nregs fields of all
8101         reloads.
8102         * reload1.c (calculate_needs_all_insns): Simplify a bit.
8103         (calculate_needs): Use precomputed mode/nregs values.
8104         (allocate_reload_reg): Likewise.
8105         Break out two...
8106         (failed_reload, set_reload_reg): ... new functions.
8107         (choose_reload_regs_init): New function, mostly broken out from...
8108         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
8109         Also lose one #if 0 block.
8110
8111 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
8112
8113         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
8114         substitution.
8115
8116 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
8117
8118         * tree.h (BLOCK_TYPE_TAGS): Remove.
8119         (BLOCK_END_NOTE): Likewise.
8120         (BLOCK_LIVE_RANGE_FLAG): Likewise.
8121         (BLOCK_LIVE_RANGE_START): Likewise.
8122         (BLOCK_LIVE_RANGE_END): Likewise.
8123         (tree_block): Remove live_range_flag, live_range_var_flag, and
8124         type_tags.  Remove end_note, live_range_start, and live_range_end.
8125         (remember_end_note): Remove prototype.
8126         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
8127         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
8128         remember_end_note.
8129         * ggc-common.c (ggc_mark_tree_children): Don't mark
8130         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
8131         * integrate.c (adjust_copied_decl_tree): Remove.
8132         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
8133         * stmt.c (last_block_end_note): Remove.
8134         (init_stmt): Don't add a GC root for it.
8135         (expand_fixup): Don't set it.
8136         (remember_end_note): Remove.
8137         (expand_end_bindings): Don't set last_block_end_note.
8138
8139 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8140
8141         * reload1.c (reload_reg_free_for_value_p): Show
8142         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
8143         reloads.
8144
8145 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
8146
8147         * expmed.c (extract_bit_field): Allow for the case of non-integer
8148         objects that are smaller than a word (like SFmode on a 64-bit
8149         machine).
8150
8151         * loop.c (basic_induction_var): A non-integer variable which is
8152         being set by a paradoxical subreg is probably not a biv.
8153
8154 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8155
8156         * prefix.c (translate_name) Check for empty prefix string.
8157
8158 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
8159
8160         * Makefile.in (CPP_CROSS_NAME): New variable.
8161         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
8162         xcpp.
8163         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
8164         names of the files to be uninstalled.
8165
8166 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
8167
8168         * collect2.c (IS_DIR_SEPARATOR): Define.
8169         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
8170
8171         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
8172         functions too.
8173
8174         * haifa-sched.c (add_dependence): Update the true dependency
8175         cache the first time we add a true dependence to the LOG_LINKS chain.
8176
8177 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
8178
8179         * fold-const.c (fold): Fix comment.
8180
8181 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8182
8183         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
8184         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
8185         dbxout_start_new_source_file, dbxout_source_file,
8186         dbxout_source_line, dbxout_finish, dbxout_type_fields,
8187         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
8188         Constify a char*.
8189         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
8190         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
8191         (dbxout_block): Initialize variable `blocknum'.
8192
8193         * dbxout.h (dbxout_init, dbxout_finish,
8194         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
8195         dbxout_args, dbxout_source_line): Constify a char*.
8196
8197         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
8198         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
8199         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
8200         low_pc_attribute, high_pc_attribute, body_begin_attribute,
8201         body_end_attribute, comp_dir_attribute, sf_names_attribute,
8202         src_info_attribute, mac_info_attribute, producer_attribute,
8203         lookup_filename, generate_macinfo_entry, fundamental_type_code,
8204         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
8205         dwarfout_undef): Constify a char*.
8206         (add_incomplete_type, retry_incomplete_types): Add prototypes.
8207
8208         * dwarfout.h (dwarfout_define, dwarfout_undef,
8209         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
8210
8211 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
8212
8213         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
8214         (MULTILIB_ISA_DEFAULT): New.
8215         (MULTILIB_DEFAULTS): Use it.
8216         * config/mips/mips.c (): Remove the now unnecessary definition
8217         of MIPS_ISA_DEFAULT.
8218         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
8219         unnecessary definition.
8220
8221 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
8222
8223         * arm.md (pic_load_addr): Add constraints to operand 1.
8224
8225 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
8226
8227         * fixinc/genfixes:  Provide a means for specifying -D options to
8228         AutoGen
8229
8230 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
8231
8232         * arm.c (arm_override_options): Correct initialization of
8233         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
8234         arm_is_strong, and arm_is_6_or_7.
8235
8236         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
8237         (note_set_pseudo_multiple_uses): New function.
8238         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
8239         if a pseudo set in the loop exit is used elsewhere.
8240
8241 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
8242
8243         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
8244
8245 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
8246
8247         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
8248         a single load-address pattern.
8249
8250 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
8251
8252         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
8253         depending on whether or not line-number notes are present.
8254
8255 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8256
8257         * cccp.c (progname, file_buf, default_include, include_file,
8258         macrodef, definition, hashval, wchar_type, user_label_prefix,
8259         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
8260         expand_to_temp_buffer, is_system_include, base_name,
8261         absolute_filename, read_name_map, open_include_file,
8262         record_control_macro, check_precompiled, check_preconditions,
8263         pcfinclude, pass_thru_directive, create_definition,
8264         check_macro_name, comp_def_part, collect_expansion,
8265         check_assertion, read_token_list, assertion_install,
8266         assertion_lookup, eval_if_expression, conditional_skip,
8267         validate_else, skip_quoted_string, quote_string, macarg1,
8268         error_from_errno, install, lookup, hashf, dump_defn_1,
8269         perror_with_name, pfatal_with_name, main, trigraph_pcp,
8270         check_white_space, rescan, handle_directive, monthnames,
8271         special_symbol, do_include, remap_include_file, write_output,
8272         arglist, do_assert, do_unassert, do_line, do_error, do_once,
8273         do_ident, do_sccs, do_xifdef, skip_if_group,
8274         output_line_directive, macroexpand, macarg, change_newlines,
8275         initialize_builtins, make_definition): Constify a char*.
8276
8277         * pcp.h (stringdef): Likewise.
8278
8279 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
8280
8281         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
8282         not of pattern.
8283
8284 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
8285                           Richard Henderson  <rth@cygnus.com>
8286
8287         * alias.c: Include ggc.h.
8288         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
8289         (record_set): Verify enough room in reg_base_value.
8290         (init_alias_analysis): Allocate reg_base_value with xcalloc.
8291         Register it as a GC root.
8292         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
8293         * Makefile.in (alias.o): Depend on ggc.h.
8294
8295         * unroll.c (unroll_loop): Verify the insn before a barrier
8296         is a JUMP_INSN before checking JUMP_LABEL.
8297
8298 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8299
8300         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
8301         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
8302         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
8303         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
8304         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
8305         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
8306
8307 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8308
8309         * output.h (ctors_section, dtors_section, bss_section): Prototype.
8310
8311         * alpha/alpha-interix.h (text_section): Delete prototype.
8312         * alpha/elf.h (text_section): Likewise.
8313         * arm/linux-elf.h (text_section): Likewise.
8314         * arm/linux-telf.h (text_section): Likewise.
8315         * c4x/c4x.h (text_section): Likewise.
8316         * dsp16xx/dsp16xx.h (bss_section): Likewise.
8317         * elfos.h (text_section): Likewise.
8318         * i386/aix386ng.h (text_section): Likewise.
8319         * i386/i386-interix.h (text_section): Likewise.
8320         * i386/sco5.h (text_section): Likewise.
8321         * i386/svr3gas.h (text_section): Likewise.
8322         * nextstep.h (text_section): Likewise.
8323         * psos.h (text_section): Likewise.
8324         * ptx4.h (text_section): Likewise.
8325         * svr3.h (text_section): Likewise.
8326         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
8327
8328 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8329
8330         * final.c (peephole): Delete prototype.
8331
8332         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
8333         (pre_insert_copies): Remove unused variable `bb'.
8334
8335         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
8336         prototypes.
8337
8338         * output.h (peephole): Add prototype.
8339
8340 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
8341
8342         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
8343         -O0.
8344
8345 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
8346
8347         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
8348         for inlined declarations.
8349
8350 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
8351
8352         * arm.c (logical_binary_operator): New fucntion.
8353         * arm.h (logical_binary_operator): Declare it.
8354         (PREDICATE_CODES): Handle logical_binary_operator.
8355         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
8356         output constraints.  Add appropriate splitters.
8357         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
8358         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
8359         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
8360
8361 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8362
8363         * genoutput.c (struct operand_data): New elt eliminable.
8364         (output_operand_data): Write it.
8365         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
8366         (compare_operands): Take it into account.
8367         * recog.h (struct insn_operand_data): New elt eliminable.
8368         * reload1.c (check_eliminable_occurrences, elimination_effects): New
8369         functions.
8370         (old_asm_operands_vec, new_asm_operands_vec): Delete.
8371         (eliminate_regs): Move code that detects changes to elimination
8372         target regs into new function elimination_effects.
8373         Delete one #if 0 block.
8374         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
8375         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
8376         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
8377         Only call eliminate_regs for real operands of the insn, not for parts
8378         of its structure or parts matched by things like match_operator.
8379         Use elimination_effects and check_eliminable_occurrences.  Use
8380         copy_insn to duplicate the pattern when not in the final pass.
8381
8382 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
8383
8384         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
8385         and fld.
8386
8387 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
8388
8389         * fixinc/README: document the "mach" machine matching test
8390         * fixinc/fixfixes.c: Implement the #else/#endif label fix
8391         * fixinc/fixtests.c: Implement the #else/#endif label test
8392         * fixinc/inclhack.def: utilize these tests and fixes
8393         * fixinc/inclhack.sh:  regen
8394         * fixinc/fixincl.x:  regen
8395         * fixinc/fixincl.sh:  regen
8396
8397 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
8398
8399         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
8400         depend on ggc.h.
8401
8402 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
8403
8404         * gcc.1: Document exit codes.
8405
8406 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8407
8408         * calls.c: Include tm_p.h later, so everything we need is defined.
8409         * expr.c: Likewise.
8410         * function.c: Likewise.
8411
8412         * except.c: Include tm_p.h.
8413
8414         * sparc.c: Likewise.
8415         (dwarf2out_cfi_label): Don't prototype.
8416         (check_return_regs, epilogue_renumber,
8417         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
8418         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
8419         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
8420         ultra_schedule_insn): Add static prototype.
8421         (data_segment_operand, text_segment_operand): Call itself with the
8422         proper number of arguments.
8423         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
8424
8425         * sparc.h: Move all declarations to sparc-protos.h.
8426         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
8427         symbolic_operand.
8428
8429         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
8430
8431         * config/svr4.h (text_section, ctors_section, dtors_section): Add
8432         Prototypes.
8433         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
8434         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
8435         ASM_OUTPUT_ASCII): Constify a char*.
8436
8437         * sparc-protos.h: New file for sparc prototypes.
8438
8439 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8440
8441         * function.c (record_insns, contains): Always declare and define.
8442         (record_insns): Mark with ATTRIBUTE_UNUSED.
8443
8444 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
8445
8446         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
8447         to .section when outputting a .bss section to deal with multiple
8448         .bss input sections (as happens with -fdata-sections)
8449         Also output %progbits, not @progbits so the assembler doesn't treat as
8450         a comment.
8451         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
8452
8453         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
8454         thumb parts even when building with non-thumb CPUs, by forcing
8455         thumb mode.
8456
8457 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
8458
8459         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
8460         (movdf_const_intreg_sp64): Similarly.
8461
8462         * local-alloc.c (update_equiv_regs): Check the correct insn
8463         for pre-existing REG_EQUIV notes.
8464
8465 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
8466
8467         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
8468         block reached by a branch if we're not going to actually process
8469         this block.
8470
8471 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
8472
8473         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
8474         a local extern function declaration.
8475
8476 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
8477
8478         * i386.c (ix86_expand_prologue): Properly wrap USE around
8479         reg for CALL_INSN_FUNCTION_USAGE.
8480
8481 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
8482
8483         * config/mips/mips.md (movdf_internal1a): Allow floating-point
8484         move between GP_REGs.
8485
8486 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
8487
8488         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
8489         the mode size when finding out if an offset is legal.
8490
8491 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
8492
8493         * basic-block.h (PROP_*): Move constants from ...
8494         * flow.c: ... here.
8495         (compute_bb_for_insn): Free the array before reallocating.
8496         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
8497         (allocate_reg_life_data): Reset all reg variables collected by
8498         propagate_block.
8499         (get_block_head_tail): Don't convert from bb to block.
8500         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
8501         (find_insn_reg_weight): Take block not bb.
8502         (schedule_block): Don't set block num for moved insns.
8503         (schedule_region): Don't update_life_info or find_insn_reg_weight.
8504         (schedule_insns): Do it here instead.
8505         * combine.c (combine_instructions): Invoke compute_bb_for_insn
8506         before update_life_info.
8507         * recog.c (split_all_insns, peephole2_optimize): Update for
8508         new arg to update_life_info.
8509         * rtlanal.c (remove_note): Cope with NULL note.
8510         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
8511         if we did sched1.
8512
8513 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
8514
8515         * jump.c (jump_optimize_1): More accurately detect casesi insns.
8516
8517         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
8518         block records so that merge_blocks_nomove will clean up correctly.
8519         (split_edge): Handle casesi insns.
8520
8521         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
8522
8523 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
8524
8525         * pa.md (call, call_value): Do not emit a blockage after restoring
8526         the PIC register.
8527
8528 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
8529
8530         * c-typeck.c (c_expand_asm_operands): Fix typo.
8531
8532 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8533
8534         * arm.c (fpu_rhs_operand): Verify modes.
8535         (fpu_add_operand): Likewise.
8536         (di_operand): Likewise.
8537         (soft_df_operand): Likewise.
8538
8539 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
8540
8541         * arm.c (arm_return_in_memory): APCS rules state that the elements
8542         of a structure returned in a register must be 'integer-like'.
8543
8544 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
8545
8546         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
8547         in the source tree when the generated targets are out of date
8548         * fixinc/genfixes: Alter it to run individual fixes for make.
8549         * fixinc/README: rewrite
8550         * fixinc/inclhack.def: moved initial comments to README
8551
8552 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
8553
8554         * toplev.c (main): Do not generate an error message if an
8555         unrecognised command line switch is recognisable by another
8556         language.  If extra_warnings are enabled, then generate a
8557         warning message instead.
8558
8559 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8560
8561         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
8562         (insert_pack_attributes): Delete prototype.
8563
8564         * c-pragma.c (default_alignment): New static variable.
8565         (push_alignment): Initialize to current effective alignment.
8566         (pop_alignment): Use to set new alignment.
8567         (insert_pack_attributes): Delete function.
8568         (handle_pragma_token): Set default_alignment as well each time
8569         a #pragma pack(<n>) is encountered.
8570
8571 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
8572
8573         * reg-stack.c (stack_result): Aggregates are not returned in
8574         stack registers.
8575
8576 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
8577
8578         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
8579
8580 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
8581
8582         * basic-block.h (set_block_num): Declare.
8583         * flow.c (update_life_info): Don't call compute_bb_for_insn
8584         or free_basic_block_vars.
8585         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
8586         (insn_orig_block): Remove.
8587         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
8588         (schedule_block): Keep BLOCK_NUM up-to-date.
8589         (schedule_insns): Use compute_bb_for_insn.
8590         * recog.c (split_all_insns): Likewise.
8591         (peephole2_optimize): Likewise.
8592
8593 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
8594
8595         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
8596         if the pic register is used.
8597
8598 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8599
8600         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
8601         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
8602         if that tests TREE_PERMANENT.
8603
8604 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
8605
8606         * cse.c (invalidate_for_call): Do not remove memory references from
8607         the table here.  It's handled elsewhere.
8608
8609         * haifa-sched.c (add_dependence): Protect references to the
8610         true dependency cache with #ifdef INSN_SCHEDULING.
8611         (remove_dependence): Similarly.
8612
8613         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
8614         to the cfg code that this is a return instruction.
8615         * mn10300.md (return_internal): Similarly.
8616
8617         * combine.c (get_last_value): If the last set of a register
8618         is after subst_low_cuid, then we can not use it to determine
8619         the register's last value.
8620
8621 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
8622
8623         * Makefile.in: Back out previous change.
8624
8625 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
8626
8627         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
8628
8629         * haifa-sched.c (add_dependence): Only check/update the cache
8630         if it exists.
8631         (remove_dependence): Likewise.
8632         (schedule_insns): Only create the true_dependency_cache if the
8633         average number of instructions in a basic block is very large.
8634
8635 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
8636
8637         * Makefile.in (ggc-common.o): Depend on genrtl.h.
8638         (ggc-simple.o): Likewise.
8639         (ggc-page.o): Likewise.
8640
8641 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
8642
8643         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
8644         Prototype for exported functions.
8645         (pre_lcm, pre_rev_lcm): Remove prototypes.
8646         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
8647         (compute_available): Move to lcm.c, and change parameter order.
8648         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
8649         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
8650         (gcse_main): No longer call compute_preds_succs.  Rebuild the
8651         set table after reach pre pass.
8652         (pre_insert_map, pre_delete_map, edge_list): New.
8653         (alloc_pre_mem): Allocate edge vectors.
8654         (free_pre_mem): Delete edge vectors.
8655         (compute_pre_data): Call new edge based lcm routines.
8656         (process_insert_insn): New function.
8657         (insert_insn_end_bb): Use it.
8658         (pre_edge_insert): New function.
8659         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
8660         needed.
8661         (pre_insert_copies): Revamp using new edge based lcm outputs.
8662         (pre_delete): Likewise.
8663         (one_pre_gcse_pass): Insert & remove fake edges to the exit
8664         block.
8665         (compute_code_hoist_vbeinout): New new edge based routines.
8666         * lcm.c: Remove all the old LCM functions.  Replace with new ones
8667         that work with the new cfg datastructures and work with edges
8668         instead of blocks.
8669
8670 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8671
8672         * reload.h (struct reload): Add new fields "mode" and "nregs".
8673         * reload1.c: Change all occurrences of reload_mode and reload_nregs
8674         to reference the "mode" and "nregs" field within struct reload.
8675
8676 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
8677
8678         * haifa-sched.c (true_dependency_cache): New.
8679         (add_dependence): Use the true dependency cache to avoid expensive
8680         walks down the LOG_LINKS dependency list.  Add entries to the
8681         cache as necessary.
8682         (remove_dependence): Remove entries from the true dependency cache
8683         as needed.
8684         (schedule_insns): Allocate and initialize and free the true
8685         dependency cache.
8686
8687         * haifa-sched.c (schedule_insns): Do not remove inter-block
8688         dependencies anymore.
8689
8690 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
8691
8692         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
8693         * i386/t-winnt: Likewise.
8694
8695 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
8696
8697         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
8698
8699 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
8700
8701         * Makefile.in (LANGUAGES): Omit "proto".
8702         (clean): Remove stale comment about removing unprotoize.c.
8703
8704 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8705
8706         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
8707         using arithmetic on void pointers.
8708
8709 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
8710
8711         * haifa-sched.c (compute_block_forward_dependencies): Only check
8712         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
8713
8714 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
8715
8716         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
8717         (expr_equiv_p): Reject memories with different alias sets.
8718
8719 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
8720
8721         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
8722         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
8723         (f_options): Add "bounded-pointers" and "bounds-check" entries.
8724         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
8725         (lang_init): Set default for flag_bounds_check if still "unspecified".
8726
8727 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8728
8729         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
8730
8731 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8732
8733         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
8734         instructions.
8735
8736 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8737
8738         * config/c4x/c4x.md (*db_noclobber,
8739         *decrement_and_branch_until_zero_noclobber): New patterns and
8740         associated splitters.
8741
8742 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8743
8744         * config/c4x/c4x.md (parallel instruction patterns): Rework
8745         constraints to keep reload happy.
8746
8747 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8748
8749         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
8750         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
8751         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
8752         Add new patterns and associated post-reload splitters.
8753
8754 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8755
8756         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
8757
8758 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8759
8760         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
8761         if appropriate.
8762         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
8763
8764 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8765
8766         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
8767         memory mode.
8768
8769 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
8770
8771         * pa.c (move_operand): Rely on memory_address_p to determine the
8772         validity of non-indexed memory addresses.
8773         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
8774         operand in DFmode and SFmode when generating PA2.0 code.
8775
8776 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
8777
8778         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
8779
8780 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
8781
8782         * mips.c (function_prologue): Fix argument types.
8783         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
8784         (casesi_internal): Write to the scratch register.
8785
8786 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
8787
8788         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
8789         to U_CHAR **.
8790         (parse_charconst): Delete unnecessary cast when calling
8791         cpp_parse_escape.
8792         (cpplib.h): Kill prototype of cpp_parse_escape.
8793
8794 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
8795
8796         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
8797         * unroll.c (unroll_loop): Cast return value of alloca.
8798         * i370/i370.c: Include function.h and toplev.h.
8799         (i370_label_scan): Remove c++ commented abort.
8800         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
8801         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
8802         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
8803         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
8804
8805 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
8806
8807         * config/t-freebsd: Do not override USER_H.
8808         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
8809
8810 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
8811                           Mumit Khan  <khan@xraylith.wisc.edu>
8812
8813         * c-parse.in (component_decl): Support anonymous struct/union.
8814         (%expect): Update.
8815         * c-parse.y: Regenerate.
8816         * c-parse.c: Likewise.
8817         * objc/objc-parse.y: Likewise.
8818         * objc/objc-parse.c: Likewise.
8819         * c-decl.c (finish_struct): Don't sort the fields.
8820         (field_decl_cmp): Delete unused function.
8821
8822 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
8823
8824         * sparc.md (movsf_const_intreg): Revert last constraint change.
8825         (movdf_const_intreg_sp32): Likewise.
8826
8827 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
8828
8829         * cse.c: Include hashtab.h instead of splay-tree.h
8830         (struct cse_reg_info): No longer use variant union.  Add new
8831         field "regno".  All references changed to avoid union.
8832         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
8833         (free_cse_reg_info): Remove.
8834         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
8835         (get_cse_reg_info): Revamp to use expandable hash tables instead
8836         of splay trees.  Initialize new fields in cse_reg_info structure.
8837         (new_basic_block): Similarly.
8838
8839 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
8840
8841         * genrecog.c (message_with_line): Prototype.
8842         (validate_pattern): Pass along the set for the dest, not a flag.
8843         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
8844         Check for PC/CC0 as sources.
8845         (nodes_identical): Check for children position match before
8846         allowing the combination.
8847
8848         * rtl.c (read_rtx): Track line number across \\\n.
8849
8850 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
8851
8852         * mips.h (SPECIAL_MODE_PREDICATES): New.
8853         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
8854         (movdi+1, movsi+1): Add output reload constraint.
8855         (casesi_internal): Likewise.  Fix commentary.
8856         (return_internal): Use pmode_register_operand.
8857
8858 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
8859
8860         * 1750a.md (movstrqi): Add missing output reload constraint.
8861         (call_value): Likewise.
8862         * a29k.md (cpxxx patterns): Add missing match_operator mode.
8863         (jmpfdec): Add missing inout reload constraint.
8864         * elxsi.md (addsi patterns): Add missing output reload constraint.
8865         (move from sp): Use @ alternates.
8866         (call_value): No constraint on output.
8867         * fr30.md (movsi_pop): Add missing output reload constraint.
8868         (movsf_constant_store): Likewise.
8869         (splits): Remove constraints.
8870         (subsi3): Add missing mode.
8871         * i370.md (cmpstrsi+1): Add missing output reload constraint.
8872         (call_value): Likewise.
8873         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
8874         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
8875         * m32r.md (movsicc_internal): Add output reload constraint.
8876         (movstrsi_internal): Add inout reload constraints.
8877         * m88k.h (reg_names): Don't declare.
8878         (SPECIAL_MODE_PREDICATES): New.
8879         * m88k.md (*): Use register_operand not reg_or_0_operand
8880         on destinations.
8881         * mn10200.h (PREDICATE_CODES): New.
8882         * ns32k.md (ffs pattern): Add output reload constraint.
8883         * pdp11.md (sob pattern): Add inout reload constraint.
8884         * sh.md (splits): Remove constraints.
8885         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
8886         * v850.md (pattern_is_ok_for_epilogue): Likewise.
8887         * vax.md (jgequ pattern): Add inout reload constraint.
8888
8889 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
8890
8891         * configure.in (djgpp): Revert previous patch.
8892         * configure: Rebuit.
8893         * config/i386/djgpp.h: Revert previous patch.
8894
8895 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
8896
8897         * fixinc/inclhack.def: Restore patch lost during last merge of
8898         "no_bogosity" branch.
8899         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
8900
8901 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8902
8903         * fixincludes: Add a HPUX 11 fix for inttypes.h.
8904         * fixinc/inclhack.def: Same.
8905         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
8906
8907 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
8908
8909         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
8910         as the base of a PLUS.
8911
8912 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8913
8914         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
8915         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
8916
8917 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
8918
8919         * pa.md (post_stw+1): Use pmode_register_operand.
8920         (dcacheflush, icacheflush): Likewise.
8921
8922         * i386.md (movstricthi_1): Allow r/r.
8923
8924 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
8925
8926         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
8927         to (not (and (arg0) (arg1))). Similary for and.
8928
8929         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
8930         fallthrough to associate code.
8931         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
8932         bits in common.
8933
8934         * combine.c (simplify_logical): Convert XOR to IOR if operands have
8935         no bits in common; remove XOR to ROTATE conversion.
8936
8937 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8938
8939         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
8940
8941 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8942
8943         * config/c4x/c4x.c (dst_operand): New.
8944         (PREDICATE_CODES): Update.
8945         * config/c4x/c4x.h (dst_operand): Declare it.
8946         * config/c4x/c4x.md:  Define mode for each unspec usage.
8947         (move patterns):  Use dst_operand predicate instead of src_operand.
8948         (movqi_update, movqf_update): Delete.
8949
8950 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
8951
8952         * recog.c (pmode_register_operand): New.
8953         * recog.h: Declare it.
8954         * genrecog.c (pred_codes): Likewise.
8955         (special_mode_pred_table): Likewise.
8956         (validate_pattern): Don't warn no mode for address_operand.
8957
8958         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
8959         if the operand is not insn-like.
8960
8961 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
8962                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
8963
8964         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
8965
8966 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
8967
8968         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
8969         instead of general_operand in a SET_DEST.  Use const_double_operand
8970         instead of an explicit test against CONST_DOUBLE.
8971         (movsf_const_lo): Add missing register mode.
8972         (goto_handler_and_restore): Add auxiliary test for Pmode.
8973         (flush): Adjust to use address_operand.
8974         (return_sf_no_fpu): Add missing output constraint.
8975
8976 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
8977
8978         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
8979         for call return value.
8980         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
8981
8982 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
8983
8984         * toplev.c (main): Only warn about options for other languages.
8985         * collect2.c (main): Pass -w to sub-gcc.
8986
8987 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
8988
8989         * flow.c (propagate_block): Add call-clobbered registers to
8990         significant too.
8991
8992         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
8993         zapping mem_set_list.
8994         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
8995         (mark_set_1, mark_used_regs): Likewise.
8996
8997 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
8998
8999         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
9000
9001 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9002
9003         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
9004         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
9005         options. Also add a new item "C-only Warning Options" to the
9006         option summary.
9007
9008 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
9009
9010         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
9011         from multiple calls.
9012
9013 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
9014
9015         * i386.md (call value patterns): Move to the end of the file.
9016         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
9017
9018 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
9019
9020         * configure.in (djgpp configuration): Define extra_objects..
9021         * configure: Rebuilt.
9022         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
9023         (DTORS_SECTION_ASM_OP): Define.
9024         (INIT_SECTION_ASM_OP): Define.
9025         (FINI_SECTION_ASM_OP): Define.
9026         (DATA_SECTION_ASM_OP): Define.
9027         (TEXT_SECTION_ASM_OP): Define.
9028         (EH_FRAME_SECTION_ASM_OP): Define.
9029         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
9030         (STARTFILE_SPEC): Add crtbegin.o.
9031         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
9032         to here from LINK_COMMAND_SPEC.
9033         (DO_GLOBAL_CTORS_BODY): Define.
9034         (CRTSTUFF_USE_FINI_SECTION): Define
9035         (HAS_INIT_SECTION): Delete.
9036
9037 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
9038
9039         * Makefile.in (all.cross): Depend on xcpp$(exeext).
9040
9041 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
9042
9043         * pa.h (PREDICATE_CODES): New.
9044
9045         * genrecog.c (validate_pattern): Condense the destination
9046         non-lvalue message.
9047
9048 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
9049
9050         * alpha.md (call-1): Supply missing mode for operator.
9051         (*): Add missing output reload constraints.  Remove constraints
9052         from define_splits.
9053
9054         * i386.h (SPECIAL_MODE_PREDICATES): New.
9055         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
9056         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
9057         (addsi_lea_3): Add missing mode for op 3.
9058         (prologue_set_got, prologue_get_pc): Add missing modes.
9059         (*) Add missing output reload constraints.
9060
9061 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
9062
9063         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
9064         check for member bit-size overflow and use var_size if it occurs.
9065         (layout_record): Use bitsize_int() to define the type size in bits.
9066         Likewise for computation and assignment to DECL_FIELD_BITPOS.
9067         (layout_decl): Likewise when assigning to DECL_SIZE.
9068
9069 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
9070
9071         * genrecog.c (validate_pattern): Typo last change.  Verify
9072         that output operands have output reloads.
9073
9074 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
9075
9076         * genrecog.c (special_mode_pred_table): New.
9077         (NUM_SPECIAL_MODE_PREDS): New.
9078         (find_operand): New.
9079         (validate_pattern): New argument `insn'.  Warn for assignment to
9080         any predicate accepting non-lvalues.  Conditionaly warn for
9081         match_operand without a mode.  Try much harder to match source
9082         and destination modes on a set.
9083         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
9084
9085 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
9086
9087         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
9088
9089 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
9090
9091         * combine.c (simplify_logical): Recognize xor pattern that encodes
9092         rotation.
9093
9094 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9095
9096         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
9097         alignment.
9098
9099 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
9100
9101         * ggc-page.c (MAP_FAILED): Provide default.
9102
9103 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
9104
9105         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
9106         * sparc.h (PREDICATE_CODES): Update.
9107
9108 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
9109
9110         * alpha.c (some_ni_operand): New.
9111         * alpha-protos.h: Declare it.
9112         * alpha.h (PREDICATE_CODES): Update.
9113         * alpha.md (sXaddq reload insns): Use some_ni_operand
9114         for SET_DEST instead of some_operand.
9115
9116 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
9117                           Jim Wilson  <wilson@cygnus.com>
9118
9119         * genrecog.c (maybe_both_true_2): Don't compare modes of
9120         two DT_pred tests.
9121         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
9122         after find_afterward.
9123         (debug_decision_1): Dump next and afterward codes.
9124
9125 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
9126
9127         * rtl.c (dump_and_abort): Remove.
9128         (fatal_with_file_and_line): New.
9129         (fatal_expected_char): New.
9130         (read_rtx_lineno, read_rtx_filename): New.
9131         (read_skip_spaces): Track line number.
9132         (read_name): Use fatal_with_file_and_line.
9133         (read_rtx): Use fatal_expected_char.  Track line number.
9134         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
9135
9136         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
9137         if it isn't a CODE_LABEL.
9138
9139         * genattr.c (main): Set read_rtx_filename.
9140         * genattrtab.c (main): Likewise.
9141         * gencodes.c (main): Likewise.
9142         * genconfig.c (main): Likewise.
9143         * genemit.c (main): Likewise.
9144         * genextract.c (main): Likewise.
9145         * genflags.c (main): Likewise.
9146         * genopinit.c (main): Likewise.
9147         * genoutput.c (main): Likewise.
9148         * genpeep.c (main): Likewise.
9149
9150         * genrecog.c (decision_test.u.insn): Add `lineno'.
9151         (pattern_lineno, error_count): New variables.
9152         (message_with_line): New.
9153         (add_to_sequence): Break out checking code to ...
9154         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
9155         (merge_insn): Use message_with_line.
9156         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
9157         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
9158
9159 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9160
9161         * expr.c (store_constructor): Clear union if constructor is empty.
9162
9163 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
9164
9165         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
9166         Add !endian checks.  Change %{...} to %(...).
9167
9168 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
9169
9170         * i386.md (*addsi3_cc): Renamed from addcsi3.
9171         (*addsi3_carry): Renamed from addxsi3.
9172         (*subsi3_cc): Renamed from subcsi3.
9173         (*subsi3_carry): Renamed from subxsi3.
9174         (*xorqi_cc_1): Renamed from xorcqi_1.
9175         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
9176         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
9177
9178 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
9179
9180         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
9181         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
9182
9183 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
9184
9185         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
9186         climb up the chain of insns.
9187
9188 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
9189
9190         * genrecog.c (write_subroutine): Careful for null trees.
9191         (process_tree): Don't elide empty functions.
9192
9193 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
9194
9195         * Makefile.in (genrtl.o): Depend on ggc.h.
9196         * configure.in (valloc): Probe for it.
9197         (with-gc): Use ggc-page if valloc present.
9198         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
9199         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
9200         (ggc_alloc_string): Moved from ggc-page.c.
9201         * ggc-none.c (ggc_alloc_obj): New.
9202         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
9203         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
9204         (struct globals): Likewise for dev_zero_fd.
9205         (init_ggc): Likewise for it's initialization.
9206         (ggc_allocated_p): Move careful dereference from ...
9207         (ggc_lookup_page_table): ... here.  Delete.
9208         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
9209         (alloc_anon): Use valloc if no mmap.
9210         (release_pages): Use free if using valloc.
9211         (ggc_alloc_obj): Renamed from alloc_obj.
9212         (ggc_set_mark): Renamed from mark_obj.
9213         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
9214         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
9215         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
9216         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
9217         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
9218         (ggc_collect): Use fp printing instead of our own rounding.
9219         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
9220         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
9221         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
9222         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
9223         (struct ggc_string, struct ggc_any): Delete.
9224         (offsetof): Provide default definition.
9225         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
9226         (PTR_KEY): New.
9227         (struct ggc_mem): New, from corpse of ggc_any.
9228         (struct ggc_status): Delete.
9229         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
9230         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
9231         (n_strings_collected, n_anys_collected): Delete.
9232         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
9233         (ggc_alloc_string, ggc_alloc): Delete.
9234         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
9235         (ggc_free_string, ggc_free_any): Delete.
9236         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
9237         (ggc_compare_addresses, ggc_mark_string): Delete.
9238         (ggc_mark_string_if_gcable, ggc_mark): Delete.
9239         (search_data): Delete.
9240         (struct globals): New.
9241         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
9242         (tree_insert, tree_lookup): New.
9243         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
9244         (clear_marks, sweep_objs): New.
9245         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
9246         (init_ggc): Set allocated_last_gc.
9247         (ggc_push_context): Gut.  Use G.context.
9248         (ggc_pop_context): Likewise.
9249         (ggc_pop_context_1): New.
9250         (debug_ggc_tree): New.
9251         (debug_ggc_balance, tally_leaves): New.
9252         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
9253         (ggc_mark_string_if_gcable): Remove decl.
9254         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
9255         (ggc_mark_rtvec_children): New.
9256         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
9257         (ggc_mark_if_gcable): New decl.
9258         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
9259         (ggc_alloc_tree, ggc_alloc): Likewise.
9260         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
9261         (ggc_alloc_obj): New decl.
9262         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
9263         (ggc_alloc_tree, ggc_alloc): Likewise.
9264         (ggc_set_mark): New decl.
9265         * rtl.h (struct rtx_def): Remove gc_mark.
9266         (struct rtvec_def): Likewise.
9267         * tree.h (struct tree_common): Likewise.
9268
9269 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
9270
9271         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
9272         float_format and thread_file definitions.
9273         * configure: Rebuilt.
9274
9275 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
9276
9277         * extend.texi (Function Names): Document types of function names.
9278
9279 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9280
9281         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
9282         an earlyclobbered output conflict with RELOAD_INPUT reloads.
9283
9284 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9285
9286         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
9287
9288 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9289
9290         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
9291
9292 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
9293
9294         * collect2.c (main): Do prelimnary link on AIX if rflag.
9295
9296 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
9297
9298         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
9299         __CTOR_LIST__ in opposite order, which is the correct order for sorted
9300         constructors.
9301         (__do_global_dtors): similarly for __DTOR_LIST__.
9302
9303 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9304                                 Diego Novillo <dnovillo@cygnus.com>
9305
9306         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
9307         FPUL_REGS.
9308
9309 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
9310
9311         * fixincl/*: Merged "no_bogosity" branch
9312         * fixincl/fixlib.h: protect against doubly defining t_bool
9313         * fixincl/server.h: protect against doubly defining t_bool
9314
9315 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
9316
9317         * genoutput.c: Include toplev.h.
9318
9319 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
9320
9321         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
9322         Undef.
9323         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
9324         * configure: Regenerate.
9325
9326 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
9327
9328         * gcse.c (delete_null_pointer_checks): Returns void.
9329
9330 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9331
9332         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
9333         * emit-rtl.c (copy_insn_1): Likewise.
9334
9335 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
9336
9337         * config/mips/mips.c (mips_build_va_list): Correct
9338         TREE_CHAIN setting when hard-float.
9339         (mips_va_start): Use corrected setting.
9340         (mips_va_arg): Likewise.  Also pass a tree to build of
9341         POSTINCREMENT_EXPR rather than a naked 'int'.
9342
9343 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
9344
9345         * ggc.h (ggc_push_context): Fix comment.
9346         (ggc_pop_context): Likewise.
9347         (mark_string_if_gcable): Likewise.
9348         * ggc-common.c (ggc_mark_rtx_children): Use
9349         ggc_mark_string_if_gcable.
9350         * ggc-page.c (ggc_lookup_page_table): New function.
9351         (ggc_allocated_p): Likewise.
9352         (mark_obj): Fix formatting.
9353         (ggc_mark_string_if_gcable): New function.
9354         * ggc-simple.c (ggc_allocated_strings): New variable.
9355         (ggc_strings_used): Likewise.
9356         (ggc_compare_addresses): New function.
9357         (ggc_pop_context): Pop the `any' memory too.
9358         (ggc_mark_string_if_gcable): New function.
9359         (ggc_collect): Initialize and tear down ggc_allocated_strings.
9360
9361 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
9362
9363         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
9364         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
9365         * rs6000.c (expand_block_move): Match movstrsi_?reg register
9366         changes.
9367
9368 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
9369
9370         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
9371         (sched_reg_live_length, sched_reg_basic_block): Delete.
9372         (current_block_num, bb_live_regs, old_live_regs): Delete.
9373         (dead_notes, struct sometimes): Delete.
9374         (sched_note_set, birthing_insn_p): Delete.
9375         (adjust_priority): Gut useless reg lifetime code.
9376         (create_reg_dead_note, attach_deaths): Delete.
9377         (attach_deaths_insn, new_sometimes_live): Delete.
9378         (finish_sometimes_live): Delete.
9379         (find_pre_sched_live, find_post_sched_live): Delete.
9380         (update_reg_usage): Delete.
9381         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
9382         (schedule_insns): Delete reg lifetime code.
9383         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
9384         (unlink_other_notes): Adjust REG_NOTE commentary.
9385         (reemit_notes): Use REG_SAVE_NOTE.
9386         (schedule_block): Likewise.
9387         (schedule_region): Allocate bitmap of blocks in region.  Use
9388         count_or_remove_death_notes.  Use update_life_info.
9389
9390         * rtl.h (REG_SAVE_NOTE): New.
9391         * rtl.c (reg_note_name): Update.
9392
9393 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
9394
9395         * combine.c (refresh_blocks, need_refresh): New.
9396         (combine_instructions): Allocate refresh_blocks.  Invoke
9397         update_life_info if needed.
9398         (distribute_notes): Mark refresh_blocks instead of installing
9399         USE insns.
9400         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
9401         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
9402
9403         * Makefile.in (recog.o): Depend on basic-block.h.
9404
9405 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
9406
9407         * genrecog.c (add_to_sequence): Thinko last change: delete
9408         shadowing allow_const_int variable.
9409
9410 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9411
9412         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
9413         __GNUC__ and __GNUC_MINOR__.
9414
9415         * gansidecl.h: Likewise.
9416
9417         * rtl.c: Likewise.
9418
9419         * rtl.h: Likewise.
9420
9421         * toplev.h: Likewise.
9422
9423         * tree.c: Likewise.
9424
9425         * tree.h: Likewise.
9426
9427         * varray.c: Likewise.
9428
9429         * varray.h: Likewise.
9430
9431 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9432
9433         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
9434         use one before a jump table.
9435
9436         * rtl.def (ADDRESS): Change documentation to match reality.
9437         * md.texi: Don't document it.
9438         * gmicro.md (load address pattern): Use 'p' constraint, delete use
9439         of ADDRESS rtx.
9440
9441         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
9442
9443 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
9444
9445         * genrecog.c (add_to_sequence): Move allow_const_int test outside
9446         known predicate block; default allow_const_int true.
9447         (debug_decision_list): New.
9448
9449 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
9450
9451         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
9452
9453 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
9454
9455         * gcse.c (gcse_main): Avoid global optimizations if we have a
9456         large number of basic blocks and the ratio of edges to blocks
9457         is high.
9458         (delete_null_pointer_checks): Likewise.
9459
9460 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
9461
9462         * c-common.c (check_format_info): Warn if format string isn't a
9463         string literal.
9464
9465 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
9466
9467         * configure.in (arm*-*-*): Don't let autoconf remove brackets
9468         * configure: regenerate
9469
9470 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
9471
9472         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
9473         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
9474         (peepholes): Re-enable.
9475
9476 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
9477
9478         * Makefile.in (flow.o): Depend on TREE_H.
9479         * basic-block.h (REG_SET_EQUAL_P): New.
9480         (XOR_REG_SET): New.
9481         (n_edges): Declare.
9482         (free_regset_vector): Remove declaration.
9483         (flow_delete_insn_chain): Declare.
9484         (enum update_life_extent): New.
9485         (update_life_info, count_or_remove_death_notes): Declare.
9486         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
9487         Verify register live at bb->global_live_at_start before adding USE.
9488         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
9489         (CLEAN_ALLOCA): New.
9490         (n_edges): New.
9491         (PROP_*): New flags.
9492         (find_basic_blocks_1): Use alloc_EXPR_LIST.
9493         (clear_edges): Zero n_edges.
9494         (make_edge): Increment n_edges.
9495         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
9496         (flow_delete_insn_chain): Export.
9497         (delete_block): Decrement n_edges.
9498         (merge_blocks_nomove): Likewise.
9499         (life_analysis): Give life_analysis_1 PROP flags.
9500         (verify_wide_reg_1, verify_wide_reg): New.
9501         (verify_local_live_at_start): New.
9502         (update_life_info): Rewrite to call into propogate_block.
9503         (mark_reg): New.
9504         (mark_regs_live_at_end): After reload, if epilogue as rtl,
9505         always mark stack pointer.  Conditionally mark PIC register.
9506         After reload, mark call-saved registers, return regsiters.
9507         (life_analysis_1): Accept PROP flags not remove_dead_code.
9508         Call mark_regs_live_at_end before zeroing regs_ever_live.
9509         Use calculate_global_regs_live.  Copy global_live_at_end before
9510         calling final propagate_block.  Zero reg_next_use on exit.
9511         (calculate_global_regs_live): New.
9512         (allocate_bb_life_data): Don't allocate bb->local_set.
9513         (init_regset_vector, free_regset_vector): Remove.
9514         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
9515         Test flags before every operation.  Warn if prologue/epilogue insn
9516         would have been deleted.
9517         (mark_set_regs, mark_set_1): Accept and use FLAGS.
9518         Use alloc_EXPR_LIST.
9519         (mark_used_regs): Accept and use FLAGS, not FINAL.
9520         Remove special handling for RETURN.
9521         (try_pre_increment): Use alloc_EXPR_LIST.
9522         (dump_flow_info): Dump n_edges.
9523         (unlink_insn_chain, split_hard_reg_notes): Remove.
9524         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
9525         (find_insn_with_note, new_insn_dead_notes): Remove.
9526         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
9527         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
9528         (replace_insns): Remove.
9529         (count_or_remove_death_notes): New.
9530         (verify_flow_info): Abort on error after all checks.
9531         (remove_edge): Decrement n_edges.
9532         (remove_fake_edges): Tweek format.
9533         * haifa-sched.c (schedule_insns): Use split_all_insns.
9534         * output.h (update_life_info): Remove declaration.
9535         * recog.c (split_all_insns): From the corpse of split_block_insns,
9536         do the whole function block by block.  Use update_life_info.
9537         (recog_last_allowed_insn): New.
9538         (recog_next_insn): Mind it.
9539         (peephole2_optimize): Set it.  Walk backwards through blocks.
9540         Use update_life_info.
9541         * rtl.h (update_flow_info, replace_insns): Remove declarations.
9542         (split_all_insns): Declare.
9543         * toplev.c (rest_of_compilation): Thread prologue before flow2.
9544         Use split_all_insns.
9545
9546         * i386.md (or -1 peep2s): Disable.
9547
9548 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
9549
9550         * config/mips/mips.md (movstrsi+[123]) : Combine these into
9551         a single pattern.  Scrap the 'd' versions as unnecessary.
9552
9553         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
9554         tablejump_mips162,tablejump_internal4): The operands to a
9555         label_ref must be VOIDmode.
9556
9557 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9558
9559         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
9560
9561 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
9562
9563         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
9564
9565 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
9566
9567         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
9568         cache every function if ggc_p.
9569
9570 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9571
9572         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
9573         instead of copy_rtx.  Accept sequences that contain asm statements.
9574         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
9575         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
9576         orig_asm_operands_vector, copy_asm_operands_vector,
9577         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
9578         variables.
9579         * rtl.h (copy_insn, copy_insn_1): Declare.
9580
9581 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9582
9583         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
9584
9585         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
9586         arguments to `current_file_function_operand'.
9587
9588         * genrecog.c: Include hard-reg-set.h and resource.h in the
9589         generated output file.
9590
9591         * real.c: Include tm_p.h.
9592
9593 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9594
9595         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
9596         output operand.
9597
9598 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
9599
9600         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
9601         before the fctiwz insn.
9602
9603 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9604                           Mark Mitchell  <mark@codesourcery.com>
9605
9606         * tree.c (make_lang_type_fn): New funtion pointer.
9607         (make_lang_type): Call it.
9608         * tree.h (make_lang_type): Declare.
9609         (make_lang_type_fn): Likewise.
9610         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
9611
9612 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
9613
9614         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
9615         make sure that HIGH instructions are copied into BASE_REGS.
9616
9617 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
9618
9619         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
9620
9621 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
9622
9623         * c-decl.c (finish_struct): Use simpler method of
9624         removing elements of a singly-linked list.
9625
9626 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
9627
9628         * alpha.md (peephole2's): Comment out peephole2's that generate
9629         buggy code.
9630
9631 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
9632
9633         * genrecog.c (add_to_sequence): Disable mode check for
9634         wildcard matches.
9635
9636 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9637
9638         * ggc-simple.c (init_ggc): Set empty_string.
9639
9640 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
9641
9642         * configure.in: Detect mmap.  Add --with-gc=foo to select
9643         garbage collector; default to page if mmap available.
9644         * Makefile.in (GGC): Substitute.
9645
9646 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
9647
9648         * c-decl.c (ggc_p): Enable.
9649
9650 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9651
9652         * flow.c (verify_flow_info): Make it extern & unconditionally define.
9653
9654 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
9655
9656         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
9657         string for little-endian-data.
9658
9659 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
9660
9661         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
9662         case somebody tries to compile --enable-checking code with gcc
9663         1.34 or such.
9664
9665 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
9666
9667         * genrecog.c (add_to_sequence): Verify operand to label_ref is
9668         VOIDmode.
9669
9670 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
9671
9672         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
9673         * jump.c (jump_optimize_1): Document why.
9674
9675 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9676
9677         * collect2.c (scan_prog_file, scan_libraries): Prototype function
9678         pointers and casts for `int_handler' and `quit_handler'.
9679
9680         * flow.c (verify_flow_info, split_hard_reg_notes,
9681         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
9682         remove_edge, remove_fake_successors): Add static prototypes.
9683         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
9684         (mark_set_1): Initialize variable `regno'.
9685         (unlink_insn_chain): Likewise for variable `curr'.
9686         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
9687
9688         * loop.c (strength_reduce): Initialize variable
9689         `unrolled_insn_copies'.
9690         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
9691         prototypes.  Change these functions to take const PTR parameters
9692         to avoid prototype conflict when used as the comparson argument
9693         for qsort.
9694         (check_dbra_loop): Initialize variable `comparison_val'.
9695
9696         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
9697         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
9698         (find_valid_class): Initialize variable `best_class'.
9699         (find_reloads): Call memcpy, not bcopy.
9700
9701         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
9702         (hard_reg_use_compare): Don't needlessly cast away const.
9703         (reload_reg_class_lower): Likewise.
9704         (choose_reload_regs): Initialize variable `regno'.
9705
9706 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
9707
9708         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
9709
9710 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
9711
9712         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
9713         ({,d}discard): Add forward declarations.  Declare parameter as
9714         unused.
9715         (main_without_main): Explicitly declare return type to be int.
9716         (memcpy): Properly declare.
9717
9718         * libgcc2.c (toplevel): If inhibit_libc is defined and not
9719         building the trampoline support, declare malloc, free, and
9720         atexit.
9721         (__clear_cache): Mark arguments as potentially unused.
9722
9723         * frame.c (toplevel): If inhibit_libc is defined, declare
9724         malloc and free.
9725
9726 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
9727
9728         * flow.c (make_edge): Accept an optional 2D bitmap in which
9729         to cache edge existence.  Update all callers.
9730         (make_label_edge, make_eh_edge): Pass through the edge cache.
9731         (make_edges): Provide the cache.
9732
9733 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9734
9735         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
9736         a char*.
9737         (local_mbtowc): Change the type of variable `i' from int to size_t.
9738
9739         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
9740         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
9741
9742 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
9743
9744         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
9745         after other includes that define the appropriate types.  Include
9746         tm_p.h for getting user prototypes.
9747         * ggc-callbacks.c (toplevel): Ditto.
9748         * ggc-none.c (toplevel): Ditto.
9749         * gcc-page.c (toplevel): Ditto.
9750         * ggc-simple.c (toplevel): Ditto.
9751
9752 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
9753                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
9754
9755         * config/mips/mips.c (mips_move_2words): Split doubles if
9756         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
9757
9758 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
9759
9760         * genrecog.c (struct decision_test): New.
9761         (struct decision): Remove test-related members, sort the rest by size.
9762         (IS_SPLIT): Simplify.
9763         (new_decision, new_decision_test): New.
9764         (add_to_sequence): Use them.  No special handling for args of
9765         non-MATCH codes.
9766         (maybe_both_true): Renamed from not_both_true; return sense changed.
9767         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
9768         of maybe_both_true and adjusted for decision_test.
9769         (position_merit): Remove.
9770         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
9771         (merge_accept_insn): New, broken out of merge_trees.
9772         (merge_trees): Use them.  No special case for c_test; no node
9773         splitting; use test type instead of position_merit.
9774         (factor_tests): New.
9775         (simplify_tests): New.
9776         (break_out_subroutines): Don't write code now.
9777         (find_afterward): New.
9778         (write_afterward, write_switch, write_cond): New.
9779         (write_action, is_unconditional): New.
9780         (write_node): New.  Use them.
9781         (write_tree_1): Rewrite.  Use the new functions above.
9782         (write_tree): Remove afterward processing.
9783         (write_subroutine): Simplify function variant emission.
9784         (write_subroutines): New.
9785         (same_codes, clear_codes): Remove.
9786         (same_modes, clear_modes): Remove.
9787         (write_header): New, broken out of main.
9788         (make_insn_sequence): Use new_decision and new_decision_test.
9789         (process_tree): New, broken out of main.
9790         (main): Adjust for merge_trees interface change.
9791         Don't #define operands in the output file.
9792         (record_insn_name): New, broken out of make_insn_sequence.
9793         (debug_decision_2, debug_decision_1, debug_decision_0): New.
9794         (debug_decision): New.
9795
9796 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
9797
9798         * resource.c (find_free_register): Mark class_str argument const.
9799         * resource.h: Update prototype to match.
9800
9801         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
9802         * i386.md: Give all anonymous insns names.
9803
9804 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
9805
9806         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
9807         blocks.
9808
9809 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
9810
9811         * toplev.c (dbr_sched_time): Unconditional.
9812         (peephole2_time): New.
9813         (compile_file): Add pass numbers to all of the dump file suffixes.
9814         Dump peephole2_time.  Don't dump times for non-applicable passes.
9815         (rest_of_compilation): Add pass numbers to dump file suffixes.
9816         Conditionalize calls to the scheduler.
9817         * invoke.texi: Update.
9818
9819 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
9820
9821         * flow.c (make_edges): Fix insn iteration.
9822         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
9823         (find_basic_blocks_1): Fix spelling mistake.
9824
9825 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
9826
9827         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
9828         always have side-effects.  Use memset not bzero.
9829         (make_node): Likewise.
9830
9831 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
9832
9833         * stmt.c (expand_anon_union_decl): When any of the elements of the
9834         union is addressable, so is the entire union.
9835
9836 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
9837
9838         * sbitmap.c (sbitmap_ones): Don't set too many bits.
9839
9840         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
9841         * bitmap.c (bitmap_operation): Return true iff TO changed.
9842         (bitmap_equal_p): New.
9843         (bitmap_bit_p): Tidy arithmetic.
9844         (debug_bitmap_file): Likewise.
9845
9846 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
9847
9848         * toplev.c (rest_of_compilation): Turn on cse_not_expected
9849         before cse2 instead of after.
9850
9851 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
9852
9853         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
9854         register offsets.
9855
9856 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9857
9858         * cppinit.c (is_idchar initializer): Loosen tests to accept
9859         gcc 2.>6 and >2.
9860
9861 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
9862
9863         * mips.md: Define conditional move patterns for floating point
9864         operands and DI mode conditions.
9865
9866 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
9867
9868         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
9869         always have side-effects.
9870
9871 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
9872
9873         * mn10200.c (asm_file_start): Fix typo.
9874
9875         * cppinit.c (is_idchar initializer): Tighten tests for when
9876         to put the table into initialized memory.
9877
9878         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
9879         not an array of rtunion.
9880         * gcc-page.c (ggc_alloc_rtvec): Similarly.
9881         * gcc-simple (ggc_free_rtvec): Similarly.
9882
9883         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
9884         of rtunions.
9885
9886         * mbchar.h: Add missing #endif.
9887
9888         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
9889         (FPBIT, DPBIT): Define.
9890
9891 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9892
9893         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
9894
9895         * profile.c (instrument_arcs, output_gcov_string,
9896         tablejump_entry_p): Add static prototypes.
9897         (output_gcov_string): Constify a char*.
9898
9899         * regmove.c (replacement_quality, fixup_match_2): Add static
9900         prototypes.
9901
9902         * resource.h (reg_dead_p): Add extern prototype.
9903
9904         * rtl.c (trim_filename): Add static prototype.
9905
9906         * scan-decls.c (skip_to_closing_brace): Likewise.
9907
9908         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
9909         (expand_end_case): Initialize variable `range'.
9910         (emit_case_nodes): Remove unused prototype `rtx_fn'.
9911
9912         * varasm.c (asm_emit_uninitialised): Add static prototype.
9913         (asm_emit_uninitialised, assemble_variable): Mark parameter with
9914         ATTRIBUTE_UNUSED.
9915
9916 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9917
9918         * cpplib.c (if_directive_nameo): Add static prototype.
9919
9920         * cse.c (cse_insn): Remove unused variable `p'.
9921
9922         * except.c (create_rethrow_ref, push_entry,
9923         receive_exception_label, new_eh_region_entry, find_func_region,
9924         clear_function_eh_region, process_nestinfo): Add static prototypes.
9925         (get_reg_for_handler): Hide definition.
9926         (process_nestinfo): Initialize variable `extra_handlers'.
9927
9928         * expr.h (expand_builtin_longjmp): Add extern prototype.
9929
9930         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
9931
9932         * function.c (prepare_function_start): Likewise.
9933         (pop_function_context_from): Mark parameter `context' with
9934         ATTRIBUTE_UNUSED.
9935         (push_temp_slots_for_block, flush_addressof): Hide definition.
9936
9937         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
9938         solve_program_flow_graph, calculate_branch_probs,
9939         function_summary, main, fancy_abort): Add prototypes.
9940
9941         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
9942         (add_hash): Constify a char*.
9943
9944         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
9945         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
9946         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
9947
9948         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
9949
9950         * lists.c (free_list, zap_lists): Likewise.
9951
9952 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9953
9954         * alias.c (nonlocal_reference_p): Add static prototype.
9955
9956         * bitmap.c (bitmap_element_allocate): Prototype args in function
9957         pointer cast.
9958
9959         * builtins.c (stabilize_va_list): Add static prototype.
9960         (expand_builtin_va_arg): Constify a char*.
9961
9962         * c-lex.c (getch, put_back, extend_token_buffer_to,
9963         read_line_number, token_getch, token_put_back): Add static
9964         prototypes.
9965
9966         * c-parse.gperf (hash, is_reserved_word): Likewise.
9967
9968         * cccp.c (is_dir_separator): Likewise.
9969
9970 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9971
9972         * graph.h: New file to prototype functions exported by graph.c.
9973
9974         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
9975
9976         * graph.c: Include graph.h.
9977
9978         * toplev.c: Likewise.  Remove redundant prototypes.
9979
9980 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
9981
9982         * invoke.texi: Removed duplicated description for -Q.
9983
9984 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
9985
9986         * extend.texi: Grammar fix in __extension__ text.
9987
9988 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
9989
9990         * md.texi (define_peephole2): New section.
9991
9992 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
9993
9994         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
9995         (mov $-1 to or peepholer): Enable for pentium when optimizing for
9996         speed.
9997
9998 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
9999
10000         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
10001
10002 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
10003
10004         * i386.md (ffs expander): Emit Pentium friendly code for
10005         TARGET_PENTIUM.
10006
10007 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
10008
10009         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
10010         for non-trees.
10011         (build1): Likewise.
10012
10013 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10014
10015         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
10016
10017 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
10018
10019         * config/m68k/m68k.c (use_return_insn): Return false if the pic
10020         register is in use.
10021
10022 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10023
10024         * md.texi (No Constraints): Delete section.
10025         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
10026         * final.c (final_scan_insn): We always have register constraints.
10027         * genattrtab.c: Don't include "insn-config.h".
10028         (write_attr_case): We always have register constraints.
10029         * genconfig.c (register_constraint_flag): Delete.
10030         (walk_insn_part): Don't check whether we have register constraints.
10031         (main): Don't write out "#define REGISTER_CONSTRAINTS".
10032         * genoutput.c (have_constraints): Delete.
10033         (main): Don't set it.
10034         (output_operand_data): We always have constraints.
10035         (scan_operands): Likewise.
10036         (compare_operands): Likewise.
10037         * local-alloc.c (block_alloc): We always have constraints.
10038         (requires_inout): Always compile this function.
10039         * recog.c (extract_insn): We always have constraints.
10040         (constrain_operands, reg_fits_class_p): Always compile these
10041         functions.
10042         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
10043         fields.
10044         (struct insn_operand_data): Likewise.
10045         * regclass.c (regclass): We always have constraints.
10046         (record_reg_classes, copy_cost, record_address_regs,
10047         auto_inc_dec_reg_p): Always compile these functions.
10048         * regmove.c (regmove_optimize): We always have constraints.
10049         * reload.c (find_reloads): Likewise.
10050         * reload1.c (reload): Likewise.
10051         (reload_cse_simplify_operands): Likewise.
10052         * i860.c (output_delay_insn): Likewise.
10053
10054 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
10055
10056         * iris6.h (BUILD_VA_LIST_TYPE): Define.
10057
10058 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10059
10060         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
10061         for the va_list record.
10062
10063 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
10064
10065         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
10066         prologues.
10067
10068 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
10069
10070         * alias.c: Include insn-flags.h.
10071         * Makefile.in (alias.o): Update.
10072
10073 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
10074
10075         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
10076         to LTU and GEU.  Handle more cases using sbb.
10077
10078 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
10079
10080         * i386.md (truncatexfdf splitters): Do not use subreg.
10081         (fop XFmode patterns): Fix mode in operand testing.
10082
10083 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
10084
10085         * jump.c (jump_optimize_1): Amend last change to test only the
10086         form of the operand, not the insn.
10087
10088         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
10089         not register_operand to determine when B may need preloading.
10090
10091 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
10092
10093         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
10094         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
10095         (call-value patterns): Move to end of file.
10096         (*): Remove mode from label_ref in (pc) context.
10097         (movstrqi): Use memory not general_operand for BLKmode operands.
10098         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
10099         to register_operand operands.
10100         (peep2 patterns): Convert from commented-out peephole patterns.
10101
10102 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10103
10104         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
10105         to BUILT_IN_INIT_DWARF_REG_SIZES.
10106         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
10107         Renamed from BUILT_IN_DWARF_REG_SIZE; call
10108         expand_builtin_init_dwarf_reg_sizes.
10109         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
10110         with __builtin_init_dwarf_reg_size_table.
10111         * dwarf2out.c (struct reg_size_range): Delete.
10112         (expand_builtin_init_dwarf_reg_sizes): New function.
10113         (expand_builtin_dwarf_reg_size): Delete.
10114         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
10115         (expand_builtin_dwarf_reg_size): Don't declare.
10116         * libgcc2.c (dwarf_reg_size_table_initialized): New.
10117         (dwarf_reg_size_table): New.
10118         (init_reg_size_table): New function.
10119         (copy_reg): Use dwarf_reg_size_table.
10120         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
10121         before use.
10122
10123 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
10124
10125         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
10126         Correctly build argument list to constructor and destructor functions.
10127
10128 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
10129
10130         * c-tree.h (warn_float_equal): Declare.
10131         * c-decl.c (warn_float_equal): Define.
10132         (c_decode_option): Recognize -W[no-]float-equal.
10133         * c-typeck.c (build_binary_op): Conditionally warn
10134         about equality tests of floating point types.
10135         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
10136         * invoke.texi: Add docs for -Wfloat-equal warning.
10137
10138 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
10139
10140         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
10141         generating RTL directly.
10142         * mips.h (INIT_TARGET_OPTABS): Likewise.
10143         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
10144
10145         * expr.h (init_mov_optab): Delete declaration
10146
10147         * h8300.c (WORD_REG_USED): Update to avoid useless register
10148         saves in interrupt functions and functions which never return.
10149
10150         * cse.c (struct set): Delete inner_dest_loc field.
10151         (cse_insn): Remove assignments to inner_dest_loc field.
10152
10153 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
10154
10155         * ggc-page.c: Don't include <unistd.h> etc taken care of
10156         by "system.h".  Include <sys/mman.h> afterward.
10157
10158 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
10159
10160         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
10161         ggc_alloc_string.
10162
10163 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
10164
10165         * xcoffout.c (xcoffout_declare_function): Add documentation.
10166         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
10167         TARGET_64BIT.  Compare constant to -1, not bit pattern.
10168         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
10169         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
10170         gen_movsi typos.
10171
10172 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
10173
10174         * dwarf2out.c (add_abstract_origin_attribute): Abort if
10175         origin_die is NULL.
10176         (gen_inlined_enumeration_type_die): Do not abort if the type has
10177         not been writeen out.
10178         (gen_inlined_structure_type_die): Do not abort if the type has
10179         not been writeen out.
10180         (gen_inlined_union_type_die): Do not abort if the type has
10181         not been writeen out.
10182         (gen_tagged_type_instantiation_die): Do not abort if the type
10183         has not been written out.
10184
10185 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10186
10187         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
10188         call it.
10189         * reg-stack.c (straighten_stack): Copy hard reg set with
10190         COPY_HARD_REG_SET.
10191
10192 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
10193
10194         * builtins.c (stabilize_va_list): Stabilize array type va_list
10195         to a pointer type, not the base record type.
10196         (expand_builtin_va_copy): Dereference the pointers explicitly;
10197         use the correct size for the copy.
10198
10199         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
10200         (rs6000_va_arg): Likewise.
10201
10202 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
10203
10204         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
10205
10206 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
10207
10208         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
10209         field.
10210         (DECL_BUILT_IN_CLASS): Adjust accordingly.
10211
10212 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
10213
10214         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
10215         (init_ggc): Use it instead of a constant.
10216         (ggc_collect): Bound allocated_last_gc by it.
10217
10218 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
10219
10220         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
10221         with va_list.
10222
10223 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
10224
10225         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
10226         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
10227         * configure:  Regen.
10228         * config/mips/openbsd.h:  New, OpenBSD little endian target.
10229         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
10230         * config/mips/xm-openbsd.h:  New, OpenBSD host.
10231
10232 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
10233
10234         * config/m68k/m68k.c (output_function_prologue,
10235         output_function_epilogue): Use
10236         current_function_uses_pic_offset_table instead of regs_ever_live
10237         to decide whether to save/restore pic register.
10238         (legitimize_pic_address): Don't modify regs_ever_live any more.
10239
10240 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
10241
10242         * function.h (struct function): Add x_dont_save_pending_sizes_p.
10243         * stor-layout.c (variable_size): Don't add sizes to the pending
10244         sizes list if x_dont_save_pending_sizes_p is set.
10245
10246 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
10247
10248         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
10249         for symbolic_operand().
10250         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
10251
10252 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10253
10254         * combine.c (gen_rtx_combine): Add missing call to va_end().
10255
10256         * final.c (asm_fprintf): Likewise.
10257
10258         * genattrtab.c (attr_rtx): Likewise.
10259
10260 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
10261
10262         * cse.c: Update comments.
10263         (cse_insn): When converting a conditional/computed jump into
10264         an unconditional jump, always make sure a BARRIER immediately
10265         follows the converted jump.  Do not delete unreachable code.
10266         (cse_basic_block): Do not delete unreachable code.
10267         * toplev.c (rest_of_compilation): Move call to
10268         delete_trivially_dead_insns after the conditional call to
10269         jump_optimize.
10270
10271 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10272
10273         * collect2.c (make_temp_file): Don't prototype.
10274
10275         * gcc.c (make_temp_file): Likewise.
10276
10277         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
10278
10279 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
10280
10281         * varasm.c (asm_emit_uninitialised): New function: Generate
10282         the assembler statements necessary to declare an uninitialised
10283         variable.
10284         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
10285         variable.
10286         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
10287         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
10288         section.
10289         (assemble_variable): Use asm_emit_uninitialised to emit an
10290         uninitialised variable.
10291
10292 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
10293
10294         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
10295         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
10296         <geoffk@cygnus.com>.
10297
10298 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10299
10300         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
10301         * c-common.h (builtin_function): Don't declare.
10302
10303         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
10304         DECL_BUILT_IN.
10305         (pushdecl): Likewise.
10306         (finish_decl): Likewise.
10307         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
10308         int.  All callers changed.
10309         Set the builtin's DECL_BUILT_IN_CLASS.
10310         * tree.h (enum built_in_class): New.
10311         (enum built_in_function): Delete NOT_BUILT_IN.
10312         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
10313         in a union.
10314         (DECL_SET_FUNCTION_CODE): Likewise.
10315         (DECL_BUILT_IN_CLASS): New macro.
10316         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
10317         (struct tree_decl): Split builtin function code field into a
10318         struct.
10319         (builtin_function): Declare.
10320
10321 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
10322
10323         * optabs.c (init_traps): Fix typo in last change.
10324
10325 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
10326
10327         * toplev.c (rest_of_decl_compilation): Update comment.
10328
10329 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
10330
10331         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
10332         in .sbss if appropriate.
10333         (EXTRA_SECTION_FUNCTIONS): Add sbss.
10334         (SBSS_SECTION_ASM_OP): New macro.
10335         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
10336         (EXTRA_SECTIONS): Add in_sbss.
10337         * config/mips/mips.h: Prototype sbss_section.
10338
10339 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
10340
10341         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
10342         to disappear.
10343
10344 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
10345
10346         * optabs.c (init_traps): Register trap_rtx as a GC root.
10347
10348 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10349
10350         * config/mips/mips.c (function_arg_pass_by_reference): Define
10351         unconditionally, since it's called unconditionally.
10352
10353 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
10354
10355         * toplev.c (documented_lang_options): Add -fshort-wchar.
10356         * c-decl.c (c_decode_option): Likewise.
10357         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
10358         for wchar_t.
10359         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
10360         * gcc.c (default_compilers): If -fshort-wchar,
10361         override __WCHAR_TYPE__.
10362         * tm.texi (C Dialect Options): Add -fshort-wchar.
10363
10364         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
10365         symbol for a variable.
10366
10367         * cpplib.h (CPP_PREPROCESSED): New macro.
10368         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
10369         we're seeing this input for a second time.
10370
10371 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
10372
10373         * emit-rtl.c (init_emit_once): Initialize modes first.
10374
10375 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
10376
10377         * config/i386/i386.c (pic_label_name): Change to char pointer.
10378         (global_offset_table): New variable.
10379         (load_pic_register): Fill global_offset_table if it hasn't
10380         already been done.  Allocate pic_label_name dynamically.
10381         * ggc.h (empty_string): New variable.
10382         * ggc-simple.c (empty_string): Likewise.
10383         (init_ggc): Allocate empty_string and add as root.
10384         * stmt.c (digit_strings): New variable.
10385         (init_stmt): Add last_block_end_note as root.  Allocate and
10386         initialize digit_strings.
10387         (expand_asm_operands): Use empty_string instead of string
10388         constant.  Use digit_strings instead of string constants.
10389         * profile.c (init_arc_profiler): Allocate string with
10390         ggc_alloc_string instead of xmalloc.
10391         (output_func_start_profiler): Likewise.
10392         * c-typeck.c (digest_init): Check if init is error_mark_node.
10393
10394 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
10395                           Richard Henderson  <rth@cygnus.com>
10396
10397         * ggc-page.c: New file.
10398         * Makefile.in (ggc-page.o): New.
10399
10400 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
10401
10402         * invoke.texi: Document -fdelete-null-pointer-checks
10403         * toplev.c (flag_delete_null_pointer_checks): New.
10404         (f_options): Add entry for -fdelete-null-pointer-checks.
10405         (rest_of_compilation): Conditionalize null pointer check
10406         elimination on flag_delete_null_pointer_checks.
10407         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
10408
10409 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
10410
10411         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
10412         copyright notice and special exception to GPL.
10413
10414 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10415
10416         * abi64.h (mips_function_value): Add prototype arguments.
10417
10418         * mips-protos.h: New file with mips prototypes.
10419
10420         * mips.c: Include "tm_p.h".
10421         (mktemp, lookup_name): Add prototype arguments.
10422         (extern_list, string_constant, mips_fill_delay_slot,
10423         mips_output_external, mips_output_external_libcall,
10424         mips_output_filename, mips_declare_object, function_prologue,
10425         mips_expand_prologue, function_epilogue, mips16_constant,
10426         build_mips16_function_stub, mips_output_conditional_branch):
10427         Constify a char*.
10428         (mips_va_start): Remove unused variable `u'.
10429         (mips_va_arg): Cast value to unsigned when comparing against one.
10430         (trace): Delete.
10431         (save_restore_insns, mips_expand_prologue): Add missing arg in
10432         call to `large_int'.
10433
10434         * mips.h: Move prototypes to mips-protos.h.
10435         (data_section, memory_address_p, rdata_section,
10436         readonly_data_section, simple_epilogue_p, text_section): Delete
10437         prototypes delcared elsewhere.
10438         (mips_epilogue_delay_slots, print_options): Delete unused decls.
10439         (trace): Delete.
10440         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
10441
10442         * mips.md: Delete extra args in call to `mips_move_2words'.
10443
10444         * xm-iris6.h (alloca): Add prototype argument.
10445
10446         * genpeep.c: Include "tm_p.h" in generated output file.
10447
10448 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10449
10450         * basic-block.h (find_edge_index): Change parameters.
10451         * flow.c (verify_edge_list): Pass basic_block parameters to
10452         find_edge_index instead of integers.
10453
10454 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
10455
10456         * combine.c (simplify_comparison): Use an unsigned shift to adjust
10457         the constant.
10458
10459 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
10460
10461         * gcc.1: Fix a formatting error.
10462
10463 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10464
10465         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
10466         i786, mn10200, mn10300, pdp11, v850.
10467
10468 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
10469
10470         * libgcc2.c (num_digits): Add prototype with
10471         __attribute__((const)).
10472         (__terminate): Add prototype.
10473
10474 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
10475
10476         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
10477
10478         * alpha/alpha.c (print_operand): Fix type of `code'.
10479         (alpha_output_filename): Constify.
10480         * alpha/alpha.h: Move all function declarations ...
10481         * alpha/alpha-protos.h: ... here.  New file.
10482         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
10483         (SECTION_FUNCTION_TEMPLATE): Likewise.
10484
10485 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10486
10487         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
10488         * expr.c (expand_expr): Likewise.
10489         (do_jump): Likewise.
10490         (do_store_flag): Pass ccp_store_flag to can_compare_p.
10491         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
10492         accessor macros.
10493         (enum can_compare_purpose): New.
10494         (can_compare_p): Adjust prototype.
10495         (prepare_cmp_insn, prepare_operand): Declare.
10496         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
10497         * optabs.c (cmp_available_p): Deleted.
10498         (expand_abs): Pass ccp_jump to can_compare_p.
10499         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
10500         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
10501         Call can_compare_p rather than cmp_available_p.
10502         (prepare_operand): No longer static.
10503         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
10504         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
10505         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
10506         sequence to use emit_cmp_and_jump_insns.
10507         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
10508
10509 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
10510
10511         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
10512         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
10513         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
10514         (plus (reg) (const_int 0))
10515         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
10516
10517 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
10518
10519         * rs6000.c (expand_block_move): DImode loads and stores require
10520         word-aligned displacements.  Increment address registers with
10521         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
10522
10523 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
10524
10525         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
10526         is no name for the base type, rather than segfault.  If we are
10527         writing out a complex integer type, use DW_ATE_lo_user.
10528
10529         * expr.c (emit_move_insn_1): If we are copying a complex that fits
10530         in one word or less (complex char, complex short, or on 64 bit
10531         systems complex float) to/from a hard register, copy it through
10532         memory instead of dying in gen_{real,imag}part.  If we have a
10533         short complex type, prevent inlining since it allocates stack
10534         memory.
10535
10536         * tree.c (build_complex_type): If we are writing dwarf2 output,
10537         generate a name for complex integer types.
10538
10539 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10540
10541         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
10542         * flow.c (remove_edge): Remove extra whitespace.
10543         (remove_fake_edges): Fix comment.
10544         (add_noreturn_fake_exit_edges): Use the correct name.
10545
10546 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
10547
10548         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
10549         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
10550         (clean): Depend on INTL_CLEAN.
10551         (maintainer-clean): Adjust.
10552
10553 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10554
10555         * configure.in (AC_PREREQ): Bump to 2.13.
10556         (AC_C_STRINGIZE): Call this instead of using a custom macro.
10557
10558         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
10559
10560         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
10561
10562         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
10563
10564         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
10565         (HAVE_STRINGIZE): Define.
10566
10567 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
10568
10569         * c-parse.in: save and restore warn_pointer_arith on __extension__
10570         along with pedantic.
10571         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
10572         Set the type of extension to itype rather than $<itype>1 kludge.
10573         * extend.texi (Alternate Keywords): Adjust documentation.
10574         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
10575
10576 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
10577
10578         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
10579         most assembler templates.
10580
10581         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
10582         FP loads and stores.
10583         (following_call): Always return zero for the PA8000.
10584         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
10585         FP loads and stores.
10586         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
10587
10588         * pa.h (BRANCH_COST): Define.
10589
10590         * pa.md (return, return_internal): Use bve for PA2.0.
10591
10592         * pa.md (fused multiply): Add variants which reduce height for the
10593         fused multiply, but which still generate 2 insns.
10594         (fnegabs): Similarly.
10595
10596         * pa.md (subsi3): Turn into an expander.  Create two anonymous
10597         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
10598         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
10599
10600         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
10601         for TARGET_PA_20.
10602         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
10603         code generation.
10604         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
10605         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
10606
10607         * regclass.c (init_regs): Add "top_of_stack" as a garbage
10608         collection root.
10609
10610         * flow.c (record_active_eh_regions): Terminate loop after finding
10611         the last insn in the last basic block.
10612
10613 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10614
10615         * config/c4x/c4x.md: Delete parallel instruction peepholes.
10616
10617 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10618
10619         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
10620
10621 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10622
10623         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
10624         splitting to not use output template.
10625
10626 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10627
10628         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
10629         * config/c4x/c4x.c (c4x_va_start): New function.
10630
10631 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
10632
10633         * genrecog.c (not_both_true): Handle correctly cases when called for
10634         tests with different positions in the insn.
10635
10636 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10637
10638         * machmode.h (HOST_PTR_PRINTF): Move from here ...
10639
10640         * system.h (HOST_PTR_PRINTF): ... to here.
10641
10642         * mips-tfile.c: Don't include machmode.h.
10643
10644         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
10645         (mips-tfile.o): Don't depend on machmode.h.
10646
10647 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10648
10649         * haifa-sched.c (sched_analyze): Rename local variable `region' to
10650         avoid conflicts with typedef struct `region' at the top level scope.
10651
10652 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
10653
10654         * basic-block.h (basic_block): Add eh_beg, eh_end.
10655         * flow.c (entry_exit_blocks): Update.
10656         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
10657         Call new functions.
10658         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
10659         lists.c functions to allocate insn lists.
10660         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
10661         edge creation ...
10662         (make_eh_edge): ... here.  New.
10663         (move_stray_eh_region_notes): New.
10664         (record_active_eh_regions): New.
10665         (delete_unreachable_blocks): Split out block merging ...
10666         (try_merge_blocks): ... here.  New.
10667         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
10668         Dump debugging data.
10669         (merge_blocks_move_successor_nojumps): Likewise.
10670         (merge_blocks): Use eh_beg+eh_end to validate block movement.
10671
10672 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10673
10674         * extend.texi (Bound member functions): Document unbound pmf
10675         conversion.
10676
10677 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10678
10679         * flow.c (split_edge): Handle insertion on a fallthrough edge which
10680         has the EXIT_BLOCK as a dest.
10681
10682 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10683
10684         * flow.c (remove_edge): New function to remove an edge from the
10685         flow graph.
10686         (remove_fake_successors): New function to remove fake successor edges.
10687         (remove_fake_edges): New function to remove all fake edges from the
10688         flow graph.
10689         (add_fake_exit_edges): New function to add fake edges from all blocks
10690         with no successors to the exit block.
10691         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
10692         prototypes for new functions.
10693
10694 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
10695
10696         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
10697         Use Pmode to determine whether to output .dword or .word.
10698
10699 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
10700
10701         * tree.c (built_in_filename): New variable.
10702         (BUILT_IN_FILENAME): New macro.
10703         (init_tree_codes): Allocate built_in_filename.
10704         (make_node): Use built_in_filename instead of string constant.
10705
10706 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
10707
10708         * configure.in: Add fr30 target.
10709         * configure: Regenerate.
10710         * config/fr30: New directory.
10711         * config/fr30/crti.asm: New file.
10712         * config/fr30/fr30.c: New file.
10713         * config/fr30/crtn.asm: New file.
10714         * config/fr30/fr30.h: New file.
10715         * config/fr30/fr30.md: New file.
10716         * config/fr30/lib1funcs.asm: New file.
10717         * config/fr30/t-fr30: New file.
10718         * config/fr30/xm-fr30.h: New file.
10719
10720 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
10721
10722         * flow.c (merge_blocks_move_successor_nojumps): Delete the
10723         BARRIER at the end of the successor, not the BARRIER before
10724         the successor.
10725
10726         * pa.c (pa_add_gc_roots): Fix thinko in last change.
10727
10728 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
10729
10730         * stmt.c (any_pending_cleanups): Don't crash when
10731         current_function->stmt is unset.
10732
10733 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10734
10735         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
10736         other initializations that may use it for relative offsets.
10737
10738 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10739
10740         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
10741         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
10742         * config/i386/sol2dbg.h: Removed.
10743         * config/i386/sol2gas.h: New file, to enable gas work-around.
10744         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
10745         Don't use sol2dbg.h.
10746         * configure: Rebuilt.
10747
10748 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
10749
10750         * invoke.texi (-fthis-is-variable): Remove documentation.
10751
10752 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
10753
10754         * basic-block.h (compute_bb_for_insn): Declare.
10755         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
10756         to use; set size of basic_block_for_insn directly.
10757         (find_basic_blocks): Update.
10758
10759 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10760
10761         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
10762
10763 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10764
10765         * crtstuff.c (ON_EXIT): Delete empty macro definition.
10766         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
10767
10768 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
10769
10770         * c-decl.c (c_decode_option): Extend comment.
10771
10772 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
10773
10774         * toplev.c (progname): Make 'const char *'
10775         (flag_print_mem): Move out of main.
10776         (version_flag): Move out of main.
10777         (filename): Move out of main.
10778         (debug_args): Remove g prefix from options.
10779         (documented_lang_options): Remove cpplib specific options.
10780         (display_help): Add g prefix to debug options.
10781         (check_lang_option): Delete this function.
10782         (decode_d_option): New function: Decode -d... option.
10783         (decode_f_option): New function: Decode -f... option.
10784         (decode_W_option): New function: Decode -W... option.
10785         (decode_g_option): New function: Decode -g... option.
10786         (independent_decode_option): New function: Decode a language
10787         independent command line option.
10788         (main): Invoke lang_decode_option and then
10789         independent_decode_option on each command line option in
10790         turn.
10791
10792 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
10793
10794         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
10795          * fold-const.c (fold_range_test): Do not try to fold the range
10796          test if the rhs or lhs has side effects.
10797
10798         * basic-block.h (compute_flow_dominators): Declare.
10799
10800         * gcse.c (alloc_code_hoist_mem): New function.
10801         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
10802         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
10803         (hoist_code, one_code_hoisting_pass): Likewise.
10804         (gcse_main): If optimizing for size, then hoist expressions
10805         computed in multiple dominated basic blocks.
10806
10807         * gcse.c (invalid_nonnull_info): New function.
10808         (delete_null_pointer_checks): Likewise.
10809         * rtl.h (delete_null_pointer_checks): Declare.
10810         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
10811
10812         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
10813         (merge-blocks_move_successor_nojumps): Likewise.
10814         (merge_blocks): Allow merging of some blocks, even if it requires
10815         physical movement of the blocks, but not if it requires new jumps.
10816
10817         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
10818         Callers and prototype changed.
10819         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
10820
10821 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10822
10823         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
10824         -YP when both -p and -pg are present.  From i386/sol2.h.
10825
10826 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10827
10828         * Makefile.in (distclean): Delete tm_p.h.
10829         * configure.in: Create a new file, "tm_p.h", from a list in
10830         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
10831         "i386/i386-protos.h".
10832
10833         * alias.c: Include "tm_p.h".
10834         * c-typeck.c: Likewise.
10835         * calls.c: Likewise.
10836         * cse.c: Likewise.
10837         * emit-rtl.c: Likewise.
10838         * explow.c: Likewise.
10839         * expmed.c: Likewise.
10840         * expr.c: Likewise.
10841         * final.c: Likewise.
10842         * flow.c: Likewise.
10843         * fold-const.c: Likewise.
10844         * function.c: Likewise.
10845         * gcse.c: Likewise.
10846         * global.c: Likewise.
10847         * haifa-sched.c: Likewise.
10848         * integrate.c: Likewise.
10849         * jump.c: Likewise.
10850         * local-alloc.c: Likewise.
10851         * loop.c: Likewise.
10852         * optabs.c: Likewise.
10853         * recog.c: Likewise.
10854         * reg-stack.c: Likewise.
10855         * regclass.c: Likewise.
10856         * regmove.c: Likewise.
10857         * reload.c: Likewise.
10858         * reload1.c: Likewise.
10859         * reorg.c: Likewise.
10860         * resource.c: Likewise.
10861         * stmt.c: Likewise.
10862         * stor-layout.c: Likewise.
10863         * toplev.c: Likewise.
10864         * tree.c: Likewise.
10865         * unroll.c: Likewise.
10866         * genattrtab.c (main): Make generated file include "tm_p.h".
10867         * genemit.c (main): Likewise.
10868         * genoutput.c (main): Likewise.
10869         * genrecog.c (main): Likewise.
10870
10871         * i386.h: Delete all prototypes.
10872         * i386.c: Include "tm_p.h".
10873         (ix86_attr_length_default): Call constant_call_address_operand
10874         with correct number of arguments.
10875         * i386-protos.h: New file.
10876         * i386.md (unnamed patterns): Call constant_call_address_operand
10877         with correct number of arguments.
10878         (exception_receiver): Call load_pic_register with correct number
10879         of arguments.
10880
10881 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
10882
10883         * c-pragma.c (mark_align_stack): Dereference the void* properly.
10884
10885 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
10886
10887         * rtl.h (insns_safe_to_move_p): New function.
10888         * loop.c (find_and_verify_loops): Use it.
10889         * rtlanal.c (insns_safe_to_move_p): Define it.
10890
10891 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
10892
10893         * c-pragma.c: Include ggc.h.
10894         * Makefile.in (c-pragma.o): Update.
10895
10896 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10897
10898         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
10899         (LIB_SPEC): Likewise.
10900         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
10901         Reindent -YP/-p/-pg.
10902         Copied from config/sparc/sol2.h.
10903
10904 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
10905
10906         * c-pragma.c (mark_align_stack): New.
10907         (init_pragma): New.
10908         * c-pragma.h (init_pragma): Declare it.
10909         * c-lex.c (init_parse): Call it.
10910
10911 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10912
10913         * configure.in: Pick up thread library on Solaris/x86 just
10914         like on Solaris/sparc.
10915         * configure: Rebuilt.
10916
10917 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
10918
10919         * rtl.h (global_rtx_index): New enum.
10920         (global_rtl): Change to array of rtx.
10921         (pc_rtx, cc0_rtx): Redefine accordingly.
10922         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
10923         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
10924         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
10925         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
10926         (const_int_rtx): Change to array of rtx.
10927         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
10928         accordingly.
10929         * emit-rtl.c (global_rtl): Change to array of rtx.
10930         (const_int_rtx): Change to aray of rtx.
10931         (gen_rtx_CONST_INT): Redefine accordingly.
10932         (init_emit_once): Allocate and initialize global_rtl.  Likewise
10933         for const_int_rtx.  Add both as GC roots.
10934         * genattrtab.c (global_rtl): Update declaration.
10935
10936 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
10937
10938         * Makefile (USER_H): Add iso646.h back.
10939
10940 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
10941
10942         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
10943         zapping the LOG_LINKS of sched_before_next_call.
10944
10945         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
10946         * pa.c (insn_refs_are_delayed): Renamed from
10947         insn_sets_and_refs_are_delayed.
10948
10949 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
10950
10951         * functiion.h (struct function): Add x_whole_function_mode_p.
10952         (retrofit_block): Declare.
10953         * function.c (retrofit_block): New function.
10954         (identify_blocks): Add assertions.  Allow an incomplete set of
10955         block notes if we're still generating code for the function.
10956         * integrate.c: Include loop.h.
10957         (expand_inline_function): Call find_loop_tree_blocks to map block
10958         notes to blocks when in whole-function mode.  Use retrofit_block
10959         to insert new BLOCKs for the inlined function, rather than
10960         insert_block.
10961         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
10962         * Makefile.in (integrate.o): Depend on loop.h.
10963
10964 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
10965
10966         * tree.h (warn_about_unused_variables): Declare.
10967         * stmt.c (warn_about_unused_variables): New function, split out
10968         from ...
10969         (expand_end_bindings): Here.
10970
10971 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
10972
10973         * stmt.c (preserve_subexpressions_p): Don't crash when
10974         current_function->stmt is unset.
10975
10976 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
10977
10978         * stmt.c (expand_start_bindings): Allow callers to pass a flag
10979         indicating that no NOTE_INSN_BLOCK_BEG note is required.
10980         (expand_start_target_temps): Use it.
10981         * except.c (expand_eh_region_start_for_decl): Likewise.
10982         * expr.c (expand_expr): Likewise.
10983
10984 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10985
10986         * fold-const.c (operand_equal_p): Pay attention to side effects.
10987
10988 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
10989
10990         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
10991         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
10992
10993         * tlink.c (scan_linker_output): Look for keywords before accepting
10994         a mangled name in quotes.
10995
10996 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
10997
10998         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
10999         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
11000
11001 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
11002
11003         * alpha.md: Revert Thu Nov 26 change that came in through the
11004         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
11005         Avoid earlyclobber when possible.
11006
11007 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11008
11009         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
11010
11011         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
11012         Define HAVE_ON_EXIT.
11013
11014 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11015
11016         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
11017         CTYPE_CONV in all ctype macros.
11018
11019         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
11020         from system.h.
11021
11022         * cexp.y (initialize_random_junk): Likewise.
11023
11024         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
11025
11026         * i370.c (handle_pragma): Likewise.
11027
11028         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
11029
11030         * v850.c (override_options): Likewise.
11031
11032         * doprint.c (_doprnt): Likewise.
11033
11034         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
11035         Likewise.
11036
11037         * fixinc/server.c (load_data): Likewise.
11038
11039         * fold-const.c (real_hex_to_f): Likewise.
11040
11041         * genattr.c (write_upcase, gen_attr): Likewise.
11042
11043         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
11044         write_upcase): Likewise.
11045
11046         * genemit.c (print_code): Likewise.
11047
11048         * genopinit.c (gen_insn): Likewise.
11049
11050         * genpeep.c (print_code): Likewise.
11051
11052         * genrecog.c (print_code): Likewise.
11053
11054         * optabs.c (init_libfuncs): Likewise.
11055
11056 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
11057
11058         * haifa-sched.c (sched_analyze): Keep the list of notes organized
11059         in pairs.
11060         (reemit_notes): Likewise.
11061
11062 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
11063
11064         * ggc.h (ggc_root): Move to ggc-common.c.
11065         (roots): Remove.
11066         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
11067         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
11068         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
11069         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
11070         * ggc-common.c (ggc_root): Move from ggc.h.
11071         (roots): Declare, static.
11072         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
11073         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
11074         null or check/set mark bit.
11075         (ggc_mark_roots): New.
11076         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
11077
11078 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
11079
11080         * m32r.c: Include toplev.h.
11081         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
11082         (gen_compare): Rename swap_p to must_swap to match uses.
11083         Add default abort case.
11084         (m32r_output_function_epilogue): Remove unused variables.
11085         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
11086         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
11087         define to empty parameter list.  Update all uses.
11088         (predicate decls): Use enum machine_mode not int.
11089         * m32r.md (movsi): Call abort, not fatal_insn.
11090         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
11091
11092 1999-09-14  Andrew Haley  <aph@cygnus.com>
11093
11094         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
11095         use $0 instead of 0.
11096
11097 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11098
11099         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
11100         computation out of loop over hard regs.
11101
11102 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
11103
11104         * function.c (identify_blocks): Don't shadow a variable in an
11105         outer scope.
11106         * integrate.c (integrate_decl_tree): Don't use pushlevel,
11107         pushdecl, or poplevel to build up the new BLOCK tree.
11108         (expand_inline_function): Likewise.
11109         (integrate_parm_decls): Likewise.
11110
11111 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
11112
11113         * c-typeck.c (qualify_type): Merge qualifiers from both types.
11114
11115 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
11116
11117         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
11118         * invoke.texi: Document this change.
11119
11120 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
11121
11122         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
11123         Free the struct.
11124         (mark_emit_status): Renamed from mark_emit_state.
11125         * except.c (mark_eh_status): Renamed from mark_eh_state.
11126         Check not null before marking.
11127         (free_eh_status): New.
11128         * expr.c (mark_expr_status, free_expr_status): New.
11129         * function.c (free_machine_status): New.
11130         (free_after_parsing): New.
11131         (free_after_compilation): Move bits to free_after_parsing; call
11132         free_eh_status, free_expr_status; zero the marked members of the
11133         function state.
11134         (prepare_function_start): No can_garbage_collect.
11135         Call init_eh_for_function.
11136         (expand_dummy_function_end): Free up current_function state.
11137         (mark_function_status): Renamed from mark_function_state.
11138         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
11139         * function.h (struct function): No can_garbage_collect.
11140         (free_machine_status, free_after_parsing): Declare.
11141         (free_eh_status, free_expr_status): Declare.
11142         * ggc.h (mark_expr_status): Declare.
11143         * stmt.c (free_stmt_status): Free the struct.
11144         (mark_stmt_status): Renamed from mark_stmt_state.
11145         (init_stmt): Don't call init_eh.
11146         (init_stmt_for_function): Don't call init_eh_for_function.
11147         * toplev.c (compile_file): Call init_eh.
11148         (rest_of_compilation): Free basic block info before ggc_collect.
11149         Call free_after_parsing; conditionally call free_after_compilation.
11150         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
11151         Check not null before marking.
11152         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
11153
11154 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
11155
11156         * c-lex.c (yylex): Initialize warn.
11157
11158 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
11159
11160         * pa.c (emit_move_sequence): Properly set the mode of the scratch
11161         register when performing secondary reloads for the SAR register.
11162
11163 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
11164
11165         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
11166         (NOTE_BLOCK): New macro.
11167         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
11168         * function.h (identify_blocks): Change prototype.
11169         * function.c (identify_blocks): Simplify.
11170         (reorder_blocks): Likewise.
11171         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
11172         NOTE_INSN_BLOCK_{BEG,END}.
11173         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
11174         the list of saved notes if the note isn't a
11175         NOTE_INSN_BLOCK_{BEG,END}.
11176         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
11177         NOTE_BLOCK_NUMBER.
11178         (reemit_notes): Adjust recreation of notes to reflect new saved
11179         note structure.
11180         * print-rtl.c (print_rtx): Print the address of the BLOCK when
11181         printing a block note.
11182         * stmt.c (block_vector): Remove.
11183         (find_loop_tree_blocks): Simplify.
11184         (unroll_block_trees): Likewise.
11185         * tree.h (reorder_block): Change prototype.
11186
11187 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
11188
11189         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
11190         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
11191         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
11192         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
11193         (atexit, exit): Simplify.
11194         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
11195         * config/lots: Remove defns of HAVE_ATEXIT.
11196
11197 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
11198
11199         * calls.c (precompute_arguments): Fix typo in comment.
11200         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
11201         TARGET_EXPR.
11202
11203 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
11204
11205         * dsp16xx.c (override_options): Fix typos in GC root registration.
11206
11207 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
11208
11209         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
11210         from config/svr4.h.
11211         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
11212         (FUNCTION_PROFILER): Redefine appropriately for Linux.
11213         (CC1_SPEC): Likewise.
11214
11215 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11216
11217         * genattr.c (main): Add extern prototype.  Call return, not exit.
11218         * genattrtab.c (main): Likewise.
11219         * gencheck.c (main): Likewise.
11220         * gencodes.c (main): Likewise.
11221         * genconfig.c (main): Likewise.
11222         * genemit.c (main): Likewise.
11223         * genextract.c (main): Likewise.
11224         * genflags.c (main): Likewise.
11225         * gengenrtl.c (main): Likewise.
11226         * genopinit.c (main): Likewise.
11227         * genoutput.c (main): Likewise.
11228         * genpeep.c (main): Likewise.
11229         * genrecog.c (main): Likewise.
11230
11231         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
11232         * genattrtab.c (get_insn_name): Likewise.
11233         * gencodes.c (get_insn_name): Likewise.
11234         * genconfig.c (get_insn_name): Likewise.
11235         * genemit.c (get_insn_name): Likewise.
11236         * genextract.c (get_insn_name): Likewise.
11237         * genflags.c (get_insn_name): Likewise.
11238         * genopinit.c (get_insn_name): Likewise.
11239         * genpeep.c (get_insn_name): Likewise.
11240
11241         * gencheck.c (usage): Add static prototype.
11242         * genextract.c (print_path): Constify a char*.
11243         * genopinit.c (optabs): Likewise.
11244         * genoutput.c (operand_data, data, output_predicate_decls,
11245         compare_operands): Likewise.
11246         * genrecog.c (write_tree): Add default case in switch.
11247
11248 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11249
11250         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
11251
11252         * print-rtl.c (get_insn_name): Remove prototype.
11253
11254         * toplev.h (progname): Declare const.
11255
11256         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
11257         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
11258         dump_sched_info, dump_local_alloc, regset_release_memory,
11259         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
11260         error_with_file_and_line, error_with_decl, error_for_asm, error,
11261         fatal, warning_with_file_and_line, warning_with_decl, warning,
11262         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
11263         Remove redundant prototypes.
11264
11265         (notice, check_lang_option, report_file_and_line, vnotice,
11266         mark_file_stack): Add static prototype.
11267         (set_fatal_function): Add prototype.
11268         (vnotice, report_file_and_line, set_fatal_function,
11269         check_lang_option): Constify a char*.
11270         (main): Prototype.  Call return, not exit.
11271
11272 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11273
11274         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
11275
11276         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
11277
11278         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
11279
11280         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
11281
11282 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11283
11284         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
11285         behave as if it's zero in all cases.
11286         (expand_function_start): Adjust call to assign_parms.
11287         * tree.h (assign_parms): Adjust prototype.
11288         * objc/objc-act.c (hack_method_prototype): Adjust call to
11289         assign_parms.
11290
11291 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
11292
11293         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
11294         arg_pointer_rtx fixed if the argument pointer register is
11295         not fixed.
11296         (NONZERO_BASE_PLUS_P): Likewise.
11297
11298 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
11299
11300         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
11301         match_insn2 to match_insn.
11302         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
11303
11304 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
11305
11306         * Makefile.in (USER_H): Remove va-foo.h.
11307
11308         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
11309         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
11310         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
11311         va-spur.h,va-v850.h}: Remove.
11312
11313 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
11314
11315         * sparc/sparc.md (eligible_for_return_delay): New attribute.
11316         (in_return_delay): Use it instead of match_insn.
11317
11318 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11319
11320         * config/alpha/va_list.h (va-alpha.h): Do not include.
11321         (__gnuc_va_list): Typedef as in varargs.h.
11322
11323 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
11324
11325         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
11326         DECL_LIVE_RANGE_RTL.
11327
11328 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
11329
11330         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
11331         not NOTE_BLOCK_NUMBER.
11332         (expand_eh_region_end): Likewise.
11333         (find_exception_handler_labels): Likewise.
11334         (scan_region): Likewise.
11335         (exception_optimize): Likewise.
11336         (update_rethrow_references): Likewise.
11337         (set_insn_eh_region): Likewise.
11338         * final.c (final_scan_insn): Likewise.
11339         * flow.c (make_edges): Likewise.
11340         * integrate.c (expand_inline_function): Likewise.
11341         * print-rtl.c (print_rtx): Likewise.
11342
11343 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
11344
11345         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
11346         terms of builtin functions and types.
11347
11348         * mips.c (mips_build_va_list): New.
11349         (mips_va_start, mips_va_arg): New.
11350         * mips.h (BUILD_VA_LIST_TYPE): New.
11351         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
11352
11353         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
11354         (sh_build_va_list, sh_va_start, sh_va_arg): New.
11355         * sh.h (BUILD_VA_LIST_TYPE): New.
11356         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
11357
11358 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
11359
11360         * recog.h (struct recog_data): Make dup_num, operand_address_p,
11361         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
11362         (struct insn_data): Likewise with n_operands, n_dups,
11363         n_alternatives, output_format.
11364         * regclass.c (scan_one_insn): Cast n_operands to int before
11365         arithmetic inside comparison.
11366
11367 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
11368
11369         * toplev.c (compile_function): Unconditionally emit nop.
11370
11371 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11372
11373         * haifa-sched.c (actual_hazard): Move declaration of variable
11374         `this_cost' into the scope where it is used.
11375
11376 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11377
11378         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
11379         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
11380         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
11381
11382         * genrecog.c (make_insn_sequence): Call memset, not bzero.
11383
11384         * jump.c (find_insert_position): Don't declare or define unless
11385         !HAVE_conditional_arithmetic.
11386         (returnjump_p_1, delete_prior_computation): Add static prototypes.
11387
11388         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
11389
11390         * recog.c (offsettable_address_p): Prototype function pointer.
11391         (preprocess_constraints): Call memset, not bzero.
11392
11393         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
11394         (gcc_obstack_init): Don't declare.
11395         (fix_sizetype): Add static prototype.
11396         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
11397         (tree_cons): Call memset, not bzero.
11398
11399         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
11400         definition in macro ASM_WEAKEN_LABEL.
11401         (mark_const_hash_entry): Add static prototype.
11402
11403 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11404
11405         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
11406
11407         * unroll.c (find_common_reg_term, subtract_reg_term,
11408         loop_find_equiv_value): Add static prototypes.
11409         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
11410         (copy_loop_body): Remove unreachable break statement.
11411
11412         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
11413
11414         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
11415
11416 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11417
11418         Undo some changes from the gcc2 merge:
11419         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
11420         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
11421         pointers.
11422
11423         Undo this change:
11424         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
11425         * emit-rtl.c (gen_lowpart_common): Disable optimization of
11426         initialized float-int union if the value is a NaN.
11427
11428 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11429
11430         * gthr-win32.h: New file.
11431
11432         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
11433         shared as a valid attribute.
11434         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
11435         * extend.texi: Document `shared' variable attribute.
11436
11437 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
11438
11439         * configure.in: Handle --enable-threads on FreeBSD.
11440         * configure: Rebuit.
11441
11442 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
11443
11444         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
11445         thread support.
11446         * configure: Rebuilt.
11447
11448 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
11449                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
11450                           Rosimildo DaSilva <rdasilva@connecttel.com>
11451
11452         * configure.in (m68k-*-rtemscoff*): Added.
11453         * configure.in (mips64orion-*-rtems*): Converted to ELF.
11454         * configure.in (sparc-*-rtemsaout*): Added as alias for old
11455         sparc-rtems configuration.
11456         * configure.in (sparc-*-rtemself*): Added.
11457         * configure.in (sparc-*-rtems*): Now ELF not a.out.
11458         * config/i386/rtems.h: Added comment.
11459         * config/sparc/rtemself.h: New file.
11460
11461         * configure.in (m68k-rtemself): Added.
11462         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
11463         and DWARF_DEBUGGING_INFO.
11464         * config/m68k/crti.s: New file.
11465         * config/m68k/crtn.s: New file.
11466         * config/m68k/t-crtstuff: New file.
11467         * config/m68k/rtemself.h: New file.
11468
11469         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
11470         global ctor/dtor and C++ exception handling.
11471         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
11472         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
11473         ENDFILE_SPEC.
11474         * config/i386/t-rtems-i386: New File.
11475
11476 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
11477
11478         * stmt.c (expand_end_case): Return right away if the case stack is
11479         empty.
11480
11481 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
11482
11483         * Makefile.in (version.c): Remove rule incorrectly brought in from
11484         the gcc2 merge.
11485
11486 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
11487
11488         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
11489         * msdos/top.sed:  Take into account a prepended $(SHELL) to
11490         move-if-change.
11491         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
11492
11493         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
11494
11495 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11496
11497         * regmove.c (fixup_match_1): Don't change an unchanging register.
11498         (stable_but_for_p): Renamed to:
11499         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
11500         Changed all callers.
11501
11502 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
11503
11504         * loop.c (strength_reduce): Don't call reg_used_between_p if the
11505         insn from BL2 is after the insn from BL.
11506
11507 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
11508
11509         * recog.h (INSN_OUTPUT_FORMAT_*): New.
11510         (struct insn_data): Merge `template' and `outfun' into `output'.
11511         Add `output_format'.
11512         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
11513         (struct data): Remove `outfun'; add `output_format'.
11514         (name_for_index): Remove declaration.
11515         (output_insn_data): Handle output formats.
11516         (process_template): Emit the bare array for @.
11517         (gen_expand, gen_split): Set output_format to NONE.
11518         * output.h (get_insn_template): Declare.
11519         * final.c (get_insn_template): New.
11520         (final_scan_insn): Use it.
11521         * toplev.c (compile_file): Likewise.
11522
11523         * c4x/c4x.c (c4x_process_after_reload): Likewise.
11524         * i860/i860.c (output_delayed_branch): Likewise.
11525         (output_delay_insn): Likewise.
11526
11527 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11528
11529         * rtl.c (obstack_alloc_rtx): Removed.
11530
11531 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
11532
11533         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
11534
11535 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
11536
11537         * i386.c (call_insn_operand): Reject const_int.
11538         (expander_call_insn_operand): Use call_insn_operand.
11539
11540 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11541
11542         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
11543
11544 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
11545
11546         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
11547         Use DImode operation.
11548
11549 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
11550
11551         * gcc.c: Include sys/resource.h.
11552         (report_times): New flag.
11553         (execute):  If report_times is set, calculate and report the
11554         CPU time consumed by each subprocess.
11555
11556         (rus, prus): New globals.
11557         (option_map): Add --time.
11558         (display_help): Document -time.
11559         (process_command): Set report_times if -time is given.
11560         Turn off -pipe if -time is given.
11561
11562         * invoke.texi: Document new option -time.
11563
11564         * configure.in: Check for getrusage.  Check if we have to
11565         prototype getrusage.
11566         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
11567         * configure: Regenerate.
11568         * config.in: Regenerate.
11569
11570 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
11571
11572         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
11573         fields.
11574
11575 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
11576
11577         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
11578         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
11579         (nan): Return _thenan_sf or _thenan_df as appropriate.
11580         (L_thenan_sf): Define _thenan_sf.
11581         (L_thenan_df): Define _thenan_df.
11582
11583         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
11584         (DPBIT_FUNCS): Add _thenan_df.
11585
11586 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
11587
11588         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
11589         TYPE_SIZE_UNIT.
11590
11591 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11592
11593         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
11594
11595         * gcc.h: New file.
11596         (lang_specific_driver): Don't take a function pointer parameter.
11597         All callers changed.
11598
11599         * gcc.c: Include gcc.h.
11600         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
11601         lang_specific_extra_outfiles, fatal): Don't declare.
11602         (multilib_defaults_raw): Constify.
11603         (read_specs): Call memset, rather than bzero.
11604         (main): Call return, not exit.
11605         (lookup_compiler): Call memcpy, not bcopy.
11606         (fatal): Make extern.
11607
11608         * cppspec.c: Include gcc.h.
11609         (lang_specific_driver): Initialize variable `quote'.  Constify a
11610         char*.  All calls to the function pointer parameter now
11611         explicitly call `fatal'.
11612
11613         * gccspec.c (lang_specific_driver): Include gcc.h.
11614
11615 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
11616
11617         * arm.c (note_invalid_constants): Use recog_data.operand_type
11618         for recog_op_type.
11619
11620 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11621
11622         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
11623         Declare.
11624
11625         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
11626         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
11627         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
11628         reload_secondary_in_reload, reload_secondary_out_reload,
11629         reload_secondary_in_icode, reload_secondary_out_icode,
11630         reload_reg_rtx, reload_when_needed): Delete declarations.
11631         (struct reload): New structure.
11632         (rld): Declare new array.
11633         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
11634         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
11635         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
11636         reload_secondary_in_reload, reload_secondary_out_reload,
11637         reload_secondary_in_icode, reload_secondary_out_icode,
11638         reload_reg_rtx, reload_when_needed): Delete definitions.
11639         (rld): New array.
11640         (whole file): Replace uses of the deleted arrays with uses of rld.
11641         * reload1.c (whole file): Replace uses of the deleted arrays with
11642         uses of rld.
11643         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
11644         explicit loops, not with bcopy.
11645
11646 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
11647
11648         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
11649         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
11650         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
11651         insn_name): Delete and consolidate into new structures.
11652         (insn_operand_predicate_fn): New.
11653         (insn_output_fn): New.
11654         (insn_gen_fn): New.
11655         (struct insn_operand_data): New.
11656         (struct insn_data): New.
11657         (insn_data): New.
11658         (OUT_FCN): Update for insn_data change.
11659         * builtins.c (expand_builtin_strlen): Likewise.
11660         (expand_builtin_memcmp): Likewise.
11661         * combine.c (make_extraction, simplify_comparison): Likewise.
11662         * cse.c (canon_reg, cse_insn): Likewise.
11663         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
11664         * expmed.c (store_bit_field, extract_bit_field): Likewise.
11665         (emit_store_flag): Likewise.
11666         * expr.c (convert_move, emit_block_move): Likewise.
11667         (clear_storage, emit_push_insn, expand_increment): Likewise.
11668         (do_store_flag): Likewise.
11669         * expr.h (GEN_FCN): Likewise.
11670         (insn_gen_function): Die.
11671         * final.c (final_scan_insn): Update for insn_data change.
11672         (output_asm_name): Likewise.
11673         * function.c (fixup_var_refs_1): Likewise.
11674         * loop.c (check_dbra_loop): Likewise.
11675         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
11676         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
11677         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
11678         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
11679         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
11680         * regmove.c (gen_add3_insn): Likewise.
11681         * reload.c (push_secondary_reload, combine_reloads): Likewise.
11682         (find_reloads, find_reloads_address_1): Likewise.
11683         (debug_reload_to_stream): Likewise.
11684         * reload1.c (emit_reload_insns, gen_reload): Likewise.
11685         * stmt.c (expand_end_case): Likewise.
11686         * toplev.c (compile_file): Likewise.
11687
11688         * c4x/c4x.c (c4x_process_after_reload): Likewise.
11689         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
11690
11691         * print-rtl.c (insn_name_ptr): Remove declaration.
11692         (get_insn_name): Declare.
11693         (print_rtx): Use it.
11694         * genoutput.c (insn_name_ptr): Remove.
11695         (next_operand_number): New.
11696         (struct operand_data): New.
11697         (null_operand, odata, odata_end): New.
11698         (struct data): Use struct operand_data.
11699         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
11700         (get_insn_name): Renamed from name_for_index.
11701         (output_prologue): Define NO_MD_PROTOTYPES.
11702         (output_predicate_decls): Break out from output_epilogue.
11703         Iterate over the operands list.
11704         (output_operand_data): Break out from output_epilogue.  Emit
11705         just the operands list.
11706         (output_insn_data): Break out from output_epilogue.  Emit just
11707         the insn data.
11708         (output_epilogue): Remove.
11709         (output_get_insn_name): New.
11710         (constraints, op_n_alternatives, predicates, address_p): Die.
11711         (modes, strict_low, seen): Die.
11712         (scan_operands): Take new param `d' instead of writing to
11713         seven global variables.
11714         (compare_operands): New.
11715         (place_operands): New.
11716         (validate_insn_alternatives): Update for struct data change.
11717         (gen_insn): Don't zero or copy 7 global arrays.  Update for
11718         scan_operands; call place_operands.
11719         (gen_peephole, gen_expand, gen_split): Likewise.
11720         (main): Update for new output routines.
11721
11722         * genattr.c (insn_name_ptr): Remove.
11723         (get_insn_name): New function.
11724         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
11725         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
11726         * genrecog.c: Likewise.
11727
11728         * alpha.md (adddi3): Make `pattern' array static.
11729
11730 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11731
11732         * config/c4x/c4x.h (c4x_rpts_cycles_string,
11733         c4x_cpu_version_string): Constify char *.
11734         * config/c4x/c4x.c (c4x_rpts_cycles_string,
11735         c4x_cpu_version_string): Likewise.
11736
11737 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
11738
11739         * tree.c (save_tree_status): Revert 10 Sep change.
11740         (restore_tree_status): Likewise.  Call obstack_free with NULL
11741         before freeing the obstack proper.
11742
11743 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
11744
11745         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
11746
11747         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
11748         surrounding context.
11749
11750 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
11751
11752         * tree.c (type_hash_canon): Put all types in the hash-table, when
11753         GC'ing.
11754
11755 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
11756
11757         * recog.h (struct recog_data, recog_data): New.
11758         (recog_foo variables): Kill.
11759         * recog.c (recog_operand, recog_operand_loc): Kill.
11760         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
11761         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
11762         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
11763         (recog_data): Define.
11764         (extract_insn): Update all recog_foo references to use recog_data.
11765         (preprocess_constraints, constrain_operands): Likewise.
11766         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
11767         * genattrtab.c (main): Likewise.
11768         * genextract.c (main): Likewise.
11769         * genoutput.c: Likewise.
11770         * genrecog.c (write_subroutine, main): Likewise.
11771         * local-alloc.c (block_alloc): Likewise.
11772         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
11773         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
11774         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
11775         * reload.c (find_reloads, find_reloads_toplev): Likewise.
11776         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
11777         (reload_cse_simplify_operands): Likewise.
11778
11779         * arc/arc.c (arc_final_prescan_insn): Likewise.
11780         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
11781         * h8300/h8300.c (notice_update_cc): Likewise.
11782         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
11783         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
11784         * mn10200/mn10200.c (notice_update_cc): Likewise.
11785         * mn10300/mn10300.c (notice_update_cc): Likewise.
11786         * romp/romp.c (update_cc): Likewise.
11787         * sparc/sparc.c (check_pic): Likewise.
11788         * v850/v850.c (notice_update_cc): Likewise.
11789
11790         * genemit.c (main): Don't declare recog_operand.
11791
11792 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
11793
11794         * ggc.h (rtvec_def): Forward declare.
11795         (tree_node): Likewise.
11796         (ggc_root): Define.
11797         (roots): Declare.
11798         (ggc_set_mark_rtx): Add prototype.
11799         (ggc_set_mark_rtvec): Likewise.
11800         (ggc_set_mark_tree): Likewise.
11801         * ggc-simple.c (ggc_root): Don't define.
11802         (roots): Don't declare.
11803         (ggc_mark_rtx): Remove.
11804         (ggc_mark_rtvec): Likewise.
11805         (ggc_mark_tree): Likewise.
11806         (ggc_mark_varray): Likewise.
11807         (ggc_mark_tree_hash_table_entry): Likewise.
11808         (ggc_mark_tree_hash_table): Likewise.
11809         (ggc_set_mart_rtx): New function.
11810         (ggc_set_mark_rtvec): Likewise.
11811         (ggc_set_mark_tree): Likewise.
11812         (ggc_add_root): Remove.
11813         (ggc_add_rtx_root): Likewise.
11814         (ggc_remove_tree_root): Likewise.
11815         (ggc_add_string_root): Likewise.
11816         (ggc_add_tree_varray_root): Likewise.
11817         (ggc_add_tree_hash_table_root): Likewise.
11818         (ggc_del_root): Likewise.
11819         (ggc_mark_rtx_ptr): Likewise.
11820         (ggc_mark_tree_ptr): Likewise.
11821         (ggc_mark_string_ptr): Likewise.
11822         (ggc_mark_tree_varray_ptr): Likewise.
11823         (ggc_mark_tree_hash_table_ptr): Likewise.
11824         * ggc-common.c: New file.
11825         * Makefile.in (OBJS): Add ggc-common.o.
11826         (ggc-common.o): List dependencies.
11827
11828 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
11829
11830         * cppalloc.c (xstrdup): Use memcpy.
11831         * cpperror.c (cpp_print_containing_files): Don't use
11832         cpp_notice.
11833         * cpplib.c (conditional_skip): Set temp->lineno.
11834         (do_endif): Make error message less obscure.
11835         (if_directive_name): New function.
11836         (cpp_get_token [case EOF]): Unwind the if stack and generate
11837         error messages for each unterminated conditional in this file.
11838         (parse_string):  Do not behave differently if -traditional.
11839
11840 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
11841
11842         * builtins.c (expand_builtin_va_arg): Cope with an array-type
11843         va_list decomposing to pointer-type.
11844         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
11845         (rs6000_va_arg): Likewise.
11846
11847 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
11848
11849         * except.c (start_dynamic_handler): Compute size using
11850         STACK_SAVEAREA_MODE.
11851
11852 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11853
11854         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
11855         include directory headers.  Don't define strrchr.  Don't provide
11856         my_* replacement functions.  Prefer PTR over `pointer_type'.
11857         Don't prototype system functions.  Don't redefine getopt.
11858
11859         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
11860         safe_read, safe_write, save_pointers, restore_pointers,
11861         is_id_char, in_system_include_dir, directory_specified_p,
11862         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
11863         find_corresponding_lparen, referenced_file_is_newer,
11864         save_def_or_dec, munge_compile_params, gen_aux_info_file,
11865         process_aux_info_file, identify_lineno, check_source,
11866         seek_to_line, forward_to_next_token_char, output_bytes,
11867         output_string, output_up_to, other_variable_style_function,
11868         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
11869         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
11870         find_static_definition, connect_defs_and_decs, add_local_decl,
11871         add_global_decls, needs_to_be_converted, visit_each_hash_node,
11872         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
11873         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
11874         scan_for_missed_items, edit_file, string_list_cons): Add static
11875         prototypes.
11876         (standard_exec_prefix, target_machine, target_version,
11877         default_syscalls_dir, string_list, string_list_cons, find_file,
11878         do_cleaning): Constify a char*.
11879         (safe_read, safe_write): Use PTR, not a char*.
11880         (is_id_char): Take an int, not a char.
11881         (main): Add prototype.  Call return, not exit.
11882
11883 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
11884
11885         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
11886         when comparing types.
11887
11888 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
11889
11890         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
11891         (strength_reduce): Release the varrays from the no-bivs early exit.
11892
11893         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
11894         the loop over the registers.
11895
11896         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
11897         for a new obstack.
11898         (restore_tree_status): Check that instead when freeing the obstack.
11899
11900 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
11901
11902         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
11903         as pointers.
11904
11905 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11906
11907         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
11908         operand size modifiers.
11909
11910 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
11911
11912         * c-common.c (c_common_nodes_and_builtins): Don't build
11913         va_list_type_node.
11914         * c-common.h (enum c_tree_index and related accesor macros): Remove
11915         everything now declared in tree.h.
11916         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
11917         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
11918         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
11919         (error_mark_node, void_type_node, char_type_node, integer_type_node,
11920         unsigned_type_node, ptr_type_node, va_list_type_node,
11921         integer_zero_node, null_pointer_node, integer_one_node): Delete.
11922         (init_decl_processing): Call build_common_tree_nodes and
11923         build_common_tree_nodes_2 instead of building their nodes here.
11924         Don't add roots for these nodes.
11925         * stor-layout.c (size_zero_node, size_one_node): Delete.
11926         (set_sizetype): Make a new node for bitsizetype each time.
11927         * tree.c (global_trees): New variable.
11928         (init_obstacks): Add a gc root for it.
11929         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
11930         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
11931         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
11932         (build_common_tree_nodes): New function.
11933         (fix_sizetype): New function.
11934         (build_common_tree_nodes_2): New function.
11935         * tree.h (enum tree_index): New.
11936         (global_trees): Declare.
11937         Add accessor macros for all nodes now moved to global_trees.
11938         Delete their declarations.
11939
11940 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
11941
11942         * c-decl.c (finish_function): When processing a nested function,
11943         push and pop GC context around rest_of_compilation.
11944
11945 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
11946
11947         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
11948         Default ix86_arch to PROCESSOR_I386.
11949         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
11950         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
11951         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
11952         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
11953         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
11954         (EXTRA_SPECS): Remove deleted specs.
11955
11956 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
11957
11958         * function.c (assign_stack_local_1): Allocate from
11959         function->x_frame_offset, not frame_offset.
11960
11961 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
11962
11963         * ggc.h (lang_cleanup_tree): Remove.
11964         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
11965         * ggc-callbacks.c (lang_cleanup_tree): Remove.
11966
11967         * c-decl.c (finish_struct): Use ggc_alloc to allocate
11968         TYPE_LANG_SPECIFIC when garbage collecting.
11969         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
11970         (lang_cleanup_tree): Remove.
11971
11972 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
11973
11974         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
11975         * crtstuff.c: Not here.
11976         * dwarf2out.c: Or here.
11977         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
11978         info.
11979
11980 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
11981
11982         * function.h (free_after_compilation): Remove decl parameter.
11983         (free_varasm_status0: Likewise.
11984         (free_emit_status): Likewise.
11985         (free_stmt_status): Likewise.
11986         (free_after_compilation): Likewise.
11987         (init_lang_status): New variable.
11988         (free_lang_status): Likewise.
11989         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
11990         * function.c (init_lang_status): New variable.
11991         (free_lang_status): Likewise.
11992         (push_function_context_to): Don't set function::decl here.
11993         (free_after_copmilation): Make decl parameter implicit.  Call
11994         free_lang_status if defined.
11995         (prepare_function_start): Call init_lang_status if defined.
11996         (init_function_start): Set function::decl here.
11997         * profile.c (output_func_start_profiler): Don't call pushdecl
11998         until we've actually started the function.
11999         * stmt.c (free_stmt_status): Make decl parameter implicit.
12000         * toplev.c (rest_of_compilation): Don't pass decl to
12001         free_after_compilation.
12002         * varasm.c (free_varasm_status): Likewise.
12003
12004 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12005
12006         * except.c (call_get_eh_context): Add root when allocating static
12007         tree variable.
12008
12009 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
12010
12011         * arm.c: Include "ggc.h".
12012         (arm_add_gc_roots): New function.
12013         (arm_override_options): Call it.
12014         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
12015
12016         * arm.md (define_asm_attributes): Add a pool_range attribute.
12017
12018 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
12019
12020         * extend.texi (Volatiles): New node.
12021
12022 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
12023
12024         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
12025         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
12026         (struct ggc_any): Replace `mark' with `magic_mark'.
12027         (ggc_alloc_string): Use memcpy, not bcopy.
12028         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
12029         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
12030         (ggc_free_any): New.
12031         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
12032         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
12033         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
12034         Use IS_MARKED. Use ggc_free_any.
12035
12036 1999-09-09  Scott Bambrough <scottb@netwinder.org>
12037
12038         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
12039
12040 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
12041
12042         * toplev.c (main): Always init_ggc.
12043
12044 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
12045
12046         * except.c (find_all_handler_type_matches): Free the list if
12047         we found no matches.
12048
12049         * combine.c (SUBST): Break out to a real function do_SUBST.
12050         (SUBST_INT): Likewise.
12051         * gcse.c (free_pre_mem): Free `temp_bitmap'.
12052         (pre_insert): Free `inserted'.
12053         * loop.c (basic_induction_var): Always set `location'.
12054
12055         * function.c (expand_function_end): Add initial_trampoline as a root.
12056         * rtl.h (init_varasm_once): Declare.
12057         * toplev.c (compile_file): Call it.
12058         * ggc-simple.c (ggc_mark_string_ptr): New.
12059         (ggc_add_string_root): New.
12060         (ggc_collect): Disable collection avoidance temporarily.
12061         * ggc.h (ggc_add_string_root): Declare.
12062         * except.c (create_rethrow_ref): Use ggc_alloc_string.
12063         * optabs.c (init_libfuncs): Likewise.
12064         * varasm.c (named_section): Use ggc_alloc_string.
12065         (make_function_rtl): Likewise.
12066         (make_decl_rtl): Likewise.
12067         (assemble_static_space): Likewise.
12068         (assemble_trampoline_template): Likewise.
12069         (output_constant_def): Likewise.
12070         (force_const_mem): Likewise.
12071         (mark_const_hash_entry): New.
12072         (mark_pool_sym_hash_table): New.
12073         (mark_varasm_state): Use it.
12074         (init_varasm_once): New.
12075
12076         * expr.h (init_one_libfunc): Declare.
12077         * optabs.c (init_one_libfunc): New.
12078         (init_optabs): Use it.
12079         * config/gofast.h: Likewise.
12080         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
12081         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
12082
12083 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
12084
12085         * Makefile.in (cppexp.o): Depend on cpphash.h.
12086         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
12087         Include cpphash.h.
12088         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
12089         * cpplib.c (do_define): Generalise to handle poisoned definitions,
12090         redefining poisoned identifiers, etc.
12091         (do_undef): Don't allow poisoned identifiers to be undefined.
12092         (do_pragma): Add #pragma poison.
12093         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
12094
12095         * cccp.c: Add T_POISON node type.
12096         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
12097         poisoned xxx.
12098         (do_define): Generalise to handle poisoned definitions,
12099         redefining poisoned identifiers, etc.
12100         (do_undef): Don't allow poisoned identifiers to be undefined.
12101         (do_pragma): Add #pragma poison.
12102         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
12103
12104         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
12105         * c-pragma.h: Add ps_poison state.  We now always have generic
12106         pragmas.
12107
12108 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
12109
12110         * ggc.h (ggc_alloc): New function.
12111         (ggc_mark): Likewise.
12112         * ggc-simple.c (ggc_any): New structure.
12113         (ggc_status): Add anys.
12114         (n_anys_collected): New variable.
12115         (ggc_alloc): Define.
12116         (ggc_mark): Likewise.
12117         (ggc_collect): Collect the anys.
12118
12119 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12120
12121         * c-decl.c (mark_binding_level): Make static to match prototype.
12122
12123 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
12124
12125         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
12126
12127 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
12128
12129         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
12130         will use into account.  Expand the max width to 5.
12131         * rtl.c: Likewise.
12132
12133 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
12134
12135         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
12136         for the rtx length.
12137
12138 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
12139
12140         * alpha.md (call value patterns): Remove the result predicates.
12141
12142 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
12143
12144         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
12145         last change.
12146
12147 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12148
12149         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
12150         changed from extern char *, to extern PTR.  Also fix typo in
12151         NEED_DECLARATION_REALLOC test.
12152
12153         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
12154
12155 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12156
12157         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
12158         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
12159         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
12160         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
12161
12162         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
12163
12164         * cccp.c (pcfinclude): Likewise.
12165
12166         * global.c (allocno_compare): Likewise.
12167
12168         * haifa-sched.c (rank_for_schedule): Likewise.
12169
12170         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
12171
12172         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
12173
12174         * stupid.c (stupid_reg_compare): Likewise.
12175
12176         * tree.c (_obstack_allocated_p): Likewise.
12177
12178         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
12179
12180 1999-09-08  Bruce Korb  autogen@linuxbox.com
12181
12182         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
12183         why "gperf -F" fails.
12184         * gcc/cp/Makefile.in: ditto
12185         * gcc/Makefile.in: ditto
12186         * gcc/java/Makefile.in: ditto
12187
12188 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
12189
12190         * lists.c: Include ggc.h.
12191         (zap_lists): New.
12192         (init_EXPR_INSN_LIST_cache): Install it.
12193
12194         * ggc-simple.c (init_ggc): Absorb the old init.
12195         (ggc_push_context): Use xcalloc.
12196         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
12197         (ggc_collect): Add [rvts] tags to the collection stats.
12198
12199 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
12200
12201         * cccp.c (main): Fix handling of -include and -imacros options.
12202
12203 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
12204
12205         * cpplib.c (cpp_push_buffer): Fix order of arguments.
12206
12207 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
12208
12209         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
12210         genrtl.c.
12211
12212 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
12213
12214         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
12215         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
12216         and SET_DEST. Update comment.
12217
12218 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12219
12220         * config/c4x/c4x.c: Include ggc.h.
12221         (c4x_add_gc_roots): New function.
12222         (c4x_override_options): Call c4x_add_gc_roots.
12223
12224 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
12225
12226         * defaults.h (TARGET_ESC): Move ...
12227         * system.h: ... here, where Linas had it in the first place.  Silly me.
12228
12229 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
12230
12231         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
12232         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
12233         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
12234         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
12235         * defaults.h (TARGET_ESC): Add default.
12236
12237 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
12238
12239         * configure.in: add i370-*-openedition, i370-*-mvs and
12240         i370-*-linux targets
12241
12242 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
12243
12244         * dsp16xxx.c: Include ggc.h
12245         (override_options): Mark GC roots.
12246         * mn10200.c: Include ggc.h.
12247         (asm_file_start): Mark GC roots.
12248         * tahoe.c: Include ggc.h.
12249         (extensible_operand): Mark GC roots.
12250
12251 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
12252
12253         * README: Add section discussing status of ELF ABI.
12254         * i370.c: Fix misc spelling mistakes.
12255         (i370_label_scan): Updated notes, exception handling.
12256         (i370_function_prolog): Simplify ELF stack handling.
12257         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
12258         (STACK_GROWS_DOWNWARD): ELF stack grows down.
12259         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
12260         * i370.md: (movdi): Add notes.
12261         (floatsidf2): Use stack not rtca for scratch float area.
12262         (iorsi3): Correct operand constraints.
12263         * x-oe: Restore TAROUTOPTS which are used by pax.
12264
12265 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
12266
12267         * rs6000.c: Include ggc.h.
12268         (rs6000_add_gc_roots): New function.
12269         (override_options): Call it.
12270
12271 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
12272
12273         * alpha.h (alpha_compare): New.
12274         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
12275         * alpha.c: Likewise for the definitions.
12276         (alpha_emit_conditional_branch): Update for alpha_compare.
12277         (alpha_emit_conditional_move): Likewise.
12278         * alpha.md (cmpdf, cmpdi): Likewise.
12279         (setcc patterns): Likewise.  Zero alpha_compare after use.
12280         (sne): Optimize (x != 0) into (0U < x).
12281
12282 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
12283
12284         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
12285         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
12286         (INIT_EXPANDERS): Remove.
12287         * alpha.c: Include ggc.h.
12288         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
12289         (alpha_init_machine_status, alpha_mark_machine_status): New.
12290         (override_options): Install them.
12291         (struct machine_function): Moved to alpha.h.
12292         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
12293         (alpha_init_expanders): Remove.
12294         (alpha_return_addr): Adjust to use current_function->machine.
12295         (alpha_ra_ever_killed): Likewise.
12296         (alpha_expand_epilogue): Likewise.
12297         * alpha.md (eh_epilogue): Likewise.
12298
12299 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
12300                           Melissa O'Neill  <oneill@cs.sfu.ca>
12301                           Geoffrey Keating  <geoffk@cygnus.com>
12302
12303         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
12304         call-used registers (call-saved registers must still be contiguous
12305         and end with r31, of course).
12306
12307 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
12308
12309         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
12310         (self_promoting_type_p): Delete.
12311         (self_promoting_args_p): Move ...
12312         * c-common.c: ... here.
12313         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
12314         (simple_type_promotes_to): New.
12315         * builtins.c (lang_type_promotes_to): New.
12316         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
12317         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
12318         * c-common.h: ... here.
12319         (self_promoting_args_p, simple_type_promotes_to): Declare.
12320         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
12321         (grokdeclarator): Likewise.
12322         * tree.h (lang_type_promotes_to): Declare.
12323
12324 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
12325
12326         Add some machine-dependent GC roots.
12327         * sparc.c: Include ggc.h.
12328         (sparc_add_gc_roots): New function.
12329         (mark_ultrasparc_pipeline_state): Likewise.
12330         (override_options): Call sparc_add_gc_roots.
12331         * pa.c: Include ggc.h.
12332         (pa_add_gc_roots): New function.
12333         (mark_deferred_plabels): Likewise.
12334         (override_options): Call pa_add_gc_roots.
12335         * mips.c: Include ggc.h.
12336         (mips_add_gc_roots): New function.
12337         (override_options): Use it.
12338
12339 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12340
12341         * cpperror.c (cpp_file_line_for_message): Constify a char*.
12342
12343         * cppexp.c (parse_number, parse_charconst, cpp_lex,
12344         cpp_parse_expr): Add static prototypes.
12345         (parse_charconst): Don't cast away const-ness.
12346         (token): Constify a char*.
12347
12348         * cppfiles.c (file_name_list, include_hash, find_include_file,
12349         finclude, initialize_input_buffer): Constify a char*.
12350         (file_cleanup, find_position): Add static prototypes.
12351
12352         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
12353         collect_expansion): Add static prototypes.
12354         (cpp_install, create_definition, monthnames): Constify a char*.
12355
12356         * cpphash.h (cpp_install): Likewise.
12357
12358         * cppinit.c (known_suffixes, default_include,
12359         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
12360         (base_name, dump_special_to_buffer, initialize_dependency_output):
12361         Add static prototypes.
12362
12363         * cpplib.c (my_strerror): Constify a char*.
12364         (null_underflow, null_cleanup, skip_comment, copy_comment,
12365         copy_rest_of_line, handle_directive, pass_thru_directive,
12366         get_directive_token, read_line_number, cpp_print_file_and_line,
12367         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
12368         v_cpp_warning_with_line, detect_if_not_defined,
12369         consider_directive_while_skipping): Add static prototypes.
12370         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
12371         cpp_pedwarn_with_file_and_line): Constify a char*.
12372
12373         * cpplib.h (cpp_options, include_hash, progname, definition,
12374         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
12375         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
12376         find_include_file, deps_output, include_hash): Constify a char*.
12377
12378         * cppmain.c (progname): Constify.
12379         (main): Add prototype.  Use return, not exit.
12380
12381         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
12382         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
12383         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
12384         check_protection): Add static prototype.
12385         (xfree): Remove.
12386         (progname, recognized_macrom, recognized_extern): Constify a char*.
12387         (main): Add prototype.
12388
12389         * gen-protos.c (progname): Constify a char*.
12390
12391 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
12392
12393         * emit-rtl.c (free_emit_status): Take decl as a parameter.
12394         (init_emit_once): Add more GC roots.
12395         * except.c (mark_func_eh_entry): New function.
12396         (mark_eh_node): Mark false_label and rethrow_label.
12397         (init_eh): Add more GC roots.
12398         * function.c (free_after_compilation): Take decl as a paramter.
12399         Call free_stmt_status.
12400         (mark_function_state): Don't assume x_parm_reg_stack_loc is
12401         non-NULL.
12402         * function.h (free_after_compilation): Change prototype.
12403         (free_varasm_status): Likewise.
12404         (free_emit_status): Likewise.
12405         (free_stmt_status): New function.
12406         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
12407         Remove, replacing with ...
12408         (ggc_status): New structure.
12409         (ggc_chain): New variable.
12410         (init_gcc): Define.
12411         (ggc_push_context): New function.
12412         (ggc_pop_context): Likewise.
12413         (ggc_alloc_rtx): Adjust for use of ggc_chain.
12414         (ggc_alloc_rtvec): Likewise.
12415         (ggc_alloc_tree): Likewise.
12416         (ggc_alloc_string): Likewise.
12417         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
12418         (ggc_mark_tree): Give language-dependent code a chance to mark
12419         `x' nodes.
12420         (ggc_mark_tree_varray): Handle empty arrays.
12421         (ggc_collect): Adjust for use of ggc_chain.  Clear
12422         bytes_alloced_since_last_gc.
12423         * ggc.h (ggc_pop_context): New function.
12424         (ggc_push_context): Likewise.
12425         * print-tree.c (print_node): Don't print obstacks when GC'ing.
12426         * stmt.c (free_stmt_status): New function.
12427         (init_stmt_for_function): Clear last_expr_value.
12428         * toplev.c (rest_of_compilation): Always call free_after_compilation.
12429         Conditionalize call to ggc_collect.
12430         (main): Call init_ggc.
12431         * tree.c (push_obstacks): Do the push, even when GC'ing.
12432         (push_obstacks_nochange): Likewise.
12433         (pop_obstacks): Liekwise.
12434         * varasm.c (free_varasm_status): Take decl as a parameter.
12435
12436 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
12437
12438         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
12439         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
12440         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
12441         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
12442
12443 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
12444
12445         * pa/x-pa-mpeix: New file for the MPE port.
12446
12447         * pa/quadlib.asm: New file for long double support.
12448
12449         * configure.in: Add hppa1.0-*-mpeix for MPE port.
12450         * configure: Rebuilt.
12451
12452 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
12453
12454         * final.c (shorten_branches): Fix last change.
12455
12456 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
12457
12458         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
12459
12460 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
12461
12462         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
12463         details.
12464
12465 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12466
12467         * c-aux-info.c (concat): Don't define.
12468
12469         * cccp.c (my_strerror): Likewise.  All callers changed to use
12470         xstrerror instead.
12471         (do_include): Call xstrdup, not xmalloc/strcpy.
12472         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
12473         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
12474
12475         * collect2.c (my_strsignal): Likewise.  All callers changed to use
12476         strsignal instead.
12477         (locatelib): Call xstrdup, not xmalloc/strcpy.
12478
12479         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
12480
12481         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
12482
12483         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
12484
12485         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
12486
12487         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
12488
12489         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
12490
12491         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
12492         malloc/realloc.
12493         (find_all_handler_type_matches): Likewise.  Don't check return
12494         value.
12495         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
12496         xmalloc, not malloc.
12497         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
12498
12499         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
12500         (init_spec): Call xcalloc, not xmalloc/bzero.
12501         (set_spec): Call xstrdup, not save_string.
12502         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
12503         (find_a_file): Call xstrdup, not xmalloc/strcpy.
12504         (process_command): Call xstrdup, not save_string.
12505         (main): Call xcalloc, not xmalloc/bzero.
12506
12507         * gcov.c (xmalloc): Don't define.
12508         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
12509         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
12510         (output_data): Call xcalloc, not xmalloc/bzero.
12511
12512         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
12513
12514         * mips-tdump.c (xmalloc): Don't define.
12515         (print_symbol): Call xmalloc, not malloc.
12516         (read_tfile): Call xcalloc, not calloc.
12517
12518         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
12519         Don't define.  All callers of xfree/my_strsignal changed to use
12520         free/strsignal instead.
12521         (allocate_cluster): Call xcalloc, not calloc.
12522
12523         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
12524         Fix memory leak, free allocated memory.
12525
12526         * prefix.c (translate_name): Call xstrdup, not save_string.
12527         (update_path): Likewise.
12528
12529         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
12530
12531         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
12532         Don't define.  Callers of xfree/savestring2 changed to use
12533         free/concat instead.
12534
12535         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
12536         (init_elim_table): Likewise.
12537
12538         * resource.c (init_resource_info): Likewise.
12539
12540         * stupid.c (stupid_life_analysis): Likewise.
12541
12542         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
12543         (open_dump_file): Call concat, not xmalloc/strcpy/...
12544         (clean_dump_file): Likewise.
12545         (compile_file): Call xstrdup, not xmalloc/strcpy.
12546
12547 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
12548
12549         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
12550         * v850.c (v850_va_arg): New.
12551
12552 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12553
12554         * haifa-sched.c: Tidy comments.
12555
12556 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12557
12558         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
12559         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
12560         $(out_object_file)): Depend on ggc.h.
12561         * c-common.c: Include "ggc.h".
12562         (combine_strings): If doing GC, use ggc_alloc_string.
12563         * c-decl.c: Include "ggc.h".
12564         (ggc_p): Define with value 0.
12565         (mark_binding_level): New function.
12566         (init_decl_processing): Add GC roots.
12567         (mark_c_function_context): New function.
12568         (lang_mark_false_label_stack): New function.
12569         (lang_mark_tree): New function.
12570         (lang_cleanup_tree): New function.
12571         * c-lang.c: Include "ggc.h".
12572         (lang_init): Call c_parse_init.
12573         * c-lex.c: Include "ggc.h".
12574         (check_linenum): If doing GC, don't copy filenames to permanent
12575         obstack.
12576         * c-parse.in: Include "ggc.h".
12577         (c_parse_init): New function.
12578         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
12579         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
12580
12581         * except.c (mark_eh_state): Mark more state.
12582         * function.c (mark_function_state): Likewise.
12583         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
12584         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
12585         * toplev.c (mark_file_stack): New function.
12586         (compile_file): If doing GC, use ggc_alloc_string on input filename.
12587         (main): Add root for input_file_stack.
12588
12589         * i386.c: Include "ggc.h".
12590         (ix86_mark_machine_status): New function.
12591         (override_options): Set mark_machine_status.
12592
12593 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12594
12595         * tree.c (copy_node): Copy node contents also if doing GC.
12596
12597 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
12598
12599         * collect2.c (scan_libraries): Fix double-thinko :-).
12600
12601 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
12602
12603         * collect2.c (scan_libraries): Fix thinko.
12604
12605         * cse.c (delete_trivially_dead_insns): Do not skip the last
12606         insn if it is a real insn.
12607
12608 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
12609
12610         * Makefile.in (ggc-simple.o): Depend on hash.h.
12611         * ggc.h (ggc_add_tree_hash_table_root): Declare.
12612         (ggc_mark_tree_varray): Likewise.
12613         (ggc_mark_tree_hash_table): Likewise.
12614         * ggc-simple.c: Include hash.h.
12615         (ggc_mark_tree_hash_table_ptr): New function.
12616         (ggc_mark_tree_hash_table_entry): Likewise.
12617         (ggc_mark_tree_hash_table): Likewise.
12618         (ggc_add_tree_hash_table_root): Likewise.
12619         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
12620         rtx, when defining fields.
12621
12622 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
12623
12624         * profile.c (output_func_start_profiler): Remove apparently
12625         nonsensical call to start_sequence.
12626
12627 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
12628
12629         * clipper/clipper.c (clipper_va_start): Fix typos.
12630
12631         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
12632         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
12633         (spur_va_arg): New stub.
12634
12635         * configure.in: Comment out pyramid.
12636
12637 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
12638
12639         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
12640         don't conflict with the bits that win32, cygwin, and dgux
12641         defines.
12642
12643 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
12644                           Bernd Schmidt <bernds@cygnus.co.uk>
12645
12646         * integrate.c (function_cannot_inline_p): Do not inline
12647         functions with forced labels.
12648
12649 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
12650                           Bernd Schmidt <bernds@cygnus.co.uk>
12651                           Mark Mitchell  <mark@codesourcery.com>
12652
12653         * Makefile.in (ggc-simple.o): Depend on varray.h.
12654         (rtl.o): Depend on ggc.h.
12655         (genattrtab.o): Depend on ggc.h.
12656         (print-tree.o): Likewise.
12657         (fold-const.o): Likewise.
12658         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
12659         (make_insn_raw): Don't cache insns when GC'ing.
12660         (emit_insn_before): Likewise.
12661         (emit_insn_after): Likewise.
12662         (emit_insn): Likewise.
12663         (start_sequence): Use xmalloc to allocate the sequence_stack.
12664         (end_sequence): Add free to free it.
12665         (gen_sequence): Don't cache insns when GC'ing.
12666         (clear_emit_caches): Don't use sequence_element_free_list.
12667         (init_emit): Use xcalloc, not xmalloc+bzero.
12668         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
12669         * function.c (pop_function_context_from): Use free to free the
12670         fixup_var_refs_queue.
12671         (put_reg_into_stack): Allocate it with xmalloc.
12672         * genattrtab.c: Include ggc.h.
12673         (operate_exp): Don't use obstack_free when GC'ing.
12674         (simplify_cond): Likewise.
12675         (simplify_text_exp): Likewise.
12676         (optimize_attrs): Likewise.
12677         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
12678         GC'ing.
12679         (gencode): Generate a #include for ggc.h.
12680         * ggc-callbacks.c (ggc_p): Define it to zero.
12681         * ggc-none.c (ggc_p): Likewise.
12682         * ggc-simple.c: Include varray.h.
12683         (ggc_mark_tree_varray): New function.
12684         (ggc_add_tree_varray_root): Likewise.
12685         (ggc_mark_tree_varray_ptr): Likewise.
12686         * ggc.h (ggc_p): Declare.
12687         (varray_head_tag): Likewise.
12688         (ggc_add_tree_varray_root): Declare.
12689         * print-tree.c (print_node): Don't check for TREE_PERMANENT
12690         inconsistencies when GC'ing.
12691         * rtl.c: Include ggc.h.
12692         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
12693         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
12694         (rtx_free): Don't call obstack_free when GC'ing.
12695         * toplev.c (rest_of_compilation): Call ggc_collect after every
12696         pass, if GC'ing.
12697         * tree.c (push_obstacks): Do nothing, if GC'ing.
12698         (pop_obstacks_nochange): Likewise.
12699         (pop_obstacks): Likewise.
12700         (make_node): Use ggc_alloc_tree when GC'ing.
12701         (copy_node): Likewise.
12702         (get_identifier): Use ggc_alloc_string when GC'ing.
12703         (build_string): Likewise.
12704         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
12705         (tree_cons): Likewise.
12706         (build1): Likewise.
12707         (type_hash_canon): Don't call obstack_free when GC'ing.
12708
12709 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
12710
12711         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
12712         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
12713
12714 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
12715                           Bernd Schmidt <bernds@cygnus.co.uk>
12716                           Mark Mitchell  <mark@codesourcery.com>
12717
12718         * Makefile.in (stor-layout.o): Depend on ggc.h.
12719         (expr.o): Depend on ggc.h.
12720         (profile.o): Depend on ggc.h.
12721         (stor-layout.o): Depend on ggc.h.
12722         * emit-rtl.c (init_emit_once): Add gc roots.
12723         * expr.c: Include ggc.h.
12724         (emit_block_move): Add gc roots.
12725         (clear_storage): Likewise.
12726         * expr.h (init_stor_layout_once): New function.
12727         * profile.c: Include ggc.h.
12728         (init_arc_profiler): profiler_label is a root.
12729         * scan.c (make_sstring_space): Trust xrealloc to function
12730         correctly with first parameter NULL.
12731         * stor-layout.c: Include ggc.h.
12732         (set_sizetype): Add gc root.
12733         (init_stor_layout_once): New function.
12734         * toplev.c (compile_file): Call it.
12735
12736 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
12737                           Bernd Schmidt <bernds@cygnus.co.uk>
12738                           Mark Mitchell  <mark@codesourcery.com>
12739
12740         * Makefile.in (tree.o): Depend on ggc.h.
12741         (varasm.o): Likewise.
12742         (function.o): Likewise.
12743         (stmt.o): Likewise.
12744         (except.o): Likewise.
12745         (optabs.o): Likewise.
12746         (emit-rtl.o): Likewise.
12747         * emit-rtl.c: Include ggc.h.
12748         (sequence_element_free_list): Remove, and all references.
12749         (mark_sequence): New functions.
12750         (mark_emit_state): New function.
12751         * except.c: Include ggc.h.
12752         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
12753         (mark_tree_label_node): New functions.
12754         (mark_eh_state): New function.
12755         * function.c: Include ggc.h.
12756         (mark_temp_slot, mark_function_chain): New functions.
12757         (mark_function_state): New function.
12758         (init_function_once): New function.
12759         * function.h (init_function_once): New function.
12760         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
12761         * ggc.h (label_node): Declare.
12762         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
12763         (lang_mark_false_label_stack): New function.
12764         (mark_temp_slot): Remove declaration.
12765         (mark_function_chain): Likewise.
12766         (mark_eh_state): Adjust prototype.
12767         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
12768         Likewise.
12769         * optabs.c: Include ggc.h.
12770         (mark_optab): New function.
12771         (init_optabs): Add gc roots.
12772         * stmt.c: Include ggc.h.
12773         (mark_cond_nesting, mark_loop_nesting): New functions.
12774         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
12775         (mark_stmt_state): New function.
12776         * toplev.c (compile_file): Call init_function_once.
12777         * tree.c: Include ggc.h.
12778         (type_hash): Move declaration earlier in file.
12779         (TYPE_HASH_SIZE, type_hash_table): Likewise.
12780         (init_obstacks): Add gc roots.
12781         (mark_type_hash): New function.
12782         * varasm.c: Include ggc.h.
12783         (mark_pool_constant): New function.
12784         (mark_varasm_state): New function.
12785
12786 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12787
12788         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
12789
12790 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
12791
12792         * c-decl.c (struct language_function): Renamed from struct c_function.
12793         Delete elt NEXT.
12794         (c_function_chain): Delete.
12795         (push_c_function_context): New arg F.  Don't warn about nested
12796         functions here.  Fill LANGUAGE elt of F.  Delete code to update
12797         c_function_chain.  Don't call push_function_context.
12798         (pop_c_function_context): New arg F.  Restore from there instead of
12799         from c_function_chain.  Don't call pop_function_context.  Clear out
12800         LANGUAGE field of F when done.
12801         * c-lang.c: Include "function.h"
12802         (lang_init): Initialize save_lang_status and restore_lang_status.
12803         * c-parse.in (nested_function, nested_function_notype): Warn about
12804         nested functions.  Call push_function_context/pop_function_context
12805         instead of the _c_ variants.
12806         * c-tree.h (push_c_function_context, pop_c_function_context): Update
12807         prototype.
12808         * Makefile.in (c-lang.o): Update dependencies.
12809
12810         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
12811         regno_pointer_flag, regno_pointer_align.
12812         (gen_reg_rtx): Use xrealloc to enlarge them.
12813         (free_emit_status): New function.
12814         * function.c (mark_machine_status, mark_lang_status): New variables.
12815         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
12816         in some bits from assign_stack_local.  All callers changed to use new
12817         name.
12818         (assign_stack_local): Just call assign_stack_local_1.
12819         (free_after_compilation): New function.
12820         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
12821         (trampoline_address): Likewise.
12822         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
12823         (prepare_function_start): Explicitly clear some more variables.
12824         * function.h (struct function): New elt can_garbage_collect.
12825         (mark_machine_status, mark_lang_status): Declare variables.
12826         (free_after_compilation, free_emit_status, free_varasm_status,
12827         init_varasm_status): Declare functions.
12828         * toplev.c (rest_of_compilation): Call free_after_compilation when
12829         done with the current function.
12830         * varasm.c (free_varasm_status): New function.
12831
12832 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
12833
12834         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
12835         (EXPAND_BUILTIN_VA_ARG): Define.
12836         * sparc.c (sparc_va_start): New.
12837         (sparc_va_arg): New.
12838
12839 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12840
12841         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
12842
12843 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12844
12845         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
12846
12847 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
12848
12849         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
12850         (OBJS): Add $(GGC).
12851         (ggc-callbacks.o): New target.
12852         * ggc-callbacks.c: New file.
12853
12854 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12855
12856         * expr.h: Collapse individual optab and libfunc vars to arrays.
12857         (optab_index, libfunc_index): New enumerations.
12858         (optab_table, libfunc_table): New arrays.
12859         Add accessor macros for both.
12860
12861         * optabs.c (optab_table, libfunc_table): New.
12862         Delete declarations for individual optab and libfunc vars.
12863
12864 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
12865
12866         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
12867
12868 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
12869
12870         * Makefile.in (GGC, GGC_LIB): New.
12871         (HOST_RTL): Include ggc-none.o.
12872         (ggc-simple.o): New target.
12873         (ggc-none.o): Likewise.
12874         * tree.h (tree_common): Add gc_mark.
12875         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
12876         (struct rtvec_def): Add gc_mark.
12877         * emit-rtl.c (global_rtl): Update static initializers to contain
12878         enough initializers.
12879         * ggc.h, ggc-none.c, ggc-simple.c: New files.
12880         * toplev.c (gc_time): New variable.
12881         (all_time): New variable.
12882         (compile_file): Print gc time.
12883         (print_time): Calculate percentage of the whole.
12884
12885 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
12886
12887         Change obstack memory management and varasm constant pool handling so
12888         that nested functions are treated like any other functions.
12889         * function.c (init_machine_status): New variable.
12890         (push_function_context_to): Set contains_functions for the outer
12891         function.  Don't call save_varasm_status.
12892         (pop_function_context_from): Don't call restore_varasm_status.  Don't
12893         set current_function_contains_functions.
12894         (prepare_function_start): Call init_varasm_status rather than
12895         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
12896         is non-null.
12897         * function.h (struct function) Add field varasm.  Delete fields
12898         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
12899         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
12900         (init_machine_status): Declare.
12901         (save_varasm_status, restore_varasm_status): Delete declarations.
12902         (save_tree_status, restore_tree_status): Delete last argument.
12903         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
12904         code.  All callers changed.
12905         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
12906         save_constants_in_decl_trees, restore_constants, save_constants,
12907         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
12908         functions.
12909         (inlining): New variable.
12910         (reg_map, label_map, insn_map, orig_asm_operands_vector,
12911         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
12912         variables.
12913         (save_for_inline_nocopy): Don't save constants.
12914         Don't set inl_emit field in current_function.
12915         (expand_inline_function): Use emit field, not inl_emit, of the inlined
12916         function.  Set new variable inlining before
12917         calling copy_rtx_and_substitute.
12918         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
12919         constant pool references if inlining is nonzero.
12920         Delete ADDRESS and (most of the) CONST cases.
12921         (output_inline_function): Save and restore current_function/
12922         current_function_decl.  Delete restore_constants code.  Don't call
12923         init_const_rtx_hash_table.
12924         * output.h (init_const_rtx_hash_table): Don't declare.
12925         * rtl.h (struct function): Declare.
12926         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
12927         * toplev.c (rest_of_compilation): Don't treat nested functions or
12928         functions containing them specially.  Delete all code to deal with
12929         save_for_inline_copying.
12930         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
12931         inline_obstacks): Delete variables.
12932         (save_tree_status): Lose arg CONTEXT.  All callers changed.
12933         Simply allocate a new function_maybepermanent_obstack for the new
12934         function, delete all the special cases.
12935         Don't save inline_obstacks.
12936         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
12937         Delete special handling for function_maybepermanent_obstack; simply
12938         free it if empty.
12939         Don't restore inline_obstacks.
12940         (permanent_allocation):  Delete code that frees inline_obstacks.
12941         (print_inline_obstack_statistics): Delete function.
12942         (dump_tree_statistics): Don't call it.
12943         * varasm.c (struct varasm_status): New.
12944         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
12945         last_pool, pool_offset, const_double_chain): Delete global
12946         variables, replace with accessor macros.
12947         (immed_double_const): Don't walk const_double_chain outside a
12948         function, but don't treat nested functions specially anymore.
12949         (immed_real_const_1): Likewise.
12950         (clear_const_double_mem): Don't treat nested functions specially.
12951         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
12952         (save_varasm_status, restore_varasm_status): Delete functions.
12953         (init_varasm_status): New function.
12954         (force_const_mem): Don't treat nested functions specially.
12955         (find_pool_constant): Accept new arg F, search for constants in
12956         that function's pool rather than the current one.  All callers
12957         changed.
12958         (get_pool_constant_for_function, get_pool_mode_for_function): New
12959         functions.
12960
12961         * i386.c (init_386_machine_status): New function, mostly from
12962         clear_386_stack_locals.
12963         (struct machine_functions): Rename element names to avoid name
12964         clashes.
12965         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
12966         macros, replacing global variables.
12967         (clear_386_stack_locals, save_386_machine_status,
12968         restore_386_machine_status): Delete functions.
12969         (override_options): Initialize init_machine_status.
12970         * i386.h (INIT_EXPANDERS): Delete macro.
12971         (save_386_machine_status, restore_386_machine_status,
12972         clear_386_stack_locals): Delete declarations.
12973
12974 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12975
12976         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
12977         (doloop_begin):  Simplify pattern and use emit_jump_insn.
12978         (doloop_end): Simplify pattern, switch operand order,
12979         and use emit_jump_insn.
12980
12981 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
12982
12983         * function.h (struct function): Add new element LANGUAGE.
12984         (save_lang_status): Declare new variable.
12985         (restore_lang_status): Likewise.
12986         * function.c (save_lang_status): Define.
12987         (restore_lang_status): Likewise.
12988         (push_function_context_to): Call language-specific save function.
12989         (pop_function_context_from): Call language-specific restore function.
12990
12991 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
12992
12993         * i386.md (movsf_1): Check REG_P before use of REGNO.
12994         (movdf_1): Likewise.
12995         (movxf_1): Likewise.
12996         (extendsfdf2): Likewise.
12997         (extendsfxf2): Likewise.
12998         (extenddfxf2): Likewise.
12999
13000 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13001
13002         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
13003         constants into memory.
13004         (c4x_shiftable_constant): New function.
13005         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
13006         (c4x_shiftable_constant): Declare.
13007         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
13008         ashlqi3_noclobber): Add new patterns and associated splitters.
13009
13010 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
13011
13012         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
13013         * dwarf2out.c (dwarf2out_frame_init): Likewise.
13014         * final.c (shorten_branches): Likewise.
13015         * global.c (global_alloc): Likewise.
13016         * haifa-sched.c (build_control_flow): Likewise.
13017         * stmt.c (check_for_full_enumeration_handling): Likewise.
13018         (estimate_case_costs): Likewise.
13019
13020 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
13021
13022         * rtl.h (RTL_CHECKC2): Fix typo in last change.
13023
13024 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
13025
13026         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
13027         (recompute_reg_usage): Likewise.
13028         * rtlanal.c (find_regno_fusage): Likewise.
13029
13030         * rtl.c (rtl_check_failed_code1): New function.
13031         (rtl_check_failed_code2): New.
13032         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
13033         (RTL_CHECKC1, RTL_CHECKC2): New.
13034         (XC*): New accessor macros.
13035         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
13036         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
13037         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
13038         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
13039         (TRAP_*, RANGE_INFO_*): Likewise.
13040
13041 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13042
13043         * Makefile.in (tlink.o): Don't depend on toplev.h.
13044
13045         * collect2.c (c_file, o_file, export_file, import_file, ldout,
13046         output_file, nm_file_name, ldd_file_name, strip_file_name,
13047         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
13048         add_prefix, prefix_from_env, prefix_from_string, do_wait,
13049         fork_execute, maybe_unlink, add_to_list,
13050         extract_init_priority, write_list, dump_list,
13051         dump_prefix_list, write_list_with_asm, write_c_file,
13052         write_c_file_stat, write_c_file_glob, scan_prog_file,
13053         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
13054         ignore_library, extract_string, notice, dump_file, target_machine,
13055         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
13056         read_file, print_load_command): Constify a char*.
13057         (fdopen, error, fatal, fatal_perror): Don't prototype.
13058         (my_strerror): Remove.  All callers use xstrerror instead.
13059         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
13060         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
13061         to xcalloc/strcpy/strcat/...  to one call to concat.
13062         (main, scan_prog_file, scan_libraries): Use an intermediate
13063         `const char **' to build an argv array.
13064         (mapfile, libselect, libcompare, locatelib): Add prototypes.
13065
13066         * collect2.h (collect_execute, collect_wait, dump_file,
13067         file_exists): Constify a char*.
13068         (ldout, c_file_name, temporary_obstack, permanent_obstack,
13069         temporary_firstobj, vflag, debug): Add extern declarations.
13070         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
13071
13072         * tlink.c: Don't include toplev.h.
13073         (vflag, debug, ldout, c_file_name, temporary_obstack,
13074         permanent_obstack, temporary_firstobj): Don't declare.
13075         (tlink_execute, frob_extension, symbol_hash_lookup,
13076         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
13077         recompile_files, read_repo_files, demangle_new_symbols,
13078         scan_linker_output): Constify a char*.
13079         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
13080         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
13081
13082 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
13083
13084         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
13085         (relative) rather than jsr (absolute) subroutine call insns.
13086         * config/m68k/m68k-coff.h: Ditto.
13087
13088 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
13089
13090         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
13091         now rework these too.
13092         (arm_reorg): If an insn can't reach the end of the current pool,
13093         ensure that we emit that pool before the insn.
13094
13095 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
13096
13097         * tlink.c (scan_linker_output): Skip the initial underscore in
13098         a mangled name if appropriate.
13099
13100 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13101
13102         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
13103         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
13104         error_with_ivar, gen_declarator, create_builtin_decl,
13105         my_build_string, generate_descriptor_table, generate_ivars_list,
13106         generate_dispatch_table, check_protocols, TAG_GETCLASS,
13107         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
13108         dump_base_name, lang_decode_option, build_encode_expr,
13109         start_class, finish_class, encode_pointer, really_start_method,
13110         gen_declaration, dump_interface, handle_class_ref, handle_impent):
13111         Constify.
13112         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
13113         Add static prototypes.
13114         (build_objc_string_decl, build_selector_reference_decl,
13115         encode_bitfield, build_class_reference_decl): Remove unused
13116         parameter, all callers changed.
13117         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
13118         (objc_printable_name): Likewise.  Change second parameter to type int.
13119         (init_objc): Use memcpy, not bcopy, to avoid casts.
13120
13121 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
13122
13123         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
13124         reg notes on a deleted insn.
13125         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
13126
13127 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
13128
13129         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
13130
13131 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13132
13133         * stmt.c (expand_asm_operands): Fix index into inout_mode when
13134         reading it.
13135
13136 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
13137
13138         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
13139         * tm.texi (MD_ASM_CLOBBERS): Document it.
13140
13141 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
13142
13143         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
13144         * except.c (expand_rethrow): Remove unused variable.
13145         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
13146         * flow.c (replace_insns): Likewise.
13147         (create_edge_list, verify_edge_list): Likewise.
13148         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
13149
13150         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
13151         is special code to run.
13152         (main): Don't define operands to emit_operand.
13153         * genrecog.c (main): Don't emit an empty peephole2_insn function.
13154
13155         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
13156
13157         * alpha/alpha.h (normal_memory_operand): Declare.
13158         (reg_no_subreg_operand): Declare.
13159         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
13160
13161 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
13162
13163         * c-parse.in (compstmt_primary_start): New, broken out of first
13164         part of compstmt handling in primary.
13165         (primary): Use it.  Add an error clause.
13166         (compstmt_nostart): Renamed from compstmt; remove all
13167         initial invocations of compstmt_start.
13168         (compstmt): New.
13169
13170 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
13171
13172         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
13173         needed.
13174
13175 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
13176
13177         * combine.c (simplify_shift_const): Remove extra semicolon.
13178         * dwarf2out.c (remove_AT): Likewise.
13179         * expmed.c (expand_mult): Likewise.
13180         * gcov.c (create_program_flow_graph): Likewise.
13181         * reorg.c (mostly_true_jump): Likewise.
13182
13183 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
13184
13185         * fold-const.c (fold_range_test): Do not try to fold the range
13186         test if the rhs or lhs has side effects.
13187
13188         * combine.c (simplify_rtx): Recognize another case of a synthesized
13189         sign extension.
13190
13191         * varasm.c (mark_constant_pool): When marking indirect references,
13192         only look at SYMBOL_REFs.
13193
13194         * except.c (expand_fixup_region_end): Do not peek at
13195         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
13196
13197 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
13198
13199         * flags.h: New variables align_loops, align_loops_log,
13200         align_jumps, align_jumps_log, align_labels, align_labels_log,
13201         align_functions, align_functions_log.
13202         * toplev.c: Define them.
13203         (f_options): Handle -falign-* when they have no argument.
13204         (main): Add logic to set variables for -falign-functions,
13205         -falign-jumps, -falign-labels, -falign-loops.
13206         Make it -fsched-verbose=<n> and -finline-limit=<n>.
13207         (display_help): Change help to match options.
13208         * final.c (LABEL_ALIGN): Default to align_labels_log.
13209         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
13210         (LOOP_ALIGN): Default to align_loops_log.
13211         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
13212         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
13213         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
13214         * varasm.c (assemble_start_function): Handle align_functions.
13215
13216         * config/sparc/sparc.h: Don't declare sparc_align_*.
13217         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
13218         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
13219         sparc.c.
13220         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
13221         it's a promise.
13222         * config/sparc/sparc.c: Delete sparc_align_loops,
13223         sparc_align_jumps, sparc_align_funcs and the corresponding string
13224         variables.
13225         (sparc_override_options): Default align_functions on ultrasparc.
13226         Delete -malign-* handling.
13227
13228         * config/mips/mips.c (override_options):  On 64-bit targets,
13229         try to align code to 64-bit boundaries.
13230         (print_operand): New substitution, %~,
13231         which aligns labels to align_labels_log.
13232         * config/mips/mips.md (div_trap_normal): Use %~.
13233         (div_trap_mips16): Likewise.
13234         (abssi): Likewise.
13235         (absdi2): Likewise.
13236         (ffssi2): Likewise.
13237         (ffsdi2): Likewise.
13238         (ashldi3_internal): Likewise.
13239         (ashrdi3_internal): Likewise.
13240         (lshrdi3_internal): Likewise.
13241         (casesi_internal): Likewise.
13242
13243 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
13244
13245         Merge new ia32 backend from the branch!
13246
13247         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
13248         See ChangeLog.P2 on new_ia32_branch for details.
13249
13250         * rtl.h (stack_regs_mentioned_p): Delete prototype.
13251         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
13252         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
13253         * i386/gas.h (ASM_FILE_START): Define.
13254         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
13255         for name change of ix86_valid_decl_attribute_p.
13256         (i386_pe_valid_type_attribute_p): Similarly.
13257
13258 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
13259
13260         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
13261         to step through CC modes.
13262
13263 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13264
13265         * regmove.c (fixup_match_1): Don't move INSN in front of P if
13266         it would end up in the shadow of a live flags regsiter.
13267
13268 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13269
13270         * reload1.c: Fix many indentation problems.
13271         * reload.c: Likewise.
13272
13273 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
13274
13275         * alias.c (non_local_reference_p): Constify fmt.
13276
13277 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
13278
13279         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
13280
13281 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
13282
13283         * cse.c (delete_trivially_dead_insns): Do not delete stores to
13284         the internal_arg_pointer.
13285
13286 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
13287
13288         Merge peephole2 from new_ia32_branch:
13289         * Makefile.in (STAGESTUFF): Add *.peephole2.
13290         (mostlyclean): Likewise.
13291         (recog.o): Depend on resource.h.
13292
13293         * final.c (peephole): Conditionalize decl on HAVE_peephole.
13294         (final_scan_insn): Likewise for the invocation of peephole.
13295         * genconfig.c (main): Look for peephole and peephole2 patterns.
13296         Emit HAVE_peephole* accordingly.
13297         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
13298         * flags.h (flag_peephole2): Declare.
13299         * toplev.c: New pass peephole2.  New flag -fpeephole2.
13300
13301         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
13302         * gencodes.c (main): Likewise.
13303         * genextract.c (main): Likewise.
13304         * genoutput.c (main): Likewise.
13305         * genemit.c (max_operand_1): Look for the max scratch operand.
13306         (gen_rtx_scratch): New.
13307         (gen_exp): Use it, and pass on new arg subroutine_type.
13308         (gen_expand): Take max scratch into account.
13309         (gen_split): Emit peephole2 functions.
13310         (output_peephole2_scratch): New.
13311         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
13312         * genrecog.c (routine_type): Add PEEPHOLE2.
13313         (IS_SPLIT): New.
13314         (make_insn_sequence): Match outer parallel for peep2.  Discard
13315         top level scratches and dups.
13316         (add_to_sequence): New args insn_type and top.  Update all callers.
13317         Handle toplevel peep2 matching insns.
13318         (write_subroutine): Handle peep2.
13319         (write_tree_1): Likewise.
13320         (write_tree): Likewise.
13321         (main): Likewise.
13322         (change_state): New arg afterward.  Update all callers.
13323         Handle matching separate insns.
13324         * recog.c (recog_next_insn): New.
13325         (peephole2_optimize): New.
13326         * rtl.def (DEFINE_PEEPHOLE2): New.
13327         * resource.c (find_free_register): New argument last_insn.  Use it
13328         to find a register available through the entire span.
13329         * resource.h (find_free_register): Update prototype.
13330
13331 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
13332
13333         * i386.c (output_strlen_unroll): Don't write xops[7]
13334         label if it wasn't set.
13335
13336 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
13337
13338         * cpplib.c (struct directive): Const-ify name pointer and
13339         function pointer prototype.
13340         (validate_else, do_define, do_line, do_include, do_undef,
13341         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
13342         do_elif, do_endif, do_sccs, do_assert, do_unassert,
13343         do_warning): Const-ify second arg.
13344         (directive_table): Mark const.  Reorder entries by frequency
13345         of usage, record statistics.
13346
13347 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
13348
13349         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
13350         bounds- check RTL accesses if --enable-checking.
13351         (RTVEC_ELT): Bounds check if --enable-checking.
13352         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
13353         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
13354         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
13355         GET_NUM_ELEM.
13356         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
13357         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
13358
13359         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
13360         (NOTE_SOURCE_FILE): Use X0STR.
13361         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
13362         MEM_ALIAS_SET): Use X0INT.
13363         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
13364         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
13365         Use X0EXP.
13366         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
13367         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
13368         (rtl_check_failed_bounds, rtl_check_failed_type1,
13369         rtl_check_failed_type2, rtvec_check_failed_bounds): New
13370         functions.
13371         (fancy_abort): Fix comment.
13372
13373         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
13374         (cse_insn): Decrement LABEL_NUSES for jump target before
13375         deleting jump insn.
13376         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
13377         * final.c (alter_subreg): Compute regno before changing x to
13378         REG; set REGNO(x) after changing it.
13379         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
13380         notes containing CONST_INTs.
13381         (delete_eh_regions): Use NOTE_EH_HANDLER.
13382         * function.c (put_reg_into_stack): Make reg a MEM before
13383         initializing it.
13384         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
13385         delete insn.
13386         (gen_mem_addressof): Make reg a MEM before initializing it.
13387         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
13388         X0WINT.
13389         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
13390         deleting an insn, not after.
13391         (block_alloc): Only look at PATTERN(insn) if we have to, and
13392         only if it's format class 'i'.
13393         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
13394         CONST_INT before using its INTVAL.
13395         * print-rtl.c (print_rtx): Use X0STR.
13396         * regmove.c (fixup_match_1): Don't look at PATTERN of
13397         non-class-'i' insn chain elements.
13398         * reload.c (loc_mentioned_in_p): Take address of
13399         in->fld[1].rtx directly.
13400         * reload1.c (reload): Change reg to a MEM before initializing
13401         it.
13402         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
13403         have no names.
13404         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
13405
13406 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
13407
13408         * config/mips/mips.c (machine_dependent_reorg): Force a
13409         barrier to output the local constant pool if a barrier hasn't
13410         been found at a natural point in the instruction stream.
13411
13412 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13413
13414         * c-parse.in (language_string): Constify.
13415
13416         * dwarf2out.c (language_string): Remove declaration.
13417
13418         * dwarfout.c (language_string): Likewise.
13419
13420         * toplev.c (language_string, init_parse, finish_parse): Likewise.
13421
13422         * tree.h (language_string, init_parse, finish_parse): Declare.
13423
13424         * i386/sun386.h (language_string): Remove declaration.
13425
13426         * mips.h (language_string): Likewise.
13427
13428         * nextstep.h (language_string): Likewise.
13429
13430         * nextstep21.h (language_string): Likewise.
13431
13432         * rs6000.c (language_string): Likewise.
13433
13434 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13435
13436         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
13437         (getpwd.o): Remove target.
13438
13439         * getpwd.c: Delete file.  Its in libiberty now.
13440
13441         * dbxout.c (getpwd): Don't prototype.
13442         * dwarf2out.c (getpwd): Likewise
13443         * dwarfout.c (getpwd): Likewise
13444         * final.c (getpwd): Likewise.
13445         * protoize.c (getpwd): Likewise.
13446
13447 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13448
13449         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
13450
13451 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
13452
13453         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
13454         mark_set_resources.
13455
13456 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
13457
13458         * fixinc/Makefile.in (subdir): New.
13459         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
13460         (Makefile): New.
13461
13462 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
13463
13464         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
13465         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
13466         be shared.
13467
13468         * invoke.texi: Fix typo.
13469
13470         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
13471         changed.  Handle autoincrement addressing modes.
13472
13473         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
13474         just like we would the virtual incoming args register when
13475         integrating.
13476
13477 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
13478
13479         * rs6000.h (ASM_FILE_START): Specify complete filename, including
13480         path, in .file directive.
13481
13482 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
13483
13484         * gcc.texi (External Bugs): Remove obsolete note about Perl on
13485         SunOS.
13486
13487 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
13488
13489         * stdbool.h: Make the typedef name _Bool, with bool a #defined
13490         alias.
13491
13492 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13493
13494         * tree.c (tree_code_name): Constify a char*.
13495
13496         * tree.h (tree_code_name, decl_printable_name): Likewise.
13497
13498         * function.h (struct function): Likewise.
13499
13500         * toplev.c (decl_name, decl_printable_name): Likewise.
13501
13502         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
13503
13504         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
13505         (init_objc): Remove function pointer cast.
13506
13507 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
13508
13509         * pa.md (interspace_jump): New pattern.
13510         (builtin_longjmp): New expander.
13511
13512 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
13513
13514         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
13515         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
13516         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
13517
13518 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
13519
13520         * jump.c (delete_prior_computation): Also check calls
13521         to constant functions.  Don't bother checking for a
13522         REG_UNUSED note before adding it.
13523         (delete_computation): Handle multi-word hard registers
13524         when synthesizing missing REG_DEAD notes for a register
13525         which is both set and used by an insn.
13526
13527 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13528
13529         * loop.c (this_loop_info): New variable.
13530         (loop_has_call, loop_has_volatile, loop_has_tablejump,
13531         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
13532         All uses updated.
13533         (prescan_loop, strength_reduce): New argument loop_info.  All callers
13534         updated.
13535         (scan_loop): New variable loop_info, initialise to address of
13536         this_loop_info.
13537         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
13538         Delete variable loop_has_multiple_exit targets and replace with
13539         field in this_loop_info.
13540         (find_and_verify_loops): Rename this_loop to this_loop_num.
13541         (strength_reduce): Delete loop_iteration_info.  Replace variable
13542         loop_info with function argument of same name.
13543         (insert_bct): Rework test for loop being completely unrolled.
13544
13545         * loop.h (struct loop_info): New fields num, loops_enclosed,
13546         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
13547         has_indirect_jump, and cont.  Redefine use of unroll_number.
13548         (loop_unroll_number): Delete.
13549
13550         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
13551         field of loop_info.
13552         (loop_iterations): Delete variable vtop and instead use
13553         loop_info->vtop computed in prescan_loop.
13554
13555 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
13556
13557         * fix-header.c (main): Do not pass a null pointer to strcmp.
13558
13559 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
13560
13561         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
13562         filenames.
13563         * configure: Rebuilt.
13564
13565 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
13566
13567         * jump.c (jump_optimize_1): Do not delete assignments to
13568         internal_arg_pointer.
13569         * cse.c (delete_trivially_dead_insns): Always consider a set of
13570         the internal_arg_pointer live.
13571
13572 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
13573
13574         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
13575         (update_life_info) [REG_WAS_0]: Search the original insns rather
13576         than the new insns for the note.  Fix typos finding note_dest.
13577         If no dest found, discard the note rather than abort.
13578         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
13579         (replace_insns): Remove the old insn list after update_life_info
13580         not before.
13581
13582 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
13583
13584         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
13585         sched_analyze_insn.
13586         (sched_analyze_1): Let add_dependence care for not adding dups.
13587         (sched_analyze_2): Likewise.
13588         (add_branch_dependences): Likewise.
13589
13590 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
13591
13592         * i386/winnt.c (export_list): New type.
13593         (exports_head): Rename to
13594         (export_head):  this.
13595         (i386_pe_record_exported_symbol): Add is_data flag.
13596         (i386_pe_asm_file_end): Emit directive for exported variables.
13597         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
13598         prototype.
13599         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
13600         (ASM_DECLARE_OBJECT_NAME): Likewise.
13601         (ASM_DECLARE_FUNCTION_NAME): Likewise.
13602         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13603
13604 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
13605
13606         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
13607
13608         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
13609         operand.
13610
13611 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
13612
13613         * config/openbsd.h: Define SET_ASM_OP.
13614         * tm.texi: cross-reference SET_ASM_OP in the index.
13615
13616 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
13617
13618         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
13619         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
13620         and class_narrowest_mode at compile time.  Kill init_rtl.
13621         Mark rtx_length, mode_class, mode_size, mode_unit_size,
13622         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
13623         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
13624         EXTRA_CC_NAMES.
13625         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
13626         format.
13627         * rtl.h: Declare rtx_length and rtx_format as const.
13628         * machmode.def: Define CC().  Use CC() to define CCmode.  If
13629         EXTRA_CC_MODES is defined, expand it here.
13630         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
13631         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
13632         const.  Kill all references to EXTRA_CC_MODES.
13633
13634         * toplev.c: Don't prototype or call init_rtl.
13635         * optabs.c: Don't call init_mov_optab.
13636         * genemit.c: Don't generate init_mov_optab.  Don't call
13637         init_rtl.
13638         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
13639         here.
13640         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
13641         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
13642         genrecog.c: Don't call init_rtl.
13643
13644         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
13645         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
13646         definition of EXTRA_CC_MODES.
13647
13648         * md.texi: Kill ref to EXTRA_CC_NAMES.
13649         * tm.texi: Document new way to define EXTRA_CC_MODES.
13650
13651         * genrecog.c: Do not look up the name of a define_split.
13652         (Unrelated bugfix.)
13653
13654 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
13655
13656         * config/v850/v850.md: Fix typo introduced by previous delta.
13657
13658 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13659
13660         * gcc.c (fatal): Make definition static to match prototype.
13661
13662 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13663
13664         * combine.c (get_last_value): Don't look for earlier sets if the last
13665         known set is somewhere in between the insns being combined.
13666
13667 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
13668
13669         * configure.in: Don't use shell ! to negate exit codes
13670         * configure: Regenerate
13671
13672 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
13673
13674         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
13675         the fact that ALIGN is measured in bits, not bytes.
13676
13677 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
13678
13679         * errors.c: New file; defines functions error, warning, and
13680         fatal, variables have_error and progname.
13681         * errors.h: New file; prototypes and decls for stuff in errors.c.
13682
13683         * Makefile: Add rules to build errors.o and
13684         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
13685         genopinit, genrecog, genextract, genpeep, genattr, and
13686         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
13687         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
13688         genpeep.o, genattr.o, and genoutput.o.
13689
13690         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
13691         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
13692         define or prototype fatal.  Set progname at beginning of main.
13693         * genoutput.c:  Likewise, and don't define or prototype error
13694         either.
13695
13696         * c-typeck.c (c_expand_start_case): Return immediately if exp
13697         is an ERROR_MARK.
13698         * fold-const.c (operand_equal_p): Return immediately if arg1
13699         or arg0 are ERROR_MARKs.
13700         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
13701         fields of type ERROR_MARK when calculating if the record can
13702         go in a register.
13703
13704 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
13705         with much help from Jeffrey A Law and Richard Henderson
13706
13707         * i386.md: In the 6 insns which call output_fix_trunc,
13708         earlyclobber operands[0].
13709
13710 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
13711
13712         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
13713         creating new registers.
13714
13715 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
13716
13717         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
13718         i386_reg_alloc_order, i386_regparm_string,
13719         i386_align_loops_string, i386_align_jumps_string,
13720         i386_align_funcs_string, i386_preferred_stack_boundary_string,
13721         and i386_branch_cost_string as type "const char *".
13722         * i386.c: Define all above strings as type "const char *".
13723
13724 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
13725
13726         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
13727         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
13728
13729 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
13730
13731         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
13732         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
13733
13734 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
13735
13736         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
13737         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
13738         (dwarf2out_line, dwarf2out_finish): Likewise.
13739         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
13740
13741 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13742
13743         * tree.c (lang_unsave_expr_now) : Correct return type.
13744         * tree.h (lang_unsave_expr_now) : Same.
13745
13746 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
13747
13748         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
13749         instead of duplicating code.
13750
13751 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13752
13753         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
13754
13755 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
13756
13757         * tree.h: fancy_abort always takes three args.
13758         * resource.c: Move include of system.h before toplev.h.
13759
13760 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
13761
13762         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
13763         as SYMBOL_REFs.
13764
13765 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
13766
13767         * system.h: Don't redefine abort or trim_filename.
13768         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
13769         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
13770         whether or not __FUNCTION__ is available.
13771         * tree.h: Duplicate rtl.h's definition of abort, for files
13772         that don't include rtl.h.  Delete all code to perform type
13773         checking with a compiler other than GCC.
13774         * varray.h: Delete all code to perform type checking with a
13775         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
13776         its arguments exactly once, using a statement expression.
13777         Adjust the VARRAY_<type> accessor macros to match.
13778         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
13779         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
13780         caller's location.  Define fatal_insn and fatal_insn_not_found
13781         as macros that use _fatal_insn and _fatal_insn_not_found.
13782         (fancy_abort, trim_filename): Kill prototypes.
13783
13784         * rtl.c (trim_filename): Move here from toplev.c.
13785         (fancy_abort): New function.
13786         (DIR_SEPARATOR): Provide default definition.
13787         * tree.c (tree_check_failed, tree_class_check_failed): Go
13788         through fancy_abort.
13789         (tree_check, tree_class_check, cst_or_constructor_check,
13790         expr_check): Delete.
13791         * varray.c (varray_check_failed): New function.
13792         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
13793         _fatal_insn and _fatal_insn_not_found.  Go through
13794         fancy_abort.
13795         (trim_filename, fancy_abort): Delete.
13796
13797         * builtins.c (expand_builtin_args_info): Report ICE with abort.
13798         * except.c (start_catch_handler): Report ICE with error/abort
13799         combo.
13800         * final.c (output_operand_lossage): Likewise.
13801         * flow.c (verify_flow_info): Likewise.
13802
13803         * gcc.c: Prototype fatal.
13804         * gengenrtl.c: Undef abort after including rtl.h not system.h.
13805         * genattr.c, genattrtab.c, genemit.c, genextract.c,
13806         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
13807         Don't define fancy_abort.
13808
13809 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
13810
13811         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
13812         canonization.
13813
13814 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
13815
13816         * m88k.h (VERSION_INFO2): Kill.
13817         (VERSION_STRING): Kill.
13818         (TM_RCS_ID): Kill.
13819         (VERSION_INFO1): Tidy.
13820         (TARGET_VERSION): Update.
13821         * m88k/dgux.h (VERSION_INFO2): Kill.
13822         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
13823         * m88k/luna.h (VERSION_INFO1): Tidy.
13824         * m88k/sysv4.h (VERSION_INFO1): Likewise.
13825         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
13826         (output_file_start): Adjust for death of VERSION_STRING.
13827
13828 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
13829
13830         * cpplib.c (detect_if_not_defined): New function.
13831         (do_if): Use it to detect potential once-only headers.
13832
13833 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
13834
13835         * c-common.c (combine_strings): Always set TREE_CONSTANT.
13836
13837 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
13838
13839         * combine.c (nonzero_bits) : Allow single-ly set registers to be
13840         anywere in the function only if they are pseudos and set before
13841         being used (not live at the start of the function).
13842         (num_sign_bit_copies) : Same.
13843         (get_last_value_validate) : Same.
13844         (get_last_value) : Same.
13845
13846 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
13847
13848         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
13849         where N and M are constant and N is an integer multiple of M.
13850
13851 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
13852
13853         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
13854         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
13855         sbitmap_union_of_preds): Add prototypes.
13856         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
13857         the intersection of successors with the new flow graph structures.
13858         (sbitmap_intersection_of_preds): New function to compute the
13859         intersection of predecessors with the new flow graph structures.
13860         (sbitmap_union_of_succs): New function to compute the union of
13861         successors with the new flow graph structures.
13862         (sbitmap_union_of_preds): New function to compute the union of
13863         predecessors with the new flow graph structures.
13864         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
13865         (expr_reaches_here_p): Use edge and basic_block structures instead
13866         of s_preds and s_succs.
13867         (compute_cprop_avinout): Use new sbitmap routines.
13868         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
13869         of s_preds and s_succs.
13870         * flow.c (compute_flow_dominators): Compute dominators using
13871         edges and basic blocks instead of s_preds and s_succs.
13872
13873 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
13874
13875         * lists.c (unused_insn_list, unused_expr_list): New file for
13876         maintaining various types of lists. New statics for maintaining a
13877         cache of available INSN_LIST and EXPR_LIST nodes.
13878         (free_list): Static function for freeing a list of INSN/EXPR nodes.
13879         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
13880         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
13881         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
13882         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
13883         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
13884         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
13885         (free_INSN_LIST_node): Free an individual INSN_LIST node.
13886         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
13887         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
13888         (remove_dependence, free_pending_lists): Use new global routines.
13889         (flush_pending_lists, sched_analyze_insn): Use new global routines.
13890         (sched_analyze, compute_block_backward_dependences): Use new routines.
13891         (sched_analyze_1, sched_analyze_2): Use new routines.
13892         (schedule_insns): Use new global routines.
13893         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
13894         prototypes.
13895         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
13896         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
13897         prototypes.
13898         * toplev.c (rest_of_compilation): Initialize node cache.
13899         * Makefile.in (OBJS): Add lists.o to list of object files.
13900         (lists.o): Add dependancies.
13901
13902 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
13903
13904         * config/v850/v850.md: Fix compile time warning messages.
13905         * config/v850/v850.c: Fix compile time warning messages.
13906         * config/v850/v850.h: Fix compile time warning messages.
13907
13908 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13909
13910         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
13911         Remove unused prototype for `init_lengths'.
13912
13913 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13914
13915         * calls.c (emit_call_1): Mark parameter `stack_size' with
13916         ATTRIBUTE_UNUSED.
13917         (expand_call): Initialize variable `insn'.
13918         (emit_library_call): Likewise for variable `high_to_save'.
13919         (emit_library_call_value): Likewise.
13920         (store_one_arg): Likewise for variables `lower_bound' and
13921         `upper_bound'.
13922
13923         * combine.c (try_combine): Likewise for variables `i2_code_number'
13924         and `other_code_number'.
13925         (find_split_point): Likewise for variables `pos', `unsignedp' and
13926         `inner'.
13927         (simplify_if_then_else): Likewise for variables `op' and `c1'.
13928         (simplify_and_const_int): Remove unused variable `width'.
13929         (merge_outer_ops): Likewise.
13930
13931         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
13932         HOST_WIDE_INT' when comparing against one.
13933         (simplify_relational_operation): Likewise.
13934         (cse_insn): Initialize variables `src_eqv_volatile',
13935         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
13936
13937         * final.c (init_final): Constify parameter `filename'.
13938         (final_start_function): Mark parameter `optimize' with
13939         ATTRIBUTE_UNUSED.
13940         (profile_function): Likewise for parameters `first' and `optimize'.
13941         (output_source_line): Likewise for parameter `file'.
13942
13943         * integrate.c (subst_constants): Cast a value to `size_t' when
13944         comparing against one.
13945         (mark_stores): Initialize variable `mode'.  Cast a value to
13946         `size_t' when comparing against one.
13947
13948         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
13949
13950         * loop.c (move_movables): Initialize variable `first'.
13951         (strength_reduce): Likewise for variable `increment'.
13952         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
13953         value to `size_t' when comparing against one.
13954         (load_mems): Initialize variable `end_label'.
13955
13956         * output.h (init_final): Constify parameter.
13957
13958         * reload.c (decompose): Initialize variable `base'.
13959
13960         * reload1.c (reload): Likewise for variable `is_scalar'.
13961         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
13962         (choose_reload_regs): Initialize variable `mode'.
13963         (emit_reload_insns): Likewise for variable `store_insn'.
13964         (reload_cse_noop_set_p): Mark parameter `insn' with
13965         ATTRIBUTE_UNUSED.
13966         (reload_combine): Initialize variable `set'.
13967
13968         * unroll.c (unroll_loop): Likewise for variable `local_label'.
13969         (copy_loop_body): Cast a value to `size_t' when comparing against
13970         one.
13971
13972         * varasm.c (assemble_variable): Initialize variable `size_tree'.
13973         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
13974         (remove_from_pending_weak_list): Mark parameter `name' with
13975         ATTRIBUTE_UNUSED.
13976
13977 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
13978
13979         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
13980         gcse dump file.
13981
13982 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
13983
13984         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
13985         (ASM_DECLARE_FUNCTION_NAME): Define.
13986         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
13987         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
13988         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
13989         not already defined.
13990
13991 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13992
13993         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
13994         of n_popped when call/call_value are not defined.
13995
13996 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
13997
13998         * tm.texi: GNU CC -> GCC conversion.
13999         (CC1_SPEC): Indicate it is used for all language front ends.
14000
14001 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
14002
14003         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
14004         NOTE_INSN_EH_REGION_END correctly.
14005
14006 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
14007                           Jeff Law <law@cygnus.com>
14008
14009         * loop.c (strength_reduce): Automatically unroll loops if the
14010         unrolled loop size is smaller than the rolled loop size.
14011
14012         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
14013         and delete comment that code should be rewritten.
14014
14015 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
14016
14017         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
14018         as reachable.
14019
14020         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
14021
14022 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14023
14024         * fixinc/mkfixinc.sh: Don't fix uwin headers.
14025         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
14026         (LINK_SPEC): Add -u _main when building executables.
14027         (ASM_DECLARE_FUNCTION): Update from Cygwin.
14028         (ASM_FILE_END): Use the default for ix86-pe.
14029         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
14030
14031 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
14032
14033         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
14034         and ASM_CLOSE_PAREN are empty strings.
14035
14036 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
14037                           Geoffrey Keating <geoffk@cygnus.com>
14038
14039         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
14040         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
14041         (unprotoize.o): Ditto.
14042         (test-protoize-simple): Don't define STD_PROTO_DIR.
14043         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
14044         changes to make 'test-protoize-simple' pass.
14045         (STD_PROTO_DIR): Remove define.
14046         (STANDARD_EXEC_PREFIX): Supply default define.
14047         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
14048         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
14049         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
14050         (GET_ENV_PATH_LIST): New macro.
14051         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
14052         (do_processing): Initialize default_syscalls_dir using new
14053         macros.  Use it to initialize syscalls_absolute_filename.
14054
14055 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
14056
14057         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
14058         B into a register before emit_conditional_move.
14059
14060 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
14061
14062         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
14063         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
14064         multiplicand out of (+ (* a b) (* c d)).
14065
14066 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
14067                           Richard Henderson  <rth@cygnus.com>
14068
14069         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
14070         (new_insn_dead_notes): Likewise.
14071         (update_n_sets): Likewise.
14072         (update_flow_info): Move to flow.c, renamed to update_life_info;
14073         extend to handle multiple source insns.
14074         * flow.c: Include resource.h
14075         (unlink_insn_chain): New.
14076         (split_hard_reg_notes): New.
14077         (maybe_add_dead_note): New.
14078         (maybe_add_dead_note_use): New.
14079         (find_insn_with_note): New.
14080         (new_insn_dead_notes): New.
14081         (update_n_sets): New.
14082         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
14083         (maybe_remove_dead_notes): New.
14084         (update_life_info): New.
14085         (prepend_reg_notes): New.
14086         (replace_insns): New.
14087         * output.h (update_life_info): Declare.
14088         * recog.c (split_block_insns): Use update_life_info.
14089         * resource.c (find_free_register): Use reg_alloc_order, don't use
14090         fixed regs, make sure the mode is supported, don't use new regs.
14091         (reg_dead_p): New.
14092         * rtl.h (replace_insns): Declare.
14093
14094 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
14095
14096         * expr.c (expand_expr): Cope with COND_EXPRs with one
14097         non-returning branch.
14098
14099 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
14100
14101         * expr.c (store_expr): Always pass down the target, even when not
14102         doing CSE.
14103
14104 1999-08-24  Nick Clifton  <nickc@cygnus.com>
14105
14106         * configure.in: Define target_cpu_default for v850 targets.
14107         * configure: Regenerate
14108
14109         * config/v850/v850.h (TARGET_CPU_generic): Define.
14110         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
14111         addresses are 4 byte aligned.
14112
14113         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
14114         addresses.
14115
14116 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14117
14118         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
14119         (main): Add prototypes.
14120
14121         * genattrtab.c (substitute_address, write_const_num_delay_slots,
14122         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
14123         (write_attr_get): Emit prototypes along with function definition.
14124         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
14125         (write_complex_function): Emit static prototype along with
14126         function definition.
14127
14128         * genemit.c (gen_split): Emit prototypes along with function
14129         definition.
14130
14131         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
14132         Likewise for predicates and `insn_operand_predicate'.
14133         (process_template): Emit static prototype along with function
14134         definition.
14135
14136         * genrecog.c (make_insn_sequence): Constify a char*.  Add
14137         prototypes for get_split_*().
14138         (write_subroutine): Emit prototypes along with function
14139         definition.
14140
14141 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14142
14143         * gcse.c (find_avail_set): Follow chains of register-register copies.
14144         Use oprs_not_set_p to guarantee that the returned value can be
14145         substituted.
14146         (cprop_insn): Don't verify the return value of find_avail_set with
14147         oprs_not_set_p.
14148
14149         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
14150         (cprop_cc0_jump): New function.
14151         (cprop_insn): Break out new function cprop_jump and use it.
14152         Also use cprop_cc0_jump for machines with CC0.
14153         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
14154
14155         * tree.h (current_function_calls_setjmp,
14156         current_function_calls_longjmp): Delete declarations.
14157         * dsp16xx.c: Include "function.h".
14158         * elxsi.c: Likewise.
14159         * gmicro.c: Likewise.
14160         * h8300.c: Likewise.
14161         * i370.c: Likewise.
14162         * m32r.c: Likewise.
14163         * mn10200.c: Likewise.
14164         * mn10300.c: Likewise.
14165         * ns32k.c: Likewise.
14166         * spur.c: Likewise.
14167         * v850.c: Likewise.
14168
14169         * rtl.h (rtx_equal_function_value_matters): Declare.
14170         * toplev.c (rtx_equal_function_value_matters): Don't declare.
14171         * cse.c: Likewise.
14172         * function.c: Likewise.
14173         * emit-rtl.c: Likewise.
14174
14175 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
14176
14177         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
14178         call.
14179
14180 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14181
14182         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
14183         exactly.
14184
14185 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
14186
14187         * cpp.texi: Add a node documenting macro varargs (copied
14188         from extend.texi).
14189
14190 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
14191
14192         * cppspec.c: Put a null pointer at the end of the new argv.
14193
14194 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
14195
14196         * configure.in: Remove code to select/de-select the haifa
14197         scheduler.  Every scheduled port gets haifa now.
14198         * configure: Rebuilt.
14199         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
14200         * sched.c Deleted.
14201         * Makefile.in: Corresponding changes.
14202
14203 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14204
14205         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
14206         All callers changed.
14207         (prepare_float_lib_cmp): Likewise.
14208         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
14209         * expr.h (emit_float_lib_cmp): Delete declaration.
14210         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
14211         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
14212         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
14213         specially.
14214         (cmptf): Now conditional on TARGET_HARD_QUAD.
14215
14216 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
14217
14218         * resource.c (mark_target_live_regs): Use
14219         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
14220
14221 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14222
14223         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
14224
14225         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
14226
14227         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
14228
14229 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14230
14231         * rtl.h (rtx_format): Constify a char*.
14232
14233         * rtl.c (rtx_format): Likewise.
14234         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
14235         (init_rtl): Use accessor macro, not `rtx_format'.
14236
14237         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
14238         char*.
14239
14240         * caller-save.c (mark_referenced_regs): Likewise.
14241
14242         * combine.c (subst, make_compound_operation, known_cond,
14243         gen_rtx_combine, update_table_tick, get_last_value_validate,
14244         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
14245
14246         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
14247         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
14248         count_reg_usage): Likewise.
14249
14250         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
14251         Likewise.
14252
14253         * final.c (leaf_renumber_regs_insn): Likewise.
14254
14255         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
14256         dump_edge_info, count_reg_references): Likewise.
14257
14258         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
14259         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
14260         Likewise.
14261
14262         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
14263         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
14264         add_label_notes): Likewise.
14265
14266         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
14267         clear_struct_flag, count_sub_rtxs, count_alternatives,
14268         compares_alternatives_p, contained_in_p, walk_attr_value,
14269         write_expr_attr_cache): Likewise.
14270
14271         * genconfig.c (walk_insn_part): Likewise.
14272
14273         * genemit.c (max_operand_1, gen_exp): Likewise.
14274
14275         * genextract.c (walk_rtx): Likewise.
14276
14277         * genflags.c (num_operands): Likewise.
14278
14279         * genoutput.c (scan_operands): Likewise.
14280
14281         * genpeep.c (match_rtx): Likewise.
14282
14283         * genrecog.c (add_to_sequence): Likewise.
14284
14285         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
14286         Likewise.
14287
14288         * integrate.c (save_constants, copy_for_inline,
14289         copy_rtx_and_substitute, subst_constants, restore_constants):
14290         Likewise.
14291
14292         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
14293         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
14294
14295         * local-alloc.c (contains_replace_regs, memref_referenced_p):
14296         Likewise.
14297
14298         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
14299         add_label_notes, replace_call_address, count_nonfixed_reads,
14300         invariant_p, find_single_use_in_loop, find_mem_givs,
14301         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
14302         Likewise.
14303
14304         * print-rtl.c (reg_names, print_rtx): Likewise.
14305
14306         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
14307
14308         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
14309         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
14310         print_blocks): Likewise.
14311
14312         * regclass.c (fix_register, record_address_regs,
14313         reg_scan_mark_refs): Likewise.
14314
14315         * regmove.c (stable_but_for_p): Likewise.
14316
14317         * reload.c (loc_mentioned_in_p, operands_match_p,
14318         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
14319         copy_replacements, refers_to_regno_for_reload_p,
14320         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
14321         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
14322         Likewise.
14323
14324         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
14325         delete_address_reloads_1, count_occurrences,
14326         reload_cse_mem_conflict_p, reload_combine_note_use,
14327         add_auto_inc_notes): Likewise.
14328
14329         * resource.c (mark_referenced_resources, mark_set_resources):
14330         Likewise.
14331
14332         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
14333         reg_mentioned_p, regs_set_between_p, modified_between_p,
14334         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
14335         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
14336         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
14337         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
14338
14339         * sched.c (sched_analyze_2, attach_deaths): Likewise.
14340
14341         * stupid.c (stupid_mark_refs): Likewise.
14342
14343         * unroll.c (remap_split_bivs): Likewise.
14344
14345         * varasm.c (mark_constants): Likewise.
14346
14347         * a29k/a29k.c (uses_local_reg_p): Likewise.
14348
14349         * alpha/alpha.c (summarize_insn): Likewise.
14350
14351         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
14352         eliminate_lr2ip): Likewise.
14353
14354         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
14355
14356         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
14357         reg_mentioned_in_mem): Likewise.
14358
14359         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
14360         symbolic_reference_mentioned_p): Likewise.
14361
14362         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
14363
14364         * sh/sh.c (regs_used, mark_use): Likewise.
14365
14366         * vax/vax.c (vax_rtx_cost): Likewise.
14367
14368 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14369
14370         * machmode.h (mode_name): Constify a char*.
14371
14372         * rtl.c (mode_name): Likewise.
14373
14374         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
14375
14376         * optabs.c (init_libfuncs): Constify a char*.
14377
14378         * print-tree.c (mode_name): Remove redundant declaration.
14379         (print_node): Use accessor macro, not `mode_name'.
14380
14381         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
14382         not `mode_name'.
14383         (new_spill_reg): Constify a char*.
14384
14385         * tree.c (mode_name): Remove redundant declaration.
14386
14387 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14388
14389         * rtl.c (rtx_name): Constify a char*.
14390
14391         * rtl.h (rtx_name, fix_sched_param): Likewise.
14392
14393         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
14394         (mypr): Use accessor macro, not `rtx_name'.
14395
14396         * genemit.c (print_code): Constify a char*.
14397
14398         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
14399
14400         * genpeep.c (print_code): Constify a char*.
14401
14402         * genrecog.c (print_code): Likewise.
14403
14404         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
14405         end_bb): Add static prototype.
14406         (draw_edge): Constify a char*.
14407         (end_bb): Remove unused parameter.
14408
14409         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
14410         print_block_visualization): Constify a char*.
14411
14412 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
14413
14414         * c-common.c (c_get_alias_set): Update comment.
14415
14416 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
14417
14418         * linux.h (LIB_SPEC): Added.
14419
14420 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14421
14422         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
14423
14424 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
14425
14426         * tree.c (expr_check): Fix typo in last change.
14427
14428 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
14429
14430         * rtl.def (NOTE): Change format to "iuu0n".
14431         (ADDR_DIFF_VEC): Change format to "eEee0".
14432         (ADDRESSOF): Change format to "eit".
14433
14434         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
14435         (RTVEC_ELT): Change to match.
14436         (XVECEXP): Use XVEC and RTVEC_ELT.
14437         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
14438         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
14439         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
14440         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
14441         TRAP_CONDITION, TRAP_CODE): Use XEXP.
14442         (INTVAL): Use XWINT.
14443         (ADDRESSOF_DECL): Use XTREE.
14444         (SET_ADDRESSOF_DECL): Delete.
14445         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
14446         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
14447         ifdefed out since 2.6 at least.
14448         (gen_rtvec_vv): Delete prototype.
14449
14450         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
14451         not rtunion.
14452         (copy_most_rtx): Handle 't' format letter.
14453         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
14454         (gen_rtvec_vv): Delete function.  All callers changed to use
14455         gen_rtvec_v instead.
14456         * print-rtl.c (print_rtx): Move special casing of NOTEs to
14457         the '0' format letter.
14458
14459         * function.c (gen_mem_addressof): Don't use
14460         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
14461         instead.
14462         * integrate.c (copy_rtx_and_substitute): Likewise.
14463         Copy 't' slots with XTREE.
14464         (subst_constants): Treat 't' slots like '[swi]' slots.
14465         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
14466         * jump.c (rtx_equal_for_thread_p): Likewise.
14467         * rtlanal.c (rtx_equal_p): Likewise.
14468         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
14469         only four arguments.
14470         * gengenrtl.c (type_from_format): Provide correct types for
14471         'b' and 't' slots.
14472
14473
14474         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
14475         If a recent gcc is in use (always in stage2 and beyond), use
14476         statement expressions, so we don't make a function call unless
14477         the check fails.  Evaluate arguments exactly once.
14478         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
14479         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
14480         Delete.
14481         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
14482         they evaluate their arguments exactly once, irrespective of
14483         the compiler in use.
14484
14485         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
14486         is used by the currently-enabled check macros.  This is:
14487         (tree_check_failed, tree_class_check_failed): For gcc.
14488         (tree_check, tree_class_check, cst_or_constructor_check,
14489         expr_check): For other compilers.
14490
14491         * gencheck.c: Do not define any *_CHECK1 macros.
14492
14493 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
14494                           Mark Mitchell <mark@codesourcery.com>
14495
14496         * c-common.c (c_get_alias_set): Fix support for poitners and
14497         references.
14498
14499 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
14500
14501         * alias.c: Include tree.h.
14502         (nonlocal_reference_p, mark_constant_function): New functions.
14503         * flow.c (life_analysis): Call mark_constant_function.
14504         * rtl.h (mark_constant_function): Declare it.
14505
14506 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
14507
14508         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
14509         unrecognisable switches.
14510
14511 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14512
14513         * loop.c (recombine_givs): Set ix field after sorting.
14514         (recombine_givs): Remove bogus index / giv lockstep looping.
14515
14516 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14517
14518         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
14519         on CODE.
14520         (emit_store_flag_force): Use do_compare_rtx_and_jump.
14521         (do_cmp_and_jump): Formatting fixes.
14522         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
14523         do_compare_rtx_and_jump instead of compare_from_rtx.
14524         (do_compare_rtx_and_jump): New function; mostly copied from
14525         compare_from_rtx.
14526         (do_jump_for_compare): Delete.
14527         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
14528         MIN_EXPR.
14529         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
14530         of compare/do_jump_for_compare pairs.
14531         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
14532         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
14533         compare_from_rtx/do_jump_for_compare pairs.
14534         (do_jump_by_parts_equality): Likewise.
14535         (do_jump_by_parts_equality_rtx): Likewise.
14536         * expr.h (do_compare_rtx_and_jump): Declare.
14537         * optabs.c (prepare_cmp_insn): New function, contains most of the code
14538         that used to be in emit_cmp_insn.
14539         (cmp_available_p): New function.
14540         (prepare_operand): New function.
14541         (emit_cmp_and_jump_insn_1): New function, contains some code that used
14542         to be in emit_cmp_insn.
14543         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
14544         parameters to be pointers; don't emit final compare but modify some of
14545         the values pointed to by the args so the caller can perform the
14546         correct comparison.
14547         (expand_binop): Call emit_store_flag_force with signed forms of
14548         comparison code.
14549         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
14550         emit_jump_insn pair.
14551         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
14552         emit_cmp_and_jump_insn_1.  Call emit_queue.
14553         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
14554         arg.
14555         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
14556         jump sets cc0 before deleting it.
14557         * integrate.c (expand_inline_function): Likewise.
14558         * unroll.c (unroll_loop): Similar changes in several places.
14559         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
14560         before deleting it.
14561
14562 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14563
14564         * Makefile.in (insn-recog.o): Update dependencies.
14565         * genrecog.c (main): Make generated file include "function.h".
14566
14567 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
14568
14569         * cse.c (cse_insn): Call never_reached_warning when a jump is
14570         changed to be unconditional.
14571         * flags.h: Declare warn_notreached.
14572         * flow.c (delete_block): Call never_reached_warning when
14573         a block is deleted.
14574         * jump.c (delete_barrier_successors): Call never_reached_warning
14575         when we delete everything after a BARRIER.
14576         (never_reached_warning): New function.
14577         * rtl.h: Declare never_reached_warning.
14578         * toplev.c (warn_notreached): New variable.
14579         (lang_independent_options): Set warn_notreached
14580         when -Wunreachable-code.
14581         (compile_file): We need line numbers for -Wunreachable-code.
14582
14583 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
14584
14585         * haifa-sched.c (insn_unit): Fix typo on out of range test.
14586         * sched.c (insn_unit): Likewise.
14587
14588 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
14589
14590         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
14591
14592 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14593
14594         * flow.c (create_edge_list): Use xmalloc, not malloc.
14595
14596 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
14597
14598         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
14599         C-style comments.  Do not lose the character before double slash.
14600
14601 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14602
14603         * basic-block.h (struct edge_list): Stucture to maintain a vector
14604         of edges.
14605         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
14606          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
14607         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
14608         New function prototypes.
14609         * flow.c (create_edge_list): Function to create an edge list.
14610         (free_edge_list): Discards memory used by an edge list.
14611         (print_edge_list): Debug output showing an edge list.
14612         (verify_edge_list): Internal consistency check for an edge list.
14613         (find_edge_index): Function to find an edge index for a pred and succ.
14614
14615 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
14616
14617         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
14618         hashtable.
14619
14620 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
14621
14622         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
14623
14624 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14625
14626         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
14627
14628 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
14629
14630         * toplev.c (rest_of_compilation): Allow machine dependent
14631         reorganisation pass to place information into the RTL dump
14632         file if it so wishes.
14633
14634 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
14635
14636         * explow.c (hard_function_value): Use VOIDmode instead of
14637         MAX_MACHINE_MODE.
14638         * stmt.c (expand_return): Likewise.
14639         * stor-layout.c (get_best_mode): Likewise.
14640
14641         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
14642         emit call instead of emit_insn call.
14643
14644 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14645
14646         * configure.in: Handle --disable/enable-win32-registry.
14647         * install.texi: Document --disable/enable-win32-registry.
14648         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
14649         (WIN32_REGISTRY_KEY): New macro.
14650         * prefix.c: Use to enable/disable win32-specific code.
14651         (lookup_key): Use versioned key.
14652         * configure: Regenerate.
14653         * config.in: Likewise.
14654
14655 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
14656
14657         * cpplib.c (read_line_number): New fn, split out of...
14658         (do_line): Here.
14659
14660 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
14661
14662         tree.c (lang_unsave_expr_now) : New.
14663         (unsave_expr_now): Call lang_unsave_expr_now.
14664         tree.h (lang_unsave_expr_now) : New.
14665
14666 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
14667
14668         * toplev.c (flag_new_exceptions): On by default.
14669
14670 1999-08-13  Michael Meissner  <meissner@cygnus.com>
14671
14672         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
14673
14674 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
14675
14676         * dwarfout.c (fundamental_type_code): Return FT_boolean for
14677         INTEGER_TYPE with precision==1, it's __java_boolean.
14678
14679 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14680
14681         * global.c (prune_preferences): Move some invariants out of the
14682         inner loop.
14683
14684 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
14685
14686         * configure.in (alpha*-dec-osf*): Add osf5.
14687
14688 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
14689
14690         * configure.in: Rework handling of ARM GNU/Linux slightly.
14691         (arm*-*-linux-gnuoldld): New target.
14692         * configure: Regenerate.
14693         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
14694         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
14695         * config/arm/linux-oldld.h: New file.
14696         * config/arm/linux-elf26.h: Don't include linux-elf.h.
14697         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
14698         Don't define.
14699         * config/arm/linux-elf.h (ASM_SPEC): Define.
14700         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
14701         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
14702         for 26-bit APCS and old linker.
14703         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
14704         `arm_elf'.
14705         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
14706         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
14707         don't define `arm' or `arm_elf'.
14708         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
14709         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
14710
14711 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
14712
14713         * rtl.texi: Fix typo.
14714
14715 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
14716
14717         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
14718
14719 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
14720
14721         * extend.texi (C++ Signatures): Remove node.
14722         * invoke.texi: Remove discussion of -fhandle-signatures,
14723         signature, sigof, __signature__, and __sigof__.
14724
14725 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
14726
14727         * Makefile.in (JAVAGC): Removed.
14728
14729 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
14730
14731         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
14732
14733 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
14734
14735         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
14736
14737 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
14738
14739         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
14740         a register that is already known to be a pointer.
14741
14742 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
14743
14744         * fixinc/inclhack.tpl: Only install assert.h conditionally.
14745         * fixinc/inclhack.sh: Regenerated.
14746         * fixinc/fixincl.sh: Regenerated.
14747
14748 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
14749
14750         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
14751         Fix documentation of -ansi flag to describe its C++ behavior.
14752         Remove bogus reference to GCC 2.9.
14753
14754 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
14755
14756         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
14757         note if it is non-NULL.
14758
14759 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14760
14761         * except.h (eh_nesting_info): Add new structure defintion.
14762         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
14763         (reachable_handlers, update_rethrow_references): Add function
14764         prototypes.
14765         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
14766         a rethrow symbol instead of an integer exception region number.
14767         * flow.c (Make_edges): Use new exception nesting routines to determine
14768         which handlers are reachable from a CALL or asynchronous insn.
14769         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
14770         goto receivers.
14771         (delete_eh_regions): Update rethrow labels, and don't delete
14772         regions which are the target of a rethrow.
14773         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
14774         avoid overloading the SYMBOL_REF_USED flag.
14775         (rethrow_symbol_map): Use new rethrow_ref field.
14776         (rethrow_used): Use new rethrow_ref field.
14777         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
14778         of an integer.  Fix formatting.
14779         (output_exception_table_entry): Use new rethrow_ref field.
14780         (can_throw): Check for EH_REGION_NOTE before deciding
14781         whether a CALL can throw or not.
14782         (scan_region): Call rethrow_used() instead of accessing data structure.
14783         (update_rethrow_references): New function to make sure only regions
14784         which are still targets of a rethrow are flagged as such.
14785         (process_nestinfo): New static function to initialize a handler
14786         list for a specific region.
14787         (init_eh_nesting_info): New function to allocate and initialize
14788         the list of all EH handlers reachable from all regions.
14789         (reachable_handlers): New function to retrieve the list of handlers
14790         reachable from a specific region and insn.
14791         (free_eh_nesting_info): New function to dispose of a list of
14792         reachable handlers.
14793
14794 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
14795
14796         * flow.c (split_edge): Set JUMP_LABEL field.
14797         (commit_one_edge_insertion): Set head correctly for insert_before.
14798         When inserting insns, update insn block numbers if allocated.
14799
14800 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14801
14802         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
14803         retry_incomplete_types): Add static prototype.
14804         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
14805         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
14806         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
14807         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
14808         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
14809         Constify a char*.
14810
14811         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
14812         dwarf2out_start_source_file, dwarf2out_line): Likewise.
14813
14814 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14815
14816         * output.h (assemble_name): Constify a char*.
14817
14818         * varasm.c (UNIQUE_SECTION, assemble_start_function,
14819         assemble_variable, assemble_name): Likewise.
14820
14821         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
14822
14823         * arm/pe.c (arm_pe_unique_section): Likewise.
14824
14825         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
14826
14827         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
14828
14829         * i386/interix.c (i386_pe_unique_section): Likewise.
14830
14831         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
14832
14833         * i386/winnt.c (i386_pe_unique_section): Likewise.
14834
14835         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
14836
14837         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
14838
14839         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
14840
14841         * pa/pa.c (output_call): Likewise.
14842
14843         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
14844
14845         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
14846
14847         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
14848         Likewise.
14849
14850         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
14851         Likewise.
14852
14853         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
14854
14855         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
14856         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
14857
14858         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
14859
14860 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14861
14862         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
14863
14864 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14865
14866         * tree.h (lang_identify): Constify a char*.
14867         (print_error_function): Add extern prototype.  Constify a char*.
14868
14869         * c-lang.c (lang_identify): Constify a char*.
14870
14871         * objc/objc-act.c (lang_identify): Constify a char*.
14872
14873 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14874
14875         * genpeep.c (main): Make generated file include "function.h".
14876         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
14877
14878 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
14879
14880         * Makefile.in: Update dependencies.
14881         * alias.c: Include "function.h"
14882         * c-decl.c: Likewise.
14883         * caller-save.c: Likewise.
14884         * calls.c: Likewise.
14885         * combine.c: Likewise.
14886         * cse.c: Likewise.
14887         * explow.c: Likewise.
14888         * final.c: Likewise.
14889         * global.c: Likewise.
14890         * graph.c: Likewise.
14891         * local-alloc.c: Likewise.
14892         * loop.c: Likewise.
14893         * optabs.c: Likewise.
14894         * profile.c: Likewise.
14895         * recog.c: Likewise.
14896         * regclass.c: Likewise.
14897         * regmove.c: Likewise.
14898         * reload.c: Likewise.
14899         * reorg.c: Likewise.
14900         * resource.c: Likewise.
14901         * sched.c: Likewise.
14902         * stupid.c: Likewise.
14903         * config/1750a/1750a.c: Likewise.
14904         * config/a29k/a29k.c: Likewise.
14905         * config/arc/arc.c: Likewise.
14906         * config/arm/arm.c: Likewise.
14907         * config/arm/thumb.c: Likewise.
14908         * config/c4x/c4x.c: Likewise.
14909         * config/clipper/clipper.c: Likewise.
14910         * config/convex/convex.c: Likewise.
14911         * config/fx80/fx80.c: Likewise.
14912         * config/i860/i860.c: Likewise.
14913         * config/m68k/m68k.c: Likewise.
14914         * config/m88k/m88k.c: Likewise.
14915         * config/mips/mips.c: Likewise.
14916         * config/pdp11/pdp11.c: Likewise.
14917         * config/pyr/pyr.c: Likewise.
14918         * config/romp/romp.c: Likewise.
14919         * config/sh/sh.c: Likewise.
14920         * config/tahoe/tahoe.c: Likewise.
14921         * config/vax/vax.c: Likewise.
14922         * config/we32k/we32k.c: Likewise.
14923         * config/sparc/sparc.c: Include "function.h".
14924         (mem_min_alignment): Test current_function rather than
14925         regno_pointer_align.
14926         * config/pa/pa.c: Likewise.
14927         (compute_frame_size): Delete declaration of
14928         current_function_outgoing_args_size.
14929         * config/arc/arc.h (current_function_varargs): Delete declaration.
14930         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
14931         declaration.
14932         * config/i370/i370.h (current_function_outgoing_args_size): Delete
14933         declaration.
14934         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
14935         current_function_uses_pic_offset_table.
14936         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
14937         of current_function_returns_pointer.
14938         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14939         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14940         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14941         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14942         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14943         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14944         * config/m88k/m88k.c: Include "function.h"
14945         (call_used_regs, current_function_pretend_args_size,
14946         current_function_outgoing_args_size, frame_pointer_needed): Delete
14947         declarations.
14948         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
14949         declaration.
14950         * config/mips/mips.h (current_function_calls_alloca): Delete
14951         declaration.
14952         * config/mn10200/mn10200.h (current_function_needs_context,
14953         rtx_equal_function_value_matters): Delete declarations.
14954         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
14955         flag_pic): Delete declarations.
14956         * config/pa/pa.h (current_function_pretend_args_size,
14957         current_function_decl): Delete declarations.
14958         * config/pa/som.h (current_function_varargs): Delete declaration.
14959         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
14960         declaration.
14961         * config/pyr/pyr.h (current_function_pretend_args_size,
14962         current_function_args_size, current_function_calls_alloca): Delete
14963         declarations.
14964         * config/sh/sh.h (current_function_varargs): Delete declaration.
14965         * config/sparc/sparc.h (current_function_outgoing_args_size,
14966         current_function_calls_alloca, current_function_decl): Delete
14967         declarations.
14968         * config/spur/spur.h (current_function_pretend_args_size,
14969         current_function_calls_alloca): Delete declarations.
14970         * config/v850/v850.c (current_function_outgoing_args_size): Delete
14971         declaration.
14972         * config/vax/vms.h (current_function_name): Delete declaration.
14973         * gcse.c: Include "function.h".
14974         (current_function_name, current_function_calls_setjmp): Delete
14975         declarations.
14976         * haifa-sched.c: Include "function.h".
14977         (forced_labels): Delete declaration.
14978         * jump.c: Likewise.
14979         * reg-stack.c: Likewise.
14980         * reload1.c: Likewise.
14981         * genemit.c (main): Make generated file include function.h.
14982         * genoutput.c (output_prologue): Likewise.
14983
14984         * builtins.c (saveregs_value, apply_args_value): Delete variables.
14985         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
14986         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
14987         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
14988         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
14989         macros for some of them.
14990         (emit_filename, emit_lineno): Delete declarations.
14991         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
14992         regno_pointer_* variables through current_function.
14993         (gen_inline_header_rtx): Delete function.
14994         (save_emit_status): Delete function.
14995         (set_new_last_label_num): New function.
14996         (clear_emit_caches): New function.
14997         (restore_emit_status): Just clear last_labelnum and call
14998         clear_emit_caches.
14999         (get_last_insn_anywhere): Variable sequence_stack is now accessed
15000         through macro seq_stack.
15001         (add_insn_after): Likewise.
15002         (add_insn_before): Likewise.
15003         (remove_insn): Likewise.
15004         (pop_topmost_sequence): Likewise.
15005         (in_sequence_p): Likewise.
15006         (start_sequence_for_rtl_expr): Likewise.
15007         (start_sequence): Likewise, and likewise for
15008         sequence_rtl_expr/seq_rtl_expr.
15009         (push_topmost_sequence): Likewise.
15010         (end_sequence): Likewise.
15011         (init_virtual_regs): Now takes a "struct emit_status *" argument.
15012         All callers changed.  Store into that pointer instead of globals.
15013         (init_emit): Allocate emit elt of current_function.
15014         Changes for sequence_rtl_expr/sequence_stack renaming.
15015         Call clear_emit_caches instead of doing it in-line.
15016         Access regno_pointer_* variables through current_function.
15017         (init_emit_once) Don't clear sequence_stack.
15018
15019         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
15020         Delete variables.
15021         (arg_pointer_save_area): Delete declaration.
15022         (finish_expr_for_function): Renamed from init_queue; no longer static.
15023         (init_expr): Don't call init_queue.
15024         (save_expr_status, restore_expr_status): Delete functions.
15025         (expand_expr): Changes to reflect new layout of struct function.
15026         Don't access current_function_check_memory_usage when current_function
15027         is 0.
15028         * expr.h (forced_labels, save_expr_regs, saveregs_value,
15029         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
15030         current_function_outgoing_args_size, current_function_arg_offset_rtx,
15031         current_function_uses_const_pool, function_call_count,
15032         current_function_uses_pic_offset_table, nonlocal_labels,
15033         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
15034         current_function_check_memory_usage, nonlocal_goto_handler_slots,
15035         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
15036         declarations.
15037         (finish_expr_for_function): Declare.
15038         * flags.h (current_function_has_nonlocal_label,
15039         current_function_has_nonlocal_goto, current_function_is_thunk,
15040         current_function_has_computed_jump): Delete declarations.
15041         * flow.c (forced_labels): Delete declaration.
15042         * function.c (current_function_pops_args,
15043         current_function_returns_struct, current_function_returns_pcc_struct,
15044         current_function_needs_context, current_function_calls_setjmp,
15045         current_function_calls_longjmp, current_function_has_nonlocal_label,
15046         current_function_has_nonlocal_goto, current_function_is_thunk,
15047         current_function_has_computed_jump, current_function_calls_alloca,
15048         current_function_contains_functions, current_function_returns_pointer,
15049         current_function_epilogue_delay_list, current_function_args_size,
15050         current_function_pretend_args_size, current_function_arg_offset_rtx,
15051         current_function_outgoing_args_size, current_function_varargs,
15052         current_function_stdarg, current_function_args_info, cleanup_label,
15053         current_function_name, current_function_uses_const_pool,
15054         current_function_instrument_entry_exit, current_function_return_rtx,
15055         current_function_uses_pic_offset_table, nonlocal_labels,
15056         current_function_internal_arg_pointer, current_function_cannot_inline,
15057         current_function_check_memory_usage, function_call_count,
15058         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
15059         nonlocal_goto_stack_level, return_label, save_expr_regs,
15060         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
15061         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
15062         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
15063         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
15064         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
15065         Delete variables.
15066         (push_function_context_to): Don't save them.  Don't call
15067         save_storage_status, save_emit_status or save_expr_status.
15068         (pop_function_context_from): Don't restore them.  Don't call
15069         restore_storage_status or restore_expr_status.
15070         (get_func_frame_size): New function.
15071         (get_frame_size): Use it.
15072         (assign_outer_stack_local): Reflect some member name changes in struct
15073         function.
15074         (put_reg_into_stack): Likewise.
15075         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
15076         seq_rtl_expr.
15077         (fixup_var_refs): Likewise.
15078         (fix_lexical_addr): Likewise.
15079         (trampoline_address): Likewise.
15080         (prepare_function_start): Clear field inlinable of current_function.
15081         (init_function_for_compilation): New function.
15082         (expand_dummy_function_end): New function.
15083         (expand_function_end): Call finish_expr_for_function.
15084         * function.h (struct emit_status): New; fields moved here from struct
15085         function and from global variables.  Add accessor macros for some of
15086         the fields.
15087         (struct expr_status): Likewise.
15088         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
15089         (struct function): Add fields expr and emit, inlinable, inl_emit,
15090         original_arg_vector, original_decl_initial, inl_last_parm_insn,
15091         inl_max_label_num.  Add many comments.
15092         Add accessor macros for all elts of struct function that no longer
15093         have a global variable.
15094         (cleanup_label, return_label, frame_offset, tail_recursion_label,
15095         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
15096         stack_slot_list): Delete declarations.
15097         (get_func_frame_size): Declare.
15098         (save_expr_status, restore_expr_status, save_emit_status,
15099         save_storage_status, restore_storage_status): Delete declarations.
15100         (init_virtual_regs): Declare.
15101         * output.h (current_function_pops_args,
15102         current_function_returns_struct, current_function_returns_pcc_struct,
15103         current_function_needs_context, current_function_calls_setjmp,
15104         current_function_calls_longjmp, current_function_calls_alloca,
15105         current_function_has_nonlocal_label, current_function_varargs,
15106         current_function_has_computed_jump, current_function_returns_pointer,
15107         current_function_contains_functions, current_function_args_size,
15108         current_function_pretend_args_size, current_function_stdarg,
15109         current_function_outgoing_args_size, current_function_args_info,
15110         current_function_name, current_function_return_rtx,
15111         current_function_epilogue_delay_list,
15112         current_function_uses_const_pool, current_function_cannot_inline):
15113         Delete declarations.
15114         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
15115         regno_reg_rtx): Delete declaration.
15116         (REGNO_POINTER_FLAG): Delete macro.
15117         * stmt.c (expand_goto): Changes to reflect that some fields in struct
15118         function were renamed.
15119         * stor-layout.c (save_storage_status, restore_storage_status): Delete
15120         functions.
15121         * toplev.c: Include "function.h".
15122         (current_function_decl): Delete declaration.
15123         (compile_file): Call init_dummy_function_start and
15124         expand_dummy_function_end around some initializations that need to
15125         emit rtl.
15126         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
15127         Call init_function_for_compilation.
15128         * unroll.c: Include "function.h"
15129         (unroll_loop): Access regno_pointer_* variables through
15130         current_function.
15131
15132         * tree.h (struct tree_decl): Add elt f to saved_insns member.
15133         (DECL_SAVED_INSNS): use it.
15134         (expand_dummy_function_end): Declare.
15135         (init_function_for_compilation): Declare.
15136         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
15137         that it's no longer an INLINE_HEADER.
15138         (expand_call): Likewise.
15139         * integrate.c (finish_inline): Delete function.
15140         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
15141         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
15142         args.  Don't generate an INLINE_HEADER rtx, just return the arg
15143         vector.  All callers changed.
15144         (save_for_inline_copying):  Create a duplicate struct emit_status to
15145         hold the emit state for compiling the current function.  Use this and
15146         the other new fields in struct function that are for integration
15147         instead of an INLINE_HEADER.
15148         Use memcpy instead of bcopy.
15149         Store the current struct function in DECL_SAVED_INSNS of fndecl.
15150         (save_for_inline_nocopy): Similar changes, except no new emit_status
15151         is needed here.
15152         (expand_inline_function): Get information from function structure,
15153         not from an inline header rtx.
15154         (output_inline_function): Lose code to extract the necessary
15155         information from an inline header; simply put back the function
15156         structure into current_function.  Clear its inlinable elt.
15157         * rtl.def (INLINE_HEADER): Delete.
15158         * rtl.h: Delete all accessors for an INLINE_HEADER.
15159         (gen_inline_header_rtx): Delete declaration.
15160         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
15161         Delete declarations.
15162         (REGNO_POINTER_ALIGN): Delete.
15163         (clear_emit_caches): Declare.
15164         (set_new_last_label_num): Declare.
15165
15166 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
15167
15168         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
15169
15170         * except.c (expand_eh_region_start_for_decl): Always start a new block.
15171         * stmt.c (is_eh_region): Make sure current_function is present, too.
15172
15173 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
15174
15175         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
15176         for 64bit PA targets.
15177
15178         * pa.h (SELECT_SECTION): Define.
15179         * som.h (SELECT_SECTION): Delete.
15180
15181 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15182
15183         * alias.c (init_alias_analysis): Wrap call to
15184         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
15185
15186 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
15187
15188         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
15189         <sys/asm.h> contains an asm comment with an apostrophe
15190         * fixinc/inclhack.sh:  regen
15191         * fixinc/fixincl.x:  regen
15192
15193 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
15194
15195         * function.c (init_function_start): Clear prologue & epilogue.
15196         (prologue_epilogue_contains): New function.
15197         * alias.c (init_alias_analysis): Use it.
15198         * rtl.h (prologue_epilogue_contains): Declare it.
15199
15200 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
15201
15202         * jump.c (onlyjump_p): New function.
15203         * rtl.h: Declare it.
15204         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
15205         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
15206
15207 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
15208
15209         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
15210         to invert loops.  Simplify block scanning.
15211
15212 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
15213
15214         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
15215         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
15216
15217 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
15218
15219         * config/sparc/liteelf.h: New file to support sparclite-elf target
15220         * config/sparc/t-sp86x: New file to support sparc86x targets
15221         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
15222         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
15223         * configure.in: Support above target triplets
15224         * configure: Regenerated
15225
15226 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
15227
15228         * fixinc/server.c (server_setup): Do not prefix function used as
15229         parameter with `&'.
15230
15231 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
15232
15233         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
15234         Remove fp reg alternatives.
15235
15236 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
15237
15238         * Makefile.in (TAROUTOPTS): Kill.
15239         (install-headers-tar): Use "xpf" for tar headerfile extraction
15240         * i370/x-oe (TAROUTOPTS): Delete.
15241         * m68k/x-apollo68 (TAROUTOPTS): Delete.
15242         * m68k/x-hp320 (TAROUTOPTS): Delete.
15243         * m68k/x-hp320g (TAROUTOPTS): Delete.
15244         * gcc.texi: Update bug reporting text.
15245
15246 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15247
15248         * reg-stack.c (change_stack) Fixed problem with negative array index.
15249
15250 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
15251
15252         * extend.texi, install.texi: Fix spelling mistakes.
15253
15254         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
15255         (s-attrtab); No longer try to use pre-made insn-attrtab file.
15256         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
15257         PREMADE_ATTRTAB_MD.
15258         * mips/t-ecoff: Likewise.
15259         * mips/t-elf: Likewise.
15260         * mips/t-mips: Likewise.
15261         * mips/t-osfrose: Likewise.
15262         * mips/t-r3900: Likewise.
15263         * mips/t-svr3: Likewise.
15264         * mips/t-svr4: Likewise.
15265         * mips/t-ultrix: Likewise.
15266
15267         * gcc.texi: Document recommend means to provide software floating
15268         point libraries in libgcc.a
15269
15270 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
15271
15272         * c-lex.c (yylex): We can have a number with no digits.
15273
15274 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
15275
15276         * jump.c (delete_prior_computation): New function, broken
15277         out of delete_computation.  Check for side effects with
15278         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
15279         multi-word hard registers.
15280         (delete_computation): Use it.  Check for side effects with
15281         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
15282         missing REG_DEAD note for a register which is both set and
15283         used by an insn.
15284
15285 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
15286
15287         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
15288         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
15289         (ASM_FILE_START): Import _mcount with the right type.
15290         (ASM_DECLARE_FUNCTION_NAME): Define.
15291         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
15292         * pa.c (output_function_prologue): Always emit the function's label
15293         here.
15294         * pa.h (TEXT_SPACE_P): Define.
15295         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
15296         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
15297         * som.h (TEXT_SPACE_P): Delete.
15298         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
15299         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
15300
15301 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
15302
15303         * expr.c (emit_group_load): Allow src to be a CONCAT.
15304
15305 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15306
15307         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
15308         (___mulsi3): Use '!' comment character.
15309
15310 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15311
15312         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
15313
15314 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
15315
15316         * gcc.c: Update URLs and mail addresses.
15317         * gcc.texi: Likewise.
15318
15319 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
15320
15321         * rs6000.c (current_file_function_operand): Return zero for
15322         weak functions.
15323         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
15324         weak symbols.
15325         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
15326         for weak symbols.
15327
15328 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
15329
15330         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
15331         allocate space in the stack frame for the PIC register.
15332
15333 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
15334
15335         * m68k.md (xordi3, anddi3): These patterns are not available on
15336         the coldfire.
15337
15338 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
15339
15340         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
15341         (PUT_REAL): Likewise.
15342
15343 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15344
15345         * final.c (shorten_branches): Don't add an alignment for loops
15346         that have no label inside.
15347
15348 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15349
15350         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
15351         prototypes in macro HAVE_cmpstrsi.
15352
15353         * cpplib.c (cpp_get_token): Remove unused label `op3'.
15354
15355         * emit-rtl.c (operand_subword): Remove unused variable
15356         `bits_per_word'.
15357
15358         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
15359
15360         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
15361
15362 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
15363
15364         * cpphash.c (macroexpand): Delete leading whitespace when arg
15365         is concatenated before.
15366         (unsafe_chars): Correct test for whether + and - can extend a
15367         token.
15368
15369         * cppinit.c (cpp_start_read): Do dependencies for
15370         -include/-imacros files also.
15371
15372         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
15373         tokenizing non-directive lines.
15374         (cpp_expand_to_buffer): Temporarily disable no-output mode.
15375         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
15376         the input file.
15377
15378 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
15379
15380         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
15381
15382         * c-lex.c: Sync with C++ frontend.
15383         (linemode): New variable.
15384         (parse_float): imag, conversion_errno, and type are output only.
15385         (yylex): Adjust.  Move initial '.' case into main switch.
15386         Use linemode.
15387         (handle_generic_pragma): Just deal with tokens.
15388         (readescape): Use ISXDIGIT and ISGRAPH.
15389         * c-parse.in: Add END_OF_LINE token.
15390
15391         * c-lex.c (lang_init): Generalize.
15392         (nextchar): Remove.  Replace uses with UNGETC.
15393         (skip_white_space): Handle linemode here.  Optimize for cpplib.
15394         (skip_white_space_on_line): Remove.
15395         (extend_token_buffer_to): New fn.
15396         (extend_token_buffer): Use it.
15397         (read_line_number, check_newline): Just deal with tokens.
15398         (token_getch, token_put_back): New fns.
15399         (yylex): Use them.  More cpplib optimizations.  Simplify.
15400
15401 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
15402                           Jason Merrill  <jason@yorick.cygnus.com>
15403
15404         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
15405         (consume_string): Make this smart about USE_CPPLIB.
15406         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
15407         (yylex): Rewrite to be intelligent about USE_CPPLIB.
15408         Also, clean up cases where we redundantly set token_buffer[0].
15409         (read_line_number): New fn.
15410         (ignore_escape_flag): New variable.
15411
15412 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
15413
15414         * a29k/t-a29kbare: Fix some comments.
15415         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
15416         (FPBIT, DPBIT): Define.
15417         * a29k/t-vx29k: Likewise.
15418         * arc/t-arc: Likewise.
15419         * arm/t-arm-elf: Likewise.
15420         * arm/t-bare: Likewise.
15421         * arm/t-pe: Likewise.
15422         * arm/t-pe-thumb: Likewise.
15423         * arm/t-semi: Likewise.
15424         * arm/t-thumb: Likewise.
15425         * arm/t-thumb-elf: Likewise.
15426         * arm/t-thumb-linux: Likewise.
15427         * h8300/t-h8300: Likewise.
15428         * i960/t-i960: Likewise.
15429         * i960/t-vxworks960: Likewise.
15430         * m32r/t-m32r: Likewise.
15431         * mips/t-ecoff: Likewise.
15432         * mips/t-elf: Likewise.
15433         * mips/t-r3900: Likewise.
15434         * pa/t-pro: Likewise.
15435         * rs6000/t-aix43: Likewise.
15436         * rs6000/t-beos: Likewise.
15437         * rs6000/t-newas: Likewise.
15438         * rs6000/t-ppccomm: Likewise.
15439         * rs6000/t-rs6000: Likewise.
15440         * rs6000/t-winnt: Likewise.
15441         * rs6000/t-xnewas: Likewise.
15442         * rs6000/t-xrs6000: Likewise.
15443         * sh/t-sh: Likewise.
15444         * sparc/t-elf: Likewise.
15445         * sparc/t-sparcbare: Likewise.
15446         * sparc/t-sparclite: Likewise.
15447         * sparc/t-splet: Likewise.
15448         * v850/t-v850: Likewise.
15449         * mn10200/t-mn10200: Fix comments.
15450         * mn10300/t-mn10300: Likewise.
15451
15452         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
15453         dummy operand.  Allocate a new pseudo for the dummy operand.
15454         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
15455
15456         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
15457
15458 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
15459
15460         * configure: Rebuilt.
15461         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
15462
15463 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
15464
15465         * recog.c (preproces_constraints): Zero recog_op_alt before
15466         processing the constraints.
15467
15468         * arm.c (typedef minipool_node): Renamed from pool_node.
15469         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
15470         (add_minipool_constant): New function.
15471         (dump_minipool): New function.
15472         (find_barrier): Remove special case for getting the insn size of
15473         an insn that references the constant pool.
15474         (minipool_fixup): New structure.
15475         (push_minipool_barrier): New function.
15476         (push_minipool_fix): New function.
15477         (note_invalid_constants): New function.
15478         (add_pool_constant, dump_table, fixit, broken_move): Delete.
15479         (arm_reorg): Rewrite code to fix up the constant pool into a
15480         series of mini-pools embedded in the insn stream.
15481         (arm_output_epilogue): New function, made mainly from the body
15482         of output_func_epilogue.
15483         (output_func_epilogue): Move insn generation part of epilogue code
15484         to arm_output_epilogue.
15485         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
15486         * arm.md (pool_range): New attribute.
15487         (zero_extendqidi2): Add attribute pool_range.
15488         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
15489         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
15490         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
15491         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
15492         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
15493         (epilogue): New expand.
15494         (epilogue_insn): New insn.  Call arm_output_epilogue.
15495
15496         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
15497         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
15498
15499 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
15500
15501         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15502
15503 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
15504
15505         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
15506
15507 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
15508
15509         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
15510
15511 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
15512
15513         * global.c: Fix comment.
15514
15515 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
15516
15517         * gcc.c (access_check): New static function.
15518         (find_a_file): Use it when searching a directory list.
15519         * collect2.c (find_a_file): Don't accept directories found when
15520         searching a directory list.
15521
15522 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
15523
15524         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
15525         function parameters with `&'.
15526         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
15527
15528 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
15529
15530         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
15531         or tidy_fallthru_edge if the last insn in the block is not
15532         an unconditional jump or a simple conditional jump.
15533
15534 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15535
15536         * Makefile.in (c-decl.o): Depends on defaults.h.
15537
15538 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
15539
15540         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
15541         PA1.1 and above.
15542         (CLASS_MAX_NREGS): Likewise.
15543
15544 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
15545
15546         * cse.c (cse_insn): Fix dumb thinko in last change.
15547
15548 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15549
15550         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
15551         "const char *".
15552
15553 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
15554
15555         * dwarf2out.c (add_location_or_const_value_attribute): Correct
15556         test for sizes of passed and declared parameter types.
15557
15558 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15559
15560         * fixincludes: Fix the return type of bsearch, char* -> void*.
15561
15562         * fixinc/inclhack.def: Likewise.
15563
15564 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
15565
15566         * invoke.texi (-fdump-translation-unit): New option.
15567
15568 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
15569
15570         * expr.h (PROMOTE_PROTOTYPES): Move ...
15571         * defaults.h: ... to here.
15572         * c-decl.c: Include defaults.h instead of expr.h.
15573         * c-typeck.c: Include defaults.h.
15574
15575 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
15576
15577         * toplev.h (errorcount): Declare.
15578         (warningcount): Likewise.
15579         (sorrycount): Likewise.
15580         * c-lex.c (errorcount): Don't declare.
15581         * dwarf2out.c (errorcount): Don't declare.
15582
15583 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
15584
15585         * config/libgloss.h: Add a note discouraging use with ELF.
15586         * configure.in: Don't use libgloss.h for ELF targets.
15587         Always use_collect2 on a.out targets.
15588
15589 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
15590
15591         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
15592         (force_to_mode, case ASHIFTRT): Add shiftrt label.
15593
15594 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15595
15596         * loop.c (strength_reduce): When doing biv->giv conversion, update
15597         reg note of NEXT->insn.
15598
15599 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15600
15601         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
15602
15603 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15604
15605         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
15606         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15607         Ensure expr.h is included.
15608         * c-typecheck.c (convert_arguments): Ditto.
15609
15610         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
15611
15612         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
15613         * config/convex/convex.h: Ditto.
15614         * config/dsp16xx/dsp16xx.h: Ditto.
15615         * config/fx80/fx80.h: Ditto.
15616         * config/gmicro/gmicro.h: Ditto.
15617         * config/i370/i370.h: Ditto.
15618         * config/i386/i386.h: Ditto.
15619         * config/m32r/m32r.h: Ditto.
15620         * config/m68k/m68k.h: Ditto.
15621         * config/m88k/m88k.h: Ditto.
15622         * config/mips/mips.h: Ditto.
15623         * config/pa/pa.h: Ditto.
15624         * config/pyr/pyr.h: Ditto.
15625         * config/tahoe/tahoe.h: Ditto.
15626         * config/we32k/we32k.h: Ditto.
15627
15628         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
15629         based on arch size.
15630
15631         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
15632
15633         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
15634         from comment.
15635
15636         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
15637
15638 1999-08-02  Richard Henderson  <rth@cygnus.com>
15639
15640         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
15641         for the register spill block.
15642         (m32r_va_arg): New.
15643         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
15644         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
15645
15646         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
15647         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
15648         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
15649
15650 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15651
15652         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
15653         MAX_WCHAR_TYPE defined in sparc.h.
15654         * config/sparc/linuxaout.h: Likewise.
15655         * config/sparc/linux64.h: Likewise.
15656         Also default to -mvis if CPU is UltraSPARC.
15657
15658 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15659
15660         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
15661         (RTX_OK_FOR_OLO10): Likewise.
15662         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
15663         %lo(), allow it in addresses...
15664         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
15665         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
15666         does not make sense.
15667         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
15668         (sparc_output_scratch_registers): New function.
15669         (output_function_prologue, sparc_flat_output_function_prologue): Use
15670         it.
15671         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
15672         defined.
15673         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
15674         * configure.in: Add check for .register pseudo-op support in as and
15675         check for offsetable %lo().
15676         * acconfig.h: Add templates for the above checks.
15677         * configure: Regenerate.
15678
15679 1999-08-02  Richard Henderson  <rth@cygnus.com>
15680
15681         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
15682         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
15683         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
15684
15685 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15686
15687         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
15688         reg_biv_class.
15689
15690 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
15691
15692         * config/float-sparc.h: New file.
15693         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
15694         sparc-*-linux-gnu and sparc64-*-linux*.
15695
15696 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15697
15698         * rs6000.c (rs6000_va_list): Type is an array.
15699         (rs6000_va_start): Don't doubly adjust for varargs.
15700         (rs6000_va_arg): Evaluate long long GPR adjustment.
15701
15702 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
15703
15704         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
15705         -maix64 and -maix32.
15706         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
15707         LINK_SPEC): Change appropriately.
15708         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
15709         (u_short_cint_operand): Likewise.
15710         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
15711         for 64-bit hosts.
15712         * rs6000/t-aix43 (MULTILIB): Change to -m64.
15713
15714         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
15715
15716 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
15717
15718         * rs6000/rs6000.c (num_insns_constant_wide): Correct
15719         for type promotion.
15720         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
15721         (non_add_cint_operand): Likewise.
15722         (logical_operand): Likewise.
15723         (non_logical_cint_operand): Likewise.
15724         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
15725         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
15726         (rs6000_select_rtx_section): Suppress warning.
15727         (small_data_operand): Suppress warning.
15728         (rs6000_got_register): Suppress warning.
15729         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
15730         type, so `J' is generally the wrong constraint for a SImode value;
15731         use `L' instead.
15732         (andsi3_internal2): Likewise.
15733         (andsi3_internal3): Likewise.
15734         (iorsi3_internal1): Likewise.
15735         (xorsi3_internal1): Likewise.
15736         (movsi): Likewise.
15737         (movsf_softfloat): Likewise.
15738         (scc insns): Likewise.
15739         (movsi+2): Preserve sign bits of SImode constant.
15740         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
15741         (movdf+1): Sign-extend properly.
15742         (movdi_32+1): Sign-extend properly.
15743         (scc insns): Sign-extend properly.
15744
15745         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
15746         K, L, and T.
15747
15748 1999-08-02  Richard Henderson  <rth@cygnus.com>
15749
15750         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
15751         -mcpu parsing code.
15752         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
15753         * alpha.md (all fp insns): Likewise.
15754
15755 1999-08-02  Nick Clifton  <nickc@cygnus.com>
15756
15757         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
15758         already defined.
15759
15760 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
15761
15762         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
15763         pic_load_label generator directly.
15764         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
15765         No longer a named pattern.
15766
15767 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
15768
15769         * explow.c (force_reg): Call force_operand if X does not
15770         satisfy general_operand.
15771
15772 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
15773
15774         * fix-header.c (main): When testing for CONTINUED, use string
15775         equality, not pointer equality.
15776
15777 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
15778
15779         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
15780
15781 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
15782
15783         * cse.c (cse_insn): Fix loop which deletes insns after a jump
15784         that has become an unconditional jump.
15785
15786         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
15787         (output_function_epilogue): Similarly.
15788
15789 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15790
15791         * tree.h (init_dummy_function_start): Declare.
15792
15793 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15794
15795         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
15796         last_expr_type, last_expr_value, block_start_count, block_stack,
15797         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
15798         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
15799         dynamically in stmt elt of struct function for each function.
15800         (struct nesting): Rename function_call_count elt to n_function_calls,
15801         target_temp_slot_level to block_target_temp_slot_level.  All users
15802         changed.
15803         (struct stmt_status): New structure definition.
15804         Add many accessor macros for stmt_status elements which previously
15805         were global variables.
15806         (init_stmt_for_function): Allocate stmt elt for current_function.
15807         Reflect that block_start_count was renamed to
15808         current_block_start_count.
15809         (save_stmt_status, restore_stmt_status): Delete functions.
15810         (preserve_subexpressions_p): Don't access loop_stack when outside
15811         a function.
15812         (expand_start_bindings): Reflect that block_start_count was renamed to
15813         current_block_start_count.
15814         (expand_fixup): Likewise.
15815         (expand_decl): Don't access block_stack when outside a function.
15816         (expand_decl_cleanup): Likewise.
15817         (expand_dcc_cleanup): Likewise.
15818         (expand_dhc_cleanup): Likewise.
15819         (expand_anon_union_decl): Likewise.
15820         (set_file_and_line_for_stmt): New function.
15821         (in_control_zone_p): New function.
15822
15823         * function.h (struct function): Add new elt stmt.
15824         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
15825         case_stack, nesting_stack, nesting_depth, block_start_count,
15826         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
15827         emit_lineno, goto_fixup_chain.
15828         (save_eh_status, restore_eh_status, save_stmt_status,
15829         restore_stmt_status): Delete declarations.
15830         * function.c (push_function_context_to): Don't call save_stmt_status.
15831         (pop_function_context_to): Don't call restore_stmt_status.
15832         * tree.h (in_control_zone_p): Declare.
15833         * rtl.h (set_file_and_line_for_stmt): Declare.
15834
15835         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
15836         call set_file_and_line_for_stmt.
15837
15838 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
15839
15840         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
15841         Also update copyright.
15842
15843 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15844
15845         * c-pragma.c: Don't include "except.h".
15846         * emit-rtl.c: Likewise.
15847         * stor-layout.c: Likewise.
15848         * tree.c: Likewise.
15849         * varasm.c: Likewise.
15850
15851         * flow.c: Include "function.h".
15852         * tree.h (init_dummy_function_start): Declare new function.
15853
15854         * except.h (struct eh_status): New structure.
15855         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
15856         been included.
15857         (eh_return_stub_label, ehstack, catchstack, ehqueue,
15858         catch_clauses, false_label_stack, caught_return_label_stack,
15859         protect_list, current_function_ehc): Add accessor macros for the
15860         corresponding fields in current_function->eh; delete declarations
15861         for all items that used to be declared here.
15862         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
15863         catch_clauses, false_label_stack, caught_return_label_stack,
15864         protect_list, current_function_ehc): Delete variables.
15865         (init_eh_for_function): Allocate current_function->eh.
15866         (save_eh_status, restore_eh_status): Delete functions.
15867
15868         * function.h (struct function): Add fields next_global and eh.
15869         Delete all exception handling related fields.
15870         * function.c (current_function): New variable.
15871         (all_functions): New variable.
15872         (push_function_context_to): Don't allocate a struct function,
15873         use current_function instead.  Call init_dummy_function_start when
15874         outside a function.  Clear current_function before returning.
15875         (pop_function_context_from): Restore current_function.
15876         Don't free the restored struct function.
15877         (prepare_function_start): New function.
15878         (init_dummy_function_start): New function.
15879         (init_function_start): Break out some code into prepare_function_start
15880         and call it here.
15881
15882         * stmt.c (save_stmt_status): Don't call save_eh_status.
15883         (restore_stmt_status): Don't call restore_eh_status.
15884
15885         * Makefile.in: Update dependencies.
15886
15887 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
15888
15889         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
15890         of depending on a magic constant value.  Update comments.
15891         (hppa_expand_prologue): Similarly.
15892
15893         * pa.md (reload_indi, reload_outdi): Allow any register for the
15894         original reload register.
15895
15896 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
15897
15898         * cccp.c (print_help): Change marcos to macros.
15899
15900 1999-07-30  Richard Henderson  <rth@cygnus.com>
15901
15902         * c-typeck.c (initializer_constant_valid_p): Move ...
15903         * c-common.c (initializer_constant_valid_p): ... here.  Use
15904         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
15905         of label addresses.
15906         * c-common.h (initializer_constant_valid_p): Declare.
15907         * c-tree.h (initializer_constant_valid_p): Remove.
15908
15909 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
15910
15911         * config/i386/sol2-c1.asm: Align the stack.
15912         * config/i386/sol2-gc1.asm: Likewise.
15913
15914 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
15915
15916         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
15917         -Asparclite for sparc86x.
15918         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
15919         sparc86x.
15920         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
15921
15922 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
15923
15924         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
15925         the user if using the non-default arch size in BI_ARCH configuration.
15926         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
15927
15928         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
15929         Fix patterns so that they actually match.
15930         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
15931         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
15932         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
15933         TARGET_HARD_MUL32.
15934         (mulsidi3): Reflect this in the expand.
15935         (smulsi3_highpart): Only on TARGET_ARCH32.
15936         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
15937         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
15938         (umulsidi3): Reflect this in the expand.
15939         (umulsi3_highpart): Only on TARGET_ARCH32.
15940         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
15941         don't require g0 to be zero.
15942         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
15943         ({,u}divsi3): New expands.
15944         ({,u}divsi3_sp64): New patterns.
15945         (after lshrdi3_v8plus): Four new patterns to help combiner
15946         optimizing nested mixed mode shifts.
15947
15948         * config/sparc/sparc.c (sparc_override_options): Use deprecated
15949         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
15950         speed things up. Don't use them by default on plain v9 in 64bit
15951         mode, according to what SPAMv9 sais.
15952
15953         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
15954         top 32 bits of %[og][0-7] in signal handlers.
15955         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
15956
15957 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
15958
15959         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
15960         (ashlsi3): Corresponding changes.
15961
15962         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
15963
15964 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
15965
15966         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
15967
15968 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
15969
15970         * arm.h (Hint): Delete macro.
15971         Substitute HOST_WIDE_INT for Hint in some prototypes.
15972         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
15973
15974 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
15975
15976         * builtins.c (expand_builtin_setjmp): Use force_operand to
15977         make sure that the buffer address is in a suitable form to be
15978         passed to force_reg.
15979
15980 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
15981
15982         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
15983         them here.
15984
15985 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
15986
15987         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
15988         proper mode in the condition string.
15989         (icacheflush, dcacheflush): Remove modes from match_operands.
15990
15991         * pa.c (emit_move_sequence): Always convert scratch_reg to the
15992         proper mode before using it.
15993
15994         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
15995         pair.
15996
15997         * pa.c (store_reg): Do not call add_high_const generator directly.
15998         (load_reg, set_reg_plus_d): Likewise.
15999         * pa.md (add_high_const): No longer a named pattern.
16000
16001         * pa.c (legitimize_address): Consistently use Pmode rather than
16002         SImode.  Do not call gen_pic2_highpart directly anymore.
16003         * pa.md (pic2_highpart): No longer a named pattern.
16004         (pic2_lo_sum): Similarly.  Reformat to make more readable.
16005
16006         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
16007         needed.
16008
16009         * README: Update.
16010
16011 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16012
16013         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
16014
16015 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
16016
16017         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
16018         and tag the spill mems.
16019         (hppa_va_start): New.
16020         (hppa_va_arg): New.
16021         * pa.h (EXPAND_BUILTIN_VA_START): New.
16022         (EXPAND_BUILTIN_VA_ARG): New.
16023
16024 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
16025
16026         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
16027         and tag the spill mems.
16028         (mn10300_va_start): New.
16029         (mn10300_va_arg): New.
16030         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
16031         (EXPAND_BUILTIN_VA_ARG): New.
16032
16033 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
16034
16035         * mn10200.c (mn10200_va_arg): New.
16036         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
16037
16038 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
16039
16040         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
16041         rather than play with TREE_INT_CST_LOW.
16042
16043 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
16044
16045         * config/arm/telf.h: Include dbxelf.h.
16046         (CPP_PREDEFINES): Only define if not already defined.
16047         (ASM_IDENTIFY_GCC): Likewise.
16048         (SUBTARGET_EXTRA_SECTIONS): Likewise.
16049         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
16050         * config/arm/thumb.h (LINK_SPEC): Only define if not already
16051         defined.
16052         (DBX_DEBUGGING_INFO): Don't define.
16053         * config/arm/linux-telf.h: New file.
16054         * config/arm/linux-tgas.h: New file.
16055         * config/arm/t-thumb-linux: New file.
16056         * config/arm/uclinux-elf.h: New file.
16057         * config/arm/uclinux-telf.h: New file.
16058         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
16059         thumb-*-uclinux): New targets.
16060         * configure: Regenerate.
16061
16062 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
16063
16064         * pa.md (post_store, pre_load): New expanders.
16065         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
16066         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
16067         need to directly generate RTL for them.
16068         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
16069         changes.
16070
16071 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
16072
16073         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
16074         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
16075         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
16076         (secndary_reload_class): Make TARGET_ELF conditional compile.
16077         (print_operand_address): Similar.
16078         (output_toc): Print all values as hex.
16079         (get_issue_rate): Rearrange and add RS64A and PPC630.
16080         * rs6000.h (processor_type): Add RS64A and PPC630.
16081         (PROCESSOR_POWERPC64): New.
16082         (PROMOTE_MODE): Use word_mode.
16083         (RTX_COSTS): Add RS64A and PPC630.
16084         * rs6000.md (scheduling information): Add lmul and ldiv
16085         representing 64-bit integer multiply and divide.  Add rs64a and
16086         PPC630 information.
16087         (ashldi3): Add support for "rldic" instruction.
16088         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
16089
16090 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
16091
16092         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
16093         instead of V8 for sparclite86x in cpu_table.
16094
16095 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16096
16097         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
16098         output_file_directive.
16099
16100 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
16101
16102         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
16103         tree for op1, not the rtl.
16104
16105 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
16106
16107         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
16108         to m88k_va_start, leaving only the register spill.
16109         (m88k_build_va_list): New.
16110         (m88k_va_start): New.
16111         (m88k_va_arg): New.
16112         * m88k.h (BUILD_VA_LIST_TYPE): New.
16113         (EXPAND_BUILTIN_VA_START): New.
16114         (EXPAND_BUILTIN_VA_ARG): New.
16115
16116 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
16117
16118         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
16119         Rename from expand_builtin_saveregs.
16120         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
16121
16122 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
16123
16124         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
16125         for the register spill block.
16126         (i960_build_va_list): New.
16127         (i960_va_start): New.
16128         (i960_va_arg): New.
16129         * i960.h (BUILD_VA_LIST_TYPE): New.
16130         (EXPAND_BUILTIN_VA_START): New.
16131         (EXPAND_BUILTIN_VA_ARG): New.
16132         * i960.md (store_multiple): Use change_address on individul mems.
16133
16134 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
16135
16136         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
16137         an ARRAY_TYPE.
16138         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
16139         (expand_builtin_va_end): Evaluate arg for side effects.
16140         * c-common.c (c_common_nodes_and_builtins): Construct a
16141         va_list_arg_type_node to handle array decomposition to pointer.
16142
16143 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
16144
16145         * except.c (start_dynamic_cleanup): Use force_operand on the
16146         buffer's address.
16147
16148 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
16149
16150         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
16151         * c4x.c (c4x_va_arg): New.
16152
16153 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
16154
16155         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
16156         has manual_pop set.
16157
16158 1999-07-26  Nathan Sidwell  <nathan@acm.org>
16159
16160         * eh-common.h (__eh_matcher): Prototype correctly.
16161
16162 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
16163
16164         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
16165         (TARGET_SINGLE_PIC_BASE): Likewise.
16166         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
16167         definitions.
16168         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
16169         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
16170         (TARGET_OPTIONS): Add -mpic-register=N.
16171         (OUTPUT_INT_ADDR_CONST): New macro.
16172         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
16173         LEGITIMATE_PIC_OPERAND_P): Likewise.
16174         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
16175         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
16176         output_addr_const directly.
16177         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
16178         ARM port.
16179         (thumb_pic_register, thumb_pic_register_string): Declare.
16180
16181         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
16182         from arm.c.
16183         (label_mentioned_p): New function: Imported from arm.c.
16184         (legitimize_pic_address): New function: Imported from arm.c.
16185         (is_pic):New function: Imported from arm.c.
16186         (thumb_finalize_pic):New function: Imported from arm.c.
16187         (add_constant): Cope with PIC constants.
16188         (fixit): Cope with PIC constants.
16189         (output_return): Do not treat the PIC register as live if
16190         TARGET_SINGLE_PIC_BASE is true.
16191         (thumb_function_prologue): Do not treat the PIC register as live if
16192         TARGET_SINGLE_PIC_BASE is true.
16193         (thumb_expand_prologue): Do not treat the PIC register as live if
16194         TARGET_SINGLE_PIC_BASE is true.
16195         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
16196         TARGET_SINGLE_PIC_BASE is true.
16197         (thumb_print_operand): Accept '|'.
16198         (thumb_override_options): Process PIC options.
16199
16200         * config/arm/thumb.md (movsi): Support PIC.
16201         (call_insn): Change "i" constraint to "X".
16202         (call_value_insn): Likewise.
16203         (consttable_4, consttable_8, consttable_end): Set and clear
16204         "making_const_table" as appropriate.
16205         (pic_load_addr, pic_add_dot_plus_four): New insns.
16206
16207         * invoke.texi (Thumb Options): Fix spelling.  Document new
16208         options -msingle-pic-base and -mpic-register=.
16209
16210 1999-07-26  Andrew Haley  <aph@cygnus.com>
16211
16212         * config/m32r/initfini.c (__init): Use a full word immediate for
16213         __fini: this allows it to be placed in any memory region.
16214
16215         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
16216         -mmodel=medium.  This is OK for all memory models.
16217
16218 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
16219
16220         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
16221         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
16222
16223 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
16224
16225         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
16226         defined.
16227
16228         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
16229
16230 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
16231
16232         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
16233         (BUILD_VA_LIST_TYPE): New.
16234         (EXPAND_BUILTIN_VA_START): New.
16235         (EXPAND_BUILTIN_VA_ARG): New.
16236         * i860.c (output_delayed_branch): Disable.
16237         (output_delay_insn): Likewise.
16238         (i860_saveregs): New.
16239         (i860_build_va_list): New.
16240         (i860_va_start): New.
16241         (i860_va_arg): New.
16242         * i860.md: Disable all peepholes using output_delayed_branch.
16243         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
16244
16245 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
16246
16247         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
16248         (BUILD_VA_LIST_TYPE): New.
16249         (EXPAND_BUILTIN_VA_START): New.
16250         (EXPAND_BUILTIN_VA_ARG): New.
16251         * clipper.c (clipper_builtin_saveregs): Only dump registers.
16252         Return the address of the save area.
16253         (clipper_build_va_list): New.
16254         (clipper_va_start): New.
16255         (clipper_va_arg): New.
16256
16257 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
16258
16259         * arc.h (EXPAND_BUILTIN_VA_START): New.
16260         (EXPAND_BUILTIN_VA_ARG): New.
16261         * arc.c (arc_setup_incoming_varargs): Set alias set of
16262         varargs save area.
16263         (arc_va_start): New.
16264         (arc_va_arg): New.
16265
16266 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
16267
16268         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
16269         (BUILD_VA_LIST_TYPE): New.
16270         (EXPAND_BUILTIN_VA_START): New.
16271         (EXPAND_BUILTIN_VA_ARG): New.
16272         * alpha.c (alpha_builtin_saveregs): Delete.
16273         (alpha_build_va_list): New.
16274         (alpha_va_start): New.
16275         (alpha_va_arg): New.
16276
16277 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
16278
16279         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
16280         column zero.
16281         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
16282         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
16283
16284         * gcc.texi: More changes related to list conversion.
16285         * invoke.texi: Likewise.
16286
16287 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
16288
16289         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
16290         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
16291         (expand_builtin_next_arg): Accept ARGLIST not EXP.
16292         (stabilize_va_list): New function.
16293         (std_expand_builtin_va_start): New function.
16294         (expand_builtin_va_start): New function.
16295         (get_varargs_alias_set): New function.
16296         (std_expand_builtin_va_arg): New function.
16297         (expand_builtin_va_arg): New function.
16298         (expand_builtin_va_end): New function.
16299         (expand_builtin_va_copy): New function.
16300         (expand_builtin): Call them.
16301         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
16302         __builtin_{varargs_start,stdarg_start,end,copy}.
16303         (build_va_arg): New function.
16304         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
16305         (build_va_arg): Declare.
16306         * c-decl.c (ptr_type_node, va_list_type_node): New.
16307         * c-parse.gperf (__builtin_va_arg): New.
16308         * c-parse.in (VA_ARG): New token.
16309         (unary_expr): Recognize it.
16310         * expr.c (expand_expr): Expand VA_ARG_EXPR.
16311         * expr.h (std_expand_builtin_va_start): Declare.
16312         (std_expand_builtin_va_arg): Declare.
16313         (expand_builtin_va_arg): Declare.
16314         (get_varargs_alias_set): Declare.
16315         * tree.def (VA_ARG_EXPR): New.
16316         * tree.h (BUILT_IN_VARARGS_START): New.
16317         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
16318         (ptr_type_node, va_list_type_node): Declare.
16319         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
16320         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
16321         * m88k.h, m88k.c: Likewise.
16322         * mn10300.h, mn10300.c: Likewise.
16323         * pa.h, pa.c: Likewise.
16324         * rs6000.h, rs6000.c: Likewise.
16325         * sh.h, sh.c: Likewise.
16326         * sparc.h, sparc.c: Likewise.
16327
16328         * emit-rtl.c (operand_subword): Copy alias set.
16329         (change_address): Likewise.
16330
16331 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
16332
16333         * pa.c (compute_frame_size): Scan all the used callee saved registers,
16334         not just the first one.
16335
16336 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
16337
16338         * config/arm/arm.h (TARGET_SWITCHES): Add
16339         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
16340         (TARGET_OPTIONS): Add -mpic-register=.
16341         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
16342         (arm_pic_register_string): Declare.
16343         (NEED_PLT_GOT): Delete, replace with ...
16344         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
16345         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
16346         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
16347         * config/arm/arm.c (arm_override_options): Add new option
16348         -mpic-register=N.
16349         (arm_pic_register_string): New variable.
16350         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
16351         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
16352         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
16353         (output_return_instruction): Likewise.
16354         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
16355         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
16356         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
16357
16358         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
16359         mention of -msched-prolog.  Document new options -msingle-pic-base
16360         and -mpic-register=.
16361
16362 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
16363
16364         * haifa-sched.c (reemit_notes): Tidy.
16365         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
16366         haifa's routine.
16367
16368 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
16369
16370         * explow.c (trunc_int_for_mode): New function.
16371         (plus_constant_wide): Use it.
16372         * combine.c (simplify_and_const_int): Likewise.
16373         (merge_outer_ops): Likewise.
16374         (simplify_shift_const): Likewise.
16375         * cse.c (simplify_unary_operation): Likewise.
16376         (simplify_binary_operation): Likewise.
16377         * emit-rtl.c (operand_subword): Likewise.
16378         * rtl.h: Declare it.
16379
16380 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16381
16382         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
16383         (use NUM_REGS instead of NUM_INTS).
16384
16385 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16386
16387         * builtins.c: New file.
16388         * expr.c (saveregs_value, apply_args_value):  Delete definition,
16389         moved into builtins.c.
16390         (string_constant): No longer static.
16391         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
16392         apply_args_size, apply_result_size, result_vector,
16393         expand_builtin_apply_args, expand_builtin_apply,
16394         expand_builtin_return): Delete functions, moved into builtins.c.
16395         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
16396         * expr.h (saveregs_value, apply_args_value): Declare variables.
16397         (expand_builtin, string_constant): Declare functions.
16398         * Makefile.in: Update to build builtin.o.
16399
16400 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
16401
16402         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
16403         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
16404         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
16405         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
16406         false.
16407         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
16408         Define to zero.
16409
16410 1999-07-21  Michael Meissner  <meissner@cygnus.com>
16411
16412         * print-rtl.c (print_rtx): Print the names of the virtual
16413         registers.
16414
16415 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
16416
16417         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
16418         introduced in previous delta.
16419
16420 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16421
16422         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
16423         to avoid name clash.
16424
16425 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16426
16427         * c-lex.c (yylex) : Correct the test for overflow when lexing
16428         integer literals.
16429
16430 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
16431
16432         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
16433         (adjust_priority): Always call ADJUST_PRIORITY.
16434         (schedule_insn): Only put insns into the ready at cost 0.
16435         (schedule_block): Remove redundant initial sort.  Give clock_var
16436         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
16437         is not 0.
16438         * tm.texi (MD_SCHED_REORDER): Update docs.
16439
16440         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
16441         * sparc.c (ultra_reorder_called_this_block): Delete.
16442         (ultrasparc_sched_init): Don't set it.
16443         (ultrasparc_sched_reorder): Don't check it.
16444
16445 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
16446
16447         * rs6000.h (struct rs6000_args): Add sysv_gregno.
16448         * rs6000.c (init_cumulative_args): Init sysv_gregno.
16449         (function_arg_boundary): Align DFmode.
16450         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
16451         to get fp reg and stack overflow correct.
16452         (function_arg): Likewise.
16453         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
16454         (setup_incoming_varargs): Restructure for ABI_V4; use
16455         function_arg_advance to skip final named argument.
16456         (expand_builtin_saveregs): Properly unskip the last integer arg
16457         when doing varargs.  Adjust overflow location calculation.
16458
16459         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
16460         explicitly unsigned.
16461         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
16462         (__VA_GP_REGSAVE): Similarly.
16463         (__va_longlong_p): Delete.
16464         (__va_arg_type_violation): New declaration.
16465         (va_arg): Restructure.  Flag promotion errors.  Align double.
16466         TFmode passed by reference.
16467
16468         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
16469         in the HOST_BITS_PER_WIDE_INT > 32 case.
16470
16471 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
16472
16473         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
16474
16475 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
16476
16477         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
16478         * toplev.c (documented_lang_options): Add -fpreprocessed.
16479         * cpplib.h (struct cpp_buffer): Add preprocessed.
16480         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
16481         (cpp_start_read): Don't expand macros or emit an initial #line
16482         directive if -fpreprocessed.
16483
16484 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
16485
16486         * cpplib.h (struct cpp_buffer): Added manual_pop for
16487         better C++ tokenization.
16488         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
16489         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
16490         * c-common.c (cpp_token): Make non-static.
16491
16492 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16493
16494         * c-common.h: New file.
16495         * c-common.c (permanent_obstack): Delete unused declaration.
16496         (c_global_trees): New array.
16497         (c_common_nodes_and_builtins): New function; split off common code
16498         from init_decl_processing in both c-decl.c and cp/decl.c.
16499         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
16500         c_global_trees and accessor macros defined in c-common.h.
16501         Include c-common.h.
16502         * c-decl.c: Delete definitions for tree nodes that were replaced by
16503         c_global_trees.
16504         (init_decl_processing): Build void_list_node.
16505         Call c_common_nodes_and_builtins; delete code to generate the common
16506         builtins here.
16507         * objc/objc-act.c (build_module_descriptor): Rename variable
16508         void_list_node to avoid clash with c-common.h.
16509
16510         * Makefile.in: Update dependencies.
16511         * objc/Make-lang.in: Likewise.
16512
16513 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
16514
16515         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
16516         (UNIQUE_SECTION_P): Likewise.
16517         (UNIQUE_SECTION): Likewise.
16518
16519 1999-07-19  Linas Vepstas  <linas@linas.org>
16520
16521         * config/i370/README: New file.
16522         * config/i370/linux.h: New file.
16523         * config/i370/mvs.h: New file.
16524         * config/i370/oe.h: New file.
16525         * config/i370/t-linux: New file.
16526         * config/i370/t-mvs: New file.
16527         * config/i370/t-oe: New file.
16528         * config/i370/x-oe: New file.
16529         * config/i370/xm-linux.h: New file.
16530         * config/i370/xm-mvs.h: New file.
16531         * config/i370/xm-oe.h: New file.
16532
16533         * i370.c (label_node_t): Add first_ref_page, label_addr,
16534         label_first_ref, label_last_ref members.
16535         (mvs_need_base_reload): Renamed from mvs_label_emitted.
16536         (MAX_MVS_LABEL_SIZE): Define.
16537         (MAX_LONG_LABEL_SIZE): Define.
16538         (alias_node_t, alias_anchor, alias_number): New.
16539         (mvs_function_table): Reorder for EBCDIC.
16540         (ascebc, ebcasc): Unconditionally define.
16541         (i370_branch_dest, i370_branch_length): New functions.
16542         (i370_short_branch, i370_label_scan): New functions.
16543         (mvs_get_label): Renamed from mvs_add_label.  Search for
16544         an existing label before creating a new one.
16545         (mvs_add_label): New function.
16546         (mvs_get_label_page): New function.
16547         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
16548         over the entire list.
16549         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
16550         (mvs_check_page) [TARGET_ELF_ABI]: New function.
16551         (mvs_add_alias, mvs_need_alias): New functions.
16552         (mvs_get_alias, mvs_check_alias): New functions.
16553         (handle_pragma): New function.
16554         (mvs_function_check): New function.
16555         (unsigned_jump_follows_p): Search harder.
16556         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
16557         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
16558         * i370.h (TARGET_VERSION): Delete.
16559         (CPP_SPEC, CPP_PREDEFINES): Delete.
16560         (mvs_label_emitted): Delete.
16561         (TARGET_EBCDIC): Delete.
16562         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
16563         (HANDLE_PRAGMA): Define.
16564         (HARD_REGNO_NREGS): Handle complex modes.
16565         (HARD_REGNO_MODE_OK): Likewise.
16566         (CLASS_MAX_NREGS): Likewise.
16567         (RET_REG): Likewise.
16568         (EXTRA_CONSTRAINT): Define.
16569         (RETURN_IN_MEMORY): True for DImode.
16570         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
16571         (FUNCTION_PROFILER): Delete.
16572         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
16573         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
16574         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
16575         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
16576         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
16577         (ASM_FILE_START): Add "RMODE ANY".
16578         (ASM_OUTPUT_EXTERNAL): Check for aliases.
16579         (ASM_GLOBALIZE_LABEL): Likewise.
16580         (ASM_OUTPUT_LABELREF): Likewise.
16581         (ASM_OUTPUT_COMMON): Likewise.
16582         (PRINT_OPERAND): Handle 'K', 'W', default.
16583         (PRINT_OPERAND_ADDRESS): New.
16584         (Lots of defines): Add support for TARGET_ELF_ABI.
16585         * i370.md (attr length): New.  Define for all patterns.
16586         (*): Lots of tweeks to assembly output and constraints.
16587
16588 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
16589
16590         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
16591         Disable patterns performing SImode comparisons with SImode values
16592         if TARGET_POWERPC64 and instruction does not sign-extend or does
16593         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
16594         differ for signed quantities.
16595         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
16596         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
16597         (decrement_and_branch_on_count): Add 64-bit variant.
16598
16599 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16600
16601         * final.c (output_asm_insn): When searching for the matching string
16602         for a given dialect, don't run past the end of the list of
16603         alternatives if there are fewer alternatives in the template than
16604         dialects.
16605
16606 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
16607
16608         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
16609         Removed paragraph about compression of files and size limitation,
16610         duplicated in the FAQ.  Use gcc-patches for posting patches.
16611         * gcc.c (main): Updated URL with bug reporting instructions to
16612         gcc.gnu.org.  Removed e-mail address.
16613         * system.h (abort): Likewise.
16614
16615 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16616
16617         * Makefile.in (stmp-multilib-sub): Make the files extracted
16618         from $(LIBGCC1) writable.
16619
16620 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
16621
16622         * config/arm/aout.h: Reformat for improved readability.
16623
16624         * config/arm/arm.h: Reformat for improved readability.
16625         Replace uses of fprintf with asm_fprintf where appropriate.
16626         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
16627         function declaration assembler actions.
16628         (NUM_INTS): New macro: Convert from bytes to words.
16629         (NUM_REGS): New macro: Compute number of registers required to
16630         hold a quanitity of tyep MODE.
16631         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
16632         types.
16633         (NUM_ARG_REGS): New macro: The number of argument registers
16634         available.
16635         (ARG_REGISTER): New macro: Compute the register number of the Nth
16636         argument register.
16637         (LAST_ARG_REGNUM): New macro: The number of the last argument
16638         register.
16639         (SP_REGNUM): New macro: Register number of the stack pointer.
16640         (FP_REGNUM): New macro: Register number of the frame pointer.
16641         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
16642         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
16643         CUMULATIVE_ARGS so that it counts registers not bytes.
16644
16645         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
16646         TARGET_INTERWORK.
16647         Replace uses of fprintf with asm_fprintf where appropriate.
16648         (output_ascii_pseudo_op): Replace with version from thumb.c
16649
16650         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
16651
16652         * config/arm/elf.h (CPP_PREDEFINES): Replace with
16653         SUBTARGET_CPP_SPEC.
16654         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
16655         (ASM_FILE_START): Emit ASM_APP_OFF.
16656
16657 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
16658
16659         * pa.c (compute_frame_size): Round frame according to
16660         STACK_BOUNDARY rather than a hardwired value.
16661
16662         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
16663
16664         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
16665         of "1".
16666         * configure: Rebuilt.
16667
16668         * configure.in (hppa*-*-linux*): New configuration.
16669         * configure: Rebuilt.
16670         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
16671         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
16672         * pa/pa-linux.h: New file.
16673         * pa/t-linux: New file.
16674         * pa/xm-linux.h: New file.
16675
16676         * pa.c (hppa_legitimize_address): Change references from SImode to
16677         either Pmode or word_mode as appropriate.
16678         (emit_move_sequence, store_reg, load_reg): Likewise.
16679         (set_reg_plus_d, hppa_expand_prologue): Likewise.
16680         (output_mul_insn): Likewise.
16681         * pa.h (PROMOTE_MODE): Likewise.
16682         (INITIALZE_TRAMPOLINE): Likewise.
16683         (Pmode): Define to word_mode.
16684
16685         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
16686         value of 4.  Allocate 8 bytes for each FP register save.
16687         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
16688         value of 4.
16689         (hppa_expand_prologue): Likewise.
16690         * pa.h (PROMOTE_MODE): Likewise.
16691         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
16692         (FUNCTION_ARG_BOUNDARY): Likewise.
16693
16694         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
16695
16696         * pa.c (out_of_line_prologue_epilogue): Delete.
16697         (override_options): Remove -mspace related code.
16698         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
16699         (compute_frame_size): Only allocate space for register that
16700         actually need to be saved.
16701         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
16702         (TARGET_SWITCHES): Remove -mspace, -mno-space
16703         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
16704         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
16705         * pa/ee.asm, pa/ee_fp.asm: Delete.
16706
16707         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
16708
16709         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
16710         directive in column zero.
16711
16712 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
16713
16714         * m68k.c (output_function_prologue): Fix computation of save mask
16715         when generating PIC code.
16716
16717 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
16718
16719         * tree.c (build_type_attribute_variant): Move current_obstack restore
16720         after build_qualified_type call.
16721
16722 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
16723
16724         * configure.in: Use t-iris6, even with GNU LD.
16725         * config/mips/iris6gld.h: Fix typo in linker spec.
16726         * config/mips/t-iris6gld: Remove.
16727
16728 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
16729
16730         * rs6000.md (insv, extzv): Remove SImode dependence in named
16731         patterns.  Explicitly generate DImode RTL if PowerPC64 and
16732         operand is DImode.
16733         (insvdi): Reverse start and size in instruction template.
16734
16735 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
16736
16737         * invoke.texi: Typo fixes.
16738
16739 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
16740
16741         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
16742         handle at this time instead of silently generating incorrect code.
16743         (gen_imagpart): Likewise.
16744
16745         * reload.c (find_reloads): Emit a USE for a pseudo register without
16746         a hard register if we could not create an optional reload for the
16747         pseudo.
16748
16749 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16750
16751         * c-typeck.c (output_init_element, process_init_element):
16752         When advancing constructor_unfilled_fields for a RECORD_TYPE,
16753         check for nameless bit fields.
16754
16755 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
16756
16757         * regclass.c (scan_one_insn): Notice subregs that change the
16758         size of their operand.
16759         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
16760
16761 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
16762
16763         * configure.in (alpha*-*-*): Include alpha/t-ieee.
16764         * configure: Rebuilt.
16765         * alpha/t-ieee: New file.
16766
16767 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
16768
16769         * rs6000.c (find_addr_reg): Do not select r0 as an address
16770         register.
16771
16772 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
16773
16774         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
16775
16776 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
16777
16778         * rs6000.md (movsf): Do not force easy FP constants into memory.
16779
16780         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
16781         immed_double_const to ensure they are properly truncated then
16782         sign extended.
16783
16784 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
16785
16786         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
16787         always unless NO_DEBUG is used.  Compile this code
16788         unconditionally.
16789         (replace_symbols_in_block): Compile it unconditionally.
16790
16791 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
16792
16793         * configure.in (i?86-*-elf*): New target.
16794         * configure: Rebuilt.
16795         * i386/i386elf.h, i386/t-i386elf: New files.
16796
16797 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
16798
16799         * toplev.c (main): Don't complain about saying -gdwarf.
16800         (rest_of_compilation): Remove redundant code.
16801
16802 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
16803
16804         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
16805
16806 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
16807
16808         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
16809         "Li960R:", to avoid name clash.
16810
16811 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16812
16813         * loop.c (check_dbra_loop): When reversing a loop, delete all
16814         REG_EQUAL notes referencing the reversed biv except those which are
16815         for a giv based on it.
16816
16817 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
16818
16819         * version.c: Drop "gcc-" prefix from version #.
16820
16821 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
16822
16823         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
16824         the label if we're being verbose.
16825
16826 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
16827
16828         * m68k.c (output_function_prologue): Add pic register to mask
16829         if live and flag_pic.
16830         (output_function_epilogue): Likewise.
16831
16832 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
16833
16834         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
16835         directives in column zero.
16836
16837         * pa/elf.h (ASM_FILE_START): Define.
16838         * pa/som.h (ASM_FILE_START): Include .level directives.
16839         * pa/hpux10.h (ASM_FILE_START): Delete.
16840         * pa/hpux11.h (ASM_FILE_START): Delete.
16841
16842         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
16843
16844 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16845
16846         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
16847         when reload_out equals reload_in.
16848
16849 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
16850
16851         * invoke.texi (Spec Files): New node: Describe the contents of
16852         spec files.
16853
16854 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
16855
16856         * invoke.texi (DEC Alpha Options): Put @end table at
16857         beginning of line, to avoid confusing texi2html.
16858
16859 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
16860
16861         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
16862         introduced in previous delta.
16863
16864 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16865
16866         * reload1.c (gen_reload): When synthesizing a 3 operand add
16867         sequence, improve test for when to reload OP1 into the reload
16868         register instead of OP0.
16869
16870 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
16871
16872         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
16873
16874 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
16875
16876         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
16877         string literal.
16878
16879 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
16880
16881         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
16882         (va_dcl): Use __builtin_va_alist_t.
16883
16884 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
16885
16886         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
16887         on the permanent_obstack.
16888         * dwarfout.c (output_type): Likewise.
16889
16890 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16891
16892         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16893         Merged from c-typeck.c and cp/typeck.c.
16894         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16895         Merged into c-common.
16896
16897 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
16898
16899         * c-lex.c (errorcount): Declare it.
16900         (finish_parse): Update errorcount when using CPPLIB.
16901
16902 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
16903
16904         * fixinc/inclhack.def(end_else_label): Double the backslash so
16905         sed gets a chance to see it.
16906         * fixinc/inclhack.sh: regen
16907         * fixinc/fixincl.x: regen
16908
16909 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
16910
16911         Add framework to support armv5 architecture when it becomes
16912         available:
16913
16914         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
16915         (arm_arch5): New variable.
16916         (all_architectures): Add armv5 line.
16917         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
16918         -march=armv5 is specified on the command line.
16919         (arm_arch5): Export this variable.
16920         * invoke.texi: Document new string accepted by -march= switch for
16921         ARM ports.
16922
16923         * config/arm/arm.h: Replace use of constant 12 as a register
16924         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
16925         * config/arm/arm.c: Replace use of constant 12 as a register
16926         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
16927
16928         * config/arm/elf.h: Tidy up.
16929         * config/arm/coff.h: Tidy up.
16930
16931 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
16932
16933         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
16934         * gcc/config/mips/t-iris6gld: New file.
16935         * gcc/config/mips/iris6gld.h: Likewise.
16936
16937 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16938
16939         * c-decl.c (widest_integer_literal_type_node,
16940         widest_unsigned_literal_type) : New.
16941         (init_decl_processing): Handle/use the two new types.
16942         * c-common.c (type_for_size,type_for_mode) : Same.
16943         * c-lex.c (yylex) : Same.
16944         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16945         Same.
16946         * c-tree.h (widest_integer_literal_type_node,
16947         widest_unsigned_literal_type) : New.
16948
16949 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
16950
16951         * dwarfout.c (field_byte_offset): Correctly compute the object's
16952         byte offset for the first bit of a field which crosses an alignment
16953         boundary on a !BYTES_BIG_ENDIAN target.
16954
16955 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
16956
16957         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
16958         ntohs.
16959
16960 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
16961                           Jeff Law <law@cygnus.com>
16962
16963         * ginclude/varargs.h (va_dcl): Use word_mode for type of
16964         __builtin_va_list.
16965
16966         * except.c: Include intl.h.
16967         (expand_eh_return): Set current_function_cannot_inline.
16968         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
16969         * function.h (struct function): Add eh_return_stub_label.
16970         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
16971         * Makefile.in (except.o): Depend on intl.h.
16972
16973 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
16974
16975         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
16976         same as offsettable in cases 1 and 2.
16977
16978 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
16979
16980         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
16981         (extlh, extwh): Likewise.
16982
16983 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
16984
16985         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
16986
16987 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
16988
16989         * configure.in: Add arm-pe and thumb-pe targets.
16990         * configure: Regenerate.
16991
16992         * thumb.c (arm_naked_function_p): New function: Determines if
16993         a function is naked (has no gcc generated prologue/epilogue).
16994         (is_called_in_ARM_mode): Return true if the func has the
16995         interfacearm attribute.
16996         (output_return): Do not generate a return for naked functions.
16997         (thumb_function_prologue): Do not generate a prologue for
16998         naked functions.
16999         (thumb_expand_prologue): Do not generate a prologue for naked
17000         functions.
17001         (thumb_expand_epilogue): Do not generate an epilogue for naked
17002         functions.
17003         (arm_valid_machine_decl_attribute): New function, copied from
17004         arm.c:  Permit naked and interfacearm attributes.
17005
17006         * config/arm/pe.c: New file: Support code for arm-pe target.
17007         * config/arm/pe.h: New file: Header file for arm-pe target.
17008         * config/arm/tpe.h: New file: Header file for thumb-pe target.
17009         * config/arm/t-thumb-pe: New file: Makefile fragment for
17010         thumb-pe target.
17011
17012 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
17013
17014         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
17015         -fPIC or -fpic is specified.
17016
17017 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
17018
17019         * expr.c (emit_block_move): Use copy_to_mode_reg for
17020         !TARGET_MEM_FUNCTIONS case too.
17021
17022         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
17023         appropriate.
17024         * configure: Rebuilt.
17025         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
17026         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
17027         definitions made redundant by dbxelf.h inclusion.  Delete
17028         lots of definitions related to assembly output that are
17029         specific to the SOM object format.
17030         * pa.c (output_function_prologue): Do not emit the function's
17031         name for OBJ_ELF.
17032         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
17033         * pa-pro.h: Deleted.
17034         * som.h: New file with SOM specific definitions.
17035         * elf.h: New file with ELF specific definitions.
17036
17037         * elfos.h (const_section): Output a tab before assembler directives.
17038         (ctors_section, dtors_section): Likewise.
17039         (ASM_OUTPUT_SECTION_NAME): Likewise.
17040
17041         * pa/pa1.h: Delete unused file.
17042
17043 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
17044
17045         * configure.in (hppa*-hp-hpux11*): New configuration.
17046         * configure: Rebuilt.
17047         * pa/pa-hpux11.h: New file.
17048         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
17049         command line.
17050
17051         * mips.md (leasi, leadi): New patterns.
17052
17053         * expr.c (emit_block_move): Properly handle case where one of the
17054         block move arguments has a queued increment or decrement.
17055         (clear_storage): Similarly.  Fix formatting goof.
17056
17057 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
17058
17059         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
17060         semicolon from the BSD VA_LIST replacement expression.
17061
17062         * fixinc/inclhack.sh: regen
17063         * fixinc/fixincl.x: regen
17064
17065         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
17066         now use the fixincl program.
17067
17068 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
17069
17070         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
17071         case.  Also make the PIC register call_used.
17072
17073         * m68k.h (FINALIZE_PIC): Delete.
17074         * m68k.c (finalize_pic): Delete.
17075
17076 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
17077
17078         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
17079         to memory.
17080
17081 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
17082
17083         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
17084
17085 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
17086
17087         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
17088
17089 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
17090
17091         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
17092
17093 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
17094
17095         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
17096
17097 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
17098
17099         * rs6000.c (output_toc): Always use hex values for floating-point
17100         constants.  Store single-precision values in upper-half of TOC
17101         entry in 64-bit mode.
17102         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
17103         to final constraints.
17104         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
17105         (fctiwz): Improve accuracy of RTL for pattern.
17106
17107 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
17108
17109         * expr.c (expand_expr): Allow RTL_EXPR's through the
17110         MAX_INTEGER_COMPUTATION_MODE checks.
17111
17112 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
17113
17114         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
17115         such that MASK_SUPPORT_ARCH is not negative.
17116
17117 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
17118
17119         * loop.c (verify_dominator): Properly handle ADDR_VEC and
17120         ADDR_DIFF_VEC insns that appear inside loops.
17121
17122 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
17123                           Jeff Law <law@cygnus.com>
17124
17125         * rs6000.md (movdf_hardfloat32): Revert previous patch.
17126         Handle LO_SUM the same as offsettable in cases 1 and 2.
17127         * rs6000.c (find_addr_reg): Revert previous patch.
17128
17129 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
17130
17131         * system.h (strstr): New external function declaration.
17132         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
17133         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
17134         * config.in, configure: Rebuilt.
17135
17136 1999-06-24  Tom Tromey  <tromey@cygnus.com>
17137
17138         * gcc.c (main): Read user-specified specs files after computing
17139         additional startfile_prefixes.
17140
17141 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
17142
17143         Revert these two patches:
17144
17145         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17146         * loop.c (strength_reduce): When doing biv->giv conversion, update
17147         reg note of NEXT->insn.
17148
17149         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17150         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
17151         reg_biv_class.
17152         (recombine_givs): Set ix field after sorting.
17153
17154 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17155
17156         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
17157         for the parts of an UNSPEC / UNSPEC_VOLATILE.
17158
17159 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
17160
17161         *fixinc/inclhack.def:  Add fix development commentary
17162         (read_ret_type): reactivate and add selection clause
17163         (zzz_*): tweak output file name to match what is used in hackshell.tpl
17164         *fixinc/{fixincl.x|inclhack.sh}: regen
17165
17166 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
17167
17168         * expr.c (expand_expr): STRIP_NOPS before checking against
17169         MAX_INTEGER_COMPUTATION_MODE
17170         (check_max_integer_computation_mode): Likewise.
17171
17172 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
17173
17174         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
17175
17176 1999-06-22  Jim Wilson  <wilson@cygnus.com>
17177
17178         * expr.c (store_expr): When target is a promoted subreg, return a
17179         promoted subreg as a result.
17180
17181 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
17182
17183         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
17184         coding standards.
17185         (dwarf2out_define): Mark unused parameters appropriately.
17186         (gen_unspecified_parameters_die): Ditto.
17187         (gen_subprogram_die): Fix signed/unsigned warnings.
17188         (gen_variable_die): Ditto.
17189
17190 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
17191
17192         * fixinc/inclhack.def(end_else_label): combined else_label
17193         and endif_label and fixed the sed expression.
17194         *fixinc/{fixincl.x|inclhack.sh}: regen
17195
17196 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
17197
17198         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
17199         'x' when handling non-offsettable addresses
17200
17201 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
17202
17203         * final.c (shorten_branches): Don't try to split an insn that has
17204         been deleted.
17205
17206 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
17207
17208         * config/mips/mips.c (symbolic_expression_p): New function.
17209         (mips_select_rtx_section): Put symbolic expressions in the
17210         data section, not the read-only data section.
17211
17212 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
17213
17214         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
17215
17216 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
17217
17218         * collect2.c (main): Log frame table count.
17219         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
17220         (scan_prog_file) [COFF]: Handle frame tables.
17221
17222         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
17223         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
17224         * alpha/elf.h: Undef them again.
17225         * alpha/vms.h: Remove their definitions.
17226
17227 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17228
17229         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
17230         remove the clobber of r0 and change the REG_UNUSED note to
17231         REG_INC.
17232
17233 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
17234
17235         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
17236         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
17237         fits in HOST_WIDE_INT and one uses union to access a long constant
17238         as double.
17239
17240 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
17241
17242         * sparc.c (sparc_override_options): Don't allow profiling for
17243         code models other than medlow.
17244         (sparc_function_profiler): New function from old FUNCTION_PROFILER
17245         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
17246         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
17247         (sparc_block_profiler): Likewise.
17248         (sparc_function_block_profiler_exit): Likewise.
17249         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
17250         (FUNCTION_BLOCK_PROFILER): Likewise.
17251         (BLOCK_PROFILER): Likewise.
17252         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
17253         (MCOUNT_FUNCTION): New.
17254         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
17255         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
17256         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
17257         (MCOUNT_FUNCTION): New.
17258         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
17259         (BLOCK_PROFILER): Delete.
17260         (MCOUNT_FUNCTION): New.
17261
17262 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
17263
17264         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
17265
17266 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
17267
17268         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
17269         Add the macros.
17270
17271         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
17272         Ditto.
17273
17274         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
17275         Ditto.
17276
17277         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
17278         Ditto.
17279
17280 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
17281
17282         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
17283         types.
17284
17285 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
17286
17287         * i386/djgpp.h (LIB_SPEC): New.
17288         (STARTFILE_SPEC): New.
17289
17290         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
17291
17292 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
17293
17294         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
17295         compiler flags.
17296
17297         * system.h (WSTOPSIG): New macro.
17298
17299 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17300
17301         * c-pragma.c (push_alignment): Don't ignore alignments greater than
17302         4 bytes.
17303         (insert_pack_attributes): Take into account member natural
17304         alignment.
17305
17306         * i386/winnt.c (exports_head): New static variable.
17307         (i386_pe_record_exported_symbol): New function.
17308         (i386_pe_asm_file_end): Use.
17309         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
17310         symbols to be emitted at end of assembly.
17311         (ASM_DECLARE_OBJECT_NAME): Likewise.
17312         (ASM_DECLARE_FUNCTION_NAME): Likewise.
17313
17314         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
17315         -iwithprefix.
17316
17317 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
17318
17319         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
17320         in last change.
17321
17322 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
17323
17324         * haifa-sched.c (sched_analyze_1): Use free_list instead of
17325         zapping reg_last_uses directly.
17326         (sched_analyze_2, sched_analyze_insn): Likewise.
17327         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
17328
17329 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
17330
17331         * rs6000.md (movdf_hardfloat32): Use worst case insn length
17332         attributes for cases 1 and 2.
17333
17334 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
17335
17336         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
17337         instead of set.
17338
17339 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
17340
17341         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
17342
17343 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
17344
17345         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
17346         PIC_OFFSET_TABLE_REGNUM for general alloaction.
17347         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
17348         must be stacked if it is used for PIC accesses.
17349         * arm.c (use_return_insn): Handle PIC register specially.
17350         (output_return_instruction): Likewise.
17351         (output_func_{prologue,epilogue}): Likewise.
17352         (output_expand_prologue): Likewise.
17353
17354         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
17355         (*strsi_predec): Renamed from *strqi_predec.
17356         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
17357         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
17358
17359         * arm.c (arm_override_options): Remove warning about PIC code
17360         not being supported.
17361
17362 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
17363
17364         * rs6000.c (find_addr_reg): New function.
17365         * rs6000.h (find_addr_reg): Declare.
17366         (offsettable_addr_operand): Delete.
17367         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
17368         from and stores to GPRs.
17369
17370 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
17371
17372         * alpha.c (alpha_expand_block_move): Use get_insns rather than
17373         gen_sequence as argument to emit_no_conflict_block.
17374
17375 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
17376
17377         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
17378         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
17379         *fixinc/fixincl.x: regen
17380         *fixinc/inclhack.sh: regen
17381
17382 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
17383
17384         * added support for -mpcrel (PC relative addressing for m68k)
17385         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
17386         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
17387         * m68k.c (print_operand_address): Handle 32-bit PIC case.
17388         (comments for general_src_operand): Add some explanation
17389         about EXTRA_CONSTRAINTS.
17390         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
17391         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
17392         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
17393         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
17394         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
17395         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
17396         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
17397         if not already set.
17398         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
17399         * m68k.h (TARGET_PCREL): New target flag.
17400         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
17401         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
17402         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
17403         contains a SYMBOL_REF.  Relax this constraint during reload, since
17404         we want to use the predicates, not reload's built-in concept of a
17405         valid memory address, to control what insns need reloading.
17406         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
17407         operands (essentially 'g', 'm', and 's' under normal circumstances).
17408         * m68k.c (print_operand): Cause printing of pc-relative addresses
17409         to include pc register.
17410         (print_operand_address): Ditto.
17411         (general_src_operand): Accept operands that are not only
17412         general_operands, but are also valid when used as a pc-relative
17413         source.
17414         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
17415         (memory_src_operand): Similar, for memory_operands.
17416         (pcrel_address): New predicate to accept the special case of a
17417         pc-relative address.
17418         * m68k.md (many patterns): Rewrite common SImode, HImode, and
17419         QImode insns to accept *_src_operand instead of *_operand where
17420         pc-relative operands can fit.  For example, a pc-relative operand
17421         can be used as a memory source operand for addsi3, but not as a
17422         memory destination.
17423         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
17424
17425 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
17426
17427         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
17428         .thumb_set pseudo op to mark aliases of thumb functions.
17429
17430 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
17431
17432         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
17433         preference to ASM_OUTPUT_DEF, if it is defined.
17434
17435         * tm.texi: Document new, optional target macro
17436         ASM_OUTPUT_DEF_FROM_DECLS.
17437
17438 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
17439
17440         * fixincludes: ISCNTL patch
17441         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
17442         (dgux_int_varargs): new for DG/UX
17443         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
17444
17445 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
17446
17447         * invoke.texi (ia32 options): Fix typo.
17448
17449 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17450
17451         * loop.c (strength_reduce): When doing biv->giv conversion, update
17452         reg note of NEXT->insn.
17453
17454 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
17455
17456         * loop.c (move_movables): Note issues with replacing REGs with
17457         SUBREGs.
17458         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
17459
17460 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
17461
17462         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
17463
17464         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
17465         the reference to `mcount' was not correct for the ELF on FreeBSD.
17466
17467 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17468
17469         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
17470         reg_biv_class.
17471
17472         (recombine_givs): Set ix field after sorting.
17473
17474 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
17475
17476         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
17477         to safe to extract a subword out of a REG.
17478
17479 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17480
17481         * sh.md (mulsi3): Don't add a no-op move at the end.
17482
17483 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17484
17485         * cse.c (cse_insn): Don't put hard register source into tables for
17486         the last insn of a libcall.
17487
17488 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17489
17490         * loop.c (strength_reduce): Insert sets of derived givs at every
17491         biv increment, even if it's the only one.
17492
17493 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
17494
17495         * dwarfout.c (add_incomplete_type): New fn.
17496         (output_type): Call it.
17497         (retry_incomplete_types): New fn.
17498         (dwarfout_finish): Call it.
17499
17500         From Eric Raskin <ehr@listworks.com>:
17501         (output_type): Output types for bases.
17502
17503 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
17504
17505         * mips.c (mips_output_conditional_branch): Add `break'
17506         between `default' label and `close braces'.
17507
17508 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
17509
17510         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
17511         specifications and make it realistic.
17512         (LIB_SPEC): Likewise.
17513
17514 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
17515
17516         * config/mips/mips.c (mips_secondary_reload_class): Check for
17517         (PLUS (SP) (REG)) and return appropriate register class.
17518         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
17519         Handle (PLUS (SP) (REG)).
17520         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
17521         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
17522         of emit_insn for tablejump.
17523
17524 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
17525
17526         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
17527         asm_fprintf format string by itself.
17528         (output_function_profiler): Likewise.
17529
17530 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
17531
17532         * combine.c (simplify_logical, case AND): Only call
17533         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
17534         or the constant is positive.
17535
17536 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
17537
17538         * configure.in: Fix typo in rs6000-ibm-aix4 case.
17539         * configure: Regenerate.
17540
17541 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
17542
17543         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
17544         require a sub-version #.
17545         * configure: Rebuilt.
17546
17547 1999-06-14  Robert Lipe  (robertlipe@usa.net)
17548
17549         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
17550
17551 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
17552
17553         * c-typeck.c (process_init_element): Detect excess elements in
17554         char array initializer.
17555
17556 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
17557
17558         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
17559
17560 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
17561
17562         * invoke.texi (Option Summary): Add -fpermissive flag.
17563
17564 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
17565
17566         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
17567         that require PIC code sequences.
17568
17569 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
17570
17571         * configure.in: Add new target: thumb-elf.
17572         * configure: Regenerate.
17573         * config/arm/t-thumb-elf: New file: Makefile fragment for
17574         thumb-elf build.
17575         * config/arm/telf.h: New file: Header file for thumb-elf
17576         build.
17577
17578 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
17579
17580         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
17581         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
17582         initializers is some circumstances.
17583
17584         * fixinc/inclhack.def (endif_label): Add additional selector for
17585         more bogus stuff after #endif statements.
17586         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
17587
17588 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17589
17590         * i386/cygwin.h (SET_ASM_OP): Define.
17591
17592 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17593
17594         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
17595
17596 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17597
17598         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
17599         latter.
17600
17601         * sh.md (ic_invalidate_line_i): Remove second alternative.
17602
17603 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
17604
17605         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
17606         test for the presence of valid prototypes.  Delete bypass expr.
17607         (ioctl_fix_ctrl): Correct the selection expression.
17608         (no_double_slash): Correct quoting rules
17609         *fixinc/fixincl.x: regen
17610         *fixinc/inclhack.sh: regen
17611
17612 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
17613
17614         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
17615
17616 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17617
17618         * rs6000.md (movsi_got_internal_mem): Delete.
17619         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
17620         (GOT_TOC_REGNUM): Delete.
17621         (PIC_OFFSET_TABLE_REGNUM): Define.
17622         (FINALIZE_PIC): Disable.
17623         * rs6000.c (rs6000_got_register): New code for fixed pic register.
17624         (rs6000_replace_regno): Delete.
17625         (rs6000_finalize_pic): Likewise.
17626         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
17627
17628 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17629
17630         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
17631         is a note; use <= for the compare; advance P while it is
17632         a NOTE.
17633
17634 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
17635
17636         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
17637         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
17638
17639         * varasm.c (remove_from_pending_weak_list): Verify t->name
17640         is non-NULL before passing it to strcmp.
17641
17642 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
17643
17644         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
17645         the typed arguments are not part of a comment
17646         (ioctl_fix_ctrl): Added a purpose comment
17647         *fixinc/fixincl.x: regenerate
17648         *fixinc/inclhack.sh: regenerate
17649
17650 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17651
17652         * invoke.texi: Add C4x invocation docs.
17653
17654 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17655
17656         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
17657         Define new macros.
17658         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
17659         TARGET_EXPOSE_LDP.
17660         (c4x_legitimize_reload_address): New function.
17661         * config/c4x/c4x.md: Update docs.
17662
17663 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
17664
17665         * fixincludes: Avoid removing '.'.
17666         * fixinc/fixinc.svr4: Likewise.
17667         * fixinc/fixinc.winnt: Likewise.
17668         * fixinc/inclhack.tpl: Likewise.
17669         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
17670
17671 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17672
17673         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
17674         pattern.
17675         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
17676
17677 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
17678
17679         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
17680         correctly.
17681
17682 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
17683
17684         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
17685         * configure: Regenerate.
17686
17687 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
17688
17689         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
17690         values.
17691
17692 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
17693
17694         * fixinc/inclhack.def (avoid_bool): Also catch
17695         "typedef [unsigned] int bool".
17696         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
17697
17698         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
17699         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
17700         * configure: Rebuilt.
17701
17702 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
17703
17704         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
17705         such that we can override its definitions if necessary.
17706         (CPP_SPEC): New define.  Support processor specific predefines via
17707         %(cpp_cpu).
17708         (CC1_SPEC): New define.  Support processor specific compiler
17709         options via %(cc1_cpu).
17710         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
17711         -static.
17712
17713 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17714
17715         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
17716         between sed's -e flag, and the open-quote following it.
17717         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
17718
17719 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
17720                           Jeffrey A Law  (law@cygnus.com)
17721
17722         * varasm.c (assemble_start_function): Remove the function
17723         from the pending weak decls list when we define a function.
17724         (assemble_variable): Similarly for variables.
17725         (weak_finish): Ignore items on the list with a NULL name.
17726         (remove_from_ending_weak_list); New function to "remove" an item
17727         from the pending weak declarations list.
17728
17729 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
17730
17731         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
17732
17733 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
17734
17735         * c-lex.c (GETC): Redefine to call getch.
17736         (UNGETC): Redefine to call put_back.
17737         (putback_buffer): New structure type.
17738         (putback): New static structure.
17739         (getch): New function.
17740         (put_back): New function.
17741         (yylex): Replace unused bytes from bad multibyte character.
17742
17743 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
17744
17745         * cpplib.c (do_define): Cast `alloca' return value.
17746         (do_include, do_undef, do_pragma): Likewise.
17747         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
17748         values.
17749         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
17750         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
17751
17752 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
17753
17754         * sparc.md (abstf2): This should be an expand.
17755         (split after abstf2_notv9): Fix mode.
17756         (abstf2_hq_v9): New pattern.
17757         (abstf2_v9): Only use when no hard quad.
17758         (absdf2_v9): Fix if target is not the same as source.
17759         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
17760         Add correct output constraints.
17761
17762 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
17763
17764         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
17765         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
17766
17767 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
17768
17769         * mips.h (mips_output_conditional_branch): New function.
17770         (mips_adjust_insn_length): Likewise.
17771         (ASSEMBLER_SCRATCH_REGNUM): New macro.
17772         (ADJUST_INSN_LENGTH): Likewise.
17773         * mips.c (print_operand): Add `F' and `W' for floating-point
17774         comparison opcodes.
17775         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
17776         are now in bytes.
17777         (mips_adjust_insn_length): New function.
17778         (mips_output_conditional_branch): New function.
17779         * mips.md (length): Adjust attribute definition to handle
17780         conditional branches.  Change lengths to bytes, rather than
17781         instructions throughout.  Remove length attribute from
17782         instructions whose length is four bytes, and rely on the default
17783         instead.
17784         (dslot): Fix typo in comment.
17785         Reword conditional branch patterns to use
17786         mips_output_conditional_branch.
17787
17788 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17789
17790         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
17791         (LIB_SPEC): Likewise.
17792         Link with -lprof1_r for -g/-pg.
17793
17794 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
17795
17796         * loop.c (check_dbra_loop): Fix change of Jan 19.
17797
17798 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
17799
17800         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
17801         (STARTFILE_SPEC):  Define, override the svr4.h version.
17802         (ENDFILE_SPEC):  Likewise.
17803
17804 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
17805
17806         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
17807         * fixinc/fixincl.x: Regenerated.
17808         * fixinc/inclhack.sh: Regenerated.
17809
17810 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17811
17812         * sh.c (barrier_align): Don't return early for normal branch/barrier
17813         when optimizing for SH2.
17814
17815 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
17816
17817         * i386/udk.h (LINK_SPEC): Correct linker search path for
17818         system libraries.
17819
17820 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17821
17822         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
17823         (braf_label_ref_operand): Delete.
17824         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
17825         * sh.md (casesi_jump_2): Operand1 is now the inside of a
17826         label_ref, and has no predicate.
17827         The patten has a predicate to guard against invalid substitutions.
17828         (dummy_jump): Delete.
17829         (casesi): Update use of casesi_jump_2.
17830
17831 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
17832
17833         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
17834         *fixinc/fixincl.x: regenerate
17835         *fixinc/inclhack.sh: regenerate
17836
17837 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
17838
17839         * dwarf2out.c (add_incomplete_type): New fn.
17840         (gen_struct_or_union_type_die): Call it.
17841         (retry_incomplete_types): New fn.
17842         (dwarf2out_finish): Call it.
17843
17844 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
17845
17846         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
17847         current block starts with a CODE_LABEL and ends with a CALL and
17848         we can not find all the argument setup instructions for the CALL.
17849
17850 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
17851
17852         Revert this change:
17853         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
17854         something is a candidate for optimize_bit_field_compare.
17855
17856 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17857
17858         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
17859
17860 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
17861
17862         * alpha.c (override_options): Thinko in last patch.
17863
17864         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
17865         (LIB_SPEC): Recognize -pthread.
17866
17867 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
17868
17869         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
17870         definition in config/arm/coff.h
17871         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
17872
17873 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17874
17875         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
17876         fixes that need "file=xxx\n" prepended before invocation
17877         (start_fixer - new): starting the fixer process is complex enough
17878         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
17879         (process): uses the new routine; omit usage of putenv()
17880         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
17881         * fixinc/fixincl.x: regenerate
17882
17883 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
17884
17885         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
17886         and version #s (1.1 -> 2.96) as needed.
17887         * README.g77: Kill way out of date file in the toplevel directory.
17888
17889 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
17890
17891         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
17892         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
17893         * configure: Rebuilt.
17894         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
17895         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
17896         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
17897         (SWITCH_TAKES_ARG): Likewise.
17898         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
17899         * config/t-freebsd: Moved from config/i386/ so it can used for all
17900         FreeBSD targets.
17901
17902 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
17903
17904         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
17905
17906 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
17907
17908         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
17909         * configure: Rebuilt.
17910
17911 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
17912
17913         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
17914         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
17915         * rs6000/rs6000.c (rs6000_file_start): Use putc.
17916         (rs6000_output_load_toc_table): Same.
17917         (output_prolog, output_mi_thunk): Same.
17918         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
17919         (ASM_GLOBALIZE_LABEL): Use putc.
17920
17921 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
17922
17923         * alpha.md (reload_*_help): New patterns and splitters.
17924         (reload_*): Use them.
17925         (mov[qh]i): Likewise.
17926
17927 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
17928
17929         * cccp.c (handle_directive): Handle backslash-newlines in quoted
17930         strings correctly.
17931
17932 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
17933
17934         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
17935
17936 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
17937
17938         * flow.c (mark_regs_live_at_end, insn_dead_p,
17939         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
17940         and HARD_FRAME_POINTER_REGNUM special treatment if reload
17941         hasn't run or the frame pointer is needed.
17942         * haifa-sched.c (attach_deaths): Likewise.
17943         * sched.c (attach_deaths): Likewise.
17944
17945 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
17946
17947         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
17948         calculate_can_reach_end returns nonzero.
17949
17950         * configure.in (native gas tests): Search for an assembler in the
17951         same manner that the installed compiler will.
17952         * configure: Rebuilt.
17953         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
17954
17955         * alias.c (find_base_term): Improve handling of addresses
17956         constructed from binary operations.
17957
17958 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
17959
17960         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
17961
17962 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
17963
17964         * function.h (cleanup_label, frame_offset): Declare.
17965         (tail_recursion_label, tail_recursion_reentry): Likewise.
17966         (arg_pointer_save_area, rtl_expr_chain): Likewise.
17967         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
17968         (tail_recursion_label, tail_recursion_reentry): Likewise.
17969         (arg_pointer_save_area, rtl_expr_chain): Likewise.
17970
17971 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
17972
17973         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
17974         defined.
17975         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
17976         (MAX_OFILE_ALIGNMENT): Define.
17977
17978 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
17979
17980         * fixincl.c: Replace local include scheme with #includes of
17981         gansidecl.h and system.h.
17982         * procopen.c:  Likewise.
17983         * server.c:  Likewise.
17984
17985 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
17986
17987         * i386/t-dgux (EXTRA_PARTS): Add crti.o
17988         (crti.o): Add build rule and dependencies.
17989         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
17990
17991 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17992
17993         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
17994         (LIB_LINUX_SPEC): Likewise.
17995         (LIB_LINUX_SPEC): Add support for -pthread
17996         (CPP_OS_LINUX_SPEC): Likewise.
17997         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
17998         specified.
17999
18000 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
18001
18002         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
18003         conditional move.
18004         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
18005         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
18006         for IEEE math and CC_FCOMI.
18007         (put_jump_code): No IEEE if CC_FCOMI is set.
18008
18009 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
18010
18011         * fold-const.c (fold_truthop): Make the field reference unsigned
18012         when converting a single bit compare.
18013
18014 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18015
18016         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
18017
18018 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
18019
18020         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
18021         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
18022         version did.
18023
18024         * reload.c (push_reload): Do not call remove_address_replacements
18025         when presented with identical optional reloads.
18026
18027 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
18028
18029         * alpha.h (MASK_FIX, TARGET_FIX): New.
18030         (MASK_*): Reorganize constants.
18031         (CPP_AM_FIX_SPEC): New.
18032         (TARGET_SWITCHES): Add FIX.
18033         (EXTRA_SPECS): Likewise.
18034         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
18035         (SECONDARY_MEMORY_NEEDED): Likewise.
18036         (REGISTER_MOVE_COST): Likewise.
18037         * alpha.c (override_options): Add FIX support.  Always use
18038         ALPHA_TP_PROG for ev6.
18039         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
18040         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
18041         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
18042
18043 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
18044
18045         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
18046         something is a candidate for optimize_bit_field_compare.
18047
18048 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
18049
18050         * gcc.texi (Passes): Document branch-shortening.
18051         * invoke.texi (Debugging Options): Document the fact that `-dp'
18052         outputs length information for instructions.
18053
18054 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
18055
18056         * flow.c: Revert previous delta.
18057
18058 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
18059
18060         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
18061         FRAME_POINTER_REGNUM.
18062         (mark_set_1): Ditto.
18063         (mark_used_regs): Ditto.
18064
18065 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
18066
18067         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
18068         (GOT_PCREL): New macro.  Define to 1 if not already defined.
18069         * arm/elf.h (GOT_PCREL): Define to 0.
18070         * arm.c (arm_finalize_pic): Take into account the setting of
18071         GOT_PCREL.
18072
18073 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
18074
18075         * output.h (STRIP_NAME_ENCODING): Provide default definition.
18076         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
18077
18078         * flow.c (mark_set_1): Do not record BLKmode stores as dead
18079         store elimination candidates.
18080
18081 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18082
18083         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
18084         TARGET_GAS.
18085
18086 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
18087
18088         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
18089         Add use of x-aix41-gld.
18090
18091 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
18092
18093         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
18094         (ASM_OUTPUT_DESTRUCTOR): Define.
18095
18096 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
18097
18098         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
18099         last CODE_LABEL in a loop if we have previously passed a jump
18100         to the top of the loop.
18101
18102 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
18103
18104         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
18105         applying Philip's patch.
18106
18107 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
18108
18109         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
18110         are not VAR_DECLs.
18111
18112 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
18113
18114         * loop.c (strength_reduce): Grow reg_single_usage as needed.
18115
18116 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
18117
18118         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
18119         Also remove a useless comment.
18120
18121 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
18122
18123         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
18124
18125 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
18126
18127         * collect2.c (main): Only generate import or export file and add
18128         to link arguments if non-empty.  Use xmalloc not alloca.
18129         (write_{export,import}_file): Delete.
18130         (write_aix_file): New function.
18131         (locatelib): Use xmalloc not malloc.
18132         (GCC_OK_SYMBOL): Do not check type if aix64.
18133
18134 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
18135
18136         Based on patch by Scott Bambrough and Pat Beirne:
18137         * config/arm/arm.c (making_const_table): New variable.
18138         * config/arm/arm.h (making_const_table): Declare.
18139         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
18140         appropriate.
18141         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
18142         Keep track of when we are building the constant table.
18143
18144 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
18145
18146         * config/arm/arm.c (arm_override_options): Fix erroneous warning
18147         message.
18148
18149 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
18150
18151         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
18152         defined.
18153
18154 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
18155
18156         * tm.texi (FUNCTION_ARG): Correct description of a stack element
18157         in a PARALLEL.
18158
18159 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
18160
18161         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
18162
18163 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18164
18165         * rs6000.c (output_mi_thunk): Enable full support again.
18166
18167 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18168
18169         * sh.h (BRANCH_COST): Define.
18170
18171 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
18172
18173         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
18174
18175 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
18176
18177         * function.c (assign_stack_local): Align stack slot propertly.
18178         (assign_outer_stack_local): Likewise.
18179
18180 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
18181
18182         * expr.h (lang_expand_constant): Declare.
18183         * toplev.c (lang_expand_constant): Define it.
18184         * varasm.c (output_constant): Use it.
18185
18186 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18187
18188         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
18189         Change function definitions to K&R style.
18190
18191 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
18192
18193         * fixinc/fixincl.c: We must not ignore SIGCLD now.
18194
18195 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
18196
18197         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
18198         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
18199         (several places): omit static initialization
18200         (process): use single fd, since only the read fd is used
18201         * fixinc/gnu-regex.c: define 'const' away, if not supported
18202         * fixinc/procopen.c(several places): omit static initialization
18203         * fixinc/server.c: define 'volitile' away, if not supported
18204
18205 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
18206
18207         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
18208         asm_fprintf and %L to generate the label name.
18209         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
18210         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
18211
18212 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
18213
18214         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
18215         insn for a conditional jump can not be found.
18216
18217 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
18218
18219         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
18220         on variables in specific sections other than .sbss and .sdata.
18221
18222 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
18223
18224         * stmt.c (expand_return): Call start_cleanup_deferral and
18225         end_cleanup_deferral around conditional code.
18226
18227 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
18228
18229         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
18230         filename lists.  Utilizes new "krstr" AutoGen function.
18231         * fixinc/fixincl.x: Rebuilt.
18232
18233 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
18234
18235         * i386.c (output_float_compare): Avoid GNU-C extensions.
18236
18237 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
18238
18239         * version.c: Bump to distinguish mainline tree from the
18240         gcc-2.95 branch.
18241
18242 See ChangeLog.1 for earlier changes.